@gem-sdk/components 8.0.0-staging.11 → 8.0.0-staging.13
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/carousel-v3/components/swiper/Swiper.js +1 -1
- package/dist/cjs/post-purchase/product/settings/product-description/configs/settings-v2.js +1 -1
- package/dist/cjs/post-purchase/product/settings/product-description/configs/ui-v2.js +1 -1
- package/dist/cjs/post-purchase/product/settings/product-title/configs/settings-v2.js +1 -1
- package/dist/cjs/post-purchase/product/settings/product-title/configs/ui-v2.js +1 -1
- package/dist/cjs/product/components/product-button/ProductButton.liquid.js +6 -4
- package/dist/cjs/product/components/product-variants/ProductVariants.liquid.js +8 -6
- package/dist/cjs/product/components/product-wrap/Product.liquid.js +10 -12
- package/dist/esm/carousel-v3/components/swiper/Swiper.js +1 -1
- package/dist/esm/post-purchase/product/settings/product-description/configs/settings-v2.js +1 -1
- package/dist/esm/post-purchase/product/settings/product-description/configs/ui-v2.js +1 -1
- package/dist/esm/post-purchase/product/settings/product-title/configs/settings-v2.js +1 -1
- package/dist/esm/post-purchase/product/settings/product-title/configs/ui-v2.js +1 -1
- package/dist/esm/product/components/product-button/ProductButton.liquid.js +11 -9
- package/dist/esm/product/components/product-variants/ProductVariants.liquid.js +30 -28
- package/dist/esm/product/components/product-wrap/Product.liquid.js +31 -33
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var jsxRuntime=require("react/jsx-runtime"),React=require("react"),styles=require("./common/styles.js");function Swiper(e){let t=React.useRef(null),{children:r,totalSlides:s,onSwiperReset:i,onSwiperReady:n,sliderClass:c,sliderOrder:u,thumbsSwiper:a,...p}=e,[l,
|
|
1
|
+
"use strict";var jsxRuntime=require("react/jsx-runtime"),React=require("react"),styles=require("./common/styles.js");function Swiper(e){let t=React.useRef(null),{children:r,totalSlides:s,onSwiperReset:i,onSwiperReady:n,sliderClass:c,sliderOrder:u,thumbsSwiper:a,...p}=e,[l,w]=React.useState(!1),o=React.useMemo(()=>a?{"thumbs-swiper":a}:{},[a]),f=styles.getStyleSwiperContainer(),d="object"==typeof e.autoplay&&null!==e.autoplay?e.autoplay.pauseOnMouseEnter:void 0,y=()=>{t.current?.swiper&&t.current.swiper.wrapperEl.style.setProperty("width",`${t.current.swiper.width}px`)};return React.useEffect(()=>{let e=async()=>{let e=await import("@gem-sdk/swiper/element/bundle");e.register(),await window.customElements.whenDefined("swiper-container"),w(!0)};e()},[]),React.useEffect(()=>{l&&(Object.assign(t.current,p),t.current.initialize(),n?.(t.current.swiper),y())},[l]),React.useEffect(()=>{t.current?.swiper&&(t.current.swiper.destroy(!1,!1),Object.assign(t.current,p),t.current.initialize(),n(t.current.swiper),i())},[p.dir,p.loop,d,p.slidesPerView,n,i,p.spaceBetween,p.slidesOffsetBefore]),React.useEffect(()=>{let e=t.current;e&&(Object.assign(e,p),e.swiper?.update(),y())},[p]),React.useEffect(()=>{i()},[u,i]),React.useEffect(()=>{let e=t.current;if(!e)return;let r=()=>{y()};return e.addEventListener("swiperresize",r),()=>{e.removeEventListener("swiperresize",r)}},[]),jsxRuntime.jsx("swiper-container",{init:!1,ref:t,class:c,style:{...f,display:l?"block":"none"},...o,children:r})}exports.Swiper=Swiper;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const settingV2=[{id:"setting",controls:[{id:"textGroup",type:"group",label:"Text",controls:[{id:"text",label:"Content",type:"textarea",default:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."}]}]},{id:"style",controls:[{id:"typo",label:"Label",type:"typography-post-purchase",default:{fontSize:"default",textColor:"default",fontWeight:"bold",textTransform:"none"}},{id:"textAlign",label:"Alignment",type:"option:value",options:[{label:"Left",value:"left",type:"text",tooltip:"Align left",iconName:"polaris-text-align-left"},{label:"Center",value:"center",type:"text",tooltip:"Align center",iconName:"polaris-text-align-center"},{label:"Right",value:"right",type:"text",tooltip:"Align right",iconName:"polaris-text-align-right"}],default:"left"}]}];exports.settingV2=settingV2;
|
|
1
|
+
"use strict";const settingV2=[{id:"setting",controls:[{id:"textGroup",type:"group",label:"Text",controls:[{id:"text",label:"Content",type:"textarea",default:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."}]}]},{id:"style",controls:[{id:"typo",label:"Label",type:"typography-post-purchase",default:{fontSize:"default",textColor:"default",fontWeight:"bold",textTransform:"none"}},{id:"textAlign",label:"Alignment",type:"option:value",options:[{label:"Left",value:"left",type:"text",tooltip:"Align left",iconName:"polaris-text-align-left"},{label:"Center",value:"center",type:"text",tooltip:"Align center",iconName:"polaris-text-align-center"},{label:"Right",value:"right",type:"text",tooltip:"Align right",iconName:"polaris-text-align-right"}],default:"left"},{id:"direction",label:"Direction",type:"option:value",options:[{label:"LTR",value:"ltr"},{label:"RTL",value:"rtl"}],default:"ltr"}]}];exports.settingV2=settingV2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const SettingUIV2=[{label:{en:"Text"},controls:[{type:"control",label:{en:""},setting:{id:"typo"},layout:"vertical"},{type:"control",setting:{id:"textAlign"},label:{en:"Text align"}}]}];exports.SettingUIV2=SettingUIV2;
|
|
1
|
+
"use strict";const SettingUIV2=[{label:{en:"Text"},controls:[{type:"control",label:{en:"Direction"},setting:{id:"direction"},controlChangeTrigger:{settings:[{action:{controlId:"textAlign",newValue:"right",groupType:"style",controlType:"style"},condition:"direction === 'rtl' && textAlign === 'left'",source:["direction","textAlign"]},{action:{controlId:"textAlign",newValue:"left",groupType:"style",controlType:"style"},condition:"direction === 'ltr' && textAlign === 'right'",source:["direction","textAlign"]}],options:{noRecordHistory:!0}}},{type:"control",setting:{id:"typo"},layout:"vertical"},{type:"control",setting:{id:"textAlign"},label:{en:"Text align"}}]}];exports.SettingUIV2=SettingUIV2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const settingV2=[{id:"setting",controls:[{id:"textGroup",type:"group",label:"Text",controls:[{id:"text",label:"Content",type:"textarea",default:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."}]}]},{id:"style",controls:[{id:"typo",label:"Label",type:"typography-post-purchase",default:{fontSize:"xlarge",textColor:"default",fontWeight:"bold",textTransform:"none"}},{id:"textAlign",label:"Alignment",type:"option:value",options:[{label:"Left",value:"left",type:"text",tooltip:"Align left",iconName:"polaris-text-align-left"},{label:"Center",value:"center",type:"text",tooltip:"Align center",iconName:"polaris-text-align-center"},{label:"Right",value:"right",type:"text",tooltip:"Align right",iconName:"polaris-text-align-right"}],default:"left"}]}];exports.settingV2=settingV2;
|
|
1
|
+
"use strict";const settingV2=[{id:"setting",controls:[{id:"textGroup",type:"group",label:"Text",controls:[{id:"text",label:"Content",type:"textarea",default:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."}]}]},{id:"style",controls:[{id:"typo",label:"Label",type:"typography-post-purchase",default:{fontSize:"xlarge",textColor:"default",fontWeight:"bold",textTransform:"none"}},{id:"textAlign",label:"Alignment",type:"option:value",options:[{label:"Left",value:"left",type:"text",tooltip:"Align left",iconName:"polaris-text-align-left"},{label:"Center",value:"center",type:"text",tooltip:"Align center",iconName:"polaris-text-align-center"},{label:"Right",value:"right",type:"text",tooltip:"Align right",iconName:"polaris-text-align-right"}],default:"left"},{id:"direction",label:"Direction",type:"option:value",options:[{label:"LTR",value:"ltr"},{label:"RTL",value:"rtl"}],default:"ltr"}]}];exports.settingV2=settingV2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const SettingUIV2=[{label:{en:"Text"},controls:[{type:"control",setting:{id:"typo"},layout:"vertical"},{type:"control",setting:{id:"textAlign"},label:{en:"Text align"}}]}];exports.SettingUIV2=SettingUIV2;
|
|
1
|
+
"use strict";const SettingUIV2=[{label:{en:"Text"},controls:[{type:"control",label:{en:"Direction"},setting:{id:"direction"},controlChangeTrigger:{settings:[{action:{controlId:"textAlign",newValue:"right",groupType:"style",controlType:"style"},condition:"direction === 'rtl' && textAlign === 'left'",source:["direction","textAlign"]},{action:{controlId:"textAlign",newValue:"left",groupType:"style",controlType:"style"},condition:"direction === 'ltr' && textAlign === 'right'",source:["direction","textAlign"]}],options:{noRecordHistory:!0}}},{type:"control",setting:{id:"typo"},layout:"vertical"},{type:"control",setting:{id:"textAlign"},label:{en:"Text align"}}]}];exports.SettingUIV2=SettingUIV2;
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var styles=require("./common/styles.js"),helpers$1=require("./common/helpers.js"),core=require("@gem-sdk/core"),system=require("@gem-sdk/system"),helpers=require("../../../helpers.js"),getButtonDynamicSourceLocales=require("./helpers/getButtonDynamicSourceLocales.js"),SoldOutButton_liquid=require("./SoldOutButton.liquid.js"),AddToCartButton_liquid=require("./AddToCartButton.liquid.js");const ProductButton=t=>{let{setting:e,builderProps:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var styles=require("./common/styles.js"),helpers$1=require("./common/helpers.js"),core=require("@gem-sdk/core"),system=require("@gem-sdk/system"),helpers=require("../../../helpers.js"),getButtonDynamicSourceLocales=require("./helpers/getButtonDynamicSourceLocales.js"),SoldOutButton_liquid=require("./SoldOutButton.liquid.js"),AddToCartButton_liquid=require("./AddToCartButton.liquid.js");const ProductButton=t=>{let{setting:e,builderProps:s,style:r,styles:o,pageContext:a}=t,{wrapStyle:i,restStyle:l}=styles.getSplitStyle(r),{outOfStockButtonLabel:u,unavailableButtonLabel:n,variantSelectionRequiredMessage:c}=getButtonDynamicSourceLocales.getButtonDynamicSourceLocales({setting:e,pageContext:a,builderProps:s}),{urlData:d}=helpers.getInsertLinkData("",e?.actionEffect==="open-cart-drawer"?{link:"/cart",target:"_self"}:e?.customURL),p=system.createStateOrContext(helpers$1.getGPProductButtonState(o,e)),g=()=>AddToCartButton_liquid.AddToCartButton({...t,style:l}),y=()=>SoldOutButton_liquid.SoldOutButton({...t,style:l,label:u}),m=()=>system.If(core.isLocalEnv,`<script ${helpers.getSettingPreloadData('class="gps-link" delay',"src")}="{{ 'gp-product-button-v7-5.js' | asset_url }}" defer="defer"></script>`,`<script ${helpers.getSettingPreloadData('class="gps-link" delay',"src")}="${core.baseAssetURL}/assets-v2/gp-product-button-v7-5.js?v={{ shop.metafields.GEMPAGES.ASSETS_VERSION }}" defer="defer"></script>`);return core.template`
|
|
2
|
+
${system.Liquid("{%- assign total_combinations = 1 -%}")}
|
|
3
|
+
${system.LiquidFor("option in product.options_with_values","{%- assign total_combinations = total_combinations | times: option.values.size -%}")}
|
|
2
4
|
{%- liquid
|
|
3
5
|
assign inventory_quantity = variant.inventory_quantity | default: 0
|
|
4
6
|
assign is_in_stock = variant.available
|
|
5
7
|
-%}
|
|
6
8
|
<gp-product-button
|
|
7
|
-
style="${
|
|
9
|
+
style="${i}"
|
|
8
10
|
gp-data-wrapper="true"
|
|
9
11
|
gp-href="${d.href}"
|
|
10
12
|
class="gp-product-button"
|
|
11
|
-
gp-label-out-of-stock="${
|
|
13
|
+
gp-label-out-of-stock="${u}"
|
|
12
14
|
gp-label-unavailable="${n}"
|
|
13
15
|
gp-data='${JSON.stringify(p).replaceAll("'","'")}'
|
|
14
16
|
data-variant-selection-required-message="${c}"
|
|
@@ -16,5 +18,5 @@
|
|
|
16
18
|
${g()}
|
|
17
19
|
${y()}
|
|
18
20
|
</gp-product-button>
|
|
19
|
-
${
|
|
21
|
+
${m()}
|
|
20
22
|
`};exports.default=ProductButton;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var core=require("@gem-sdk/core"),Text_liquid=require("../../../text/components/Text.liquid.js"),index_liquid=require("./components/variants/index.liquid.js"),Dropdown_liquid=require("./components/dropdown-swatches/Dropdown.liquid.js"),DropdownGroup_liquid=require("./components/dropdown-group/DropdownGroup.liquid.js"),helpers=require("../../../helpers.js"),mappingVariantStyles=require("./utils/mappingVariantStyles.js"),system=require("@gem-sdk/system"),getAttr=require("./common/main/getAttr.js"),styles=require("./common/main/styles.js"),classes=require("./common/main/classes.js"),getData=require("./common/main/getData.js"),classes$1=require("./common/variants/classes.js"),_function=require("../../helpers/function.js"),styles$1=require("./common/variants/styles.js");const DEFAULT_ADVANCED_DISPLAY_SETTING={desktop:!0,tablet:!0,mobile:!0},ProductVariants=e=>{let{builderProps:s,styles:t,setting:i,advanced:a}=e,{align:o,swatchItemWidth:n,dropdownItemWidth:r,swatchSpacing:l,optionTypo:p,marginBottom:d}=t??{},{label:u,optionType:m,showAsSwatches:c,layout:y,hasPreSelected:g}=i??{},$=a?.d??DEFAULT_ADVANCED_DISPLAY_SETTING,{uid:v}=s??{},q="groupOption"===m,f=()=>{let e={};return core.DEVICES.forEach(s=>{let t=core.getResponsiveValueByScreen(n,s);e[s]="auto"===t}),e},_=()=>{let e={};return core.DEVICES.forEach(s=>{e[s]=r?.[s]==="fill"}),e},L=core.composeMemo(()=>{let e=mappingVariantStyles.mappingVariantStyles(i?.variantPresets,t);return{...i,variantPresets:e}},[i?.variantPresets,t]),S=e=>{let s={"'":"'",'"':"""},t=e;for(let i in s)e.indexOf(i)>=0&&(t=t.replaceAll(i,s[i]));return t},
|
|
2
|
-
${system.Liquid(`{%- assign presets = "${
|
|
3
|
-
${system.Liquid(`{% assign hiddenPresetOptions = "${
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var core=require("@gem-sdk/core"),Text_liquid=require("../../../text/components/Text.liquid.js"),index_liquid=require("./components/variants/index.liquid.js"),Dropdown_liquid=require("./components/dropdown-swatches/Dropdown.liquid.js"),DropdownGroup_liquid=require("./components/dropdown-group/DropdownGroup.liquid.js"),helpers=require("../../../helpers.js"),mappingVariantStyles=require("./utils/mappingVariantStyles.js"),system=require("@gem-sdk/system"),getAttr=require("./common/main/getAttr.js"),styles=require("./common/main/styles.js"),classes=require("./common/main/classes.js"),getData=require("./common/main/getData.js"),classes$1=require("./common/variants/classes.js"),_function=require("../../helpers/function.js"),styles$1=require("./common/variants/styles.js");const DEFAULT_ADVANCED_DISPLAY_SETTING={desktop:!0,tablet:!0,mobile:!0},ProductVariants=e=>{let{builderProps:s,styles:t,setting:i,advanced:a}=e,{align:o,swatchItemWidth:n,dropdownItemWidth:r,swatchSpacing:l,optionTypo:p,marginBottom:d}=t??{},{label:u,optionType:m,showAsSwatches:c,layout:y,hasPreSelected:g}=i??{},$=a?.d??DEFAULT_ADVANCED_DISPLAY_SETTING,{uid:v}=s??{},q="groupOption"===m,f=()=>{let e={};return core.DEVICES.forEach(s=>{let t=core.getResponsiveValueByScreen(n,s);e[s]="auto"===t}),e},_=()=>{let e={};return core.DEVICES.forEach(s=>{e[s]=r?.[s]==="fill"}),e},L=core.composeMemo(()=>{let e=mappingVariantStyles.mappingVariantStyles(i?.variantPresets,t);return{...i,variantPresets:e}},[i?.variantPresets,t]),S=e=>{let s={"'":"'",'"':"""},t=e;for(let i in s)e.indexOf(i)>=0&&(t=t.replaceAll(i,s[i]));return t},h=()=>i?.variantPresets?.map(e=>`${S(e.optionName)}($2)${e.optionType}`).join("($1)"),I=()=>i?.variantPresets?.filter(e=>!!e?.hide)?.map(e=>e.optionName).join(","),V=system.createClass(classes.getVariantOptionGroupClass(o)),j=system.createStyle(styles.getVariantOptionGroupStyle(l,l)),w=getData.getTextVariantTitleData(e,"Liquid"),b=system.createClass(classes$1.getWrapVariantOptionClass(y,o)),A=()=>core.template`
|
|
2
|
+
${system.Liquid(`{%- assign presets = "${h()}" | split: '($1)' -%}`)}
|
|
3
|
+
${system.Liquid(`{% assign hiddenPresetOptions = "${I()}" | split: ',' %}`)}
|
|
4
4
|
|
|
5
5
|
${system.Liquid(`{% assign all_option_names = options | map: 'name' %}
|
|
6
6
|
{% assign filtered_options_string = '' %}
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
${system.LiquidFor("option in options",`
|
|
31
31
|
<div
|
|
32
32
|
option-name="{{option.name | escape}}"
|
|
33
|
-
class="${
|
|
33
|
+
class="${b} ${system.LiquidIf("hiddenPresetOptions contains option.name","gp-hidden")}"
|
|
34
34
|
style="${_function.getStyleOfObject(styles$1.getMarginBottomStyle(d))}${system.Liquid("{% if forloop.last or option.name == last_option_name %}--mb:0;--mb-mobile:0;--mb-tablet:0;{% endif %}")}"
|
|
35
35
|
>
|
|
36
36
|
${system.Liquid("{%- assign showVariantClass = 'variant-display' -%}")}
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
${system.If(u,Text_liquid.default(w)," ")}
|
|
43
43
|
<div
|
|
44
44
|
variant-option-name="{{option.name | escape}}"
|
|
45
|
-
class="${
|
|
45
|
+
class="${V}"
|
|
46
46
|
style="${_function.getStyleOfObject(j)}"
|
|
47
47
|
>
|
|
48
48
|
${system.Liquid("{%- assign values = option.values -%}")}
|
|
@@ -121,6 +121,8 @@
|
|
|
121
121
|
${DropdownGroup_liquid.default(O)}
|
|
122
122
|
</div>
|
|
123
123
|
`;system.createStateOrContext({setting:L,styles:JSON.stringify(t),variants:"{{ product.variants | json | escape }}",optionsWithValues:"{{ product.options_with_values | json | escape }}",variantSelected:"{{ variant | json | escape }}",variantInventoryQuantity:"{{ product.variants | map: 'inventory_quantity' | json | escape }}",variantInventoryPolicy:"{{ product.variants | map: 'inventory_policy' | json | escape }}",moneyFormat:"{{ shop.money_format | json | escape }}",productId:"{{ product.id | json | escape }}",productUrl:"{{ product.url | json | escape }}",productHandle:"{{ product.handle | json | escape }}",displayState:`${JSON.stringify($)}`,totalVariantCombinations:"{{ total_combinations }}",firstAvailableVariant:"{{ product.selected_or_first_available_variant | json | escape }}"});let E=system.createAttr(getAttr.getAttrs({uid:v,hasPreSelected:g,cssClass:a?.cssClass})),N=system.createStyle(styles.getWrapperStyle(e)),F=system.createClass({"gp-flex gp-flex-col !gp-ml-0":!0}),U=()=>{let e=core.isLocalEnv?"{{ 'gp-product-variant-v7-5.js' | asset_url }}":`${core.baseAssetURL}/assets-v2/gp-product-variant-v7-5.js?v={{ shop.metafields.GEMPAGES.ASSETS_VERSION }}`;return`<script ${helpers.getSettingPreloadData('class="gps-link" delay',"src")}="${e}" defer="defer"></script>`};return core.template`
|
|
124
|
+
${system.Liquid("{%- assign total_combinations = 1 -%}")}
|
|
125
|
+
${system.LiquidFor("option in product.options_with_values","{%- assign total_combinations = total_combinations | times: option.values.size -%}")}
|
|
124
126
|
<gp-product-variants
|
|
125
127
|
${E}
|
|
126
128
|
gp-data='{
|
|
@@ -147,7 +149,7 @@
|
|
|
147
149
|
class="${F}"
|
|
148
150
|
style="${N}"
|
|
149
151
|
>
|
|
150
|
-
${system.If(q,C(),
|
|
152
|
+
${system.If(q,C(),A())}
|
|
151
153
|
</div>`)}
|
|
152
154
|
</gp-product-variants>
|
|
153
155
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var core=require("@gem-sdk/core"),Row_liquid=require("../../../grid/components/row/Row.liquid.js"),system=require("@gem-sdk/system"),helpers$1=require("../../../helpers.js"),helpers=require("./common/helpers.js");const Product=e=>{let{children:t,setting:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var core=require("@gem-sdk/core"),Row_liquid=require("../../../grid/components/row/Row.liquid.js"),system=require("@gem-sdk/system"),helpers$1=require("../../../helpers.js"),helpers=require("./common/helpers.js");const Product=e=>{let{children:t,setting:r,style:i,builderProps:a,rawChildren:o,advanced:d}=e,{isSyncProduct:s}=r??{},{rowSetting:n,rowStyles:c,formatVariantId:l,formatProductId:p,productStatus:u,preSelectedOptionIds:f,productHandle:g,advancedStyle:m}=helpers.getData(e),_=()=>core.template`
|
|
2
2
|
{%- liquid
|
|
3
3
|
if request.page_type == 'product'
|
|
4
4
|
if '${u}' == '${helpers.STATIC_PRODUCT_STATUS}'
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
assign product = collections.all.products | sort: 'created_at' | reverse | first
|
|
8
8
|
endpaginate
|
|
9
9
|
else
|
|
10
|
-
assign product = all_products['${
|
|
10
|
+
assign product = all_products['${g}']
|
|
11
11
|
assign productId = '${p}' | times: 1
|
|
12
12
|
if product == empty or product == null
|
|
13
13
|
paginate collections.all.products by 100000
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
assign product = collections.all.products | sort: 'created_at'| reverse | first
|
|
27
27
|
endpaginate
|
|
28
28
|
else
|
|
29
|
-
assign product = all_products['${
|
|
29
|
+
assign product = all_products['${g}']
|
|
30
30
|
assign productId = '${p}' | times: 1
|
|
31
31
|
if product == empty or product == null
|
|
32
32
|
paginate collections.all.products by 100000
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
`,y=()=>core.template`
|
|
44
44
|
{%- liquid
|
|
45
45
|
if request.page_type != 'product'
|
|
46
|
-
assign product = all_products['${
|
|
46
|
+
assign product = all_products['${g}']
|
|
47
47
|
assign productId = '${p}' | times: 1
|
|
48
48
|
if product == empty or product == null
|
|
49
49
|
paginate collections.all.products by 100000
|
|
@@ -60,8 +60,6 @@
|
|
|
60
60
|
{%- assign gpBkProduct = product -%}
|
|
61
61
|
${system.If(u==helpers.DYNAMIC_PRODUCT_STATUS,y(),_())}
|
|
62
62
|
`,$=()=>core.template`
|
|
63
|
-
${system.Liquid("{%- assign total_combinations = 1 -%}")}
|
|
64
|
-
${system.LiquidFor("option in product.options_with_values","{%- assign total_combinations = total_combinations | times: option.values.size -%}")}
|
|
65
63
|
{%- assign initVariantId = ${l} -%}
|
|
66
64
|
{%- assign product_form_id = 'product-form-' | append: "${a?.uid}" -%}
|
|
67
65
|
${l?"{%- assign variant = product.variants | where: 'id', initVariantId | first -%}":"{%- assign variant = product.selected_or_first_available_variant -%}"}
|
|
@@ -74,14 +72,14 @@
|
|
|
74
72
|
{%- endif -%}
|
|
75
73
|
`,S=()=>core.template`
|
|
76
74
|
<div class="gp-text-center">${helpers$1.getStaticLocale("Product","product_not_found")}</div>
|
|
77
|
-
`,
|
|
75
|
+
`,I=()=>core.template`
|
|
78
76
|
${$()}
|
|
79
77
|
<gp-product
|
|
80
78
|
data-uid="${a?.uid}"
|
|
81
79
|
data-id="${a?.uid}"
|
|
82
|
-
style="${
|
|
83
|
-
class="${
|
|
84
|
-
gp-context='{"productId": {{ product.id }}, "preSelectedOptionIds": [${f}], "isSyncProduct": "${
|
|
80
|
+
style="${m}"
|
|
81
|
+
class="${d?.cssClass}"
|
|
82
|
+
gp-context='{"productId": {{ product.id }}, "preSelectedOptionIds": [${f}], "isSyncProduct": "${s}", "variantSelected": {{ variant | json | escape }}, "inventory_management": {{ variant.inventory_management | json | escape }}, "inventory_policy": {{ variant.inventory_policy | json | escape }}, "inventoryQuantity": {{ variant.inventory_quantity }}, "quantity": 1, "formId": "{{ product_form_id }}" }'
|
|
85
83
|
gp-data='{"variantSelected": {{ variant | json | escape }}, "quantity": 1, "productUrl":{{ product.url | json | escape }}, "productHandle":{{ product.handle | json | escape }}, "collectionUrl": {{ collection.url | json | escape }}, "collectionHandle": {{ collection.handle | json | escape }}}'
|
|
86
84
|
>
|
|
87
85
|
<product-form class="product-form">
|
|
@@ -89,13 +87,13 @@
|
|
|
89
87
|
<input type="hidden" name="id" value="{{ variant.id }}" />
|
|
90
88
|
<input type="hidden" name="quantity" value="{{ quantity }}" />
|
|
91
89
|
<button type="submit" onclick="return false;" style="display:none;"></button>
|
|
92
|
-
${Row_liquid.default({builderProps:{...a,uid:a?.uid,uidInteraction:`${a?.uid}-row`},style:
|
|
90
|
+
${Row_liquid.default({builderProps:{...a,uid:a?.uid,uidInteraction:`${a?.uid}-row`},style:i,styles:c,setting:n,children:t,rawChildren:o})}
|
|
93
91
|
{%- endform -%}
|
|
94
92
|
</product-form>
|
|
95
93
|
</gp-product>
|
|
96
94
|
{%- assign product = gpBkProduct -%}
|
|
97
95
|
`;return core.template`
|
|
98
96
|
${v()}
|
|
99
|
-
${system.LiquidIf("product != empty and product != null",
|
|
97
|
+
${system.LiquidIf("product != empty and product != null",I(),S())}
|
|
100
98
|
${core.RenderIf(core.isLocalEnv,`<script ${helpers$1.getSettingPreloadData('class="gps-link" delay',"src")}="{{ 'gp-product-v7-5.js' | asset_url }}" defer="defer"></script>`,`<script ${helpers$1.getSettingPreloadData('class="gps-link" delay',"src")}="${core.baseAssetURL}/assets-v2/gp-product-v7-5.js?v={{ shop.metafields.GEMPAGES.ASSETS_VERSION }}" defer="defer"></script>`)}
|
|
101
99
|
`};exports.default=Product;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import{useRef as r,useState as t,useMemo as i,useEffect as
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{useRef as r,useState as t,useMemo as i,useEffect as n}from"react";import{getStyleSwiperContainer as s}from"./common/styles.js";function Swiper(p){let o=r(null),{children:c,totalSlides:l,onSwiperReset:u,onSwiperReady:a,sliderClass:w,sliderOrder:d,thumbsSwiper:m,...f}=p,[y,b]=t(!1),j=i(()=>m?{"thumbs-swiper":m}:{},[m]),g=s(),h="object"==typeof p.autoplay&&null!==p.autoplay?p.autoplay.pauseOnMouseEnter:void 0,E=()=>{o.current?.swiper&&o.current.swiper.wrapperEl.style.setProperty("width",`${o.current.swiper.width}px`)};return n(()=>{let e=async()=>{let e=await import("@gem-sdk/swiper/element/bundle");e.register(),await window.customElements.whenDefined("swiper-container"),b(!0)};e()},[]),n(()=>{y&&(Object.assign(o.current,f),o.current.initialize(),a?.(o.current.swiper),E())},[y]),n(()=>{o.current?.swiper&&(o.current.swiper.destroy(!1,!1),Object.assign(o.current,f),o.current.initialize(),a(o.current.swiper),u())},[f.dir,f.loop,h,f.slidesPerView,a,u,f.spaceBetween,f.slidesOffsetBefore]),n(()=>{let e=o.current;e&&(Object.assign(e,f),e.swiper?.update(),E())},[f]),n(()=>{u()},[d,u]),n(()=>{let e=o.current;if(!e)return;let r=()=>{E()};return e.addEventListener("swiperresize",r),()=>{e.removeEventListener("swiperresize",r)}},[]),e("swiper-container",{init:!1,ref:o,class:w,style:{...g,display:y?"block":"none"},...j,children:c})}export{Swiper};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
let settingV2=[{id:"setting",controls:[{id:"textGroup",type:"group",label:"Text",controls:[{id:"text",label:"Content",type:"textarea",default:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."}]}]},{id:"style",controls:[{id:"typo",label:"Label",type:"typography-post-purchase",default:{fontSize:"default",textColor:"default",fontWeight:"bold",textTransform:"none"}},{id:"textAlign",label:"Alignment",type:"option:value",options:[{label:"Left",value:"left",type:"text",tooltip:"Align left",iconName:"polaris-text-align-left"},{label:"Center",value:"center",type:"text",tooltip:"Align center",iconName:"polaris-text-align-center"},{label:"Right",value:"right",type:"text",tooltip:"Align right",iconName:"polaris-text-align-right"}],default:"left"}]}];export{settingV2};
|
|
1
|
+
let settingV2=[{id:"setting",controls:[{id:"textGroup",type:"group",label:"Text",controls:[{id:"text",label:"Content",type:"textarea",default:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."}]}]},{id:"style",controls:[{id:"typo",label:"Label",type:"typography-post-purchase",default:{fontSize:"default",textColor:"default",fontWeight:"bold",textTransform:"none"}},{id:"textAlign",label:"Alignment",type:"option:value",options:[{label:"Left",value:"left",type:"text",tooltip:"Align left",iconName:"polaris-text-align-left"},{label:"Center",value:"center",type:"text",tooltip:"Align center",iconName:"polaris-text-align-center"},{label:"Right",value:"right",type:"text",tooltip:"Align right",iconName:"polaris-text-align-right"}],default:"left"},{id:"direction",label:"Direction",type:"option:value",options:[{label:"LTR",value:"ltr"},{label:"RTL",value:"rtl"}],default:"ltr"}]}];export{settingV2};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
let SettingUIV2=[{label:{en:"Text"},controls:[{type:"control",label:{en:""},setting:{id:"typo"},layout:"vertical"},{type:"control",setting:{id:"textAlign"},label:{en:"Text align"}}]}];export{SettingUIV2};
|
|
1
|
+
let SettingUIV2=[{label:{en:"Text"},controls:[{type:"control",label:{en:"Direction"},setting:{id:"direction"},controlChangeTrigger:{settings:[{action:{controlId:"textAlign",newValue:"right",groupType:"style",controlType:"style"},condition:"direction === 'rtl' && textAlign === 'left'",source:["direction","textAlign"]},{action:{controlId:"textAlign",newValue:"left",groupType:"style",controlType:"style"},condition:"direction === 'ltr' && textAlign === 'right'",source:["direction","textAlign"]}],options:{noRecordHistory:!0}}},{type:"control",setting:{id:"typo"},layout:"vertical"},{type:"control",setting:{id:"textAlign"},label:{en:"Text align"}}]}];export{SettingUIV2};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
let settingV2=[{id:"setting",controls:[{id:"textGroup",type:"group",label:"Text",controls:[{id:"text",label:"Content",type:"textarea",default:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."}]}]},{id:"style",controls:[{id:"typo",label:"Label",type:"typography-post-purchase",default:{fontSize:"xlarge",textColor:"default",fontWeight:"bold",textTransform:"none"}},{id:"textAlign",label:"Alignment",type:"option:value",options:[{label:"Left",value:"left",type:"text",tooltip:"Align left",iconName:"polaris-text-align-left"},{label:"Center",value:"center",type:"text",tooltip:"Align center",iconName:"polaris-text-align-center"},{label:"Right",value:"right",type:"text",tooltip:"Align right",iconName:"polaris-text-align-right"}],default:"left"}]}];export{settingV2};
|
|
1
|
+
let settingV2=[{id:"setting",controls:[{id:"textGroup",type:"group",label:"Text",controls:[{id:"text",label:"Content",type:"textarea",default:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."}]}]},{id:"style",controls:[{id:"typo",label:"Label",type:"typography-post-purchase",default:{fontSize:"xlarge",textColor:"default",fontWeight:"bold",textTransform:"none"}},{id:"textAlign",label:"Alignment",type:"option:value",options:[{label:"Left",value:"left",type:"text",tooltip:"Align left",iconName:"polaris-text-align-left"},{label:"Center",value:"center",type:"text",tooltip:"Align center",iconName:"polaris-text-align-center"},{label:"Right",value:"right",type:"text",tooltip:"Align right",iconName:"polaris-text-align-right"}],default:"left"},{id:"direction",label:"Direction",type:"option:value",options:[{label:"LTR",value:"ltr"},{label:"RTL",value:"rtl"}],default:"ltr"}]}];export{settingV2};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
let SettingUIV2=[{label:{en:"Text"},controls:[{type:"control",setting:{id:"typo"},layout:"vertical"},{type:"control",setting:{id:"textAlign"},label:{en:"Text align"}}]}];export{SettingUIV2};
|
|
1
|
+
let SettingUIV2=[{label:{en:"Text"},controls:[{type:"control",label:{en:"Direction"},setting:{id:"direction"},controlChangeTrigger:{settings:[{action:{controlId:"textAlign",newValue:"right",groupType:"style",controlType:"style"},condition:"direction === 'rtl' && textAlign === 'left'",source:["direction","textAlign"]},{action:{controlId:"textAlign",newValue:"left",groupType:"style",controlType:"style"},condition:"direction === 'ltr' && textAlign === 'right'",source:["direction","textAlign"]}],options:{noRecordHistory:!0}}},{type:"control",setting:{id:"typo"},layout:"vertical"},{type:"control",setting:{id:"textAlign"},label:{en:"Text align"}}]}];export{SettingUIV2};
|
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
import{getSplitStyle as t}from"./common/styles.js";import{getGPProductButtonState as
|
|
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`
|
|
2
|
+
${i("{%- assign total_combinations = 1 -%}")}
|
|
3
|
+
${l("option in product.options_with_values","{%- assign total_combinations = total_combinations | times: option.values.size -%}")}
|
|
2
4
|
{%- liquid
|
|
3
5
|
assign inventory_quantity = variant.inventory_quantity | default: 0
|
|
4
6
|
assign is_in_stock = variant.available
|
|
5
7
|
-%}
|
|
6
8
|
<gp-product-button
|
|
7
|
-
style="${
|
|
9
|
+
style="${_}"
|
|
8
10
|
gp-data-wrapper="true"
|
|
9
|
-
gp-href="${
|
|
11
|
+
gp-href="${q.href}"
|
|
10
12
|
class="gp-product-button"
|
|
11
|
-
gp-label-out-of-stock="${
|
|
12
|
-
gp-label-unavailable="${
|
|
13
|
-
gp-data='${JSON.stringify(
|
|
13
|
+
gp-label-out-of-stock="${S}"
|
|
14
|
+
gp-label-unavailable="${h}"
|
|
15
|
+
gp-data='${JSON.stringify(B).replaceAll("'","'")}'
|
|
14
16
|
data-variant-selection-required-message="${k}"
|
|
15
17
|
>
|
|
16
|
-
${
|
|
17
|
-
${
|
|
18
|
+
${E()}
|
|
19
|
+
${A()}
|
|
18
20
|
</gp-product-button>
|
|
19
|
-
${
|
|
21
|
+
${w()}
|
|
20
22
|
`};export{ProductButton as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{composeMemo as e,template as t,DEVICES as s,getResponsiveValueByScreen as i,isLocalEnv as a,baseAssetURL as o}from"@gem-sdk/core";import n from"../../../text/components/Text.liquid.js";import r from"./components/variants/index.liquid.js";import p from"./components/dropdown-swatches/Dropdown.liquid.js";import l from"./components/dropdown-group/DropdownGroup.liquid.js";import{getSettingPreloadData as
|
|
1
|
+
import{composeMemo as e,template as t,DEVICES as s,getResponsiveValueByScreen as i,isLocalEnv as a,baseAssetURL as o}from"@gem-sdk/core";import n from"../../../text/components/Text.liquid.js";import r from"./components/variants/index.liquid.js";import p from"./components/dropdown-swatches/Dropdown.liquid.js";import l from"./components/dropdown-group/DropdownGroup.liquid.js";import{getSettingPreloadData as m}from"../../../helpers.js";import{mappingVariantStyles as d}from"./utils/mappingVariantStyles.js";import{createClass as c,createStyle as u,createStateOrContext as g,createAttr as $,Liquid as v,LiquidFor as f,LiquidIf as y,If as _}from"@gem-sdk/system";import{getAttrs as h}from"./common/main/getAttr.js";import{getVariantOptionGroupStyle as S,getWrapperStyle as V}from"./common/main/styles.js";import{getVariantOptionGroupClass as j,getWrapDropdownClass as I}from"./common/main/classes.js";import{getTextVariantTitleData as b,getDropdownGroupData as w}from"./common/main/getData.js";import{getWrapVariantOptionClass as A}from"./common/variants/classes.js";import{getStyleOfObject as P}from"../../helpers/function.js";import{getMarginBottomStyle as T}from"./common/variants/styles.js";let DEFAULT_ADVANCED_DISPLAY_SETTING={desktop:!0,tablet:!0,mobile:!0},ProductVariants=N=>{let{builderProps:D,styles:x,setting:E,advanced:O}=N,{align:U,swatchItemWidth:C,dropdownItemWidth:K,swatchSpacing:q,optionTypo:k,marginBottom:F}=x??{},{label:G,optionType:J,showAsSwatches:L,layout:R,hasPreSelected:W}=E??{},z=O?.d??DEFAULT_ADVANCED_DISPLAY_SETTING,{uid:H}=D??{},M="groupOption"===J,Q=()=>{let e={};return s.forEach(t=>{let s=i(C,t);e[t]="auto"===s}),e},Y=()=>{let e={};return s.forEach(t=>{e[t]=K?.[t]==="fill"}),e},B=e(()=>{let e=d(E?.variantPresets,x);return{...E,variantPresets:e}},[E?.variantPresets,x]),X=e=>{let t={"'":"'",'"':"""},s=e;for(let i in t)e.indexOf(i)>=0&&(s=s.replaceAll(i,t[i]));return s},Z=()=>E?.variantPresets?.map(e=>`${X(e.optionName)}($2)${e.optionType}`).join("($1)"),ee=()=>E?.variantPresets?.filter(e=>!!e?.hide)?.map(e=>e.optionName).join(","),et=c(j(U)),es=u(S(q,q)),ei=b(N,"Liquid"),ea=c(A(R,U)),eo=()=>t`
|
|
2
2
|
${v(`{%- assign presets = "${Z()}" | split: '($1)' -%}`)}
|
|
3
3
|
${v(`{% assign hiddenPresetOptions = "${ee()}" | split: ',' %}`)}
|
|
4
4
|
|
|
@@ -27,19 +27,19 @@ import{composeMemo as e,template as t,DEVICES as s,getResponsiveValueByScreen as
|
|
|
27
27
|
|
|
28
28
|
${v("{% assign last_option_name = filtered_options_array | last %}")}
|
|
29
29
|
|
|
30
|
-
${
|
|
30
|
+
${f("option in options",`
|
|
31
31
|
<div
|
|
32
32
|
option-name="{{option.name | escape}}"
|
|
33
|
-
class="${ea} ${
|
|
33
|
+
class="${ea} ${y("hiddenPresetOptions contains option.name","gp-hidden")}"
|
|
34
34
|
style="${P(T(F))}${v("{% if forloop.last or option.name == last_option_name %}--mb:0;--mb-mobile:0;--mb-tablet:0;{% endif %}")}"
|
|
35
35
|
>
|
|
36
36
|
${v("{%- assign showVariantClass = 'variant-display' -%}")}
|
|
37
37
|
${v("{%- assign optionName = option.name -%}")}
|
|
38
|
-
${
|
|
38
|
+
${f("preset in presets",`
|
|
39
39
|
${v("{%- assign presetDetail = preset | split: '($2)' -%}")}
|
|
40
|
-
${
|
|
40
|
+
${y("presetDetail[1] == 'dropdown' and presetDetail[0] == optionName",`${v("{%- assign showVariantClass = '' -%}")} ${v("{%- break -%}")}`)}
|
|
41
41
|
`)}
|
|
42
|
-
${
|
|
42
|
+
${_(G,n(ei)," ")}
|
|
43
43
|
<div
|
|
44
44
|
variant-option-name="{{option.name | escape}}"
|
|
45
45
|
class="${et}"
|
|
@@ -56,8 +56,8 @@ import{composeMemo as e,template as t,DEVICES as s,getResponsiveValueByScreen as
|
|
|
56
56
|
{%- assign selectedValue = variant.option3 -%}
|
|
57
57
|
{%- endif -%}
|
|
58
58
|
`)}
|
|
59
|
-
${
|
|
60
|
-
${
|
|
59
|
+
${_(!W,v("{%- assign selectedValue = null -%}"),"")}
|
|
60
|
+
${_(L,er(),ep())}
|
|
61
61
|
</div>
|
|
62
62
|
</div>`)}
|
|
63
63
|
`,en=E?.variantPresets?.map(e=>({name:X(e.optionName),type:e.optionType})).map(e=>`${e.name}($1)${e.type}`).join("($2)").toString(),er=()=>t`
|
|
@@ -65,13 +65,13 @@ import{composeMemo as e,template as t,DEVICES as s,getResponsiveValueByScreen as
|
|
|
65
65
|
${v("{%- assign swatches = shop.metafields.GEMPAGES.swatches -%}")}
|
|
66
66
|
${v("{%- assign swatchesItems = swatches | split: '($1)' -%}")}
|
|
67
67
|
|
|
68
|
-
${
|
|
68
|
+
${f("swatchesItem in swatchesItems",`
|
|
69
69
|
${v('{%- assign colorArraysString = "" -%}')}
|
|
70
70
|
${v('{%- assign labelsString = "" -%}')}
|
|
71
71
|
${v('{%- assign imageUrlsString = "" -%}')}
|
|
72
72
|
${v("{%- assign attrItems = swatchesItem | split: '($3)' -%}")}
|
|
73
73
|
|
|
74
|
-
${
|
|
74
|
+
${f("attrItem in attrItems",`${v("{%- assign attrs = attrItem | split: '($2)' -%}")}
|
|
75
75
|
${v("{%- assign optionKey = attrs[0] -%}")}
|
|
76
76
|
${v("{%- assign optionValue = attrs[1] -%}")}
|
|
77
77
|
${v(`
|
|
@@ -82,45 +82,47 @@ import{composeMemo as e,template as t,DEVICES as s,getResponsiveValueByScreen as
|
|
|
82
82
|
{% endif %}
|
|
83
83
|
`)}
|
|
84
84
|
|
|
85
|
-
${
|
|
86
|
-
${
|
|
87
|
-
${
|
|
85
|
+
${y("optionKey == 'optionValues'",`${v("{%- assign opValueItems = optionValue | split: '($4)' -%}")}
|
|
86
|
+
${f("opValueItem in opValueItems",`${v("{%- assign opValueItemAttrs = opValueItem | split: '($6)' -%}")}
|
|
87
|
+
${f("opValueItemAttr in opValueItemAttrs",`${v("{%- assign attrs = opValueItemAttr | split: '($5)' -%}")}
|
|
88
88
|
${v("{%- assign opValueItemKey = attrs[0] -%}")}
|
|
89
89
|
${v("{%- assign opValueItemValue = attrs[1] -%}")}
|
|
90
90
|
|
|
91
|
-
${
|
|
91
|
+
${y("opValueItemKey == 'label'",`${v("{%- assign labelsString = labelsString | append: opValueItemValue -%}")}${v('{%- assign labelsString = labelsString | append: "($8)" -%}')}`)}
|
|
92
92
|
|
|
93
|
-
${
|
|
93
|
+
${y("opValueItemKey == 'colors'",`${v("{%- assign colorArraysString = colorArraysString | append: opValueItemValue -%}")}${v('{%- assign colorArraysString = colorArraysString | append: "($8)" -%}')}`)}
|
|
94
94
|
|
|
95
|
-
${
|
|
95
|
+
${y("opValueItemKey == 'imageUrl'",`${v("{%- assign imageUrlsString = imageUrlsString | append: opValueItemValue -%}")}${v('{%- assign imageUrlsString = imageUrlsString | append: "($8)" -%}')}`)}`)}`)}`)}
|
|
96
96
|
`)}
|
|
97
97
|
|
|
98
98
|
${v("{%- assign labels = labelsString | split: '($8)' -%}")}
|
|
99
99
|
${v("{%- assign colorStrings = colorArraysString | split: '($8)' -%}")}
|
|
100
100
|
${v("{%- assign imageUrls = imageUrlsString | split: '($8)' -%}")}
|
|
101
101
|
|
|
102
|
-
${
|
|
102
|
+
${y("optionTitle == option.name",`
|
|
103
103
|
${v(`{%- assign variantPresetString = "${en}" -%}`)}
|
|
104
104
|
${v('{%- assign optionName = option.name | replace: "\'", "'" | replace: \'"\', """ -%}')}
|
|
105
105
|
${v("{%- assign items = variantPresetString | split:'($2)' -%}")}
|
|
106
106
|
${v("{%- assign type = 'dropdown' -%}")}
|
|
107
|
-
${
|
|
107
|
+
${f("item in items",`
|
|
108
108
|
${v("{%- assign itemPreset = item | split:'($1)' -%}")}
|
|
109
|
-
${
|
|
110
|
-
${
|
|
109
|
+
${y("itemPreset[0] == optionName",v("{%- assign type = itemPreset[1] -%}"))}
|
|
110
|
+
${y('itemPreset[0] == "base"',v("{%- assign type = itemPreset[1] -%}"))}
|
|
111
111
|
`)}
|
|
112
112
|
${v("{%- assign optionRendered = true -%}")}
|
|
113
|
-
${
|
|
114
|
-
${
|
|
113
|
+
${f("value in values",r({id:"{{option.name | escape}}-{{value | escape}}",variantKey:"{{option.name | escape}}-{{option.position}}-{{ forloop.index }}",showAsSwatches:L,uid:H,name:"{{option.name | escape}}",value:{label:"{{value | escape}}"},checked:W?"{%- if option.selected_value == value -%}true{% else %}false{%- endif -%}":"false",optionPosition:"rootForloop",optionType:"optionType",activeClass:W?"{%- if option.selected_value == value -%}option-item-active{%- endif -%}":"",...x,...B,swatchAutoWidth:Q(),optionTypo:k}))}
|
|
114
|
+
${y("type == 'dropdown'",p({...x,...B,swatchAutoWidth:Y(),optionTypo:k}))}
|
|
115
115
|
`)}
|
|
116
116
|
`)}
|
|
117
117
|
|
|
118
|
-
${
|
|
119
|
-
`,ep=()=>
|
|
118
|
+
${y("optionRendered == false",ep())}
|
|
119
|
+
`,ep=()=>f("value in values",r({id:"{{option.name | escape}}-{{value | escape}}",variantKey:"{{option.name | escape}}-{{option.position}}-{{ forloop.index }}",showAsSwatches:L,uid:H,name:"{{option.name | escape}}",value:{label:"{{value | escape}}"},checked:W?"{%- if option.selected_value == value -%}true{% else %}false{%- endif -%}":"false",optionPosition:"rootForloop",typeOfOption:"optionType",activeClass:W?"{%- if option.selected_value == value -%}option-item-active{%- endif -%}":"",...x,...B,swatchAutoWidth:Q(),optionTypo:k,isRenderDefault:!0})),el=c(I(U)),em=w(N),ed=()=>`
|
|
120
120
|
<div className="${el}">
|
|
121
|
-
${l(
|
|
121
|
+
${l(em)}
|
|
122
122
|
</div>
|
|
123
|
-
`;g({setting:B,styles:JSON.stringify(x),variants:"{{ product.variants | json | escape }}",optionsWithValues:"{{ product.options_with_values | json | escape }}",variantSelected:"{{ variant | json | escape }}",variantInventoryQuantity:"{{ product.variants | map: 'inventory_quantity' | json | escape }}",variantInventoryPolicy:"{{ product.variants | map: 'inventory_policy' | json | escape }}",moneyFormat:"{{ shop.money_format | json | escape }}",productId:"{{ product.id | json | escape }}",productUrl:"{{ product.url | json | escape }}",productHandle:"{{ product.handle | json | escape }}",displayState:`${JSON.stringify(z)}`,totalVariantCombinations:"{{ total_combinations }}",firstAvailableVariant:"{{ product.selected_or_first_available_variant | json | escape }}"});let ec=$(h({uid:H,hasPreSelected:W,cssClass:O?.cssClass})),eu=u(V(N)),eg=c({"gp-flex gp-flex-col !gp-ml-0":!0}),e$=()=>{let e=a?"{{ 'gp-product-variant-v7-5.js' | asset_url }}":`${o}/assets-v2/gp-product-variant-v7-5.js?v={{ shop.metafields.GEMPAGES.ASSETS_VERSION }}`;return`<script ${
|
|
123
|
+
`;g({setting:B,styles:JSON.stringify(x),variants:"{{ product.variants | json | escape }}",optionsWithValues:"{{ product.options_with_values | json | escape }}",variantSelected:"{{ variant | json | escape }}",variantInventoryQuantity:"{{ product.variants | map: 'inventory_quantity' | json | escape }}",variantInventoryPolicy:"{{ product.variants | map: 'inventory_policy' | json | escape }}",moneyFormat:"{{ shop.money_format | json | escape }}",productId:"{{ product.id | json | escape }}",productUrl:"{{ product.url | json | escape }}",productHandle:"{{ product.handle | json | escape }}",displayState:`${JSON.stringify(z)}`,totalVariantCombinations:"{{ total_combinations }}",firstAvailableVariant:"{{ product.selected_or_first_available_variant | json | escape }}"});let ec=$(h({uid:H,hasPreSelected:W,cssClass:O?.cssClass})),eu=u(V(N)),eg=c({"gp-flex gp-flex-col !gp-ml-0":!0}),e$=()=>{let e=a?"{{ 'gp-product-variant-v7-5.js' | asset_url }}":`${o}/assets-v2/gp-product-variant-v7-5.js?v={{ shop.metafields.GEMPAGES.ASSETS_VERSION }}`;return`<script ${m('class="gps-link" delay',"src")}="${e}" defer="defer"></script>`};return t`
|
|
124
|
+
${v("{%- assign total_combinations = 1 -%}")}
|
|
125
|
+
${f("option in product.options_with_values","{%- assign total_combinations = total_combinations | times: option.values.size -%}")}
|
|
124
126
|
<gp-product-variants
|
|
125
127
|
${ec}
|
|
126
128
|
gp-data='{
|
|
@@ -143,11 +145,11 @@ import{composeMemo as e,template as t,DEVICES as s,getResponsiveValueByScreen as
|
|
|
143
145
|
<div class="gp-hidden" style="--hvr-shadow: none; --hvr-shadow-tablet: none; --hvr-shadow-mobile: none"></div>
|
|
144
146
|
${v("{%- assign options = product.options_with_values -%}")}
|
|
145
147
|
${v("{%- assign variants = product.variants -%}")}
|
|
146
|
-
${
|
|
148
|
+
${y("options.size == 0 or options.size == 1 and variants.size == 1 and variants[0].title == 'Default Title' and variants[0].option1 == 'Default Title'","<div></div>",t`<div
|
|
147
149
|
class="${eg}"
|
|
148
150
|
style="${eu}"
|
|
149
151
|
>
|
|
150
|
-
${
|
|
152
|
+
${_(M,ed(),eo())}
|
|
151
153
|
</div>`)}
|
|
152
154
|
</gp-product-variants>
|
|
153
155
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import{template as t,RenderIf as e,isLocalEnv as i,baseAssetURL as
|
|
1
|
+
import{template as t,RenderIf as e,isLocalEnv as i,baseAssetURL as r}from"@gem-sdk/core";import o from"../../../grid/components/row/Row.liquid.js";import{LiquidIf as a,If as d}from"@gem-sdk/system";import{getSettingPreloadData as n,getStaticLocale as s}from"../../../helpers.js";import{getData as c,DYNAMIC_PRODUCT_STATUS as p,STATIC_PRODUCT_STATUS as l,PRODUCT_ID_LATEST as u}from"./common/helpers.js";let Product=f=>{let{children:m,setting:g,style:y,builderProps:v,rawChildren:_,advanced:$}=f,{isSyncProduct:I}=g??{},{rowSetting:S,rowStyles:b,formatVariantId:j,formatProductId:h,productStatus:q,preSelectedOptionIds:V,productHandle:P,advancedStyle:k}=c(f),w=()=>t`
|
|
2
2
|
{%- liquid
|
|
3
3
|
if request.page_type == 'product'
|
|
4
|
-
if '${
|
|
5
|
-
if '${
|
|
4
|
+
if '${q}' == '${l}'
|
|
5
|
+
if '${h}' == '${u}'
|
|
6
6
|
paginate collections.all.products by 100000
|
|
7
7
|
assign product = collections.all.products | sort: 'created_at' | reverse | first
|
|
8
8
|
endpaginate
|
|
9
9
|
else
|
|
10
|
-
assign product = all_products['${
|
|
11
|
-
assign productId = '${
|
|
10
|
+
assign product = all_products['${P}']
|
|
11
|
+
assign productId = '${h}' | times: 1
|
|
12
12
|
if product == empty or product == null
|
|
13
13
|
paginate collections.all.products by 100000
|
|
14
14
|
for item in collections.all.products
|
|
@@ -21,13 +21,13 @@ import{template as t,RenderIf as e,isLocalEnv as i,baseAssetURL as o}from"@gem-s
|
|
|
21
21
|
endif
|
|
22
22
|
endif
|
|
23
23
|
else
|
|
24
|
-
if '${
|
|
24
|
+
if '${h}' == '${u}'
|
|
25
25
|
paginate collections.all.products by 100000
|
|
26
26
|
assign product = collections.all.products | sort: 'created_at'| reverse | first
|
|
27
27
|
endpaginate
|
|
28
28
|
else
|
|
29
|
-
assign product = all_products['${
|
|
30
|
-
assign productId = '${
|
|
29
|
+
assign product = all_products['${P}']
|
|
30
|
+
assign productId = '${h}' | times: 1
|
|
31
31
|
if product == empty or product == null
|
|
32
32
|
paginate collections.all.products by 100000
|
|
33
33
|
for item in collections.all.products
|
|
@@ -40,11 +40,11 @@ import{template as t,RenderIf as e,isLocalEnv as i,baseAssetURL as o}from"@gem-s
|
|
|
40
40
|
endif
|
|
41
41
|
endif
|
|
42
42
|
-%}
|
|
43
|
-
`,
|
|
43
|
+
`,E=()=>t`
|
|
44
44
|
{%- liquid
|
|
45
45
|
if request.page_type != 'product'
|
|
46
|
-
assign product = all_products['${
|
|
47
|
-
assign productId = '${
|
|
46
|
+
assign product = all_products['${P}']
|
|
47
|
+
assign productId = '${h}' | times: 1
|
|
48
48
|
if product == empty or product == null
|
|
49
49
|
paginate collections.all.products by 100000
|
|
50
50
|
for item in collections.all.products
|
|
@@ -56,32 +56,30 @@ import{template as t,RenderIf as e,isLocalEnv as i,baseAssetURL as o}from"@gem-s
|
|
|
56
56
|
endif
|
|
57
57
|
endif
|
|
58
58
|
-%}
|
|
59
|
-
`,
|
|
59
|
+
`,x=()=>t`
|
|
60
60
|
{%- assign gpBkProduct = product -%}
|
|
61
|
-
${
|
|
62
|
-
`,
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
{%- assign
|
|
66
|
-
{%- assign
|
|
67
|
-
${q?"{%- assign variant = product.variants | where: 'id', initVariantId | first -%}":"{%- assign variant = product.selected_or_first_available_variant -%}"}
|
|
68
|
-
${q?"{%- assign productSelectedVariant = product.variants | where: 'id', initVariantId | first -%}":"{%- assign productSelectedVariant = product.selected_or_first_available_variant -%}"}
|
|
61
|
+
${d(q==p,E(),w())}
|
|
62
|
+
`,A=()=>t`
|
|
63
|
+
{%- assign initVariantId = ${j} -%}
|
|
64
|
+
{%- assign product_form_id = 'product-form-' | append: "${v?.uid}" -%}
|
|
65
|
+
${j?"{%- assign variant = product.variants | where: 'id', initVariantId | first -%}":"{%- assign variant = product.selected_or_first_available_variant -%}"}
|
|
66
|
+
${j?"{%- assign productSelectedVariant = product.variants | where: 'id', initVariantId | first -%}":"{%- assign productSelectedVariant = product.selected_or_first_available_variant -%}"}
|
|
69
67
|
{%-if productSelectedVariant == empty or productSelectedVariant == null -%}
|
|
70
68
|
{%- assign productSelectedVariant = product.selected_or_first_available_variant -%}
|
|
71
69
|
{%- endif -%}
|
|
72
70
|
{%-if variant == empty or variant == null -%}
|
|
73
71
|
{%- assign variant = product.selected_or_first_available_variant -%}
|
|
74
72
|
{%- endif -%}
|
|
75
|
-
`,
|
|
76
|
-
<div class="gp-text-center">${
|
|
77
|
-
`,
|
|
78
|
-
${
|
|
73
|
+
`,B=()=>t`
|
|
74
|
+
<div class="gp-text-center">${s("Product","product_not_found")}</div>
|
|
75
|
+
`,G=()=>t`
|
|
76
|
+
${A()}
|
|
79
77
|
<gp-product
|
|
80
|
-
data-uid="${
|
|
81
|
-
data-id="${
|
|
82
|
-
style="${
|
|
83
|
-
class="${
|
|
84
|
-
gp-context='{"productId": {{ product.id }}, "preSelectedOptionIds": [${
|
|
78
|
+
data-uid="${v?.uid}"
|
|
79
|
+
data-id="${v?.uid}"
|
|
80
|
+
style="${k}"
|
|
81
|
+
class="${$?.cssClass}"
|
|
82
|
+
gp-context='{"productId": {{ product.id }}, "preSelectedOptionIds": [${V}], "isSyncProduct": "${I}", "variantSelected": {{ variant | json | escape }}, "inventory_management": {{ variant.inventory_management | json | escape }}, "inventory_policy": {{ variant.inventory_policy | json | escape }}, "inventoryQuantity": {{ variant.inventory_quantity }}, "quantity": 1, "formId": "{{ product_form_id }}" }'
|
|
85
83
|
gp-data='{"variantSelected": {{ variant | json | escape }}, "quantity": 1, "productUrl":{{ product.url | json | escape }}, "productHandle":{{ product.handle | json | escape }}, "collectionUrl": {{ collection.url | json | escape }}, "collectionHandle": {{ collection.handle | json | escape }}}'
|
|
86
84
|
>
|
|
87
85
|
<product-form class="product-form">
|
|
@@ -89,13 +87,13 @@ import{template as t,RenderIf as e,isLocalEnv as i,baseAssetURL as o}from"@gem-s
|
|
|
89
87
|
<input type="hidden" name="id" value="{{ variant.id }}" />
|
|
90
88
|
<input type="hidden" name="quantity" value="{{ quantity }}" />
|
|
91
89
|
<button type="submit" onclick="return false;" style="display:none;"></button>
|
|
92
|
-
${
|
|
90
|
+
${o({builderProps:{...v,uid:v?.uid,uidInteraction:`${v?.uid}-row`},style:y,styles:b,setting:S,children:m,rawChildren:_})}
|
|
93
91
|
{%- endform -%}
|
|
94
92
|
</product-form>
|
|
95
93
|
</gp-product>
|
|
96
94
|
{%- assign product = gpBkProduct -%}
|
|
97
95
|
`;return t`
|
|
98
|
-
${
|
|
99
|
-
${a("product != empty and product != null",
|
|
100
|
-
${e(i,`<script ${
|
|
96
|
+
${x()}
|
|
97
|
+
${a("product != empty and product != null",G(),B())}
|
|
98
|
+
${e(i,`<script ${n('class="gps-link" delay',"src")}="{{ 'gp-product-v7-5.js' | asset_url }}" defer="defer"></script>`,`<script ${n('class="gps-link" delay',"src")}="${r}/assets-v2/gp-product-v7-5.js?v={{ shop.metafields.GEMPAGES.ASSETS_VERSION }}" defer="defer"></script>`)}
|
|
101
99
|
`};export{Product as default};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gem-sdk/components",
|
|
3
|
-
"version": "8.0.0-staging.
|
|
3
|
+
"version": "8.0.0-staging.13",
|
|
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": "8.0.0-staging.
|
|
29
|
+
"@gem-sdk/core": "8.0.0-staging.13",
|
|
30
30
|
"@gem-sdk/styles": "7.0.1-staging.0",
|
|
31
31
|
"@gem-sdk/system": "7.0.1-staging.0",
|
|
32
32
|
"@types/react-transition-group": "^4.4.12",
|