@useinsider/guido 3.1.1-beta.e00a22b → 3.1.1-beta.e2f9e0a
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 +0 -1
- package/dist/@types/config/schemas.js +7 -9
- package/dist/components/Guido.vue.js +4 -4
- package/dist/components/Guido.vue2.js +91 -81
- package/dist/components/organisms/header/EditorActions.vue.js +2 -2
- package/dist/components/organisms/header/EditorActions.vue2.js +35 -45
- package/dist/components/organisms/header/RightSlot.vue.js +10 -10
- package/dist/components/organisms/header/RightSlot.vue2.js +13 -16
- package/dist/composables/useHtmlCompiler.js +16 -18
- package/dist/composables/useSave.js +17 -23
- package/dist/composables/useStripo.js +41 -44
- package/dist/extensions/Blocks/CouponBlock/template.js +13 -24
- package/dist/extensions/DynamicContent/dynamic-content.js +12 -17
- package/dist/guido.css +1 -1
- package/dist/src/@types/config/schemas.d.ts +0 -4
- package/dist/src/composables/useConfig.d.ts +0 -2
- package/dist/src/extensions/Blocks/CouponBlock/template.d.ts +0 -2
- package/dist/src/stores/config.d.ts +0 -18
- package/dist/src/utils/genericUtil.d.ts +1 -1
- package/dist/static/styles/base.css.js +7 -2
- package/dist/utils/genericUtil.js +20 -42
- package/dist/utils/templatePreparation.js +34 -25
- package/package.json +1 -2
- package/dist/composables/validators/useLiquidValidator.js +0 -42
- package/dist/config/compiler/liquidCompilerRules.js +0 -15
- package/dist/src/composables/validators/useLiquidValidator.d.ts +0 -3
- package/dist/src/config/compiler/liquidCompilerRules.d.ts +0 -2
package/README.md
CHANGED
|
@@ -143,7 +143,6 @@ const config: GuidoConfigInput = {
|
|
|
143
143
|
displayConditions?: boolean, // Default: true
|
|
144
144
|
unsubscribe?: boolean, // Default: true
|
|
145
145
|
modulesDisabled?: boolean, // Default: false - Disable modules panel
|
|
146
|
-
liquidSyntax?: boolean, // Default: false - Enable Liquid template syntax
|
|
147
146
|
},
|
|
148
147
|
|
|
149
148
|
// Optional: Callbacks
|
|
@@ -121,9 +121,7 @@ const m = {
|
|
|
121
121
|
/** Enable unsubscribe block */
|
|
122
122
|
unsubscribe: e(a(), !0),
|
|
123
123
|
/** Disable modules panel in the editor */
|
|
124
|
-
modulesDisabled: e(a(), !1)
|
|
125
|
-
/** Enable Liquid template syntax */
|
|
126
|
-
liquidSyntax: e(a(), !1)
|
|
124
|
+
modulesDisabled: e(a(), !1)
|
|
127
125
|
}), g = n([
|
|
128
126
|
"amp-accordion",
|
|
129
127
|
"amp-carousel",
|
|
@@ -195,14 +193,14 @@ const m = {
|
|
|
195
193
|
(i) => typeof i == "function",
|
|
196
194
|
"processor must be a function"
|
|
197
195
|
)
|
|
198
|
-
}),
|
|
196
|
+
}), U = k("type", [
|
|
199
197
|
M,
|
|
200
198
|
N,
|
|
201
199
|
D,
|
|
202
200
|
v
|
|
203
|
-
]),
|
|
201
|
+
]), x = o({
|
|
204
202
|
/** Custom compiler rules to apply */
|
|
205
|
-
customRules: e(c(
|
|
203
|
+
customRules: e(c(U), []),
|
|
206
204
|
/** Skip default compiler rules */
|
|
207
205
|
ignoreDefaultRules: e(a(), !1)
|
|
208
206
|
}), B = o({
|
|
@@ -234,15 +232,15 @@ const m = {
|
|
|
234
232
|
/** Block configuration */
|
|
235
233
|
blocks: e(L, {}),
|
|
236
234
|
/** Compiler configuration */
|
|
237
|
-
compiler: e(
|
|
235
|
+
compiler: e(x, {}),
|
|
238
236
|
/** Callbacks and event handlers */
|
|
239
237
|
callbacks: e(B, {})
|
|
240
238
|
});
|
|
241
239
|
export {
|
|
242
240
|
L as BlocksSchema,
|
|
243
241
|
B as CallbacksSchema,
|
|
244
|
-
|
|
245
|
-
|
|
242
|
+
U as CompilerRuleSchema,
|
|
243
|
+
x as CompilerSchema,
|
|
246
244
|
O as CustomBlockTypeSchema,
|
|
247
245
|
v as CustomRuleSchema,
|
|
248
246
|
g as DefaultBlockTypeSchema,
|
|
@@ -3,7 +3,7 @@ import i from "./Guido.vue2.js";
|
|
|
3
3
|
import a from "../_virtual/_plugin-vue2_normalizer.js";
|
|
4
4
|
var t = function() {
|
|
5
5
|
var o = this, r = o._self._c, e = o._self._setupProxy;
|
|
6
|
-
return r("div", { staticClass: "guido-editor__wrapper", class: { "guido-editor__no-header": e.noHeader } }, [r(e.HeaderWrapper, { ref: "headerWrapperRef" }), e.editorStore.isPreviewModeOpen ? r(e.PreviewContainer) : o._e(), r("div", { directives: [{ name: "show", rawName: "v-show", value: !e.previewStore.isLoaded, expression: "!previewStore.isLoaded" }], staticClass: "guido-editor__container", class: { "guido-editor__no-header": e.noHeader }, attrs: { id: "guido-editor" } }), r(e.Toaster), r(e.FilterSelectionDrawer), r(e.SaveAsTemplateDrawer), e.isTestPartner() ? o._e() : r(e.OnboardingWrapper, { on: { "onboarding-finished": function(
|
|
6
|
+
return r("div", { ref: "wrapperRef", staticClass: "guido-editor__wrapper", class: { "guido-editor__no-header": e.noHeader } }, [r(e.HeaderWrapper, { ref: "headerWrapperRef" }), e.editorStore.isPreviewModeOpen ? r(e.PreviewContainer) : o._e(), r("div", { directives: [{ name: "show", rawName: "v-show", value: !e.previewStore.isLoaded, expression: "!previewStore.isLoaded" }], staticClass: "guido-editor__container", class: { "guido-editor__no-header": e.noHeader }, attrs: { id: "guido-editor" } }), r(e.Toaster), r(e.FilterSelectionDrawer), r(e.SaveAsTemplateDrawer), e.isTestPartner() ? o._e() : r(e.OnboardingWrapper, { on: { "onboarding-finished": function(p) {
|
|
7
7
|
return e.emit("onboarding:finished");
|
|
8
8
|
} } }), r(e.UnsubscribeWrapper), r(e.LoadingWrapper)], 1);
|
|
9
9
|
}, n = [], s = /* @__PURE__ */ a(
|
|
@@ -12,9 +12,9 @@ var t = function() {
|
|
|
12
12
|
n,
|
|
13
13
|
!1,
|
|
14
14
|
null,
|
|
15
|
-
"
|
|
15
|
+
"25780af6"
|
|
16
16
|
);
|
|
17
|
-
const
|
|
17
|
+
const u = s.exports;
|
|
18
18
|
export {
|
|
19
|
-
|
|
19
|
+
u as default
|
|
20
20
|
};
|
|
@@ -1,121 +1,131 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { provideGuidoActions as
|
|
3
|
-
import { usePartner as
|
|
4
|
-
import { useStripo as
|
|
5
|
-
import { useTimerClone as
|
|
6
|
-
import { migrate as
|
|
7
|
-
import { ModuleFolderDefaults as
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
|
|
1
|
+
import { defineComponent as j, defineAsyncComponent as R, ref as A, computed as I, watch as J, onMounted as Q, onUnmounted as X } from "vue";
|
|
2
|
+
import { provideGuidoActions as Y } from "../composables/useGuidoActions.js";
|
|
3
|
+
import { usePartner as Z } from "../composables/usePartner.js";
|
|
4
|
+
import { useStripo as ee } from "../composables/useStripo.js";
|
|
5
|
+
import { useTimerClone as te } from "../composables/useTimerClone.js";
|
|
6
|
+
import { migrate as W } from "../config/migrator/index.js";
|
|
7
|
+
import { ModuleFolderDefaults as B } from "../enums/defaults.js";
|
|
8
|
+
import { RIBBON_SELECTOR as oe } from "../enums/onboarding.js";
|
|
9
|
+
import ne from "./organisms/base/Toaster.vue.js";
|
|
10
|
+
import se from "./organisms/extensions/recommendation/FilterSelectionDrawer.vue.js";
|
|
11
|
+
import re from "./organisms/header/HeaderWrapper.vue.js";
|
|
12
|
+
import ce from "./organisms/LoadingWrapper.vue.js";
|
|
13
|
+
import ae from "./organisms/save-as-template/SaveAsTemplateDrawer.vue.js";
|
|
14
|
+
import ie from "./organisms/unsubscribe/UnsubscribeWrapper.vue.js";
|
|
15
|
+
import { useStripoApi as me } from "../services/stripoApi.js";
|
|
16
|
+
import { useConfigStore as de } from "../stores/config.js";
|
|
17
|
+
import { useDynamicContentStore as le } from "../stores/dynamic-content.js";
|
|
18
|
+
import { useEditorStore as ue } from "../stores/editor.js";
|
|
19
|
+
import { usePreviewStore as pe } from "../stores/preview.js";
|
|
20
|
+
import { useUnsubscribeStore as fe } from "../stores/unsubscribe.js";
|
|
21
|
+
const Re = /* @__PURE__ */ j({
|
|
21
22
|
__name: "Guido",
|
|
22
23
|
props: {
|
|
23
24
|
config: null
|
|
24
25
|
},
|
|
25
26
|
emits: ["dynamic-content:open", "back", "save:start", "save:complete", "on-change", "ready", "onboarding:finished", "test-email:click"],
|
|
26
|
-
setup(
|
|
27
|
-
const
|
|
27
|
+
setup(H, { expose: x, emit: s }) {
|
|
28
|
+
const b = H, G = R(
|
|
28
29
|
() => import("./organisms/email-preview/PreviewContainer.vue.js")
|
|
29
|
-
),
|
|
30
|
+
), z = R(
|
|
30
31
|
() => import("./organisms/onboarding/OnboardingWrapper.vue.js")
|
|
31
|
-
),
|
|
32
|
-
|
|
33
|
-
const
|
|
32
|
+
), S = A(), d = A(), l = le(), g = fe(), a = de();
|
|
33
|
+
a.init(b.config);
|
|
34
|
+
const u = ue(), q = pe(), i = I(() => u.hasChanges), { isTestPartner: K } = Z(), w = () => {
|
|
34
35
|
var e;
|
|
35
|
-
return (e =
|
|
36
|
+
return (e = S.value) == null ? void 0 : e.handleSave(!0);
|
|
36
37
|
}, {
|
|
37
|
-
templateId:
|
|
38
|
-
userId:
|
|
39
|
-
partnerName:
|
|
40
|
-
username:
|
|
41
|
-
template:
|
|
42
|
-
editor:
|
|
43
|
-
} =
|
|
44
|
-
|
|
45
|
-
const
|
|
46
|
-
emailId:
|
|
47
|
-
userId:
|
|
48
|
-
username:
|
|
49
|
-
partnerName:
|
|
50
|
-
savedModulesFolderName:
|
|
51
|
-
defaultModulesFolderName:
|
|
52
|
-
},
|
|
53
|
-
preselectedDynamicContentList:
|
|
38
|
+
templateId: p,
|
|
39
|
+
userId: E,
|
|
40
|
+
partnerName: D,
|
|
41
|
+
username: C,
|
|
42
|
+
template: t,
|
|
43
|
+
editor: r
|
|
44
|
+
} = a, m = (t == null ? void 0 : t.html) || "", T = (t == null ? void 0 : t.css) || "", f = (t == null ? void 0 : t.preselectedDynamicContent) || [], k = (r == null ? void 0 : r.savedModulesFolderName) || B.SAVED_MODULES, F = (r == null ? void 0 : r.defaultModulesFolderName) || B.DEFAULT_MODULES;
|
|
45
|
+
u.templateId = p;
|
|
46
|
+
const v = {
|
|
47
|
+
emailId: p,
|
|
48
|
+
userId: E,
|
|
49
|
+
username: C,
|
|
50
|
+
partnerName: D,
|
|
51
|
+
savedModulesFolderName: k,
|
|
52
|
+
defaultModulesFolderName: F
|
|
53
|
+
}, L = {
|
|
54
|
+
preselectedDynamicContentList: f,
|
|
54
55
|
onReady: () => {
|
|
55
|
-
console.debug("guido:ready"),
|
|
56
|
+
console.debug("guido:ready"), s("ready");
|
|
56
57
|
}
|
|
57
|
-
}, { initPlugin:
|
|
58
|
+
}, { initPlugin: U } = ee(v, L), { getDefaultTemplate: _ } = me(), { cloneTimersOnSave: M, hasTimerBlocks: O } = te(), V = I(() => {
|
|
58
59
|
var e;
|
|
59
|
-
return !((e =
|
|
60
|
+
return !((e = a.ui) != null && e.showHeader);
|
|
60
61
|
});
|
|
61
|
-
|
|
62
|
+
Y({
|
|
62
63
|
onBack: () => {
|
|
63
|
-
console.debug("guido:back"),
|
|
64
|
+
console.debug("guido:back"), s("back");
|
|
64
65
|
},
|
|
65
66
|
onSaveStart: () => {
|
|
66
|
-
console.debug("guido:save:start"),
|
|
67
|
+
console.debug("guido:save:start"), s("save:start");
|
|
67
68
|
},
|
|
68
69
|
onSaveComplete: (e) => {
|
|
69
|
-
const
|
|
70
|
-
console.debug("guido:save:complete",
|
|
70
|
+
const n = { ...e, metadata: v };
|
|
71
|
+
console.debug("guido:save:complete", n), s("save:complete", n);
|
|
71
72
|
},
|
|
72
73
|
onTestEmailClick: () => {
|
|
73
|
-
console.debug("guido:test-email:click"),
|
|
74
|
+
console.debug("guido:test-email:click"), s("test-email:click");
|
|
74
75
|
}
|
|
75
76
|
});
|
|
76
|
-
const
|
|
77
|
-
console.debug("dynamic-content:close", e),
|
|
78
|
-
},
|
|
77
|
+
const P = (e) => {
|
|
78
|
+
console.debug("dynamic-content:close", e), l.setSelectedDynamicContent(e), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: e }));
|
|
79
|
+
}, N = () => {
|
|
79
80
|
console.debug("dynamic-content:close", "Without Data"), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: { text: "", value: "" } }));
|
|
80
81
|
};
|
|
81
|
-
|
|
82
|
-
|
|
82
|
+
J(() => i.value, () => {
|
|
83
|
+
s("on-change", i.value);
|
|
83
84
|
});
|
|
84
|
-
const
|
|
85
|
-
const
|
|
86
|
-
console.debug("dynamic-content:open",
|
|
85
|
+
const y = (e) => {
|
|
86
|
+
const n = e, { attribute: o, position: $ } = n.detail;
|
|
87
|
+
console.debug("dynamic-content:open", n.detail), s("dynamic-content:open", o, $);
|
|
87
88
|
};
|
|
88
|
-
|
|
89
|
-
|
|
89
|
+
let c = null;
|
|
90
|
+
const h = () => {
|
|
91
|
+
var n;
|
|
92
|
+
const e = document.querySelector(oe);
|
|
93
|
+
(n = d.value) == null || n.style.setProperty("--ribbon-offset", `${(e == null ? void 0 : e.offsetHeight) ?? 0}px`);
|
|
94
|
+
};
|
|
95
|
+
return Q(async () => {
|
|
96
|
+
var n;
|
|
97
|
+
console.debug("Guido says happy coding 🎉"), console.debug("🚗 Ka-Chow"), h();
|
|
98
|
+
const e = (n = d.value) == null ? void 0 : n.parentElement;
|
|
99
|
+
e && (c = new ResizeObserver(h), c.observe(e));
|
|
90
100
|
try {
|
|
91
|
-
|
|
92
|
-
let
|
|
93
|
-
html:
|
|
94
|
-
css:
|
|
101
|
+
g.selectedUnsubscribePages = (t == null ? void 0 : t.selectedUnsubscribePages) || [];
|
|
102
|
+
let o = {
|
|
103
|
+
html: m && await W(m),
|
|
104
|
+
css: T
|
|
95
105
|
};
|
|
96
|
-
|
|
97
|
-
} catch (
|
|
98
|
-
console.error("Failed to initialize Stripo editor:",
|
|
106
|
+
o.html || (o = await _(), o.html = await W(o.html)), O(o.html) && (o.html = await M(o.html)), await U(o), l.selectedDynamicContentList = f;
|
|
107
|
+
} catch (o) {
|
|
108
|
+
console.error("Failed to initialize Stripo editor:", o);
|
|
99
109
|
}
|
|
100
|
-
document.addEventListener("dynamic-content:open",
|
|
101
|
-
}),
|
|
102
|
-
document.removeEventListener("dynamic-content:open",
|
|
110
|
+
document.addEventListener("dynamic-content:open", y);
|
|
111
|
+
}), X(() => {
|
|
112
|
+
c == null || c.disconnect(), document.removeEventListener("dynamic-content:open", y);
|
|
103
113
|
try {
|
|
104
114
|
window.UIEditor.removeEditor();
|
|
105
115
|
} catch {
|
|
106
116
|
console.debug("Failed to remove Stripo editor: No editor found");
|
|
107
117
|
}
|
|
108
|
-
|
|
109
|
-
}),
|
|
118
|
+
a.reset();
|
|
119
|
+
}), x({
|
|
110
120
|
dynamicContent: {
|
|
111
|
-
insert:
|
|
112
|
-
close:
|
|
121
|
+
insert: P,
|
|
122
|
+
close: N
|
|
113
123
|
},
|
|
114
|
-
hasChanges:
|
|
115
|
-
saveSilent:
|
|
116
|
-
}), { __sfc: !0, PreviewContainer:
|
|
124
|
+
hasChanges: i,
|
|
125
|
+
saveSilent: w
|
|
126
|
+
}), { __sfc: !0, PreviewContainer: G, OnboardingWrapper: z, headerWrapperRef: S, wrapperRef: d, dynamicContentStore: l, unsubscribeStore: g, props: b, configStore: a, editorStore: u, previewStore: q, hasChanges: i, isTestPartner: K, saveSilent: w, templateId: p, userId: E, partnerName: D, username: C, templateConfig: t, editorConfig: r, html: m, css: T, preselectedDynamicContentList: f, savedModulesFolderName: k, defaultModulesFolderName: F, emit: s, metadata: v, options: L, initPlugin: U, getDefaultTemplate: _, cloneTimersOnSave: M, hasTimerBlocks: O, noHeader: V, insertDynamicContent: P, closeDynamicContent: N, handleDynamicContentOpen: y, ribbonObserver: c, updateRibbonOffset: h, Toaster: ne, FilterSelectionDrawer: se, HeaderWrapper: re, LoadingWrapper: ce, SaveAsTemplateDrawer: ae, UnsubscribeWrapper: ie };
|
|
117
127
|
}
|
|
118
128
|
});
|
|
119
129
|
export {
|
|
120
|
-
|
|
130
|
+
Re as default
|
|
121
131
|
};
|
|
@@ -4,7 +4,7 @@ import d from "../../../_virtual/_plugin-vue2_normalizer.js";
|
|
|
4
4
|
var u = function() {
|
|
5
5
|
var s, i, n, a;
|
|
6
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.
|
|
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.testEmailClick } }) : o._e(), t.editorStore.isPreviewModeOpen ? o._e() : e(t.InButtonV2, { staticClass: "ml-3", attrs: { id: "guido__save-button", "label-text": "Save", "disabled-status": !t.isSaving && t.editorStore.isSaveButtonDisabled, "loading-status": t.isSaving }, on: { click: function(r) {
|
|
8
8
|
return t.handleSave(!1);
|
|
9
9
|
} } }), e(t.MigrationConfirmModal, { ref: "migrationModalRef", on: { confirm: function(r) {
|
|
10
10
|
return t.executeSave(!1);
|
|
@@ -15,7 +15,7 @@ var u = function() {
|
|
|
15
15
|
p,
|
|
16
16
|
!1,
|
|
17
17
|
null,
|
|
18
|
-
"
|
|
18
|
+
"acff76a8"
|
|
19
19
|
);
|
|
20
20
|
const v = c.exports;
|
|
21
21
|
export {
|
|
@@ -1,61 +1,51 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import
|
|
14
|
-
|
|
15
|
-
import { storeToRefs as J } from "pinia";
|
|
16
|
-
import K from "./MigrationConfirmModal.vue.js";
|
|
17
|
-
const ct = /* @__PURE__ */ O({
|
|
1
|
+
import { defineComponent as E, ref as n, computed as g } from "vue";
|
|
2
|
+
import { useConfig as w } from "../../../composables/useConfig.js";
|
|
3
|
+
import { useExport as C } from "../../../composables/useExport.js";
|
|
4
|
+
import { useTestEmailClick as M } from "../../../composables/useGuidoActions.js";
|
|
5
|
+
import { useSave as O } from "../../../composables/useSave.js";
|
|
6
|
+
import { useTranslations as A } from "../../../composables/useTranslations.js";
|
|
7
|
+
import { useVersionHistoryApi as k } from "../../../composables/useVersionHistoryApi.js";
|
|
8
|
+
import { useEditorStore as B } from "../../../stores/editor.js";
|
|
9
|
+
import { useTemplateStore as R } from "../../../stores/template.js";
|
|
10
|
+
import { getTooltipOptions as b } from "../../../utils/tooltipUtils.js";
|
|
11
|
+
import { InButtonV2 as D } from "@useinsider/design-system-vue";
|
|
12
|
+
import { storeToRefs as I } from "pinia";
|
|
13
|
+
import P from "./MigrationConfirmModal.vue.js";
|
|
14
|
+
const Z = /* @__PURE__ */ E({
|
|
18
15
|
__name: "EditorActions",
|
|
19
|
-
setup(
|
|
20
|
-
const { config: a
|
|
16
|
+
setup(j, { expose: H }) {
|
|
17
|
+
const { config: a } = w(), { exportHtml: m } = C(), { save: p } = O(), { openVersionHistory: l, closeVersionHistory: u } = k(), e = B(), c = R(), { hasMigrations: f } = I(c), r = A(), s = n(!1), i = n(!1), v = n(), S = M(), V = () => {
|
|
21
18
|
if (e.isVersionHistoryOpen) {
|
|
22
19
|
u();
|
|
23
20
|
return;
|
|
24
21
|
}
|
|
25
|
-
|
|
26
|
-
},
|
|
27
|
-
|
|
22
|
+
l();
|
|
23
|
+
}, T = async () => {
|
|
24
|
+
s.value = !0, await m(), s.value = !1;
|
|
28
25
|
}, _ = () => {
|
|
29
26
|
e.isSaveAsTemplateDrawerOpen = !0;
|
|
30
|
-
},
|
|
27
|
+
}, h = g(() => e.isVersionHistoryOpen ? r("newsletter.close-version-history") : r("newsletter.version-history")), x = g(
|
|
31
28
|
() => {
|
|
32
|
-
var
|
|
33
|
-
return ((
|
|
29
|
+
var o, t;
|
|
30
|
+
return ((t = (o = a.value) == null ? void 0 : o.features) == null ? void 0 : t.versionHistory) && !e.isPreviewModeOpen;
|
|
34
31
|
}
|
|
35
|
-
),
|
|
36
|
-
|
|
37
|
-
const
|
|
38
|
-
return
|
|
39
|
-
},
|
|
40
|
-
var
|
|
41
|
-
if (!
|
|
42
|
-
(
|
|
32
|
+
), d = async (o) => {
|
|
33
|
+
i.value = !0, e.loadingStatus = !0;
|
|
34
|
+
const t = await p(o);
|
|
35
|
+
return i.value = !1, (o || !t) && (e.loadingStatus = !1), t;
|
|
36
|
+
}, y = (o) => {
|
|
37
|
+
var t;
|
|
38
|
+
if (!o && f.value) {
|
|
39
|
+
(t = v.value) == null || t.open();
|
|
43
40
|
return;
|
|
44
41
|
}
|
|
45
|
-
return
|
|
46
|
-
}, M = async () => {
|
|
47
|
-
if (m("liquidSyntax")) {
|
|
48
|
-
const { html: t } = await f({ minimize: !0, resetDataSavedFlag: !1 }), { compiledHtml: o } = d(t);
|
|
49
|
-
if (!await v(o))
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
g();
|
|
42
|
+
return d(o);
|
|
53
43
|
};
|
|
54
|
-
return
|
|
55
|
-
handleSave:
|
|
56
|
-
}), { __sfc: !0, config: a,
|
|
44
|
+
return H({
|
|
45
|
+
handleSave: y
|
|
46
|
+
}), { __sfc: !0, config: a, exportHtml: m, save: p, openVersionHistory: l, closeVersionHistory: u, editorStore: e, templateStore: c, hasMigrations: f, trans: r, isExporting: s, isSaving: i, migrationModalRef: v, testEmailClick: S, handleVersionHistory: V, handleExport: T, handleSaveAs: _, versionHistoryTooltipText: h, isVersionHistoryButtonVisible: x, executeSave: d, handleSave: y, getTooltipOptions: b, InButtonV2: D, MigrationConfirmModal: P };
|
|
57
47
|
}
|
|
58
48
|
});
|
|
59
49
|
export {
|
|
60
|
-
|
|
50
|
+
Z as default
|
|
61
51
|
};
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
return
|
|
6
|
-
},
|
|
7
|
-
i,
|
|
1
|
+
import o from "./RightSlot.vue2.js";
|
|
2
|
+
import s from "../../../_virtual/_plugin-vue2_normalizer.js";
|
|
3
|
+
var n = function() {
|
|
4
|
+
var r = this, t = r._self._c, e = r._self._setupProxy;
|
|
5
|
+
return t("div", { staticClass: "d-f" }, [e.editorStore.isVersionHistoryOpen ? t(e.RestoreButton) : t(e.EditorActions, { ref: "editorActionsRef" })], 1);
|
|
6
|
+
}, i = [], _ = /* @__PURE__ */ s(
|
|
8
7
|
o,
|
|
9
|
-
|
|
8
|
+
n,
|
|
9
|
+
i,
|
|
10
10
|
!1,
|
|
11
11
|
null,
|
|
12
12
|
null
|
|
13
13
|
);
|
|
14
|
-
const
|
|
14
|
+
const l = _.exports;
|
|
15
15
|
export {
|
|
16
|
-
|
|
16
|
+
l as default
|
|
17
17
|
};
|
|
@@ -1,22 +1,19 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
import _ from "./EditorActions.vue.js";
|
|
7
|
-
import S from "./version-history/RestoreButton.vue.js";
|
|
8
|
-
const x = /* @__PURE__ */ a({
|
|
1
|
+
import { defineComponent as i, ref as s } from "vue";
|
|
2
|
+
import { useEditorStore as m } from "../../../stores/editor.js";
|
|
3
|
+
import f from "./EditorActions.vue.js";
|
|
4
|
+
import a from "./version-history/RestoreButton.vue.js";
|
|
5
|
+
const l = /* @__PURE__ */ i({
|
|
9
6
|
__name: "RightSlot",
|
|
10
|
-
setup(
|
|
11
|
-
const
|
|
12
|
-
return
|
|
13
|
-
handleSave: (
|
|
14
|
-
var
|
|
15
|
-
return (
|
|
7
|
+
setup(p, { expose: e }) {
|
|
8
|
+
const r = m(), o = s(null);
|
|
9
|
+
return e({
|
|
10
|
+
handleSave: (n) => {
|
|
11
|
+
var t;
|
|
12
|
+
return (t = o.value) == null ? void 0 : t.handleSave(n);
|
|
16
13
|
}
|
|
17
|
-
}), { __sfc: !0,
|
|
14
|
+
}), { __sfc: !0, editorStore: r, editorActionsRef: o, EditorActions: f, RestoreButton: a };
|
|
18
15
|
}
|
|
19
16
|
});
|
|
20
17
|
export {
|
|
21
|
-
|
|
18
|
+
l as default
|
|
22
19
|
};
|
|
@@ -1,30 +1,28 @@
|
|
|
1
|
-
import { defaultHtmlCompilerRules as
|
|
2
|
-
import { itemsCompilerRules as
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { socialCompilerRules as b } from "../config/compiler/socialCompilerRules.js";
|
|
1
|
+
import { defaultHtmlCompilerRules as n } from "../config/compiler/htmlCompilerRules.js";
|
|
2
|
+
import { itemsCompilerRules as a } from "../config/compiler/itemsCompilerRules.js";
|
|
3
|
+
import { outlookCompilerRules as f } from "../config/compiler/outlookCompilerRules.js";
|
|
4
|
+
import { recommendationCompilerRules as R } from "../config/compiler/recommendationCompilerRules.js";
|
|
5
|
+
import { socialCompilerRules as C } from "../config/compiler/socialCompilerRules.js";
|
|
7
6
|
import { unsubscribeCompilerRules as g } from "../config/compiler/unsubscribeCompilerRules.js";
|
|
8
7
|
import { createHtmlCompiler as H } from "../utils/htmlCompiler.js";
|
|
9
|
-
import { useConfig as
|
|
10
|
-
const
|
|
8
|
+
import { useConfig as b } from "./useConfig.js";
|
|
9
|
+
const q = () => {
|
|
11
10
|
var l, m, r;
|
|
12
|
-
const { compiler: e,
|
|
13
|
-
...!!((m = e.value) != null && m.ignoreDefaultRules) ? [] :
|
|
14
|
-
...
|
|
11
|
+
const { compiler: e, partner: t } = b(), i = ((l = e.value) == null ? void 0 : l.customRules) || [], s = [
|
|
12
|
+
...!!((m = e.value) != null && m.ignoreDefaultRules) ? [] : n,
|
|
13
|
+
...R,
|
|
15
14
|
...g,
|
|
15
|
+
...a,
|
|
16
16
|
...f,
|
|
17
17
|
...C,
|
|
18
|
-
...
|
|
19
|
-
...t("liquidSyntax") ? R : [],
|
|
20
|
-
...s.map((o, a) => ({
|
|
18
|
+
...i.map((o, c) => ({
|
|
21
19
|
...o,
|
|
22
|
-
priority: o.priority + 1e3 +
|
|
20
|
+
priority: o.priority + 1e3 + c
|
|
23
21
|
// Ensure additional rules run after default rules
|
|
24
22
|
}))
|
|
25
|
-
], p = H(
|
|
26
|
-
return { compileHtml: (o) => p.compile(o, void 0,
|
|
23
|
+
], p = H(s), u = (r = t.value) == null ? void 0 : r.fallbackFont;
|
|
24
|
+
return { compileHtml: (o) => p.compile(o, void 0, u) };
|
|
27
25
|
};
|
|
28
26
|
export {
|
|
29
|
-
|
|
27
|
+
q as useHtmlCompiler
|
|
30
28
|
};
|
|
@@ -1,29 +1,23 @@
|
|
|
1
|
-
import { useActionsApi as
|
|
2
|
-
import { useConfig as
|
|
3
|
-
import { useSaveStart as
|
|
4
|
-
import { useSyncModuleExtractor as
|
|
5
|
-
import { useStripoApi as
|
|
6
|
-
import { useTemplatePreparation as
|
|
7
|
-
import { useHtmlValidator as
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
var i;
|
|
1
|
+
import { useActionsApi as d } from "./useActionsApi.js";
|
|
2
|
+
import { useConfig as f } from "./useConfig.js";
|
|
3
|
+
import { useSaveStart as v, useSaveComplete as S } from "./useGuidoActions.js";
|
|
4
|
+
import { useSyncModuleExtractor as x } from "./useSyncModuleExtractor.js";
|
|
5
|
+
import { useStripoApi as V } from "../services/stripoApi.js";
|
|
6
|
+
import { useTemplatePreparation as y } from "../utils/templatePreparation.js";
|
|
7
|
+
import { useHtmlValidator as w } from "./useHtmlValidator.js";
|
|
8
|
+
const k = () => {
|
|
9
|
+
const o = v(), s = S(), { validateHtml: i } = w(), { callbacks: a } = f(), { extractSyncModuleData: r } = x(), { setSyncModuleUnsubscriptionPages: n } = V(), { editorSave: l } = d();
|
|
10
|
+
return { save: async (c = !1) => {
|
|
11
|
+
var e;
|
|
13
12
|
o();
|
|
14
|
-
const { prepareTemplateDetails:
|
|
15
|
-
if (
|
|
16
|
-
if (!await n(t.compiledHtml))
|
|
17
|
-
return;
|
|
18
|
-
} else if (!await r(t.compiledHtml, t.dynamicContentList, !0))
|
|
13
|
+
const { prepareTemplateDetails: m } = y(), t = await m();
|
|
14
|
+
if (!await i(t.compiledHtml, t.dynamicContentList, !0) || (e = a.value) != null && e.externalValidation && !await a.value.externalValidation(t))
|
|
19
15
|
return;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
c();
|
|
23
|
-
const { unsubscribePayload: f, stripoModules: v } = d(t.rawHtml);
|
|
24
|
-
return await u(f), t.modules = v, m || s(t), t;
|
|
16
|
+
l();
|
|
17
|
+
const { unsubscribePayload: u, stripoModules: p } = r(t.rawHtml);
|
|
18
|
+
return await n(u), t.modules = p, c || s(t), t;
|
|
25
19
|
} };
|
|
26
20
|
};
|
|
27
21
|
export {
|
|
28
|
-
|
|
22
|
+
k as useSave
|
|
29
23
|
};
|