@useinsider/guido 3.2.0-beta.8e8f902 → 3.2.0-beta.8f147c3
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 +1 -25
- package/dist/@types/config/schemas.js +163 -109
- package/dist/components/Guido.vue.js +4 -4
- package/dist/components/Guido.vue2.js +77 -77
- package/dist/components/organisms/header/RightSlot.vue.js +8 -8
- package/dist/components/organisms/header/RightSlot.vue2.js +8 -9
- package/dist/composables/useSave.js +15 -15
- package/dist/config/migrator/index.js +9 -9
- package/dist/config/migrator/recommendation/compositionMapper.js +98 -0
- package/dist/config/migrator/recommendation/extractors.js +27 -0
- package/dist/config/migrator/recommendation/htmlBuilder.js +486 -0
- package/dist/config/migrator/recommendation/parseLegacyConfig.js +33 -0
- package/dist/config/migrator/recommendation/settingsMapper.js +78 -0
- package/dist/config/migrator/recommendation/themeMapper.js +93 -0
- package/dist/config/migrator/recommendationMigrator.js +60 -290
- package/dist/enums/extensions/recommendationBlock.js +2 -1
- package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +5 -5
- package/dist/extensions/Blocks/Recommendation/services/configService.js +65 -29
- package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +8 -8
- package/dist/extensions/Blocks/Recommendation/templates/utils.js +1 -1
- package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +13 -22
- package/dist/guido.css +1 -1
- package/dist/node_modules/valibot/dist/index.js +450 -235
- package/dist/services/templateLibraryApi.js +4 -5
- package/dist/src/@types/config/defaults.d.ts +5 -1
- package/dist/src/@types/config/index.d.ts +3 -3
- package/dist/src/@types/config/schemas.d.ts +213 -4
- package/dist/src/@types/config/types.d.ts +9 -1
- package/dist/src/components/Guido.vue.d.ts +1 -1
- package/dist/src/components/organisms/header/EditorActions.vue.d.ts +1 -1
- package/dist/src/components/organisms/header/HeaderWrapper.vue.d.ts +1 -1
- package/dist/src/components/organisms/header/RightSlot.vue.d.ts +1 -1
- package/dist/src/components/wrappers/WpModal.vue.d.ts +1 -1
- package/dist/src/composables/useConfig.d.ts +56 -2
- package/dist/src/composables/useSave.d.ts +1 -1
- package/dist/src/config/migrator/index.d.ts +2 -1
- package/dist/src/config/migrator/recommendation/compositionMapper.d.ts +2 -0
- package/dist/src/config/migrator/recommendation/compositionMapper.test.d.ts +1 -0
- package/dist/src/config/migrator/recommendation/extractors.d.ts +7 -0
- package/dist/src/config/migrator/recommendation/htmlBuilder.d.ts +11 -0
- package/dist/src/config/migrator/recommendation/parseLegacyConfig.d.ts +15 -0
- package/dist/src/config/migrator/recommendation/parseLegacyConfig.test.d.ts +1 -0
- package/dist/src/config/migrator/recommendation/settingsMapper.d.ts +7 -0
- package/dist/src/config/migrator/recommendation/settingsMapper.test.d.ts +1 -0
- package/dist/src/config/migrator/recommendation/themeMapper.d.ts +5 -0
- package/dist/src/config/migrator/recommendation/themeMapper.test.d.ts +1 -0
- package/dist/src/config/migrator/recommendation/types.d.ts +205 -0
- package/dist/src/config/migrator/recommendationMigrator.d.ts +13 -1
- package/dist/src/config/migrator/recommendationMigrator.test.d.ts +1 -0
- package/dist/src/extensions/Blocks/Recommendation/services/configService.d.ts +10 -0
- package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +1 -1
- package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +0 -3
- package/dist/src/stores/config.d.ts +504 -18
- package/dist/src/stores/editor.d.ts +0 -23
- package/dist/src/utils/htmlEscape.d.ts +5 -0
- package/dist/stores/editor.js +1 -3
- package/dist/utils/htmlEscape.js +13 -0
- package/dist/utils/pairProductVariables.js +88 -89
- package/package.json +5 -1
- package/dist/components/organisms/AutoSaveController.vue.js +0 -17
- package/dist/components/organisms/AutoSaveController.vue2.js +0 -13
- package/dist/components/organisms/header/AutoSaveToggle.vue.js +0 -22
- package/dist/components/organisms/header/AutoSaveToggle.vue2.js +0 -19
- package/dist/composables/useAutoSave.js +0 -71
- package/dist/extensions/Blocks/Recommendation/templates/grid/migration.js +0 -251
- package/dist/src/components/organisms/AutoSaveController.vue.d.ts +0 -2
- package/dist/src/components/organisms/header/AutoSaveToggle.vue.d.ts +0 -2
- package/dist/src/composables/useAutoSave.d.ts +0 -3
- package/dist/src/stores/autosave.d.ts +0 -12
- package/dist/src/utils/timeUtil.d.ts +0 -8
- package/dist/stores/autosave.js +0 -17
- package/dist/utils/timeUtil.js +0 -19
package/README.md
CHANGED
|
@@ -143,8 +143,7 @@ const config: GuidoConfigInput = {
|
|
|
143
143
|
displayConditions?: boolean, // Default: true
|
|
144
144
|
unsubscribe?: boolean, // Default: true
|
|
145
145
|
modulesDisabled?: boolean, // Default: false - Disable modules panel
|
|
146
|
-
liquidSyntax?: boolean,
|
|
147
|
-
autosave?: boolean, // Default: false - Show the Auto Save toggle in the header. See wiki/AUTOSAVE.md.
|
|
146
|
+
liquidSyntax?: boolean, // Default: false - Enable Liquid template syntax
|
|
148
147
|
},
|
|
149
148
|
|
|
150
149
|
// Optional: Callbacks
|
|
@@ -203,7 +202,6 @@ interface SavedTemplateDetails {
|
|
|
203
202
|
config: number[];
|
|
204
203
|
};
|
|
205
204
|
metadata: Metadata;
|
|
206
|
-
silent: boolean; // true when triggered by autosave, false when user clicked Save
|
|
207
205
|
}
|
|
208
206
|
|
|
209
207
|
interface Metadata {
|
|
@@ -329,28 +327,6 @@ const config: GuidoConfigInput = {
|
|
|
329
327
|
|
|
330
328
|
---
|
|
331
329
|
|
|
332
|
-
## Autosave
|
|
333
|
-
|
|
334
|
-
Guido ships an opt-in **autosave** that saves on a 3-minute interval and when the user leaves the tab. Enable it with the `features.autosave` feature flag — this **shows an "Auto Save" toggle in the editor header**; the end user switches autosave on per session.
|
|
335
|
-
|
|
336
|
-
```typescript
|
|
337
|
-
const config: GuidoConfigInput = {
|
|
338
|
-
identity: { templateId: 'tpl-123', userId: 'user-456' },
|
|
339
|
-
partner: { name: 'partner' },
|
|
340
|
-
features: {
|
|
341
|
-
autosave: true, // Default: false — shows the Auto Save toggle in the header
|
|
342
|
-
},
|
|
343
|
-
};
|
|
344
|
-
```
|
|
345
|
-
|
|
346
|
-
- Default is `false` — integrations see no change unless they opt in.
|
|
347
|
-
- Autosave reuses the same save pipeline as the Save button, so your existing `@save:complete` handler receives autosave output identically to a manual save. No new events or callbacks.
|
|
348
|
-
- Toggle state is **session-only** (Pinia) — resets to OFF on reload.
|
|
349
|
-
|
|
350
|
-
For a deep dive on triggers, guards, and limitations, see **[wiki/AUTOSAVE.md](wiki/AUTOSAVE.md)**.
|
|
351
|
-
|
|
352
|
-
---
|
|
353
|
-
|
|
354
330
|
## HTML Compiler Rules
|
|
355
331
|
|
|
356
332
|
Add custom rules to transform HTML during export:
|
|
@@ -1,60 +1,60 @@
|
|
|
1
|
-
import { ModuleFolderDefaults as
|
|
2
|
-
import { object as
|
|
3
|
-
const
|
|
1
|
+
import { ModuleFolderDefaults as S } from "../../enums/defaults.js";
|
|
2
|
+
import { object as o, number as n, optional as e, string as t, pipe as p, picklist as l, minLength as b, custom as h, boolean as a, array as c, record as k, looseObject as y, literal as i, variant as g, union as f, unknown as s } from "../../node_modules/valibot/dist/index.js";
|
|
3
|
+
const d = {
|
|
4
4
|
/** Promotional/marketing emails */
|
|
5
5
|
PROMOTIONAL: 1,
|
|
6
6
|
/** Transactional/system emails */
|
|
7
7
|
TRANSACTIONAL: 2
|
|
8
|
-
},
|
|
8
|
+
}, r = {
|
|
9
9
|
/** Standard email campaigns */
|
|
10
10
|
EMAIL: 60,
|
|
11
11
|
/** Architect journey builder */
|
|
12
12
|
ARCHITECT: 49,
|
|
13
13
|
/** Unsubscribe page builder */
|
|
14
14
|
UNSUBSCRIBE_PAGES: 97
|
|
15
|
-
},
|
|
15
|
+
}, R = o({
|
|
16
16
|
/** Unique identifier for the template being edited */
|
|
17
|
-
templateId:
|
|
17
|
+
templateId: p(
|
|
18
18
|
t(),
|
|
19
|
-
|
|
19
|
+
b(1, "templateId is required")
|
|
20
20
|
),
|
|
21
21
|
/** Unique identifier for the user editing the template */
|
|
22
|
-
userId:
|
|
22
|
+
userId: p(
|
|
23
23
|
t(),
|
|
24
|
-
|
|
24
|
+
b(1, "userId is required")
|
|
25
25
|
),
|
|
26
26
|
/** Optional variation ID for A/B testing */
|
|
27
27
|
variationId: e(t())
|
|
28
|
-
}),
|
|
28
|
+
}), C = o({
|
|
29
29
|
/** Fallback font name (e.g., "Georgia") */
|
|
30
30
|
name: t(),
|
|
31
31
|
/** Fallback font family (e.g., "serif" or "sans-serif") */
|
|
32
32
|
family: t()
|
|
33
|
-
}),
|
|
33
|
+
}), T = o({
|
|
34
34
|
/** Partner/organization name (required) */
|
|
35
|
-
name:
|
|
35
|
+
name: p(
|
|
36
36
|
t(),
|
|
37
|
-
|
|
37
|
+
b(1, "partner.name is required")
|
|
38
38
|
),
|
|
39
39
|
/** Product type identifier */
|
|
40
40
|
productType: e(
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
l([
|
|
42
|
+
r.EMAIL,
|
|
43
|
+
r.ARCHITECT,
|
|
44
|
+
r.UNSUBSCRIBE_PAGES
|
|
45
45
|
]),
|
|
46
|
-
|
|
46
|
+
r.EMAIL
|
|
47
47
|
),
|
|
48
48
|
/** Message type (promotional or transactional) */
|
|
49
49
|
messageType: e(
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
l([d.PROMOTIONAL, d.TRANSACTIONAL]),
|
|
51
|
+
d.PROMOTIONAL
|
|
52
52
|
),
|
|
53
53
|
/** Display name for the current user */
|
|
54
54
|
username: e(t(), "Guido User"),
|
|
55
55
|
/** Fallback font settings from partner settings — used to match backend size calculation */
|
|
56
|
-
fallbackFont: e(
|
|
57
|
-
}), A =
|
|
56
|
+
fallbackFont: e(C)
|
|
57
|
+
}), A = o({
|
|
58
58
|
/** Display text for the dynamic content */
|
|
59
59
|
text: t(),
|
|
60
60
|
/** Template variable value (e.g., {{username}}) */
|
|
@@ -63,12 +63,64 @@ const m = {
|
|
|
63
63
|
fallback: e(t()),
|
|
64
64
|
/** Optional formatting options */
|
|
65
65
|
format: e(
|
|
66
|
-
|
|
66
|
+
o({
|
|
67
67
|
key: t(),
|
|
68
68
|
value: t()
|
|
69
69
|
})
|
|
70
70
|
)
|
|
71
|
-
}),
|
|
71
|
+
}), I = y({
|
|
72
|
+
/** Block ID (matches the dictionary key and the legacy HTML element id) */
|
|
73
|
+
id: e(n()),
|
|
74
|
+
/** Decimal places for price display (legacy data may use string or number) */
|
|
75
|
+
decimalCount: e(f([t(), n()])),
|
|
76
|
+
/** Pinned product IDs (empty array when filter-driven) */
|
|
77
|
+
productIds: e(c(s())),
|
|
78
|
+
/** Whether the block requested live products at send time */
|
|
79
|
+
sendProductRequestFlag: e(a()),
|
|
80
|
+
/** Whether to randomize product order */
|
|
81
|
+
shuffleProducts: e(a()),
|
|
82
|
+
/** Filter rules driving product selection */
|
|
83
|
+
filters: e(c(s())),
|
|
84
|
+
/** Currency code (e.g. 'EUR') — sometimes absent in legacy data */
|
|
85
|
+
currency: e(t()),
|
|
86
|
+
/** Currency display settings (separators, alignment, decimals) */
|
|
87
|
+
currencySettings: e(s()),
|
|
88
|
+
/** Locale (e.g. 'nl_NL') */
|
|
89
|
+
language: e(t()),
|
|
90
|
+
/** Recommendation strategy key (e.g. 'newArrivals') */
|
|
91
|
+
strategy: e(t()),
|
|
92
|
+
/** Snapshot of products as rendered by the legacy block */
|
|
93
|
+
recommendedProducts: e(c(s())),
|
|
94
|
+
/** Number of product cards per row */
|
|
95
|
+
cardsInRow: e(n()),
|
|
96
|
+
/** Mobile-only padding (right) */
|
|
97
|
+
mobileRightPadding: e(n()),
|
|
98
|
+
/** Mobile-only padding (left) */
|
|
99
|
+
mobileLeftPadding: e(n()),
|
|
100
|
+
/** Disable responsive scaling */
|
|
101
|
+
unresponsive: e(a()),
|
|
102
|
+
/** Layout orientation ('vertical' | 'horizontal') */
|
|
103
|
+
orientation: e(t()),
|
|
104
|
+
/** Whether long text is trimmed */
|
|
105
|
+
textTrimming: e(a()),
|
|
106
|
+
/** Block type marker used by some legacy variants */
|
|
107
|
+
blockType: e(t()),
|
|
108
|
+
/** Size variant marker (legacy data may use string or number) */
|
|
109
|
+
size: e(f([t(), n()])),
|
|
110
|
+
/** Vertical responsiveness flag (legacy size=1 variants) */
|
|
111
|
+
verticalResponsiveness: e(a())
|
|
112
|
+
}), E = o({
|
|
113
|
+
/**
|
|
114
|
+
* Legacy recommendation block configs keyed by block ID.
|
|
115
|
+
* Pass this when loading a template authored with the v1
|
|
116
|
+
* recommendation block so the migrator can preserve filters,
|
|
117
|
+
* strategy, currency, locale, and layout data.
|
|
118
|
+
*/
|
|
119
|
+
recommendationConfigs: e(
|
|
120
|
+
k(t(), I),
|
|
121
|
+
{}
|
|
122
|
+
)
|
|
123
|
+
}), L = o({
|
|
72
124
|
/** Initial HTML content */
|
|
73
125
|
html: e(t(), ""),
|
|
74
126
|
/** Initial CSS content */
|
|
@@ -81,52 +133,52 @@ const m = {
|
|
|
81
133
|
/** Valid custom field attribute names from the partner's categorized fields */
|
|
82
134
|
customFieldAttributes: e(c(t()), []),
|
|
83
135
|
/** Selected unsubscribe page IDs */
|
|
84
|
-
selectedUnsubscribePages: e(c(
|
|
136
|
+
selectedUnsubscribePages: e(c(n()), []),
|
|
85
137
|
/** Force recreate template in Stripo storage (use true when updating externally modified templates) */
|
|
86
|
-
forceRecreate: e(
|
|
87
|
-
|
|
138
|
+
forceRecreate: e(a(), !1),
|
|
139
|
+
/** Migration-only inputs (legacy block configs) */
|
|
140
|
+
migration: e(E, {})
|
|
141
|
+
}), O = o({
|
|
88
142
|
/** Sender display name */
|
|
89
143
|
senderName: e(t(), ""),
|
|
90
144
|
/** Email subject line */
|
|
91
145
|
subject: e(t(), "")
|
|
92
|
-
}),
|
|
146
|
+
}), M = o({
|
|
93
147
|
/** Locale for the editor UI */
|
|
94
148
|
locale: e(t(), "en"),
|
|
95
149
|
/** Path to translations object */
|
|
96
150
|
translationsPath: e(t(), "window.trans[Object.keys(window.trans)[0]]"),
|
|
97
151
|
/** Migration date for template compatibility */
|
|
98
|
-
migrationDate: e(
|
|
152
|
+
migrationDate: e(n(), 1759696858),
|
|
99
153
|
/** Email header settings */
|
|
100
|
-
emailHeader: e(
|
|
154
|
+
emailHeader: e(O, { senderName: "", subject: "" }),
|
|
101
155
|
/** Folder name for user-saved modules (used by Stripo plugin panel for path construction) */
|
|
102
|
-
savedModulesFolderName: e(t(),
|
|
156
|
+
savedModulesFolderName: e(t(), S.SAVED_MODULES),
|
|
103
157
|
/** Folder name for default/prebuilt modules (used by Stripo plugin panel for path construction) */
|
|
104
|
-
defaultModulesFolderName: e(t(),
|
|
105
|
-
}),
|
|
158
|
+
defaultModulesFolderName: e(t(), S.DEFAULT_MODULES)
|
|
159
|
+
}), P = o({
|
|
106
160
|
/** Whether to show the header bar */
|
|
107
|
-
showHeader: e(
|
|
161
|
+
showHeader: e(a(), !0),
|
|
108
162
|
/** Custom label for back button (if shown) */
|
|
109
163
|
backButtonLabel: e(t())
|
|
110
|
-
}),
|
|
164
|
+
}), v = o({
|
|
111
165
|
/** Enable dynamic content insertion */
|
|
112
|
-
dynamicContent: e(
|
|
166
|
+
dynamicContent: e(a(), !0),
|
|
113
167
|
/** Enable save as template functionality */
|
|
114
|
-
saveAsTemplate: e(
|
|
168
|
+
saveAsTemplate: e(a(), !0),
|
|
115
169
|
/** Enable version history */
|
|
116
|
-
versionHistory: e(
|
|
170
|
+
versionHistory: e(a(), !0),
|
|
117
171
|
/** Enable test message sending */
|
|
118
|
-
testMessage: e(
|
|
172
|
+
testMessage: e(a(), !0),
|
|
119
173
|
/** Enable display conditions */
|
|
120
|
-
displayConditions: e(
|
|
174
|
+
displayConditions: e(a(), !0),
|
|
121
175
|
/** Enable unsubscribe block */
|
|
122
|
-
unsubscribe: e(
|
|
176
|
+
unsubscribe: e(a(), !0),
|
|
123
177
|
/** Disable modules panel in the editor */
|
|
124
|
-
modulesDisabled: e(
|
|
178
|
+
modulesDisabled: e(a(), !1),
|
|
125
179
|
/** Enable Liquid template syntax */
|
|
126
|
-
liquidSyntax: e(
|
|
127
|
-
|
|
128
|
-
autosave: e(o(), !1)
|
|
129
|
-
}), g = n([
|
|
180
|
+
liquidSyntax: e(a(), !1)
|
|
181
|
+
}), N = l([
|
|
130
182
|
"amp-accordion",
|
|
131
183
|
"amp-carousel",
|
|
132
184
|
"amp-form-controls",
|
|
@@ -140,7 +192,7 @@ const m = {
|
|
|
140
192
|
"text-block",
|
|
141
193
|
"timer-block",
|
|
142
194
|
"video-block"
|
|
143
|
-
]),
|
|
195
|
+
]), D = l([
|
|
144
196
|
"dynamic-content",
|
|
145
197
|
"checkbox-block",
|
|
146
198
|
"radio-button-block",
|
|
@@ -148,119 +200,121 @@ const m = {
|
|
|
148
200
|
"unsubscribe-block",
|
|
149
201
|
"coupon-block",
|
|
150
202
|
"items-block"
|
|
151
|
-
]),
|
|
203
|
+
]), x = o({
|
|
152
204
|
/** Default blocks to exclude from the editor */
|
|
153
205
|
excludeDefaults: e(
|
|
154
|
-
c(
|
|
206
|
+
c(N),
|
|
155
207
|
[]
|
|
156
208
|
),
|
|
157
209
|
/** Custom blocks to include in the editor */
|
|
158
210
|
includeCustoms: e(
|
|
159
|
-
c(
|
|
211
|
+
c(D),
|
|
160
212
|
[]
|
|
161
213
|
)
|
|
162
|
-
}),
|
|
214
|
+
}), m = o({
|
|
163
215
|
/** Unique identifier for the rule */
|
|
164
216
|
id: t(),
|
|
165
217
|
/** Human-readable description */
|
|
166
218
|
description: e(t()),
|
|
167
219
|
/** Priority for rule ordering (lower = earlier) */
|
|
168
|
-
priority:
|
|
169
|
-
}),
|
|
170
|
-
...
|
|
171
|
-
type:
|
|
220
|
+
priority: n()
|
|
221
|
+
}), F = o({
|
|
222
|
+
...m.entries,
|
|
223
|
+
type: i("replace"),
|
|
172
224
|
/** String to search for */
|
|
173
225
|
search: t(),
|
|
174
226
|
/** Replacement string */
|
|
175
227
|
replacement: t(),
|
|
176
228
|
/** Replace all occurrences (default: false) */
|
|
177
|
-
replaceAll: e(
|
|
178
|
-
}),
|
|
179
|
-
...
|
|
180
|
-
type:
|
|
229
|
+
replaceAll: e(a())
|
|
230
|
+
}), U = o({
|
|
231
|
+
...m.entries,
|
|
232
|
+
type: i("regex"),
|
|
181
233
|
/** Regex pattern string */
|
|
182
234
|
pattern: t(),
|
|
183
235
|
/** Replacement string (supports $1, $2, etc.) */
|
|
184
236
|
replacement: t(),
|
|
185
237
|
/** Regex flags (e.g., 'gi') */
|
|
186
238
|
flags: e(t())
|
|
187
|
-
}),
|
|
188
|
-
...
|
|
189
|
-
type:
|
|
239
|
+
}), B = o({
|
|
240
|
+
...m.entries,
|
|
241
|
+
type: i("remove"),
|
|
190
242
|
/** Strings or patterns to remove */
|
|
191
243
|
targets: c(t())
|
|
192
|
-
}),
|
|
193
|
-
...
|
|
194
|
-
type:
|
|
244
|
+
}), w = o({
|
|
245
|
+
...m.entries,
|
|
246
|
+
type: i("custom"),
|
|
195
247
|
/** Custom processor function */
|
|
196
|
-
processor:
|
|
197
|
-
(
|
|
248
|
+
processor: h(
|
|
249
|
+
(u) => typeof u == "function",
|
|
198
250
|
"processor must be a function"
|
|
199
251
|
)
|
|
200
|
-
}),
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
]),
|
|
252
|
+
}), H = g("type", [
|
|
253
|
+
F,
|
|
254
|
+
U,
|
|
255
|
+
B,
|
|
256
|
+
w
|
|
257
|
+
]), j = o({
|
|
206
258
|
/** Custom compiler rules to apply */
|
|
207
|
-
customRules: e(c(
|
|
259
|
+
customRules: e(c(H), []),
|
|
208
260
|
/** Skip default compiler rules */
|
|
209
|
-
ignoreDefaultRules: e(
|
|
210
|
-
}),
|
|
261
|
+
ignoreDefaultRules: e(a(), !1)
|
|
262
|
+
}), q = o({
|
|
211
263
|
/**
|
|
212
264
|
* External validation handler called before save completes.
|
|
213
265
|
* Return false to cancel the save operation.
|
|
214
266
|
*/
|
|
215
267
|
externalValidation: e(
|
|
216
|
-
|
|
217
|
-
(
|
|
268
|
+
h(
|
|
269
|
+
(u) => typeof u == "function",
|
|
218
270
|
"externalValidation must be a function"
|
|
219
271
|
)
|
|
220
272
|
)
|
|
221
|
-
}),
|
|
273
|
+
}), V = o({
|
|
222
274
|
// Required sections
|
|
223
275
|
/** Identity configuration (required) */
|
|
224
|
-
identity:
|
|
276
|
+
identity: R,
|
|
225
277
|
/** Partner configuration (required) */
|
|
226
|
-
partner:
|
|
278
|
+
partner: T,
|
|
227
279
|
// Optional sections (with defaults)
|
|
228
280
|
/** Template content and presets */
|
|
229
|
-
template: e(
|
|
281
|
+
template: e(L, {}),
|
|
230
282
|
/** Editor settings */
|
|
231
|
-
editor: e(
|
|
283
|
+
editor: e(M, {}),
|
|
232
284
|
/** UI configuration */
|
|
233
|
-
ui: e(
|
|
285
|
+
ui: e(P, {}),
|
|
234
286
|
/** Feature toggles */
|
|
235
|
-
features: e(
|
|
287
|
+
features: e(v, {}),
|
|
236
288
|
/** Block configuration */
|
|
237
|
-
blocks: e(
|
|
289
|
+
blocks: e(x, {}),
|
|
238
290
|
/** Compiler configuration */
|
|
239
|
-
compiler: e(
|
|
291
|
+
compiler: e(j, {}),
|
|
240
292
|
/** Callbacks and event handlers */
|
|
241
|
-
callbacks: e(
|
|
293
|
+
callbacks: e(q, {})
|
|
242
294
|
});
|
|
243
295
|
export {
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
296
|
+
x as BlocksSchema,
|
|
297
|
+
q as CallbacksSchema,
|
|
298
|
+
H as CompilerRuleSchema,
|
|
299
|
+
j as CompilerSchema,
|
|
300
|
+
D as CustomBlockTypeSchema,
|
|
301
|
+
w as CustomRuleSchema,
|
|
302
|
+
N as DefaultBlockTypeSchema,
|
|
251
303
|
A as DynamicContentSchema,
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
304
|
+
M as EditorSchema,
|
|
305
|
+
O as EmailHeaderSchema,
|
|
306
|
+
C as FallbackFontSchema,
|
|
307
|
+
v as FeaturesSchema,
|
|
308
|
+
V as GuidoConfigSchema,
|
|
309
|
+
R as IdentitySchema,
|
|
310
|
+
I as LegacyRecommendationConfigSchema,
|
|
311
|
+
d as MessageType,
|
|
312
|
+
T as PartnerSchema,
|
|
313
|
+
r as ProductType,
|
|
314
|
+
U as RegexRuleSchema,
|
|
315
|
+
B as RemoveRuleSchema,
|
|
316
|
+
F as ReplaceRuleSchema,
|
|
317
|
+
E as TemplateMigrationSchema,
|
|
318
|
+
L as TemplateSchema,
|
|
319
|
+
P as UISchema
|
|
266
320
|
};
|
|
@@ -3,7 +3,7 @@ import i from "./Guido.vue2.js";
|
|
|
3
3
|
import a from "../_virtual/_plugin-vue2_normalizer.js";
|
|
4
4
|
var t = function() {
|
|
5
5
|
var o = this, r = o._self._c, e = o._self._setupProxy;
|
|
6
|
-
return r("div", { ref: "wrapperRef", staticClass: "guido-editor__wrapper", class: { "guido-editor__no-header": e.noHeader } }, [r(e.HeaderWrapper, { ref: "headerWrapperRef" }),
|
|
6
|
+
return r("div", { ref: "wrapperRef", staticClass: "guido-editor__wrapper", class: { "guido-editor__no-header": e.noHeader } }, [r(e.HeaderWrapper, { ref: "headerWrapperRef" }), e.editorStore.isPreviewModeOpen ? r(e.PreviewContainer) : o._e(), r("div", { directives: [{ name: "show", rawName: "v-show", value: !e.previewStore.isLoaded, expression: "!previewStore.isLoaded" }], staticClass: "guido-editor__container", class: { "guido-editor__no-header": e.noHeader }, attrs: { id: "guido-editor" } }), r(e.Toaster), r(e.FilterSelectionDrawer), r(e.SaveAsTemplateDrawer), e.isTestPartner() ? o._e() : r(e.OnboardingWrapper, { on: { "onboarding-finished": function(p) {
|
|
7
7
|
return e.emit("onboarding:finished");
|
|
8
8
|
} } }), r(e.UnsubscribeWrapper), r(e.LoadingWrapper)], 1);
|
|
9
9
|
}, n = [], s = /* @__PURE__ */ a(
|
|
@@ -12,9 +12,9 @@ var t = function() {
|
|
|
12
12
|
n,
|
|
13
13
|
!1,
|
|
14
14
|
null,
|
|
15
|
-
"
|
|
15
|
+
"428c209a"
|
|
16
16
|
);
|
|
17
|
-
const
|
|
17
|
+
const u = s.exports;
|
|
18
18
|
export {
|
|
19
|
-
|
|
19
|
+
u as default
|
|
20
20
|
};
|