@useinsider/guido 3.19.0-beta.4b9be3a → 3.19.0-beta.575d19c
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 +21 -3
- package/dist/@types/config/schemas.js +76 -67
- package/dist/components/Guido.vue.js +6 -6
- package/dist/components/Guido.vue2.js +94 -91
- package/dist/components/organisms/AutoSaveController.vue2.js +18 -8
- package/dist/components/organisms/base/Toaster.vue2.js +13 -12
- package/dist/components/organisms/extensions/recommendation/AssignStrategyDrawer.vue.js +13 -11
- package/dist/components/organisms/extensions/recommendation/AssignStrategyDrawer.vue2.js +78 -57
- package/dist/components/organisms/extensions/recommendation/LegacyStrategyUpdatedModal.vue.js +18 -0
- package/dist/components/organisms/extensions/recommendation/LegacyStrategyUpdatedModal.vue2.js +25 -0
- package/dist/components/organisms/extensions/recommendation/RemoveStrategyModal.vue2.js +28 -42
- package/dist/components/organisms/header/AutoSaveStatus.vue.js +17 -0
- package/dist/components/organisms/header/AutoSaveStatus.vue2.js +25 -0
- package/dist/components/organisms/header/EditorActions.vue.js +13 -13
- package/dist/components/organisms/header/EditorActions.vue2.js +35 -53
- package/dist/components/organisms/header/EditorActionsMenu.vue.js +20 -0
- package/dist/components/organisms/header/EditorActionsMenu.vue2.js +98 -0
- package/dist/components/organisms/header/HeaderWrapper.vue.js +6 -6
- package/dist/components/organisms/header/HeaderWrapper.vue2.js +9 -17
- package/dist/components/organisms/header/LeftSlot.vue.js +5 -5
- package/dist/components/organisms/header/LeftSlot.vue2.js +32 -23
- package/dist/components/organisms/header/MiddleSlot.vue.js +4 -4
- package/dist/components/organisms/header/MiddleSlot.vue2.js +8 -7
- package/dist/components/organisms/header/RightSlot.vue.js +9 -8
- package/dist/components/organisms/header/RightSlot.vue2.js +13 -18
- package/dist/components/organisms/header/accessibility/AccessibilityToolbar.vue.js +18 -0
- package/dist/components/organisms/header/accessibility/AccessibilityToolbar.vue2.js +37 -0
- package/dist/components/organisms/header/accessibility/ColorVisionSelect.vue.js +22 -0
- package/dist/components/organisms/header/accessibility/ColorVisionSelect.vue2.js +48 -0
- package/dist/components/organisms/onboarding/EditorTabBarOnboarding.vue.js +19 -0
- package/dist/components/organisms/onboarding/EditorTabBarOnboarding.vue2.js +90 -0
- package/dist/components/organisms/onboarding/OnboardingWrapper.vue.js +12 -12
- package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +56 -34
- package/dist/components/organisms/onboarding/RecommendationLegacyStrategyOnboarding.vue.js +21 -0
- package/dist/components/organisms/onboarding/RecommendationLegacyStrategyOnboarding.vue2.js +46 -0
- package/dist/components/organisms/onboarding/RecommendationStrategyOnboarding.vue.js +21 -0
- package/dist/components/organisms/onboarding/RecommendationStrategyOnboarding.vue2.js +47 -0
- package/dist/composables/useAccessibilityApi.js +45 -0
- package/dist/composables/useActionsApi.js +44 -43
- package/dist/composables/useCodeEditorApi.js +23 -9
- package/dist/composables/useCortexBlueprintBridge.js +54 -120
- package/dist/composables/useCustomInterfaceAppearance.js +67 -52
- package/dist/composables/useEmailTemplateApplier.js +51 -96
- package/dist/composables/useHtmlValidator.js +87 -82
- package/dist/composables/useLegacyStrategyConversion.js +61 -0
- package/dist/composables/useRecommendation.js +40 -35
- package/dist/composables/useStripo.js +30 -30
- package/dist/composables/useToaster.js +14 -20
- package/dist/composables/useTranslations.js +3 -2
- package/dist/composables/useVersionHistoryApi.js +33 -24
- package/dist/config/i18n/en/labels.json.js +36 -4
- package/dist/config/i18n/en/tooltips.json.js +2 -1
- package/dist/enums/extensions/recommendationBlock.js +49 -33
- package/dist/extensions/Blocks/Recommendation/block.js +61 -42
- package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +21 -20
- package/dist/extensions/Blocks/Recommendation/controls/main/index.js +100 -94
- package/dist/extensions/Blocks/Recommendation/controls/main/strategy.js +130 -55
- package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +74 -74
- package/dist/extensions/Blocks/Recommendation/store/recommendation.js +273 -92
- package/dist/extensions/Blocks/Recommendation/utils/legacyStrategyMigration.js +42 -0
- package/dist/extensions/Blocks/Recommendation/utils/nodeConfigWriter.js +26 -16
- package/dist/extensions/Blocks/Recommendation/utils/strategyCommit.js +24 -0
- package/dist/extensions/Blocks/Recommendation/validation/requiredFields.js +21 -12
- package/dist/guido.css +1 -1
- package/dist/services/recommendationApi.js +46 -37
- package/dist/sprite.svg +6 -0
- package/dist/src/@types/config/schemas.d.ts +18 -0
- package/dist/src/components/organisms/AutoSaveController.vue.d.ts +3 -1
- package/dist/src/components/organisms/header/AutoSaveStatus.vue.d.ts +2 -0
- package/dist/src/components/organisms/header/EditorActionsMenu.vue.d.ts +2 -0
- package/dist/src/components/organisms/header/HeaderWrapper.vue.d.ts +1 -3
- package/dist/src/components/organisms/header/RightSlot.vue.d.ts +1 -3
- package/dist/src/components/organisms/header/accessibility/AccessibilityToolbar.vue.d.ts +2 -0
- package/dist/src/components/organisms/header/accessibility/ColorVisionSelect.vue.d.ts +2 -0
- package/dist/src/components/organisms/onboarding/EditorTabBarOnboarding.vue.d.ts +2 -0
- package/dist/src/components/organisms/onboarding/RecommendationLegacyStrategyOnboarding.vue.d.ts +2 -0
- package/dist/src/components/organisms/onboarding/RecommendationStrategyOnboarding.vue.d.ts +2 -0
- package/dist/src/composables/useAccessibilityApi.d.ts +13 -0
- package/dist/src/composables/useActionsApi.d.ts +2 -2
- package/dist/src/composables/useConfig.d.ts +6 -0
- package/dist/src/composables/useCortexBlueprintBridge.d.ts +3 -4
- package/dist/src/composables/useEmailTemplateApplier.d.ts +5 -26
- package/dist/src/composables/useLegacyStrategyConversion.d.ts +3 -0
- package/dist/src/enums/extensions/recommendationBlock.d.ts +7 -1
- package/dist/src/extensions/Blocks/Recommendation/block.d.ts +10 -0
- package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +1 -0
- package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +1 -1
- package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +2 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/strategy.d.ts +10 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +7 -2
- package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +162 -1
- package/dist/src/extensions/Blocks/Recommendation/utils/legacyStrategyMigration.d.ts +32 -0
- package/dist/src/extensions/Blocks/Recommendation/utils/strategyCommit.d.ts +14 -0
- package/dist/src/extensions/Blocks/Recommendation/validation/requiredFields.d.ts +4 -0
- package/dist/src/services/recommendationApi.d.ts +2 -1
- package/dist/src/stores/config.d.ts +342 -0
- package/dist/src/stores/editor.d.ts +109 -0
- package/dist/src/stores/guido-email-editor.d.ts +10 -32
- package/dist/src/stores/onboarding.d.ts +1865 -136
- package/dist/src/stores/version-history.d.ts +1 -1
- package/dist/src/utils/stripoEditorApi.d.ts +4 -0
- package/dist/src/utils/timeUtil.d.ts +5 -0
- package/dist/static/assets/icons/filled-arrow-rising.svg.js +5 -0
- package/dist/static/assets/icons/line-info.svg.js +5 -0
- package/dist/static/styles/components/accessibility.css.js +234 -0
- package/dist/static/styles/components/recommendation-strategy.css.js +104 -9
- package/dist/static/styles/components/skeleton.css.js +23 -0
- package/dist/static/styles/variables.css.js +2 -0
- package/dist/stores/config.js +74 -60
- package/dist/stores/editor.js +7 -4
- package/dist/stores/guido-email-editor.js +1 -3
- package/dist/stores/onboarding.js +79 -47
- package/dist/stores/unsubscribe.js +3 -3
- package/dist/utils/stripoEditorApi.js +11 -0
- package/dist/utils/templatePreparation.js +55 -55
- package/dist/utils/timeUtil.js +6 -17
- package/package.json +1 -1
- package/dist/components/organisms/header/AutoSaveToggle.vue.js +0 -22
- package/dist/components/organisms/header/AutoSaveToggle.vue2.js +0 -19
- /package/dist/src/components/organisms/{header/AutoSaveToggle.vue.d.ts → extensions/recommendation/LegacyStrategyUpdatedModal.vue.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -95,9 +95,11 @@ import type { GuidoConfigInput } from '@useinsider/guido';
|
|
|
95
95
|
const config: GuidoConfigInput = {
|
|
96
96
|
// Required: Identity
|
|
97
97
|
identity: {
|
|
98
|
-
templateId: string,
|
|
99
|
-
userId: string,
|
|
100
|
-
variationId?: string,
|
|
98
|
+
templateId: string, // Required - Template identifier
|
|
99
|
+
userId: string, // Required - User identifier
|
|
100
|
+
variationId?: string, // Optional - A/B test variation
|
|
101
|
+
campaignId?: string, // Optional - Numeric campaign id; absent for templates/modules
|
|
102
|
+
templateLibraryId?: string, // Optional - Numeric template-library id; absent for campaigns/modules
|
|
101
103
|
},
|
|
102
104
|
|
|
103
105
|
// Required: Partner
|
|
@@ -184,6 +186,22 @@ const config: GuidoConfigInput = {
|
|
|
184
186
|
};
|
|
185
187
|
```
|
|
186
188
|
|
|
189
|
+
### `identity` ids
|
|
190
|
+
|
|
191
|
+
`templateId` is the editor's **document** identity (a uuid / Stripo doc id) and never addresses a
|
|
192
|
+
backend resource. `campaignId` and `templateLibraryId` are the **numeric** ids of the surface the
|
|
193
|
+
editor was opened on, and they are what Guido uses to resolve host-scoped endpoints — most visibly
|
|
194
|
+
when converting a legacy recommendation block into a reusable strategy.
|
|
195
|
+
|
|
196
|
+
| Surface | `campaignId` | `templateLibraryId` |
|
|
197
|
+
|---------|--------------|---------------------|
|
|
198
|
+
| Campaign editor | the campaign id | absent |
|
|
199
|
+
| Saved template editor | absent | the template-library id |
|
|
200
|
+
| Module editor / unsaved template | absent | absent |
|
|
201
|
+
|
|
202
|
+
Pass only the one that applies. A campaign id takes precedence when both are present, and when
|
|
203
|
+
neither is supplied Guido falls back to campaign scope — so a module keeps working unchanged.
|
|
204
|
+
|
|
187
205
|
### `ready` prop
|
|
188
206
|
|
|
189
207
|
```vue
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { ModuleFolderDefaults as
|
|
2
|
-
import { object as
|
|
1
|
+
import { ModuleFolderDefaults as S } from "../../enums/defaults.js";
|
|
2
|
+
import { object as o, number as n, optional as e, string as t, picklist as l, pipe as m, minLength as b, custom as h, boolean as a, array as c, transform as C, record as k, fallback as R, literal as u, looseObject as g, variant as T, union as y, unknown as r, lazy as I } from "../../node_modules/valibot/dist/index.js";
|
|
3
3
|
const p = {
|
|
4
4
|
/** Promotional/marketing emails */
|
|
5
5
|
PROMOTIONAL: 1,
|
|
6
6
|
/** Transactional/system emails */
|
|
7
7
|
TRANSACTIONAL: 2
|
|
8
|
-
},
|
|
8
|
+
}, i = {
|
|
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
|
-
}, A =
|
|
15
|
+
}, A = o({
|
|
16
16
|
/** Unique identifier for the template being edited */
|
|
17
17
|
templateId: m(
|
|
18
18
|
t(),
|
|
@@ -24,13 +24,21 @@ const p = {
|
|
|
24
24
|
b(1, "userId is required")
|
|
25
25
|
),
|
|
26
26
|
/** Optional variation ID for A/B testing */
|
|
27
|
-
variationId: e(t())
|
|
28
|
-
|
|
27
|
+
variationId: e(t()),
|
|
28
|
+
/** Optional numeric campaign ID of the host campaign; absent for templates and modules */
|
|
29
|
+
campaignId: e(t()),
|
|
30
|
+
/**
|
|
31
|
+
* Optional numeric template-library id of the host template; absent for campaigns and
|
|
32
|
+
* modules. Distinct from `templateId`, which is the editor's document identity (a uuid /
|
|
33
|
+
* Stripo doc id) and is never an endpoint id.
|
|
34
|
+
*/
|
|
35
|
+
templateLibraryId: e(t())
|
|
36
|
+
}), L = o({
|
|
29
37
|
/** Fallback font name (e.g., "Georgia") */
|
|
30
38
|
name: t(),
|
|
31
39
|
/** Fallback font family (e.g., "serif" or "sans-serif") */
|
|
32
40
|
family: t()
|
|
33
|
-
}), M =
|
|
41
|
+
}), M = o({
|
|
34
42
|
/** Partner/organization name (required) */
|
|
35
43
|
name: m(
|
|
36
44
|
t(),
|
|
@@ -38,23 +46,23 @@ const p = {
|
|
|
38
46
|
),
|
|
39
47
|
/** Product type identifier */
|
|
40
48
|
productType: e(
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
49
|
+
l([
|
|
50
|
+
i.EMAIL,
|
|
51
|
+
i.ARCHITECT,
|
|
52
|
+
i.UNSUBSCRIBE_PAGES
|
|
45
53
|
]),
|
|
46
|
-
|
|
54
|
+
i.EMAIL
|
|
47
55
|
),
|
|
48
56
|
/** Message type (promotional or transactional) */
|
|
49
57
|
messageType: e(
|
|
50
|
-
|
|
58
|
+
l([p.PROMOTIONAL, p.TRANSACTIONAL]),
|
|
51
59
|
p.PROMOTIONAL
|
|
52
60
|
),
|
|
53
61
|
/** Display name for the current user */
|
|
54
62
|
username: e(t(), "Guido User"),
|
|
55
63
|
/** Fallback font settings from partner settings — used to match backend size calculation */
|
|
56
64
|
fallbackFont: e(L)
|
|
57
|
-
}), E =
|
|
65
|
+
}), E = o({
|
|
58
66
|
/** Display text for the dynamic content */
|
|
59
67
|
text: t(),
|
|
60
68
|
/** Template variable value (e.g., {{username}}) */
|
|
@@ -63,33 +71,33 @@ const p = {
|
|
|
63
71
|
fallback: e(t()),
|
|
64
72
|
/** Optional formatting options */
|
|
65
73
|
format: e(
|
|
66
|
-
|
|
74
|
+
o({
|
|
67
75
|
key: t(),
|
|
68
76
|
value: t()
|
|
69
77
|
})
|
|
70
78
|
)
|
|
71
|
-
}),
|
|
79
|
+
}), f = I(() => g({
|
|
72
80
|
text: e(t()),
|
|
73
81
|
// eslint-disable-next-line camelcase -- backend field name
|
|
74
82
|
tag_text: e(t()),
|
|
75
83
|
value: e(t()),
|
|
76
|
-
children: e(c(
|
|
84
|
+
children: e(c(f)),
|
|
77
85
|
// eslint-disable-next-line camelcase -- backend field name
|
|
78
|
-
select_items: e(c(
|
|
86
|
+
select_items: e(c(f))
|
|
79
87
|
})), N = k(
|
|
80
88
|
t(),
|
|
81
|
-
R(c(
|
|
89
|
+
R(c(f), [])
|
|
82
90
|
), P = g({
|
|
83
91
|
/** Block ID (matches the dictionary key and the legacy HTML element id) */
|
|
84
92
|
id: e(n()),
|
|
85
93
|
/** Decimal places for price display (legacy data may use string or number) */
|
|
86
|
-
decimalCount: e(
|
|
94
|
+
decimalCount: e(y([t(), n()])),
|
|
87
95
|
/** Pinned product IDs (empty array when filter-driven) */
|
|
88
96
|
productIds: e(c(r())),
|
|
89
97
|
/** Whether the block requested live products at send time */
|
|
90
|
-
sendProductRequestFlag: e(
|
|
98
|
+
sendProductRequestFlag: e(a()),
|
|
91
99
|
/** Whether to randomize product order */
|
|
92
|
-
shuffleProducts: e(
|
|
100
|
+
shuffleProducts: e(a()),
|
|
93
101
|
/** Filter rules driving product selection */
|
|
94
102
|
filters: e(c(r())),
|
|
95
103
|
/** Currency code (e.g. 'EUR') — sometimes absent in legacy data */
|
|
@@ -109,22 +117,22 @@ const p = {
|
|
|
109
117
|
/** Mobile-only padding (left) */
|
|
110
118
|
mobileLeftPadding: e(n()),
|
|
111
119
|
/** Disable responsive scaling */
|
|
112
|
-
unresponsive: e(
|
|
120
|
+
unresponsive: e(a()),
|
|
113
121
|
/** Layout orientation ('vertical' | 'horizontal') */
|
|
114
122
|
orientation: e(t()),
|
|
115
123
|
/** Whether long text is trimmed */
|
|
116
|
-
textTrimming: e(
|
|
124
|
+
textTrimming: e(a()),
|
|
117
125
|
/** Block type marker used by some legacy variants */
|
|
118
126
|
blockType: e(t()),
|
|
119
127
|
/** Size variant marker (legacy data may use string or number) */
|
|
120
|
-
size: e(
|
|
128
|
+
size: e(y([t(), n()])),
|
|
121
129
|
/** Vertical responsiveness flag (legacy size=1 variants) */
|
|
122
|
-
verticalResponsiveness: e(
|
|
130
|
+
verticalResponsiveness: e(a()),
|
|
123
131
|
/** Legacy "Move to next line" price placement toggle (cardPricePlacement.js) */
|
|
124
|
-
isPriceMovedToNextLine: e(
|
|
132
|
+
isPriceMovedToNextLine: e(a()),
|
|
125
133
|
/** Legacy "Hide if same as discounted" / delete-price-for-zero-sale toggle */
|
|
126
|
-
isPriceDeletedForZeroSale: e(
|
|
127
|
-
}), v =
|
|
134
|
+
isPriceDeletedForZeroSale: e(a())
|
|
135
|
+
}), v = o({
|
|
128
136
|
/**
|
|
129
137
|
* Legacy recommendation block configs keyed by block ID.
|
|
130
138
|
* Pass this when loading a template authored with the v1
|
|
@@ -135,7 +143,7 @@ const p = {
|
|
|
135
143
|
k(t(), P),
|
|
136
144
|
{}
|
|
137
145
|
)
|
|
138
|
-
}), x =
|
|
146
|
+
}), x = o({
|
|
139
147
|
/** Initial HTML content */
|
|
140
148
|
html: e(t(), ""),
|
|
141
149
|
/** Initial CSS content */
|
|
@@ -157,7 +165,7 @@ const p = {
|
|
|
157
165
|
/** Selected unsubscribe page IDs */
|
|
158
166
|
selectedUnsubscribePages: e(c(n()), []),
|
|
159
167
|
/** Force recreate template in Stripo storage (use true when updating externally modified templates) */
|
|
160
|
-
forceRecreate: e(
|
|
168
|
+
forceRecreate: e(a(), !1),
|
|
161
169
|
/**
|
|
162
170
|
* Consumer-persisted tracking-id high-water mark (SD-141414). Used as the id floor
|
|
163
171
|
* during migration so a rolled-back document never re-mints retired tracking ids.
|
|
@@ -174,12 +182,12 @@ const p = {
|
|
|
174
182
|
),
|
|
175
183
|
/** Migration-only inputs (legacy block configs) */
|
|
176
184
|
migration: e(v, {})
|
|
177
|
-
}), D =
|
|
185
|
+
}), D = o({
|
|
178
186
|
/** Sender display name */
|
|
179
187
|
senderName: e(t(), ""),
|
|
180
188
|
/** Email subject line */
|
|
181
189
|
subject: e(t(), "")
|
|
182
|
-
}), O =
|
|
190
|
+
}), O = o({
|
|
183
191
|
/** Locale for the editor UI */
|
|
184
192
|
locale: e(t(), "en"),
|
|
185
193
|
/** Path to translations object */
|
|
@@ -189,39 +197,40 @@ const p = {
|
|
|
189
197
|
/** Email header settings */
|
|
190
198
|
emailHeader: e(D, { senderName: "", subject: "" }),
|
|
191
199
|
/** Folder name for user-saved modules (used by Stripo plugin panel for path construction) */
|
|
192
|
-
savedModulesFolderName: e(t(),
|
|
200
|
+
savedModulesFolderName: e(t(), S.SAVED_MODULES),
|
|
193
201
|
/** Folder name for default/prebuilt modules (used by Stripo plugin panel for path construction) */
|
|
194
|
-
defaultModulesFolderName: e(t(),
|
|
195
|
-
}), F =
|
|
202
|
+
defaultModulesFolderName: e(t(), S.DEFAULT_MODULES)
|
|
203
|
+
}), F = o({
|
|
196
204
|
/** Whether to show the header bar */
|
|
197
|
-
showHeader: e(
|
|
205
|
+
showHeader: e(a(), !0),
|
|
198
206
|
/** Custom label for back button (if shown) */
|
|
199
207
|
backButtonLabel: e(t())
|
|
200
|
-
}), U =
|
|
208
|
+
}), U = o({
|
|
201
209
|
/** Enable dynamic content insertion */
|
|
202
|
-
dynamicContent: e(
|
|
210
|
+
dynamicContent: e(a(), !0),
|
|
203
211
|
/** Enable save as template functionality */
|
|
204
|
-
saveAsTemplate: e(
|
|
212
|
+
saveAsTemplate: e(a(), !0),
|
|
205
213
|
/** Enable version history */
|
|
206
|
-
versionHistory: e(
|
|
214
|
+
versionHistory: e(a(), !0),
|
|
207
215
|
/** Enable test message sending */
|
|
208
|
-
testMessage: e(
|
|
216
|
+
testMessage: e(a(), !0),
|
|
209
217
|
/** Enable display conditions */
|
|
210
|
-
displayConditions: e(
|
|
218
|
+
displayConditions: e(a(), !0),
|
|
211
219
|
/** Enable unsubscribe block */
|
|
212
|
-
unsubscribe: e(
|
|
220
|
+
unsubscribe: e(a(), !0),
|
|
213
221
|
/** Disable modules panel in the editor */
|
|
214
|
-
modulesDisabled: e(
|
|
222
|
+
modulesDisabled: e(a(), !1),
|
|
215
223
|
/** Enable Liquid template syntax */
|
|
216
|
-
liquidSyntax: e(
|
|
224
|
+
liquidSyntax: e(a(), !1),
|
|
217
225
|
/** Enable autosave (3-min interval + tab-hide). User toggles on/off from the header. */
|
|
218
|
-
autosave: e(
|
|
226
|
+
autosave: e(a(), !1),
|
|
227
|
+
accessibilityTesting: e(a(), !1),
|
|
219
228
|
/** Enable pre-save domain-allowlist validation (opt-in; Guido self-serves the block toaster) */
|
|
220
|
-
allowlistEnabled: e(
|
|
229
|
+
allowlistEnabled: e(a(), !1),
|
|
221
230
|
/** Enable persistent link tracking-id assignment for the click heatmap (opt-in) */
|
|
222
|
-
linkTrackingIds: e(
|
|
223
|
-
reusableRecommendationStrategy: e(
|
|
224
|
-
}), B =
|
|
231
|
+
linkTrackingIds: e(a(), !1),
|
|
232
|
+
reusableRecommendationStrategy: e(a(), !1)
|
|
233
|
+
}), B = l([
|
|
225
234
|
"amp-accordion",
|
|
226
235
|
"amp-carousel",
|
|
227
236
|
"amp-form-controls",
|
|
@@ -235,7 +244,7 @@ const p = {
|
|
|
235
244
|
"text-block",
|
|
236
245
|
"timer-block",
|
|
237
246
|
"video-block"
|
|
238
|
-
]), w =
|
|
247
|
+
]), w = l([
|
|
239
248
|
"dynamic-content",
|
|
240
249
|
"checkbox-block",
|
|
241
250
|
"radio-button-block",
|
|
@@ -243,7 +252,7 @@ const p = {
|
|
|
243
252
|
"unsubscribe-block",
|
|
244
253
|
"coupon-block",
|
|
245
254
|
"items-block"
|
|
246
|
-
]), H =
|
|
255
|
+
]), H = o({
|
|
247
256
|
/** Default blocks to exclude from the editor */
|
|
248
257
|
excludeDefaults: e(
|
|
249
258
|
c(B),
|
|
@@ -254,14 +263,14 @@ const p = {
|
|
|
254
263
|
c(w),
|
|
255
264
|
[]
|
|
256
265
|
)
|
|
257
|
-
}), d =
|
|
266
|
+
}), d = o({
|
|
258
267
|
/** Unique identifier for the rule */
|
|
259
268
|
id: t(),
|
|
260
269
|
/** Human-readable description */
|
|
261
270
|
description: e(t()),
|
|
262
271
|
/** Priority for rule ordering (lower = earlier) */
|
|
263
272
|
priority: n()
|
|
264
|
-
}), _ =
|
|
273
|
+
}), _ = o({
|
|
265
274
|
...d.entries,
|
|
266
275
|
type: u("replace"),
|
|
267
276
|
/** String to search for */
|
|
@@ -269,8 +278,8 @@ const p = {
|
|
|
269
278
|
/** Replacement string */
|
|
270
279
|
replacement: t(),
|
|
271
280
|
/** Replace all occurrences (default: false) */
|
|
272
|
-
replaceAll: e(
|
|
273
|
-
}), j =
|
|
281
|
+
replaceAll: e(a())
|
|
282
|
+
}), j = o({
|
|
274
283
|
...d.entries,
|
|
275
284
|
type: u("regex"),
|
|
276
285
|
/** Regex pattern string */
|
|
@@ -279,16 +288,16 @@ const p = {
|
|
|
279
288
|
replacement: t(),
|
|
280
289
|
/** Regex flags (e.g., 'gi') */
|
|
281
290
|
flags: e(t())
|
|
282
|
-
}), q =
|
|
291
|
+
}), q = o({
|
|
283
292
|
...d.entries,
|
|
284
293
|
type: u("remove"),
|
|
285
294
|
/** Strings or patterns to remove */
|
|
286
295
|
targets: c(t())
|
|
287
|
-
}), G =
|
|
296
|
+
}), G = o({
|
|
288
297
|
...d.entries,
|
|
289
298
|
type: u("custom"),
|
|
290
299
|
/** Custom processor function */
|
|
291
|
-
processor:
|
|
300
|
+
processor: h(
|
|
292
301
|
(s) => typeof s == "function",
|
|
293
302
|
"processor must be a function"
|
|
294
303
|
)
|
|
@@ -297,23 +306,23 @@ const p = {
|
|
|
297
306
|
j,
|
|
298
307
|
q,
|
|
299
308
|
G
|
|
300
|
-
]), z =
|
|
309
|
+
]), z = o({
|
|
301
310
|
/** Custom compiler rules to apply */
|
|
302
311
|
customRules: e(c(V), []),
|
|
303
312
|
/** Skip default compiler rules */
|
|
304
|
-
ignoreDefaultRules: e(
|
|
305
|
-
}), Z =
|
|
313
|
+
ignoreDefaultRules: e(a(), !1)
|
|
314
|
+
}), Z = o({
|
|
306
315
|
/**
|
|
307
316
|
* External validation handler called before save completes.
|
|
308
317
|
* Return false to cancel the save operation.
|
|
309
318
|
*/
|
|
310
319
|
externalValidation: e(
|
|
311
|
-
|
|
320
|
+
h(
|
|
312
321
|
(s) => typeof s == "function",
|
|
313
322
|
"externalValidation must be a function"
|
|
314
323
|
)
|
|
315
324
|
)
|
|
316
|
-
}), Q =
|
|
325
|
+
}), Q = o({
|
|
317
326
|
// Required sections
|
|
318
327
|
/** Identity configuration (required) */
|
|
319
328
|
identity: A,
|
|
@@ -344,7 +353,7 @@ export {
|
|
|
344
353
|
G as CustomRuleSchema,
|
|
345
354
|
B as DefaultBlockTypeSchema,
|
|
346
355
|
N as DynamicContentListSchema,
|
|
347
|
-
|
|
356
|
+
f as DynamicContentNodeSchema,
|
|
348
357
|
E as DynamicContentSchema,
|
|
349
358
|
O as EditorSchema,
|
|
350
359
|
D as EmailHeaderSchema,
|
|
@@ -355,7 +364,7 @@ export {
|
|
|
355
364
|
P as LegacyRecommendationConfigSchema,
|
|
356
365
|
p as MessageType,
|
|
357
366
|
M as PartnerSchema,
|
|
358
|
-
|
|
367
|
+
i as ProductType,
|
|
359
368
|
j as RegexRuleSchema,
|
|
360
369
|
q as RemoveRuleSchema,
|
|
361
370
|
_ as ReplaceRuleSchema,
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import o from "./Guido.vue2.js";
|
|
2
2
|
/* empty css */
|
|
3
|
-
import
|
|
4
|
-
var
|
|
3
|
+
import t from "../_virtual/_plugin-vue2_normalizer.js";
|
|
4
|
+
var i = function() {
|
|
5
5
|
var a = this, r = a._self._c, e = a._self._setupProxy;
|
|
6
|
-
return r("div", { ref: "wrapperRef", staticClass: "guido-editor__wrapper", class: { "guido-editor__no-header": e.noHeader } }, [r(e.HeaderWrapper, { ref: "
|
|
6
|
+
return r("div", { ref: "wrapperRef", staticClass: "guido-editor__wrapper", class: { "guido-editor__no-header": e.noHeader } }, [r(e.HeaderWrapper), r(e.AutoSaveController, { ref: "autoSaveControllerRef" }), e.editorStore.isPreviewModeOpen ? r(e.PreviewContainer) : a._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), e.isRrsEnabled || e.hasAssignedStrategy ? r(e.AssignStrategyDrawer) : a._e(), e.isRrsEnabled || e.hasAssignedStrategy ? r(e.RemoveStrategyModal) : a._e(), e.isRrsEnabled ? r(e.LegacyStrategyUpdatedModal) : a._e(), r(e.SaveAsTemplateDrawer), e.isTestPartner() ? a._e() : r(e.OnboardingWrapper, { on: { "onboarding-finished": function(_) {
|
|
7
7
|
return e.emit("onboarding:finished");
|
|
8
8
|
} } }), r(e.UnsubscribeWrapper), r(e.LoadingWrapper)], 1);
|
|
9
|
-
}, s = [], n = /* @__PURE__ */
|
|
9
|
+
}, s = [], n = /* @__PURE__ */ t(
|
|
10
10
|
o,
|
|
11
|
-
|
|
11
|
+
i,
|
|
12
12
|
s,
|
|
13
13
|
!1,
|
|
14
14
|
null,
|
|
15
|
-
"
|
|
15
|
+
"b5af7c3e"
|
|
16
16
|
);
|
|
17
17
|
const v = n.exports;
|
|
18
18
|
export {
|