@useinsider/guido 3.20.1-beta.49b58ed → 3.20.1-beta.55d63aa
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 -1
- package/dist/@types/config/schemas.js +38 -37
- package/dist/@types/display-condition.js +25 -0
- package/dist/components/Guido.vue.js +6 -6
- package/dist/components/Guido.vue2.js +101 -112
- package/dist/components/organisms/AutoSaveController.vue2.js +9 -19
- package/dist/components/organisms/display-conditions/CodeEditorField.vue.js +20 -0
- package/dist/components/organisms/display-conditions/CodeEditorField.vue2.js +30 -0
- package/dist/components/organisms/display-conditions/DisplayConditionCreateDrawer.vue.js +30 -0
- package/dist/components/organisms/display-conditions/DisplayConditionCreateDrawer.vue2.js +71 -0
- package/dist/components/organisms/display-conditions/DisplayConditionSelectDrawer.vue.js +34 -0
- package/dist/components/organisms/display-conditions/DisplayConditionSelectDrawer.vue2.js +57 -0
- package/dist/components/organisms/display-conditions/DisplayConditionsHost.vue.js +17 -0
- package/dist/components/organisms/display-conditions/DisplayConditionsHost.vue2.js +22 -0
- package/dist/components/organisms/header/AutoSaveToggle.vue.js +22 -0
- package/dist/components/organisms/header/AutoSaveToggle.vue2.js +19 -0
- package/dist/components/organisms/header/EditorActions.vue.js +13 -13
- package/dist/components/organisms/header/EditorActions.vue2.js +72 -57
- package/dist/components/organisms/header/HeaderWrapper.vue.js +6 -6
- package/dist/components/organisms/header/HeaderWrapper.vue2.js +17 -9
- package/dist/components/organisms/header/LeftSlot.vue.js +1 -1
- package/dist/components/organisms/header/LeftSlot.vue2.js +23 -28
- package/dist/components/organisms/header/MiddleSlot.vue.js +4 -4
- package/dist/components/organisms/header/MiddleSlot.vue2.js +7 -8
- package/dist/components/organisms/header/RightSlot.vue.js +8 -9
- package/dist/components/organisms/header/RightSlot.vue2.js +18 -13
- package/dist/components/organisms/onboarding/OnboardingWrapper.vue.js +12 -12
- package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +35 -60
- package/dist/composables/useBlocksConfig.js +32 -24
- package/dist/composables/useCustomInterfaceAppearance.js +41 -42
- package/dist/composables/useDisplayConditions.js +111 -0
- package/dist/composables/useLegacyStrategyConversion.js +16 -16
- package/dist/composables/useStripo.js +4 -3
- package/dist/config/i18n/en/labels.json.js +4 -36
- package/dist/config/i18n/en/tooltips.json.js +1 -2
- package/dist/enums/academy.js +1 -0
- package/dist/enums/display-condition.js +12 -0
- package/dist/extensions/Blocks/Items/block.js +43 -42
- package/dist/extensions/Blocks/Recommendation/controls/main/index.js +296 -223
- package/dist/extensions/Blocks/Recommendation/store/recommendation.js +219 -205
- package/dist/extensions/Blocks/Recommendation/utils/blockRefresh.js +19 -0
- package/dist/extensions/Blocks/Recommendation/utils/nodeConfigWriter.js +51 -36
- package/dist/extensions/Blocks/Recommendation/utils/strategyCommit.js +31 -35
- package/dist/extensions/DisplayConditions/bridge.js +17 -0
- package/dist/extensions/DisplayConditions/constants.js +17 -0
- package/dist/extensions/DisplayConditions/control.js +169 -0
- package/dist/extensions/DisplayConditions/display-conditions.css.js +201 -0
- package/dist/extensions/DisplayConditions/extension.js +28 -0
- package/dist/extensions/DisplayConditions/iconsRegistry.js +20 -0
- package/dist/extensions/DisplayConditions/library.js +25 -0
- package/dist/extensions/DisplayConditions/settingsPanel.js +17 -0
- package/dist/guido.css +1 -1
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +272 -192
- package/dist/node_modules/valibot/dist/index.js +297 -261
- package/dist/package.json.js +1 -1
- package/dist/services/displayConditionApi.js +39 -0
- package/dist/sprite.svg +0 -10
- package/dist/src/@types/config/schemas.d.ts +4 -2
- package/dist/src/@types/display-condition.d.ts +59 -0
- package/dist/src/components/organisms/AutoSaveController.vue.d.ts +1 -19
- package/dist/src/components/organisms/display-conditions/CodeEditorField.vue.d.ts +43 -0
- package/dist/src/components/organisms/header/HeaderWrapper.vue.d.ts +19 -1
- package/dist/src/components/organisms/header/RightSlot.vue.d.ts +19 -1
- package/dist/src/composables/useActionsApi.d.ts +2 -2
- package/dist/src/composables/useConfig.d.ts +2 -2
- package/dist/src/composables/useDisplayConditions.d.ts +16 -0
- package/dist/src/enums/academy.d.ts +1 -0
- package/dist/src/enums/display-condition.d.ts +15 -0
- package/dist/src/extensions/Blocks/Checkbox/controls/blockBackground/index.d.ts +1 -0
- package/dist/src/extensions/Blocks/CouponBlock/controls/index.d.ts +8 -0
- package/dist/src/extensions/Blocks/Items/controls/index.d.ts +40 -0
- package/dist/src/extensions/Blocks/RadioButton/controls/blockBackground/index.d.ts +1 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/blockBackground/index.d.ts +1 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +11 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/customAttribute/index.d.ts +7 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +2 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +18 -3
- package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +7 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +7 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +7 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +7 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +7 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/title/index.d.ts +7 -0
- package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +8 -1
- package/dist/src/extensions/Blocks/Recommendation/utils/blockRefresh.d.ts +17 -0
- package/dist/src/extensions/Blocks/Recommendation/utils/nodeConfigWriter.d.ts +7 -0
- package/dist/src/extensions/Blocks/_Boilerplate/controls/blockBackground/index.d.ts +1 -0
- package/dist/src/extensions/Blocks/controlFactories.d.ts +22 -0
- package/dist/src/extensions/DisplayConditions/bridge.d.ts +6 -0
- package/dist/src/extensions/DisplayConditions/constants.d.ts +14 -0
- package/dist/src/extensions/DisplayConditions/control.d.ts +21 -0
- package/dist/src/extensions/DisplayConditions/extension.d.ts +2 -0
- package/dist/src/extensions/DisplayConditions/iconsRegistry.d.ts +4 -0
- package/dist/src/extensions/DisplayConditions/library.d.ts +8 -0
- package/dist/src/extensions/DisplayConditions/settingsPanel.d.ts +5 -0
- package/dist/src/mock/api/display-conditions.d.ts +2 -0
- package/dist/src/services/displayConditionApi.d.ts +9 -0
- package/dist/src/stores/autosave.d.ts +1 -73
- package/dist/src/stores/config.d.ts +20 -20
- package/dist/src/stores/display-condition.d.ts +81 -0
- package/dist/src/stores/editor.d.ts +0 -109
- package/dist/src/stores/onboarding.d.ts +21 -953
- package/dist/src/stores/version-history.d.ts +1 -1
- package/dist/src/utils/displayCondition.d.ts +4 -0
- package/dist/src/utils/protectTableText.d.ts +2 -0
- package/dist/src/utils/timeUtil.d.ts +0 -5
- package/dist/static/styles/components/button.css.js +5 -0
- package/dist/static/styles/variables.css.js +0 -2
- package/dist/stores/autosave.js +7 -12
- package/dist/stores/display-condition.js +28 -0
- package/dist/stores/editor.js +4 -7
- package/dist/stores/onboarding.js +21 -48
- package/dist/utils/displayCondition.js +21 -0
- package/dist/utils/pairProductVariables.js +15 -14
- package/dist/utils/protectTableText.js +22 -0
- package/dist/utils/timeUtil.js +17 -6
- package/package.json +3 -3
- package/dist/components/organisms/header/AutoSaveStatus.vue.js +0 -17
- package/dist/components/organisms/header/AutoSaveStatus.vue2.js +0 -25
- package/dist/components/organisms/header/EditorActionsMenu.vue.js +0 -20
- package/dist/components/organisms/header/EditorActionsMenu.vue2.js +0 -98
- package/dist/components/organisms/header/accessibility/AccessibilityToolbar.vue.js +0 -18
- package/dist/components/organisms/header/accessibility/AccessibilityToolbar.vue2.js +0 -37
- package/dist/components/organisms/header/accessibility/ColorVisionSelect.vue.js +0 -22
- package/dist/components/organisms/header/accessibility/ColorVisionSelect.vue2.js +0 -48
- package/dist/components/organisms/onboarding/EditorTabBarOnboarding.vue.js +0 -19
- package/dist/components/organisms/onboarding/EditorTabBarOnboarding.vue2.js +0 -90
- package/dist/composables/useAccessibilityApi.js +0 -45
- package/dist/src/components/organisms/onboarding/EditorTabBarOnboarding.vue.d.ts +0 -2
- package/dist/src/composables/useAccessibilityApi.d.ts +0 -13
- package/dist/static/styles/components/accessibility.css.js +0 -234
- /package/dist/src/components/organisms/{header/AutoSaveStatus.vue.d.ts → display-conditions/DisplayConditionCreateDrawer.vue.d.ts} +0 -0
- /package/dist/src/components/organisms/{header/EditorActionsMenu.vue.d.ts → display-conditions/DisplayConditionSelectDrawer.vue.d.ts} +0 -0
- /package/dist/src/components/organisms/{header/accessibility/AccessibilityToolbar.vue.d.ts → display-conditions/DisplayConditionsHost.vue.d.ts} +0 -0
- /package/dist/src/components/organisms/header/{accessibility/ColorVisionSelect.vue.d.ts → AutoSaveToggle.vue.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -166,7 +166,7 @@ const config: GuidoConfigInput = {
|
|
|
166
166
|
allowlistEnabled?: boolean, // Default: false - Pre-save domain-allowlist check (opt-in). Guido self-serves the block toaster (role lookup, deep-link, copy from window.trans).
|
|
167
167
|
allowSaveWithErrors?: boolean, // Default: true - Allow the validation drawer's "Save and Continue" soft-save. Set false to hard-block invalid saves (transactional + unsubscribe pages).
|
|
168
168
|
reusableRecommendationStrategy?: boolean, // Default: false - Assign an RRS strategy to recommendation blocks instead of per-block algorithm/filters/shuffle/product-count settings.
|
|
169
|
-
|
|
169
|
+
externalDisplayConditions?: boolean, // Default: false - Add a Conditions tab to the settings panel with create/select drawers for reusable Liquid/Pongo display conditions.
|
|
170
170
|
},
|
|
171
171
|
|
|
172
172
|
// Optional: Callbacks
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ModuleFolderDefaults as S } from "../../enums/defaults.js";
|
|
2
|
-
import { object as a, number as s, optional as e, string as t, picklist as m, pipe as i, minLength as b, custom as k, boolean as o, array as
|
|
2
|
+
import { object as a, number as s, optional as e, string as t, picklist as m, pipe as i, minLength as b, custom as k, boolean as o, array as n, transform as y, unknown as r, record as g, fallback as R, literal as u, looseObject as C, variant as I, union as h, lazy as T } from "../../node_modules/valibot/dist/index.js";
|
|
3
3
|
const p = {
|
|
4
4
|
/** Promotional/marketing emails */
|
|
5
5
|
PROMOTIONAL: 1,
|
|
@@ -76,30 +76,30 @@ const p = {
|
|
|
76
76
|
value: t()
|
|
77
77
|
})
|
|
78
78
|
)
|
|
79
|
-
}), f =
|
|
79
|
+
}), f = T(() => C({
|
|
80
80
|
text: e(t()),
|
|
81
81
|
// eslint-disable-next-line camelcase -- backend field name
|
|
82
82
|
tag_text: e(t()),
|
|
83
83
|
value: e(t()),
|
|
84
|
-
children: e(
|
|
84
|
+
children: e(n(f)),
|
|
85
85
|
// eslint-disable-next-line camelcase -- backend field name
|
|
86
|
-
select_items: e(
|
|
87
|
-
})),
|
|
86
|
+
select_items: e(n(f))
|
|
87
|
+
})), x = g(
|
|
88
88
|
t(),
|
|
89
|
-
R(
|
|
90
|
-
),
|
|
89
|
+
R(n(f), [])
|
|
90
|
+
), D = C({
|
|
91
91
|
/** Block ID (matches the dictionary key and the legacy HTML element id) */
|
|
92
92
|
id: e(s()),
|
|
93
93
|
/** Decimal places for price display (legacy data may use string or number) */
|
|
94
94
|
decimalCount: e(h([t(), s()])),
|
|
95
95
|
/** Pinned product IDs (empty array when filter-driven) */
|
|
96
|
-
productIds: e(
|
|
96
|
+
productIds: e(n(r())),
|
|
97
97
|
/** Whether the block requested live products at send time */
|
|
98
98
|
sendProductRequestFlag: e(o()),
|
|
99
99
|
/** Whether to randomize product order */
|
|
100
100
|
shuffleProducts: e(o()),
|
|
101
101
|
/** Filter rules driving product selection */
|
|
102
|
-
filters: e(
|
|
102
|
+
filters: e(n(r())),
|
|
103
103
|
/** Currency code (e.g. 'EUR') — sometimes absent in legacy data */
|
|
104
104
|
currency: e(t()),
|
|
105
105
|
/** Currency display settings (separators, alignment, decimals) */
|
|
@@ -109,7 +109,7 @@ const p = {
|
|
|
109
109
|
/** Recommendation strategy key (e.g. 'newArrivals') */
|
|
110
110
|
strategy: e(t()),
|
|
111
111
|
/** Snapshot of products as rendered by the legacy block */
|
|
112
|
-
recommendedProducts: e(
|
|
112
|
+
recommendedProducts: e(n(r())),
|
|
113
113
|
/** Number of product cards per row */
|
|
114
114
|
cardsInRow: e(s()),
|
|
115
115
|
/** Mobile-only padding (right) */
|
|
@@ -132,7 +132,7 @@ const p = {
|
|
|
132
132
|
isPriceMovedToNextLine: e(o()),
|
|
133
133
|
/** Legacy "Hide if same as discounted" / delete-price-for-zero-sale toggle */
|
|
134
134
|
isPriceDeletedForZeroSale: e(o())
|
|
135
|
-
}),
|
|
135
|
+
}), N = a({
|
|
136
136
|
/**
|
|
137
137
|
* Legacy recommendation block configs keyed by block ID.
|
|
138
138
|
* Pass this when loading a template authored with the v1
|
|
@@ -140,17 +140,17 @@ const p = {
|
|
|
140
140
|
* strategy, currency, locale, and layout data.
|
|
141
141
|
*/
|
|
142
142
|
recommendationConfigs: e(
|
|
143
|
-
g(t(),
|
|
143
|
+
g(t(), D),
|
|
144
144
|
{}
|
|
145
145
|
)
|
|
146
|
-
}),
|
|
146
|
+
}), P = a({
|
|
147
147
|
/** Initial HTML content */
|
|
148
148
|
html: e(t(), ""),
|
|
149
149
|
/** Initial CSS content */
|
|
150
150
|
css: e(t(), ""),
|
|
151
151
|
/** Preselected dynamic content items */
|
|
152
152
|
preselectedDynamicContent: e(
|
|
153
|
-
|
|
153
|
+
n(M),
|
|
154
154
|
[]
|
|
155
155
|
),
|
|
156
156
|
/**
|
|
@@ -159,11 +159,11 @@ const p = {
|
|
|
159
159
|
* (first) partner's leaf attributes into the label→token map that repairs
|
|
160
160
|
* label-form placeholders (`{{ Phone Number }}`) in dropped saved modules.
|
|
161
161
|
*/
|
|
162
|
-
dynamicContentList: e(
|
|
162
|
+
dynamicContentList: e(x, {}),
|
|
163
163
|
/** Valid custom field attribute names from the partner's categorized fields */
|
|
164
|
-
customFieldAttributes: e(
|
|
164
|
+
customFieldAttributes: e(n(t()), []),
|
|
165
165
|
/** Selected unsubscribe page IDs */
|
|
166
|
-
selectedUnsubscribePages: e(
|
|
166
|
+
selectedUnsubscribePages: e(n(s()), []),
|
|
167
167
|
/** Force recreate template in Stripo storage (use true when updating externally modified templates) */
|
|
168
168
|
forceRecreate: e(o(), !1),
|
|
169
169
|
/**
|
|
@@ -176,7 +176,7 @@ const p = {
|
|
|
176
176
|
trackIdCounter: e(
|
|
177
177
|
i(
|
|
178
178
|
s(),
|
|
179
|
-
y((
|
|
179
|
+
y((c) => Number.isFinite(c) ? Math.max(0, Math.floor(c)) : 0)
|
|
180
180
|
),
|
|
181
181
|
0
|
|
182
182
|
),
|
|
@@ -190,12 +190,12 @@ const p = {
|
|
|
190
190
|
recommendationCampaignUrls: e(
|
|
191
191
|
i(
|
|
192
192
|
r(),
|
|
193
|
-
y((
|
|
193
|
+
y((c) => c && typeof c == "object" ? { ...c } : void 0)
|
|
194
194
|
)
|
|
195
195
|
),
|
|
196
196
|
/** Migration-only inputs (legacy block configs) */
|
|
197
|
-
migration: e(
|
|
198
|
-
}),
|
|
197
|
+
migration: e(N, {})
|
|
198
|
+
}), v = a({
|
|
199
199
|
/** Sender display name */
|
|
200
200
|
senderName: e(t(), ""),
|
|
201
201
|
/** Email subject line */
|
|
@@ -208,7 +208,7 @@ const p = {
|
|
|
208
208
|
/** Migration date for template compatibility */
|
|
209
209
|
migrationDate: e(s(), 1759696858),
|
|
210
210
|
/** Email header settings */
|
|
211
|
-
emailHeader: e(
|
|
211
|
+
emailHeader: e(v, { senderName: "", subject: "" }),
|
|
212
212
|
/** Folder name for user-saved modules (used by Stripo plugin panel for path construction) */
|
|
213
213
|
savedModulesFolderName: e(t(), S.SAVED_MODULES),
|
|
214
214
|
/** Folder name for default/prebuilt modules (used by Stripo plugin panel for path construction) */
|
|
@@ -237,14 +237,15 @@ const p = {
|
|
|
237
237
|
liquidSyntax: e(o(), !1),
|
|
238
238
|
/** Enable autosave (3-min interval + tab-hide). User toggles on/off from the header. */
|
|
239
239
|
autosave: e(o(), !1),
|
|
240
|
-
accessibilityTesting: e(o(), !1),
|
|
241
240
|
/** Enable pre-save domain-allowlist validation (opt-in; Guido self-serves the block toaster) */
|
|
242
241
|
allowlistEnabled: e(o(), !1),
|
|
243
242
|
/** Enable persistent link tracking-id assignment for the click heatmap (opt-in) */
|
|
244
243
|
linkTrackingIds: e(o(), !1),
|
|
245
244
|
/** Allow persisting a template that still has validation errors (drawer "Save and Continue" soft-save). Host sets false for transactional + unsubscribe. */
|
|
246
245
|
allowSaveWithErrors: e(o(), !0),
|
|
247
|
-
reusableRecommendationStrategy: e(o(), !1)
|
|
246
|
+
reusableRecommendationStrategy: e(o(), !1),
|
|
247
|
+
/** Enable the Conditions settings tab and the create/select display-condition drawers */
|
|
248
|
+
externalDisplayConditions: e(o(), !1)
|
|
248
249
|
}), w = m([
|
|
249
250
|
"amp-accordion",
|
|
250
251
|
"amp-carousel",
|
|
@@ -270,12 +271,12 @@ const p = {
|
|
|
270
271
|
]), j = a({
|
|
271
272
|
/** Default blocks to exclude from the editor */
|
|
272
273
|
excludeDefaults: e(
|
|
273
|
-
|
|
274
|
+
n(w),
|
|
274
275
|
[]
|
|
275
276
|
),
|
|
276
277
|
/** Custom blocks to include in the editor */
|
|
277
278
|
includeCustoms: e(
|
|
278
|
-
|
|
279
|
+
n(B),
|
|
279
280
|
[]
|
|
280
281
|
)
|
|
281
282
|
}), d = a({
|
|
@@ -307,23 +308,23 @@ const p = {
|
|
|
307
308
|
...d.entries,
|
|
308
309
|
type: u("remove"),
|
|
309
310
|
/** Strings or patterns to remove */
|
|
310
|
-
targets:
|
|
311
|
+
targets: n(t())
|
|
311
312
|
}), G = a({
|
|
312
313
|
...d.entries,
|
|
313
314
|
type: u("custom"),
|
|
314
315
|
/** Custom processor function */
|
|
315
316
|
processor: k(
|
|
316
|
-
(
|
|
317
|
+
(c) => typeof c == "function",
|
|
317
318
|
"processor must be a function"
|
|
318
319
|
)
|
|
319
|
-
}), V =
|
|
320
|
+
}), V = I("type", [
|
|
320
321
|
H,
|
|
321
322
|
_,
|
|
322
323
|
q,
|
|
323
324
|
G
|
|
324
325
|
]), z = a({
|
|
325
326
|
/** Custom compiler rules to apply */
|
|
326
|
-
customRules: e(
|
|
327
|
+
customRules: e(n(V), []),
|
|
327
328
|
/** Skip default compiler rules */
|
|
328
329
|
ignoreDefaultRules: e(o(), !1)
|
|
329
330
|
}), W = a({
|
|
@@ -333,7 +334,7 @@ const p = {
|
|
|
333
334
|
*/
|
|
334
335
|
externalValidation: e(
|
|
335
336
|
k(
|
|
336
|
-
(
|
|
337
|
+
(c) => typeof c == "function",
|
|
337
338
|
"externalValidation must be a function"
|
|
338
339
|
)
|
|
339
340
|
)
|
|
@@ -345,7 +346,7 @@ const p = {
|
|
|
345
346
|
partner: E,
|
|
346
347
|
// Optional sections (with defaults)
|
|
347
348
|
/** Template content and presets */
|
|
348
|
-
template: e(
|
|
349
|
+
template: e(P, {}),
|
|
349
350
|
/** Editor settings */
|
|
350
351
|
editor: e(O, {}),
|
|
351
352
|
/** UI configuration */
|
|
@@ -367,23 +368,23 @@ export {
|
|
|
367
368
|
B as CustomBlockTypeSchema,
|
|
368
369
|
G as CustomRuleSchema,
|
|
369
370
|
w as DefaultBlockTypeSchema,
|
|
370
|
-
|
|
371
|
+
x as DynamicContentListSchema,
|
|
371
372
|
f as DynamicContentNodeSchema,
|
|
372
373
|
M as DynamicContentSchema,
|
|
373
374
|
O as EditorSchema,
|
|
374
|
-
|
|
375
|
+
v as EmailHeaderSchema,
|
|
375
376
|
L as FallbackFontSchema,
|
|
376
377
|
U as FeaturesSchema,
|
|
377
378
|
K as GuidoConfigSchema,
|
|
378
379
|
A as IdentitySchema,
|
|
379
|
-
|
|
380
|
+
D as LegacyRecommendationConfigSchema,
|
|
380
381
|
p as MessageType,
|
|
381
382
|
E as PartnerSchema,
|
|
382
383
|
l as ProductType,
|
|
383
384
|
_ as RegexRuleSchema,
|
|
384
385
|
q as RemoveRuleSchema,
|
|
385
386
|
H as ReplaceRuleSchema,
|
|
386
|
-
|
|
387
|
-
|
|
387
|
+
N as TemplateMigrationSchema,
|
|
388
|
+
P as TemplateSchema,
|
|
388
389
|
F as UISchema
|
|
389
390
|
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { object as e, optional as a, string as o, nullish as i, number as t, picklist as n, array as c } from "../node_modules/valibot/dist/index.js";
|
|
2
|
+
const s = n(["liquid", "pongo"]), d = n(["codeOnly", "logicBuilder"]), r = e({
|
|
3
|
+
id: t(),
|
|
4
|
+
name: o(),
|
|
5
|
+
description: i(o(), ""),
|
|
6
|
+
syntax: s,
|
|
7
|
+
method: d,
|
|
8
|
+
codeBefore: o(),
|
|
9
|
+
codeAfter: i(o(), ""),
|
|
10
|
+
createdAt: a(o())
|
|
11
|
+
}), p = e({
|
|
12
|
+
data: c(r),
|
|
13
|
+
meta: e({
|
|
14
|
+
totalCount: t(),
|
|
15
|
+
perPage: t(),
|
|
16
|
+
currentPage: t(),
|
|
17
|
+
lastPage: t()
|
|
18
|
+
})
|
|
19
|
+
});
|
|
20
|
+
export {
|
|
21
|
+
p as DisplayConditionListResponseSchema,
|
|
22
|
+
d as DisplayConditionMethodSchema,
|
|
23
|
+
s as DisplayConditionSyntaxSchema,
|
|
24
|
+
r as SavedDisplayConditionSchema
|
|
25
|
+
};
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import
|
|
1
|
+
import i from "./Guido.vue2.js";
|
|
2
2
|
/* empty css */
|
|
3
|
-
import
|
|
3
|
+
import o from "../_virtual/_plugin-vue2_normalizer.js";
|
|
4
4
|
var t = 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
|
|
6
|
+
return r("div", { ref: "wrapperRef", staticClass: "guido-editor__wrapper", class: { "guido-editor__no-header": e.noHeader } }, [r(e.HeaderWrapper, { ref: "headerWrapperRef" }), r(e.AutoSaveController), 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.AuthErrorModal), 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.isSaveValidationEnabled ? r(e.ValidationErrorDrawer) : a._e(), e.isExternalDisplayConditionsEnabled ? r(e.DisplayConditionsHost) : a._e(), 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__ */
|
|
10
|
-
|
|
9
|
+
}, s = [], n = /* @__PURE__ */ o(
|
|
10
|
+
i,
|
|
11
11
|
t,
|
|
12
12
|
s,
|
|
13
13
|
!1,
|
|
14
14
|
null,
|
|
15
|
-
"
|
|
15
|
+
"0d2ac239"
|
|
16
16
|
);
|
|
17
17
|
const v = n.exports;
|
|
18
18
|
export {
|
|
@@ -1,90 +1,79 @@
|
|
|
1
|
-
import { defineComponent as ce, defineAsyncComponent as
|
|
1
|
+
import { defineComponent as ce, defineAsyncComponent as c, ref as W, computed as l, watch as G, onMounted as de, onUnmounted as me } from "vue";
|
|
2
2
|
import { useCortexBlueprintBridge as le } from "../composables/useCortexBlueprintBridge.js";
|
|
3
3
|
import { useEditorLock as ue } from "../composables/useEditorLock.js";
|
|
4
4
|
import { provideGuidoActions as pe } from "../composables/useGuidoActions.js";
|
|
5
5
|
import { useGuidoStateBridge as fe } from "../composables/useGuidoStateBridge.js";
|
|
6
6
|
import { usePartner as ye } from "../composables/usePartner.js";
|
|
7
7
|
import { useSaveValidationRollout as ge } from "../composables/useSaveValidationRollout.js";
|
|
8
|
-
import { useStripo as
|
|
9
|
-
import { useTimerClone as
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import { ModuleFolderDefaults as z } from "../enums/defaults.js";
|
|
14
|
-
import { RIBBON_SELECTOR as Ee } from "../enums/onboarding.js";
|
|
15
|
-
import { ToasterTypeOptions as we } from "../enums/toaster.js";
|
|
8
|
+
import { useStripo as Se } from "../composables/useStripo.js";
|
|
9
|
+
import { useTimerClone as ve } from "../composables/useTimerClone.js";
|
|
10
|
+
import { migrate as H } from "../config/migrator/index.js";
|
|
11
|
+
import { ModuleFolderDefaults as V } from "../enums/defaults.js";
|
|
12
|
+
import { RIBBON_SELECTOR as be } from "../enums/onboarding.js";
|
|
16
13
|
import { useRecommendationExtensionStore as E } from "../extensions/Blocks/Recommendation/store/recommendation.js";
|
|
17
|
-
import
|
|
18
|
-
import
|
|
19
|
-
import
|
|
20
|
-
import
|
|
21
|
-
import
|
|
22
|
-
import
|
|
23
|
-
import
|
|
24
|
-
import
|
|
25
|
-
import
|
|
26
|
-
import { useStripoApi as
|
|
27
|
-
import { useConfigStore as
|
|
28
|
-
import { useDynamicContentStore as
|
|
29
|
-
import { useEditorStore as
|
|
30
|
-
import { usePreviewStore as
|
|
31
|
-
import { useSaveValidationStore as
|
|
32
|
-
import { useTemplateStore as
|
|
33
|
-
import { useUnsubscribeStore as
|
|
34
|
-
import { readTrackFloor as
|
|
35
|
-
const
|
|
14
|
+
import he from "./organisms/AutoSaveController.vue.js";
|
|
15
|
+
import Ee from "./organisms/base/AuthErrorModal.vue.js";
|
|
16
|
+
import De from "./organisms/base/Toaster.vue.js";
|
|
17
|
+
import we from "./organisms/extensions/recommendation/FilterSelectionDrawer.vue.js";
|
|
18
|
+
import Ce from "./organisms/header/HeaderWrapper.vue.js";
|
|
19
|
+
import ke from "./organisms/LoadingWrapper.vue.js";
|
|
20
|
+
import Fe from "./organisms/save-as-template/SaveAsTemplateDrawer.vue.js";
|
|
21
|
+
import Re from "./organisms/unsubscribe/UnsubscribeWrapper.vue.js";
|
|
22
|
+
import Me from "./organisms/validation/ValidationErrorDrawer.vue.js";
|
|
23
|
+
import { useStripoApi as Te } from "../services/stripoApi.js";
|
|
24
|
+
import { useConfigStore as Ie } from "../stores/config.js";
|
|
25
|
+
import { useDynamicContentStore as Le } from "../stores/dynamic-content.js";
|
|
26
|
+
import { useEditorStore as D } from "../stores/editor.js";
|
|
27
|
+
import { usePreviewStore as Ue } from "../stores/preview.js";
|
|
28
|
+
import { useSaveValidationStore as Ae } from "../stores/save-validation.js";
|
|
29
|
+
import { useTemplateStore as Be } from "../stores/template.js";
|
|
30
|
+
import { useUnsubscribeStore as Ne } from "../stores/unsubscribe.js";
|
|
31
|
+
import { readTrackFloor as $ } from "../utils/linkTrackingIds.js";
|
|
32
|
+
const pt = /* @__PURE__ */ ce({
|
|
36
33
|
__name: "Guido",
|
|
37
34
|
props: {
|
|
38
35
|
config: null,
|
|
39
36
|
ready: { type: Boolean, default: !0 }
|
|
40
37
|
},
|
|
41
38
|
emits: ["dynamic-content:open", "back", "save:start", "save:complete", "on-change", "ready", "onboarding:finished", "test-email:click"],
|
|
42
|
-
setup(
|
|
43
|
-
const
|
|
39
|
+
setup(z, { expose: q, emit: r }) {
|
|
40
|
+
const s = z, K = c(
|
|
44
41
|
() => import("./organisms/email-preview/PreviewContainer.vue.js")
|
|
45
|
-
),
|
|
42
|
+
), j = c(
|
|
46
43
|
() => import("./organisms/onboarding/OnboardingWrapper.vue.js")
|
|
47
|
-
),
|
|
44
|
+
), J = c(
|
|
48
45
|
() => import("./organisms/extensions/recommendation/AssignStrategyDrawer.vue.js")
|
|
49
|
-
),
|
|
46
|
+
), Q = c(
|
|
50
47
|
() => import("./organisms/extensions/recommendation/RemoveStrategyModal.vue.js")
|
|
51
|
-
),
|
|
48
|
+
), X = c(
|
|
49
|
+
() => import("./organisms/display-conditions/DisplayConditionsHost.vue.js")
|
|
50
|
+
), Y = c(
|
|
52
51
|
() => import("./organisms/extensions/recommendation/LegacyStrategyUpdatedModal.vue.js")
|
|
53
|
-
), f =
|
|
54
|
-
|
|
55
|
-
const
|
|
56
|
-
var
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
isAccessibilityTestingOpen: s.isAccessibilityTestingOpen
|
|
61
|
-
}), C({
|
|
62
|
-
type: we.Warning,
|
|
63
|
-
message: D("email-editor.save-blocked-outside-editor")
|
|
64
|
-
});
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
return (o = T.value) == null ? void 0 : o.saveSilent();
|
|
68
|
-
}, M = (o) => {
|
|
69
|
-
s.loadingStatus = o;
|
|
52
|
+
), w = W(), f = W(), y = Le(), C = Ne(), o = Ie();
|
|
53
|
+
s.ready && o.init(s.config);
|
|
54
|
+
const d = D(), Z = Ue(), u = l(() => d.hasChanges), { isTestPartner: ee } = ye(), { isEnabled: te } = ge(), k = () => {
|
|
55
|
+
var t;
|
|
56
|
+
return (t = w.value) == null ? void 0 : t.handleSave(!0);
|
|
57
|
+
}, F = (t) => {
|
|
58
|
+
d.loadingStatus = t;
|
|
70
59
|
};
|
|
71
60
|
le(), fe();
|
|
72
61
|
const g = () => {
|
|
73
|
-
var
|
|
62
|
+
var t, e;
|
|
74
63
|
return {
|
|
75
|
-
emailId:
|
|
76
|
-
userId:
|
|
77
|
-
username:
|
|
78
|
-
partnerName:
|
|
79
|
-
savedModulesFolderName: ((
|
|
80
|
-
defaultModulesFolderName: ((e =
|
|
64
|
+
emailId: o.templateId,
|
|
65
|
+
userId: o.userId,
|
|
66
|
+
username: o.username,
|
|
67
|
+
partnerName: o.partnerName,
|
|
68
|
+
savedModulesFolderName: ((t = o.editor) == null ? void 0 : t.savedModulesFolderName) || V.SAVED_MODULES,
|
|
69
|
+
defaultModulesFolderName: ((e = o.editor) == null ? void 0 : e.defaultModulesFolderName) || V.DEFAULT_MODULES
|
|
81
70
|
};
|
|
82
|
-
}, { initPlugin: R, preloadRuntime:
|
|
83
|
-
let
|
|
84
|
-
const { getDefaultTemplate:
|
|
85
|
-
var
|
|
86
|
-
return !((
|
|
87
|
-
}),
|
|
71
|
+
}, { initPlugin: R, preloadRuntime: M } = Se(), { runExclusive: T, beginMount: I, isCurrentMount: S } = ue();
|
|
72
|
+
let p = 0;
|
|
73
|
+
const { getDefaultTemplate: L } = Te(), { cloneTimersOnSave: U, hasTimerBlocks: A } = ve(), oe = l(() => {
|
|
74
|
+
var t;
|
|
75
|
+
return !((t = o.ui) != null && t.showHeader);
|
|
76
|
+
}), ne = l(() => o.isFeatureEnabled("reusableRecommendationStrategy")), re = l(() => o.isFeatureEnabled("externalDisplayConditions")), ae = l(
|
|
88
77
|
() => !!E().recommendationConfigs.strategyId
|
|
89
78
|
);
|
|
90
79
|
pe({
|
|
@@ -94,98 +83,98 @@ const ho = /* @__PURE__ */ ce({
|
|
|
94
83
|
onSaveStart: () => {
|
|
95
84
|
console.debug("guido:save:start"), r("save:start");
|
|
96
85
|
},
|
|
97
|
-
onSaveComplete: (
|
|
98
|
-
const e = { ...
|
|
86
|
+
onSaveComplete: (t) => {
|
|
87
|
+
const e = { ...t, metadata: g() };
|
|
99
88
|
console.debug("guido:save:complete", e), r("save:complete", e);
|
|
100
89
|
},
|
|
101
90
|
onTestEmailClick: () => {
|
|
102
91
|
console.debug("guido:test-email:click"), r("test-email:click");
|
|
103
92
|
}
|
|
104
93
|
});
|
|
105
|
-
const B = (
|
|
106
|
-
console.debug("dynamic-content:close",
|
|
107
|
-
},
|
|
94
|
+
const B = (t) => {
|
|
95
|
+
console.debug("dynamic-content:close", t), y.setSelectedDynamicContent(t), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: t }));
|
|
96
|
+
}, N = () => {
|
|
108
97
|
console.debug("dynamic-content:close", "Without Data"), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: { text: "", value: "" } }));
|
|
109
98
|
};
|
|
110
|
-
G(() =>
|
|
111
|
-
r("on-change",
|
|
99
|
+
G(() => u.value, () => {
|
|
100
|
+
r("on-change", u.value);
|
|
112
101
|
});
|
|
113
|
-
const
|
|
114
|
-
const e =
|
|
115
|
-
console.debug("dynamic-content:open", e.detail), r("dynamic-content:open",
|
|
102
|
+
const v = (t) => {
|
|
103
|
+
const e = t, { attribute: a, position: m } = e.detail;
|
|
104
|
+
console.debug("dynamic-content:open", e.detail), r("dynamic-content:open", a, m);
|
|
116
105
|
};
|
|
117
|
-
let
|
|
106
|
+
let i = null;
|
|
118
107
|
const b = () => {
|
|
119
108
|
var e;
|
|
120
|
-
const
|
|
121
|
-
(e = f.value) == null || e.style.setProperty("--ribbon-offset", `${(
|
|
109
|
+
const t = document.querySelector(be);
|
|
110
|
+
(e = f.value) == null || e.style.setProperty("--ribbon-offset", `${(t == null ? void 0 : t.offsetHeight) ?? 0}px`);
|
|
122
111
|
}, h = async () => {
|
|
123
|
-
var
|
|
112
|
+
var t;
|
|
124
113
|
try {
|
|
125
|
-
|
|
126
|
-
const e =
|
|
127
|
-
|
|
128
|
-
const
|
|
129
|
-
partnerName:
|
|
114
|
+
o.initialized || o.init(s.config), d.templateId = o.templateId;
|
|
115
|
+
const e = o.template, a = (e == null ? void 0 : e.html) || "", m = (e == null ? void 0 : e.css) || "", x = (e == null ? void 0 : e.preselectedDynamicContent) || [];
|
|
116
|
+
C.selectedUnsubscribePages = (e == null ? void 0 : e.selectedUnsubscribePages) || [];
|
|
117
|
+
const P = ((t = e == null ? void 0 : e.migration) == null ? void 0 : t.recommendationConfigs) ?? {}, _ = o.isFeatureEnabled("linkTrackingIds"), O = {
|
|
118
|
+
partnerName: o.partnerName,
|
|
130
119
|
campaignUrls: e == null ? void 0 : e.recommendationCampaignUrls,
|
|
131
|
-
rrsEnabled:
|
|
120
|
+
rrsEnabled: o.isFeatureEnabled("reusableRecommendationStrategy")
|
|
132
121
|
};
|
|
133
122
|
let n = {
|
|
134
|
-
html:
|
|
135
|
-
css:
|
|
123
|
+
html: a && await H(a, P, O),
|
|
124
|
+
css: m
|
|
136
125
|
};
|
|
137
|
-
n.html || (n = await
|
|
138
|
-
const
|
|
139
|
-
|
|
140
|
-
const
|
|
141
|
-
preselectedDynamicContentList:
|
|
126
|
+
n.html || (n = await L(), n.html = await H(n.html, P, O));
|
|
127
|
+
const se = _ ? $(n.html, (e == null ? void 0 : e.trackIdCounter) || 0) : 0;
|
|
128
|
+
A(n.html) && (n.html = await U(n.html)), _ && (d.trackIdSessionFloor = Math.max(se, $(n.html)));
|
|
129
|
+
const ie = {
|
|
130
|
+
preselectedDynamicContentList: x,
|
|
142
131
|
onReady: () => {
|
|
143
132
|
console.debug("guido:ready"), r("ready");
|
|
144
133
|
}
|
|
145
134
|
};
|
|
146
|
-
|
|
135
|
+
p = I(), await R(n, g(), ie), y.selectedDynamicContentList = x;
|
|
147
136
|
} catch (e) {
|
|
148
137
|
console.error("Failed to initialize Stripo editor:", e);
|
|
149
138
|
}
|
|
150
139
|
};
|
|
151
140
|
return de(async () => {
|
|
152
141
|
var e;
|
|
153
|
-
console.debug("Guido says happy coding 🎉"), console.debug("🚗 Ka-Chow"), E().$reset(),
|
|
154
|
-
const
|
|
155
|
-
if (
|
|
142
|
+
console.debug("Guido says happy coding 🎉"), console.debug("🚗 Ka-Chow"), E().$reset(), D().$reset(), Be().$reset(), Ae().$reset(), b();
|
|
143
|
+
const t = (e = f.value) == null ? void 0 : e.parentElement;
|
|
144
|
+
if (t && (i = new ResizeObserver(b), i.observe(t)), M(), s.ready)
|
|
156
145
|
await h();
|
|
157
146
|
else {
|
|
158
|
-
const
|
|
159
|
-
|
|
147
|
+
const a = G(() => s.ready, (m) => {
|
|
148
|
+
m && (a(), h());
|
|
160
149
|
});
|
|
161
150
|
}
|
|
162
|
-
document.addEventListener("dynamic-content:open",
|
|
151
|
+
document.addEventListener("dynamic-content:open", v);
|
|
163
152
|
}), me(() => {
|
|
164
|
-
if (
|
|
153
|
+
if (i == null || i.disconnect(), document.removeEventListener("dynamic-content:open", v), E().disposeStrategyPageReturn(), S(p))
|
|
165
154
|
try {
|
|
166
|
-
|
|
167
|
-
} catch (
|
|
168
|
-
console.debug("Failed to close the editor readiness gate on unmount",
|
|
155
|
+
D().isStripoInitialized = !1;
|
|
156
|
+
} catch (t) {
|
|
157
|
+
console.debug("Failed to close the editor readiness gate on unmount", t);
|
|
169
158
|
}
|
|
170
|
-
|
|
171
|
-
if (
|
|
159
|
+
T(async () => {
|
|
160
|
+
if (S(p))
|
|
172
161
|
try {
|
|
173
162
|
window.UIEditor.removeEditor();
|
|
174
163
|
} catch {
|
|
175
164
|
console.debug("Failed to remove Stripo editor: No editor found");
|
|
176
165
|
}
|
|
177
|
-
}),
|
|
178
|
-
}),
|
|
166
|
+
}), o.reset();
|
|
167
|
+
}), q({
|
|
179
168
|
dynamicContent: {
|
|
180
169
|
insert: B,
|
|
181
|
-
close:
|
|
170
|
+
close: N
|
|
182
171
|
},
|
|
183
|
-
hasChanges:
|
|
184
|
-
saveSilent:
|
|
185
|
-
setLoading:
|
|
186
|
-
}), { __sfc: !0, PreviewContainer:
|
|
172
|
+
hasChanges: u,
|
|
173
|
+
saveSilent: k,
|
|
174
|
+
setLoading: F
|
|
175
|
+
}), { __sfc: !0, PreviewContainer: K, OnboardingWrapper: j, AssignStrategyDrawer: J, RemoveStrategyModal: Q, DisplayConditionsHost: X, LegacyStrategyUpdatedModal: Y, headerWrapperRef: w, wrapperRef: f, dynamicContentStore: y, unsubscribeStore: C, props: s, configStore: o, editorStore: d, previewStore: Z, hasChanges: u, isTestPartner: ee, isSaveValidationEnabled: te, saveSilent: k, setLoading: F, emit: r, buildMetadata: g, initPlugin: R, preloadRuntime: M, runExclusive: T, beginMount: I, isCurrentMount: S, mountGeneration: p, getDefaultTemplate: L, cloneTimersOnSave: U, hasTimerBlocks: A, noHeader: oe, isRrsEnabled: ne, isExternalDisplayConditionsEnabled: re, hasAssignedStrategy: ae, insertDynamicContent: B, closeDynamicContent: N, handleDynamicContentOpen: v, ribbonObserver: i, updateRibbonOffset: b, startEditor: h, AutoSaveController: he, AuthErrorModal: Ee, Toaster: De, FilterSelectionDrawer: we, HeaderWrapper: Ce, LoadingWrapper: ke, SaveAsTemplateDrawer: Fe, UnsubscribeWrapper: Re, ValidationErrorDrawer: Me };
|
|
187
176
|
}
|
|
188
177
|
});
|
|
189
178
|
export {
|
|
190
|
-
|
|
179
|
+
pt as default
|
|
191
180
|
};
|
|
@@ -1,24 +1,14 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { useAutoSave as
|
|
3
|
-
import { useSave as
|
|
4
|
-
import { useSaveValidationRollout as
|
|
5
|
-
|
|
6
|
-
const b = /* @__PURE__ */ i({
|
|
1
|
+
import { defineComponent as r } from "vue";
|
|
2
|
+
import { useAutoSave as s } from "../../composables/useAutoSave.js";
|
|
3
|
+
import { useSave as n } from "../../composables/useSave.js";
|
|
4
|
+
import { useSaveValidationRollout as u } from "../../composables/useSaveValidationRollout.js";
|
|
5
|
+
const v = /* @__PURE__ */ r({
|
|
7
6
|
__name: "AutoSaveController",
|
|
8
|
-
setup(
|
|
9
|
-
const { save: e, saveRawOnly:
|
|
10
|
-
|
|
11
|
-
const s = async () => {
|
|
12
|
-
try {
|
|
13
|
-
return await e(!0);
|
|
14
|
-
} catch (u) {
|
|
15
|
-
r(u, "Failed to save template");
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
return n({ saveSilent: s }), { __sfc: !0, save: e, saveRawOnly: t, isEnabled: o, handleError: r, backgroundSave: a, saveSilent: s };
|
|
7
|
+
setup(m) {
|
|
8
|
+
const { save: e, saveRawOnly: o } = n(), { isEnabled: t } = u(), a = () => t.value ? o() : e(!1, !0);
|
|
9
|
+
return s(a), { __sfc: !0, save: e, saveRawOnly: o, isEnabled: t, backgroundSave: a };
|
|
20
10
|
}
|
|
21
11
|
});
|
|
22
12
|
export {
|
|
23
|
-
|
|
13
|
+
v as default
|
|
24
14
|
};
|