@gem-sdk/components 7.0.1 → 8.0.0-dev.19
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/carousel-v3/hooks/useCarousel.js +1 -1
- package/dist/cjs/countdown-timer/common/helpers.js +1 -1
- package/dist/cjs/countdown-timer/hooks/useTimeLeft.js +1 -1
- package/dist/cjs/post-purchase/product/components/ProductPrice.js +1 -1
- package/dist/cjs/post-purchase/product/constants/ProductOfferPlaceholder.js +1 -1
- package/dist/cjs/post-purchase/product/hooks/useGetMoneyLines.js +1 -1
- package/dist/cjs/product/components/product-badge/ProductBadge.liquid.js +10 -10
- package/dist/cjs/product/components/product-badge/common/styles.js +1 -1
- package/dist/cjs/product/components/product-badge/utils/common.js +1 -1
- package/dist/cjs/product/components/product-badge/utils/renderBadgeLiquid.js +3 -4
- package/dist/cjs/product/components/product-button/hooks/useAddToCart.js +1 -1
- package/dist/cjs/product/components/product-discount-tag/hooks/useGpDiscountTag.js +1 -1
- package/dist/cjs/product/components/product-list/ProductListCarouselItem.liquid.js +1 -1
- package/dist/cjs/product/components/product-list/ProductListGridItem.liquid.js +1 -1
- package/dist/cjs/product/components/product-list-v3/ProductList.js +1 -1
- package/dist/cjs/product/components/product-list-v3/ProductListCarouselItem.liquid.js +1 -1
- package/dist/cjs/product/components/product-list-v3/ProductListGridItem.liquid.js +1 -1
- package/dist/cjs/product/components/product-price/hooks/useGpPrice.js +1 -1
- package/dist/cjs/product/components/product-variants/OptionVariantsNewFormat.liquid.js +41 -0
- package/dist/cjs/product/components/product-variants/OptionVariantsOldFormat.liquid.js +66 -0
- package/dist/cjs/product/components/product-variants/ProductVariants.liquid.js +25 -79
- package/dist/cjs/product/components/product-variants/common/base/styles.js +1 -1
- package/dist/cjs/product/components/product-variants/common/const.js +1 -0
- package/dist/cjs/product/components/product-variants/components/color/color.liquid.js +3 -3
- package/dist/cjs/product/components/product-view-more/ProductViewMore.liquid.js +1 -1
- package/dist/cjs/product/components/product-view-more/common/helpers.js +1 -1
- package/dist/cjs/product/components/product-wrap/Product.liquid.js +12 -10
- package/dist/cjs/product/helpers/product-bundle.js +1 -1
- package/dist/cjs/third-party/settings/BonLoyaltyRewardsReferrals/index.js +1 -1
- package/dist/esm/carousel-v3/components/swiper/Swiper.js +1 -1
- package/dist/esm/carousel-v3/hooks/useCarousel.js +1 -1
- package/dist/esm/countdown-timer/common/helpers.js +1 -1
- package/dist/esm/countdown-timer/hooks/useTimeLeft.js +1 -1
- package/dist/esm/post-purchase/product/components/ProductPrice.js +1 -1
- package/dist/esm/post-purchase/product/constants/ProductOfferPlaceholder.js +1 -1
- package/dist/esm/post-purchase/product/hooks/useGetMoneyLines.js +1 -1
- package/dist/esm/product/components/product-badge/ProductBadge.liquid.js +21 -21
- package/dist/esm/product/components/product-badge/common/styles.js +1 -1
- package/dist/esm/product/components/product-badge/utils/common.js +1 -1
- package/dist/esm/product/components/product-badge/utils/renderBadgeLiquid.js +3 -4
- package/dist/esm/product/components/product-button/hooks/useAddToCart.js +1 -1
- package/dist/esm/product/components/product-discount-tag/hooks/useGpDiscountTag.js +1 -1
- package/dist/esm/product/components/product-list/ProductListCarouselItem.liquid.js +3 -3
- package/dist/esm/product/components/product-list/ProductListGridItem.liquid.js +4 -4
- package/dist/esm/product/components/product-list-v3/ProductList.js +1 -1
- package/dist/esm/product/components/product-list-v3/ProductListCarouselItem.liquid.js +3 -3
- package/dist/esm/product/components/product-list-v3/ProductListGridItem.liquid.js +4 -4
- package/dist/esm/product/components/product-price/hooks/useGpPrice.js +1 -1
- package/dist/esm/product/components/product-variants/OptionVariantsNewFormat.liquid.js +41 -0
- package/dist/esm/product/components/product-variants/OptionVariantsOldFormat.liquid.js +66 -0
- package/dist/esm/product/components/product-variants/ProductVariants.liquid.js +40 -94
- package/dist/esm/product/components/product-variants/common/base/styles.js +1 -1
- package/dist/esm/product/components/product-variants/common/const.js +1 -0
- package/dist/esm/product/components/product-variants/components/color/color.liquid.js +3 -3
- package/dist/esm/product/components/product-view-more/ProductViewMore.liquid.js +1 -1
- package/dist/esm/product/components/product-view-more/common/helpers.js +1 -1
- package/dist/esm/product/components/product-wrap/Product.liquid.js +33 -31
- package/dist/esm/product/helpers/product-bundle.js +1 -1
- package/dist/esm/third-party/settings/BonLoyaltyRewardsReferrals/index.js +1 -1
- package/package.json +4 -4
|
@@ -1,6 +1,8 @@
|
|
|
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:
|
|
2
|
-
|
|
3
|
-
${system.
|
|
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"),OptionVariantsNewFormat_liquid=require("./OptionVariantsNewFormat.liquid.js"),OptionVariantsOldFormat_liquid=require("./OptionVariantsOldFormat.liquid.js");const DEFAULT_ADVANCED_DISPLAY_SETTING={desktop:!0,tablet:!0,mobile:!0},ProductVariants=e=>{let{builderProps:t,styles:s,setting:i,advanced:a}=e,{align:o,swatchItemWidth:n,dropdownItemWidth:r,swatchSpacing:l,optionTypo:p,marginBottom:d}=s??{},{label:u,optionType:m,showAsSwatches:c,layout:y,hasPreSelected:v}=i??{},f=a?.d??DEFAULT_ADVANCED_DISPLAY_SETTING,{uid:g}=t??{},_="groupOption"===m,q=()=>{let e={};return core.DEVICES.forEach(t=>{let s=core.getResponsiveValueByScreen(n,t);e[t]="auto"===s}),e},$=()=>{let e={};return core.DEVICES.forEach(t=>{e[t]=r?.[t]==="fill"}),e},h=i?.variantPresets?mappingVariantStyles.mappingVariantStyles(i?.variantPresets,s):[],S=h?.map(e=>({...e,presets:{[e.optionType]:e.presets[e.optionType]}})),j={...i,variantPresetsOptionType:S},w=e=>{let t={"'":"'",'"':"""},s=e;for(let i in t)e.indexOf(i)>=0&&(s=s.replaceAll(i,t[i]));return s},V=()=>i?.variantPresets?.map(e=>`${w(e.optionName)}($2)${e.optionType}`).join("($1)"),D=()=>i?.variantPresets?.filter(e=>!!e?.hide)?.map(e=>e.optionName).join(","),L=({showDropdown:e,isRenderDefault:t,typeOfOption:i})=>core.template`
|
|
2
|
+
${system.LiquidFor("value in values",index_liquid.default({id:"{{option.name | escape}}-{{value | escape}}",variantKey:"{{option.name | escape}}-{{option.position}}-{{ forloop.index }}",showAsSwatches:c,uid:g,name:"{{option.name | escape}}",value:{label:"{{value | escape}}"},checked:v?"{%- if option.selected_value == value -%}true{% else %}false{%- endif -%}":"false",optionPosition:"rootForloop",typeOfOption:i,activeClass:v?"{%- if option.selected_value == value -%}option-item-active{%- endif -%}":"",...s,...j,swatchAutoWidth:q(),optionTypo:p,isRenderDefault:t}))}
|
|
3
|
+
${system.LiquidIf(e?'type == "dropdown"':"false",Dropdown_liquid.default({...s,...j,swatchAutoWidth:$(),optionTypo:p}))}`,O=i?.variantPresets?.map(e=>({name:w(e.optionName),type:e.optionType})).map(e=>`${e.name}($1)${e.type}`).join("($2)").toString(),A={renderVariantItem:L,variantPresetsLiquid:O??""},E=system.createClass(classes.getVariantOptionGroupClass(o)),P=system.createStyle(styles.getVariantOptionGroupStyle(l,l)),b=getData.getTextVariantTitleData(e,"Liquid"),x=system.createClass(classes$1.getWrapVariantOptionClass(y,o)),T=()=>core.template`
|
|
4
|
+
${system.Liquid(`{%- assign presets = "${V()}" | split: '($1)' -%}`)}
|
|
5
|
+
${system.Liquid(`{% assign hiddenPresetOptions = "${D()}" | split: ',' %}`)}
|
|
4
6
|
|
|
5
7
|
${system.Liquid(`{% assign all_option_names = options | map: 'name' %}
|
|
6
8
|
{% assign filtered_options_string = '' %}
|
|
@@ -30,7 +32,7 @@
|
|
|
30
32
|
${system.LiquidFor("option in options",`
|
|
31
33
|
<div
|
|
32
34
|
option-name="{{option.name | escape}}"
|
|
33
|
-
class="${
|
|
35
|
+
class="${x} ${system.LiquidIf("hiddenPresetOptions contains option.name","gp-hidden")}"
|
|
34
36
|
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
37
|
>
|
|
36
38
|
${system.Liquid("{%- assign showVariantClass = 'variant-display' -%}")}
|
|
@@ -39,11 +41,11 @@
|
|
|
39
41
|
${system.Liquid("{%- assign presetDetail = preset | split: '($2)' -%}")}
|
|
40
42
|
${system.LiquidIf("presetDetail[1] == 'dropdown' and presetDetail[0] == optionName",`${system.Liquid("{%- assign showVariantClass = '' -%}")} ${system.Liquid("{%- break -%}")}`)}
|
|
41
43
|
`)}
|
|
42
|
-
${system.If(u,Text_liquid.default(
|
|
44
|
+
${system.If(u,Text_liquid.default(b)," ")}
|
|
43
45
|
<div
|
|
44
46
|
variant-option-name="{{option.name | escape}}"
|
|
45
|
-
class="${
|
|
46
|
-
style="${_function.getStyleOfObject(
|
|
47
|
+
class="${E}"
|
|
48
|
+
style="${_function.getStyleOfObject(P)}"
|
|
47
49
|
>
|
|
48
50
|
${system.Liquid("{%- assign values = option.values -%}")}
|
|
49
51
|
${system.Liquid("{%- assign rootForloop = forloop.index0 -%}")}
|
|
@@ -56,78 +58,22 @@
|
|
|
56
58
|
{%- assign selectedValue = variant.option3 -%}
|
|
57
59
|
{%- endif -%}
|
|
58
60
|
`)}
|
|
59
|
-
${system.If(!
|
|
60
|
-
${system.If(c,
|
|
61
|
+
${system.If(!v,system.Liquid("{%- assign selectedValue = null -%}"),"")}
|
|
62
|
+
${system.If(c,I(),L({showDropdown:!1,isRenderDefault:!0,typeOfOption:"optionType"}))}
|
|
61
63
|
</div>
|
|
62
64
|
</div>`)}
|
|
63
|
-
`,
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
${system.LiquidFor("swatchesItem in swatchesItems",`
|
|
69
|
-
${system.Liquid('{%- assign colorArraysString = "" -%}')}
|
|
70
|
-
${system.Liquid('{%- assign labelsString = "" -%}')}
|
|
71
|
-
${system.Liquid('{%- assign imageUrlsString = "" -%}')}
|
|
72
|
-
${system.Liquid("{%- assign attrItems = swatchesItem | split: '($3)' -%}")}
|
|
73
|
-
|
|
74
|
-
${system.LiquidFor("attrItem in attrItems",`${system.Liquid("{%- assign attrs = attrItem | split: '($2)' -%}")}
|
|
75
|
-
${system.Liquid("{%- assign optionKey = attrs[0] -%}")}
|
|
76
|
-
${system.Liquid("{%- assign optionValue = attrs[1] -%}")}
|
|
77
|
-
${system.Liquid(`
|
|
78
|
-
{% if optionKey == 'optionTitle' %}
|
|
79
|
-
{% assign optionTitle = optionValue %}
|
|
80
|
-
{% elsif optionKey == 'optionType' %}
|
|
81
|
-
{% assign optionType = optionValue %}
|
|
82
|
-
{% endif %}
|
|
83
|
-
`)}
|
|
84
|
-
|
|
85
|
-
${system.LiquidIf("optionKey == 'optionValues'",`${system.Liquid("{%- assign opValueItems = optionValue | split: '($4)' -%}")}
|
|
86
|
-
${system.LiquidFor("opValueItem in opValueItems",`${system.Liquid("{%- assign opValueItemAttrs = opValueItem | split: '($6)' -%}")}
|
|
87
|
-
${system.LiquidFor("opValueItemAttr in opValueItemAttrs",`${system.Liquid("{%- assign attrs = opValueItemAttr | split: '($5)' -%}")}
|
|
88
|
-
${system.Liquid("{%- assign opValueItemKey = attrs[0] -%}")}
|
|
89
|
-
${system.Liquid("{%- assign opValueItemValue = attrs[1] -%}")}
|
|
90
|
-
|
|
91
|
-
${system.LiquidIf("opValueItemKey == 'label'",`${system.Liquid("{%- assign labelsString = labelsString | append: opValueItemValue -%}")}${system.Liquid('{%- assign labelsString = labelsString | append: "($8)" -%}')}`)}
|
|
92
|
-
|
|
93
|
-
${system.LiquidIf("opValueItemKey == 'colors'",`${system.Liquid("{%- assign colorArraysString = colorArraysString | append: opValueItemValue -%}")}${system.Liquid('{%- assign colorArraysString = colorArraysString | append: "($8)" -%}')}`)}
|
|
94
|
-
|
|
95
|
-
${system.LiquidIf("opValueItemKey == 'imageUrl'",`${system.Liquid("{%- assign imageUrlsString = imageUrlsString | append: opValueItemValue -%}")}${system.Liquid('{%- assign imageUrlsString = imageUrlsString | append: "($8)" -%}')}`)}`)}`)}`)}
|
|
96
|
-
`)}
|
|
97
|
-
|
|
98
|
-
${system.Liquid("{%- assign labels = labelsString | split: '($8)' -%}")}
|
|
99
|
-
${system.Liquid("{%- assign colorStrings = colorArraysString | split: '($8)' -%}")}
|
|
100
|
-
${system.Liquid("{%- assign imageUrls = imageUrlsString | split: '($8)' -%}")}
|
|
101
|
-
|
|
102
|
-
${system.LiquidIf("optionTitle == option.name",`
|
|
103
|
-
${system.Liquid(`{%- assign variantPresetString = "${D}" -%}`)}
|
|
104
|
-
${system.Liquid('{%- assign optionName = option.name | replace: "\'", "'" | replace: \'"\', """ -%}')}
|
|
105
|
-
${system.Liquid("{%- assign items = variantPresetString | split:'($2)' -%}")}
|
|
106
|
-
${system.Liquid("{%- assign type = 'dropdown' -%}")}
|
|
107
|
-
${system.LiquidFor("item in items",`
|
|
108
|
-
${system.Liquid("{%- assign itemPreset = item | split:'($1)' -%}")}
|
|
109
|
-
${system.LiquidIf("itemPreset[0] == optionName",system.Liquid("{%- assign type = itemPreset[1] -%}"))}
|
|
110
|
-
${system.LiquidIf('itemPreset[0] == "base"',system.Liquid("{%- assign type = itemPreset[1] -%}"))}
|
|
111
|
-
`)}
|
|
112
|
-
${system.Liquid("{%- assign optionRendered = true -%}")}
|
|
113
|
-
${system.LiquidFor("value in values",index_liquid.default({id:"{{option.name | escape}}-{{value | escape}}",variantKey:"{{option.name | escape}}-{{option.position}}-{{ forloop.index }}",showAsSwatches:c,uid:v,name:"{{option.name | escape}}",value:{label:"{{value | escape}}"},checked:g?"{%- if option.selected_value == value -%}true{% else %}false{%- endif -%}":"false",optionPosition:"rootForloop",optionType:"optionType",activeClass:g?"{%- if option.selected_value == value -%}option-item-active{%- endif -%}":"",...t,...L,swatchAutoWidth:f(),optionTypo:p}))}
|
|
114
|
-
${system.LiquidIf("type == 'dropdown'",Dropdown_liquid.default({...t,...L,swatchAutoWidth:_(),optionTypo:p}))}
|
|
115
|
-
`)}
|
|
116
|
-
`)}
|
|
117
|
-
|
|
118
|
-
${system.LiquidIf("optionRendered == false",T())}
|
|
119
|
-
`,T=()=>system.LiquidFor("value in values",index_liquid.default({id:"{{option.name | escape}}-{{value | escape}}",variantKey:"{{option.name | escape}}-{{option.position}}-{{ forloop.index }}",showAsSwatches:c,uid:v,name:"{{option.name | escape}}",value:{label:"{{value | escape}}"},checked:g?"{%- if option.selected_value == value -%}true{% else %}false{%- endif -%}":"false",optionPosition:"rootForloop",typeOfOption:"optionType",activeClass:g?"{%- if option.selected_value == value -%}option-item-active{%- endif -%}":"",...t,...L,swatchAutoWidth:f(),optionTypo:p,isRenderDefault:!0})),x=system.createClass(classes.getWrapDropdownClass(o)),O=getData.getDropdownGroupData(e),C=()=>`
|
|
120
|
-
<div className="${x}">
|
|
121
|
-
${DropdownGroup_liquid.default(O)}
|
|
65
|
+
`,I=()=>core.template`
|
|
66
|
+
${system.LiquidIf("shop.metafields.GEMPAGES.swatches and shop.metafields.GEMPAGES.swatchesJSONFormat != blank",OptionVariantsNewFormat_liquid.renderOptionValuesNewFormatSwatches(A),OptionVariantsOldFormat_liquid.renderOptionValuesOld(A))}
|
|
67
|
+
`,N=system.createClass(classes.getWrapDropdownClass(o)),C=getData.getDropdownGroupData(e),F=()=>`
|
|
68
|
+
<div className="${N}">
|
|
69
|
+
${DropdownGroup_liquid.default(C)}
|
|
122
70
|
</div>
|
|
123
|
-
|
|
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 -%}")}
|
|
71
|
+
`,G=system.createAttr(getAttr.getAttrs({uid:g,hasPreSelected:v,cssClass:a?.cssClass})),k=system.createStyle(styles.getWrapperStyle(e)),W=system.createClass({"gp-flex gp-flex-col !gp-ml-0":!0}),M=()=>{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`
|
|
126
72
|
<gp-product-variants
|
|
127
|
-
${
|
|
73
|
+
${G}
|
|
128
74
|
gp-data='{
|
|
129
|
-
"setting":${JSON.stringify(
|
|
130
|
-
"styles":${JSON.stringify(
|
|
75
|
+
"setting":${JSON.stringify(j)?.replaceAll("'","'")},
|
|
76
|
+
"styles":${JSON.stringify(s)},
|
|
131
77
|
"variants":{{product.variants | json | escape}},
|
|
132
78
|
"optionsWithValues": {{product.options_with_values | json | escape}},
|
|
133
79
|
"variantSelected": {{ variant | json | escape }},
|
|
@@ -137,7 +83,7 @@
|
|
|
137
83
|
"productId": {{product.id | json | escape}},
|
|
138
84
|
"productUrl": {{product.url | json | escape}},
|
|
139
85
|
"productHandle": {{product.handle | json | escape}},
|
|
140
|
-
"displayState": ${JSON.stringify(
|
|
86
|
+
"displayState": ${JSON.stringify(f)},
|
|
141
87
|
"totalVariantCombinations": {{total_combinations}},
|
|
142
88
|
"firstAvailableVariant": {{product.selected_or_first_available_variant | json | escape}}
|
|
143
89
|
}
|
|
@@ -146,12 +92,12 @@
|
|
|
146
92
|
${system.Liquid("{%- assign options = product.options_with_values -%}")}
|
|
147
93
|
${system.Liquid("{%- assign variants = product.variants -%}")}
|
|
148
94
|
${system.LiquidIf("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>",core.template`<div
|
|
149
|
-
class="${
|
|
150
|
-
style="${
|
|
95
|
+
class="${W}"
|
|
96
|
+
style="${k}"
|
|
151
97
|
>
|
|
152
|
-
${system.If(
|
|
98
|
+
${system.If(_,F(),T())}
|
|
153
99
|
</div>`)}
|
|
154
100
|
</gp-product-variants>
|
|
155
101
|
|
|
156
|
-
${
|
|
102
|
+
${M()}
|
|
157
103
|
`};exports.default=ProductVariants;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var core=require("@gem-sdk/core"),helpers=require("../../../../../helpers.js");const getColorStyleWidth=e=>{let t=e?.height||"32px",o=e?.width||{desktop:t},r=Object.fromEntries(Object.entries(o).map(([e,o])=>{let r=o&&"undefined"!==o&&"auto"!==o?o:t;return[e,r]}));return core.makeStyleResponsive("minw",r)},getWrapperStyleActive=e=>{let{preset:t,optionTypography:o,optionTypo:r,typeOfOption:l}=e,a=t?.optionBgColor,p=t?.optionTextColor,i=t?.optionBorder,n=t?.optionHasShadow,c=t?.optionShadow,d=t?.optionRounded,h="color"===l,s="image"===l||"image_shopify"===l,y=core.composeTypographyStyle(r,o),S=e=>{let t=a?.active??a?.normal,o=i?.active??i?.normal;return core.makeStyle({bg:e&&core.getSingleColorVariable(t),bs:o?.border,bw:o?.width,bc:core.getSingleColorVariable(o?.color)})},g=c?.active??c?.normal,
|
|
1
|
+
"use strict";var core=require("@gem-sdk/core"),helpers=require("../../../../../helpers.js");const getColorStyleWidth=e=>{let t=e?.height||"32px",o=e?.width||{desktop:t},r=Object.fromEntries(Object.entries(o).map(([e,o])=>{let r=o&&"undefined"!==o&&"auto"!==o?o:t;return[e,r]}));return core.makeStyleResponsive("minw",r)},getWrapperStyleActive=e=>{let{preset:t,optionTypography:o,optionTypo:r,typeOfOption:l}=e,a=t?.optionBgColor,p=t?.optionTextColor,i=t?.optionBorder,n=t?.optionHasShadow,c=t?.optionShadow,d=t?.optionRounded,h="color"===l,s="image"===l||"image_shopify"===l,y=core.composeTypographyStyle(r,o),S=e=>{let t=a?.active??a?.normal,o=i?.active??i?.normal;return core.makeStyle({bg:e&&core.getSingleColorVariable(t),bs:o?.border,bw:o?.width,bc:core.getSingleColorVariable(o?.color)})},g=c?.active??c?.normal,u=n?.active??n?.normal,b=p?.active??p?.normal;return helpers.filterTruthyObject({...S(!h),...core.getRadiusStyleActiveState(d),...core.getStyleShadow({value:g,state:"active",styleAppliedFor:"box-shadow",isEnableShadow:u},!0),...y,...!h&&!s&&core.makeStyle({c:core.getSingleColorVariable(b)}),...h&&getColorStyleWidth(t),...core.makeStyle({h:t?.height})})},getWrapperStyleNormalAndHover=e=>{let{preset:t,optionTransform:o,optionTypography:r,optionTypo:l,typeOfOption:a}=e,p=t?.optionBgColor,i=t?.optionTextColor,n=t?.optionBorder,c=t?.optionHasShadow,d=t?.optionShadow,h=t?.optionRounded,s="color"===a,y="image"===a||"image_shopify"===a,S=["normal","hover"].reduce((e,t)=>({...e,...core.getStyleShadow({value:d?.[t],state:t,styleAppliedFor:"box-shadow",isEnableShadow:c?.[t]})}),{});return helpers.filterTruthyObject({...core.composeRadius(h),...S,...!s&&core.getGlobalColorStateStyle("bg",p),...!s&&core.handleConvertBorderStyle(n),...!s&&core.handleConvertBorderWidth(n),...!s&&core.handleConvertBorderColor(n),...!s&&!y&&core.makeStyle({c:o}),...!s&&!y&&core.getGlobalColorStateStyle("c",i),...typoStyleNotIn(l,r,["--c"]),...s&&getColorStyleWidth(t),...core.makeStyle({h:t?.height})})};function typoStyleNotIn(e,t,o){let r=core.composeTypographyStyle(e,t);return o&&0!==o.length?Object.fromEntries(Object.entries(r).filter(([e])=>!o.includes(e))):r}const getWrapperTextStyle=e=>{let{preset:t,typeOfOption:o,checked:r}=e,l=t?.optionBorder,a=t?.optionRounded,p="color"===o,i=()=>{let e="16px",o={"--pl":"0px","--pr":"0px","--pl-tablet":"0px","--pr-tablet":"0px","--pl-mobile":"0px","--pr-mobile":"0px","--pt":"0px","--pb":"0px"};return t?.width?.desktop?.toLowerCase()!=="auto"&&t?.width?.desktop||(o["--pl"]=e,o["--pr"]=e),t?.width?.tablet?.toLowerCase()!=="auto"&&t?.width?.tablet||(o["--pl-tablet"]=e,o["--pr-tablet"]=e),t?.width?.mobile?.toLowerCase()!=="auto"&&t?.width?.mobile||(o["--pl-mobile"]=e,o["--pr-mobile"]=e),(t?.height?.toLowerCase()==="auto"||t?.height)&&(o["--pt"]="8px",o["--pb"]="8px"),o},n={...a,active:{...a?.active||{},radiusType:"custom"}},c=r?core.getRadiusStyleActiveState(n):core.composeRadius(a),d=!r&&p?{...core.handleConvertBorderStyle(l),...core.handleConvertBorderWidth(l),...core.handleConvertBorderColor(l)}:{};return helpers.filterTruthyObject({...!p&&i(),...p&&c,...d})},getColorStyle=({optionBorder:e,optionRounded:t,isActive:o,color:r})=>{let l=()=>r?r?.startsWith("linear-gradient")?{backgroundImage:r}:{backgroundColor:r}:{},a=t=>t?{"--bs":"none"}:core.handleConvertBorderStyle(e),p=o=>({"--d":"flex","--jc":"center"," --ai":"center","--w":"100%","--h":"100%","--of":"hidden","--hvr-c":"unset",...a(o),...core.handleConvertBorderWidth(e),...core.handleConvertBorderColor(e),...core.composeRadius(t),...l()});return p(!!o)},getTextStyle=({optionTypo:e,optionTypography:t})=>{let o=core.composeTypographyStyle(e,t);return delete o["--c"],helpers.filterTruthyObject({...o})};exports.getColorStyle=getColorStyle,exports.getTextStyle=getTextStyle,exports.getWrapperStyleActive=getWrapperStyleActive,exports.getWrapperStyleNormalAndHover=getWrapperStyleNormalAndHover,exports.getWrapperTextStyle=getWrapperTextStyle;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const OPTION_VALUES_DELIMITER="|||";exports.OPTION_VALUES_DELIMITER="|||";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var core=require("@gem-sdk/core"),base_liquid=require("../base/base.liquid.js"),mappingVariantStyles=require("../../utils/mappingVariantStyles.js");const ColorVariant=({isVariantOutStock:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var core=require("@gem-sdk/core"),base_liquid=require("../base/base.liquid.js"),mappingVariantStyles=require("../../utils/mappingVariantStyles.js"),_const=require("../../common/const.js");const ColorVariant=({isVariantOutStock:o,swatchValue:e,...r})=>core.template`
|
|
2
2
|
{% assign colorsString = null %}
|
|
3
3
|
{% assign colors = null %}
|
|
4
4
|
{% for label in labels %}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
{% endif %}
|
|
8
8
|
{% endfor %}
|
|
9
9
|
{% if colorsString != null %}
|
|
10
|
-
{% assign colors = colorsString | split: '
|
|
10
|
+
{% assign colors = colorsString | split: '${_const.OPTION_VALUES_DELIMITER}' %}
|
|
11
11
|
{% endif %}
|
|
12
|
-
${base_liquid.default({...
|
|
12
|
+
${base_liquid.default({...r,typeOfOption:"color",optionRounded:mappingVariantStyles.optionRoundedColorDefault})}
|
|
13
13
|
`;exports.default=ColorVariant;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var system=require("@gem-sdk/system"),styles=require("./common/styles.js"),helpers$1=require("../../../helpers.js"),Button_liquid=require("../../../button/components/Button.liquid.js"),core=require("@gem-sdk/core"),helpers=require("./common/helpers.js");const ProductViewMore=({style:e,styles:s,setting:t,advanced:r,builderProps:o,builderAttrs:i,pageContext:l})=>core.template`
|
|
2
2
|
<gp-product-view-more>
|
|
3
|
-
${Button_liquid.default({styles:s,advanced:r,builderProps:o,builderAttrs:i,setting:{...helpers.getButtonSettings(t),...helpers.getButtonLiquidSettings(t)},style:{...styles.getButtonStyle(e,s)},pageContext:l,className:"btn-view-more"})}
|
|
3
|
+
${Button_liquid.default({styles:s,advanced:r,builderProps:o,builderAttrs:i,setting:{...helpers.getButtonSettings(t),...helpers.getButtonLiquidSettings(t,l)},style:{...styles.getButtonStyle(e,s)},pageContext:l,className:"btn-view-more"})}
|
|
4
4
|
${system.If(core.isLocalEnv,`<script ${helpers$1.getSettingPreloadData('class="gps-link" delay',"src")}="{{ 'gp-product-view-more-v7-5.js' | asset_url }}" defer="defer"></script>`,`<script ${helpers$1.getSettingPreloadData('class="gps-link" delay',"src")}="${core.baseAssetURL}/assets-v2/gp-product-view-more-v7-5.js?v={{ shop.metafields.GEMPAGES.ASSETS_VERSION }}" defer="defer"></script>`)}
|
|
5
5
|
</gp-product-view-more>
|
|
6
6
|
`;exports.default=ProductViewMore;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const getButtonSettings=t=>{let{label:e,iconSvg:n,iconAlign:i,iconVisible:u,shouldClearSpace:
|
|
1
|
+
"use strict";const getButtonSettings=t=>{let{label:e,iconSvg:n,iconAlign:i,iconVisible:u,shouldClearSpace:l,enableHoverEffect:o}=t??{};return{label:e,iconSvg:n,iconAlign:i,iconVisible:u,shouldClearSpace:l,htmlType:"submit",enableHoverEffect:o}},getButtonLiquidSettings=(t,e)=>{let{translate:n,redirectNewTab:i}=t??{},u=e?.hasCollectionHandle?"{% if collection %}{{ collection.url }}{{ product.url }}{% else %}{{ product.url }}{% endif %}":"{{ product.url }}";return{translate:n,btnLink:{link:u,target:i?"_blank":"_self"},enableBtnLink:!0}};exports.getButtonLiquidSettings=getButtonLiquidSettings,exports.getButtonSettings=getButtonSettings;
|
|
@@ -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:i,style:r,builderProps:a,rawChildren:o,advanced:s}=e,{isSyncProduct:d}=i??{},{rowSetting:n,rowStyles:c,formatVariantId:l,formatProductId:p,productStatus:u,preSelectedOptionIds:f,productHandle:m,advancedStyle:g}=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['${m}']
|
|
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['${m}']
|
|
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['${m}']
|
|
47
47
|
assign productId = '${p}' | times: 1
|
|
48
48
|
if product == empty or product == null
|
|
49
49
|
paginate collections.all.products by 100000
|
|
@@ -60,6 +60,8 @@
|
|
|
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 -%}")}
|
|
63
65
|
{%- assign initVariantId = ${l} -%}
|
|
64
66
|
{%- assign product_form_id = 'product-form-' | append: "${a?.uid}" -%}
|
|
65
67
|
${l?"{%- assign variant = product.variants | where: 'id', initVariantId | first -%}":"{%- assign variant = product.selected_or_first_available_variant -%}"}
|
|
@@ -72,14 +74,14 @@
|
|
|
72
74
|
{%- endif -%}
|
|
73
75
|
`,S=()=>core.template`
|
|
74
76
|
<div class="gp-text-center">${helpers$1.getStaticLocale("Product","product_not_found")}</div>
|
|
75
|
-
`,
|
|
77
|
+
`,h=()=>core.template`
|
|
76
78
|
${$()}
|
|
77
79
|
<gp-product
|
|
78
80
|
data-uid="${a?.uid}"
|
|
79
81
|
data-id="${a?.uid}"
|
|
80
|
-
style="${
|
|
81
|
-
class="${
|
|
82
|
-
gp-context='{"productId": {{ product.id }}, "preSelectedOptionIds": [${f}], "isSyncProduct": "${
|
|
82
|
+
style="${g}"
|
|
83
|
+
class="${s?.cssClass}"
|
|
84
|
+
gp-context='{"productId": {{ product.id }}, "preSelectedOptionIds": [${f}], "isSyncProduct": "${d}", "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 }}" }'
|
|
83
85
|
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 }}}'
|
|
84
86
|
>
|
|
85
87
|
<product-form class="product-form">
|
|
@@ -87,13 +89,13 @@
|
|
|
87
89
|
<input type="hidden" name="id" value="{{ variant.id }}" />
|
|
88
90
|
<input type="hidden" name="quantity" value="{{ quantity }}" />
|
|
89
91
|
<button type="submit" onclick="return false;" style="display:none;"></button>
|
|
90
|
-
${Row_liquid.default({builderProps:{...a,uid:a?.uid,uidInteraction:`${a?.uid}-row`},style:
|
|
92
|
+
${Row_liquid.default({builderProps:{...a,uid:a?.uid,uidInteraction:`${a?.uid}-row`},style:r,styles:c,setting:n,children:t,rawChildren:o})}
|
|
91
93
|
{%- endform -%}
|
|
92
94
|
</product-form>
|
|
93
95
|
</gp-product>
|
|
94
96
|
{%- assign product = gpBkProduct -%}
|
|
95
97
|
`;return core.template`
|
|
96
98
|
${v()}
|
|
97
|
-
${system.LiquidIf("product != empty and product != null",
|
|
99
|
+
${system.LiquidIf("product != empty and product != null",h(),S())}
|
|
98
100
|
${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>`)}
|
|
99
101
|
`};exports.default=Product;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var core=require("@gem-sdk/core"),productBundle=require("../components/constants/product-bundle.js");const noDiscount=e=>({discountPercentAmount:0,discountAmount:core.formatMoney("0",e)}),applyBundleDiscountAmount=e=>{let{currentVariant:t,bundleItem:
|
|
1
|
+
"use strict";var core=require("@gem-sdk/core"),productBundle=require("../components/constants/product-bundle.js");const noDiscount=e=>({discountPercentAmount:0,discountAmount:core.formatMoney("0",e)}),applyBundleDiscountAmount=e=>{let{currentVariant:t,bundleItem:o,options:n}=e;if(!n?.useProductCompareAtPrice&&o?.discountType===productBundle.DiscountType.NoDiscount||!o||!t?.price)return noDiscount(n?.moneyFormat||"${{amount}}");let u=core.convertDecimalToNumber(t?.price)??0,c=core.convertDecimalToNumber(t?.salePrice)??u,r=Number(o?.quantity),i=calculateBundleFixedDiscount(u,o),a=discountPercentAmount(i,r*u),d=u*r-i,s=c*r;return c<=u&&i<=0?noDiscount(n?.moneyFormat||"${{amount}}"):{discountPercentAmount:n?.useProductCompareAtPrice?calculateDiffPercentPrice(d,s):a,discountAmount:n?.useProductCompareAtPrice?calculateDiffFixedPrice(d,s,n?.moneyFormat):core.formatMoney(i.toString(),n?.moneyFormat)}},calculateDiffPercentPrice=(e,t)=>{let o=(t-e)/t*100;return Math.round(o)},calculateDiffFixedPrice=(e,t,o)=>core.formatMoney((t-e).toString(),o),calculateBundleFixedDiscount=(e,t)=>{let o=parseInt(t?.discountValue);return t?.discountType===productBundle.DiscountType.Percentage?e*t.quantity*o/100:t?.discountType===productBundle.DiscountType.FixedAmount?o:0},discountPercentAmount=(e,t)=>Math.round(e/t*100);exports.applyBundleDiscountAmount=applyBundleDiscountAmount;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var BonLoyaltyRewardsReferrals=require("../../configs/BonLoyaltyRewardsReferrals.js"),uiV1=require("./uiV1.js"),uiV2=require("./uiV2.js"),helpers=require("../../common/helpers.js");const config={tag:BonLoyaltyRewardsReferrals.default.tag,label:BonLoyaltyRewardsReferrals.default.label,icon:'<img class="gp-w-[24px] gp-border gp-border-[#494949] gp-rounded-[3px]" src="https://cdn.shopify.com/app-store/listing_images/f367f56199c88dba9296f532dfc5b383/icon/CLS4vPSugoUDEAE=.jpeg?width=22&height=22">',editorConfigs:{component:{isThirdParty:!0}},presets:[{id:BonLoyaltyRewardsReferrals.default.id,name:{en:BonLoyaltyRewardsReferrals.default.label},hideTextContent:!0,icon:{desktop:`<div class="w-full flex flex-col items-center">
|
|
2
2
|
<img class="w-24 border border-dark-200 rounded-medium" src="https://cdn.shopify.com/app-store/listing_images/f367f56199c88dba9296f532dfc5b383/icon/CLS4vPSugoUDEAE=.jpeg?width=22&height=22">
|
|
3
3
|
<span class="preset-item-title">BON: Loyalty Rewards Referrals</span>
|
|
4
|
-
</div>`},components:[{tag:BonLoyaltyRewardsReferrals.default.tag}]}],settings:[{id:"setting",controls:[{id:"appBlockId",type:"input",default:""},{id:"widgetType",label:"Choose widget",type:"select",options:[{label:"Loyalty Page Block",value:"loyalty-page-block"},{label:"Loyalty Page Earning Block",value:"loyalty-page-earning-block"},{label:"Loyalty Page Header Block",value:"loyalty-page-header-block"},{label:"Loyalty Page Profile Block",value:"loyalty-page-profile-block"},{label:"Loyalty Page Redeem Block",value:"loyalty-page-redeem-block"},{label:"Loyalty Page Referral Block",value:"loyalty-page-referral-block"},{label:"Loyalty Page Tier Block",value:"loyalty-page-tier-block"},{label:"Product Point Review",value:"product-point-preview"},{label:"Point On Product Page",value:"product-point-preview"}],default:"loyalty-page-block"},{id:"install",type:"open-link",target:"_blank",linkType:"install",href:helpers.get3rdPartyInstallLink({handle:"bon-loyalty-rewards-referrals"}),appName:BonLoyaltyRewardsReferrals.default.label},{id:"openApp",type:"open-link",target:"_blank",linkType:"openApp",href:"https://admin.shopify.com/?redirect=/apps/bon-loyalty",appName:BonLoyaltyRewardsReferrals.default.label},{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;
|
|
4
|
+
</div>`},components:[{tag:BonLoyaltyRewardsReferrals.default.tag}]}],settings:[{id:"setting",controls:[{id:"appBlockId",type:"input",default:""},{id:"widgetType",label:"Choose widget",type:"select",options:[{label:"Loyalty Page Block",value:"loyalty-page-block"},{label:"Loyalty Page Earning Block",value:"loyalty-page-earning-block"},{label:"Loyalty Page Header Block",value:"loyalty-page-header-block"},{label:"Loyalty Page Profile Block",value:"loyalty-page-profile-block"},{label:"Loyalty Page Redeem Block",value:"loyalty-page-redeem-block"},{label:"Loyalty Page Referral Block",value:"loyalty-page-referral-block"},{label:"Loyalty Page Tier Block",value:"loyalty-page-tier-block"},{label:"Product Point Review",value:"product-point-preview"},{label:"Point On Product Page",value:"product-point-preview"},{label:"Ways to redeem points",value:"bloy-loyalty-ways-redeem"}],default:"loyalty-page-block"},{id:"install",type:"open-link",target:"_blank",linkType:"install",href:helpers.get3rdPartyInstallLink({handle:"bon-loyalty-rewards-referrals"}),appName:BonLoyaltyRewardsReferrals.default.label},{id:"openApp",type:"open-link",target:"_blank",linkType:"openApp",href:"https://admin.shopify.com/?redirect=/apps/bon-loyalty",appName:BonLoyaltyRewardsReferrals.default.label},{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
|
-
import{jsx as e}from"react/jsx-runtime";import{useRef as r,useState as t,useMemo as i,useEffect as s}from"react";import{getStyleSwiperContainer as n}from"./common/styles.js";function Swiper(p){let
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{useRef as r,useState as t,useMemo as i,useEffect as s}from"react";import{getStyleSwiperContainer as n}from"./common/styles.js";function Swiper(p){let c=r(null),{children:l,totalSlides:o,onSwiperReset:u,onSwiperReady:a,sliderClass:w,sliderOrder:m,thumbsSwiper:d,...f}=p,[y,b]=t(!1),j=i(()=>d?{"thumbs-swiper":d}:{},[d]),g=n(),h="object"==typeof p.autoplay&&null!==p.autoplay?p.autoplay.pauseOnMouseEnter:void 0,E=()=>{c.current?.swiper&&c.current.swiper.wrapperEl.style.setProperty("width",`${c.current.swiper.width}px`)};return s(()=>{let e=async()=>{let e=await import("@gem-sdk/swiper/element/bundle");e.register(),await customElements.whenDefined("swiper-container"),b(!0)};e()},[]),s(()=>{y&&(Object.assign(c.current,f),c.current.initialize(),a?.(c.current.swiper),E())},[y]),s(()=>{c.current?.swiper&&(c.current.swiper.destroy(!1,!1),Object.assign(c.current,f),c.current.initialize(),a(c.current.swiper),u())},[f.dir,f.loop,h,f.slidesPerView,a,u,f.spaceBetween,f.slidesOffsetBefore]),s(()=>{let e=c.current;e&&(Object.assign(e,f),e.swiper?.update(),E())},[f]),s(()=>{u()},[m,u]),s(()=>{let e=c.current;if(!e)return;let r=()=>{E()};return e.addEventListener("swiperresize",r),()=>{e.removeEventListener("swiperresize",r)}},[]),e("swiper-container",{init:!1,ref:c,class:w,style:{...g,display:y?"block":"none"},...j,children:l})}export{Swiper};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useState as e,useRef as t,useMemo as r,useCallback as i,useImperativeHandle as n,useEffect as a}from"react";import{useCurrentDevice as l,useEditorMode as s,useInteraction as o,getResponsiveValueByScreen as u,DEVICES as d}from"@gem-sdk/core";import p from"./useTrackPreviewPause.js";let useCarousel=(f,m,c,k)=>{let h;let{builderProps:
|
|
1
|
+
import{useState as e,useRef as t,useMemo as r,useCallback as i,useImperativeHandle as n,useEffect as a}from"react";import{useCurrentDevice as l,useEditorMode as s,useInteraction as o,getResponsiveValueByScreen as u,DEVICES as d}from"@gem-sdk/core";import p from"./useTrackPreviewPause.js";let useCarousel=(f,m,c,k)=>{let h;let{builderProps:y,moveToIdx:P,styles:b,setting:g,isHiddenArrowWhenDisabled:w=!0,elmRef:T,isEnableCheckHasScrollableContent:v,onClickArrow:N,onHandleChangeSlideByInteraction:x,onChangeActive:S}=f,[C,O]=e(!0),[E,L]=e(!0),[M,I]=e(!1),{loop:z,navigationEnable:V={desktop:!0},navigationStyle:B}=g??{},[j,F]=e(k),[H,R]=e(g?.defaultCurrentSlider??0),{isFirstPreviewClicked:$}=p(g?.runPreview),A=t(),D=t(P??0),q=l(),U=s(),{onListener:W,saveToElementInteractionData:G,getInteractionPreviousData:J,trigger:K}=o(),Q=r(()=>u(z,q,!1),[z,q]),X=i(()=>{if(!g?.slidesToShow)return null;let e={};return d.forEach(t=>{let r=u(g?.slidesToShow,t);e[t]=r?"auto"===r?4:Math.floor(r):0}),e},[g?.slidesToShow]),Y=i(()=>{if(!g?.slidesToShow)return null;let e={};return d.forEach(t=>{let r=u(g?.slidesToShow,t);e[t]=r?"auto"===r?4:r:0}),e},[g?.slidesToShow]),Z=r(()=>{let e=Y();if(e)return e;let t={};return d.forEach(e=>{let r=u(g?.sneakPeak,e),i=r?"center"===u(g?.sneakPeakType,e)?u(g?.sneakPeakOffsetCenter,e)??0:u(g?.sneakPeakOffsetForward,e)??0:0,n="center"===u(g?.sneakPeakType,e)?-2:-1,a=u(g?.itemNumber,e);t[e]="number"==typeof a?a+i/100*n:"auto"}),t},[Y,g?.itemNumber,g?.sneakPeak,g?.sneakPeakOffsetCenter,g?.sneakPeakOffsetForward,g?.sneakPeakType]),_=r(()=>{let e=u(Z,q),t=u(z,q,!1);return t&&Number(e??0)>k||!t&&Number(e??0)>=k},[Z,q,z,k]),ee=r(()=>{let e=u(V,q),t=u(B,q);return c&&e&&"none"!==t&&C&&!_},[V,q,B,c,C,_]),et=r(()=>{let e=X();return e||g?.itemNumber},[X,g?.itemNumber]),er=i(e=>{let t="center"===u(g?.sneakPeakType,e)?2:1;return"number"==typeof u(et,e,4)?u(et,e,4)-t:void 0},[g?.sneakPeakType,et]),ei=()=>{let e="auto"===u(Z,q,1)?1:u(Z,q,1);return e??1},en=e=>{let t=e*ei();return t>=j-ei()&&(t=j-ei()),t},ea=e=>{let t="edit"===U?{[e]:!1}:g?.enableDrag;return u(t,e)},el=(e,t)=>{let r=g?.sneakPeak?.[q]?e:t?e:en(e);if(t){if(k<em){c?.slideTo(r);return}if(c?.realIndex===r)return;if(r===Number(c?.realIndex)+1||0===r&&c?.realIndex===k-1)return c?.slideNext();if(r===Number(c?.realIndex)-1||r===k-1&&c?.realIndex===0)return c?.slidePrev();let e="center"===u(g?.sneakPeakType,q)&&"number"==typeof u(g?.itemNumber,q)&&Number(u(g?.itemNumber,q))%2==0;e?c?.slideToLoopCenterSneakPeek(r):c?.slideToLoop(r)}else c?.slideTo(r);D.current=r};n(m,()=>({nextSlideInteraction:ed,previousSlideInteraction:ep,moveToSlideInteraction:ef,getSwiper:()=>c}));let es=e=>{K({event:"gp:rollback:select-slide",selector:`[data-id="${y?.uid}"]`,element:T?.current}),K({event:"gp:select-slide",selector:`[data-id="${y?.uid}"]`,data:e,element:T?.current})},eo=e=>{c?.slideTo(e),x&&x(e)},eu=(e,t)=>{let{key:r,data:i,isRollback:n,element:a}=e,l=Math.max(c?.activeIndex??0,0);if(n&&void 0===i)return;if(n){if("specific"===t){let{previousData:e}=J(a,r);eo(Number(e))}else{let e="next"===t?l-1:l+1;eo(e)}return}let s="specific"===t?Math.max(D.current,0):l;G(a,r,s.toString());let o="specific"===t?Number(i):"next"===t?l+1:l-1;eo(o)},ed=e=>{eu(e,"next")},ep=e=>{eu(e,"previous")},ef=e=>{eu(e,"specific")},em=ei(),ec=r(()=>!!j&&c&&u(g?.dot,q)&&!_&&k>1,[j,c,g?.dot,q,_,k]),ek=u(g?.vertical,q,!1)?"vertical":"horizontal",eh=r(()=>{let e=u(z,q,!1),t=c?.width??0,r={0:"mobile",768:"tablet",1025:"desktop"},i=Number(Object.entries(r).find(([,e])=>e===q)?.[0]??1025),n=Object.entries(r).reduce((r,[i,n])=>{if(!r)return;let a=Number(i),l=u(g?.sneakPeak,n,!1),s=l&&"center"===u(g?.sneakPeakType,n),o=u(g?.itemNumber,n),d=s&&"number"==typeof o,p=ea(n),f=d?(t-t/em*(o-2))/2:0,m=d&&e?j:g?.initialSlide||P||0,c={allowTouchMove:p,slidesOffsetBefore:f,slidesOffsetAfter:f,initialSlide:m};return r[a]=c,r},{}),a="center"===u(g?.sneakPeakType,q)&&"number"==typeof u(g?.itemNumber,q);return{speed:b?.playSpeed??500,dir:g?.rtl?"rtl":"ltr",spaceBetween:u(b?.spacing,q)||0,loop:e,slidesPerView:"auto"===u(Z,q,1)?"auto":em,direction:ek,breakpoints:n,isSneakPeekCenter:a,slidesOffsetBefore:n?.[i]?.slidesOffsetBefore,thumbs:{slideThumbActiveClass:"gem-slider-item-active"},loopPreventsSliding:!1,autoplay:{delay:(g?.autoplayTimeout??1)*1e3,pauseOnMouseEnter:g?.pauseOnHover,stopOnLastSlide:!e}}},[b?.playSpeed,g?.rtl,b?.spacing,q,z,em,g?.sneakPeakType,g?.pauseOnHover,g?.autoplayTimeout,c?.width,j]),ey=i(e=>{let t=c&&c.params?.slidesPerView,r=t?c?.slidesPerViewDynamic():1;if(e<=1)return!1;let i="auto"===eh.slidesPerView?r:eh.slidesPerView;if(!Q||e<Number(i)||!C)return!1;let n=u(g?.sneakPeak,q,!1),a=n&&"center"===u(g?.sneakPeakType,q),l=Number.isNaN(Number(i))?1:Math.ceil(Number(i));a&&l%2==0&&(l+=1);let s=a?Math.max(1,Math.ceil(l/2)):1;return e<l+s},[c,eh.slidesPerView,Q,C,g?.sneakPeak,g?.sneakPeakType,q]);a(()=>{let e=`[data-id="${y?.uid}"]`;W({event:"gp:change-next-slide",selector:e,elementRef:A},e=>{let{data:t,isRollback:r,uniqueStorageKey:i}=e||{};ed({element:A.current,data:t,isRollback:r,key:i})}),W({event:"gp:change-previous-slide",selector:e,elementRef:A},e=>{let{data:t,isRollback:r,uniqueStorageKey:i}=e||{};ep({element:A.current,data:t,isRollback:r,key:i})}),W({event:"gp:change-image-step",selector:e,elementRef:A},e=>{let{data:t,isRollback:r,uniqueStorageKey:i}=e||{};ef({element:A.current,data:t,isRollback:r,key:i})}),W({event:"gp:change-index-slide",selector:e},t=>{let r=document.querySelector(e),{data:i,isRollback:n,uniqueStorageKey:a}=t||{};ef({element:r,data:i,isRollback:n,key:a})})},[]),a(()=>{F(k)},[k]);let eP=e=>{"next"===e?c?.slideNext():c?.slidePrev(),N&&(h&&clearTimeout(h),h=setTimeout(()=>N&&N(),500))};return a(()=>{if("number"==typeof P){if(D.current=P,c?.params?.loop){c?.slideToLoop(P);return}c?.slideTo(P)}},[c,P,w]),a(()=>{if(!c)return;let e=()=>{F(c.slides.length)},t=()=>{S&&S(c.realIndex)},r=()=>{R(c.realIndex),L(c?.translate===0),I(c?.translate<=c?.maxTranslate())};return c.on("transitionEnd",r),c.on("slideChange",e),c.on("slideChangeTransitionStart",t),()=>{c?.off("slideChange",e),c?.off("slideChangeTransitionStart",t),c?.off("transitionEnd",r)}},[eh.loop,c]),a(()=>{c?.wrapperEl&&(c.wrapperEl.style.transitionTimingFunction=g?.animationMode??"ease")},[c,g?.animationMode]),a(()=>{if(c&&c.autoplay){let e="edit"===U?!!$&&g?.runPreview&&g?.autoplay:g?.autoplay;e?c.autoplay.start():c.autoplay.stop()}},[c,g?.autoplay,U,$,g?.runPreview]),a(()=>{let e=e=>{if(y?.uid!==e?.detail.componentUid)return;let t=e?.detail.index||0;c?.slideToLoop(t)};return window.addEventListener("move-to-idx",e),()=>window.removeEventListener("move-to-idx",e)},[c,y?.uid]),a(()=>{if(!c)return;let e=c.el;e?.classList?.remove("swiper-horizontal","swiper-vertical");let t=u(g?.vertical,q)?"swiper-vertical":"swiper-horizontal";e?.classList?.add(t),c?.slides?.forEach(e=>{e.style.width="",e.style.height=""}),c?.update()},[q,g?.vertical,c,c?.params]),a(()=>{if(!c||!v)return;let e=()=>{let e=c?.slides?.slice(0,k)||[],t=Number(eh?.spaceBetween||0),r=e.reduce((e,t)=>e+t.offsetHeight,0)+t*(e.length-1),i=e.reduce((e,t)=>e+t.offsetWidth,0)+t*(e.length-1),n=c.params?.direction==="horizontal"?i>(c.width||0):r>(c.height||0);O(n)};return e(),c.on("resize",e),c.on("update",e),c.on("slidesLengthChange",e),c.on("orientationchange",e),()=>{c.off("resize",e),c.off("update",e),c.off("slidesLengthChange",e),c.off("orientationchange",e)}},[c]),{isInfinity:Q,sliderSettings:eh,totalSlideItem:j,currentSlide:H,localRef:A,isRenderDots:ec,showNavigation:ee,isScrollToStart:E,isScrollToEnd:M,handleDotClick:el,getItemsPerPage:ei,handleNextAndPrevSlide:eP,dispatchEventSelectSlide:es,getNumberOfFullWidthShow:er,setCurrentSlide:R,shouldDuplicateSlides:ey,setIsScrollToStart:L,setIsScrollToEnd:I,isHideNavigation:_}};export{useCarousel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
let convertTime=(e,t)=>{let
|
|
1
|
+
let convertTime=(e,t)=>{let o=timeOffset(e);return{week:o.weeks,day:t.enableWeek?o.days:o.totalDays,hour:t.enableDay?o.hours:o.totalHours,minute:t.enableHour||t.enableDay||t.enableWeek?o.minutes:o.totalMinutes,second:t.enableMinute||t.enableHour||t.enableDay||t.enableWeek?o.seconds:o.totalSeconds}},timeOffset=e=>({seconds:e%60,minutes:Math.floor(e/60)%60,hours:Math.floor(e/60/60)%24,days:Math.floor(e/60/60/24)%7,weeks:Math.floor(e/60/60/24/7),months:Math.floor(e/60/60/24/30.4368),totalDays:Math.floor(e/60/60/24),totalHours:Math.floor(e/60/60),totalMinutes:Math.floor(e/60),totalSeconds:e}),formatTime=e=>Number.isNaN(e)||0===e?"00":e<10?`0${e}`:e,calculateTime=e=>{let t=new Date().getTime();e||(e=getEndTime(0,3,0));let o=Math.ceil((e-t)/1e3);return o>0?o:0},getEndTime=(e,t,o)=>{let r=new Date,a=new Date;return r.setDate(a.getDate()+e),r.setHours(a.getHours()+t),r.setMinutes(a.getMinutes()+o),r.setSeconds(a.getSeconds()),r.getTime()},daily=(e,t,o)=>{let r=new Date,a=to24HrTime(`${e}:${t} ${o}`);e=a.hours,t=a.mins;let n=new Date(r.getFullYear(),r.getMonth(),r.getDate(),e,t).getTime(),l=n-r.getTime();return l<0&&(l+=864e5),Math.ceil(l/1e3)},standard=(e,t)=>calculateTime(getStandardEndtime(e,t)),getStandardEndtime=(e,t)=>{let o=0,r=new Date(e);if(void 0!=t&&""!=t&&((o=parseInt(t)?parseInt(t):parseInt(t.slice(3)))||0===o)){let e=new Date().getTimezoneOffset();r=new Date(r.getTime()-6e4*e-36e5*o)}return r.getTime()},evergreen=e=>{let{days:t,hours:o,mins:r,seconds:a=0}=e;return(t??0)*86400+(o??0)*3600+(r??0)*60+(a??0)},refreshAfterFinish=(e,t)=>{let o=new Date().getTime(),r=(86400*t.days+3600*t.hours+60*t.mins)*1e3,a=(o-e)%r;return Math.ceil((r-a)/1e3)},to24HrTime=e=>{let[t,o,r]=e.toLowerCase().match(/\d+|[a-z]+/g)||[],a=`${Number(t)%12+("am"==r?0:12)}:${o}`.split(":");return{hours:parseInt(a[0]?a[0]:"0"),mins:parseInt(a[1]?a[1]:"0")}},getIdFromHash=e=>(e.startsWith("#el-")?e.replace("#el-","#"):e).substring(1),scrollToTop=()=>{"undefined"!=typeof window&&window.scrollTo({top:0,behavior:"smooth"})},scrollToSection=e=>{e&&(e.scrollIntoView({behavior:"smooth"}),setTimeout(()=>{let t=new URL(window.location.toString());t.hash=`#${e.id}`,history.replaceState(null,"",t.toString())},300))},querySelector=e=>{try{return document.querySelector(e)}catch{return null}},handleRedirect=(e,t,o)=>{if(!e||"#"===e)return;let r=e.startsWith("#")?getIdFromHash(e):"",a=r?querySelector(`[data-gp-dialog-id='${r}']`):null,n=r?querySelector(`[id='${r}']`):null;if(a?.tagName==="DIALOG")a?.showModal();else if("scroll-to-top"===r)scrollToTop();else if(n)scrollToSection(n);else{if("open-popup"===o||"scroll-to"===o)return;"_self"===t?window.location.href=e:window.open(e,t??"_blank")}};export{calculateTime,convertTime,daily,evergreen,formatTime,getEndTime,getStandardEndtime,handleRedirect,refreshAfterFinish,standard};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useMemo as e,useState as r,useRef as t,useCallback as n,useEffect as s}from"react";import{useEditorMode as i}from"@gem-sdk/core";import{standard as a,evergreen as
|
|
1
|
+
import{useMemo as e,useState as r,useRef as t,useCallback as n,useEffect as s}from"react";import{useEditorMode as i}from"@gem-sdk/core";import{standard as a,evergreen as l,daily as o,handleRedirect as u,refreshAfterFinish as c}from"../common/helpers.js";let useTimeLeft=c=>{let m=i(),{timerDaily:f,behaviour:h,timerEverygreen:v,loopAfterFinish:d,redirectUrl:p,timeZone:g,dateStandard:I}=c,A=e(()=>{switch(h){case"daily":return o(f.hours,f.mins,f.format);case"evergreen":return l(v);case"standard":return a(I,g);default:return 0}},[h,I,g,f.format,f.hours,f.mins,v.endTime]),[F,k]=r(A),L=t(),y=n(()=>k(e=>e<=0?(p.link&&"#"!==p.link&&"edit"!==m&&u(p.link,p.target,p.type),isLoopAfterFinish(d,h))?evergreenRefreshAfterFinish(v):(clearInterval(L.current),0):e-1),[h,d,m,p.link,p.target,v]);return s(()=>{let e=isLoopAfterFinish(d,h);return e&&(clearInterval(L.current),k(evergreenRefreshAfterFinish(v)),L.current=setInterval(y,1e3)),A<=0&&!e&&(clearInterval(L.current),k(0)),A>0&&(clearInterval(L.current),k(A),L.current=setInterval(y,1e3)),()=>{clearInterval(L.current)}},[h,y,A,d,v]),F},isLoopAfterFinish=(e,r)=>e&&"evergreen"===r,evergreenRefreshAfterFinish=e=>c(e.endTime,{days:e.days,hours:e.hours,mins:e.mins});export{useTimeLeft as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import{jsxs as e,jsx as r}from"react/jsx-runtime";import{useCurrentVariant as p,useProduct as t,
|
|
2
|
+
import{jsxs as e,jsx as r}from"react/jsx-runtime";import{useCurrentVariant as p,useProduct as t,convertDecimalToNumber as o,shopifyPriceRounding as c,useProductOfferDiscount as i,useFormatMoney as a,cls as s}from"@gem-sdk/core";import{useMemo as m}from"react";import u from"../../text/components/Text.js";import{useDynamicProduct as l}from"../hooks/useDynamicProduct.js";let PostPurchaseProductPrice=({styles:d,style:y,builderAttrs:n,builderProps:P,children:h})=>{let T=p(),g=t(),f=o(T?.price)??0,x=o(T?.salePrice)??0,j=parseFloat(c(i(),2)),{isDynamicProduct:N}=l(),b=m(()=>j?d?.priceType==="compare"?f:f-j:d?.priceType==="compare"?x:f,[j,d?.priceType,f,x]),k=a(parseFloat(c(Number(b)||0,2)),!1),D=g?.baseID?.replace("gid://shopify/Product/",""),F=m(()=>d?.priceType==="compare"&&(!j&&x<f||f<=0),[j,f,x,d?.priceType]);return F?null:e("div",{...n,className:s(P?.uid),style:{...y},id:`shopify-text-element-${P?.uid}`,"data-product-id":D,children:[r(u,{styles:d,setting:{text:N?"$???":k},className:s({"gp-money":d?.priceType==="regular","gp-product-compare-price":d?.priceType==="compare","gp-line-through":d?.priceType==="compare"&&d?.lineThrough})}),h]})};export{PostPurchaseProductPrice as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
let productOfferPlaceholder={id:"",title:"Dynamic product",description:"This is a dynamic product. The actual product will appear here based on your setup",descriptionHtml:'<p class="QN2lPu">This is a dynamic product. The actual product will</p>\n<p class="QN2lPu">appear here based on your setup</p>',createdAt:"2024-07-01T04:19:51.286753Z",handle:"dynamic-product",averageRating:0,isStorefront:!0,isSample:!1,baseID:"",sku:"",options:[{id:"1",name:"Variant",optionType:"",values:[{id:"1",label:"Variant option",isDefault:!0,baseID:""}]}],vendor:"",featuredImage:{id:"542178560626918105",contentType:"IMAGE",previewImage:"",src:"https://cdn.shopify.com/s/files/1/0858/3168/0279/files/gempages_502328832959710176-312cf60c-d923-4913-9873-66545effe9cc.png",width:449,height:449,alt:""},collections:{edges:[{node:{id:"502321959132988135",title:"Home page"}},{node:{id:"539286505089204764",title:"b"}},{node:{id:"539286505089401372",title:"e"}}]},tags:[],medias:{edges:[{cursor:"gqFpzweGNIc/AALZoXYB",node:{id:"542178560626918105",contentType:"IMAGE",previewImage:"",src:"https://cdn.shopify.com/s/files/1/0858/3168/0279/files/gempages_502328832959710176-312cf60c-d923-4913-9873-66545effe9cc.png",width:449,height:449,alt:""}}],pageInfo:{endCursor:"gqFpzweGNIc/AALZoXYB",hasNextPage:!0}},variants:{edges:[{cursor:"gqFpzwc5ZqRtDAMIoXYC",node:{id:"520560088328176392",title:"Default Title",barcode:"",baseID:"gid://shopify/ProductVariant/49298248925463",costPrice:88,height:0,inventoryPolicy:"DENY",inventoryQuantity:211,inventoryStatus:"",isDigital:!0,length:0,lowInventoryAmount:0,manageInventory:!1,mediaId:"0",platform:"SHOPIFY",price:88,salePrice:88,sku:"",soldIndividually:!1,weight:0,width:0,selectedOptions:[],media:void 0}},{cursor:"gqFpzwc5ZqRtDAMIoXYC",node:{id:"520560088328176392",title:"Default Title",barcode:"",baseID:"gid://shopify/ProductVariant/49298248925463",costPrice:88,height:0,inventoryPolicy:"DENY",inventoryQuantity:211,inventoryStatus:"",isDigital:!0,length:0,lowInventoryAmount:0,manageInventory:!1,mediaId:"0",platform:"SHOPIFY",price:88,salePrice:88,sku:"",soldIndividually:!1,weight:0,width:0,selectedOptions:[],media:void 0}}],pageInfo:{hasNextPage:!1,endCursor:"gaFpzwc5ZqRtDAMI"}}};export{productOfferPlaceholder};
|
|
1
|
+
let productOfferPlaceholder={id:"",title:"Dynamic product",description:"This is a dynamic product. The actual product will appear here based on your setup",descriptionHtml:'<p class="QN2lPu">This is a dynamic product. The actual product will</p>\n<p class="QN2lPu">appear here based on your setup</p>',createdAt:"2024-07-01T04:19:51.286753Z",handle:"dynamic-product",averageRating:0,isStorefront:!0,isSample:!1,baseID:"",sku:"",options:[{id:"1",name:"Variant",optionType:"",values:[{id:"1",label:"Variant option",isDefault:!0,baseID:""}]}],vendor:"",featuredImage:{id:"542178560626918105",contentType:"IMAGE",previewImage:"",src:"https://cdn.shopify.com/s/files/1/0858/3168/0279/files/gempages_502328832959710176-312cf60c-d923-4913-9873-66545effe9cc.png",width:449,height:449,alt:""},collections:{edges:[{node:{id:"502321959132988135",title:"Home page"}},{node:{id:"539286505089204764",title:"b"}},{node:{id:"539286505089401372",title:"e"}}]},tags:[],medias:{edges:[{cursor:"gqFpzweGNIc/AALZoXYB",node:{id:"542178560626918105",contentType:"IMAGE",previewImage:"",src:"https://cdn.shopify.com/s/files/1/0858/3168/0279/files/gempages_502328832959710176-312cf60c-d923-4913-9873-66545effe9cc.png",width:449,height:449,alt:""}}],pageInfo:{endCursor:"gqFpzweGNIc/AALZoXYB",hasNextPage:!0}},variants:{edges:[{cursor:"gqFpzwc5ZqRtDAMIoXYC",node:{id:"520560088328176392",title:"Default Title",barcode:"",baseID:"gid://shopify/ProductVariant/49298248925463",costPrice:"88",height:0,inventoryPolicy:"DENY",inventoryQuantity:211,inventoryStatus:"",isDigital:!0,length:0,lowInventoryAmount:0,manageInventory:!1,mediaId:"0",platform:"SHOPIFY",price:"88",salePrice:"88",sku:"",soldIndividually:!1,weight:0,width:0,selectedOptions:[],media:void 0}},{cursor:"gqFpzwc5ZqRtDAMIoXYC",node:{id:"520560088328176392",title:"Default Title",barcode:"",baseID:"gid://shopify/ProductVariant/49298248925463",costPrice:"88",height:0,inventoryPolicy:"DENY",inventoryQuantity:211,inventoryStatus:"",isDigital:!0,length:0,lowInventoryAmount:0,manageInventory:!1,mediaId:"0",platform:"SHOPIFY",price:"88",salePrice:"88",sku:"",soldIndividually:!1,weight:0,width:0,selectedOptions:[],media:void 0}}],pageInfo:{hasNextPage:!1,endCursor:"gaFpzwc5ZqRtDAMI"}}};export{productOfferPlaceholder};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useProductOfferDiscount as e,useCurrentVariant as t,useQuantity as l,useFormatMoney as i,shopifyPriceRounding as
|
|
1
|
+
import{useProductOfferDiscount as e,useCurrentVariant as t,useQuantity as l,useFormatMoney as i,convertDecimalToNumber as o,shopifyPriceRounding as a}from"@gem-sdk/core";import{useDynamicProduct as u}from"./useDynamicProduct.js";let useGetMoneyLines=(s,n)=>{let{isDynamicProduct:p,dynamicPrice:b,dynamicDiscount:r,isEnableDynamicDiscount:L}=u(),h=e(),c=t(),{quantity:d}=l(),m=h*(d||1),w=i(m,!1),S=o(c?.price)??0,f=S*(d||1),g=i(f,!1),y=a(m,2),T=i(f-parseFloat(y),!1),q=()=>{let e=[];return!1!==s.isShowSubTotalLabel&&e.push({title:n.subTotalLabel,money:p?b:g,uniqueId:"subTotalLabel"}),!1!==s.isShowDiscountLabel&&e.push({title:n.discountLabel,money:p&&r&&L?`${r.value}%`:h>0?w:"No discount",uniqueId:"discountLabel"}),!1!==s.isShowShippingLabel&&e.push({title:n.shippingLabel,uniqueId:"shippingLabel",tooltip:{content:"Shipping fee will be calculated on real offer page",width:"23em"}}),!1!==s.isShowTaxesLabel&&e.push({title:n.taxesLabel,uniqueId:"taxesLabel",tooltip:{content:"Taxes will be calculated on real offer page",width:"20em"}}),!1!==s.isShowTotalLabel&&e.push({title:n.totalLabel,money:p?b:T,uniqueId:"totalLabel"}),e};return{getMoneyLines:q}};export{useGetMoneyLines};
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
import{template as e,dataStringify as
|
|
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{createStyle as d,createClass 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{getWrapperClasses as D,getSubWrapperClass as V,getTextContainerClasses as S,getTextWrapperClasses as b,getTextContentClasses as C,getImageContainerClasses as T,getImageClasses as k}from"./common/classes.js";import{getSubWrapperAttrs as q,getContainerAttrs as A,getTextContentAttrs as E,getImageAttr as I}from"./common/attrs.js";let ProductBadge=K=>{let{styles:N,setting:_,builderProps:h,pageContext:B}=K,L=_?.shape!=="image",O=L&&_?.displayContent?.trim()==="",Q=d({...y(K,g)}),w=l({...D(K)}),G=l({...V(K)}),J=d({...$(K)}),x=u({...q(K)}),M=v(K),R=l({...S()}),Y=u({...A(K)}),z=l({...b()}),F=d({...f({setting:_,styles:N})}),H=l({...C(N)}),U=d({...j({setting:_,styles:N})}),W=u({...E()}),X=l({...T()}),Z=d({...P({setting:_,styles:N})}),ee=l({...k()}),et=u({...I({setting:_})}),es=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(_?.displayTrigger).replaceAll("'","'")),uid:K.builderProps?.uid,productCreatedAt:'{{product.created_at | date: "%Y-%m-%d" }}',productTags:"{{ product.tags | join: \",\" | replace: '\"', '\\\"' | escape }}",isTextBadge:L}),{displayContent:ei,translate:er}=_??{},ea=c({val:ei?.trim(),uid:h?.uid,settingId:"displayContent",isLiquid:!0,pageContext:B,translate:er});return e`
|
|
2
2
|
{% if product %}
|
|
3
|
-
${
|
|
4
|
-
${
|
|
3
|
+
${n(ea,B?.isPreviewing)}
|
|
4
|
+
${p(_?.displayTrigger,!O)}
|
|
5
5
|
<gp-product-badge
|
|
6
|
-
${{...
|
|
7
|
-
gp-data='${
|
|
6
|
+
${{...Y}}
|
|
7
|
+
gp-data='${t(es)}'
|
|
8
8
|
class="containerClass {{className}}"
|
|
9
|
-
style="${
|
|
10
|
-
data-display-content="${
|
|
9
|
+
style="${Q}"
|
|
10
|
+
data-display-content="${B?.isPreviewing?ea:s(`{{${ea}}}`)}"
|
|
11
11
|
>
|
|
12
|
-
<div class="${
|
|
12
|
+
<div class="${w}">
|
|
13
13
|
<div
|
|
14
|
-
${{...
|
|
15
|
-
class="${
|
|
16
|
-
style="${
|
|
14
|
+
${{...x}}
|
|
15
|
+
class="${G}"
|
|
16
|
+
style="${J}"
|
|
17
17
|
>
|
|
18
|
-
<style>${
|
|
19
|
-
${i(
|
|
20
|
-
<div class="${
|
|
18
|
+
<style>${M}</style>
|
|
19
|
+
${i(L,e`
|
|
20
|
+
<div class="${R}">
|
|
21
21
|
<div
|
|
22
|
-
class="${
|
|
23
|
-
style="${
|
|
22
|
+
class="${z}"
|
|
23
|
+
style="${F}"
|
|
24
24
|
>
|
|
25
25
|
<pre
|
|
26
|
-
${{...
|
|
27
|
-
class="${
|
|
28
|
-
style="${
|
|
26
|
+
${{...W}}
|
|
27
|
+
class="${H}"
|
|
28
|
+
style="${U}"
|
|
29
29
|
>{{ content | replace: percentDiscountKey, percentDiscountValue | replace: amountDiscountKey, amountDiscountValue | replace: inventoryQuantityKey, inventoryQuantityValue | replace: minPriceKey, minPriceValue }}</pre>
|
|
30
30
|
</div>
|
|
31
|
-
</div>`,e`<div class="${
|
|
32
|
-
<img ${{...et}} class="${
|
|
31
|
+
</div>`,e`<div class="${X}" style="${Z}">
|
|
32
|
+
<img ${{...et}} class="${ee}" alt="" />
|
|
33
33
|
</div>`)}
|
|
34
34
|
</div>
|
|
35
35
|
</div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{makeGlobalSize as e,composeTypographyStyle as t,getStyleShadow as o}from"@gem-sdk/core";import{convertToStyle as
|
|
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=(e,t,o,i)=>{let{"bundle-item":a,setting:n}=e;if(a)return 1;let s=p(n?.displayContent)&&n?.contentType==="text";if(!s)return 1;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:"edit"===i?.2:0},getSubWrapperStyle=(e,t,o,r)=>{let{setting:i}=e,a=i?.positionWithImage==="outside",n=getSizeStyles(e),s=r&&o?getOpacityProductBadge(e,o,t,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};
|