@goldenhippo/builder-cart-schemas 0.1.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/README.md +141 -0
- package/dist/data/index.d.mts +604 -0
- package/dist/data/index.d.ts +604 -0
- package/dist/data/index.js +3487 -0
- package/dist/data/index.js.map +1 -0
- package/dist/data/index.mjs +3476 -0
- package/dist/data/index.mjs.map +1 -0
- package/dist/index.d.mts +5 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +4233 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +4219 -0
- package/dist/index.mjs.map +1 -0
- package/dist/page/index.d.mts +147 -0
- package/dist/page/index.d.ts +147 -0
- package/dist/page/index.js +691 -0
- package/dist/page/index.js.map +1 -0
- package/dist/page/index.mjs +689 -0
- package/dist/page/index.mjs.map +1 -0
- package/dist/section/index.d.mts +22 -0
- package/dist/section/index.d.ts +22 -0
- package/dist/section/index.js +63 -0
- package/dist/section/index.js.map +1 -0
- package/dist/section/index.mjs +60 -0
- package/dist/section/index.mjs.map +1 -0
- package/package.json +100 -0
|
@@ -0,0 +1,3487 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// src/data/brand-config/sections/header-config.ts
|
|
4
|
+
var headerOptions = {
|
|
5
|
+
basic: {
|
|
6
|
+
name: "basicHeaderConfig",
|
|
7
|
+
showIf: "return options.get('headerType') === 'BASIC'",
|
|
8
|
+
friendlyName: "Basic Menu Config",
|
|
9
|
+
type: "object",
|
|
10
|
+
defaultCollapsed: true,
|
|
11
|
+
localized: false,
|
|
12
|
+
subFields: [
|
|
13
|
+
{
|
|
14
|
+
"@type": "@builder.io/core:Field",
|
|
15
|
+
name: "logoImage",
|
|
16
|
+
friendlyName: "Logo Image",
|
|
17
|
+
type: "file",
|
|
18
|
+
showTemplatePicker: true,
|
|
19
|
+
allowedFileTypes: ["jpeg", "png", "svg", "webp"],
|
|
20
|
+
required: false,
|
|
21
|
+
localized: true,
|
|
22
|
+
defaultCollapsed: true,
|
|
23
|
+
helperText: "Image displayed in the header"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"@type": "@builder.io/core:Field",
|
|
27
|
+
name: "mobileLinks",
|
|
28
|
+
friendlyName: "Mobile Links",
|
|
29
|
+
helperText: "Links to display in the mobile dropdown menu",
|
|
30
|
+
type: "list",
|
|
31
|
+
localized: true,
|
|
32
|
+
defaultCollapsed: true,
|
|
33
|
+
subFields: [
|
|
34
|
+
{
|
|
35
|
+
name: "title",
|
|
36
|
+
friendlyName: "Mobile Link Title",
|
|
37
|
+
helperText: "Title for the mobile link",
|
|
38
|
+
type: "text",
|
|
39
|
+
localized: true,
|
|
40
|
+
defaultCollapsed: true,
|
|
41
|
+
required: true
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: "href",
|
|
45
|
+
friendlyName: "Link URL",
|
|
46
|
+
helperText: "URL for the mobile link",
|
|
47
|
+
type: "url",
|
|
48
|
+
localized: false,
|
|
49
|
+
required: true,
|
|
50
|
+
defaultCollapsed: true
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: "newTab",
|
|
54
|
+
friendlyName: "New Tab",
|
|
55
|
+
helperText: "When true, this link will open in a new tab",
|
|
56
|
+
type: "boolean",
|
|
57
|
+
localized: false,
|
|
58
|
+
defaultCollapsed: true
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: "cssClasses",
|
|
62
|
+
friendlyName: "CSS Classes",
|
|
63
|
+
helperText: "Used for VWO targeting",
|
|
64
|
+
type: "Tags",
|
|
65
|
+
localized: false,
|
|
66
|
+
defaultCollapsed: true
|
|
67
|
+
}
|
|
68
|
+
]
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
name: "desktopLinks",
|
|
72
|
+
friendlyName: "Desktop Links",
|
|
73
|
+
helperText: "Links to display in the desktop menu",
|
|
74
|
+
type: "list",
|
|
75
|
+
localized: true,
|
|
76
|
+
defaultCollapsed: true,
|
|
77
|
+
subFields: [
|
|
78
|
+
{
|
|
79
|
+
name: "title",
|
|
80
|
+
friendlyName: "Desktop Link Title",
|
|
81
|
+
helperText: "Title for the desktop link",
|
|
82
|
+
type: "text",
|
|
83
|
+
localized: true,
|
|
84
|
+
defaultCollapsed: true,
|
|
85
|
+
required: true
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
name: "href",
|
|
89
|
+
friendlyName: "Link URL",
|
|
90
|
+
helperText: "URL for the mobile link",
|
|
91
|
+
type: "url",
|
|
92
|
+
localized: false,
|
|
93
|
+
defaultCollapsed: true,
|
|
94
|
+
required: true
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
name: "newTab",
|
|
98
|
+
friendlyName: "New Tab",
|
|
99
|
+
helperText: "When true, this link will open in a new tab",
|
|
100
|
+
type: "boolean",
|
|
101
|
+
localized: false,
|
|
102
|
+
defaultCollapsed: true
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
name: "cssClasses",
|
|
106
|
+
friendlyName: "CSS Classes",
|
|
107
|
+
helperText: "Used for VWO targeting",
|
|
108
|
+
type: "Tags",
|
|
109
|
+
localized: false,
|
|
110
|
+
defaultCollapsed: true
|
|
111
|
+
}
|
|
112
|
+
]
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
name: "ctas",
|
|
116
|
+
friendlyName: "Call To Action",
|
|
117
|
+
helperText: "Call to action button(s) to display",
|
|
118
|
+
type: "list",
|
|
119
|
+
localized: true,
|
|
120
|
+
defaultCollapsed: true,
|
|
121
|
+
subFields: [
|
|
122
|
+
{
|
|
123
|
+
name: "title",
|
|
124
|
+
friendlyName: "Desktop Link Title",
|
|
125
|
+
helperText: "Title for the desktop link",
|
|
126
|
+
type: "text",
|
|
127
|
+
localized: false,
|
|
128
|
+
defaultCollapsed: true,
|
|
129
|
+
required: true
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
name: "href",
|
|
133
|
+
friendlyName: "Link URL",
|
|
134
|
+
helperText: "URL for the mobile link",
|
|
135
|
+
type: "url",
|
|
136
|
+
localized: false,
|
|
137
|
+
defaultCollapsed: true,
|
|
138
|
+
required: true
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
name: "type",
|
|
142
|
+
friendlyName: "CTA Type",
|
|
143
|
+
helperText: "Select the type of CTA to display",
|
|
144
|
+
type: "select",
|
|
145
|
+
localized: false,
|
|
146
|
+
defaultCollapsed: true,
|
|
147
|
+
required: true,
|
|
148
|
+
defaultValue: "primary",
|
|
149
|
+
enum: [
|
|
150
|
+
"primary" /* PRIMARY */,
|
|
151
|
+
"secondary" /* SECONDARY */,
|
|
152
|
+
"outline" /* OUTLINE */,
|
|
153
|
+
"link" /* LINK */
|
|
154
|
+
]
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
name: "newTab",
|
|
158
|
+
friendlyName: "New Tab",
|
|
159
|
+
helperText: "When true, this link will open in a new tab",
|
|
160
|
+
type: "boolean",
|
|
161
|
+
localized: false,
|
|
162
|
+
defaultCollapsed: true
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
name: "cssClasses",
|
|
166
|
+
friendlyName: "CSS Classes",
|
|
167
|
+
helperText: "Used for VWO targeting",
|
|
168
|
+
type: "Tags",
|
|
169
|
+
localized: false,
|
|
170
|
+
defaultCollapsed: true
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
name: "hideOnMobile",
|
|
174
|
+
friendlyName: "Hide on Mobile",
|
|
175
|
+
helperText: "Set to true to disable this CTA on mobile devices",
|
|
176
|
+
type: "boolean",
|
|
177
|
+
localized: false,
|
|
178
|
+
defaultCollapsed: true
|
|
179
|
+
}
|
|
180
|
+
]
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
name: "myAccountGuest",
|
|
184
|
+
friendlyName: "MyAccount Menu Links - Guest",
|
|
185
|
+
helperText: "Links to show under the My Account menu when the user is logged out.",
|
|
186
|
+
type: "list",
|
|
187
|
+
localized: true,
|
|
188
|
+
defaultCollapsed: true,
|
|
189
|
+
subFields: [
|
|
190
|
+
{
|
|
191
|
+
name: "title",
|
|
192
|
+
friendlyName: "Desktop Link Title",
|
|
193
|
+
helperText: "Title for the desktop link",
|
|
194
|
+
type: "text",
|
|
195
|
+
localized: false,
|
|
196
|
+
defaultCollapsed: true,
|
|
197
|
+
required: true
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
name: "href",
|
|
201
|
+
friendlyName: "Link URL",
|
|
202
|
+
helperText: "URL for the mobile link",
|
|
203
|
+
type: "url",
|
|
204
|
+
localized: false,
|
|
205
|
+
defaultCollapsed: true,
|
|
206
|
+
required: true
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
name: "icon",
|
|
210
|
+
friendlyName: "Icon",
|
|
211
|
+
type: "file",
|
|
212
|
+
showTemplatePicker: true,
|
|
213
|
+
allowedFileTypes: ["jpeg", "png", "svg", "webp"],
|
|
214
|
+
required: false,
|
|
215
|
+
defaultCollapsed: true,
|
|
216
|
+
helperText: "Link icon"
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
name: "newTab",
|
|
220
|
+
friendlyName: "New Tab",
|
|
221
|
+
helperText: "When true, this link will open in a new tab",
|
|
222
|
+
type: "boolean",
|
|
223
|
+
localized: false,
|
|
224
|
+
defaultCollapsed: true
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
name: "cssClasses",
|
|
228
|
+
friendlyName: "CSS Classes",
|
|
229
|
+
helperText: "Used for VWO targeting",
|
|
230
|
+
type: "Tags",
|
|
231
|
+
localized: false,
|
|
232
|
+
defaultCollapsed: true
|
|
233
|
+
}
|
|
234
|
+
]
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
name: "myAccountAuthorized",
|
|
238
|
+
friendlyName: "MyAccount Menu Links - Logged In",
|
|
239
|
+
helperText: "Links to show under the My Account menu when the user is logged in.",
|
|
240
|
+
type: "list",
|
|
241
|
+
localized: true,
|
|
242
|
+
defaultCollapsed: true,
|
|
243
|
+
subFields: [
|
|
244
|
+
{
|
|
245
|
+
name: "title",
|
|
246
|
+
friendlyName: "Desktop Link Title",
|
|
247
|
+
helperText: "Title for the desktop link",
|
|
248
|
+
type: "text",
|
|
249
|
+
localized: false,
|
|
250
|
+
defaultCollapsed: true,
|
|
251
|
+
required: true
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
name: "href",
|
|
255
|
+
friendlyName: "Link URL",
|
|
256
|
+
helperText: "URL for the mobile link",
|
|
257
|
+
type: "url",
|
|
258
|
+
localized: false,
|
|
259
|
+
defaultCollapsed: true,
|
|
260
|
+
required: true
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
name: "icon",
|
|
264
|
+
friendlyName: "Icon",
|
|
265
|
+
type: "file",
|
|
266
|
+
showTemplatePicker: true,
|
|
267
|
+
allowedFileTypes: ["jpeg", "png", "svg", "webp"],
|
|
268
|
+
required: false,
|
|
269
|
+
defaultCollapsed: true,
|
|
270
|
+
helperText: "Link icon"
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
name: "newTab",
|
|
274
|
+
friendlyName: "New Tab",
|
|
275
|
+
helperText: "When true, this link will open in a new tab",
|
|
276
|
+
type: "boolean",
|
|
277
|
+
localized: false,
|
|
278
|
+
defaultCollapsed: true
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
name: "cssClasses",
|
|
282
|
+
friendlyName: "CSS Classes",
|
|
283
|
+
helperText: "Used for VWO targeting",
|
|
284
|
+
type: "Tags",
|
|
285
|
+
localized: false,
|
|
286
|
+
defaultCollapsed: true
|
|
287
|
+
}
|
|
288
|
+
]
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
name: "stickyHeader",
|
|
292
|
+
type: "object",
|
|
293
|
+
friendlyName: "Sticky Header Configuration",
|
|
294
|
+
defaultCollapsed: true,
|
|
295
|
+
localized: false,
|
|
296
|
+
subFields: [
|
|
297
|
+
{
|
|
298
|
+
name: "enabled",
|
|
299
|
+
type: "boolean",
|
|
300
|
+
friendlyName: "Enabled?",
|
|
301
|
+
defaultCollapsed: true,
|
|
302
|
+
localized: false
|
|
303
|
+
},
|
|
304
|
+
{
|
|
305
|
+
name: "backgroundColor",
|
|
306
|
+
type: "color",
|
|
307
|
+
friendlyName: "Background Color",
|
|
308
|
+
defaultCollapsed: true,
|
|
309
|
+
localized: false,
|
|
310
|
+
helperText: "The header background color at the top of the page. Leave blank for a transparent header"
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
name: "scrollBackgroundColor",
|
|
314
|
+
type: "color",
|
|
315
|
+
friendlyName: "Background Color - Scroll",
|
|
316
|
+
defaultCollapsed: true,
|
|
317
|
+
localized: false,
|
|
318
|
+
helperText: "The header background color while scrolling. Leave blank for a transparent header",
|
|
319
|
+
defaultValue: "#FFFFFF"
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
name: "scrollLogo",
|
|
323
|
+
friendlyName: "Scroll Logo",
|
|
324
|
+
type: "file",
|
|
325
|
+
showTemplatePicker: true,
|
|
326
|
+
allowedFileTypes: ["jpeg", "png", "svg", "webp"],
|
|
327
|
+
required: false,
|
|
328
|
+
localized: true,
|
|
329
|
+
defaultCollapsed: true,
|
|
330
|
+
helperText: "Image displayed in the header while scrolling. Leave blank to use the default header logo"
|
|
331
|
+
}
|
|
332
|
+
]
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
name: "showLocaleSelection",
|
|
336
|
+
type: "boolean",
|
|
337
|
+
friendlyName: "Show Locale Selection?",
|
|
338
|
+
defaultCollapsed: true,
|
|
339
|
+
localized: false,
|
|
340
|
+
helperText: "Show Locale Selection"
|
|
341
|
+
}
|
|
342
|
+
]
|
|
343
|
+
},
|
|
344
|
+
medium: {
|
|
345
|
+
"@type": "@builder.io/core:Field",
|
|
346
|
+
name: "mediumHeaderConfig",
|
|
347
|
+
friendlyName: "Medium Header Configuration",
|
|
348
|
+
type: "object",
|
|
349
|
+
showIf: "return options.get('headerType') === 'MEDIUM'",
|
|
350
|
+
defaultCollapsed: true,
|
|
351
|
+
localized: false,
|
|
352
|
+
subFields: [
|
|
353
|
+
{
|
|
354
|
+
"@type": "@builder.io/core:Field",
|
|
355
|
+
name: "wrapperID",
|
|
356
|
+
friendlyName: "Wrapper ID",
|
|
357
|
+
helperText: "ID for the medium header wrapper",
|
|
358
|
+
type: "text",
|
|
359
|
+
localized: false,
|
|
360
|
+
defaultValue: "header",
|
|
361
|
+
defaultCollapsed: true
|
|
362
|
+
},
|
|
363
|
+
{
|
|
364
|
+
"@type": "@builder.io/core:Field",
|
|
365
|
+
name: "wrapperClasses",
|
|
366
|
+
friendlyName: "Wrapper Classes",
|
|
367
|
+
helperText: "CSS classes for the medium header wrapper",
|
|
368
|
+
type: "text",
|
|
369
|
+
localized: false,
|
|
370
|
+
defaultCollapsed: true
|
|
371
|
+
},
|
|
372
|
+
{
|
|
373
|
+
"@type": "@builder.io/core:Field",
|
|
374
|
+
name: "showShippingMessage",
|
|
375
|
+
friendlyName: "Show Shipping Message",
|
|
376
|
+
helperText: "Display the free shipping message on the mega menu",
|
|
377
|
+
type: "boolean",
|
|
378
|
+
localized: true,
|
|
379
|
+
defaultCollapsed: true
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
"@type": "@builder.io/core:Field",
|
|
383
|
+
name: "mobileMenu",
|
|
384
|
+
friendlyName: "Mobile Menu",
|
|
385
|
+
helperText: "Mobile menu configuration for the medium header",
|
|
386
|
+
type: "object",
|
|
387
|
+
localized: false,
|
|
388
|
+
defaultCollapsed: true,
|
|
389
|
+
subFields: [
|
|
390
|
+
{
|
|
391
|
+
"@type": "@builder.io/core:Field",
|
|
392
|
+
name: "logo",
|
|
393
|
+
friendlyName: "Logo",
|
|
394
|
+
helperText: "Logo for the mobile header",
|
|
395
|
+
type: "file",
|
|
396
|
+
showTemplatePicker: true,
|
|
397
|
+
allowedFileTypes: ["jpeg", "png", "svg", "webp"],
|
|
398
|
+
localized: false,
|
|
399
|
+
defaultCollapsed: true
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
"@type": "@builder.io/core:Field",
|
|
403
|
+
name: "logoClasses",
|
|
404
|
+
friendlyName: "Logo Classes",
|
|
405
|
+
helperText: "CSS classes for the mobile logo",
|
|
406
|
+
type: "text",
|
|
407
|
+
localized: false,
|
|
408
|
+
defaultCollapsed: true
|
|
409
|
+
},
|
|
410
|
+
{
|
|
411
|
+
"@type": "@builder.io/core:Field",
|
|
412
|
+
name: "navClasses",
|
|
413
|
+
friendlyName: "Navigation Classes",
|
|
414
|
+
helperText: "CSS classes for the mobile navigation",
|
|
415
|
+
type: "text",
|
|
416
|
+
localized: false,
|
|
417
|
+
defaultCollapsed: true
|
|
418
|
+
},
|
|
419
|
+
{
|
|
420
|
+
"@type": "@builder.io/core:Field",
|
|
421
|
+
name: "dropDownWrapperClasses",
|
|
422
|
+
friendlyName: "Dropdown Wrapper Classes",
|
|
423
|
+
helperText: "CSS classes for the dropdown wrapper",
|
|
424
|
+
type: "text",
|
|
425
|
+
localized: false,
|
|
426
|
+
required: false,
|
|
427
|
+
defaultCollapsed: true
|
|
428
|
+
},
|
|
429
|
+
{
|
|
430
|
+
"@type": "@builder.io/core:Field",
|
|
431
|
+
name: "dropDownContent",
|
|
432
|
+
friendlyName: "Dropdown Content",
|
|
433
|
+
helperText: "Content to display in the dropdown",
|
|
434
|
+
type: "list",
|
|
435
|
+
localized: false,
|
|
436
|
+
required: false,
|
|
437
|
+
defaultCollapsed: true,
|
|
438
|
+
subFields: [
|
|
439
|
+
{
|
|
440
|
+
"@type": "@builder.io/core:Field",
|
|
441
|
+
name: "type",
|
|
442
|
+
friendlyName: "Dropdown Type",
|
|
443
|
+
helperText: "Select the type of dropdown content",
|
|
444
|
+
type: "select",
|
|
445
|
+
enum: [
|
|
446
|
+
"search" /* SEARCH */,
|
|
447
|
+
"links" /* LINKS */,
|
|
448
|
+
"accountLinks" /* ACCOUNT_LINKS */,
|
|
449
|
+
"html" /* HTML */,
|
|
450
|
+
"timedHtml" /* TIMED_HTML */
|
|
451
|
+
],
|
|
452
|
+
defaultValue: "links",
|
|
453
|
+
localized: false,
|
|
454
|
+
defaultCollapsed: true
|
|
455
|
+
},
|
|
456
|
+
{
|
|
457
|
+
"@type": "@builder.io/core:Field",
|
|
458
|
+
name: "links",
|
|
459
|
+
friendlyName: "Links",
|
|
460
|
+
helperText: "Links for this dropdown",
|
|
461
|
+
type: "list",
|
|
462
|
+
localized: false,
|
|
463
|
+
defaultCollapsed: true,
|
|
464
|
+
subFields: [
|
|
465
|
+
{
|
|
466
|
+
"@type": "@builder.io/core:Field",
|
|
467
|
+
name: "itemClasses",
|
|
468
|
+
friendlyName: "Item Classes",
|
|
469
|
+
helperText: "CSS classes for the link item",
|
|
470
|
+
type: "text",
|
|
471
|
+
localized: false,
|
|
472
|
+
defaultCollapsed: true
|
|
473
|
+
},
|
|
474
|
+
{
|
|
475
|
+
"@type": "@builder.io/core:Field",
|
|
476
|
+
name: "loggedInOnly",
|
|
477
|
+
friendlyName: "Logged In Only",
|
|
478
|
+
helperText: "Display this link only when the user is logged in",
|
|
479
|
+
type: "boolean",
|
|
480
|
+
localized: false,
|
|
481
|
+
defaultCollapsed: true
|
|
482
|
+
},
|
|
483
|
+
{
|
|
484
|
+
"@type": "@builder.io/core:Field",
|
|
485
|
+
name: "loggedOutOnly",
|
|
486
|
+
friendlyName: "Logged Out Only",
|
|
487
|
+
helperText: "Display this link only when the user is logged out",
|
|
488
|
+
type: "boolean",
|
|
489
|
+
localized: false,
|
|
490
|
+
defaultCollapsed: true
|
|
491
|
+
},
|
|
492
|
+
{
|
|
493
|
+
"@type": "@builder.io/core:Field",
|
|
494
|
+
name: "text",
|
|
495
|
+
friendlyName: "Link Title",
|
|
496
|
+
helperText: "Title for the link",
|
|
497
|
+
type: "html",
|
|
498
|
+
localized: false,
|
|
499
|
+
defaultCollapsed: true
|
|
500
|
+
},
|
|
501
|
+
{
|
|
502
|
+
"@type": "@builder.io/core:Field",
|
|
503
|
+
name: "URL",
|
|
504
|
+
friendlyName: "URL",
|
|
505
|
+
helperText: "URL for the link",
|
|
506
|
+
type: "url",
|
|
507
|
+
localized: false,
|
|
508
|
+
defaultCollapsed: true
|
|
509
|
+
},
|
|
510
|
+
{
|
|
511
|
+
"@type": "@builder.io/core:Field",
|
|
512
|
+
name: "subLinksWrapperClasses",
|
|
513
|
+
friendlyName: "Sub Links Wrapper Classes",
|
|
514
|
+
helperText: "CSS classes for the sub-links wrapper",
|
|
515
|
+
type: "text",
|
|
516
|
+
localized: false,
|
|
517
|
+
defaultCollapsed: true
|
|
518
|
+
},
|
|
519
|
+
{
|
|
520
|
+
"@type": "@builder.io/core:Field",
|
|
521
|
+
name: "subLinks",
|
|
522
|
+
friendlyName: "Sub Links",
|
|
523
|
+
helperText: "Sub-links for this dropdown item",
|
|
524
|
+
type: "list",
|
|
525
|
+
localized: false,
|
|
526
|
+
defaultCollapsed: true,
|
|
527
|
+
subFields: [
|
|
528
|
+
{
|
|
529
|
+
"@type": "@builder.io/core:Field",
|
|
530
|
+
name: "text",
|
|
531
|
+
friendlyName: "Link Title",
|
|
532
|
+
helperText: "Title for the link",
|
|
533
|
+
type: "text",
|
|
534
|
+
localized: false,
|
|
535
|
+
defaultCollapsed: true
|
|
536
|
+
},
|
|
537
|
+
{
|
|
538
|
+
"@type": "@builder.io/core:Field",
|
|
539
|
+
name: "URL",
|
|
540
|
+
friendlyName: "Link Title",
|
|
541
|
+
helperText: "Title for the link",
|
|
542
|
+
type: "text",
|
|
543
|
+
localized: false,
|
|
544
|
+
defaultCollapsed: true
|
|
545
|
+
}
|
|
546
|
+
]
|
|
547
|
+
}
|
|
548
|
+
]
|
|
549
|
+
},
|
|
550
|
+
{
|
|
551
|
+
"@type": "@builder.io/core:Field",
|
|
552
|
+
name: "htmlContent",
|
|
553
|
+
friendlyName: "HTML Content",
|
|
554
|
+
helperText: "HTML content to display in the dropdown",
|
|
555
|
+
type: "html",
|
|
556
|
+
localized: false,
|
|
557
|
+
defaultCollapsed: true
|
|
558
|
+
},
|
|
559
|
+
{
|
|
560
|
+
"@type": "@builder.io/core:Field",
|
|
561
|
+
name: "inputs",
|
|
562
|
+
friendlyName: "Inputs",
|
|
563
|
+
helperText: "Inputs for the dropdown content",
|
|
564
|
+
type: "object",
|
|
565
|
+
localized: false,
|
|
566
|
+
required: true,
|
|
567
|
+
defaultCollapsed: true,
|
|
568
|
+
subFields: [
|
|
569
|
+
{
|
|
570
|
+
"@type": "@builder.io/core:Field",
|
|
571
|
+
name: "defaultHtml",
|
|
572
|
+
friendlyName: "Default HTML",
|
|
573
|
+
helperText: "Default HTML content that will be displayed",
|
|
574
|
+
type: "html",
|
|
575
|
+
localized: false,
|
|
576
|
+
defaultCollapsed: true
|
|
577
|
+
},
|
|
578
|
+
{
|
|
579
|
+
"@type": "@builder.io/core:Field",
|
|
580
|
+
name: "temporaryHtml",
|
|
581
|
+
friendlyName: "Temporary HTML",
|
|
582
|
+
helperText: "Temporary HTML content that will be displayed for a limited time",
|
|
583
|
+
type: "html",
|
|
584
|
+
localized: false,
|
|
585
|
+
defaultCollapsed: true
|
|
586
|
+
},
|
|
587
|
+
{
|
|
588
|
+
"@type": "@builder.io/core:Field",
|
|
589
|
+
name: "startTime",
|
|
590
|
+
friendlyName: "Start Time",
|
|
591
|
+
helperText: "Start time for the timed HTML content",
|
|
592
|
+
type: "timestamp",
|
|
593
|
+
localized: false,
|
|
594
|
+
defaultCollapsed: true
|
|
595
|
+
},
|
|
596
|
+
{
|
|
597
|
+
"@type": "@builder.io/core:Field",
|
|
598
|
+
name: "endTime",
|
|
599
|
+
friendlyName: "End Time",
|
|
600
|
+
helperText: "End time for the timed HTML content",
|
|
601
|
+
type: "timestamp",
|
|
602
|
+
localized: false,
|
|
603
|
+
defaultCollapsed: true
|
|
604
|
+
}
|
|
605
|
+
]
|
|
606
|
+
}
|
|
607
|
+
]
|
|
608
|
+
}
|
|
609
|
+
]
|
|
610
|
+
},
|
|
611
|
+
{
|
|
612
|
+
"@type": "@builder.io/core:Field",
|
|
613
|
+
name: "desktopMenu",
|
|
614
|
+
friendlyName: "Desktop Menu",
|
|
615
|
+
helperText: "Desktop menu configuration for the medium header",
|
|
616
|
+
type: "object",
|
|
617
|
+
localized: false,
|
|
618
|
+
defaultCollapsed: true,
|
|
619
|
+
subFields: [
|
|
620
|
+
{
|
|
621
|
+
"@type": "@builder.io/core:Field",
|
|
622
|
+
name: "logo",
|
|
623
|
+
friendlyName: "Logo",
|
|
624
|
+
helperText: "Logo for the desktop header",
|
|
625
|
+
type: "file",
|
|
626
|
+
showTemplatePicker: true,
|
|
627
|
+
allowedFileTypes: ["jpeg", "png", "svg", "webp"],
|
|
628
|
+
localized: false,
|
|
629
|
+
defaultCollapsed: true
|
|
630
|
+
},
|
|
631
|
+
{
|
|
632
|
+
"@type": "@builder.io/core:Field",
|
|
633
|
+
name: "navClasses",
|
|
634
|
+
friendlyName: "Navigation Classes",
|
|
635
|
+
helperText: "CSS classes for the desktop navigation",
|
|
636
|
+
type: "text",
|
|
637
|
+
localized: false,
|
|
638
|
+
defaultCollapsed: true
|
|
639
|
+
},
|
|
640
|
+
{
|
|
641
|
+
"@type": "@builder.io/core:Field",
|
|
642
|
+
name: "content",
|
|
643
|
+
friendlyName: "Content",
|
|
644
|
+
helperText: "Content to display in the desktop header",
|
|
645
|
+
type: "list",
|
|
646
|
+
localized: false,
|
|
647
|
+
required: false,
|
|
648
|
+
defaultCollapsed: true,
|
|
649
|
+
subFields: [
|
|
650
|
+
{
|
|
651
|
+
"@type": "@builder.io/core:Field",
|
|
652
|
+
name: "type",
|
|
653
|
+
friendlyName: "Content Type",
|
|
654
|
+
helperText: "Select the type of content",
|
|
655
|
+
type: "select",
|
|
656
|
+
enum: [
|
|
657
|
+
"links" /* LINKS */,
|
|
658
|
+
"logo" /* LOGO */,
|
|
659
|
+
"accountLinks" /* ACCOUNT_LINKS */,
|
|
660
|
+
"cartCount" /* CART_COUNT */,
|
|
661
|
+
"html" /* HTML */
|
|
662
|
+
],
|
|
663
|
+
defaultValue: "links",
|
|
664
|
+
localized: false,
|
|
665
|
+
defaultCollapsed: true
|
|
666
|
+
},
|
|
667
|
+
{
|
|
668
|
+
"@type": "@builder.io/core:Field",
|
|
669
|
+
name: "wrapperClasses",
|
|
670
|
+
friendlyName: "Wrapper Classes",
|
|
671
|
+
helperText: "CSS classes for the wrapper",
|
|
672
|
+
type: "text",
|
|
673
|
+
localized: false,
|
|
674
|
+
defaultCollapsed: true
|
|
675
|
+
},
|
|
676
|
+
{
|
|
677
|
+
"@type": "@builder.io/core:Field",
|
|
678
|
+
name: "links",
|
|
679
|
+
friendlyName: "Links",
|
|
680
|
+
helperText: "Links for the desktop header",
|
|
681
|
+
type: "list",
|
|
682
|
+
localized: false,
|
|
683
|
+
defaultCollapsed: true,
|
|
684
|
+
subFields: [
|
|
685
|
+
{
|
|
686
|
+
"@type": "@builder.io/core:Field",
|
|
687
|
+
name: "text",
|
|
688
|
+
friendlyName: "Link Text",
|
|
689
|
+
helperText: "Text for the link",
|
|
690
|
+
type: "html",
|
|
691
|
+
localized: false,
|
|
692
|
+
defaultCollapsed: true
|
|
693
|
+
},
|
|
694
|
+
{
|
|
695
|
+
"@type": "@builder.io/core:Field",
|
|
696
|
+
name: "URL",
|
|
697
|
+
friendlyName: "URL",
|
|
698
|
+
helperText: "URL for the link",
|
|
699
|
+
type: "url",
|
|
700
|
+
localized: false,
|
|
701
|
+
defaultCollapsed: true
|
|
702
|
+
},
|
|
703
|
+
{
|
|
704
|
+
"@type": "@builder.io/core:Field",
|
|
705
|
+
name: "loggedInOnly",
|
|
706
|
+
friendlyName: "Logged In Only",
|
|
707
|
+
helperText: "Display this link only when the user is logged in",
|
|
708
|
+
type: "boolean",
|
|
709
|
+
localized: false,
|
|
710
|
+
defaultCollapsed: true
|
|
711
|
+
},
|
|
712
|
+
{
|
|
713
|
+
"@type": "@builder.io/core:Field",
|
|
714
|
+
name: "loggedOutOnly",
|
|
715
|
+
friendlyName: "Logged Out Only",
|
|
716
|
+
helperText: "Display this link only when the user is logged out",
|
|
717
|
+
type: "boolean",
|
|
718
|
+
localized: false,
|
|
719
|
+
defaultCollapsed: true
|
|
720
|
+
},
|
|
721
|
+
{
|
|
722
|
+
"@type": "@builder.io/core:Field",
|
|
723
|
+
name: "dropdownWrapperClasses",
|
|
724
|
+
friendlyName: "Dropdown Wrapper Classes",
|
|
725
|
+
helperText: "CSS classes for the dropdown wrapper",
|
|
726
|
+
type: "text",
|
|
727
|
+
localized: false,
|
|
728
|
+
defaultCollapsed: true
|
|
729
|
+
},
|
|
730
|
+
{
|
|
731
|
+
"@type": "@builder.io/core:Field",
|
|
732
|
+
name: "dropdownItemClasses",
|
|
733
|
+
friendlyName: "Dropdown Item Classes",
|
|
734
|
+
helperText: "CSS classes for the dropdown item",
|
|
735
|
+
type: "text",
|
|
736
|
+
localized: false,
|
|
737
|
+
defaultCollapsed: true
|
|
738
|
+
},
|
|
739
|
+
{
|
|
740
|
+
"@type": "@builder.io/core:Field",
|
|
741
|
+
name: "subLinks",
|
|
742
|
+
friendlyName: "Sub Links",
|
|
743
|
+
helperText: "Sub-links for this header item",
|
|
744
|
+
type: "list",
|
|
745
|
+
localized: false,
|
|
746
|
+
defaultCollapsed: true,
|
|
747
|
+
subFields: [
|
|
748
|
+
{
|
|
749
|
+
"@type": "@builder.io/core:Field",
|
|
750
|
+
name: "columnHeaderTitle",
|
|
751
|
+
friendlyName: "Column Header Title",
|
|
752
|
+
helperText: "Title for the column header",
|
|
753
|
+
type: "text",
|
|
754
|
+
localized: false,
|
|
755
|
+
defaultCollapsed: true
|
|
756
|
+
},
|
|
757
|
+
{
|
|
758
|
+
"@type": "@builder.io/core:Field",
|
|
759
|
+
name: "columnContentType",
|
|
760
|
+
friendlyName: "Column Content Type",
|
|
761
|
+
helperText: "Select the type of content for the column",
|
|
762
|
+
type: "select",
|
|
763
|
+
enum: ["links", "html", "timedHtml"],
|
|
764
|
+
defaultValue: "links",
|
|
765
|
+
localized: false,
|
|
766
|
+
defaultCollapsed: true
|
|
767
|
+
},
|
|
768
|
+
{
|
|
769
|
+
"@type": "@builder.io/core:Field",
|
|
770
|
+
name: "links",
|
|
771
|
+
friendlyName: "Links",
|
|
772
|
+
helperText: "Links for the column",
|
|
773
|
+
type: "list",
|
|
774
|
+
localized: false,
|
|
775
|
+
defaultCollapsed: true,
|
|
776
|
+
subFields: [
|
|
777
|
+
{
|
|
778
|
+
"@type": "@builder.io/core:Field",
|
|
779
|
+
name: "text",
|
|
780
|
+
friendlyName: "Text",
|
|
781
|
+
helperText: "Text for the link",
|
|
782
|
+
type: "text",
|
|
783
|
+
localized: false,
|
|
784
|
+
defaultCollapsed: true
|
|
785
|
+
},
|
|
786
|
+
{
|
|
787
|
+
"@type": "@builder.io/core:Field",
|
|
788
|
+
name: "URL",
|
|
789
|
+
friendlyName: "URL",
|
|
790
|
+
helperText: "URL for the link",
|
|
791
|
+
type: "url",
|
|
792
|
+
localized: false,
|
|
793
|
+
defaultCollapsed: true
|
|
794
|
+
}
|
|
795
|
+
]
|
|
796
|
+
},
|
|
797
|
+
{
|
|
798
|
+
"@type": "@builder.io/core:Field",
|
|
799
|
+
name: "content",
|
|
800
|
+
friendlyName: "Content",
|
|
801
|
+
helperText: "Content for the column",
|
|
802
|
+
type: "html",
|
|
803
|
+
localized: false,
|
|
804
|
+
defaultCollapsed: true
|
|
805
|
+
},
|
|
806
|
+
{
|
|
807
|
+
"@type": "@builder.io/core:Field",
|
|
808
|
+
name: "inputs",
|
|
809
|
+
friendlyName: "Inputs",
|
|
810
|
+
helperText: "Inputs for the dropdown content",
|
|
811
|
+
type: "object",
|
|
812
|
+
localized: false,
|
|
813
|
+
required: true,
|
|
814
|
+
defaultCollapsed: true,
|
|
815
|
+
subFields: [
|
|
816
|
+
{
|
|
817
|
+
"@type": "@builder.io/core:Field",
|
|
818
|
+
name: "defaultHtml",
|
|
819
|
+
friendlyName: "Default HTML",
|
|
820
|
+
helperText: "Default HTML content that will be displayed",
|
|
821
|
+
type: "html",
|
|
822
|
+
localized: false,
|
|
823
|
+
defaultCollapsed: true
|
|
824
|
+
},
|
|
825
|
+
{
|
|
826
|
+
"@type": "@builder.io/core:Field",
|
|
827
|
+
name: "temporaryHtml",
|
|
828
|
+
friendlyName: "Temporary HTML",
|
|
829
|
+
helperText: "Temporary HTML content that will be displayed for a limited time",
|
|
830
|
+
type: "html",
|
|
831
|
+
localized: false,
|
|
832
|
+
defaultCollapsed: true
|
|
833
|
+
},
|
|
834
|
+
{
|
|
835
|
+
"@type": "@builder.io/core:Field",
|
|
836
|
+
name: "startTime",
|
|
837
|
+
friendlyName: "Start Time",
|
|
838
|
+
helperText: "Start time for the timed HTML content",
|
|
839
|
+
type: "timestamp",
|
|
840
|
+
localized: false,
|
|
841
|
+
defaultCollapsed: true
|
|
842
|
+
},
|
|
843
|
+
{
|
|
844
|
+
"@type": "@builder.io/core:Field",
|
|
845
|
+
name: "endTime",
|
|
846
|
+
friendlyName: "End Time",
|
|
847
|
+
helperText: "End time for the timed HTML content",
|
|
848
|
+
type: "timestamp",
|
|
849
|
+
localized: false,
|
|
850
|
+
defaultCollapsed: true
|
|
851
|
+
}
|
|
852
|
+
]
|
|
853
|
+
}
|
|
854
|
+
]
|
|
855
|
+
}
|
|
856
|
+
]
|
|
857
|
+
},
|
|
858
|
+
{
|
|
859
|
+
"@type": "@builder.io/core:Field",
|
|
860
|
+
name: "accountLinksConfig",
|
|
861
|
+
friendlyName: "Account Links Config",
|
|
862
|
+
helperText: "",
|
|
863
|
+
type: "object",
|
|
864
|
+
localized: false,
|
|
865
|
+
defaultCollapsed: true,
|
|
866
|
+
subFields: [
|
|
867
|
+
{
|
|
868
|
+
"@type": "@builder.io/core:Field",
|
|
869
|
+
name: "dropdownWrapperClasses",
|
|
870
|
+
friendlyName: "Dropdown Wrapper Classes",
|
|
871
|
+
helperText: "CSS classes for the dropdown wrapper",
|
|
872
|
+
type: "text",
|
|
873
|
+
localized: false,
|
|
874
|
+
defaultCollapsed: true
|
|
875
|
+
},
|
|
876
|
+
{
|
|
877
|
+
"@type": "@builder.io/core:Field",
|
|
878
|
+
name: "dropdownItemClasses",
|
|
879
|
+
friendlyName: "Dropdown Item Classes",
|
|
880
|
+
helperText: "CSS classes for the dropdown item",
|
|
881
|
+
type: "text",
|
|
882
|
+
localized: false,
|
|
883
|
+
defaultCollapsed: true
|
|
884
|
+
}
|
|
885
|
+
]
|
|
886
|
+
},
|
|
887
|
+
{
|
|
888
|
+
"@type": "@builder.io/core:Field",
|
|
889
|
+
name: "htmlContent",
|
|
890
|
+
friendlyName: "HTML Content",
|
|
891
|
+
helperText: "HTML content to display in the header",
|
|
892
|
+
type: "html",
|
|
893
|
+
localized: false,
|
|
894
|
+
defaultCollapsed: true
|
|
895
|
+
}
|
|
896
|
+
]
|
|
897
|
+
}
|
|
898
|
+
]
|
|
899
|
+
},
|
|
900
|
+
{
|
|
901
|
+
"@type": "@builder.io/core:Field",
|
|
902
|
+
name: "bannersAboveHeader",
|
|
903
|
+
friendlyName: "Banners Above Header",
|
|
904
|
+
helperText: "Banners to display above the header",
|
|
905
|
+
type: "list",
|
|
906
|
+
localized: true,
|
|
907
|
+
defaultCollapsed: true,
|
|
908
|
+
subFields: [
|
|
909
|
+
{
|
|
910
|
+
"@type": "@builder.io/core:Field",
|
|
911
|
+
name: "wrapperClasses",
|
|
912
|
+
friendlyName: "Wrapper Classes",
|
|
913
|
+
helperText: "CSS classes for the banner wrapper",
|
|
914
|
+
type: "text",
|
|
915
|
+
localized: true,
|
|
916
|
+
defaultCollapsed: true
|
|
917
|
+
},
|
|
918
|
+
{
|
|
919
|
+
"@type": "@builder.io/core:Field",
|
|
920
|
+
name: "content",
|
|
921
|
+
friendlyName: "Banner Content",
|
|
922
|
+
helperText: "Content to display in the banner",
|
|
923
|
+
type: "html",
|
|
924
|
+
localized: true,
|
|
925
|
+
defaultCollapsed: true
|
|
926
|
+
}
|
|
927
|
+
]
|
|
928
|
+
},
|
|
929
|
+
{
|
|
930
|
+
"@type": "@builder.io/core:Field",
|
|
931
|
+
name: "contactUrl",
|
|
932
|
+
friendlyName: "Contact URL",
|
|
933
|
+
helperText: "URL for the contact page",
|
|
934
|
+
type: "url",
|
|
935
|
+
localized: true,
|
|
936
|
+
defaultCollapsed: true
|
|
937
|
+
}
|
|
938
|
+
]
|
|
939
|
+
},
|
|
940
|
+
mega: {
|
|
941
|
+
"@type": "@builder.io/core:Field",
|
|
942
|
+
name: "megaMenuConfig",
|
|
943
|
+
showIf: "return options.get('headerType') === 'MEGA'",
|
|
944
|
+
friendlyName: "Mega Menu Config",
|
|
945
|
+
type: "object",
|
|
946
|
+
defaultCollapsed: true,
|
|
947
|
+
localized: false,
|
|
948
|
+
subFields: [
|
|
949
|
+
{
|
|
950
|
+
"@type": "@builder.io/core:Field",
|
|
951
|
+
name: "showShippingMessage",
|
|
952
|
+
friendlyName: "Show Shipping Message",
|
|
953
|
+
helperText: "Display the free shipping message on the mega menu",
|
|
954
|
+
type: "boolean",
|
|
955
|
+
localized: true,
|
|
956
|
+
defaultCollapsed: true
|
|
957
|
+
},
|
|
958
|
+
{
|
|
959
|
+
"@type": "@builder.io/core:Field",
|
|
960
|
+
name: "mobileLinks",
|
|
961
|
+
friendlyName: "Mobile Links",
|
|
962
|
+
helperText: "Links to display in the mobile mega menu",
|
|
963
|
+
type: "list",
|
|
964
|
+
localized: true,
|
|
965
|
+
defaultCollapsed: true,
|
|
966
|
+
subFields: [
|
|
967
|
+
{
|
|
968
|
+
"@type": "@builder.io/core:Field",
|
|
969
|
+
name: "title",
|
|
970
|
+
friendlyName: "Mobile Link Title",
|
|
971
|
+
helperText: "Title for the mobile link",
|
|
972
|
+
type: "text",
|
|
973
|
+
localized: false,
|
|
974
|
+
defaultCollapsed: true
|
|
975
|
+
},
|
|
976
|
+
{
|
|
977
|
+
"@type": "@builder.io/core:Field",
|
|
978
|
+
name: "href",
|
|
979
|
+
friendlyName: "Link URL",
|
|
980
|
+
helperText: "URL for the mobile link",
|
|
981
|
+
type: "url",
|
|
982
|
+
localized: false,
|
|
983
|
+
required: false,
|
|
984
|
+
defaultCollapsed: true
|
|
985
|
+
},
|
|
986
|
+
{
|
|
987
|
+
"@type": "@builder.io/core:Field",
|
|
988
|
+
name: "expanded",
|
|
989
|
+
friendlyName: "Expanded",
|
|
990
|
+
helperText: "Indicates if the mobile link is expanded by default",
|
|
991
|
+
type: "boolean",
|
|
992
|
+
localized: false,
|
|
993
|
+
defaultCollapsed: true
|
|
994
|
+
},
|
|
995
|
+
{
|
|
996
|
+
"@type": "@builder.io/core:Field",
|
|
997
|
+
name: "links",
|
|
998
|
+
friendlyName: "Sub-Links",
|
|
999
|
+
helperText: "Sub-links for the mobile link",
|
|
1000
|
+
type: "list",
|
|
1001
|
+
localized: false,
|
|
1002
|
+
required: false,
|
|
1003
|
+
defaultCollapsed: true,
|
|
1004
|
+
subFields: [
|
|
1005
|
+
{
|
|
1006
|
+
"@type": "@builder.io/core:Field",
|
|
1007
|
+
name: "title",
|
|
1008
|
+
friendlyName: "Link Title",
|
|
1009
|
+
helperText: "Title for the link",
|
|
1010
|
+
type: "text",
|
|
1011
|
+
localized: false,
|
|
1012
|
+
defaultCollapsed: true
|
|
1013
|
+
},
|
|
1014
|
+
{
|
|
1015
|
+
"@type": "@builder.io/core:Field",
|
|
1016
|
+
name: "href",
|
|
1017
|
+
friendlyName: "Link URL",
|
|
1018
|
+
helperText: "URL for the link",
|
|
1019
|
+
type: "url",
|
|
1020
|
+
localized: false,
|
|
1021
|
+
required: true,
|
|
1022
|
+
defaultCollapsed: true
|
|
1023
|
+
}
|
|
1024
|
+
]
|
|
1025
|
+
}
|
|
1026
|
+
]
|
|
1027
|
+
},
|
|
1028
|
+
{
|
|
1029
|
+
"@type": "@builder.io/core:Field",
|
|
1030
|
+
name: "desktopShopNavLinks",
|
|
1031
|
+
friendlyName: "Desktop Shop Navigation Links",
|
|
1032
|
+
helperText: "Links to display in the desktop shop navigation",
|
|
1033
|
+
type: "list",
|
|
1034
|
+
localized: true,
|
|
1035
|
+
defaultCollapsed: true,
|
|
1036
|
+
subFields: [
|
|
1037
|
+
{
|
|
1038
|
+
"@type": "@builder.io/core:Field",
|
|
1039
|
+
name: "title",
|
|
1040
|
+
friendlyName: "Link Title",
|
|
1041
|
+
helperText: "Title for the desktop link",
|
|
1042
|
+
type: "text",
|
|
1043
|
+
localized: false,
|
|
1044
|
+
required: true,
|
|
1045
|
+
defaultCollapsed: true
|
|
1046
|
+
},
|
|
1047
|
+
{
|
|
1048
|
+
"@type": "@builder.io/core:Field",
|
|
1049
|
+
name: "links",
|
|
1050
|
+
friendlyName: "Links",
|
|
1051
|
+
helperText: "Links for the desktop navigation",
|
|
1052
|
+
type: "list",
|
|
1053
|
+
localized: false,
|
|
1054
|
+
required: false,
|
|
1055
|
+
defaultCollapsed: true,
|
|
1056
|
+
subFields: [
|
|
1057
|
+
{
|
|
1058
|
+
"@type": "@builder.io/core:Field",
|
|
1059
|
+
name: "title",
|
|
1060
|
+
friendlyName: "Link Title",
|
|
1061
|
+
helperText: "Title for the link",
|
|
1062
|
+
type: "text",
|
|
1063
|
+
localized: false,
|
|
1064
|
+
defaultCollapsed: true
|
|
1065
|
+
},
|
|
1066
|
+
{
|
|
1067
|
+
"@type": "@builder.io/core:Field",
|
|
1068
|
+
name: "href",
|
|
1069
|
+
friendlyName: "Link URL",
|
|
1070
|
+
helperText: "URL for the link",
|
|
1071
|
+
type: "url",
|
|
1072
|
+
localized: false,
|
|
1073
|
+
required: true,
|
|
1074
|
+
defaultCollapsed: true
|
|
1075
|
+
}
|
|
1076
|
+
]
|
|
1077
|
+
},
|
|
1078
|
+
{
|
|
1079
|
+
"@type": "@builder.io/core:Field",
|
|
1080
|
+
name: "shopAllLink",
|
|
1081
|
+
friendlyName: "Shop All Link",
|
|
1082
|
+
helperText: 'Link to the "Shop All" page',
|
|
1083
|
+
type: "object",
|
|
1084
|
+
localized: false,
|
|
1085
|
+
required: false,
|
|
1086
|
+
defaultCollapsed: true,
|
|
1087
|
+
subFields: [
|
|
1088
|
+
{
|
|
1089
|
+
"@type": "@builder.io/core:Field",
|
|
1090
|
+
name: "title",
|
|
1091
|
+
friendlyName: "Link Title",
|
|
1092
|
+
helperText: "Title for the link",
|
|
1093
|
+
type: "text",
|
|
1094
|
+
localized: false,
|
|
1095
|
+
defaultCollapsed: true
|
|
1096
|
+
},
|
|
1097
|
+
{
|
|
1098
|
+
"@type": "@builder.io/core:Field",
|
|
1099
|
+
name: "href",
|
|
1100
|
+
friendlyName: "Link URL",
|
|
1101
|
+
helperText: "URL for the link",
|
|
1102
|
+
type: "url",
|
|
1103
|
+
localized: false,
|
|
1104
|
+
required: true,
|
|
1105
|
+
defaultCollapsed: true
|
|
1106
|
+
}
|
|
1107
|
+
]
|
|
1108
|
+
}
|
|
1109
|
+
]
|
|
1110
|
+
}
|
|
1111
|
+
]
|
|
1112
|
+
},
|
|
1113
|
+
dmp: {
|
|
1114
|
+
"@type": "@builder.io/core:Field",
|
|
1115
|
+
name: "dmpHeaderConfig",
|
|
1116
|
+
showIf: "return options.get('headerType') === 'DMP'",
|
|
1117
|
+
friendlyName: "DMP Header Config",
|
|
1118
|
+
type: "object",
|
|
1119
|
+
defaultCollapsed: true,
|
|
1120
|
+
localized: false,
|
|
1121
|
+
subFields: [
|
|
1122
|
+
{
|
|
1123
|
+
"@type": "@builder.io/core:Field",
|
|
1124
|
+
name: "logoImage",
|
|
1125
|
+
friendlyName: "Logo Image",
|
|
1126
|
+
type: "file",
|
|
1127
|
+
showTemplatePicker: true,
|
|
1128
|
+
allowedFileTypes: ["jpeg", "png", "svg", "webp"],
|
|
1129
|
+
required: false,
|
|
1130
|
+
localized: true,
|
|
1131
|
+
defaultCollapsed: true,
|
|
1132
|
+
helperText: "Image displayed in the header"
|
|
1133
|
+
},
|
|
1134
|
+
{
|
|
1135
|
+
"@type": "@builder.io/core:Field",
|
|
1136
|
+
name: "mobileLinks",
|
|
1137
|
+
friendlyName: "Mobile Links",
|
|
1138
|
+
helperText: "Links to display in the mobile dropdown menu",
|
|
1139
|
+
type: "list",
|
|
1140
|
+
localized: true,
|
|
1141
|
+
defaultCollapsed: true,
|
|
1142
|
+
subFields: [
|
|
1143
|
+
{
|
|
1144
|
+
"@type": "@builder.io/core:Field",
|
|
1145
|
+
name: "title",
|
|
1146
|
+
friendlyName: "Mobile Link Title",
|
|
1147
|
+
helperText: "Title for the mobile link",
|
|
1148
|
+
type: "text",
|
|
1149
|
+
localized: false,
|
|
1150
|
+
defaultCollapsed: true
|
|
1151
|
+
},
|
|
1152
|
+
{
|
|
1153
|
+
"@type": "@builder.io/core:Field",
|
|
1154
|
+
name: "href",
|
|
1155
|
+
friendlyName: "Link URL",
|
|
1156
|
+
helperText: "URL for the mobile link",
|
|
1157
|
+
type: "url",
|
|
1158
|
+
localized: false,
|
|
1159
|
+
required: false,
|
|
1160
|
+
defaultCollapsed: true
|
|
1161
|
+
}
|
|
1162
|
+
]
|
|
1163
|
+
},
|
|
1164
|
+
{
|
|
1165
|
+
"@type": "@builder.io/core:Field",
|
|
1166
|
+
name: "desktopLinks",
|
|
1167
|
+
friendlyName: "Desktop Links",
|
|
1168
|
+
helperText: "Links to display in the desktop menu",
|
|
1169
|
+
type: "list",
|
|
1170
|
+
localized: true,
|
|
1171
|
+
defaultCollapsed: true,
|
|
1172
|
+
subFields: [
|
|
1173
|
+
{
|
|
1174
|
+
"@type": "@builder.io/core:Field",
|
|
1175
|
+
name: "title",
|
|
1176
|
+
friendlyName: "Desktop Link Title",
|
|
1177
|
+
helperText: "Title for the desktop link",
|
|
1178
|
+
type: "text",
|
|
1179
|
+
localized: false,
|
|
1180
|
+
defaultCollapsed: true
|
|
1181
|
+
},
|
|
1182
|
+
{
|
|
1183
|
+
"@type": "@builder.io/core:Field",
|
|
1184
|
+
name: "href",
|
|
1185
|
+
friendlyName: "Link URL",
|
|
1186
|
+
helperText: "URL for the mobile link",
|
|
1187
|
+
type: "url",
|
|
1188
|
+
localized: false,
|
|
1189
|
+
required: false,
|
|
1190
|
+
defaultCollapsed: true
|
|
1191
|
+
}
|
|
1192
|
+
]
|
|
1193
|
+
}
|
|
1194
|
+
]
|
|
1195
|
+
}
|
|
1196
|
+
};
|
|
1197
|
+
var createHeaderConfig = () => {
|
|
1198
|
+
return {
|
|
1199
|
+
name: "header",
|
|
1200
|
+
friendlyName: "Header",
|
|
1201
|
+
type: "object",
|
|
1202
|
+
defaultCollapsed: true,
|
|
1203
|
+
subFields: [
|
|
1204
|
+
{
|
|
1205
|
+
name: "headerType",
|
|
1206
|
+
friendlyName: "Type",
|
|
1207
|
+
helperText: "Select the type of header to use",
|
|
1208
|
+
defaultCollapsed: true,
|
|
1209
|
+
type: "select",
|
|
1210
|
+
enum: ["BASIC" /* BASIC */, "MEDIUM" /* MEDIUM */, "MEGA" /* MEGA */, "NONE" /* NONE */, "DMP" /* DMP */],
|
|
1211
|
+
defaultValue: "MEDIUM"
|
|
1212
|
+
},
|
|
1213
|
+
headerOptions.basic,
|
|
1214
|
+
headerOptions.medium,
|
|
1215
|
+
headerOptions.mega,
|
|
1216
|
+
headerOptions.dmp
|
|
1217
|
+
]
|
|
1218
|
+
};
|
|
1219
|
+
};
|
|
1220
|
+
|
|
1221
|
+
// src/data/brand-config/sections/footer-config.ts
|
|
1222
|
+
var createFooterConfig = () => {
|
|
1223
|
+
return {
|
|
1224
|
+
name: "footer",
|
|
1225
|
+
"@type": "@builder.io/core:Field",
|
|
1226
|
+
friendlyName: "Footer",
|
|
1227
|
+
type: "object",
|
|
1228
|
+
defaultCollapsed: true,
|
|
1229
|
+
subFields: [
|
|
1230
|
+
{
|
|
1231
|
+
name: "footerType",
|
|
1232
|
+
friendlyName: "Type",
|
|
1233
|
+
type: "select",
|
|
1234
|
+
enum: ["BASIC" /* BASIC */, "MEGA" /* MEGA */, "NONE" /* NONE */],
|
|
1235
|
+
defaultValue: "BASIC" /* BASIC */,
|
|
1236
|
+
defaultCollapsed: true
|
|
1237
|
+
}
|
|
1238
|
+
]
|
|
1239
|
+
};
|
|
1240
|
+
};
|
|
1241
|
+
|
|
1242
|
+
// src/data/brand-config/sections/feature-config.ts
|
|
1243
|
+
var createFeatureConfig = (gridFilterModelId) => {
|
|
1244
|
+
return {
|
|
1245
|
+
name: "features",
|
|
1246
|
+
friendlyName: "Features",
|
|
1247
|
+
type: "object",
|
|
1248
|
+
defaultCollapsed: true,
|
|
1249
|
+
subFields: [
|
|
1250
|
+
{
|
|
1251
|
+
name: "productGridFilterType",
|
|
1252
|
+
friendlyName: "Product Grid Filter Type",
|
|
1253
|
+
type: "select",
|
|
1254
|
+
defaultCollapsed: true,
|
|
1255
|
+
helperText: `Select the type of filters to use. 'Dropdown' will display a drop down of categories, ingredients, use cases, and tags.
|
|
1256
|
+
'Stacked List' allows you to create your own filter groupings from amongst those four filter types.`,
|
|
1257
|
+
enum: ["Dropdown" /* DROPDOWN */, "Stacked List" /* STACKED_LIST */],
|
|
1258
|
+
defaultValue: "Dropdown"
|
|
1259
|
+
},
|
|
1260
|
+
{
|
|
1261
|
+
name: "productGridFilterGroups",
|
|
1262
|
+
friendlyName: "Product Grid Filter Groups",
|
|
1263
|
+
type: "list",
|
|
1264
|
+
defaultCollapsed: true,
|
|
1265
|
+
helperText: "Select the filter groups to use. They will be presented in the order entered",
|
|
1266
|
+
subFields: [
|
|
1267
|
+
{
|
|
1268
|
+
name: "filterConfig",
|
|
1269
|
+
friendlyName: "Product Grid Filter",
|
|
1270
|
+
type: "reference",
|
|
1271
|
+
defaultCollapsed: true,
|
|
1272
|
+
modelId: gridFilterModelId,
|
|
1273
|
+
helperText: "Select a product grid filter group to display",
|
|
1274
|
+
copyOnAdd: false
|
|
1275
|
+
}
|
|
1276
|
+
],
|
|
1277
|
+
showIf: `return options.get('productGridFilterType') === 'Custom'`
|
|
1278
|
+
},
|
|
1279
|
+
{
|
|
1280
|
+
name: "productGridHideRestricted",
|
|
1281
|
+
friendlyName: "Hide Restricted Products",
|
|
1282
|
+
helperText: `Hide restricted products from your product grid based on the user's selected country`,
|
|
1283
|
+
type: "boolean",
|
|
1284
|
+
localized: false,
|
|
1285
|
+
defaultCollapsed: true
|
|
1286
|
+
},
|
|
1287
|
+
{
|
|
1288
|
+
name: "productLinkPrefix",
|
|
1289
|
+
friendlyName: "Product Link Prefix",
|
|
1290
|
+
helperText: 'Set the prefix to append before product slugs throughout your site. For example, if you enter "p", all links from the product grid will be {website}/p/{product-slug}',
|
|
1291
|
+
type: "select",
|
|
1292
|
+
enum: ["/p" /* P */, "/product" /* PRODUCT */],
|
|
1293
|
+
localized: false,
|
|
1294
|
+
defaultCollapsed: true,
|
|
1295
|
+
defaultValue: "/p"
|
|
1296
|
+
},
|
|
1297
|
+
{
|
|
1298
|
+
name: "subscriptionAddOnsEnabled",
|
|
1299
|
+
friendlyName: "Subscription Add-Ons Enabled",
|
|
1300
|
+
helperText: "Enable or disable subscription add-ons for the brand",
|
|
1301
|
+
type: "boolean",
|
|
1302
|
+
localized: false,
|
|
1303
|
+
defaultCollapsed: true
|
|
1304
|
+
},
|
|
1305
|
+
{
|
|
1306
|
+
name: "shippingThresholdNotificationEnabled",
|
|
1307
|
+
friendlyName: "Shipping Threshold Notification Enabled",
|
|
1308
|
+
helperText: "Enable or disable shipping threshold notifications for the brand",
|
|
1309
|
+
type: "boolean",
|
|
1310
|
+
localized: true,
|
|
1311
|
+
defaultCollapsed: true
|
|
1312
|
+
},
|
|
1313
|
+
{
|
|
1314
|
+
name: "bundlingEnabled",
|
|
1315
|
+
friendlyName: "Enable Bundling Experience",
|
|
1316
|
+
helperText: "Enable or disable the bundling experience for the brand",
|
|
1317
|
+
type: "boolean",
|
|
1318
|
+
localized: false,
|
|
1319
|
+
defaultCollapsed: true
|
|
1320
|
+
}
|
|
1321
|
+
]
|
|
1322
|
+
};
|
|
1323
|
+
};
|
|
1324
|
+
|
|
1325
|
+
// src/data/brand-config/sections/support-config.ts
|
|
1326
|
+
var createSupportConfig = () => {
|
|
1327
|
+
return {
|
|
1328
|
+
name: "support",
|
|
1329
|
+
friendlyName: "Support Information",
|
|
1330
|
+
type: "object",
|
|
1331
|
+
defaultCollapsed: true,
|
|
1332
|
+
localized: false,
|
|
1333
|
+
subFields: [
|
|
1334
|
+
{
|
|
1335
|
+
name: "email",
|
|
1336
|
+
friendlyName: "Support Email",
|
|
1337
|
+
type: "text",
|
|
1338
|
+
required: true,
|
|
1339
|
+
localized: true,
|
|
1340
|
+
helperText: "Email address for customer support inquiries",
|
|
1341
|
+
defaultCollapsed: true
|
|
1342
|
+
},
|
|
1343
|
+
{
|
|
1344
|
+
name: "phone",
|
|
1345
|
+
friendlyName: "Support Phone Number",
|
|
1346
|
+
type: "text",
|
|
1347
|
+
required: true,
|
|
1348
|
+
localized: true,
|
|
1349
|
+
helperText: "Phone number for customer support inquiries",
|
|
1350
|
+
defaultCollapsed: true
|
|
1351
|
+
},
|
|
1352
|
+
{
|
|
1353
|
+
name: "phoneDisplay",
|
|
1354
|
+
friendlyName: "Support Phone Display",
|
|
1355
|
+
type: "text",
|
|
1356
|
+
required: true,
|
|
1357
|
+
localized: true,
|
|
1358
|
+
helperText: "Formatted phone number for display",
|
|
1359
|
+
defaultCollapsed: true
|
|
1360
|
+
},
|
|
1361
|
+
{
|
|
1362
|
+
name: "address",
|
|
1363
|
+
friendlyName: "Support Address",
|
|
1364
|
+
type: "object",
|
|
1365
|
+
required: true,
|
|
1366
|
+
localized: false,
|
|
1367
|
+
helperText: "Support address for customer inquiries",
|
|
1368
|
+
defaultCollapsed: true,
|
|
1369
|
+
subFields: [
|
|
1370
|
+
{
|
|
1371
|
+
name: "street",
|
|
1372
|
+
friendlyName: "Street",
|
|
1373
|
+
type: "text",
|
|
1374
|
+
required: true,
|
|
1375
|
+
helperText: "Street address for support",
|
|
1376
|
+
defaultCollapsed: true
|
|
1377
|
+
},
|
|
1378
|
+
{
|
|
1379
|
+
name: "city",
|
|
1380
|
+
friendlyName: "City",
|
|
1381
|
+
type: "text",
|
|
1382
|
+
required: true,
|
|
1383
|
+
helperText: "City for support address",
|
|
1384
|
+
defaultCollapsed: true
|
|
1385
|
+
},
|
|
1386
|
+
{
|
|
1387
|
+
name: "state",
|
|
1388
|
+
friendlyName: "State Code",
|
|
1389
|
+
type: "text",
|
|
1390
|
+
required: true,
|
|
1391
|
+
helperText: "State code for support address (e.g. CA)",
|
|
1392
|
+
defaultCollapsed: true
|
|
1393
|
+
},
|
|
1394
|
+
{
|
|
1395
|
+
name: "zipcode",
|
|
1396
|
+
friendlyName: "Zip Code",
|
|
1397
|
+
type: "text",
|
|
1398
|
+
required: true,
|
|
1399
|
+
helperText: "Zip code for support address",
|
|
1400
|
+
defaultCollapsed: true
|
|
1401
|
+
}
|
|
1402
|
+
]
|
|
1403
|
+
},
|
|
1404
|
+
{
|
|
1405
|
+
name: "addressString",
|
|
1406
|
+
friendlyName: "Support Address String",
|
|
1407
|
+
type: "text",
|
|
1408
|
+
required: false,
|
|
1409
|
+
localized: false,
|
|
1410
|
+
helperText: "The full support address as a string",
|
|
1411
|
+
defaultCollapsed: true
|
|
1412
|
+
}
|
|
1413
|
+
]
|
|
1414
|
+
};
|
|
1415
|
+
};
|
|
1416
|
+
|
|
1417
|
+
// src/data/brand-config/sections/page-config.ts
|
|
1418
|
+
var createPageConfig = () => {
|
|
1419
|
+
return {
|
|
1420
|
+
name: "pageConfig",
|
|
1421
|
+
friendlyName: "Page Configurations",
|
|
1422
|
+
type: "object",
|
|
1423
|
+
defaultCollapsed: true,
|
|
1424
|
+
subFields: [
|
|
1425
|
+
{
|
|
1426
|
+
name: "accountDetails",
|
|
1427
|
+
friendlyName: "Account Details Page",
|
|
1428
|
+
type: "object",
|
|
1429
|
+
defaultCollapsed: true,
|
|
1430
|
+
subFields: [
|
|
1431
|
+
{
|
|
1432
|
+
name: "birthdayBannerConfig",
|
|
1433
|
+
friendlyName: "Birthday Banner Configuration",
|
|
1434
|
+
type: "object",
|
|
1435
|
+
defaultCollapsed: true,
|
|
1436
|
+
subFields: [
|
|
1437
|
+
{
|
|
1438
|
+
name: "content",
|
|
1439
|
+
friendlyName: "Banner Content",
|
|
1440
|
+
type: "html",
|
|
1441
|
+
required: false,
|
|
1442
|
+
localized: true,
|
|
1443
|
+
defaultCollapsed: true
|
|
1444
|
+
},
|
|
1445
|
+
{
|
|
1446
|
+
name: "linkText",
|
|
1447
|
+
friendlyName: "Link Text",
|
|
1448
|
+
type: "text",
|
|
1449
|
+
localized: true,
|
|
1450
|
+
defaultCollapsed: true
|
|
1451
|
+
},
|
|
1452
|
+
{
|
|
1453
|
+
name: "linkUrl",
|
|
1454
|
+
friendlyName: "Link URL",
|
|
1455
|
+
type: "url",
|
|
1456
|
+
required: false,
|
|
1457
|
+
localized: true,
|
|
1458
|
+
defaultCollapsed: true
|
|
1459
|
+
},
|
|
1460
|
+
{
|
|
1461
|
+
name: "styles",
|
|
1462
|
+
friendlyName: "Styles",
|
|
1463
|
+
type: "object",
|
|
1464
|
+
defaultCollapsed: true,
|
|
1465
|
+
subFields: [
|
|
1466
|
+
{
|
|
1467
|
+
name: "display",
|
|
1468
|
+
friendlyName: "Display",
|
|
1469
|
+
type: "text",
|
|
1470
|
+
defaultCollapsed: true
|
|
1471
|
+
},
|
|
1472
|
+
{
|
|
1473
|
+
name: "alignItems",
|
|
1474
|
+
friendlyName: "Align Items",
|
|
1475
|
+
type: "text",
|
|
1476
|
+
defaultCollapsed: true
|
|
1477
|
+
},
|
|
1478
|
+
{
|
|
1479
|
+
name: "margin",
|
|
1480
|
+
friendlyName: "Margin",
|
|
1481
|
+
type: "text",
|
|
1482
|
+
defaultCollapsed: true
|
|
1483
|
+
},
|
|
1484
|
+
{
|
|
1485
|
+
name: "padding",
|
|
1486
|
+
friendlyName: "Padding",
|
|
1487
|
+
type: "text",
|
|
1488
|
+
defaultCollapsed: true
|
|
1489
|
+
},
|
|
1490
|
+
{
|
|
1491
|
+
name: "backgroundColor",
|
|
1492
|
+
friendlyName: "Background Color",
|
|
1493
|
+
type: "color",
|
|
1494
|
+
required: false,
|
|
1495
|
+
localized: false,
|
|
1496
|
+
defaultCollapsed: true
|
|
1497
|
+
},
|
|
1498
|
+
{
|
|
1499
|
+
name: "color",
|
|
1500
|
+
friendlyName: "Color",
|
|
1501
|
+
type: "color",
|
|
1502
|
+
required: false,
|
|
1503
|
+
localized: false,
|
|
1504
|
+
defaultCollapsed: true
|
|
1505
|
+
}
|
|
1506
|
+
]
|
|
1507
|
+
}
|
|
1508
|
+
]
|
|
1509
|
+
}
|
|
1510
|
+
]
|
|
1511
|
+
},
|
|
1512
|
+
{
|
|
1513
|
+
name: "cart",
|
|
1514
|
+
friendlyName: "Cart Page",
|
|
1515
|
+
type: "object",
|
|
1516
|
+
defaultCollapsed: true,
|
|
1517
|
+
localized: false,
|
|
1518
|
+
subFields: [
|
|
1519
|
+
{
|
|
1520
|
+
name: "continueShoppingUrl",
|
|
1521
|
+
friendlyName: "Continue Shopping URL",
|
|
1522
|
+
type: "url",
|
|
1523
|
+
required: false,
|
|
1524
|
+
localized: false,
|
|
1525
|
+
defaultCollapsed: true
|
|
1526
|
+
},
|
|
1527
|
+
{
|
|
1528
|
+
name: "imageContainerBGColor",
|
|
1529
|
+
friendlyName: "Background color for Image Container",
|
|
1530
|
+
type: "color",
|
|
1531
|
+
required: false,
|
|
1532
|
+
localized: false,
|
|
1533
|
+
defaultCollapsed: true
|
|
1534
|
+
},
|
|
1535
|
+
{
|
|
1536
|
+
name: "freeShippingBanner",
|
|
1537
|
+
friendlyName: "Free Shipping Banner Configuration",
|
|
1538
|
+
type: "object",
|
|
1539
|
+
defaultCollapsed: true,
|
|
1540
|
+
subFields: [
|
|
1541
|
+
{
|
|
1542
|
+
name: "isVisible",
|
|
1543
|
+
friendlyName: "Show Free Shipping Banner",
|
|
1544
|
+
type: "boolean",
|
|
1545
|
+
required: false,
|
|
1546
|
+
localized: true,
|
|
1547
|
+
defaultCollapsed: true
|
|
1548
|
+
},
|
|
1549
|
+
{
|
|
1550
|
+
name: "loggedOutBannerContent",
|
|
1551
|
+
friendlyName: "Logged Out Banner Content",
|
|
1552
|
+
type: "html",
|
|
1553
|
+
required: false,
|
|
1554
|
+
localized: true,
|
|
1555
|
+
defaultCollapsed: true
|
|
1556
|
+
},
|
|
1557
|
+
{
|
|
1558
|
+
name: "loggedInBannerContent",
|
|
1559
|
+
friendlyName: "Logged In Banner Content",
|
|
1560
|
+
type: "html",
|
|
1561
|
+
required: false,
|
|
1562
|
+
localized: true,
|
|
1563
|
+
defaultCollapsed: true
|
|
1564
|
+
},
|
|
1565
|
+
{
|
|
1566
|
+
name: "styles",
|
|
1567
|
+
friendlyName: "Styles",
|
|
1568
|
+
type: "object",
|
|
1569
|
+
defaultCollapsed: true,
|
|
1570
|
+
subFields: [
|
|
1571
|
+
{
|
|
1572
|
+
name: "backgroundColor",
|
|
1573
|
+
friendlyName: "Background Color",
|
|
1574
|
+
type: "color",
|
|
1575
|
+
required: false,
|
|
1576
|
+
localized: false,
|
|
1577
|
+
defaultCollapsed: true
|
|
1578
|
+
},
|
|
1579
|
+
{
|
|
1580
|
+
name: "color",
|
|
1581
|
+
friendlyName: "Color",
|
|
1582
|
+
type: "color",
|
|
1583
|
+
required: false,
|
|
1584
|
+
localized: false,
|
|
1585
|
+
defaultCollapsed: true
|
|
1586
|
+
}
|
|
1587
|
+
]
|
|
1588
|
+
}
|
|
1589
|
+
]
|
|
1590
|
+
},
|
|
1591
|
+
{
|
|
1592
|
+
name: "notices",
|
|
1593
|
+
friendlyName: "Cart Notices",
|
|
1594
|
+
type: "object",
|
|
1595
|
+
defaultCollapsed: true,
|
|
1596
|
+
subFields: [
|
|
1597
|
+
{
|
|
1598
|
+
name: "securePaymentNotice",
|
|
1599
|
+
friendlyName: "Secure Payment Notice",
|
|
1600
|
+
type: "object",
|
|
1601
|
+
defaultCollapsed: true,
|
|
1602
|
+
subFields: [
|
|
1603
|
+
{
|
|
1604
|
+
name: "isVisible",
|
|
1605
|
+
friendlyName: "Visible?",
|
|
1606
|
+
type: "boolean",
|
|
1607
|
+
localized: true,
|
|
1608
|
+
helperText: "Show the secure payment notice on the cart page",
|
|
1609
|
+
defaultCollapsed: true
|
|
1610
|
+
},
|
|
1611
|
+
{
|
|
1612
|
+
name: "text",
|
|
1613
|
+
friendlyName: "Text",
|
|
1614
|
+
type: "html",
|
|
1615
|
+
required: false,
|
|
1616
|
+
localized: true,
|
|
1617
|
+
helperText: "Content for the secure payment notice",
|
|
1618
|
+
defaultCollapsed: true
|
|
1619
|
+
},
|
|
1620
|
+
{
|
|
1621
|
+
name: "styles",
|
|
1622
|
+
friendlyName: "Styles",
|
|
1623
|
+
type: "object",
|
|
1624
|
+
helperText: "Styles for the secure payment notice",
|
|
1625
|
+
defaultCollapsed: true,
|
|
1626
|
+
subFields: [
|
|
1627
|
+
{
|
|
1628
|
+
name: "backgroundColor",
|
|
1629
|
+
friendlyName: "Background Color",
|
|
1630
|
+
type: "color",
|
|
1631
|
+
defaultCollapsed: true
|
|
1632
|
+
},
|
|
1633
|
+
{
|
|
1634
|
+
name: "color",
|
|
1635
|
+
friendlyName: "Color",
|
|
1636
|
+
type: "color",
|
|
1637
|
+
defaultCollapsed: true
|
|
1638
|
+
}
|
|
1639
|
+
]
|
|
1640
|
+
}
|
|
1641
|
+
]
|
|
1642
|
+
}
|
|
1643
|
+
]
|
|
1644
|
+
}
|
|
1645
|
+
]
|
|
1646
|
+
},
|
|
1647
|
+
{
|
|
1648
|
+
name: "checkout",
|
|
1649
|
+
friendlyName: "Checkout Page",
|
|
1650
|
+
type: "object",
|
|
1651
|
+
defaultCollapsed: true,
|
|
1652
|
+
localized: false,
|
|
1653
|
+
subFields: [
|
|
1654
|
+
{
|
|
1655
|
+
name: "freeShippingBanner",
|
|
1656
|
+
friendlyName: "Free Shipping Banner",
|
|
1657
|
+
type: "object",
|
|
1658
|
+
defaultCollapsed: true,
|
|
1659
|
+
subFields: [
|
|
1660
|
+
{
|
|
1661
|
+
name: "isVisible",
|
|
1662
|
+
friendlyName: "Visible?",
|
|
1663
|
+
type: "boolean",
|
|
1664
|
+
required: false,
|
|
1665
|
+
localized: true,
|
|
1666
|
+
helperText: "Show the free shipping banner on the checkout page",
|
|
1667
|
+
defaultCollapsed: true
|
|
1668
|
+
},
|
|
1669
|
+
{
|
|
1670
|
+
name: "loggedOutBannerContent",
|
|
1671
|
+
friendlyName: "Logged Out Banner Content",
|
|
1672
|
+
type: "html",
|
|
1673
|
+
required: false,
|
|
1674
|
+
localized: true,
|
|
1675
|
+
helperText: "Content for the free shipping banner when the user is not logged in",
|
|
1676
|
+
defaultCollapsed: true
|
|
1677
|
+
},
|
|
1678
|
+
{
|
|
1679
|
+
name: "loggedInBannerContent",
|
|
1680
|
+
friendlyName: "Logged In Banner Content",
|
|
1681
|
+
type: "html",
|
|
1682
|
+
required: false,
|
|
1683
|
+
localized: true,
|
|
1684
|
+
helperText: "Content for the free shipping banner when the user is logged in",
|
|
1685
|
+
defaultCollapsed: true
|
|
1686
|
+
}
|
|
1687
|
+
]
|
|
1688
|
+
},
|
|
1689
|
+
{
|
|
1690
|
+
name: "securePaymentNotice",
|
|
1691
|
+
friendlyName: "Secure Payment Notice",
|
|
1692
|
+
type: "object",
|
|
1693
|
+
defaultCollapsed: true,
|
|
1694
|
+
subFields: [
|
|
1695
|
+
{
|
|
1696
|
+
name: "isVisible",
|
|
1697
|
+
friendlyName: "Visible?",
|
|
1698
|
+
type: "boolean",
|
|
1699
|
+
required: false,
|
|
1700
|
+
localized: true,
|
|
1701
|
+
helperText: "Show the secure payment notice on the checkout page",
|
|
1702
|
+
defaultCollapsed: true
|
|
1703
|
+
},
|
|
1704
|
+
{
|
|
1705
|
+
name: "content",
|
|
1706
|
+
friendlyName: "Content",
|
|
1707
|
+
type: "html",
|
|
1708
|
+
required: false,
|
|
1709
|
+
localized: true,
|
|
1710
|
+
helperText: "Content for the secure payment notice",
|
|
1711
|
+
defaultCollapsed: true
|
|
1712
|
+
}
|
|
1713
|
+
]
|
|
1714
|
+
},
|
|
1715
|
+
{
|
|
1716
|
+
name: "autoSignUp",
|
|
1717
|
+
friendlyName: "Auto Sign Up",
|
|
1718
|
+
type: "object",
|
|
1719
|
+
defaultCollapsed: true,
|
|
1720
|
+
subFields: [
|
|
1721
|
+
{
|
|
1722
|
+
name: "isVisible",
|
|
1723
|
+
friendlyName: "Visible?",
|
|
1724
|
+
type: "boolean",
|
|
1725
|
+
required: false,
|
|
1726
|
+
localized: true,
|
|
1727
|
+
helperText: "Show the secure payment notice on the checkout page",
|
|
1728
|
+
defaultCollapsed: true
|
|
1729
|
+
},
|
|
1730
|
+
{
|
|
1731
|
+
name: "isChecked",
|
|
1732
|
+
friendlyName: "Checked by Default",
|
|
1733
|
+
type: "boolean",
|
|
1734
|
+
required: false,
|
|
1735
|
+
localized: true,
|
|
1736
|
+
helperText: "Whether the checkbox is checked by default",
|
|
1737
|
+
defaultCollapsed: true
|
|
1738
|
+
},
|
|
1739
|
+
{
|
|
1740
|
+
name: "labelText",
|
|
1741
|
+
friendlyName: "Label Text",
|
|
1742
|
+
type: "html",
|
|
1743
|
+
required: false,
|
|
1744
|
+
localized: true,
|
|
1745
|
+
helperText: "Text for the auto sign up checkbox",
|
|
1746
|
+
defaultCollapsed: true
|
|
1747
|
+
},
|
|
1748
|
+
{
|
|
1749
|
+
name: "helpModal",
|
|
1750
|
+
friendlyName: "Help Modal",
|
|
1751
|
+
type: "object",
|
|
1752
|
+
defaultCollapsed: true,
|
|
1753
|
+
subFields: [
|
|
1754
|
+
{
|
|
1755
|
+
name: "header",
|
|
1756
|
+
friendlyName: "Header",
|
|
1757
|
+
type: "html",
|
|
1758
|
+
required: false,
|
|
1759
|
+
localized: true,
|
|
1760
|
+
helperText: "Header content for the auto sign up help modal",
|
|
1761
|
+
defaultCollapsed: true
|
|
1762
|
+
},
|
|
1763
|
+
{
|
|
1764
|
+
name: "content",
|
|
1765
|
+
friendlyName: "Content",
|
|
1766
|
+
type: "html",
|
|
1767
|
+
required: false,
|
|
1768
|
+
localized: true,
|
|
1769
|
+
helperText: "Content for the auto sign up help modal",
|
|
1770
|
+
defaultCollapsed: true
|
|
1771
|
+
}
|
|
1772
|
+
]
|
|
1773
|
+
}
|
|
1774
|
+
]
|
|
1775
|
+
},
|
|
1776
|
+
{
|
|
1777
|
+
name: "smsOptIn",
|
|
1778
|
+
friendlyName: "SMS Opt In",
|
|
1779
|
+
helperText: "Use these settings to control whether you offer SMS sign up on the checkout form.",
|
|
1780
|
+
type: "object",
|
|
1781
|
+
defaultCollapsed: true,
|
|
1782
|
+
subFields: [
|
|
1783
|
+
{
|
|
1784
|
+
name: "isVisible",
|
|
1785
|
+
friendlyName: "Enabled?",
|
|
1786
|
+
type: "boolean",
|
|
1787
|
+
required: false,
|
|
1788
|
+
localized: true,
|
|
1789
|
+
helperText: "Show SMS opt-in at checkout to guests or returning customers who have not yet opted-in",
|
|
1790
|
+
defaultCollapsed: true
|
|
1791
|
+
},
|
|
1792
|
+
{
|
|
1793
|
+
name: "title",
|
|
1794
|
+
friendlyName: "Title",
|
|
1795
|
+
type: "text",
|
|
1796
|
+
required: false,
|
|
1797
|
+
localized: true,
|
|
1798
|
+
helperText: "The text to display on this section title",
|
|
1799
|
+
defaultCollapsed: true
|
|
1800
|
+
},
|
|
1801
|
+
{
|
|
1802
|
+
name: "content",
|
|
1803
|
+
friendlyName: "CTA Content",
|
|
1804
|
+
type: "html",
|
|
1805
|
+
required: false,
|
|
1806
|
+
localized: true,
|
|
1807
|
+
helperText: "Text for the SMS sign up CTA.",
|
|
1808
|
+
defaultCollapsed: true
|
|
1809
|
+
}
|
|
1810
|
+
]
|
|
1811
|
+
}
|
|
1812
|
+
]
|
|
1813
|
+
},
|
|
1814
|
+
{
|
|
1815
|
+
name: "orderDetails",
|
|
1816
|
+
friendlyName: "Order Details Page",
|
|
1817
|
+
type: "object",
|
|
1818
|
+
defaultCollapsed: true,
|
|
1819
|
+
localized: false,
|
|
1820
|
+
subFields: [
|
|
1821
|
+
{
|
|
1822
|
+
name: "title",
|
|
1823
|
+
friendlyName: "Title",
|
|
1824
|
+
type: "html",
|
|
1825
|
+
required: false,
|
|
1826
|
+
localized: true,
|
|
1827
|
+
helperText: "Title for the order details section on the checkout page",
|
|
1828
|
+
defaultCollapsed: true
|
|
1829
|
+
},
|
|
1830
|
+
{
|
|
1831
|
+
name: "tableHeaderStyle",
|
|
1832
|
+
friendlyName: "Table Header Style",
|
|
1833
|
+
type: "object",
|
|
1834
|
+
required: false,
|
|
1835
|
+
localized: false,
|
|
1836
|
+
helperText: "Style for the order details table header",
|
|
1837
|
+
defaultCollapsed: true,
|
|
1838
|
+
subFields: [
|
|
1839
|
+
{
|
|
1840
|
+
name: "color",
|
|
1841
|
+
friendlyName: "Color",
|
|
1842
|
+
type: "color",
|
|
1843
|
+
required: false,
|
|
1844
|
+
localized: false,
|
|
1845
|
+
helperText: "Text color for the order details table header",
|
|
1846
|
+
defaultCollapsed: true
|
|
1847
|
+
},
|
|
1848
|
+
{
|
|
1849
|
+
name: "backgroundColor",
|
|
1850
|
+
friendlyName: "Background Color",
|
|
1851
|
+
type: "color",
|
|
1852
|
+
required: false,
|
|
1853
|
+
localized: false,
|
|
1854
|
+
helperText: "Background color for the order details table header",
|
|
1855
|
+
defaultCollapsed: true
|
|
1856
|
+
}
|
|
1857
|
+
]
|
|
1858
|
+
},
|
|
1859
|
+
{
|
|
1860
|
+
name: "tableContentStyle",
|
|
1861
|
+
friendlyName: "Table Content Style",
|
|
1862
|
+
type: "object",
|
|
1863
|
+
required: false,
|
|
1864
|
+
localized: false,
|
|
1865
|
+
helperText: "Style for the order details table content",
|
|
1866
|
+
defaultCollapsed: true,
|
|
1867
|
+
subFields: [
|
|
1868
|
+
{
|
|
1869
|
+
name: "backgroundColor",
|
|
1870
|
+
friendlyName: "Background Color",
|
|
1871
|
+
type: "color",
|
|
1872
|
+
required: false,
|
|
1873
|
+
localized: false,
|
|
1874
|
+
helperText: "Background color for the order details table content",
|
|
1875
|
+
defaultCollapsed: true
|
|
1876
|
+
}
|
|
1877
|
+
]
|
|
1878
|
+
},
|
|
1879
|
+
{
|
|
1880
|
+
name: "buyItAgainButton",
|
|
1881
|
+
friendlyName: "Buy It Again Button",
|
|
1882
|
+
type: "object",
|
|
1883
|
+
required: false,
|
|
1884
|
+
localized: false,
|
|
1885
|
+
defaultCollapsed: true,
|
|
1886
|
+
helperText: 'Configuration for the "Buy It Again" button in the order details section',
|
|
1887
|
+
subFields: [
|
|
1888
|
+
{
|
|
1889
|
+
name: "text",
|
|
1890
|
+
friendlyName: "Button Text",
|
|
1891
|
+
type: "html",
|
|
1892
|
+
required: false,
|
|
1893
|
+
localized: true,
|
|
1894
|
+
helperText: 'Text to display on the "Buy It Again" button',
|
|
1895
|
+
defaultCollapsed: true
|
|
1896
|
+
},
|
|
1897
|
+
{
|
|
1898
|
+
name: "classes",
|
|
1899
|
+
friendlyName: "Classes",
|
|
1900
|
+
type: "text",
|
|
1901
|
+
required: false,
|
|
1902
|
+
localized: false,
|
|
1903
|
+
helperText: 'CSS classes to apply to the "Buy It Again" button',
|
|
1904
|
+
defaultCollapsed: true
|
|
1905
|
+
}
|
|
1906
|
+
]
|
|
1907
|
+
},
|
|
1908
|
+
{
|
|
1909
|
+
name: "reOrderAllButton",
|
|
1910
|
+
friendlyName: "Re-Order All Button",
|
|
1911
|
+
type: "object",
|
|
1912
|
+
required: false,
|
|
1913
|
+
localized: false,
|
|
1914
|
+
defaultCollapsed: true,
|
|
1915
|
+
helperText: 'Configuration for the "Re-Order All" button in the order details section',
|
|
1916
|
+
subFields: [
|
|
1917
|
+
{
|
|
1918
|
+
name: "text",
|
|
1919
|
+
friendlyName: "Button Text",
|
|
1920
|
+
type: "html",
|
|
1921
|
+
required: false,
|
|
1922
|
+
localized: true,
|
|
1923
|
+
helperText: 'Text to display on the "Re-Order All" button',
|
|
1924
|
+
defaultCollapsed: true
|
|
1925
|
+
},
|
|
1926
|
+
{
|
|
1927
|
+
name: "classes",
|
|
1928
|
+
friendlyName: "Classes",
|
|
1929
|
+
type: "text",
|
|
1930
|
+
required: false,
|
|
1931
|
+
localized: false,
|
|
1932
|
+
helperText: 'CSS classes to apply to the "Re-Order All" button',
|
|
1933
|
+
defaultCollapsed: true
|
|
1934
|
+
}
|
|
1935
|
+
]
|
|
1936
|
+
}
|
|
1937
|
+
]
|
|
1938
|
+
},
|
|
1939
|
+
{
|
|
1940
|
+
name: "resetPassword",
|
|
1941
|
+
friendlyName: "Reset Password Page",
|
|
1942
|
+
type: "object",
|
|
1943
|
+
defaultCollapsed: true,
|
|
1944
|
+
localized: false,
|
|
1945
|
+
subFields: [
|
|
1946
|
+
{
|
|
1947
|
+
name: "title",
|
|
1948
|
+
friendlyName: "Page Title",
|
|
1949
|
+
type: "html",
|
|
1950
|
+
required: false,
|
|
1951
|
+
localized: true,
|
|
1952
|
+
helperText: "Title for the reset password page",
|
|
1953
|
+
defaultCollapsed: true
|
|
1954
|
+
}
|
|
1955
|
+
]
|
|
1956
|
+
},
|
|
1957
|
+
{
|
|
1958
|
+
name: "subscriptionCancel",
|
|
1959
|
+
friendlyName: "Subscription Cancellation Page",
|
|
1960
|
+
type: "object",
|
|
1961
|
+
defaultCollapsed: true,
|
|
1962
|
+
localized: false,
|
|
1963
|
+
subFields: [
|
|
1964
|
+
{
|
|
1965
|
+
name: "cancelText",
|
|
1966
|
+
friendlyName: "Cancel Text",
|
|
1967
|
+
type: "html",
|
|
1968
|
+
required: false,
|
|
1969
|
+
localized: true,
|
|
1970
|
+
helperText: "Text displayed on the subscription cancellation page",
|
|
1971
|
+
defaultCollapsed: true
|
|
1972
|
+
},
|
|
1973
|
+
{
|
|
1974
|
+
name: "cancelReasons",
|
|
1975
|
+
friendlyName: "Cancel Reasons",
|
|
1976
|
+
type: "list",
|
|
1977
|
+
required: false,
|
|
1978
|
+
localized: true,
|
|
1979
|
+
defaultCollapsed: true,
|
|
1980
|
+
helperText: "List of reasons for subscription cancellation",
|
|
1981
|
+
subFields: [
|
|
1982
|
+
{
|
|
1983
|
+
name: "title",
|
|
1984
|
+
friendlyName: "Reason",
|
|
1985
|
+
type: "text",
|
|
1986
|
+
required: true,
|
|
1987
|
+
helperText: "The reason for cancellation.",
|
|
1988
|
+
localized: true,
|
|
1989
|
+
makeEntryTitle: true,
|
|
1990
|
+
defaultCollapsed: true
|
|
1991
|
+
},
|
|
1992
|
+
{
|
|
1993
|
+
name: "text",
|
|
1994
|
+
friendlyName: "Display Content",
|
|
1995
|
+
type: "html",
|
|
1996
|
+
required: false,
|
|
1997
|
+
helperText: "This is the content that will be displayed for this cancellation reason",
|
|
1998
|
+
localized: true,
|
|
1999
|
+
defaultCollapsed: true
|
|
2000
|
+
},
|
|
2001
|
+
{
|
|
2002
|
+
name: "identifier",
|
|
2003
|
+
friendlyName: "Identifier",
|
|
2004
|
+
type: "select",
|
|
2005
|
+
required: true,
|
|
2006
|
+
defaultCollapsed: true,
|
|
2007
|
+
helperText: "",
|
|
2008
|
+
enum: [
|
|
2009
|
+
"DoNotLike" /* DoNotLike */,
|
|
2010
|
+
"NotWorking" /* NotWorking */,
|
|
2011
|
+
"NoBenefits" /* NoBenefits */,
|
|
2012
|
+
"NoFitNoNeed" /* NoFitNoNeed */,
|
|
2013
|
+
"Budget" /* Budget */,
|
|
2014
|
+
"Mistake" /* Mistake */,
|
|
2015
|
+
"Try" /* Try */,
|
|
2016
|
+
"TooMuch" /* TooMuch */,
|
|
2017
|
+
"TravelMove" /* TravelMove */,
|
|
2018
|
+
"DoNotNeed" /* DoNotNeed */,
|
|
2019
|
+
"AnotherReason" /* AnotherReason */,
|
|
2020
|
+
"NotHelpingSkin" /* NotHelpingSkin */,
|
|
2021
|
+
"SkinImproved" /* SkinImproved */,
|
|
2022
|
+
"PetDoesNotLike" /* PetDoesNotLike */,
|
|
2023
|
+
"NotHelpingPet" /* NotHelpingPet */,
|
|
2024
|
+
"NoneGiven" /* NoneGiven */
|
|
2025
|
+
]
|
|
2026
|
+
},
|
|
2027
|
+
{
|
|
2028
|
+
name: "buttons",
|
|
2029
|
+
friendlyName: "Buttons",
|
|
2030
|
+
type: "list",
|
|
2031
|
+
required: false,
|
|
2032
|
+
defaultCollapsed: true,
|
|
2033
|
+
subFields: [
|
|
2034
|
+
{
|
|
2035
|
+
name: "text",
|
|
2036
|
+
friendlyName: "Button Text",
|
|
2037
|
+
type: "text",
|
|
2038
|
+
required: false,
|
|
2039
|
+
helperText: "Text to display on the button",
|
|
2040
|
+
defaultCollapsed: true
|
|
2041
|
+
},
|
|
2042
|
+
{
|
|
2043
|
+
name: "link",
|
|
2044
|
+
friendlyName: "Button Link",
|
|
2045
|
+
type: "url",
|
|
2046
|
+
required: false,
|
|
2047
|
+
helperText: "",
|
|
2048
|
+
defaultCollapsed: true
|
|
2049
|
+
},
|
|
2050
|
+
{
|
|
2051
|
+
name: "type",
|
|
2052
|
+
type: "select",
|
|
2053
|
+
friendlyName: "Button Type",
|
|
2054
|
+
required: false,
|
|
2055
|
+
helperText: "",
|
|
2056
|
+
enum: [
|
|
2057
|
+
"link" /* Link */,
|
|
2058
|
+
"update" /* Update */,
|
|
2059
|
+
"keep" /* Keep */,
|
|
2060
|
+
"continue" /* Continue */,
|
|
2061
|
+
"cancel" /* Cancel */
|
|
2062
|
+
],
|
|
2063
|
+
defaultValue: "link",
|
|
2064
|
+
defaultCollapsed: true
|
|
2065
|
+
}
|
|
2066
|
+
],
|
|
2067
|
+
helperText: "Buttons to display for this cancellation reason."
|
|
2068
|
+
}
|
|
2069
|
+
]
|
|
2070
|
+
}
|
|
2071
|
+
]
|
|
2072
|
+
},
|
|
2073
|
+
{
|
|
2074
|
+
name: "subscriptionEdit",
|
|
2075
|
+
friendlyName: "Subscription Edit",
|
|
2076
|
+
type: "object",
|
|
2077
|
+
defaultCollapsed: true,
|
|
2078
|
+
localized: false,
|
|
2079
|
+
subFields: [
|
|
2080
|
+
{
|
|
2081
|
+
name: "subscriptionItemDefaultImage",
|
|
2082
|
+
friendlyName: "Subscription Item Default Image",
|
|
2083
|
+
type: "file",
|
|
2084
|
+
showTemplatePicker: true,
|
|
2085
|
+
allowedFileTypes: ["jpeg", "png", "svg", "webp"],
|
|
2086
|
+
required: false,
|
|
2087
|
+
localized: false,
|
|
2088
|
+
defaultCollapsed: true,
|
|
2089
|
+
helperText: "Default image to display for subscription items"
|
|
2090
|
+
},
|
|
2091
|
+
{
|
|
2092
|
+
name: "shipNow",
|
|
2093
|
+
friendlyName: "Ship Now",
|
|
2094
|
+
type: "object",
|
|
2095
|
+
required: false,
|
|
2096
|
+
defaultCollapsed: true,
|
|
2097
|
+
localized: false,
|
|
2098
|
+
subFields: [
|
|
2099
|
+
{
|
|
2100
|
+
name: "modalHeadlineContent",
|
|
2101
|
+
friendlyName: "Modal Headline Content",
|
|
2102
|
+
type: "html",
|
|
2103
|
+
required: true,
|
|
2104
|
+
helperText: "Headline text displayed in the Ship Now modal",
|
|
2105
|
+
localized: true,
|
|
2106
|
+
defaultCollapsed: true
|
|
2107
|
+
},
|
|
2108
|
+
{
|
|
2109
|
+
name: "modalContent",
|
|
2110
|
+
friendlyName: "Modal Content",
|
|
2111
|
+
type: "html",
|
|
2112
|
+
required: true,
|
|
2113
|
+
helperText: "Main content displayed in the Ship Now modal. You can use $FREQUENCY and it will be replaced with the frequency of the subscription.",
|
|
2114
|
+
localized: true,
|
|
2115
|
+
defaultCollapsed: true
|
|
2116
|
+
}
|
|
2117
|
+
]
|
|
2118
|
+
}
|
|
2119
|
+
]
|
|
2120
|
+
},
|
|
2121
|
+
{
|
|
2122
|
+
name: "upsell",
|
|
2123
|
+
friendlyName: "Upsell Page",
|
|
2124
|
+
type: "object",
|
|
2125
|
+
defaultCollapsed: true,
|
|
2126
|
+
localized: false,
|
|
2127
|
+
subFields: [
|
|
2128
|
+
{
|
|
2129
|
+
name: "mbgImage",
|
|
2130
|
+
friendlyName: "Money Back Guarantee Image",
|
|
2131
|
+
type: "file",
|
|
2132
|
+
showTemplatePicker: true,
|
|
2133
|
+
allowedFileTypes: ["jpeg", "png", "svg", "webp"],
|
|
2134
|
+
required: false,
|
|
2135
|
+
localized: true,
|
|
2136
|
+
defaultCollapsed: true,
|
|
2137
|
+
helperText: "Image displayed on the upsell page for the money back guarantee"
|
|
2138
|
+
},
|
|
2139
|
+
{
|
|
2140
|
+
name: "mbgText",
|
|
2141
|
+
friendlyName: "Money Back Guarantee Text",
|
|
2142
|
+
type: "html",
|
|
2143
|
+
required: false,
|
|
2144
|
+
localized: true,
|
|
2145
|
+
defaultCollapsed: true,
|
|
2146
|
+
helperText: "Text displayed on the upsell page for the money back guarantee"
|
|
2147
|
+
}
|
|
2148
|
+
]
|
|
2149
|
+
}
|
|
2150
|
+
]
|
|
2151
|
+
};
|
|
2152
|
+
};
|
|
2153
|
+
|
|
2154
|
+
// src/data/brand-config/sections/cookie-config.ts
|
|
2155
|
+
var createCookieConfig = () => {
|
|
2156
|
+
return {
|
|
2157
|
+
name: "cookieConfig",
|
|
2158
|
+
friendlyName: "Cookie Configuration",
|
|
2159
|
+
type: "object",
|
|
2160
|
+
defaultCollapsed: true,
|
|
2161
|
+
subFields: [
|
|
2162
|
+
{
|
|
2163
|
+
name: "popupBanner",
|
|
2164
|
+
friendlyName: "Cookie Policy Popup Banner",
|
|
2165
|
+
type: "object",
|
|
2166
|
+
defaultCollapsed: true,
|
|
2167
|
+
helperText: "Configure the cookie policy popup banner",
|
|
2168
|
+
subFields: [
|
|
2169
|
+
{
|
|
2170
|
+
name: "content",
|
|
2171
|
+
friendlyName: "Content",
|
|
2172
|
+
type: "html",
|
|
2173
|
+
localized: true,
|
|
2174
|
+
defaultCollapsed: true,
|
|
2175
|
+
helperText: "Content for the cookie policy popup banner"
|
|
2176
|
+
},
|
|
2177
|
+
{
|
|
2178
|
+
name: "bannerStyles",
|
|
2179
|
+
friendlyName: "Banner Styles",
|
|
2180
|
+
type: "object",
|
|
2181
|
+
defaultCollapsed: true,
|
|
2182
|
+
subFields: [
|
|
2183
|
+
{
|
|
2184
|
+
name: "backgroundColor",
|
|
2185
|
+
friendlyName: "Background Color",
|
|
2186
|
+
type: "color",
|
|
2187
|
+
required: false,
|
|
2188
|
+
defaultCollapsed: true
|
|
2189
|
+
},
|
|
2190
|
+
{
|
|
2191
|
+
name: "borderRadius",
|
|
2192
|
+
friendlyName: "Border Radius",
|
|
2193
|
+
type: "text",
|
|
2194
|
+
required: false,
|
|
2195
|
+
defaultCollapsed: true
|
|
2196
|
+
}
|
|
2197
|
+
]
|
|
2198
|
+
},
|
|
2199
|
+
{
|
|
2200
|
+
name: "buttonStyles",
|
|
2201
|
+
friendlyName: "Button Styles",
|
|
2202
|
+
type: "object",
|
|
2203
|
+
defaultCollapsed: true,
|
|
2204
|
+
subFields: [
|
|
2205
|
+
{
|
|
2206
|
+
name: "backgroundColor",
|
|
2207
|
+
friendlyName: "Background Color",
|
|
2208
|
+
type: "color",
|
|
2209
|
+
required: false,
|
|
2210
|
+
defaultCollapsed: true
|
|
2211
|
+
},
|
|
2212
|
+
{
|
|
2213
|
+
name: "color",
|
|
2214
|
+
friendlyName: "Color",
|
|
2215
|
+
type: "color",
|
|
2216
|
+
required: false,
|
|
2217
|
+
defaultCollapsed: true
|
|
2218
|
+
}
|
|
2219
|
+
]
|
|
2220
|
+
}
|
|
2221
|
+
]
|
|
2222
|
+
}
|
|
2223
|
+
]
|
|
2224
|
+
};
|
|
2225
|
+
};
|
|
2226
|
+
|
|
2227
|
+
// src/data/brand-config/sections/general-config.ts
|
|
2228
|
+
var createGeneralConfig = (bannerModelId) => {
|
|
2229
|
+
return [
|
|
2230
|
+
{
|
|
2231
|
+
name: "brandDisplayName",
|
|
2232
|
+
friendlyName: "Brand Display Name",
|
|
2233
|
+
type: "text",
|
|
2234
|
+
defaultCollapsed: true,
|
|
2235
|
+
localized: false,
|
|
2236
|
+
required: true
|
|
2237
|
+
},
|
|
2238
|
+
{
|
|
2239
|
+
name: "images",
|
|
2240
|
+
friendlyName: "Brand Images",
|
|
2241
|
+
type: "object",
|
|
2242
|
+
defaultCollapsed: true,
|
|
2243
|
+
localized: false,
|
|
2244
|
+
subFields: [
|
|
2245
|
+
{
|
|
2246
|
+
name: "brandLogoSmall",
|
|
2247
|
+
friendlyName: "Logo (Small)",
|
|
2248
|
+
type: "file",
|
|
2249
|
+
showTemplatePicker: true,
|
|
2250
|
+
allowedFileTypes: ["jpeg", "png", "svg", "webp"],
|
|
2251
|
+
localized: true,
|
|
2252
|
+
helperText: "Small logo for the brand",
|
|
2253
|
+
defaultCollapsed: true
|
|
2254
|
+
},
|
|
2255
|
+
{
|
|
2256
|
+
name: "brandLogoLarge",
|
|
2257
|
+
friendlyName: "Logo (Large)",
|
|
2258
|
+
type: "file",
|
|
2259
|
+
showTemplatePicker: true,
|
|
2260
|
+
allowedFileTypes: ["jpeg", "png", "svg", "webp"],
|
|
2261
|
+
localized: true,
|
|
2262
|
+
helperText: "Large logo for the brand",
|
|
2263
|
+
defaultCollapsed: true
|
|
2264
|
+
},
|
|
2265
|
+
{
|
|
2266
|
+
name: "brandLogoFooter",
|
|
2267
|
+
friendlyName: "Logo (Footer)",
|
|
2268
|
+
type: "file",
|
|
2269
|
+
showTemplatePicker: true,
|
|
2270
|
+
allowedFileTypes: ["jpeg", "png", "svg", "webp"],
|
|
2271
|
+
localized: true,
|
|
2272
|
+
helperText: "Footer logo for the brand",
|
|
2273
|
+
defaultCollapsed: true
|
|
2274
|
+
},
|
|
2275
|
+
{
|
|
2276
|
+
name: "bbbImage",
|
|
2277
|
+
friendlyName: "BBB Image",
|
|
2278
|
+
type: "file",
|
|
2279
|
+
showTemplatePicker: true,
|
|
2280
|
+
allowedFileTypes: ["jpeg", "png", "svg", "webp"],
|
|
2281
|
+
localized: true,
|
|
2282
|
+
helperText: "BBB logo for the brand",
|
|
2283
|
+
defaultCollapsed: true
|
|
2284
|
+
},
|
|
2285
|
+
{
|
|
2286
|
+
name: "accesibilityLogo",
|
|
2287
|
+
friendlyName: "Accessibility Logo",
|
|
2288
|
+
type: "file",
|
|
2289
|
+
showTemplatePicker: true,
|
|
2290
|
+
allowedFileTypes: ["jpeg", "png", "svg", "webp"],
|
|
2291
|
+
localized: true,
|
|
2292
|
+
helperText: "Accessibility logo for the brand",
|
|
2293
|
+
defaultCollapsed: true
|
|
2294
|
+
},
|
|
2295
|
+
{
|
|
2296
|
+
name: "brandLogoOffWhite",
|
|
2297
|
+
friendlyName: "Logo (Off-White)",
|
|
2298
|
+
type: "file",
|
|
2299
|
+
showTemplatePicker: true,
|
|
2300
|
+
allowedFileTypes: ["jpeg", "png", "svg", "webp"],
|
|
2301
|
+
localized: true,
|
|
2302
|
+
helperText: "Off white logo for the brand",
|
|
2303
|
+
defaultCollapsed: true
|
|
2304
|
+
},
|
|
2305
|
+
{
|
|
2306
|
+
name: "defaultPetProfileImage",
|
|
2307
|
+
friendlyName: "Default Pet Profile Image",
|
|
2308
|
+
type: "file",
|
|
2309
|
+
showTemplatePicker: true,
|
|
2310
|
+
allowedFileTypes: ["jpeg", "png", "svg", "webp"],
|
|
2311
|
+
localized: true,
|
|
2312
|
+
helperText: "Default image for pet profiles",
|
|
2313
|
+
defaultCollapsed: true
|
|
2314
|
+
},
|
|
2315
|
+
{
|
|
2316
|
+
name: "defaultCatProfileImage",
|
|
2317
|
+
friendlyName: "Default Cat Profile Image",
|
|
2318
|
+
type: "file",
|
|
2319
|
+
showTemplatePicker: true,
|
|
2320
|
+
allowedFileTypes: ["jpeg", "png", "svg", "webp"],
|
|
2321
|
+
localized: true,
|
|
2322
|
+
helperText: "Default image for cat profiles",
|
|
2323
|
+
defaultCollapsed: true
|
|
2324
|
+
},
|
|
2325
|
+
{
|
|
2326
|
+
name: "defaultDogProfileImage",
|
|
2327
|
+
friendlyName: "Default Dog Profile Image",
|
|
2328
|
+
type: "file",
|
|
2329
|
+
showTemplatePicker: true,
|
|
2330
|
+
allowedFileTypes: ["jpeg", "png", "svg", "webp"],
|
|
2331
|
+
localized: true,
|
|
2332
|
+
helperText: "Default image for dog profiles",
|
|
2333
|
+
defaultCollapsed: true
|
|
2334
|
+
},
|
|
2335
|
+
{
|
|
2336
|
+
name: "linklessPageHeaderLogo",
|
|
2337
|
+
friendlyName: "Linkless Header Image",
|
|
2338
|
+
type: "file",
|
|
2339
|
+
showTemplatePicker: true,
|
|
2340
|
+
allowedFileTypes: ["jpeg", "png", "svg", "webp"],
|
|
2341
|
+
localized: true,
|
|
2342
|
+
helperText: "Logo Image for the linkless header",
|
|
2343
|
+
defaultCollapsed: true
|
|
2344
|
+
}
|
|
2345
|
+
]
|
|
2346
|
+
},
|
|
2347
|
+
{
|
|
2348
|
+
name: "links",
|
|
2349
|
+
friendlyName: "General Links",
|
|
2350
|
+
type: "object",
|
|
2351
|
+
defaultCollapsed: true,
|
|
2352
|
+
localized: false,
|
|
2353
|
+
subFields: [
|
|
2354
|
+
{
|
|
2355
|
+
name: "termsLink",
|
|
2356
|
+
friendlyName: "Terms of Service Link",
|
|
2357
|
+
type: "url",
|
|
2358
|
+
localized: false,
|
|
2359
|
+
helperText: "Link to the terms of service page",
|
|
2360
|
+
defaultCollapsed: true
|
|
2361
|
+
},
|
|
2362
|
+
{
|
|
2363
|
+
name: "subscriptionTermsLink",
|
|
2364
|
+
friendlyName: "Subscription Terms of Service Link",
|
|
2365
|
+
type: "url",
|
|
2366
|
+
localized: false,
|
|
2367
|
+
helperText: "Link to the subscription terms of service page",
|
|
2368
|
+
defaultCollapsed: true
|
|
2369
|
+
},
|
|
2370
|
+
{
|
|
2371
|
+
name: "privacyLink",
|
|
2372
|
+
friendlyName: "Privacy Policy Link",
|
|
2373
|
+
type: "url",
|
|
2374
|
+
localized: false,
|
|
2375
|
+
helperText: "Link to the privacy policy page",
|
|
2376
|
+
defaultCollapsed: true
|
|
2377
|
+
},
|
|
2378
|
+
{
|
|
2379
|
+
name: "ccpaLink",
|
|
2380
|
+
friendlyName: "CCPA Link",
|
|
2381
|
+
type: "url",
|
|
2382
|
+
localized: false,
|
|
2383
|
+
helperText: "Link to the CCPA page",
|
|
2384
|
+
defaultCollapsed: true
|
|
2385
|
+
},
|
|
2386
|
+
{
|
|
2387
|
+
name: "bbbLink",
|
|
2388
|
+
friendlyName: "BBB Link",
|
|
2389
|
+
type: "url",
|
|
2390
|
+
localized: false,
|
|
2391
|
+
helperText: "Link to the Better Business Bureau page",
|
|
2392
|
+
defaultCollapsed: true
|
|
2393
|
+
},
|
|
2394
|
+
{
|
|
2395
|
+
name: "accessibiltyLink",
|
|
2396
|
+
friendlyName: "Accessibility Link",
|
|
2397
|
+
type: "url",
|
|
2398
|
+
localized: false,
|
|
2399
|
+
helperText: "Link to the accessibility page",
|
|
2400
|
+
defaultCollapsed: true
|
|
2401
|
+
},
|
|
2402
|
+
{
|
|
2403
|
+
name: "socialMedia",
|
|
2404
|
+
friendlyName: "Social Media Links",
|
|
2405
|
+
type: "object",
|
|
2406
|
+
localized: false,
|
|
2407
|
+
helperText: "",
|
|
2408
|
+
defaultCollapsed: true,
|
|
2409
|
+
subFields: [
|
|
2410
|
+
{
|
|
2411
|
+
name: "twitter",
|
|
2412
|
+
friendlyName: "Twitter",
|
|
2413
|
+
type: "url",
|
|
2414
|
+
localized: false,
|
|
2415
|
+
helperText: "",
|
|
2416
|
+
defaultCollapsed: true
|
|
2417
|
+
},
|
|
2418
|
+
{
|
|
2419
|
+
name: "facebook",
|
|
2420
|
+
friendlyName: "Facebook",
|
|
2421
|
+
type: "url",
|
|
2422
|
+
localized: false,
|
|
2423
|
+
helperText: "",
|
|
2424
|
+
defaultCollapsed: true
|
|
2425
|
+
},
|
|
2426
|
+
{
|
|
2427
|
+
name: "youtube",
|
|
2428
|
+
friendlyName: "Youtube",
|
|
2429
|
+
type: "url",
|
|
2430
|
+
localized: false,
|
|
2431
|
+
helperText: "",
|
|
2432
|
+
defaultCollapsed: true
|
|
2433
|
+
},
|
|
2434
|
+
{
|
|
2435
|
+
name: "instagram",
|
|
2436
|
+
friendlyName: "Instagram",
|
|
2437
|
+
type: "url",
|
|
2438
|
+
localized: false,
|
|
2439
|
+
helperText: "",
|
|
2440
|
+
defaultCollapsed: true
|
|
2441
|
+
},
|
|
2442
|
+
{
|
|
2443
|
+
name: "pinterest",
|
|
2444
|
+
friendlyName: "Pinterest",
|
|
2445
|
+
type: "url",
|
|
2446
|
+
localized: false,
|
|
2447
|
+
helperText: "",
|
|
2448
|
+
defaultCollapsed: true
|
|
2449
|
+
},
|
|
2450
|
+
{
|
|
2451
|
+
name: "tiktok",
|
|
2452
|
+
friendlyName: "Tiktok",
|
|
2453
|
+
type: "url",
|
|
2454
|
+
localized: false,
|
|
2455
|
+
helperText: "",
|
|
2456
|
+
defaultCollapsed: true
|
|
2457
|
+
}
|
|
2458
|
+
]
|
|
2459
|
+
}
|
|
2460
|
+
]
|
|
2461
|
+
},
|
|
2462
|
+
{
|
|
2463
|
+
name: "banners",
|
|
2464
|
+
friendlyName: "Banners",
|
|
2465
|
+
helperText: `Select the banner(s) to display site-wide. These will be displayed in the
|
|
2466
|
+
order provided, and always above page-specific announcements`,
|
|
2467
|
+
type: "list",
|
|
2468
|
+
defaultCollapsed: true,
|
|
2469
|
+
localized: false,
|
|
2470
|
+
subFields: [
|
|
2471
|
+
{
|
|
2472
|
+
name: "banner",
|
|
2473
|
+
friendlyName: "Sitewide Banner",
|
|
2474
|
+
type: "reference",
|
|
2475
|
+
localized: false,
|
|
2476
|
+
helperText: "Select the banner to display.",
|
|
2477
|
+
defaultCollapsed: true,
|
|
2478
|
+
modelId: bannerModelId,
|
|
2479
|
+
copyOnAdd: false
|
|
2480
|
+
},
|
|
2481
|
+
{
|
|
2482
|
+
name: "alwaysShow",
|
|
2483
|
+
friendlyName: "Always Show?",
|
|
2484
|
+
type: "boolean",
|
|
2485
|
+
localized: false,
|
|
2486
|
+
helperText: 'By default, we hide sitewide banners on the classic "cart" pages. Use this setting to bypass those restrictions',
|
|
2487
|
+
defaultCollapsed: true
|
|
2488
|
+
}
|
|
2489
|
+
]
|
|
2490
|
+
}
|
|
2491
|
+
];
|
|
2492
|
+
};
|
|
2493
|
+
|
|
2494
|
+
// src/data/brand-config/index.ts
|
|
2495
|
+
var createBrandConfigModel = (gridFilterModelId, bannerModelId) => {
|
|
2496
|
+
return {
|
|
2497
|
+
name: "gh-brand-config",
|
|
2498
|
+
kind: "data",
|
|
2499
|
+
displayName: "Brand Configuration",
|
|
2500
|
+
helperText: "Manage global features and settings for your website",
|
|
2501
|
+
contentTitleField: void 0,
|
|
2502
|
+
fields: [
|
|
2503
|
+
...createGeneralConfig(bannerModelId),
|
|
2504
|
+
createHeaderConfig(),
|
|
2505
|
+
createFooterConfig(),
|
|
2506
|
+
createFeatureConfig(gridFilterModelId),
|
|
2507
|
+
createSupportConfig(),
|
|
2508
|
+
createPageConfig(),
|
|
2509
|
+
createCookieConfig()
|
|
2510
|
+
]
|
|
2511
|
+
};
|
|
2512
|
+
};
|
|
2513
|
+
|
|
2514
|
+
// src/data/blog-category.model.ts
|
|
2515
|
+
var createBlogCategoryModel = () => ({
|
|
2516
|
+
name: "blog-category",
|
|
2517
|
+
displayName: "Blog Category",
|
|
2518
|
+
kind: "data",
|
|
2519
|
+
helperText: "Category for blog categorization",
|
|
2520
|
+
contentTitleField: void 0,
|
|
2521
|
+
fields: [
|
|
2522
|
+
{
|
|
2523
|
+
name: "name",
|
|
2524
|
+
friendlyName: "Name",
|
|
2525
|
+
helperText: "Name of the category",
|
|
2526
|
+
type: "text",
|
|
2527
|
+
defaultCollapsed: false,
|
|
2528
|
+
localized: true,
|
|
2529
|
+
required: true
|
|
2530
|
+
},
|
|
2531
|
+
{
|
|
2532
|
+
name: "description",
|
|
2533
|
+
friendlyName: "Category Description",
|
|
2534
|
+
helperText: "Provide a description of the category. This may be used in components.",
|
|
2535
|
+
type: "html",
|
|
2536
|
+
defaultCollapsed: false,
|
|
2537
|
+
localized: true,
|
|
2538
|
+
required: false
|
|
2539
|
+
},
|
|
2540
|
+
{
|
|
2541
|
+
name: "slug",
|
|
2542
|
+
friendlyName: "Slug",
|
|
2543
|
+
helperText: "Path to use for linking to this category",
|
|
2544
|
+
type: "text",
|
|
2545
|
+
defaultCollapsed: false,
|
|
2546
|
+
localized: false,
|
|
2547
|
+
required: true
|
|
2548
|
+
},
|
|
2549
|
+
{
|
|
2550
|
+
name: "parentId",
|
|
2551
|
+
friendlyName: "Parent Category Id",
|
|
2552
|
+
helperText: "If this category is a child, provide the Id of the parent category",
|
|
2553
|
+
type: "text",
|
|
2554
|
+
required: false,
|
|
2555
|
+
defaultCollapsed: true,
|
|
2556
|
+
localized: false
|
|
2557
|
+
}
|
|
2558
|
+
]
|
|
2559
|
+
});
|
|
2560
|
+
|
|
2561
|
+
// src/data/blog-comment.model.ts
|
|
2562
|
+
var BlogCommentModel = {
|
|
2563
|
+
name: "blog-comment",
|
|
2564
|
+
displayName: "Blog Comment",
|
|
2565
|
+
kind: "data",
|
|
2566
|
+
helperText: `Comments on your website's blogs`,
|
|
2567
|
+
contentTitleField: void 0,
|
|
2568
|
+
fields: [
|
|
2569
|
+
{
|
|
2570
|
+
name: "name",
|
|
2571
|
+
friendlyName: "Name",
|
|
2572
|
+
helperText: "Name of the user who submitted this comment",
|
|
2573
|
+
type: "text",
|
|
2574
|
+
defaultCollapsed: false,
|
|
2575
|
+
localized: false,
|
|
2576
|
+
required: true
|
|
2577
|
+
},
|
|
2578
|
+
{
|
|
2579
|
+
name: "date",
|
|
2580
|
+
friendlyName: "Date",
|
|
2581
|
+
helperText: "Date this comment was submitted",
|
|
2582
|
+
type: "timestamp",
|
|
2583
|
+
defaultCollapsed: false,
|
|
2584
|
+
localized: false,
|
|
2585
|
+
required: true
|
|
2586
|
+
},
|
|
2587
|
+
{
|
|
2588
|
+
name: "status",
|
|
2589
|
+
friendlyName: "Status",
|
|
2590
|
+
helperText: `Select the status of this comment. Only Approved comments will be displayed`,
|
|
2591
|
+
type: "select",
|
|
2592
|
+
enum: ["Pending Approval", "Approved", "Rejected"],
|
|
2593
|
+
defaultValue: "Pending Approval",
|
|
2594
|
+
defaultCollapsed: false,
|
|
2595
|
+
localized: false,
|
|
2596
|
+
required: true
|
|
2597
|
+
},
|
|
2598
|
+
{
|
|
2599
|
+
type: "text",
|
|
2600
|
+
name: "email",
|
|
2601
|
+
friendlyName: "Email",
|
|
2602
|
+
required: false,
|
|
2603
|
+
defaultCollapsed: false
|
|
2604
|
+
},
|
|
2605
|
+
{
|
|
2606
|
+
type: "html",
|
|
2607
|
+
name: "comment",
|
|
2608
|
+
friendlyName: "Comment",
|
|
2609
|
+
helperText: "HTML content of the comment",
|
|
2610
|
+
required: true,
|
|
2611
|
+
defaultCollapsed: false
|
|
2612
|
+
},
|
|
2613
|
+
{
|
|
2614
|
+
name: "language",
|
|
2615
|
+
friendlyName: "Language",
|
|
2616
|
+
helperText: `The language code of this comment. Legacy comments are synced as 'en'`,
|
|
2617
|
+
type: "select",
|
|
2618
|
+
enum: ["en"],
|
|
2619
|
+
defaultCollapsed: true,
|
|
2620
|
+
localized: false,
|
|
2621
|
+
defaultValue: "en",
|
|
2622
|
+
required: true
|
|
2623
|
+
},
|
|
2624
|
+
{
|
|
2625
|
+
name: "locale",
|
|
2626
|
+
friendlyName: "Locale",
|
|
2627
|
+
helperText: `The country code of this comment. Legacy comments are synced as 'US'`,
|
|
2628
|
+
type: "select",
|
|
2629
|
+
enum: ["US"],
|
|
2630
|
+
defaultValue: "US",
|
|
2631
|
+
defaultCollapsed: true,
|
|
2632
|
+
localized: false,
|
|
2633
|
+
required: true
|
|
2634
|
+
},
|
|
2635
|
+
{
|
|
2636
|
+
name: "parentId",
|
|
2637
|
+
friendlyName: "Parent Comment Id",
|
|
2638
|
+
helperText: "If this comment is a reply, this is the Id of the parent",
|
|
2639
|
+
type: "text",
|
|
2640
|
+
required: false,
|
|
2641
|
+
defaultCollapsed: true
|
|
2642
|
+
},
|
|
2643
|
+
{
|
|
2644
|
+
name: "internal",
|
|
2645
|
+
friendlyName: "Brand Response",
|
|
2646
|
+
helperText: "Indicates that this is a comment provided by the brand (i.e. a response)",
|
|
2647
|
+
type: "boolean",
|
|
2648
|
+
defaultCollapsed: false,
|
|
2649
|
+
required: false
|
|
2650
|
+
}
|
|
2651
|
+
],
|
|
2652
|
+
hideFromUI: true
|
|
2653
|
+
};
|
|
2654
|
+
var createBlogCommentModel = (pageModelId) => {
|
|
2655
|
+
return {
|
|
2656
|
+
...BlogCommentModel,
|
|
2657
|
+
fields: [
|
|
2658
|
+
...BlogCommentModel.fields,
|
|
2659
|
+
{
|
|
2660
|
+
name: "blog",
|
|
2661
|
+
friendlyName: "Blog Post",
|
|
2662
|
+
helperText: "The blog that this comment is linked to",
|
|
2663
|
+
type: "reference",
|
|
2664
|
+
modelId: pageModelId,
|
|
2665
|
+
required: true,
|
|
2666
|
+
defaultCollapsed: false,
|
|
2667
|
+
copyOnAdd: false
|
|
2668
|
+
}
|
|
2669
|
+
]
|
|
2670
|
+
};
|
|
2671
|
+
};
|
|
2672
|
+
|
|
2673
|
+
// src/data/product.model.ts
|
|
2674
|
+
var createProductModel = (request) => {
|
|
2675
|
+
return {
|
|
2676
|
+
name: "product",
|
|
2677
|
+
displayName: "Product",
|
|
2678
|
+
kind: "data",
|
|
2679
|
+
helperText: "Product Catalog",
|
|
2680
|
+
contentTitleField: "name",
|
|
2681
|
+
fields: [
|
|
2682
|
+
{
|
|
2683
|
+
name: "displayName",
|
|
2684
|
+
friendlyName: "Display Name",
|
|
2685
|
+
type: "text",
|
|
2686
|
+
required: true,
|
|
2687
|
+
localized: true,
|
|
2688
|
+
defaultCollapsed: true,
|
|
2689
|
+
helperText: "This is the name that will be displayed to the customer"
|
|
2690
|
+
},
|
|
2691
|
+
{
|
|
2692
|
+
name: "featuredImage",
|
|
2693
|
+
friendlyName: "Featured Image",
|
|
2694
|
+
helperText: "Displayed on the product card",
|
|
2695
|
+
defaultCollapsed: true,
|
|
2696
|
+
type: "file",
|
|
2697
|
+
showTemplatePicker: true,
|
|
2698
|
+
allowedFileTypes: ["jpeg", "png", "svg", "webp"]
|
|
2699
|
+
},
|
|
2700
|
+
{
|
|
2701
|
+
name: "secondaryImage",
|
|
2702
|
+
friendlyName: "Secondary Image",
|
|
2703
|
+
helperText: "Displayed on the product card hover for some grids",
|
|
2704
|
+
defaultCollapsed: true,
|
|
2705
|
+
type: "file",
|
|
2706
|
+
showTemplatePicker: true,
|
|
2707
|
+
allowedFileTypes: ["jpeg", "png", "svg", "webp"]
|
|
2708
|
+
},
|
|
2709
|
+
{
|
|
2710
|
+
name: "subHeading",
|
|
2711
|
+
defaultCollapsed: true,
|
|
2712
|
+
friendlyName: "Product Headline",
|
|
2713
|
+
helperText: "Subheading (tagline) for the product, displayed on the product card",
|
|
2714
|
+
type: "text",
|
|
2715
|
+
localized: true
|
|
2716
|
+
},
|
|
2717
|
+
{
|
|
2718
|
+
name: "gridTagline",
|
|
2719
|
+
defaultCollapsed: true,
|
|
2720
|
+
friendlyName: "Grid Tagline",
|
|
2721
|
+
helperText: "By default, we use the Product Headline field. Use this to override the tagline when displayed on the product grid.",
|
|
2722
|
+
type: "text",
|
|
2723
|
+
required: false,
|
|
2724
|
+
localized: true
|
|
2725
|
+
},
|
|
2726
|
+
{
|
|
2727
|
+
name: "gridDescription",
|
|
2728
|
+
defaultCollapsed: true,
|
|
2729
|
+
friendlyName: "Grid Description",
|
|
2730
|
+
helperText: "A small description, used on some product grids as an additional sub-heading or tagline.",
|
|
2731
|
+
type: "text",
|
|
2732
|
+
required: false,
|
|
2733
|
+
localized: true
|
|
2734
|
+
},
|
|
2735
|
+
{
|
|
2736
|
+
name: "shortDescription",
|
|
2737
|
+
defaultCollapsed: true,
|
|
2738
|
+
friendlyName: "Short Description",
|
|
2739
|
+
helperText: "Short description of the product, typically displayed on the PDP",
|
|
2740
|
+
type: "html",
|
|
2741
|
+
required: false,
|
|
2742
|
+
localized: true
|
|
2743
|
+
},
|
|
2744
|
+
{
|
|
2745
|
+
name: "quote",
|
|
2746
|
+
friendlyName: "Quote",
|
|
2747
|
+
defaultCollapsed: true,
|
|
2748
|
+
helperText: "A quote provided by the brand guru or spokesperson",
|
|
2749
|
+
type: "html",
|
|
2750
|
+
localized: true,
|
|
2751
|
+
required: false
|
|
2752
|
+
},
|
|
2753
|
+
{
|
|
2754
|
+
name: "packagingLabels",
|
|
2755
|
+
friendlyName: "Packaging Labels",
|
|
2756
|
+
defaultCollapsed: true,
|
|
2757
|
+
type: "object",
|
|
2758
|
+
subFields: [
|
|
2759
|
+
{
|
|
2760
|
+
name: "singular",
|
|
2761
|
+
friendlyName: "Singular",
|
|
2762
|
+
defaultCollapsed: true,
|
|
2763
|
+
type: "text",
|
|
2764
|
+
required: true,
|
|
2765
|
+
localized: true,
|
|
2766
|
+
helperText: "Provides the name of the packaging for single product (e.g. Unit, Jar, etc.)"
|
|
2767
|
+
},
|
|
2768
|
+
{
|
|
2769
|
+
name: "plural",
|
|
2770
|
+
defaultCollapsed: true,
|
|
2771
|
+
friendlyName: "Plural",
|
|
2772
|
+
type: "text",
|
|
2773
|
+
required: true,
|
|
2774
|
+
localized: true,
|
|
2775
|
+
helperText: "Provides the name of the packaging for multiple quantities of the product (e.g. Units, Jars, etc.)"
|
|
2776
|
+
}
|
|
2777
|
+
]
|
|
2778
|
+
},
|
|
2779
|
+
{
|
|
2780
|
+
name: "hidden",
|
|
2781
|
+
friendlyName: "Hide Product",
|
|
2782
|
+
type: "boolean",
|
|
2783
|
+
required: false,
|
|
2784
|
+
localized: true,
|
|
2785
|
+
defaultCollapsed: true,
|
|
2786
|
+
helperText: "When true, this product will not be displayed in product grids or search results for this locale"
|
|
2787
|
+
},
|
|
2788
|
+
{
|
|
2789
|
+
name: "outOfStock",
|
|
2790
|
+
friendlyName: "Out of Stock",
|
|
2791
|
+
type: "boolean",
|
|
2792
|
+
required: false,
|
|
2793
|
+
defaultCollapsed: true,
|
|
2794
|
+
helperText: "Indicates whether this product is currently out of stock. When true, this product is not eligible for purchase."
|
|
2795
|
+
},
|
|
2796
|
+
{
|
|
2797
|
+
name: "cartOutOfStock",
|
|
2798
|
+
friendlyName: "Out of Stock (Site)",
|
|
2799
|
+
type: "boolean",
|
|
2800
|
+
required: false,
|
|
2801
|
+
defaultCollapsed: true,
|
|
2802
|
+
helperText: "Indicates that this product should be presented as out of stock on the site, even if it is not truly out of stock. This is used as an override for special cases where the product should not be purchasable on the site while remaining purchasable elsewhere."
|
|
2803
|
+
},
|
|
2804
|
+
{
|
|
2805
|
+
name: "upc",
|
|
2806
|
+
defaultCollapsed: true,
|
|
2807
|
+
friendlyName: "UPC Code",
|
|
2808
|
+
type: "text",
|
|
2809
|
+
required: false,
|
|
2810
|
+
helperText: "The UPC code of this product"
|
|
2811
|
+
},
|
|
2812
|
+
{
|
|
2813
|
+
name: "reviews",
|
|
2814
|
+
friendlyName: "Review Data",
|
|
2815
|
+
helperText: "Stores review data for this product. These values are automatically generated and should not be modified.",
|
|
2816
|
+
type: "object",
|
|
2817
|
+
defaultCollapsed: true,
|
|
2818
|
+
subFields: [
|
|
2819
|
+
{
|
|
2820
|
+
name: "id",
|
|
2821
|
+
defaultCollapsed: true,
|
|
2822
|
+
friendlyName: "Review ID",
|
|
2823
|
+
type: "text",
|
|
2824
|
+
required: true,
|
|
2825
|
+
localized: false,
|
|
2826
|
+
helperText: "ID used by the review service to identify this product. Do not modify this value."
|
|
2827
|
+
},
|
|
2828
|
+
{
|
|
2829
|
+
defaultCollapsed: true,
|
|
2830
|
+
name: "count",
|
|
2831
|
+
friendlyName: "Review Count",
|
|
2832
|
+
type: "number",
|
|
2833
|
+
defaultValue: 0,
|
|
2834
|
+
required: true,
|
|
2835
|
+
localized: false,
|
|
2836
|
+
helperText: "The number of reviews for this product. This value is automatically updated by the review service."
|
|
2837
|
+
},
|
|
2838
|
+
{
|
|
2839
|
+
name: "averageRating",
|
|
2840
|
+
friendlyName: "Average Rating",
|
|
2841
|
+
type: "number",
|
|
2842
|
+
defaultCollapsed: true,
|
|
2843
|
+
defaultValue: 0,
|
|
2844
|
+
required: true,
|
|
2845
|
+
localized: false,
|
|
2846
|
+
helperText: "The average rating for this product. This value is automatically updated by the review service."
|
|
2847
|
+
}
|
|
2848
|
+
]
|
|
2849
|
+
},
|
|
2850
|
+
{
|
|
2851
|
+
name: "tags",
|
|
2852
|
+
friendlyName: "Tags",
|
|
2853
|
+
type: "list",
|
|
2854
|
+
localized: true,
|
|
2855
|
+
defaultCollapsed: true,
|
|
2856
|
+
subFields: [
|
|
2857
|
+
{
|
|
2858
|
+
type: "reference",
|
|
2859
|
+
modelId: request.tagModelId,
|
|
2860
|
+
name: "tag",
|
|
2861
|
+
friendlyName: "Tag",
|
|
2862
|
+
copyOnAdd: false,
|
|
2863
|
+
defaultCollapsed: true
|
|
2864
|
+
}
|
|
2865
|
+
]
|
|
2866
|
+
},
|
|
2867
|
+
{
|
|
2868
|
+
name: "categories",
|
|
2869
|
+
friendlyName: "Categories",
|
|
2870
|
+
type: "list",
|
|
2871
|
+
localized: true,
|
|
2872
|
+
defaultCollapsed: true,
|
|
2873
|
+
subFields: [
|
|
2874
|
+
{
|
|
2875
|
+
type: "reference",
|
|
2876
|
+
modelId: request.categoryModelId,
|
|
2877
|
+
name: "category",
|
|
2878
|
+
friendlyName: "Category",
|
|
2879
|
+
copyOnAdd: false,
|
|
2880
|
+
defaultCollapsed: true
|
|
2881
|
+
}
|
|
2882
|
+
]
|
|
2883
|
+
},
|
|
2884
|
+
{
|
|
2885
|
+
name: "ingredients",
|
|
2886
|
+
friendlyName: "Ingredients",
|
|
2887
|
+
type: "list",
|
|
2888
|
+
localized: true,
|
|
2889
|
+
defaultCollapsed: true,
|
|
2890
|
+
subFields: [
|
|
2891
|
+
{
|
|
2892
|
+
type: "reference",
|
|
2893
|
+
modelId: request.ingredientsModelId,
|
|
2894
|
+
name: "ingredient",
|
|
2895
|
+
friendlyName: "Ingredient",
|
|
2896
|
+
copyOnAdd: false,
|
|
2897
|
+
defaultCollapsed: true
|
|
2898
|
+
}
|
|
2899
|
+
]
|
|
2900
|
+
},
|
|
2901
|
+
{
|
|
2902
|
+
name: "useCases",
|
|
2903
|
+
defaultCollapsed: true,
|
|
2904
|
+
friendlyName: "Use Cases",
|
|
2905
|
+
type: "list",
|
|
2906
|
+
localized: true,
|
|
2907
|
+
subFields: [
|
|
2908
|
+
{
|
|
2909
|
+
type: "reference",
|
|
2910
|
+
modelId: request.useCaseModelId,
|
|
2911
|
+
name: "useCase",
|
|
2912
|
+
friendlyName: "Use Case",
|
|
2913
|
+
copyOnAdd: false,
|
|
2914
|
+
defaultCollapsed: true
|
|
2915
|
+
}
|
|
2916
|
+
]
|
|
2917
|
+
},
|
|
2918
|
+
{
|
|
2919
|
+
name: "name",
|
|
2920
|
+
friendlyName: "Name",
|
|
2921
|
+
type: "text",
|
|
2922
|
+
required: true,
|
|
2923
|
+
defaultCollapsed: true,
|
|
2924
|
+
localized: false,
|
|
2925
|
+
helperText: "Internal name for the product, used for identification in the CMS"
|
|
2926
|
+
},
|
|
2927
|
+
{
|
|
2928
|
+
name: "gh",
|
|
2929
|
+
friendlyName: "Golden Hippo Integration Data",
|
|
2930
|
+
helperText: "Stores integration data for Golden Hippo. Do not modify any of these values.",
|
|
2931
|
+
type: "object",
|
|
2932
|
+
subFields: [
|
|
2933
|
+
{
|
|
2934
|
+
name: "slug",
|
|
2935
|
+
friendlyName: "Page Slug",
|
|
2936
|
+
type: "text",
|
|
2937
|
+
required: true,
|
|
2938
|
+
localized: false,
|
|
2939
|
+
defaultCollapsed: true,
|
|
2940
|
+
helperText: "This is the URL slug for this product. This value is unique and required for cross-environment development. Do not modify this value."
|
|
2941
|
+
},
|
|
2942
|
+
{
|
|
2943
|
+
name: "productionId",
|
|
2944
|
+
friendlyName: "Production ID",
|
|
2945
|
+
type: "text",
|
|
2946
|
+
required: true,
|
|
2947
|
+
localized: false,
|
|
2948
|
+
defaultCollapsed: true,
|
|
2949
|
+
helperText: "This is the unique identifier for this product in the production environment. Do not modify this value."
|
|
2950
|
+
},
|
|
2951
|
+
{
|
|
2952
|
+
name: "type",
|
|
2953
|
+
friendlyName: "Product Type",
|
|
2954
|
+
type: "select",
|
|
2955
|
+
required: true,
|
|
2956
|
+
localized: false,
|
|
2957
|
+
defaultCollapsed: true,
|
|
2958
|
+
enum: ["Product", "Bundle", "Trial Size"],
|
|
2959
|
+
defaultValue: "Product",
|
|
2960
|
+
helperText: "Product Type"
|
|
2961
|
+
}
|
|
2962
|
+
],
|
|
2963
|
+
defaultCollapsed: true,
|
|
2964
|
+
localized: false
|
|
2965
|
+
}
|
|
2966
|
+
]
|
|
2967
|
+
};
|
|
2968
|
+
};
|
|
2969
|
+
|
|
2970
|
+
// src/data/product-group.model.ts
|
|
2971
|
+
var createProductGroupModel = (productModelId) => {
|
|
2972
|
+
return {
|
|
2973
|
+
name: "product-group",
|
|
2974
|
+
displayName: "Product Group",
|
|
2975
|
+
kind: "data",
|
|
2976
|
+
helperText: "Groups related products together (e.g. flavors, trial sizes).",
|
|
2977
|
+
contentTitleField: "displayName",
|
|
2978
|
+
fields: [
|
|
2979
|
+
{
|
|
2980
|
+
name: "displayName",
|
|
2981
|
+
friendlyName: "Display Name",
|
|
2982
|
+
type: "text",
|
|
2983
|
+
required: true,
|
|
2984
|
+
defaultCollapsed: true,
|
|
2985
|
+
localized: true,
|
|
2986
|
+
helperText: "The display name of this product group."
|
|
2987
|
+
},
|
|
2988
|
+
{
|
|
2989
|
+
name: "featuredImage",
|
|
2990
|
+
friendlyName: "Featured Image",
|
|
2991
|
+
type: "file",
|
|
2992
|
+
defaultCollapsed: true,
|
|
2993
|
+
showTemplatePicker: true,
|
|
2994
|
+
allowedFileTypes: ["jpeg", "png", "svg", "webp"],
|
|
2995
|
+
helperText: "The primary image of this product group."
|
|
2996
|
+
},
|
|
2997
|
+
{
|
|
2998
|
+
name: "subHeading",
|
|
2999
|
+
friendlyName: "Sub Heading",
|
|
3000
|
+
type: "text",
|
|
3001
|
+
required: false,
|
|
3002
|
+
defaultCollapsed: true,
|
|
3003
|
+
localized: true,
|
|
3004
|
+
helperText: "A short tagline displayed beneath the group name."
|
|
3005
|
+
},
|
|
3006
|
+
{
|
|
3007
|
+
name: "gridTagline",
|
|
3008
|
+
friendlyName: "Grid Tagline",
|
|
3009
|
+
type: "text",
|
|
3010
|
+
required: false,
|
|
3011
|
+
defaultCollapsed: true,
|
|
3012
|
+
localized: true,
|
|
3013
|
+
helperText: "A short tagline displayed on product grid cards."
|
|
3014
|
+
},
|
|
3015
|
+
{
|
|
3016
|
+
name: "shortDescription",
|
|
3017
|
+
friendlyName: "Short Description",
|
|
3018
|
+
type: "longText",
|
|
3019
|
+
required: false,
|
|
3020
|
+
defaultCollapsed: true,
|
|
3021
|
+
localized: true,
|
|
3022
|
+
helperText: "A short description of the product group."
|
|
3023
|
+
},
|
|
3024
|
+
{
|
|
3025
|
+
name: "products",
|
|
3026
|
+
friendlyName: "Products",
|
|
3027
|
+
type: "list",
|
|
3028
|
+
defaultCollapsed: true,
|
|
3029
|
+
helperText: "The products in this group.",
|
|
3030
|
+
subFields: [
|
|
3031
|
+
{
|
|
3032
|
+
name: "product",
|
|
3033
|
+
friendlyName: "Product",
|
|
3034
|
+
type: "reference",
|
|
3035
|
+
defaultCollapsed: false,
|
|
3036
|
+
modelId: productModelId,
|
|
3037
|
+
copyOnAdd: false
|
|
3038
|
+
},
|
|
3039
|
+
{
|
|
3040
|
+
name: "displayName",
|
|
3041
|
+
friendlyName: "Display Name",
|
|
3042
|
+
type: "text",
|
|
3043
|
+
defaultCollapsed: false,
|
|
3044
|
+
localized: true,
|
|
3045
|
+
helperText: "Override display name for this product in the group context."
|
|
3046
|
+
},
|
|
3047
|
+
{
|
|
3048
|
+
name: "isTrialSize",
|
|
3049
|
+
friendlyName: "Is Trial Size",
|
|
3050
|
+
type: "boolean",
|
|
3051
|
+
defaultCollapsed: false,
|
|
3052
|
+
helperText: "Whether this product is a trial size variant."
|
|
3053
|
+
}
|
|
3054
|
+
]
|
|
3055
|
+
},
|
|
3056
|
+
{
|
|
3057
|
+
name: "selectionLabel",
|
|
3058
|
+
friendlyName: "Selection Label",
|
|
3059
|
+
type: "text",
|
|
3060
|
+
required: false,
|
|
3061
|
+
defaultCollapsed: true,
|
|
3062
|
+
localized: true,
|
|
3063
|
+
helperText: 'Label for the product selector (e.g. "Choose your flavor").'
|
|
3064
|
+
},
|
|
3065
|
+
{
|
|
3066
|
+
name: "hidden",
|
|
3067
|
+
friendlyName: "Hide Group",
|
|
3068
|
+
type: "boolean",
|
|
3069
|
+
required: false,
|
|
3070
|
+
defaultCollapsed: true,
|
|
3071
|
+
localized: true,
|
|
3072
|
+
helperText: "When true, this product group will not be displayed."
|
|
3073
|
+
},
|
|
3074
|
+
{
|
|
3075
|
+
name: "gh",
|
|
3076
|
+
friendlyName: "Golden Hippo",
|
|
3077
|
+
type: "object",
|
|
3078
|
+
defaultCollapsed: true,
|
|
3079
|
+
subFields: [
|
|
3080
|
+
{
|
|
3081
|
+
name: "productionId",
|
|
3082
|
+
friendlyName: "Production ID",
|
|
3083
|
+
type: "text",
|
|
3084
|
+
defaultCollapsed: false,
|
|
3085
|
+
helperText: "The production environment content ID for this product group."
|
|
3086
|
+
},
|
|
3087
|
+
{
|
|
3088
|
+
name: "slug",
|
|
3089
|
+
friendlyName: "Slug",
|
|
3090
|
+
type: "text",
|
|
3091
|
+
defaultCollapsed: false,
|
|
3092
|
+
helperText: "URL slug for this product group."
|
|
3093
|
+
}
|
|
3094
|
+
]
|
|
3095
|
+
},
|
|
3096
|
+
{
|
|
3097
|
+
name: "groupType",
|
|
3098
|
+
friendlyName: "Group Type",
|
|
3099
|
+
type: "select",
|
|
3100
|
+
defaultCollapsed: true,
|
|
3101
|
+
enum: ["Flavor/Option Group" /* FlavorOptionGroup */, "Trial Group" /* TrialGroup */],
|
|
3102
|
+
helperText: "The type of product grouping."
|
|
3103
|
+
},
|
|
3104
|
+
{
|
|
3105
|
+
name: "name",
|
|
3106
|
+
friendlyName: "Group Name",
|
|
3107
|
+
type: "text",
|
|
3108
|
+
required: true,
|
|
3109
|
+
defaultCollapsed: true,
|
|
3110
|
+
localized: false,
|
|
3111
|
+
helperText: "The internal name for this product group."
|
|
3112
|
+
}
|
|
3113
|
+
]
|
|
3114
|
+
};
|
|
3115
|
+
};
|
|
3116
|
+
|
|
3117
|
+
// src/data/product-category.model.ts
|
|
3118
|
+
var createCategoryModel = () => ({
|
|
3119
|
+
name: "product-category",
|
|
3120
|
+
kind: "data",
|
|
3121
|
+
displayName: "Product Category",
|
|
3122
|
+
helperText: "Categories for products",
|
|
3123
|
+
contentTitleField: "name",
|
|
3124
|
+
fields: [
|
|
3125
|
+
{
|
|
3126
|
+
name: "name",
|
|
3127
|
+
friendlyName: "Category",
|
|
3128
|
+
type: "text",
|
|
3129
|
+
required: true,
|
|
3130
|
+
defaultCollapsed: true,
|
|
3131
|
+
localized: true
|
|
3132
|
+
},
|
|
3133
|
+
{
|
|
3134
|
+
name: "description",
|
|
3135
|
+
friendlyName: "Description",
|
|
3136
|
+
type: "longText",
|
|
3137
|
+
required: false,
|
|
3138
|
+
defaultCollapsed: true,
|
|
3139
|
+
localized: true
|
|
3140
|
+
},
|
|
3141
|
+
{
|
|
3142
|
+
name: "desktopImage",
|
|
3143
|
+
friendlyName: "Desktop Image",
|
|
3144
|
+
type: "file",
|
|
3145
|
+
defaultCollapsed: true,
|
|
3146
|
+
showTemplatePicker: true,
|
|
3147
|
+
allowedFileTypes: ["jpeg", "png", "svg", "webp"]
|
|
3148
|
+
},
|
|
3149
|
+
{
|
|
3150
|
+
name: "mobileImage",
|
|
3151
|
+
defaultCollapsed: true,
|
|
3152
|
+
friendlyName: "Mobile Image",
|
|
3153
|
+
type: "file",
|
|
3154
|
+
showTemplatePicker: true,
|
|
3155
|
+
allowedFileTypes: ["jpeg", "png", "svg", "webp"]
|
|
3156
|
+
},
|
|
3157
|
+
{
|
|
3158
|
+
name: "hidden",
|
|
3159
|
+
friendlyName: "Hide Category",
|
|
3160
|
+
type: "boolean",
|
|
3161
|
+
required: false,
|
|
3162
|
+
localized: true,
|
|
3163
|
+
defaultCollapsed: true,
|
|
3164
|
+
helperText: "When true, this category will not be displayed in product grids or search results for this locale"
|
|
3165
|
+
},
|
|
3166
|
+
{
|
|
3167
|
+
name: "slug",
|
|
3168
|
+
friendlyName: "Page Slug",
|
|
3169
|
+
type: "text",
|
|
3170
|
+
defaultCollapsed: true,
|
|
3171
|
+
helperText: 'If this category has a specific web page, provide the path here without a leading slash (e.g. "shop/supplements") for use in breadcrumb navigation. By default, the path "shop" will be used.',
|
|
3172
|
+
required: false,
|
|
3173
|
+
localized: false
|
|
3174
|
+
},
|
|
3175
|
+
{
|
|
3176
|
+
name: "searchKeys",
|
|
3177
|
+
friendlyName: "Search Keys",
|
|
3178
|
+
type: "Tags",
|
|
3179
|
+
defaultCollapsed: true,
|
|
3180
|
+
helperText: 'Used when building links (e.g. "products?category=[Search Key]")',
|
|
3181
|
+
required: false,
|
|
3182
|
+
localized: false
|
|
3183
|
+
}
|
|
3184
|
+
]
|
|
3185
|
+
});
|
|
3186
|
+
|
|
3187
|
+
// src/data/product-grid-filter-group.model.ts
|
|
3188
|
+
var createProductGridConfigModel = (models) => {
|
|
3189
|
+
return {
|
|
3190
|
+
name: "product-grid-filter-group",
|
|
3191
|
+
displayName: "Product Grid Filter Group",
|
|
3192
|
+
kind: "data",
|
|
3193
|
+
helperText: "Build filter group configurations. These can be applied in the brand configuration",
|
|
3194
|
+
contentTitleField: "displayName",
|
|
3195
|
+
fields: [
|
|
3196
|
+
{
|
|
3197
|
+
name: "displayName",
|
|
3198
|
+
friendlyName: "Display Name/Label",
|
|
3199
|
+
type: "text",
|
|
3200
|
+
localized: true,
|
|
3201
|
+
defaultCollapsed: false,
|
|
3202
|
+
helperText: "Provide a name to display for this grouping",
|
|
3203
|
+
makeEntryTitle: true
|
|
3204
|
+
},
|
|
3205
|
+
{
|
|
3206
|
+
name: "categories",
|
|
3207
|
+
friendlyName: "Categories",
|
|
3208
|
+
helperText: "Categories for this group",
|
|
3209
|
+
type: "list",
|
|
3210
|
+
defaultCollapsed: true,
|
|
3211
|
+
subFields: [
|
|
3212
|
+
{
|
|
3213
|
+
name: "category",
|
|
3214
|
+
friendlyName: "Category",
|
|
3215
|
+
type: "reference",
|
|
3216
|
+
modelId: models.categoryId,
|
|
3217
|
+
required: true,
|
|
3218
|
+
localized: false,
|
|
3219
|
+
copyOnAdd: true,
|
|
3220
|
+
defaultCollapsed: false
|
|
3221
|
+
// makeEntryTitle: true,
|
|
3222
|
+
}
|
|
3223
|
+
]
|
|
3224
|
+
},
|
|
3225
|
+
{
|
|
3226
|
+
name: "ingredients",
|
|
3227
|
+
friendlyName: "Ingredients",
|
|
3228
|
+
helperText: "Ingredients for this group",
|
|
3229
|
+
type: "list",
|
|
3230
|
+
defaultCollapsed: true,
|
|
3231
|
+
subFields: [
|
|
3232
|
+
{
|
|
3233
|
+
name: "ingredient",
|
|
3234
|
+
friendlyName: "Ingredient",
|
|
3235
|
+
type: "reference",
|
|
3236
|
+
modelId: models.ingredientId,
|
|
3237
|
+
required: true,
|
|
3238
|
+
localized: false,
|
|
3239
|
+
copyOnAdd: true,
|
|
3240
|
+
defaultCollapsed: false
|
|
3241
|
+
// makeEntryTitle: true,
|
|
3242
|
+
}
|
|
3243
|
+
]
|
|
3244
|
+
},
|
|
3245
|
+
{
|
|
3246
|
+
name: "useCases",
|
|
3247
|
+
friendlyName: "Use Cases",
|
|
3248
|
+
helperText: "Use Cases for this group",
|
|
3249
|
+
type: "list",
|
|
3250
|
+
defaultCollapsed: true,
|
|
3251
|
+
subFields: [
|
|
3252
|
+
{
|
|
3253
|
+
name: "useCase",
|
|
3254
|
+
friendlyName: "Use Case",
|
|
3255
|
+
type: "reference",
|
|
3256
|
+
modelId: models.useCaseId,
|
|
3257
|
+
required: true,
|
|
3258
|
+
localized: false,
|
|
3259
|
+
copyOnAdd: true,
|
|
3260
|
+
defaultCollapsed: false
|
|
3261
|
+
// makeEntryTitle: true,
|
|
3262
|
+
}
|
|
3263
|
+
],
|
|
3264
|
+
copyOnAdd: false
|
|
3265
|
+
},
|
|
3266
|
+
{
|
|
3267
|
+
name: "tags",
|
|
3268
|
+
friendlyName: "Tags",
|
|
3269
|
+
helperText: "Tags for this group",
|
|
3270
|
+
type: "list",
|
|
3271
|
+
defaultCollapsed: true,
|
|
3272
|
+
subFields: [
|
|
3273
|
+
{
|
|
3274
|
+
name: "tag",
|
|
3275
|
+
friendlyName: "Tag",
|
|
3276
|
+
type: "reference",
|
|
3277
|
+
modelId: models.tagId,
|
|
3278
|
+
required: true,
|
|
3279
|
+
localized: false,
|
|
3280
|
+
copyOnAdd: true,
|
|
3281
|
+
defaultCollapsed: false
|
|
3282
|
+
// makeEntryTitle: true,
|
|
3283
|
+
}
|
|
3284
|
+
],
|
|
3285
|
+
copyOnAdd: false
|
|
3286
|
+
},
|
|
3287
|
+
{
|
|
3288
|
+
name: "filterApplicationType",
|
|
3289
|
+
friendlyName: "Filter Application Type",
|
|
3290
|
+
type: "select",
|
|
3291
|
+
enum: ["Inclusive" /* Inclusive */, "Exclusive" /* Exclusive */],
|
|
3292
|
+
defaultValue: "Inclusive",
|
|
3293
|
+
required: false,
|
|
3294
|
+
defaultCollapsed: true,
|
|
3295
|
+
helperText: "Select how this filter is applied in relation to other filters. When set to Exclusive, ALL results must match a selected filter of this group."
|
|
3296
|
+
}
|
|
3297
|
+
]
|
|
3298
|
+
};
|
|
3299
|
+
};
|
|
3300
|
+
|
|
3301
|
+
// src/data/product-ingredient.model.ts
|
|
3302
|
+
var createIngredientsModel = () => ({
|
|
3303
|
+
name: "product-ingredient",
|
|
3304
|
+
displayName: "Product Ingredient",
|
|
3305
|
+
kind: "data",
|
|
3306
|
+
helperText: "Ingredients used in products",
|
|
3307
|
+
contentTitleField: "name",
|
|
3308
|
+
fields: [
|
|
3309
|
+
{
|
|
3310
|
+
"@type": "@builder.io/core:Field",
|
|
3311
|
+
name: "name",
|
|
3312
|
+
friendlyName: "Ingredient",
|
|
3313
|
+
type: "text",
|
|
3314
|
+
required: true,
|
|
3315
|
+
defaultCollapsed: true,
|
|
3316
|
+
localized: true,
|
|
3317
|
+
defaultValue: {
|
|
3318
|
+
"@type": "@builder.io/core:LocalizedValue"
|
|
3319
|
+
}
|
|
3320
|
+
},
|
|
3321
|
+
{
|
|
3322
|
+
"@type": "@builder.io/core:Field",
|
|
3323
|
+
name: "description",
|
|
3324
|
+
friendlyName: "Description",
|
|
3325
|
+
type: "longText",
|
|
3326
|
+
required: false,
|
|
3327
|
+
defaultCollapsed: true,
|
|
3328
|
+
localized: true,
|
|
3329
|
+
defaultValue: {
|
|
3330
|
+
"@type": "@builder.io/core:LocalizedValue"
|
|
3331
|
+
}
|
|
3332
|
+
},
|
|
3333
|
+
{
|
|
3334
|
+
"@type": "@builder.io/core:Field",
|
|
3335
|
+
name: "image",
|
|
3336
|
+
friendlyName: "Image",
|
|
3337
|
+
type: "file",
|
|
3338
|
+
showTemplatePicker: true,
|
|
3339
|
+
defaultCollapsed: true,
|
|
3340
|
+
allowedFileTypes: ["jpeg", "png", "svg", "webp"]
|
|
3341
|
+
},
|
|
3342
|
+
{
|
|
3343
|
+
"@type": "@builder.io/core:Field",
|
|
3344
|
+
name: "shortDescription",
|
|
3345
|
+
friendlyName: "Short Description",
|
|
3346
|
+
type: "longText",
|
|
3347
|
+
required: false,
|
|
3348
|
+
defaultCollapsed: true,
|
|
3349
|
+
localized: true,
|
|
3350
|
+
defaultValue: {
|
|
3351
|
+
"@type": "@builder.io/core:LocalizedValue"
|
|
3352
|
+
}
|
|
3353
|
+
},
|
|
3354
|
+
{
|
|
3355
|
+
"@type": "@builder.io/core:Field",
|
|
3356
|
+
name: "searchKeys",
|
|
3357
|
+
friendlyName: "Search Keys",
|
|
3358
|
+
type: "Tags",
|
|
3359
|
+
defaultCollapsed: true,
|
|
3360
|
+
helperText: 'Used when building links (e.g. "products?category=[Search Key]")',
|
|
3361
|
+
required: false,
|
|
3362
|
+
localized: false
|
|
3363
|
+
}
|
|
3364
|
+
]
|
|
3365
|
+
});
|
|
3366
|
+
|
|
3367
|
+
// src/data/product-tag.model.ts
|
|
3368
|
+
var createProductTagModel = () => ({
|
|
3369
|
+
name: "product-tag",
|
|
3370
|
+
kind: "data",
|
|
3371
|
+
displayName: "Product Tag",
|
|
3372
|
+
helperText: "Provides a link between products across categories.",
|
|
3373
|
+
contentTitleField: "name",
|
|
3374
|
+
fields: [
|
|
3375
|
+
{
|
|
3376
|
+
name: "name",
|
|
3377
|
+
friendlyName: "Tag",
|
|
3378
|
+
type: "text",
|
|
3379
|
+
required: true,
|
|
3380
|
+
defaultCollapsed: true,
|
|
3381
|
+
localized: true
|
|
3382
|
+
},
|
|
3383
|
+
{
|
|
3384
|
+
name: "tagColor",
|
|
3385
|
+
friendlyName: "Color",
|
|
3386
|
+
type: "color",
|
|
3387
|
+
required: true,
|
|
3388
|
+
defaultCollapsed: true,
|
|
3389
|
+
localized: false,
|
|
3390
|
+
defaultValue: "gba(255, 233, 214, 1)"
|
|
3391
|
+
},
|
|
3392
|
+
{
|
|
3393
|
+
name: "hidden",
|
|
3394
|
+
friendlyName: "Hide Tag",
|
|
3395
|
+
type: "boolean",
|
|
3396
|
+
required: false,
|
|
3397
|
+
localized: true,
|
|
3398
|
+
defaultCollapsed: true,
|
|
3399
|
+
helperText: "When true, this tag will not be displayed in product grids or search results for this locale"
|
|
3400
|
+
},
|
|
3401
|
+
{
|
|
3402
|
+
name: "image",
|
|
3403
|
+
friendlyName: "Tag Image",
|
|
3404
|
+
type: "file",
|
|
3405
|
+
allowedFileTypes: ["jpeg", "png", "svg", "webp"],
|
|
3406
|
+
required: false,
|
|
3407
|
+
localized: true,
|
|
3408
|
+
defaultCollapsed: true,
|
|
3409
|
+
helperText: "For product grids that support tag images, you may provide the image here."
|
|
3410
|
+
},
|
|
3411
|
+
{
|
|
3412
|
+
name: "pluralDisplayName",
|
|
3413
|
+
friendlyName: "Plural Display Name",
|
|
3414
|
+
defaultCollapsed: true,
|
|
3415
|
+
type: "text",
|
|
3416
|
+
helperText: 'This is used when grouping/filtering. Allows us to display "Favorites" instead of "Fave", for example.',
|
|
3417
|
+
required: false,
|
|
3418
|
+
localized: true
|
|
3419
|
+
}
|
|
3420
|
+
]
|
|
3421
|
+
});
|
|
3422
|
+
|
|
3423
|
+
// src/data/product-use-case.model.ts
|
|
3424
|
+
var createProductUseCaseModel = () => ({
|
|
3425
|
+
name: "product-use-case",
|
|
3426
|
+
kind: "data",
|
|
3427
|
+
displayName: "Product Use Case",
|
|
3428
|
+
helperText: "Provides a link between products used for the same goal.",
|
|
3429
|
+
contentTitleField: "name",
|
|
3430
|
+
fields: [
|
|
3431
|
+
{
|
|
3432
|
+
name: "name",
|
|
3433
|
+
defaultCollapsed: true,
|
|
3434
|
+
friendlyName: "Use Case",
|
|
3435
|
+
type: "text",
|
|
3436
|
+
required: true,
|
|
3437
|
+
localized: true
|
|
3438
|
+
},
|
|
3439
|
+
{
|
|
3440
|
+
name: "description",
|
|
3441
|
+
friendlyName: "Description",
|
|
3442
|
+
type: "longText",
|
|
3443
|
+
defaultCollapsed: true,
|
|
3444
|
+
required: false,
|
|
3445
|
+
localized: true
|
|
3446
|
+
},
|
|
3447
|
+
{
|
|
3448
|
+
name: "searchKeys",
|
|
3449
|
+
friendlyName: "Search Keys",
|
|
3450
|
+
type: "Tags",
|
|
3451
|
+
defaultCollapsed: true,
|
|
3452
|
+
helperText: 'Used when building links (e.g. "products?category=[Search Key]")',
|
|
3453
|
+
required: false,
|
|
3454
|
+
localized: false
|
|
3455
|
+
},
|
|
3456
|
+
{
|
|
3457
|
+
name: "image",
|
|
3458
|
+
friendlyName: "Image",
|
|
3459
|
+
defaultCollapsed: true,
|
|
3460
|
+
type: "file",
|
|
3461
|
+
showTemplatePicker: true,
|
|
3462
|
+
allowedFileTypes: ["jpeg", "png", "svg", "webp"]
|
|
3463
|
+
},
|
|
3464
|
+
{
|
|
3465
|
+
name: "hidden",
|
|
3466
|
+
friendlyName: "Hide Use Case",
|
|
3467
|
+
type: "boolean",
|
|
3468
|
+
required: false,
|
|
3469
|
+
localized: true,
|
|
3470
|
+
defaultCollapsed: true,
|
|
3471
|
+
helperText: "When true, this use case will not be displayed in product grids or search results for this locale"
|
|
3472
|
+
}
|
|
3473
|
+
]
|
|
3474
|
+
});
|
|
3475
|
+
|
|
3476
|
+
exports.createBlogCategoryModel = createBlogCategoryModel;
|
|
3477
|
+
exports.createBlogCommentModel = createBlogCommentModel;
|
|
3478
|
+
exports.createBrandConfigModel = createBrandConfigModel;
|
|
3479
|
+
exports.createCategoryModel = createCategoryModel;
|
|
3480
|
+
exports.createIngredientsModel = createIngredientsModel;
|
|
3481
|
+
exports.createProductGridConfigModel = createProductGridConfigModel;
|
|
3482
|
+
exports.createProductGroupModel = createProductGroupModel;
|
|
3483
|
+
exports.createProductModel = createProductModel;
|
|
3484
|
+
exports.createProductTagModel = createProductTagModel;
|
|
3485
|
+
exports.createProductUseCaseModel = createProductUseCaseModel;
|
|
3486
|
+
//# sourceMappingURL=index.js.map
|
|
3487
|
+
//# sourceMappingURL=index.js.map
|