zz-shopify-components 0.2.0 → 0.3.1-beta.0
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/blocks/zz-accessories-item.liquid +1 -3
- package/blocks/zz-accessories-price-item.liquid +183 -0
- package/blocks/zz-accessories-swiper.liquid +4 -1
- package/blocks/zz-flex-layout-bg-block.liquid +51 -3
- package/blocks/zz-flex-layout-block.liquid +36 -5
- package/blocks/zz-price-tag-mini.liquid +3 -2
- package/package.json +1 -1
- package/sections/zz-shopping-card-list.liquid +3 -0
- package/sections/zz-video-collapse-swiper.liquid +30 -3
- package/sections/zz-video-tab-swiper.liquid +9 -0
- package/snippets/locksmith-content-variables.liquid +60 -0
- package/snippets/locksmith-variables.liquid +10 -0
- package/snippets/locksmith.liquid +108 -0
- package/snippets/zz-img-md.liquid +3 -4
- package/snippets/zz-img.liquid +4 -5
- package/snippets/zz-price-tag.liquid +5 -1
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
<style>
|
|
2
|
+
|
|
3
|
+
#shopify-block-{{ block.id }} {
|
|
4
|
+
width: 320px;
|
|
5
|
+
height: fit-content;
|
|
6
|
+
}
|
|
7
|
+
#shopify-block-{{ block.id }} .banner-item {
|
|
8
|
+
position: relative;
|
|
9
|
+
width: 320px;
|
|
10
|
+
height: 438px;
|
|
11
|
+
box-sizing: border-box;
|
|
12
|
+
background: {{ block.settings.banner_bg_color }};
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@media screen and (max-width: 1023px) {
|
|
16
|
+
|
|
17
|
+
#shopify-block-{{ block.id }} {
|
|
18
|
+
width: 100%;
|
|
19
|
+
}
|
|
20
|
+
#shopify-block-{{ block.id }} .banner-item {
|
|
21
|
+
width: 100%;
|
|
22
|
+
height: auto;
|
|
23
|
+
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
}
|
|
27
|
+
</style>
|
|
28
|
+
|
|
29
|
+
{% assign btn_class = 'zz-accessories-item-btn' | append: block.id %}
|
|
30
|
+
|
|
31
|
+
<div class='banner-item tw-pb-[20px] tw-px-[20px] tw-rounded-[12px] lg:tw-rounded-[16px]'>
|
|
32
|
+
<div class='max-lg:tw-px-[15px]'>
|
|
33
|
+
{% render 'zz-img',
|
|
34
|
+
pc_image: block.settings.image_pc,
|
|
35
|
+
mb_image: block.settings.image,
|
|
36
|
+
image_alt: block.settings.slide_title,
|
|
37
|
+
pc_width: 915,
|
|
38
|
+
mb_width: 640,
|
|
39
|
+
%}
|
|
40
|
+
</div>
|
|
41
|
+
<div class="tw-flex tw-flex-col tw-justify-center tw-items-center lg:tw-h-[110px]">
|
|
42
|
+
<p
|
|
43
|
+
class='slide-title tw-mt-[20px] lg:tw-mt-[30px] tw-mb-[8px] tw-text-[16px] lg:tw-text-[18px] tw-leading-[1.2] tw-text-center tw-font-bold tw-text-black'
|
|
44
|
+
style='color: {{ block.settings.slide_title_color }};'>
|
|
45
|
+
{{ block.settings.slide_title }}
|
|
46
|
+
</p>
|
|
47
|
+
{% content_for 'blocks' %}
|
|
48
|
+
</div>
|
|
49
|
+
<a
|
|
50
|
+
class='tw-block {{ btn_class }} tw-mx-auto tw-mt-[30px] tw-px-[28px] lg:tw-px-[12px] tw-w-fit tw-h-[42px] lg:tw-h-[28px] tw-rounded-[3px] tw-cursor-pointer tw-text-white tw-font-medium tw-text-[16px] lg:tw-text-[14px] tw-leading-[42px] lg:tw-leading-[28px] tw-bg-black tw-transition hover:tw-bg-black/80'
|
|
51
|
+
style='background: {{ block.settings.btn_bg_color }}; color: {{ block.settings.btn_text_color }};hover: color: {{ block.settings.btn_hover_color }};'
|
|
52
|
+
href='{{ block.settings.url }}'
|
|
53
|
+
>
|
|
54
|
+
{{ block.settings.btn_text }}
|
|
55
|
+
</a>
|
|
56
|
+
</div>
|
|
57
|
+
|
|
58
|
+
{% if block.settings.function_type == 'link_map' %}
|
|
59
|
+
<script>
|
|
60
|
+
document.addEventListener('DOMContentLoaded', (event) => {
|
|
61
|
+
const btns = document.querySelectorAll('.{{ btn_class }}')
|
|
62
|
+
if(btns && btns[0]) {
|
|
63
|
+
if(window.bindSiteJump) {
|
|
64
|
+
bindSiteJump(btns[0], {{ block.settings.links | json }})
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
})
|
|
69
|
+
</script>
|
|
70
|
+
{% endif %}
|
|
71
|
+
|
|
72
|
+
{% schema %}
|
|
73
|
+
{
|
|
74
|
+
"name": "Accessories Price Item",
|
|
75
|
+
"settings": [
|
|
76
|
+
{
|
|
77
|
+
"type": "color",
|
|
78
|
+
"id": "banner_bg_color",
|
|
79
|
+
"default": "#F5F5F6",
|
|
80
|
+
"label": "轮播卡片背景色"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"type": "image_picker",
|
|
84
|
+
"id": "image_pc",
|
|
85
|
+
"label": "Image"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"type": "image_picker",
|
|
89
|
+
"id": "image",
|
|
90
|
+
"label": "Image(mobile)"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"type": "text",
|
|
94
|
+
"id": "slide_title",
|
|
95
|
+
"label": "标题"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"type": "color",
|
|
99
|
+
"id": "slide_title_color",
|
|
100
|
+
"default": "#000000",
|
|
101
|
+
"label": "标题颜色"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"type": "richtext",
|
|
105
|
+
"id": "slide_content",
|
|
106
|
+
"label": "内容"
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"type": "color",
|
|
110
|
+
"id": "slide_content_color",
|
|
111
|
+
"default": "#170B01",
|
|
112
|
+
"label": "内容颜色"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"type": "text",
|
|
116
|
+
"id": "btn_text",
|
|
117
|
+
"label": "按钮文字",
|
|
118
|
+
"default": "Buy Now"
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"type": "color",
|
|
122
|
+
"id": "btn_bg_color",
|
|
123
|
+
"default": "#000000",
|
|
124
|
+
"label": "按钮背景颜色"
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"type": "color",
|
|
128
|
+
"id": "btn_hover_color",
|
|
129
|
+
"default": "#000000",
|
|
130
|
+
"label": "按钮hover颜色"
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"type": "color",
|
|
134
|
+
"id": "btn_text_color",
|
|
135
|
+
"default": "#FFFFFF",
|
|
136
|
+
"label": "按钮文字颜色"
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"type": "select",
|
|
140
|
+
"id": "function_type",
|
|
141
|
+
"label": "功能类型",
|
|
142
|
+
"options": [
|
|
143
|
+
{
|
|
144
|
+
"value": "link",
|
|
145
|
+
"label": "链接"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"value": "link_map",
|
|
149
|
+
"label": "多国家映射"
|
|
150
|
+
},
|
|
151
|
+
],
|
|
152
|
+
"default": "link"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"type": "url",
|
|
156
|
+
"id": "url",
|
|
157
|
+
"label": "按钮链接",
|
|
158
|
+
"visible_if": "{{ block.settings.function_type == 'link' }}"
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"type": "textarea",
|
|
162
|
+
"id": "links",
|
|
163
|
+
"label": "Sites Link Map",
|
|
164
|
+
"info": "国家对应链接的表,国家即是国家选择器上显示的字段,国家和路由之间用冒号隔开( 冒号后要加空格)。国家之间换行,“default”为其他未写的默认的链接 EG: Canada: https://hoverair.com/ default: https://hoverair.com/ ",
|
|
165
|
+
"visible_if": "{{ block.settings.function_type == 'link_map' }}"
|
|
166
|
+
},
|
|
167
|
+
],
|
|
168
|
+
|
|
169
|
+
"blocks": [
|
|
170
|
+
{
|
|
171
|
+
"type": "zz-price-tag-mini"
|
|
172
|
+
},
|
|
173
|
+
],
|
|
174
|
+
"presets": [
|
|
175
|
+
{
|
|
176
|
+
"name": "商品+价格 Buy Item"
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"name": "Accessories Price Item"
|
|
180
|
+
}
|
|
181
|
+
]
|
|
182
|
+
}
|
|
183
|
+
{% endschema %}
|
|
@@ -209,6 +209,9 @@
|
|
|
209
209
|
"blocks": [
|
|
210
210
|
{
|
|
211
211
|
"type": "zz-accessories-item"
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
"type": "zz-accessories-price-item",
|
|
212
215
|
}
|
|
213
216
|
],
|
|
214
217
|
"presets": [
|
|
@@ -216,7 +219,7 @@
|
|
|
216
219
|
"name": "Accessories Swiper Block"
|
|
217
220
|
},
|
|
218
221
|
{
|
|
219
|
-
"name": "
|
|
222
|
+
"name": "商品轮播"
|
|
220
223
|
}
|
|
221
224
|
]
|
|
222
225
|
}
|
|
@@ -159,6 +159,13 @@
|
|
|
159
159
|
"info": "非全屏展示时有效",
|
|
160
160
|
"visible_if": "{{ block.settings.pc_full_width == false }}"
|
|
161
161
|
},
|
|
162
|
+
{
|
|
163
|
+
"type": "number",
|
|
164
|
+
"id": "pc_fixed_height",
|
|
165
|
+
"label": "PC端固定高度",
|
|
166
|
+
"default": 0,
|
|
167
|
+
"info": "默认自适应高度,单位:px",
|
|
168
|
+
},
|
|
162
169
|
{
|
|
163
170
|
"type": "header",
|
|
164
171
|
"content": "📱 移动端布局设置"
|
|
@@ -291,6 +298,23 @@
|
|
|
291
298
|
"info": "国家对应链接的表,国家即是国家选择器上显示的字段,国家和路由之间用冒号隔开( 冒号后要加空格)。国家之间换行,“default”为其他未写的默认的链接 EG: Canada: https://hoverair.com/ default: https://hoverair.com/ ",
|
|
292
299
|
"visible_if": "{{ block.settings.function_type == 'link_map' and block.settings.has_link == true }}"
|
|
293
300
|
},
|
|
301
|
+
{
|
|
302
|
+
"type": "select",
|
|
303
|
+
"id": "pc_mobile_show",
|
|
304
|
+
"label": "PC/移动端分开显示",
|
|
305
|
+
"options": [
|
|
306
|
+
{ "value": "pc_mobile_show", "label": "PC/移动端都显示" },
|
|
307
|
+
{ "value": "pc_only", "label": "PC端显示" },
|
|
308
|
+
{ "value": "mobile_only", "label": "移动端显示" }
|
|
309
|
+
],
|
|
310
|
+
"default": "pc_mobile_show"
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
"type": "checkbox",
|
|
314
|
+
"id": "overflow_x_hidden",
|
|
315
|
+
"label": "是否禁止横轴移动",
|
|
316
|
+
"default": true
|
|
317
|
+
}
|
|
294
318
|
|
|
295
319
|
],
|
|
296
320
|
"blocks": [
|
|
@@ -372,10 +396,26 @@
|
|
|
372
396
|
#shopify-block-{{ block.id }} {
|
|
373
397
|
width: 100%;
|
|
374
398
|
position: relative;
|
|
375
|
-
|
|
399
|
+
{% if block.settings.overflow_x_hidden %}
|
|
400
|
+
overflow-x: hidden;
|
|
401
|
+
{% endif %}
|
|
376
402
|
background-color: {{ block.settings.background_color }};
|
|
377
403
|
}
|
|
404
|
+
{% if block.settings.pc_mobile_show == "pc_only" %}
|
|
405
|
+
@media (max-width: 1023px) {
|
|
406
|
+
#shopify-block-{{ block.id }} {
|
|
407
|
+
display: none;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
{% endif %}
|
|
378
411
|
|
|
412
|
+
{% if block.settings.pc_mobile_show == "mobile_only" %}
|
|
413
|
+
@media (min-width: 1024px) {
|
|
414
|
+
#shopify-block-{{ block.id }} {
|
|
415
|
+
display: none;
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
{% endif %}
|
|
379
419
|
#shopify-block-{{ block.id }} .flex-layout-video {
|
|
380
420
|
width: 100%;
|
|
381
421
|
height: auto;
|
|
@@ -421,6 +461,14 @@
|
|
|
421
461
|
transform: translateX(-50%);
|
|
422
462
|
{% endif %}
|
|
423
463
|
}
|
|
464
|
+
{% if block.settings.pc_fixed_height != 0 %}
|
|
465
|
+
#shopify-block-{{ block.id }} .flex-layout-image {
|
|
466
|
+
height: {{ block.settings.pc_fixed_height }}px;
|
|
467
|
+
}
|
|
468
|
+
#shopify-block-{{ block.id }} .flex-layout-image {
|
|
469
|
+
height: {{ block.settings.pc_fixed_height }}px;
|
|
470
|
+
}
|
|
471
|
+
{% endif %}
|
|
424
472
|
}
|
|
425
473
|
|
|
426
474
|
@media (min-width: 1280px) {
|
|
@@ -457,8 +505,8 @@
|
|
|
457
505
|
{% render 'zz-img',
|
|
458
506
|
pc_image: block.settings.pc_background_image,
|
|
459
507
|
mb_image: block.settings.mobile_background_image,
|
|
460
|
-
pc_width:
|
|
461
|
-
mb_width:
|
|
508
|
+
pc_width: 4000,
|
|
509
|
+
mb_width: 1200,
|
|
462
510
|
class_name: 'flex-layout-image',
|
|
463
511
|
%}
|
|
464
512
|
{% endif %}
|
|
@@ -176,6 +176,7 @@
|
|
|
176
176
|
"label": "移动端圆角 (px)",
|
|
177
177
|
"default": 0
|
|
178
178
|
},
|
|
179
|
+
|
|
179
180
|
{
|
|
180
181
|
"type": "header",
|
|
181
182
|
"content": "动画设置"
|
|
@@ -206,6 +207,23 @@
|
|
|
206
207
|
],
|
|
207
208
|
"default": "none-animation"
|
|
208
209
|
},
|
|
210
|
+
{
|
|
211
|
+
"type": "select",
|
|
212
|
+
"id": "pc_mobile_show",
|
|
213
|
+
"label": "PC/移动端分开显示",
|
|
214
|
+
"options": [
|
|
215
|
+
{ "value": "pc_mobile_show", "label": "PC/移动端都显示" },
|
|
216
|
+
{ "value": "pc_only", "label": "PC端显示" },
|
|
217
|
+
{ "value": "mobile_only", "label": "移动端显示" }
|
|
218
|
+
],
|
|
219
|
+
"default": "pc_mobile_show"
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
"type": "checkbox",
|
|
223
|
+
"id": "overflow_x_hidden",
|
|
224
|
+
"label": "是否禁止横轴移动",
|
|
225
|
+
"default": true
|
|
226
|
+
}
|
|
209
227
|
|
|
210
228
|
],
|
|
211
229
|
"blocks": [
|
|
@@ -487,12 +505,26 @@
|
|
|
487
505
|
<style>
|
|
488
506
|
#shopify-block-{{ block.id }} {
|
|
489
507
|
width: 100%;
|
|
490
|
-
|
|
508
|
+
{% if block.settings.overflow_x_hidden %}
|
|
509
|
+
overflow-x: hidden;
|
|
510
|
+
{% endif %}
|
|
491
511
|
}
|
|
512
|
+
{% if block.settings.pc_mobile_show == "pc_only" %}
|
|
513
|
+
@media (max-width: 1023px) {
|
|
514
|
+
#shopify-block-{{ block.id }} {
|
|
515
|
+
display: none;
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
{% endif %}
|
|
519
|
+
|
|
520
|
+
{% if block.settings.pc_mobile_show == "mobile_only" %}
|
|
521
|
+
@media (min-width: 1024px) {
|
|
522
|
+
#shopify-block-{{ block.id }} {
|
|
523
|
+
display: none;
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
{% endif %}
|
|
492
527
|
|
|
493
|
-
#shopify-block-{{ block.id }}.flex-layout-block{
|
|
494
|
-
display: flex;
|
|
495
|
-
}
|
|
496
528
|
|
|
497
529
|
#shopify-block-{{ block.id }} .flex-layout-block-container {
|
|
498
530
|
box-sizing: border-box;
|
|
@@ -546,4 +578,3 @@
|
|
|
546
578
|
<div class="flex-layout-block-container {{ block.settings.self_animation }} {{ block.settings.child_animation }}">
|
|
547
579
|
{% content_for 'blocks' %}
|
|
548
580
|
</div>
|
|
549
|
-
|
|
@@ -9,10 +9,11 @@
|
|
|
9
9
|
|
|
10
10
|
{% if compare_at_price and compare_at_price > current_price %}
|
|
11
11
|
{% assign percent = current_price
|
|
12
|
-
| times: 100
|
|
12
|
+
| times: 100.0
|
|
13
13
|
| divided_by: compare_at_price
|
|
14
|
+
| round
|
|
14
15
|
%}
|
|
15
|
-
{% assign discount_percentage = 100 | minus: percent %}
|
|
16
|
+
{% assign discount_percentage = 100 | minus: percent | round %}
|
|
16
17
|
<span class='price-tag-mini'>
|
|
17
18
|
<span class='price-tag-mini__main'>UP TO</span
|
|
18
19
|
><span class='price-tag-mini__main-price'>
|
package/package.json
CHANGED
|
@@ -143,6 +143,9 @@
|
|
|
143
143
|
<div class='swiper zz-shopping-cart-list-swiper'>
|
|
144
144
|
<div class='swiper-wrapper'>
|
|
145
145
|
{% for block in section.blocks %}
|
|
146
|
+
{%- comment %}<locksmith:881a>{% endcomment -%}
|
|
147
|
+
{%- capture var %}{% render 'locksmith-variables', scope: 'subject', subject: block.settings.product, subject_parent: section, variable: 'transparent' %}{% endcapture %}{% if var == "true" %}{% else %}{% continue %}{% endif -%}
|
|
148
|
+
{%- comment %}</locksmith:881a>{% endcomment -%}
|
|
146
149
|
<div class='swiper-slide {% if block_size > 1 %} max-lg:tw-pb-[60px] {% endif %}'>
|
|
147
150
|
<div class='banner-item tw-rounded-[10px] lg:tw-rounded-[16px] tw-flex tw-flex-col tw-justify-between'>
|
|
148
151
|
<div class='tw-h-[168px] lg:tw-h-[214px] tw-overflow-hidden tw-rounded-t-[10px] lg:tw-rounded-t-[16px] tw-flex-shrink-0'>
|
|
@@ -243,6 +243,9 @@
|
|
|
243
243
|
<div class="collapse-title-desc fade-in-box tw-flex tw-flex-col tw-justify-center">
|
|
244
244
|
|
|
245
245
|
{% for block in non_collapsible_blocks %}
|
|
246
|
+
{%- comment %}<locksmith:0b82>{% endcomment -%}
|
|
247
|
+
{%- capture var %}{% render 'locksmith-variables', scope: 'subject', subject: block, variable: 'transparent' %}{% endcapture %}{% if var == "true" %}{% else %}{% continue %}{% endif -%}
|
|
248
|
+
{%- comment %}</locksmith:0b82>{% endcomment -%}
|
|
246
249
|
{% case block.type %}
|
|
247
250
|
{% when 'title' %}
|
|
248
251
|
{% render 'zz-h2',
|
|
@@ -289,6 +292,9 @@
|
|
|
289
292
|
<div class="tw-w-[68%]">
|
|
290
293
|
{% assign swiper_blocks = section.blocks | where: 'type', 'collapsible_row' %}
|
|
291
294
|
{% for collapsible_row in swiper_blocks %}
|
|
295
|
+
{%- comment %}<locksmith:9ed7>{% endcomment -%}
|
|
296
|
+
{%- capture var %}{% render 'locksmith-variables', scope: 'subject', subject: collapsible_row, variable: 'transparent' %}{% endcapture %}{% if var == "true" %}{% else %}{% continue %}{% endif -%}
|
|
297
|
+
{%- comment %}</locksmith:9ed7>{% endcomment -%}
|
|
292
298
|
<div class='collasps-video-box tw-hidden tw-w-full tw-rounded-[16px] tw-overflow-hidden'>
|
|
293
299
|
{% comment %} pc端配置视频 {% endcomment %}
|
|
294
300
|
{% if collapsible_row.settings.video_pc != blank %}
|
|
@@ -316,9 +322,15 @@
|
|
|
316
322
|
</div>
|
|
317
323
|
<div class="tw-w-[27%]">
|
|
318
324
|
<div class="tw-daisy-join tw-daisy-join-vertical tw-w-full">
|
|
325
|
+
{%- comment %}<locksmith:8575>{% endcomment -%}
|
|
326
|
+
{%- assign locksmith_a30a_forloop__size = 0 %}{% for collapsible_row in swiper_blocks %}{% capture var %}{% render 'locksmith-variables', scope: 'subject', subject: collapsible_row, variable: 'transparent' %}{% endcapture %}{% if var == 'true' %}{% assign locksmith_a30a_forloop__size = locksmith_a30a_forloop__size | plus: 1 %}{% endif %}{% endfor %}{% assign locksmith_a30a_forloop__index = nil -%}
|
|
327
|
+
{%- comment %}</locksmith:8575>{% endcomment -%}
|
|
319
328
|
{% for collapsible_row in swiper_blocks %}
|
|
329
|
+
{%- comment %}<locksmith:7221>{% endcomment -%}
|
|
330
|
+
{%- capture var %}{% render 'locksmith-variables', scope: 'subject', subject: collapsible_row, variable: 'transparent' %}{% endcapture %}{% if var == "true" %}{% if locksmith_a30a_forloop__index == nil %}{% assign locksmith_a30a_forloop__index = 1 %}{% assign locksmith_a30a_forloop__index0 = 0 %}{% else %}{% assign locksmith_a30a_forloop__index = locksmith_a30a_forloop__index | plus: 1 %}{% assign locksmith_a30a_forloop__index0 = locksmith_a30a_forloop__index0 | plus: 1 %}{% endif %}{% if locksmith_a30a_forloop__index == 1 %}{% assign locksmith_a30a_forloop__first = true %}{% else %}{% assign locksmith_a30a_forloop__first = false %}{% endif %}{% if locksmith_a30a_forloop__index == locksmith_a30a_forloop__size %}{% assign locksmith_a30a_forloop__last = true %}{% else %}{% assign locksmith_a30a_forloop__last = false %}{% endif %}{% assign locksmith_a30a_forloop__rindex = locksmith_a30a_forloop__size | minus: locksmith_a30a_forloop__index | minus: 1 %}{% assign locksmith_a30a_forloop__rindex0 = locksmith_a30a_forloop__size | minus: locksmith_a30a_forloop__index0 | minus: 1 %}{% else %}{% continue %}{% endif -%}
|
|
331
|
+
{%- comment %}</locksmith:7221>{% endcomment -%}
|
|
320
332
|
<div class="tw-daisy-collapse collapse-arrow tw-daisy-join-item ">
|
|
321
|
-
<input type="radio" name="my-accordion-{{ section.id }}" value="{{
|
|
333
|
+
<input type="radio" name="my-accordion-{{ section.id }}" value="{{ locksmith_a30a_forloop__index }}" {% if locksmith_a30a_forloop__first %}checked data-last-checked="true"{% endif %} onclick="handleFAQClick(this)" style="cursor: pointer;" />
|
|
322
334
|
<div class="tw-daisy-collapse-title tw-py-[20px] tw-px-0 tw-text-[20px] tw-font-[700] tw-leading-[1]" style="color: {{ section.settings.tab_title_active_color }};">
|
|
323
335
|
{{ collapsible_row.settings.heading }}
|
|
324
336
|
</div>
|
|
@@ -337,6 +349,9 @@
|
|
|
337
349
|
|
|
338
350
|
<div class='tw-px-[20px] tw-py-[20px] lg:tw-hidden'>
|
|
339
351
|
{% for collapsible_row in swiper_blocks %}
|
|
352
|
+
{%- comment %}<locksmith:7587>{% endcomment -%}
|
|
353
|
+
{%- capture var %}{% render 'locksmith-variables', scope: 'subject', subject: collapsible_row, variable: 'transparent' %}{% endcapture %}{% if var == "true" %}{% else %}{% continue %}{% endif -%}
|
|
354
|
+
{%- comment %}</locksmith:7587>{% endcomment -%}
|
|
340
355
|
<div class='video-box tw-hidden tw-rounded-[10px] tw-overflow-hidden'>
|
|
341
356
|
{% comment %} 移动端配置视频 {% endcomment %}
|
|
342
357
|
{% if collapsible_row.settings.video_mb != blank %}
|
|
@@ -365,11 +380,17 @@
|
|
|
365
380
|
<div
|
|
366
381
|
class='tabs tw-flex tw-justify-between tw-w-full tw-min-w-[320px] tw-max-w-[480px] tw-px-[16px] tw-rounded-[16px] tw-items-center tw-h-[32px] tw-mb-[12px]'
|
|
367
382
|
style="background-color: {{ section.settings.tab_bar_bg_color }};">
|
|
383
|
+
{%- comment %}<locksmith:ec8e>{% endcomment -%}
|
|
384
|
+
{%- assign locksmith_1f74_forloop__size = 0 %}{% for collapsible_row in swiper_blocks %}{% capture var %}{% render 'locksmith-variables', scope: 'subject', subject: collapsible_row, variable: 'transparent' %}{% endcapture %}{% if var == 'true' %}{% assign locksmith_1f74_forloop__size = locksmith_1f74_forloop__size | plus: 1 %}{% endif %}{% endfor %}{% assign locksmith_1f74_forloop__index = nil -%}
|
|
385
|
+
{%- comment %}</locksmith:ec8e>{% endcomment -%}
|
|
368
386
|
{% for collapsible_row in swiper_blocks %}
|
|
387
|
+
{%- comment %}<locksmith:6093>{% endcomment -%}
|
|
388
|
+
{%- capture var %}{% render 'locksmith-variables', scope: 'subject', subject: collapsible_row, variable: 'transparent' %}{% endcapture %}{% if var == "true" %}{% if locksmith_1f74_forloop__index == nil %}{% assign locksmith_1f74_forloop__index = 1 %}{% assign locksmith_1f74_forloop__index0 = 0 %}{% else %}{% assign locksmith_1f74_forloop__index = locksmith_1f74_forloop__index | plus: 1 %}{% assign locksmith_1f74_forloop__index0 = locksmith_1f74_forloop__index0 | plus: 1 %}{% endif %}{% if locksmith_1f74_forloop__index == 1 %}{% assign locksmith_1f74_forloop__first = true %}{% else %}{% assign locksmith_1f74_forloop__first = false %}{% endif %}{% if locksmith_1f74_forloop__index == locksmith_1f74_forloop__size %}{% assign locksmith_1f74_forloop__last = true %}{% else %}{% assign locksmith_1f74_forloop__last = false %}{% endif %}{% assign locksmith_1f74_forloop__rindex = locksmith_1f74_forloop__size | minus: locksmith_1f74_forloop__index | minus: 1 %}{% assign locksmith_1f74_forloop__rindex0 = locksmith_1f74_forloop__size | minus: locksmith_1f74_forloop__index0 | minus: 1 %}{% else %}{% continue %}{% endif -%}
|
|
389
|
+
{%- comment %}</locksmith:6093>{% endcomment -%}
|
|
369
390
|
<div
|
|
370
391
|
class='tab-item tw-cursor-pointer tw-text-[10px] tw-font-[500] hover:tw-border-white'
|
|
371
392
|
style="color: {{ section.settings.tab_title_color }};"
|
|
372
|
-
data-index='{{
|
|
393
|
+
data-index='{{ locksmith_1f74_forloop__index0 }}'
|
|
373
394
|
>
|
|
374
395
|
{{ collapsible_row.settings.heading }}
|
|
375
396
|
</div>
|
|
@@ -377,9 +398,15 @@
|
|
|
377
398
|
</div>
|
|
378
399
|
|
|
379
400
|
<div class='video-content '>
|
|
401
|
+
{%- comment %}<locksmith:a1fa>{% endcomment -%}
|
|
402
|
+
{%- assign locksmith_3ef6_forloop__size = 0 %}{% for collapsible_row in swiper_blocks %}{% capture var %}{% render 'locksmith-variables', scope: 'subject', subject: collapsible_row, variable: 'transparent' %}{% endcapture %}{% if var == 'true' %}{% assign locksmith_3ef6_forloop__size = locksmith_3ef6_forloop__size | plus: 1 %}{% endif %}{% endfor %}{% assign locksmith_3ef6_forloop__index = nil -%}
|
|
403
|
+
{%- comment %}</locksmith:a1fa>{% endcomment -%}
|
|
380
404
|
{% for collapsible_row in swiper_blocks %}
|
|
405
|
+
{%- comment %}<locksmith:7a77>{% endcomment -%}
|
|
406
|
+
{%- capture var %}{% render 'locksmith-variables', scope: 'subject', subject: collapsible_row, variable: 'transparent' %}{% endcapture %}{% if var == "true" %}{% if locksmith_3ef6_forloop__index == nil %}{% assign locksmith_3ef6_forloop__index = 1 %}{% assign locksmith_3ef6_forloop__index0 = 0 %}{% else %}{% assign locksmith_3ef6_forloop__index = locksmith_3ef6_forloop__index | plus: 1 %}{% assign locksmith_3ef6_forloop__index0 = locksmith_3ef6_forloop__index0 | plus: 1 %}{% endif %}{% if locksmith_3ef6_forloop__index == 1 %}{% assign locksmith_3ef6_forloop__first = true %}{% else %}{% assign locksmith_3ef6_forloop__first = false %}{% endif %}{% if locksmith_3ef6_forloop__index == locksmith_3ef6_forloop__size %}{% assign locksmith_3ef6_forloop__last = true %}{% else %}{% assign locksmith_3ef6_forloop__last = false %}{% endif %}{% assign locksmith_3ef6_forloop__rindex = locksmith_3ef6_forloop__size | minus: locksmith_3ef6_forloop__index | minus: 1 %}{% assign locksmith_3ef6_forloop__rindex0 = locksmith_3ef6_forloop__size | minus: locksmith_3ef6_forloop__index0 | minus: 1 %}{% else %}{% continue %}{% endif -%}
|
|
407
|
+
{%- comment %}</locksmith:7a77>{% endcomment -%}
|
|
381
408
|
<div
|
|
382
|
-
class='content-item row-content tw-hidden tw-font-[500] tw-leading-[1.5] tw-text-center' data-index='{{
|
|
409
|
+
class='content-item row-content tw-hidden tw-font-[500] tw-leading-[1.5] tw-text-center' data-index='{{ locksmith_3ef6_forloop__index0 }}'
|
|
383
410
|
style="color: {{ section.settings.collapsible_text_color }};"
|
|
384
411
|
>
|
|
385
412
|
{{ collapsible_row.settings.row_content }}
|
|
@@ -175,6 +175,9 @@
|
|
|
175
175
|
>
|
|
176
176
|
<div class='fade-in-box tw-flex tw-flex-col tw-justify-center'>
|
|
177
177
|
{% for block in non_collapsible_blocks %}
|
|
178
|
+
{%- comment %}<locksmith:ad09>{% endcomment -%}
|
|
179
|
+
{%- capture var %}{% render 'locksmith-variables', scope: 'subject', subject: block, variable: 'transparent' %}{% endcapture %}{% if var == "true" %}{% else %}{% continue %}{% endif -%}
|
|
180
|
+
{%- comment %}</locksmith:ad09>{% endcomment -%}
|
|
178
181
|
{% case block.type %}
|
|
179
182
|
{% when 'title' %}
|
|
180
183
|
{% render 'zz-h2',
|
|
@@ -220,6 +223,9 @@
|
|
|
220
223
|
>
|
|
221
224
|
<div class='swiper-wrapper'>
|
|
222
225
|
{% for banner in swiper_blocks %}
|
|
226
|
+
{%- comment %}<locksmith:6e8b>{% endcomment -%}
|
|
227
|
+
{%- capture var %}{% render 'locksmith-variables', scope: 'subject', subject: banner, variable: 'transparent' %}{% endcapture %}{% if var == "true" %}{% else %}{% continue %}{% endif -%}
|
|
228
|
+
{%- comment %}</locksmith:6e8b>{% endcomment -%}
|
|
223
229
|
<div class='swiper-slide'>
|
|
224
230
|
<div class='media-box tw-rounded-[10px] lg:tw-rounded-[16px] tw-overflow-hidden'>
|
|
225
231
|
{% if banner.settings.video_pc != blank or banner.settings.video_url_pc != blank %}
|
|
@@ -279,6 +285,9 @@
|
|
|
279
285
|
// 添加标题数组
|
|
280
286
|
const slideTitles = [
|
|
281
287
|
{% for block in swiper_blocks %}
|
|
288
|
+
{%- comment %}<locksmith:41d3>{% endcomment -%}
|
|
289
|
+
{%- capture var %}{% render 'locksmith-variables', scope: 'subject', subject: block, variable: 'transparent' %}{% endcapture %}{% if var == "true" %}{% else %}{% continue %}{% endif -%}
|
|
290
|
+
{%- comment %}</locksmith:41d3>{% endcomment -%}
|
|
282
291
|
"{{ block.settings.slide_title }}",
|
|
283
292
|
{% endfor %}
|
|
284
293
|
];
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{%- comment %}
|
|
2
|
+
Hey there! This asset is managed by Locksmith (uselocksmith.com).
|
|
3
|
+
|
|
4
|
+
Do not modify this file. Any changes will be reset the next time that
|
|
5
|
+
Locksmith interacts with this theme.
|
|
6
|
+
|
|
7
|
+
Last updated: Fri, 08 Aug 2025 17:56:55 -0700 (PDT)
|
|
8
|
+
{% endcomment -%}
|
|
9
|
+
|
|
10
|
+
{%assign _p=cart%}{%assign _l=customer%}{%assign _h=theme%}{%capture _%}{%assign _d=_9%}{%capture locksmith_client%}<script data-locksmith>!function(){var require=undefined,reqwest=function(){function succeed(e){var t=protocolRe.exec(e.url);return t=t&&t[1]||context.location.protocol,httpsRe.test(t)?twoHundo.test(e.request.status):!!e.request.response}function handleReadyState(e,t,n){return function(){return e._aborted?n(e.request):e._timedOut?n(e.request,"Request is aborted: timeout"):void(e.request&&4==e.request[readyState]&&(e.request.onreadystatechange=noop,succeed(e)?t(e.request):n(e.request)))}}function setHeaders(e,t){var n,s=t.headers||{};s.Accept=s.Accept||defaultHeaders.accept[t.type]||defaultHeaders.accept["*"];var r="undefined"!=typeof FormData&&t.data instanceof FormData;for(n in!t.crossOrigin&&!s[requestedWith]&&(s[requestedWith]=defaultHeaders.requestedWith),!s[contentType]&&!r&&(s[contentType]=t.contentType||defaultHeaders.contentType),s)s.hasOwnProperty(n)&&"setRequestHeader"in e&&e.setRequestHeader(n,s[n])}function setCredentials(e,t){"undefined"!=typeof t.withCredentials&&"undefined"!=typeof e.withCredentials&&(e.withCredentials=!!t.withCredentials)}function generalCallback(e){lastValue=e}function urlappend(e,t){return e+(/[?]/.test(e)?"&":"?")+t}function handleJsonp(e,t,n,s){var r=uniqid++,o=e.jsonpCallback||"callback",a=e.jsonpCallbackName||reqwest.getcallbackPrefix(r),i=new RegExp("((^|[?]|&)"+o+")=([^&]+)"),l=s.match(i),c=doc.createElement("script"),u=0,d=-1!==navigator.userAgent.indexOf("MSIE 10.0");return l?"?"===l[3]?s=s.replace(i,"$1="+a):a=l[3]:s=urlappend(s,o+"="+a),context[a]=generalCallback,c.type="text/javascript",c.src=s,c.async=!0,"undefined"!=typeof c.onreadystatechange&&!d&&(c.htmlFor=c.id="_reqwest_"+r),c.onload=c.onreadystatechange=function(){if(c[readyState]&&"complete"!==c[readyState]&&"loaded"!==c[readyState]||u)return!1;c.onload=c.onreadystatechange=null,c.onclick&&c.onclick(),t(lastValue),lastValue=undefined,head.removeChild(c),u=1},head.appendChild(c),{abort:function(){c.onload=c.onreadystatechange=null,n({},"Request is aborted: timeout",{}),lastValue=undefined,head.removeChild(c),u=1}}}function getRequest(e,t){var n,s=this.o,r=(s.method||"GET").toUpperCase(),o="string"==typeof s?s:s.url,a=!1!==s.processData&&s.data&&"string"!=typeof s.data?reqwest.toQueryString(s.data):s.data||null,i=!1;return("jsonp"==s.type||"GET"==r)&&a&&(o=urlappend(o,a),a=null),"jsonp"==s.type?handleJsonp(s,e,t,o):((n=s.xhr&&s.xhr(s)||xhr(s)).open(r,o,!1!==s.async),setHeaders(n,s),setCredentials(n,s),context[xDomainRequest]&&n instanceof context[xDomainRequest]?(n.onload=e,n.onerror=t,n.onprogress=function(){},i=!0):n.onreadystatechange=handleReadyState(this,e,t),s.before&&s.before(n),i?setTimeout(function(){n.send(a)},200):n.send(a),n)}function Reqwest(e,t){this.o=e,this.fn=t,init.apply(this,arguments)}function setType(e){return null===e?undefined:e.match("json")?"json":e.match("javascript")?"js":e.match("text")?"html":e.match("xml")?"xml":void 0}function init(o,fn){function complete(e){for(o.timeout&&clearTimeout(self.timeout),self.timeout=null;0<self._completeHandlers.length;)self._completeHandlers.shift()(e)}function success(resp){var type=o.type||resp&&setType(resp.getResponseHeader("Content-Type"));resp="jsonp"!==type?self.request:resp;var filteredResponse=globalSetupOptions.dataFilter(resp.responseText,type),r=filteredResponse;try{resp.responseText=r}catch(e){}if(r)switch(type){case"json":try{resp=context.JSON?context.JSON.parse(r):eval("("+r+")")}catch(err){return error(resp,"Could not parse JSON in response",err)}break;case"js":resp=eval(r);break;case"html":resp=r;break;case"xml":resp=resp.responseXML&&resp.responseXML.parseError&&resp.responseXML.parseError.errorCode&&resp.responseXML.parseError.reason?null:resp.responseXML}for(self._responseArgs.resp=resp,self._fulfilled=!0,fn(resp),self._successHandler(resp);0<self._fulfillmentHandlers.length;)resp=self._fulfillmentHandlers.shift()(resp);complete(resp)}function timedOut(){self._timedOut=!0,self.request.abort()}function error(e,t,n){for(e=self.request,self._responseArgs.resp=e,self._responseArgs.msg=t,self._responseArgs.t=n,self._erred=!0;0<self._errorHandlers.length;)self._errorHandlers.shift()(e,t,n);complete(e)}this.url="string"==typeof o?o:o.url,this.timeout=null,this._fulfilled=!1,this._successHandler=function(){},this._fulfillmentHandlers=[],this._errorHandlers=[],this._completeHandlers=[],this._erred=!1,this._responseArgs={};var self=this;fn=fn||function(){},o.timeout&&(this.timeout=setTimeout(function(){timedOut()},o.timeout)),o.success&&(this._successHandler=function(){o.success.apply(o,arguments)}),o.error&&this._errorHandlers.push(function(){o.error.apply(o,arguments)}),o.complete&&this._completeHandlers.push(function(){o.complete.apply(o,arguments)}),this.request=getRequest.call(this,success,error)}function reqwest(e,t){return new Reqwest(e,t)}function normalize(e){return e?e.replace(/\r?\n/g,"\r\n"):""}function serial(e,t){var n,s,r,o,a=e.name,i=e.tagName.toLowerCase(),l=function(e){e&&!e.disabled&&t(a,normalize(e.attributes.value&&e.attributes.value.specified?e.value:e.text))};if(!e.disabled&&a)switch(i){case"input":/reset|button|image|file/i.test(e.type)||(n=/checkbox/i.test(e.type),s=/radio/i.test(e.type),r=e.value,(!n&&!s||e.checked)&&t(a,normalize(n&&""===r?"on":r)));break;case"textarea":t(a,normalize(e.value));break;case"select":if("select-one"===e.type.toLowerCase())l(0<=e.selectedIndex?e.options[e.selectedIndex]:null);else for(o=0;e.length&&o<e.length;o++)e.options[o].selected&&l(e.options[o])}}function eachFormElement(){var e,t,o=this,n=function(e,t){var n,s,r;for(n=0;n<t.length;n++)for(r=e[byTag](t[n]),s=0;s<r.length;s++)serial(r[s],o)};for(t=0;t<arguments.length;t++)e=arguments[t],/input|select|textarea/i.test(e.tagName)&&serial(e,o),n(e,["input","select","textarea"])}function serializeQueryString(){return reqwest.toQueryString(reqwest.serializeArray.apply(null,arguments))}function serializeHash(){var n={};return eachFormElement.apply(function(e,t){e in n?(n[e]&&!isArray(n[e])&&(n[e]=[n[e]]),n[e].push(t)):n[e]=t},arguments),n}function buildParams(e,t,n,s){var r,o,a,i=/\[\]$/;if(isArray(t))for(o=0;t&&o<t.length;o++)a=t[o],n||i.test(e)?s(e,a):buildParams(e+"["+("object"==typeof a?o:"")+"]",a,n,s);else if(t&&"[object Object]"===t.toString())for(r in t)buildParams(e+"["+r+"]",t[r],n,s);else s(e,t)}var context=this,XHR2;if("window"in context)var doc=document,byTag="getElementsByTagName",head=doc[byTag]("head")[0];else try{XHR2=require("xhr2")}catch(ex){throw new Error("Peer dependency `xhr2` required! Please npm install xhr2")}var httpsRe=/^http/,protocolRe=/(^\w+):\/\//,twoHundo=/^(20\d|1223)$/,readyState="readyState",contentType="Content-Type",requestedWith="X-Requested-With",uniqid=0,callbackPrefix="reqwest_"+ +new Date,lastValue,xmlHttpRequest="XMLHttpRequest",xDomainRequest="XDomainRequest",noop=function(){},isArray="function"==typeof Array.isArray?Array.isArray:function(e){return e instanceof Array},defaultHeaders={contentType:"application/x-www-form-urlencoded",requestedWith:xmlHttpRequest,accept:{"*":"text/javascript, text/html, application/xml, text/xml, */*",xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript",js:"application/javascript, text/javascript"}},xhr=function(e){if(!0!==e.crossOrigin)return context[xmlHttpRequest]?new XMLHttpRequest:XHR2?new XHR2:new ActiveXObject("Microsoft.XMLHTTP");var t=context[xmlHttpRequest]?new XMLHttpRequest:null;if(t&&"withCredentials"in t)return t;if(context[xDomainRequest])return new XDomainRequest;throw new Error("Browser does not support cross-origin requests")},globalSetupOptions={dataFilter:function(e){return e}};return Reqwest.prototype={abort:function(){this._aborted=!0,this.request.abort()},retry:function(){init.call(this,this.o,this.fn)},then:function(e,t){return e=e||function(){},t=t||function(){},this._fulfilled?this._responseArgs.resp=e(this._responseArgs.resp):this._erred?t(this._responseArgs.resp,this._responseArgs.msg,this._responseArgs.t):(this._fulfillmentHandlers.push(e),this._errorHandlers.push(t)),this},always:function(e){return this._fulfilled||this._erred?e(this._responseArgs.resp):this._completeHandlers.push(e),this},fail:function(e){return this._erred?e(this._responseArgs.resp,this._responseArgs.msg,this._responseArgs.t):this._errorHandlers.push(e),this},"catch":function(e){return this.fail(e)}},reqwest.serializeArray=function(){var n=[];return eachFormElement.apply(function(e,t){n.push({name:e,value:t})},arguments),n},reqwest.serialize=function(){if(0===arguments.length)return"";var e,t=Array.prototype.slice.call(arguments,0);return(e=t.pop())&&e.nodeType&&t.push(e)&&(e=null),e&&(e=e.type),("map"==e?serializeHash:"array"==e?reqwest.serializeArray:serializeQueryString).apply(null,t)},reqwest.toQueryString=function(e,t){var n,s,r=t||!1,o=[],a=encodeURIComponent,i=function(e,t){t="function"==typeof t?t():null==t?"":t,o[o.length]=a(e)+"="+a(t)};if(isArray(e))for(s=0;e&&s<e.length;s++)i(e[s].name,e[s].value);else for(n in e)e.hasOwnProperty(n)&&buildParams(n,e[n],r,i);return o.join("&").replace(/%20/g,"+")},reqwest.getcallbackPrefix=function(){return callbackPrefix},reqwest.compat=function(e,t){return e&&(e.type&&(e.method=e.type)&&delete e.type,e.dataType&&(e.type=e.dataType),e.jsonpCallback&&(e.jsonpCallbackName=e.jsonpCallback)&&delete e.jsonpCallback,e.jsonp&&(e.jsonpCallback=e.jsonp)),new Reqwest(e,t)},reqwest.ajaxSetup=function(e){for(var t in e=e||{})globalSetupOptions[t]=e[t]},reqwest}();
|
|
11
|
+
/*!
|
|
12
|
+
* Reqwest! A general purpose XHR connection manager
|
|
13
|
+
* license MIT (c) Dustin Diaz 2015
|
|
14
|
+
* https://github.com/ded/reqwest
|
|
15
|
+
*/!function(){var a=window.Locksmith={},e=document.querySelector('script[type="application/vnd.locksmith+json"]'),n=e&&e.innerHTML;if(a.state={},a.util={},a.loading=!1,n)try{a.state=JSON.parse(n)}catch(u){}if(document.addEventListener&&document.querySelector){var s,r,o,t=[76,79,67,75,83,77,73,84,72,49,49],i=function(){r=t.slice(0)},l="style",c=function(e){e&&27!==e.keyCode&&"click"!==e.type||(document.removeEventListener("keydown",c),document.removeEventListener("click",c),s&&document.body.removeChild(s),s=null)};i(),document.addEventListener("keyup",function(e){if(e.keyCode===r[0]){if(clearTimeout(o),r.shift(),0<r.length)return void(o=setTimeout(i,1e3));i(),c(),(s=document.createElement("div"))[l].width="50%",s[l].maxWidth="1000px",s[l].height="85%",s[l].border="1px rgba(0, 0, 0, 0.2) solid",s[l].background="rgba(255, 255, 255, 0.99)",s[l].borderRadius="4px",s[l].position="fixed",s[l].top="50%",s[l].left="50%",s[l].transform="translateY(-50%) translateX(-50%)",s[l].boxShadow="0 2px 5px rgba(0, 0, 0, 0.3), 0 0 100vh 100vw rgba(0, 0, 0, 0.5)",s[l].zIndex="2147483645";var t=document.createElement("textarea");t.value=JSON.stringify(JSON.parse(n),null,2),t[l].border="none",t[l].display="block",t[l].boxSizing="border-box",t[l].width="100%",t[l].height="100%",t[l].background="transparent",t[l].padding="22px",t[l].fontFamily="monospace",t[l].fontSize="14px",t[l].color="#333",t[l].resize="none",t[l].outline="none",t.readOnly=!0,s.appendChild(t),document.body.appendChild(s),t.addEventListener("click",function(e){e.stopImmediatePropagation()}),t.select(),document.addEventListener("keydown",c),document.addEventListener("click",c)}})}a.isEmbedded=-1!==window.location.search.indexOf("_ab=0&_fd=0&_sc=1"),a.path=a.state.path||window.location.pathname,a.basePath=a.state.locale_root_url.concat("/apps/locksmith").replace(/^\/\//,"/"),a.reloading=!1,a.util.console=window.console||{log:function(){},error:function(){}},a.util.makeUrl=function(e,t){var n,s=a.basePath+e,r=[],o=a.cache();for(n in o)r.push(n+"="+encodeURIComponent(o[n]));for(n in t)r.push(n+"="+encodeURIComponent(t[n]));return a.state.customer_id&&(r.push("customer_id="+encodeURIComponent(a.state.customer_id)),r.push("customer_id_signature="+encodeURIComponent(a.state.customer_id_signature))),s+=(-1===s.indexOf("?")?"?":"&")+r.join("&")},a._initializeCallbacks=[],a.on=function(e,t){if("initialize"!==e)throw'Locksmith.on() currently only supports the "initialize" event';a._initializeCallbacks.push(t)},a.initializeSession=function(e){if(!a.isEmbedded){var t=!1,n=!0,s=!0;(e=e||{}).silent&&(s=n=!(t=!0)),a.ping({silent:t,spinner:n,reload:s,callback:function(){a._initializeCallbacks.forEach(function(e){e()})}})}},a.cache=function(e){var t={};try{var n=function r(e){return(document.cookie.match("(^|; )"+e+"=([^;]*)")||0)[2]};t=JSON.parse(decodeURIComponent(n("locksmith-params")||"{}"))}catch(u){}if(e){for(var s in e)t[s]=e[s];document.cookie="locksmith-params=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/",document.cookie="locksmith-params="+encodeURIComponent(JSON.stringify(t))+"; path=/"}return t},a.cache.cart=a.state.cart,a.cache.cartLastSaved=null,a.params=a.cache(),a.util.reload=function(){a.reloading=!0;try{window.location.href=window.location.href.replace(/#.*/,"")}catch(u){a.util.console.error("Preferred reload method failed",u),window.location.reload()}},a.cache.saveCart=function(e){if(!a.cache.cart||a.cache.cart===a.cache.cartLastSaved)return e?e():null;var t=a.cache.cartLastSaved;a.cache.cartLastSaved=a.cache.cart,reqwest({url:"/cart/update.json",method:"post",type:"json",data:{attributes:{locksmith:a.cache.cart}},complete:e,error:function(e){if(a.cache.cartLastSaved=t,!a.reloading)throw e}})},a.util.spinnerHTML='<style>body{background:#FFF}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}#loading{display:flex;width:100%;height:50vh;color:#777;align-items:center;justify-content:center}#loading .spinner{display:block;animation:spin 600ms linear infinite;position:relative;width:50px;height:50px}#loading .spinner-ring{stroke:currentColor;stroke-dasharray:100%;stroke-width:2px;stroke-linecap:round;fill:none}</style><div id="loading"><div class="spinner"><svg width="100%" height="100%"><svg preserveAspectRatio="xMinYMin"><circle class="spinner-ring" cx="50%" cy="50%" r="45%"></circle></svg></svg></div></div>',a.util.clobberBody=function(e){document.body.innerHTML=e},a.util.clobberDocument=function(e){e.responseText&&(e=e.responseText),document.documentElement&&document.removeChild(document.documentElement);var t=document.open("text/html","replace");t.writeln(e),t.close(),setTimeout(function(){var e=t.querySelector("[autofocus]");e&&e.focus()},100)},a.util.serializeForm=function(e){if(e&&"FORM"===e.nodeName){var t,n,s={};for(t=e.elements.length-1;0<=t;t-=1)if(""!==e.elements[t].name)switch(e.elements[t].nodeName){case"INPUT":switch(e.elements[t].type){default:case"text":case"hidden":case"password":case"button":case"reset":case"submit":s[e.elements[t].name]=e.elements[t].value;break;case"checkbox":case"radio":e.elements[t].checked&&(s[e.elements[t].name]=e.elements[t].value);break;case"file":}break;case"TEXTAREA":s[e.elements[t].name]=e.elements[t].value;break;case"SELECT":switch(e.elements[t].type){case"select-one":s[e.elements[t].name]=e.elements[t].value;break;case"select-multiple":for(n=e.elements[t].options.length-1;0<=n;n-=1)e.elements[t].options[n].selected&&(s[e.elements[t].name]=e.elements[t].options[n].value)}break;case"BUTTON":switch(e.elements[t].type){case"reset":case"submit":case"button":s[e.elements[t].name]=e.elements[t].value}}return s}},a.util.on=function(e,o,a,t){t=t||document;var i="locksmith-"+e+o,n=function(e){var t=e.target,n=e.target.parentElement,s=t.className.baseVal||t.className||"",r=n.className.baseVal||n.className||"";("string"==typeof s&&-1!==s.split(/\s+/).indexOf(o)||"string"==typeof r&&-1!==r.split(/\s+/).indexOf(o))&&!e[i]&&(e[i]=!0,a(e))};t.attachEvent?t.attachEvent(e,n):t.addEventListener(e,n,!1)},a.util.enableActions=function(e){a.util.on("click","locksmith-action",function(e){e.preventDefault();var t=e.target;t.dataset.confirmWith&&!confirm(t.dataset.confirmWith)||(t.disabled=!0,t.innerText=t.dataset.disableWith,a.post("/action",t.dataset.locksmithParams,{spinner:!1,type:"text",success:function(e){(e=JSON.parse(e.responseText)).message&&alert(e.message),a.util.reload()}}))},e)},a.util.inject=function(e,t){var n=["data","locksmith","append"];if(-1!==t.indexOf(n.join("-"))){var s=document.createElement("div");s.innerHTML=t,e.appendChild(s)}else e.innerHTML=t;var r,o,a=e.querySelectorAll("script");for(o=0;o<a.length;++o){r=a[o];var i=document.createElement("script");if(r.type&&(i.type=r.type),r.src)i.src=r.src;else{var l=document.createTextNode(r.innerHTML);i.appendChild(l)}e.appendChild(i)}var c=e.querySelector("[autofocus]");c&&c.focus()},a.post=function(e,t,n){!1!==(n=n||{}).spinner&&a.util.clobberBody(a.util.spinnerHTML);var s={};n.container===document?(s.layout=1,n.success=function(e){document.getElementById(n.container);a.util.clobberDocument(e)}):n.container&&(s.layout=0,n.success=function(e){var t=document.getElementById(n.container);a.util.inject(t,e),t.id===t.firstChild.id&&t.parentElement.replaceChild(t.firstChild,t)}),n.form_type&&(t.form_type=n.form_type),n.include_layout_classes!==undefined&&(t.include_layout_classes=n.include_layout_classes),n.lock_id!==undefined&&(t.lock_id=n.lock_id),a.loading=!0;var r=a.util.makeUrl(e,s);reqwest({url:r,method:"post",type:n.type||"html",data:t,complete:function(){a.loading=!1},error:function(e){if(!a.reloading)if("dashboard.weglot.com"!==window.location.host){if(!n.silent)throw alert("Something went wrong! Please refresh and try again."),e;console.error(e)}else console.error(e)},success:n.success||a.util.clobberDocument})},a.postResource=function(e,t){e.path=a.path,e.search=window.location.search,e.state=a.state,e.passcode&&(e.passcode=e.passcode.trim()),e.email&&(e.email=e.email.trim()),e.state.cart=a.cache.cart,e.locksmith_json=a.jsonTag,e.locksmith_json_signature=a.jsonTagSignature,a.post("/resource",e,t)},a.ping=function(e){if(!a.isEmbedded){e=e||{};a.post("/ping",{path:a.path,search:window.location.search,state:a.state},{spinner:!!e.spinner,silent:"undefined"==typeof e.silent||e.silent,type:"text",success:function(e){(e=JSON.parse(e.responseText)).messages&&0<e.messages.length&&a.showMessages(e.messages)}})}},a.timeoutMonitor=function(){var e=a.cache.cart;a.ping({callback:function(){e!==a.cache.cart||setTimeout(function(){a.timeoutMonitor()},6e4)}})},a.showMessages=function(e){var t=document.createElement("div");t.style.position="fixed",t.style.left=0,t.style.right=0,t.style.bottom="-50px",t.style.opacity=0,t.style.background="#191919",t.style.color="#ddd",t.style.transition="bottom 0.2s, opacity 0.2s",t.style.zIndex=999999,t.innerHTML=" <style> .locksmith-ab .locksmith-b { display: none; } .locksmith-ab.toggled .locksmith-b { display: flex; } .locksmith-ab.toggled .locksmith-a { display: none; } .locksmith-flex { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; padding: 10px 20px; } .locksmith-message + .locksmith-message { border-top: 1px #555 solid; } .locksmith-message a { color: inherit; font-weight: bold; } .locksmith-message a:hover { color: inherit; opacity: 0.8; } a.locksmith-ab-toggle { font-weight: inherit; text-decoration: underline; } .locksmith-text { flex-grow: 1; } .locksmith-cta { flex-grow: 0; text-align: right; } .locksmith-cta button { transform: scale(0.8); transform-origin: left; } .locksmith-cta > * { display: block; } .locksmith-cta > * + * { margin-top: 10px; } .locksmith-message a.locksmith-close { flex-grow: 0; text-decoration: none; margin-left: 15px; font-size: 30px; font-family: monospace; display: block; padding: 2px 10px; } @media screen and (max-width: 600px) { .locksmith-wide-only { display: none !important; } .locksmith-flex { padding: 0 15px; } .locksmith-flex > * { margin-top: 5px; margin-bottom: 5px; } .locksmith-cta { text-align: left; } } @media screen and (min-width: 601px) { .locksmith-narrow-only { display: none !important; } } </style> "+e.map(function(e){return'<div class="locksmith-message">'+e+"</div>"}).join(""),document.body.appendChild(t),document.body.style.position="relative",document.body.parentElement.style.paddingBottom=t.offsetHeight+"px",setTimeout(function(){t.style.bottom=0,t.style.opacity=1},50),a.util.on("click","locksmith-ab-toggle",function(e){e.preventDefault();for(var t=e.target.parentElement;-1===t.className.split(" ").indexOf("locksmith-ab");)t=t.parentElement;-1!==t.className.split(" ").indexOf("toggled")?t.className=t.className.replace("toggled",""):t.className=t.className+" toggled"}),a.util.enableActions(t)}}()}();</script>
|
|
16
|
+
<script data-locksmith>Locksmith.cache.cart={{_p.attributes.locksmith|json}}</script>{%endcapture%}{%capture locksmith_customer_register_form%}{%capture _9%}{%section 'main-page'%}{%endcapture%}{{_9|replace:'</form>', '<input type="hidden" name="return_to" value=""></form>'}}
|
|
17
|
+
|
|
18
|
+
<script data-locksmith>
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
window.document.title = "";
|
|
22
|
+
var redirectUrl = window.location.href.replace('/account/register', '/');
|
|
23
|
+
var inputNodes = document.querySelectorAll('input[name=return_to]');
|
|
24
|
+
for (var i = 0; i < inputNodes.length; i++) {
|
|
25
|
+
inputNodes[i].value = redirectUrl;
|
|
26
|
+
}
|
|
27
|
+
</script>{%endcapture%}{%capture locksmith_customer_login_form%}{%capture _9%}{%section 'main-page'%}{%endcapture%}{{_9|replace:'</form>', '<input type="hidden" name="return_url" value=""></form>'}}
|
|
28
|
+
|
|
29
|
+
<script data-locksmith>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
window.document.title = "";
|
|
33
|
+
var redirectUrl = window.location.href.replace('/account/login', '/');
|
|
34
|
+
var inputNodes = document.querySelectorAll('input[name=return_url]');
|
|
35
|
+
for (var i = 0; i < inputNodes.length; i++) {
|
|
36
|
+
inputNodes[i].value = redirectUrl;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
document.querySelectorAll('a[data-locksmith][href*="/customer_authentication/login"]').forEach(function(node) {
|
|
40
|
+
var returnTo = encodeURIComponent(window.location.pathname);
|
|
41
|
+
var locale = encodeURIComponent('{{request.locale.iso_code}}');
|
|
42
|
+
node.search = `return_to=${returnTo}&locale=${locale}`;
|
|
43
|
+
});
|
|
44
|
+
</script>{%endcapture%}{%assign customer_login_form=locksmith_customer_login_form%}{%assign customer_register_form=locksmith_customer_register_form%}{%unless _lock_guest_content%}{%capture locksmith_guest_content%}{%if _lock_guest_content != blank%}{{_lock_guest_content}}{%else%}<div class="page-width">
|
|
45
|
+
<p>This content is protected. Please log in with your customer account to continue.</p>
|
|
46
|
+
|
|
47
|
+
<div>{{locksmith_customer_login_form}}</div>
|
|
48
|
+
</div>{%endif%}{%endcapture%}{%endunless%}{%if locksmith_access_denied_content == blank%}{%capture locksmith_access_denied_content%}{%if _l%}{%if _lock_access_denied_content != blank%}{{_lock_access_denied_content}}{%else%}<div class="page-width">
|
|
49
|
+
<p>This content is protected, but it doesn’t look like you have access. If you feel this is a mistake, please contact the store owner.</p>
|
|
50
|
+
</div>{%endif%}{%if locksmith_manual_lock%}<p><a href="#" onclick="window.parent.__locksmith_hide_frame(); return false;">‹ Back</a></p>{%endif%}{%elsif locksmith_requires_customer%}{{locksmith_guest_content}}{%else%}{%if _lock_access_denied_content != blank%}{{_lock_access_denied_content}}{%else%}<div class="page-width">
|
|
51
|
+
<p>This content is protected, but it doesn’t look like you have access. If you feel this is a mistake, please contact the store owner.</p>
|
|
52
|
+
</div>{%endif%}{%endif%}{%if _h.name contains "Debut"%}<style>
|
|
53
|
+
/* fix for Debut+Gempages, per Gempages technical support */
|
|
54
|
+
html.gemapp.video {
|
|
55
|
+
display: block;
|
|
56
|
+
}
|
|
57
|
+
</style>{%endif%}{%endcapture%}{%endif%}{%capture locksmith_passcode_form%}<p id="locksmith-passcode-form-content"><strong>…</strong></p>
|
|
58
|
+
<script>Locksmith.postResource({}, {spinner: false, container: 'locksmith-passcode-form-content', form_type: 'passcode'});</script>{%endcapture%}{%capture locksmith_email_form%}<p id="locksmith-newsletter-form-content"><strong>…</strong></p>
|
|
59
|
+
<script>Locksmith.postResource({}, {spinner: false, container: 'locksmith-newsletter-form-content', form_type: 'mailing_list'});</script>{%endcapture%}{%capture locksmith_confirmation_form%}<p id="locksmith-confirmation-form-content"><strong>…</strong></p>
|
|
60
|
+
<script>Locksmith.postResource({}, {spinner: false, container: 'locksmith-confirmation-form-content', form_type: 'confirmation'});</script>{%endcapture%}{%assign _9=_d%}{%endcapture%}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{%- comment %}
|
|
2
|
+
Hey there! This asset is managed by Locksmith (uselocksmith.com).
|
|
3
|
+
|
|
4
|
+
Do not modify this file. Any changes will be reset the next time that
|
|
5
|
+
Locksmith interacts with this theme.
|
|
6
|
+
|
|
7
|
+
Last updated: Fri, 08 Aug 2025 17:56:55 -0700 (PDT)
|
|
8
|
+
{% endcomment -%}
|
|
9
|
+
|
|
10
|
+
{%assign _c=false%}{%assign _0o='product_in_collection'%}{%assign _0g='variant'%}{%assign _14='collection'%}{%capture _%}{%assign _0k=_c%}{%assign _8=nil%}{%assign _2o=scope%}{%assign _g=nil%}{%assign _1o=_c%}{%assign _0c=true%}{%assign _1c=_c%}{%assign _1g=_c%}{%assign _0w=_c%}{%assign _10=_c%}{%assign _1k=_c%}{%assign _w='resource'%}{%assign _s=''%}{%assign _00=''%}{%assign _18=''%}{%assign _1s=_c%}{%assign _1w=_c%}{%assign _20=''|split:''%}{%assign _3o=nil%}{%assign _3k=_c%}{%assign _28=nil%}{%assign _3g=_c%}{%assign _3c=nil%}{%assign _38=_c%}{%assign _40=(0..2)%}{%assign _3s=nil%}{%assign _20=""|split:""%}{%assign _0k=true%}{%assign _34="now"|date:"%s"|plus:0%}{%for _30 in _20%}{%assign _0s=_30|split:"-"%}{%assign _3w=_0s[0]%}{%assign _2w=_0s[1]|plus:0%}{%unless _0s[1]%}{%assign skip_timestamp_check=true%}{%endunless%}{%if skip_timestamp_check or _34 < _2w%}{%endif%}{%endfor%}{%if original_template%}{%assign _08=template%}{%assign template=original_template%}{%elsif locksmith_original_template%}{%assign _08=template%}{%assign template=locksmith_original_template%}{%else%}{%assign _08=nil%}{%endif%}{%assign _o=template%}{%assign _04=_o|split:'.'|first%}{%if scope and scope != _0o%}{%assign _8=scope%}{%elsif locksmith_scope and locksmith_scope != _0o%}{%assign _8=locksmith_scope%}{%else%}{%assign _8=_o|split:'/'|first|split:'.'|first%}{%endif%}{%if hiding_scope%}{%assign _w=hiding_scope%}{%elsif locksmith_hiding_scope%}{%assign _w=locksmith_hiding_scope%}{%endif%}{%if _8 == blank%}{%assign _8='app'%}{%endif%}{%if _8 == "app" and content_for_layout contains "spof-container"%}{%assign app="single-page-order-form"%}{%endif%}{%if _8 == "app" and content_for_layout contains "sc-shopify-qs-main-container"%}{%assign app="one-page-quick-shop"%}{%endif%}{%if _8 == "app" and content_for_layout contains "get_surrounding_stores.php"%}{%assign app="store-locator"%}{%endif%}{%if _8 == 'subject'%}{%if subject%}{%assign _4=subject%}{%else%}{%assign _4=locksmith_subject%}{%endif%}{%if subject_parent%}{%assign _k=subject_parent%}{%else%}{%assign _k=locksmith_subject_parent%}{%endif%}{%if _4.price and _4.variants%}{%assign product=_4%}{%assign _8='product'%}{%elsif _4.position and _4.src and _4.variants == nil and _4.position != 1%}{%for _2c in _k.variants%}{%if _2c.featured_media.id == _4.id%}{%assign variant=_2c%}{%assign product=_k%}{%break%}{%endif%}{%endfor%}{%assign _8=_0g%}{%elsif _4.position and _4.product_id and _4.src and _4.position != 1%}{%assign variant=_4.variants.first%}{%assign _8=_0g%}{%if _4.product_id == _k.id%}{%assign product=_k%}{%else%}{%assign product=nil%}{%endif%}{%elsif _4.inventory_policy%}{%assign variant=_4%}{%assign _8=_0g%}{%if _k.variants contains variant%}{%assign product=_k%}{%else%}{%assign _2s=variant.url|split:'?variant='|first|split:'/'|last%}{%assign product=all_products[_2s]%}{%endif%}{%elsif _k.name and _k.position and _k.values contains _4%}{%assign variant=nil%}{%assign variant_option_name=_k.name%}{%assign variant_option_value=_4%}{%assign _8=_0g%}{%assign _44=_k.name%}{%assign _48=_4%}{%elsif _4.all_types and _4.products%}{%assign collection=_4%}{%assign _8=_14%}{%elsif _4.handle and _4.articles%}{%assign blog=_4%}{%assign _8='blog'%}{%elsif _4.content and _4.excerpt and _4.comments%}{%assign article=_4%}{%assign _8='article'%}{%elsif _4.handle and _4.url contains '/pages/' and _4.current == nil%}{%assign page=_4%}{%assign _8='page'%}{%elsif _4.total_price and _4.total_weight%}{%assign cart=_4%}{%assign _8='cart'%}{%elsif _4.type and _4.url%}{%assign _w='link_to_resource'%}{%if _4.type == 'collection_link'%}{%assign collection=_4.object%}{%assign _8=_14%}{%elsif _4.type == 'product_link'%}{%assign product=_4.object%}{%assign _8='product'%}{%elsif _4.type == 'page_link'%}{%assign page=_4.object%}{%assign _8='page'%}{%elsif _4.type == 'blog_link'%}{%assign blog=_4.object%}{%assign _8='blog'%}{%elsif _4.url == '/collections/all'%}{%assign collection=collections.all%}{%assign _8=_14%}{%else%}{%assign _w='resource'%}{%assign link=_4%}{%assign _8='link'%}{%endif%}{%elsif _4.links and _4.title%}{%assign linklist=_4%}{%assign _8='linklist'%}{%elsif shop.vendors contains _4%}{%assign _8='vendor'%}{%assign vendor=_4%}{%endif%}{%endif%}{%if _8 == _0g%}{%assign _38=true%}{%endif%}{%if collection and _8 == 'product'%}{%assign locksmith_scope=_0o%}{%assign scope=_0o%}{%else%}{%assign locksmith_scope=_8%}{%assign scope=_8%}{%endif%}{%if is_edu_checked%}{%assign _s=_s|append:",722911,"%}{%assign _1g=true%}{%endif%}{%assign _s=_s|remove_first:","|replace:",,", ","|split:","%}{%assign _00=_00|remove_first:","|replace:",,", ","|split:","%}{%assign _18=_18|remove_first:","|replace:",,", ","|split:","%}{%assign _2k="722911"|split:","%}{%for _24 in _2k%}{%if _s contains _24%}{%unless _00 contains _24%}{%assign _10=true%}{%endunless%}{%endif%}{%endfor%}{%if request.design_mode or request.host contains ".shopifypreview.com"%}{%unless __locksmith_disable_preview_mode_escape_hatch%}{%assign _1s=true%}{%endunless%}{%endif%}{%if _1s%}{%assign _00=_s%}{%assign _0w=_c%}{%endif%}{%if _0w == _c%}{%assign _0k=true%}{%endif%}{%assign locksmith_lock_ids=_s%}{%assign locksmith_opened_lock_ids=_00%}{%assign locksmith_key_ids=_18%}{%if locksmith_lock_ids.size > 0%}{%assign _1o=true%}{%unless locksmith_opened_lock_ids == locksmith_lock_ids%}{%assign _0c=_c%}{%assign _1c=true%}{%endunless%}{%endif%}{%assign _28=request.locale.root_url%}{%if _0c%}{%assign _1w=_c%}{%endif%}{%assign locksmith_initialized=_0k%}{%assign locksmith_locked=_1o%}{%unless locksmith_scope%}{%assign locksmith_scope=_8%}{%endunless%}{%assign locksmith_access_granted=_0c%}{%assign locksmith_access_denied=_1c%}{%assign locksmith_manual_lock=_1g%}{%assign locksmith_remote_lock=_0w%}{%assign locksmith_hide_resource=_10%}{%assign locksmith_hide_links_to_resource=_1k%}{%assign locksmith_requires_customer=_1w%}{%assign locksmith_redirect=_3o%}{%assign locksmith_noindex=_3k%}{%assign locksmith_locale_root_url=_28%}{%assign locksmith_has_timeout=_3g%}{%assign locksmith_section_replacement_content=_3c%}{%assign locksmith_transparent=_c%}{%if _0c%}{%assign locksmith_transparent=true%}{%elsif _w == 'resource' and _10 == _c%}{%assign locksmith_transparent=true%}{%elsif _w == 'link_to_resource' and _1k == _c%}{%assign locksmith_transparent=true%}{%endif%}{%if _04 == 'product'%}{%capture _g%}{%if collection%}/collections/{{collection.handle}}{%endif%}/products/{{product.handle}}{%endcapture%}{%elsif _04 == _14%}{%capture _g%}/collections/{{collection.handle}}{%endcapture%}{%elsif _04 == 'page'%}{%assign _g=page.url%}{%elsif _04 == 'blog'%}{%assign _g=blog.url%}{%elsif _04 == 'article'%}{%assign _g=article.url%}{%elsif _o == 'customers/login'%}{%assign _g='/account/login'%}{%elsif _o == 'customers/register'%}{%assign _g='/account/register'%}{%elsif _o == 'index'%}{%assign _g='/'%}{%elsif _o == 'list-collections'%}{%assign _g='/collections'%}{%elsif _o == 'cart'%}{%assign _g='/cart'%}{%elsif _o contains 'search'%}{%assign _g='/search'%}{%endif%}{%assign locksmith_path=_g%}{%assign locksmith_current_path=_g%}{%assign locksmith_version="v222"%}{%capture locksmith_json%}{"version":{{locksmith_version|json}},"locked":{{locksmith_locked|json}},"initialized":{{_0k|json}},"scope":{{_8|json}},"access_granted":{{locksmith_access_granted|json}},"access_denied":{{locksmith_access_denied|json}},"requires_customer":{{locksmith_requires_customer|json}},"manual_lock":{{locksmith_manual_lock|json}},"remote_lock":{{locksmith_remote_lock|json}},"has_timeout":{{locksmith_has_timeout|json}},"remote_rendered":{{locksmith_remote_rendered|json}},"hide_resource":{{locksmith_hide_resource}},"hide_links_to_resource":{{locksmith_hide_links_to_resource|json}},"transparent":{{locksmith_transparent|json}},"locks":{"all":{{locksmith_lock_ids|json|replace:'"', ''}},"opened":{{locksmith_opened_lock_ids|json|replace:'"', ''}}},"keys":{{locksmith_key_ids|json|replace:'"', ''}},"keys_signature":{{locksmith_key_ids|join:','|hmac_sha256:shop.metafields.locksmith.client_key|json}},"state":{"template":{{template|json}},"theme":{{theme.id|json}},"product":{{product.handle|json}},"collection":{{collection.handle|json}},"page":{{page.handle|json}},"blog":{{blog.handle|json}},"article":{{article.id|json}},"app":{%if locksmith_scope == "app" and app%}{{app|json}}{%else%}null{%endif%}},"now":{{"now"|date:"%s"}},"path":{{locksmith_path|json}},"locale_root_url":{{locksmith_locale_root_url|json}},"canonical_url":{{canonical_url|json}},"customer_id":{{customer.id|json}},"customer_id_signature":{{customer.id|hmac_sha256:shop.metafields.locksmith.client_key|json}},"cart":{{cart.attributes.locksmith|json}}}{%endcapture%}{%assign locksmith_json_signature=locksmith_json|hmac_sha256: shop.metafields.locksmith.client_key%}{%capture locksmith_json_script%}<script type="application/vnd.locksmith+json" data-locksmith>{{locksmith_json}}</script>{%endcapture%}{%if _08%}{%assign template=_08%}{%endif%}{%assign scope=_2o%}{%endcapture%}{%if variable != blank%}{%capture value%}{%case variable%}{%when "locked"%}{{locksmith_locked|json}}{%when "initialized"%}{{locksmith_initialized|json}}{%when "scope"%}{{locksmith_scope|json}}{%when "access_granted"%}{{locksmith_access_granted|json}}{%when "access_denied"%}{{locksmith_access_denied|json}}{%when "requires_customer"%}{{locksmith_requires_customer|json}}{%when "manual_lock"%}{{locksmith_manual_lock|json}}{%when "remote_lock"%}{{locksmith_remote_lock|json}}{%when "remote_rendered"%}{{locksmith_remote_rendered|json}}{%when "hide_resource"%}{{locksmith_hide_resource|json}}{%when "hide_links_to_resource"%}{{locksmith_hide_links_to_resource|json}}{%when "transparent"%}{{locksmith_transparent|json}}{%when "lock_ids"%}{{locksmith_lock_ids|join:","|json}}{%when "opened_lock_ids"%}{{locksmith_opened_lock_ids|join:","|json}}{%when "key_ids"%}{{locksmith_key_ids|join:","|json}}{%when "json_tag"%}{{locksmith_json_script}}{%when "section_replacement"%}{{locksmith_section_replacement_content}}{%endcase%}{%endcapture%}{{value|strip}}{%endif%}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
{%- comment %}
|
|
2
|
+
Hey there! This asset is managed by Locksmith (uselocksmith.com).
|
|
3
|
+
|
|
4
|
+
Do not modify this file. Any changes will be reset the next time that
|
|
5
|
+
Locksmith interacts with this theme.
|
|
6
|
+
|
|
7
|
+
Last updated: Fri, 08 Aug 2025 17:56:55 -0700 (PDT)
|
|
8
|
+
{% endcomment -%}
|
|
9
|
+
|
|
10
|
+
{%include 'locksmith-variables', locksmith_scope: nil%}{%if locksmith_access_denied_content == blank%}{%capture locksmith_access_denied_content%}{%if locksmith_manual_lock%}{{content_for_layout}}{%elsif locksmith_remote_lock%}<div id="locksmith-content">
|
|
11
|
+
<div id="locksmith-spinner-wrapper" style="background:#FFF;z-index:999999;top:0;left:0;right:0;bottom:0;position:fixed">
|
|
12
|
+
<style>
|
|
13
|
+
@keyframes spin { from { transform: rotate(0deg) } to { transform: rotate(360deg) } }
|
|
14
|
+
|
|
15
|
+
.locksmith-spinner {
|
|
16
|
+
display: flex;
|
|
17
|
+
width: 100%;
|
|
18
|
+
height: 50vh;
|
|
19
|
+
color: #777;
|
|
20
|
+
align-items: center;
|
|
21
|
+
justify-content: center;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.locksmith-spinner .spinner {
|
|
25
|
+
display: block;
|
|
26
|
+
animation: spin 600ms linear infinite;
|
|
27
|
+
position: relative;
|
|
28
|
+
width: 50px;
|
|
29
|
+
height: 50px;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.locksmith-spinner .spinner svg {
|
|
33
|
+
/* ran into a theme once that defined dimensions for all (??) svg elements */
|
|
34
|
+
width: inherit;
|
|
35
|
+
height: inherit;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.locksmith-spinner .spinner-ring {
|
|
39
|
+
stroke: currentColor;
|
|
40
|
+
stroke-dasharray: 100%;
|
|
41
|
+
stroke-width: 2px;
|
|
42
|
+
stroke-linecap: round;
|
|
43
|
+
fill: none;
|
|
44
|
+
}
|
|
45
|
+
</style>
|
|
46
|
+
<div class="locksmith-spinner">
|
|
47
|
+
<div class="spinner">
|
|
48
|
+
<svg width="100%" height="100%">
|
|
49
|
+
<svg preserveAspectRatio="xMinYMin">
|
|
50
|
+
<circle class="spinner-ring" cx="50%" cy="50%" r="45%"></circle>
|
|
51
|
+
</svg>
|
|
52
|
+
</svg>
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
|
55
|
+
</div>
|
|
56
|
+
</div>{%assign _7=true%}<script data-locksmith>
|
|
57
|
+
var load = function () {
|
|
58
|
+
Locksmith.postResource(
|
|
59
|
+
{},
|
|
60
|
+
{
|
|
61
|
+
container: 'locksmith-content',
|
|
62
|
+
spinner: false
|
|
63
|
+
}
|
|
64
|
+
);
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
if (typeof Locksmith !== 'undefined') {
|
|
68
|
+
load();
|
|
69
|
+
} else {
|
|
70
|
+
window.addEventListener('load', load);
|
|
71
|
+
}
|
|
72
|
+
</script>{%endif%}{%endcapture%}{%endif%}{%include 'locksmith-content-variables'%}{%include 'locksmith-variables', locksmith_scope: nil%}{%if locksmith_access_denied%}{%capture content_for_header%}{{content_for_header|replace:'.oembed', ''|replace:'.atom', ''|replace:'link rel="alternate" type="application/json+oembed"', 'link'|replace:' title="Feed" rel="alternate" type="application/atom+xml"', ''}}{%endcapture%}{%endif%}{%capture locksmith_initializations%}{%if locksmith_access_denied and locksmith_manual_lock == false and locksmith_noindex%}<meta name="robots" content="noindex" />{%endif%}{{locksmith_json_script}}{{locksmith_client}}
|
|
73
|
+
|
|
74
|
+
<script data-locksmith>Locksmith.jsonTag={{locksmith_json|json}};Locksmith.jsonTagSignature={{locksmith_json_signature|json}}</script>{%endcapture%}{%if locksmith_access_granted or locksmith_manual_lock%}{%if locksmith_redirect != blank%}{%assign content_for_layout=locksmith_redirect%}{%endif%}{%else%}{%assign content_for_layout=locksmith_access_denied_content%}{%endif%}{%capture _3%}<script data-locksmith>
|
|
75
|
+
var load = function () {
|
|
76
|
+
{%unless _7%}
|
|
77
|
+
if (document.querySelectorAll('.locksmith-manual-trigger').length > 0) {
|
|
78
|
+
Locksmith.ping();
|
|
79
|
+
}
|
|
80
|
+
{%endunless%}{%if locksmith_has_timeout%}
|
|
81
|
+
Locksmith.timeoutMonitor();
|
|
82
|
+
{%endif%}
|
|
83
|
+
|
|
84
|
+
Locksmith.util.on('submit', 'locksmith-resource-form', function (event) {
|
|
85
|
+
event.preventDefault();
|
|
86
|
+
var data = Locksmith.util.serializeForm(event.target);
|
|
87
|
+
Locksmith.postResource(data, { spinner: false, container: 'locksmith-content' });
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
Locksmith.util.on('click', 'locksmith-manual-trigger', function (event) {
|
|
91
|
+
event.preventDefault();
|
|
92
|
+
Locksmith.postResource({}, { spinner: true, container: document });
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
Locksmith.submitPasscode = function (passcode) {
|
|
96
|
+
Locksmith.postResource(
|
|
97
|
+
{ passcode: passcode },
|
|
98
|
+
{ spinner: false, container: 'locksmith-content' }
|
|
99
|
+
);
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
if (typeof Locksmith !== 'undefined') {
|
|
104
|
+
load();
|
|
105
|
+
} else {
|
|
106
|
+
window.addEventListener('load', load);
|
|
107
|
+
}
|
|
108
|
+
</script>{%endcapture%}{%unless request.design_mode or request.host contains ".shopifypreview.com" or request.page_type == "password"%}{%assign content_for_layout=content_for_layout|append:_3%}{%endunless%}{%if locksmith_access_denied and content_for_layout contains '<input type="hidden" name="form_type" value="customer_login" />'%}{%assign locksmith_original_template=template%}{%assign template='customers/login'%}{%endif%}
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
pc_width: pc 端宽度, 做图片尺寸优化
|
|
8
8
|
mb_width: 移动端宽度, 做图片尺寸优化
|
|
9
9
|
{% endcomment %}
|
|
10
|
-
{%- assign pc_width = pc_width | default:
|
|
11
|
-
{%- assign mb_width = mb_width | default:
|
|
10
|
+
{%- assign pc_width = pc_width | default: 4800 -%}
|
|
11
|
+
{%- assign mb_width = mb_width | default: 1200 -%}
|
|
12
12
|
|
|
13
13
|
{%- assign pc_classes = class_name | append: ' max-md:tw-hidden tw-w-full tw-h-auto tw-object-cover' -%}
|
|
14
14
|
{%- assign mb_classes = class_name | append: ' md:tw-hidden tw-w-full tw-h-auto tw-object-cover' -%}
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
| image_tag:
|
|
27
27
|
alt: image_alt,
|
|
28
28
|
class: pc_classes,
|
|
29
|
-
widths: '800, 1000, 1200, 1500, 1800 2000',
|
|
29
|
+
widths: '800, 1000, 1200, 1500, 1800 2000 3000 4000 5000',
|
|
30
30
|
loading: lazy_load
|
|
31
31
|
}}
|
|
32
32
|
{%- endif -%}
|
|
@@ -41,4 +41,3 @@
|
|
|
41
41
|
loading: lazy_load
|
|
42
42
|
}}
|
|
43
43
|
{%- endif -%}
|
|
44
|
-
|
package/snippets/zz-img.liquid
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
pc_width: pc 端宽度, 做图片尺寸优化
|
|
8
8
|
mb_width: 移动端宽度, 做图片尺寸优化
|
|
9
9
|
{% endcomment %}
|
|
10
|
-
{%- assign pc_width = pc_width | default:
|
|
11
|
-
{%- assign mb_width = mb_width | default:
|
|
10
|
+
{%- assign pc_width = pc_width | default: 4800 -%}
|
|
11
|
+
{%- assign mb_width = mb_width | default: 1200 -%}
|
|
12
12
|
|
|
13
13
|
{%- assign pc_classes = class_name | append: ' max-lg:tw-hidden tw-w-full tw-h-auto tw-object-cover' -%}
|
|
14
14
|
{%- assign mb_classes = class_name | append: ' lg:tw-hidden tw-w-full tw-h-auto tw-object-cover' -%}
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
| image_tag:
|
|
27
27
|
alt: image_alt,
|
|
28
28
|
class: pc_classes,
|
|
29
|
-
widths: '800, 1000, 1200, 1500, 1800 2000',
|
|
29
|
+
widths: '800, 1000, 1200, 1500, 1800 2000 3000 4000 5000',
|
|
30
30
|
loading: lazy_load
|
|
31
31
|
}}
|
|
32
32
|
{%- endif -%}
|
|
@@ -37,8 +37,7 @@
|
|
|
37
37
|
| image_tag:
|
|
38
38
|
alt: image_alt,
|
|
39
39
|
class: mb_classes,
|
|
40
|
-
widths: '400, 600, 800',
|
|
40
|
+
widths: '400, 600, 800 1200',
|
|
41
41
|
loading: lazy_load
|
|
42
42
|
}}
|
|
43
43
|
{%- endif -%}
|
|
44
|
-
|
|
@@ -6,7 +6,11 @@
|
|
|
6
6
|
<span class='before tw-font-regular tw-ml-[4px] tw-text-[16px] tw-text-[rgba(0,0,0,0.3)] tw-line-through'>
|
|
7
7
|
{{ compare_at_price | money_without_trailing_zeros }}
|
|
8
8
|
</span>
|
|
9
|
-
{% assign percent = price
|
|
9
|
+
{% assign percent = price
|
|
10
|
+
| times: 100.0
|
|
11
|
+
| divided_by: compare_at_price
|
|
12
|
+
| round
|
|
13
|
+
%}
|
|
10
14
|
{% assign discount_percentage = 100 | minus: percent %}
|
|
11
15
|
<span class='discount_percentage tw-font-regular tw-ml-[10px] tw-px-[10px] tw-pt-[2px] tw-text-[10px] lg:tw-text-[12px] tw-rounded-[6px] tw-text-white tw-bg-[#FC6C0F]'>
|
|
12
16
|
{% if show_discount_percentage_off == true %}
|