@useinsider/guido 3.20.1-beta.c235b0d → 3.20.1-beta.ed186ad
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/dist/@types/config/schemas.js +10 -11
- package/dist/components/Guido.vue.js +4 -4
- package/dist/components/Guido.vue2.js +79 -86
- package/dist/components/organisms/AutoSaveController.vue2.js +10 -19
- 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 +68 -51
- 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 +38 -56
- package/dist/components/organisms/validation/ValidationErrorDrawer.vue.js +3 -3
- package/dist/components/organisms/validation/ValidationErrorDrawer.vue2.js +23 -22
- package/dist/composables/useAutoSave.js +46 -44
- package/dist/composables/useCustomInterfaceAppearance.js +41 -42
- package/dist/composables/useSave.js +26 -23
- package/dist/composables/useSaveValidation.js +55 -53
- package/dist/composables/useSaveValidationRollout.js +17 -6
- package/dist/config/i18n/en/labels.json.js +4 -36
- package/dist/config/i18n/en/tooltips.json.js +1 -2
- package/dist/guido.css +1 -1
- package/dist/services/settingsApi.js +11 -0
- package/dist/sprite.svg +0 -10
- package/dist/src/@types/config/schemas.d.ts +0 -2
- package/dist/src/components/Guido.vue.d.ts +1 -1
- package/dist/src/components/organisms/AutoSaveController.vue.d.ts +1 -19
- package/dist/src/components/organisms/header/EditorActions.vue.d.ts +1 -1
- 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/useAutoSave.d.ts +4 -1
- package/dist/src/composables/useConfig.d.ts +0 -2
- package/dist/src/composables/useSaveValidationRollout.d.ts +1 -0
- package/dist/src/services/settingsApi.d.ts +6 -0
- package/dist/src/stores/autosave.d.ts +1 -73
- package/dist/src/stores/config.d.ts +0 -20
- package/dist/src/stores/editor.d.ts +0 -109
- package/dist/src/stores/onboarding.d.ts +21 -952
- package/dist/src/stores/setup-settings.d.ts +4 -0
- package/dist/src/stores/version-history.d.ts +1 -1
- package/dist/src/utils/timeUtil.d.ts +0 -5
- package/dist/static/styles/variables.css.js +0 -2
- package/dist/stores/autosave.js +7 -12
- package/dist/stores/editor.js +4 -7
- package/dist/stores/onboarding.js +21 -43
- package/dist/stores/setup-settings.js +10 -0
- package/dist/utils/timeUtil.js +17 -6
- package/package.json +1 -1
- 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/header/EditorActionsMenu.vue.d.ts +0 -2
- package/dist/src/components/organisms/header/accessibility/AccessibilityToolbar.vue.d.ts +0 -2
- package/dist/src/components/organisms/header/accessibility/ColorVisionSelect.vue.d.ts +0 -2
- 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 → AutoSaveToggle.vue.d.ts} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ModuleFolderDefaults 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 c, transform as y, unknown as r, record as g, fallback as R, literal as u, looseObject as C, variant as
|
|
1
|
+
import { ModuleFolderDefaults as f } 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 c, 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,17 +76,17 @@ const p = {
|
|
|
76
76
|
value: t()
|
|
77
77
|
})
|
|
78
78
|
)
|
|
79
|
-
}),
|
|
79
|
+
}), S = 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(c(
|
|
84
|
+
children: e(c(S)),
|
|
85
85
|
// eslint-disable-next-line camelcase -- backend field name
|
|
86
|
-
select_items: e(c(
|
|
86
|
+
select_items: e(c(S))
|
|
87
87
|
})), N = g(
|
|
88
88
|
t(),
|
|
89
|
-
R(c(
|
|
89
|
+
R(c(S), [])
|
|
90
90
|
), P = C({
|
|
91
91
|
/** Block ID (matches the dictionary key and the legacy HTML element id) */
|
|
92
92
|
id: e(s()),
|
|
@@ -210,9 +210,9 @@ const p = {
|
|
|
210
210
|
/** Email header settings */
|
|
211
211
|
emailHeader: e(D, { senderName: "", subject: "" }),
|
|
212
212
|
/** Folder name for user-saved modules (used by Stripo plugin panel for path construction) */
|
|
213
|
-
savedModulesFolderName: e(t(),
|
|
213
|
+
savedModulesFolderName: e(t(), f.SAVED_MODULES),
|
|
214
214
|
/** Folder name for default/prebuilt modules (used by Stripo plugin panel for path construction) */
|
|
215
|
-
defaultModulesFolderName: e(t(),
|
|
215
|
+
defaultModulesFolderName: e(t(), f.DEFAULT_MODULES)
|
|
216
216
|
}), F = a({
|
|
217
217
|
/** Whether to show the header bar */
|
|
218
218
|
showHeader: e(o(), !0),
|
|
@@ -237,7 +237,6 @@ 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) */
|
|
@@ -316,7 +315,7 @@ const p = {
|
|
|
316
315
|
(n) => typeof n == "function",
|
|
317
316
|
"processor must be a function"
|
|
318
317
|
)
|
|
319
|
-
}), V =
|
|
318
|
+
}), V = I("type", [
|
|
320
319
|
H,
|
|
321
320
|
_,
|
|
322
321
|
q,
|
|
@@ -368,7 +367,7 @@ export {
|
|
|
368
367
|
G as CustomRuleSchema,
|
|
369
368
|
w as DefaultBlockTypeSchema,
|
|
370
369
|
N as DynamicContentListSchema,
|
|
371
|
-
|
|
370
|
+
S as DynamicContentNodeSchema,
|
|
372
371
|
M as DynamicContentSchema,
|
|
373
372
|
O as EditorSchema,
|
|
374
373
|
D as EmailHeaderSchema,
|
|
@@ -3,7 +3,7 @@ import o from "./Guido.vue2.js";
|
|
|
3
3
|
import i 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.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
9
|
}, s = [], n = /* @__PURE__ */ i(
|
|
@@ -12,9 +12,9 @@ var t = function() {
|
|
|
12
12
|
s,
|
|
13
13
|
!1,
|
|
14
14
|
null,
|
|
15
|
-
"
|
|
15
|
+
"d0a8825a"
|
|
16
16
|
);
|
|
17
|
-
const
|
|
17
|
+
const v = n.exports;
|
|
18
18
|
export {
|
|
19
|
-
|
|
19
|
+
v as default
|
|
20
20
|
};
|
|
@@ -1,68 +1,61 @@
|
|
|
1
|
-
import { defineComponent as ie, defineAsyncComponent as m, ref as
|
|
2
|
-
import { useCortexBlueprintBridge as
|
|
3
|
-
import { useEditorLock as
|
|
4
|
-
import { provideGuidoActions as
|
|
5
|
-
import { useGuidoStateBridge as
|
|
6
|
-
import { usePartner as
|
|
7
|
-
import { useSaveValidationRollout as
|
|
8
|
-
import { useStripo as
|
|
9
|
-
import { useTimerClone as
|
|
10
|
-
import { migrate as
|
|
11
|
-
import { ModuleFolderDefaults as
|
|
12
|
-
import { RIBBON_SELECTOR as
|
|
1
|
+
import { defineComponent as ie, defineAsyncComponent as m, ref as G, computed as p, watch as V, onMounted as ce, onUnmounted as de } from "vue";
|
|
2
|
+
import { useCortexBlueprintBridge as me } from "../composables/useCortexBlueprintBridge.js";
|
|
3
|
+
import { useEditorLock as le } from "../composables/useEditorLock.js";
|
|
4
|
+
import { provideGuidoActions as ue } from "../composables/useGuidoActions.js";
|
|
5
|
+
import { useGuidoStateBridge as pe } from "../composables/useGuidoStateBridge.js";
|
|
6
|
+
import { usePartner as fe } from "../composables/usePartner.js";
|
|
7
|
+
import { useSaveValidationRollout as ye } from "../composables/useSaveValidationRollout.js";
|
|
8
|
+
import { useStripo as ge } from "../composables/useStripo.js";
|
|
9
|
+
import { useTimerClone as Se } from "../composables/useTimerClone.js";
|
|
10
|
+
import { migrate as $ } from "../config/migrator/index.js";
|
|
11
|
+
import { ModuleFolderDefaults as z } from "../enums/defaults.js";
|
|
12
|
+
import { RIBBON_SELECTOR as ve } from "../enums/onboarding.js";
|
|
13
13
|
import { useRecommendationExtensionStore as E } from "../extensions/Blocks/Recommendation/store/recommendation.js";
|
|
14
|
-
import
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
import
|
|
18
|
-
import
|
|
14
|
+
import be from "./organisms/AutoSaveController.vue.js";
|
|
15
|
+
import he from "./organisms/base/AuthErrorModal.vue.js";
|
|
16
|
+
import Ee from "./organisms/base/Toaster.vue.js";
|
|
17
|
+
import we from "./organisms/extensions/recommendation/FilterSelectionDrawer.vue.js";
|
|
18
|
+
import De from "./organisms/header/HeaderWrapper.vue.js";
|
|
19
19
|
import Ce from "./organisms/LoadingWrapper.vue.js";
|
|
20
|
-
import
|
|
21
|
-
import
|
|
22
|
-
import
|
|
23
|
-
import { useStripoApi as
|
|
24
|
-
import { useConfigStore as
|
|
25
|
-
import { useDynamicContentStore as
|
|
20
|
+
import ke from "./organisms/save-as-template/SaveAsTemplateDrawer.vue.js";
|
|
21
|
+
import Re from "./organisms/unsubscribe/UnsubscribeWrapper.vue.js";
|
|
22
|
+
import Fe from "./organisms/validation/ValidationErrorDrawer.vue.js";
|
|
23
|
+
import { useStripoApi as Me } from "../services/stripoApi.js";
|
|
24
|
+
import { useConfigStore as Te } from "../stores/config.js";
|
|
25
|
+
import { useDynamicContentStore as Ie } from "../stores/dynamic-content.js";
|
|
26
26
|
import { useEditorStore as w } from "../stores/editor.js";
|
|
27
|
-
import { usePreviewStore as
|
|
28
|
-
import { useSaveValidationStore as
|
|
27
|
+
import { usePreviewStore as Le } from "../stores/preview.js";
|
|
28
|
+
import { useSaveValidationStore as Ue } from "../stores/save-validation.js";
|
|
29
29
|
import { useTemplateStore as Ae } from "../stores/template.js";
|
|
30
|
-
import { useUnsubscribeStore as
|
|
31
|
-
import { readTrackFloor as
|
|
32
|
-
const
|
|
30
|
+
import { useUnsubscribeStore as Be } from "../stores/unsubscribe.js";
|
|
31
|
+
import { readTrackFloor as H } from "../utils/linkTrackingIds.js";
|
|
32
|
+
const ut = /* @__PURE__ */ ie({
|
|
33
33
|
__name: "Guido",
|
|
34
34
|
props: {
|
|
35
35
|
config: null,
|
|
36
36
|
ready: { type: Boolean, default: !0 }
|
|
37
37
|
},
|
|
38
38
|
emits: ["dynamic-content:open", "back", "save:start", "save:complete", "on-change", "ready", "onboarding:finished", "test-email:click"],
|
|
39
|
-
setup(
|
|
40
|
-
const
|
|
39
|
+
setup(q, { expose: K, emit: r }) {
|
|
40
|
+
const s = q, j = m(
|
|
41
41
|
() => import("./organisms/email-preview/PreviewContainer.vue.js")
|
|
42
|
-
), j = m(
|
|
43
|
-
() => import("./organisms/onboarding/OnboardingWrapper.vue.js")
|
|
44
42
|
), J = m(
|
|
45
|
-
() => import("./organisms/
|
|
43
|
+
() => import("./organisms/onboarding/OnboardingWrapper.vue.js")
|
|
46
44
|
), Q = m(
|
|
45
|
+
() => import("./organisms/extensions/recommendation/AssignStrategyDrawer.vue.js")
|
|
46
|
+
), X = m(
|
|
47
47
|
() => import("./organisms/extensions/recommendation/RemoveStrategyModal.vue.js")
|
|
48
|
-
),
|
|
48
|
+
), Y = m(
|
|
49
49
|
() => import("./organisms/extensions/recommendation/LegacyStrategyUpdatedModal.vue.js")
|
|
50
|
-
), f =
|
|
51
|
-
|
|
52
|
-
const
|
|
50
|
+
), D = G(), f = G(), y = Ie(), C = Be(), o = Te();
|
|
51
|
+
s.ready && o.init(s.config);
|
|
52
|
+
const c = w(), Z = Le(), l = p(() => c.hasChanges), { isTestPartner: ee } = fe(), { isEnabled: te, loadRollout: k } = ye(), R = () => {
|
|
53
53
|
var t;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
isAccessibilityTestingOpen: s.isAccessibilityTestingOpen
|
|
58
|
-
});
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
return (t = C.value) == null ? void 0 : t.saveSilent();
|
|
62
|
-
}, T = (t) => {
|
|
63
|
-
s.loadingStatus = t;
|
|
54
|
+
return (t = D.value) == null ? void 0 : t.handleSave(!0);
|
|
55
|
+
}, F = (t) => {
|
|
56
|
+
c.loadingStatus = t;
|
|
64
57
|
};
|
|
65
|
-
|
|
58
|
+
me(), pe();
|
|
66
59
|
const g = () => {
|
|
67
60
|
var t, e;
|
|
68
61
|
return {
|
|
@@ -70,18 +63,18 @@ const lt = /* @__PURE__ */ ie({
|
|
|
70
63
|
userId: o.userId,
|
|
71
64
|
username: o.username,
|
|
72
65
|
partnerName: o.partnerName,
|
|
73
|
-
savedModulesFolderName: ((t = o.editor) == null ? void 0 : t.savedModulesFolderName) ||
|
|
74
|
-
defaultModulesFolderName: ((e = o.editor) == null ? void 0 : e.defaultModulesFolderName) ||
|
|
66
|
+
savedModulesFolderName: ((t = o.editor) == null ? void 0 : t.savedModulesFolderName) || z.SAVED_MODULES,
|
|
67
|
+
defaultModulesFolderName: ((e = o.editor) == null ? void 0 : e.defaultModulesFolderName) || z.DEFAULT_MODULES
|
|
75
68
|
};
|
|
76
|
-
}, { initPlugin:
|
|
69
|
+
}, { initPlugin: M, preloadRuntime: T } = ge(), { runExclusive: I, beginMount: L, isCurrentMount: S } = le();
|
|
77
70
|
let u = 0;
|
|
78
|
-
const { getDefaultTemplate:
|
|
71
|
+
const { getDefaultTemplate: U } = Me(), { cloneTimersOnSave: A, hasTimerBlocks: B } = Se(), oe = p(() => {
|
|
79
72
|
var t;
|
|
80
73
|
return !((t = o.ui) != null && t.showHeader);
|
|
81
|
-
}),
|
|
74
|
+
}), ne = p(() => o.isFeatureEnabled("reusableRecommendationStrategy")), re = p(
|
|
82
75
|
() => !!E().recommendationConfigs.strategyId
|
|
83
76
|
);
|
|
84
|
-
|
|
77
|
+
ue({
|
|
85
78
|
onBack: () => {
|
|
86
79
|
console.debug("guido:back"), r("back");
|
|
87
80
|
},
|
|
@@ -96,72 +89,72 @@ const lt = /* @__PURE__ */ ie({
|
|
|
96
89
|
console.debug("guido:test-email:click"), r("test-email:click");
|
|
97
90
|
}
|
|
98
91
|
});
|
|
99
|
-
const
|
|
92
|
+
const N = (t) => {
|
|
100
93
|
console.debug("dynamic-content:close", t), y.setSelectedDynamicContent(t), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: t }));
|
|
101
|
-
},
|
|
94
|
+
}, P = () => {
|
|
102
95
|
console.debug("dynamic-content:close", "Without Data"), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: { text: "", value: "" } }));
|
|
103
96
|
};
|
|
104
|
-
|
|
97
|
+
V(() => l.value, () => {
|
|
105
98
|
r("on-change", l.value);
|
|
106
99
|
});
|
|
107
100
|
const v = (t) => {
|
|
108
|
-
const e = t, { attribute:
|
|
109
|
-
console.debug("dynamic-content:open", e.detail), r("dynamic-content:open",
|
|
101
|
+
const e = t, { attribute: a, position: d } = e.detail;
|
|
102
|
+
console.debug("dynamic-content:open", e.detail), r("dynamic-content:open", a, d);
|
|
110
103
|
};
|
|
111
|
-
let
|
|
104
|
+
let i = null;
|
|
112
105
|
const b = () => {
|
|
113
106
|
var e;
|
|
114
|
-
const t = document.querySelector(
|
|
107
|
+
const t = document.querySelector(ve);
|
|
115
108
|
(e = f.value) == null || e.style.setProperty("--ribbon-offset", `${(t == null ? void 0 : t.offsetHeight) ?? 0}px`);
|
|
116
109
|
}, h = async () => {
|
|
117
110
|
var t;
|
|
118
111
|
try {
|
|
119
|
-
o.initialized || o.init(
|
|
120
|
-
const e = o.template,
|
|
121
|
-
|
|
122
|
-
const
|
|
112
|
+
o.initialized || o.init(s.config), c.templateId = o.templateId;
|
|
113
|
+
const e = o.template, a = (e == null ? void 0 : e.html) || "", d = (e == null ? void 0 : e.css) || "", _ = (e == null ? void 0 : e.preselectedDynamicContent) || [];
|
|
114
|
+
C.selectedUnsubscribePages = (e == null ? void 0 : e.selectedUnsubscribePages) || [];
|
|
115
|
+
const O = ((t = e == null ? void 0 : e.migration) == null ? void 0 : t.recommendationConfigs) ?? {}, x = o.isFeatureEnabled("linkTrackingIds"), W = {
|
|
123
116
|
partnerName: o.partnerName,
|
|
124
117
|
campaignUrls: e == null ? void 0 : e.recommendationCampaignUrls,
|
|
125
118
|
rrsEnabled: o.isFeatureEnabled("reusableRecommendationStrategy")
|
|
126
119
|
};
|
|
127
120
|
let n = {
|
|
128
|
-
html:
|
|
121
|
+
html: a && await $(a, O, W),
|
|
129
122
|
css: d
|
|
130
123
|
};
|
|
131
|
-
n.html || (n = await
|
|
132
|
-
const
|
|
133
|
-
|
|
124
|
+
n.html || (n = await U(), n.html = await $(n.html, O, W));
|
|
125
|
+
const ae = x ? H(n.html, (e == null ? void 0 : e.trackIdCounter) || 0) : 0;
|
|
126
|
+
B(n.html) && (n.html = await A(n.html)), x && (c.trackIdSessionFloor = Math.max(ae, H(n.html)));
|
|
134
127
|
const se = {
|
|
135
|
-
preselectedDynamicContentList:
|
|
128
|
+
preselectedDynamicContentList: _,
|
|
136
129
|
onReady: () => {
|
|
137
130
|
console.debug("guido:ready"), r("ready");
|
|
138
131
|
}
|
|
139
132
|
};
|
|
140
|
-
u =
|
|
133
|
+
u = L(), await M(n, g(), se), y.selectedDynamicContentList = _;
|
|
141
134
|
} catch (e) {
|
|
142
135
|
console.error("Failed to initialize Stripo editor:", e);
|
|
143
136
|
}
|
|
144
137
|
};
|
|
145
|
-
return
|
|
138
|
+
return ce(async () => {
|
|
146
139
|
var e;
|
|
147
|
-
console.debug("Guido says happy coding 🎉"), console.debug("🚗 Ka-Chow"), E().$reset(), w().$reset(), Ae().$reset(),
|
|
140
|
+
console.debug("Guido says happy coding 🎉"), console.debug("🚗 Ka-Chow"), E().$reset(), w().$reset(), Ae().$reset(), Ue().$reset(), k(), b();
|
|
148
141
|
const t = (e = f.value) == null ? void 0 : e.parentElement;
|
|
149
|
-
if (t && (
|
|
142
|
+
if (t && (i = new ResizeObserver(b), i.observe(t)), T(), s.ready)
|
|
150
143
|
await h();
|
|
151
144
|
else {
|
|
152
|
-
const
|
|
153
|
-
d && (
|
|
145
|
+
const a = V(() => s.ready, (d) => {
|
|
146
|
+
d && (a(), h());
|
|
154
147
|
});
|
|
155
148
|
}
|
|
156
149
|
document.addEventListener("dynamic-content:open", v);
|
|
157
|
-
}),
|
|
158
|
-
if (
|
|
150
|
+
}), de(() => {
|
|
151
|
+
if (i == null || i.disconnect(), document.removeEventListener("dynamic-content:open", v), E().disposeStrategyPageReturn(), S(u))
|
|
159
152
|
try {
|
|
160
153
|
w().isStripoInitialized = !1;
|
|
161
154
|
} catch (t) {
|
|
162
155
|
console.debug("Failed to close the editor readiness gate on unmount", t);
|
|
163
156
|
}
|
|
164
|
-
|
|
157
|
+
I(async () => {
|
|
165
158
|
if (S(u))
|
|
166
159
|
try {
|
|
167
160
|
window.UIEditor.removeEditor();
|
|
@@ -169,17 +162,17 @@ const lt = /* @__PURE__ */ ie({
|
|
|
169
162
|
console.debug("Failed to remove Stripo editor: No editor found");
|
|
170
163
|
}
|
|
171
164
|
}), o.reset();
|
|
172
|
-
}),
|
|
165
|
+
}), K({
|
|
173
166
|
dynamicContent: {
|
|
174
|
-
insert:
|
|
175
|
-
close:
|
|
167
|
+
insert: N,
|
|
168
|
+
close: P
|
|
176
169
|
},
|
|
177
170
|
hasChanges: l,
|
|
178
|
-
saveSilent:
|
|
179
|
-
setLoading:
|
|
180
|
-
}), { __sfc: !0, PreviewContainer:
|
|
171
|
+
saveSilent: R,
|
|
172
|
+
setLoading: F
|
|
173
|
+
}), { __sfc: !0, PreviewContainer: j, OnboardingWrapper: J, AssignStrategyDrawer: Q, RemoveStrategyModal: X, LegacyStrategyUpdatedModal: Y, headerWrapperRef: D, wrapperRef: f, dynamicContentStore: y, unsubscribeStore: C, props: s, configStore: o, editorStore: c, previewStore: Z, hasChanges: l, isTestPartner: ee, isSaveValidationEnabled: te, loadRollout: k, saveSilent: R, setLoading: F, emit: r, buildMetadata: g, initPlugin: M, preloadRuntime: T, runExclusive: I, beginMount: L, isCurrentMount: S, mountGeneration: u, getDefaultTemplate: U, cloneTimersOnSave: A, hasTimerBlocks: B, noHeader: oe, isRrsEnabled: ne, hasAssignedStrategy: re, insertDynamicContent: N, closeDynamicContent: P, handleDynamicContentOpen: v, ribbonObserver: i, updateRibbonOffset: b, startEditor: h, AutoSaveController: be, AuthErrorModal: he, Toaster: Ee, FilterSelectionDrawer: we, HeaderWrapper: De, LoadingWrapper: Ce, SaveAsTemplateDrawer: ke, UnsubscribeWrapper: Re, ValidationErrorDrawer: Fe };
|
|
181
174
|
}
|
|
182
175
|
});
|
|
183
176
|
export {
|
|
184
|
-
|
|
177
|
+
ut as default
|
|
185
178
|
};
|
|
@@ -1,24 +1,15 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { useAutoSave as
|
|
3
|
-
import { useSave as
|
|
4
|
-
import { useSaveValidationRollout as
|
|
5
|
-
import {
|
|
6
|
-
const
|
|
1
|
+
import { defineComponent as n } from "vue";
|
|
2
|
+
import { useAutoSave as u } from "../../composables/useAutoSave.js";
|
|
3
|
+
import { useSave as i } from "../../composables/useSave.js";
|
|
4
|
+
import { useSaveValidationRollout as l } from "../../composables/useSaveValidationRollout.js";
|
|
5
|
+
import { useConfigStore as m } from "../../stores/config.js";
|
|
6
|
+
const d = /* @__PURE__ */ n({
|
|
7
7
|
__name: "AutoSaveController",
|
|
8
|
-
setup(
|
|
9
|
-
const { save: e, saveRawOnly: t } =
|
|
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 };
|
|
8
|
+
setup(f) {
|
|
9
|
+
const { save: e, saveRawOnly: t } = i(), { isEnabled: r } = l(), a = m(), o = () => r.value && a.allowSaveWithErrors, s = () => o() ? t() : e(!1, !0);
|
|
10
|
+
return u(s, { clearsChanges: () => !o() }), { __sfc: !0, save: e, saveRawOnly: t, isEnabled: r, configStore: a, isRawAutosave: o, backgroundSave: s };
|
|
20
11
|
}
|
|
21
12
|
});
|
|
22
13
|
export {
|
|
23
|
-
|
|
14
|
+
d as default
|
|
24
15
|
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import o from "./AutoSaveToggle.vue2.js";
|
|
2
|
+
/* empty css */
|
|
3
|
+
import i from "../../../_virtual/_plugin-vue2_normalizer.js";
|
|
4
|
+
var n = function() {
|
|
5
|
+
var e = this, a = e._self._c, t = e._self._setupProxy;
|
|
6
|
+
return t.isFeatureEnabled("autosave") ? a("div", { staticClass: "d-f a-i-c mr-3 auto-save-toggle", on: { mouseenter: function(s) {
|
|
7
|
+
t.isHovered = !0;
|
|
8
|
+
}, mouseleave: function(s) {
|
|
9
|
+
t.isHovered = !1;
|
|
10
|
+
} } }, [a(t.InToggle, { attrs: { id: "guido__autosave-toggle", name: "guido-autosave-toggle", checked: t.autosaveStore.isOn, disable: t.editorStore.loadingStatus }, on: { click: t.toggle } }), a("span", { staticClass: "ml-2 auto-save-toggle__label t-c-55" }, [e._v(" " + e._s(t.trans("email-editor.auto-save")) + " ")]), t.autosaveStore.status === t.AUTOSAVE_STATUS.SAVING ? a("span", { staticClass: "ml-2 d-f a-i-c f-s-1" }, [a(t.InLoading, { attrs: { "color-class": "i-c-53", size: "16" } }), a("span", { staticClass: "ml-1 t-c-53" }, [e._v(" " + e._s(t.trans("newsletter.saving")) + " ")])], 1) : t.lastSavedLabel ? a("span", { staticClass: "ml-2 f-s-1 t-c-53" }, [e._v(" " + e._s(t.lastSavedLabel) + " ")]) : e._e(), t.isHovered ? a(t.InInfoBox, { staticClass: "auto-save-toggle__info-box", attrs: { id: "guido__autosave-info-box", size: "small", variant: "information", "description-text": t.trans("email-editor.auto-save-description"), "title-text": t.trans("email-editor.auto-save-title") } }) : e._e()], 1) : e._e();
|
|
11
|
+
}, l = [], r = /* @__PURE__ */ i(
|
|
12
|
+
o,
|
|
13
|
+
n,
|
|
14
|
+
l,
|
|
15
|
+
!1,
|
|
16
|
+
null,
|
|
17
|
+
"2c964af4"
|
|
18
|
+
);
|
|
19
|
+
const d = r.exports;
|
|
20
|
+
export {
|
|
21
|
+
d as default
|
|
22
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { defineComponent as i, ref as f, computed as u } from "vue";
|
|
2
|
+
import { useConfig as l } from "../../../composables/useConfig.js";
|
|
3
|
+
import { useTranslations as p } from "../../../composables/useTranslations.js";
|
|
4
|
+
import { useAutosaveStore as c, AUTOSAVE_STATUS as t } from "../../../stores/autosave.js";
|
|
5
|
+
import { useEditorStore as S } from "../../../stores/editor.js";
|
|
6
|
+
import { formatLocalTime as d } from "../../../utils/timeUtil.js";
|
|
7
|
+
import { InToggle as g, InLoading as _, InInfoBox as A } from "@useinsider/design-system-vue";
|
|
8
|
+
const U = /* @__PURE__ */ i({
|
|
9
|
+
__name: "AutoSaveToggle",
|
|
10
|
+
setup(v) {
|
|
11
|
+
const { isFeatureEnabled: e } = l(), r = S(), o = c(), s = p(), n = f(!1), a = u(() => o.status !== t.SAVED || !o.lastSavedAt ? "" : d(o.lastSavedAt));
|
|
12
|
+
return { __sfc: !0, isFeatureEnabled: e, editorStore: r, autosaveStore: o, trans: s, isHovered: n, lastSavedLabel: a, toggle: (m) => {
|
|
13
|
+
o.isOn = m;
|
|
14
|
+
}, AUTOSAVE_STATUS: t, InInfoBox: A, InLoading: _, InToggle: g };
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
export {
|
|
18
|
+
U as default
|
|
19
|
+
};
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import
|
|
1
|
+
import l from "./EditorActions.vue2.js";
|
|
2
2
|
/* empty css */
|
|
3
|
-
import
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
return e("div", { staticClass: "d-f
|
|
3
|
+
import d from "../../../_virtual/_plugin-vue2_normalizer.js";
|
|
4
|
+
var u = function() {
|
|
5
|
+
var s, i, n, a;
|
|
6
|
+
var o = this, e = o._self._c, t = o._self._setupProxy;
|
|
7
|
+
return e("div", { staticClass: "d-f editor-actions" }, [t.isVersionHistoryButtonVisible ? e(t.InButtonV2, { attrs: { id: "guido__history-button", "left-icon": "line-architect-version-history", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isVersionHistoryButtonDisabled, "label-text-status": !1, "selected-status": t.editorStore.isVersionHistoryOpen, "tooltip-options": t.getTooltipOptions("guido__history-button"), "tooltip-text": t.versionHistoryTooltipText }, on: { click: t.handleVersionHistory } }) : o._e(), e(t.InButtonV2, { attrs: { id: "guido__export-button", "left-icon": "line-export", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isExportButtonDisabled, "label-text-status": !1, "loading-status": t.isExporting, "tooltip-options": t.getTooltipOptions("guido__export-button"), "tooltip-text": t.trans("newsletter.export") }, on: { click: t.handleExport } }), (i = (s = t.config) == null ? void 0 : s.features) != null && i.saveAsTemplate ? e(t.InButtonV2, { attrs: { id: "guido__save-as-button", "left-icon": "line-newsletter-save-as-template", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isSaveAsButtonDisabled, "label-text-status": !1, "tooltip-options": t.getTooltipOptions("guido__save-as-button"), "tooltip-text": t.trans("newsletter.save-templates") }, on: { click: t.handleSaveAs } }) : o._e(), (a = (n = t.config) == null ? void 0 : n.features) != null && a.testMessage ? e(t.InButtonV2, { attrs: { id: "guido__test-button", "left-icon": "line-architect-test-journey", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isTestButtonDisabled, "label-text-status": !1, "tooltip-options": t.getTooltipOptions("guido__test-button", { staticPosition: "bottom right" }), "tooltip-text": t.trans("newsletter.test-email") }, on: { click: t.handleTestEmail } }) : o._e(), t.editorStore.isPreviewModeOpen ? o._e() : e(t.InButtonV2, { staticClass: "ml-3", attrs: { id: "guido__save-button", "disabled-status": !t.isSaving && t.editorStore.isSaveButtonDisabled, "label-text": t.saveLabel, "loading-status": t.isSaving }, on: { click: function(r) {
|
|
8
8
|
return t.handleSave(!1);
|
|
9
|
-
} } }), e(t.MigrationConfirmModal, { ref: "migrationModalRef", on: { confirm: function(
|
|
9
|
+
} } }), e(t.MigrationConfirmModal, { ref: "migrationModalRef", on: { confirm: function(r) {
|
|
10
10
|
return t.executeSave(!1);
|
|
11
11
|
} } })], 1);
|
|
12
|
-
},
|
|
13
|
-
a,
|
|
14
|
-
d,
|
|
12
|
+
}, p = [], c = /* @__PURE__ */ d(
|
|
15
13
|
l,
|
|
14
|
+
u,
|
|
15
|
+
p,
|
|
16
16
|
!1,
|
|
17
17
|
null,
|
|
18
|
-
"
|
|
18
|
+
"baf7a5dd"
|
|
19
19
|
);
|
|
20
|
-
const
|
|
20
|
+
const v = c.exports;
|
|
21
21
|
export {
|
|
22
|
-
|
|
22
|
+
v as default
|
|
23
23
|
};
|