@useinsider/guido 1.0.3-beta.9d0ef3f → 1.0.3-beta.9d1ad8c
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/components/Guido.vue.js +1 -1
- package/dist/components/Guido.vue2.js +48 -49
- package/dist/components/organisms/LoadingWrapper.vue.js +1 -1
- package/dist/components/organisms/header/RightSlot.vue2.js +13 -13
- package/dist/composables/useActionsApi.js +23 -32
- package/dist/composables/useStripo.js +46 -48
- package/dist/enums/defaults.js +5 -4
- package/dist/extensions/Blocks/Items/controls/name/trimming.js +25 -25
- package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +92 -0
- package/dist/extensions/Blocks/Items/controls/settingsControl.js +94 -90
- package/dist/extensions/Blocks/Items/enums/controlEnums.js +2 -2
- package/dist/extensions/Blocks/Items/enums/productEnums.js +3 -2
- package/dist/extensions/Blocks/Items/enums/settingsEnums.js +3 -2
- package/dist/extensions/Blocks/Items/extension.js +7 -6
- package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +2 -2
- package/dist/extensions/Blocks/Items/layouts/vertical.html.js +17 -5
- package/dist/extensions/Blocks/Items/settingsPanel.js +25 -24
- package/dist/extensions/Blocks/Items/store/items-block.js +8 -4
- package/dist/extensions/Blocks/Items/template.js +65 -59
- package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +35 -26
- package/dist/extensions/Blocks/Items/utils/updateAttributes.js +29 -27
- package/dist/extensions/Blocks/Unsubscribe/block.js +34 -30
- package/dist/guido.css +1 -1
- package/dist/services/stripoApi.js +37 -26
- package/dist/src/composables/useActionsApi.d.ts +0 -1
- package/dist/src/enums/defaults.d.ts +1 -0
- package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +15 -0
- package/dist/src/extensions/Blocks/Items/enums/controlEnums.d.ts +1 -0
- package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +1 -0
- package/dist/src/extensions/Blocks/Items/enums/settingsEnums.d.ts +1 -0
- package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +2 -0
- package/dist/src/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.d.ts +6 -0
- package/dist/src/extensions/Blocks/Unsubscribe/block.d.ts +3 -4
- package/package.json +3 -1
- package/dist/composables/useTimerClone.js +0 -52
- package/dist/src/composables/useTimerClone.d.ts +0 -6
|
@@ -1,24 +1,23 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { provideGuidoActions as
|
|
3
|
-
import { usePartner as
|
|
4
|
-
import { useStripo as
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
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
|
-
|
|
21
|
-
const Ae = /* @__PURE__ */ z({
|
|
1
|
+
import { defineComponent as O, defineAsyncComponent as I, ref as z, computed as U, watch as B, onMounted as K, onUnmounted as j } from "vue";
|
|
2
|
+
import { provideGuidoActions as q } from "../composables/useGuidoActions.js";
|
|
3
|
+
import { usePartner as J } from "../composables/usePartner.js";
|
|
4
|
+
import { useStripo as Q } from "../composables/useStripo.js";
|
|
5
|
+
import { migrate as L } from "../config/migrator/index.js";
|
|
6
|
+
import { DefaultUsername as V, DefaultMessageType as X, DefaultGuidoConfig as Y } from "../enums/defaults.js";
|
|
7
|
+
import Z from "./organisms/base/Toaster.vue.js";
|
|
8
|
+
import $ from "./organisms/extensions/recommendation/FilterSelectionDrawer.vue.js";
|
|
9
|
+
import ee from "./organisms/header/HeaderWrapper.vue.js";
|
|
10
|
+
import oe from "./organisms/LoadingWrapper.vue.js";
|
|
11
|
+
import te from "./organisms/save-as-template/SaveAsTemplateDrawer.vue.js";
|
|
12
|
+
import ne from "./organisms/unsubscribe/UnsubscribeWrapper.vue.js";
|
|
13
|
+
import { useStripoApi as re } from "../services/stripoApi.js";
|
|
14
|
+
import { useConfigStore as ie } from "../stores/config.js";
|
|
15
|
+
import { useDynamicContentStore as se } from "../stores/dynamic-content.js";
|
|
16
|
+
import { useEditorStore as ae } from "../stores/editor.js";
|
|
17
|
+
import { usePreviewStore as ce } from "../stores/preview.js";
|
|
18
|
+
import { useUnsubscribeStore as me } from "../stores/unsubscribe.js";
|
|
19
|
+
import de from "../node_modules/lodash-es/merge.js";
|
|
20
|
+
const Ue = /* @__PURE__ */ O({
|
|
22
21
|
__name: "Guido",
|
|
23
22
|
props: {
|
|
24
23
|
templateId: null,
|
|
@@ -33,34 +32,34 @@ const Ae = /* @__PURE__ */ z({
|
|
|
33
32
|
templateConfig: null
|
|
34
33
|
},
|
|
35
34
|
emits: ["dynamic-content:open", "back", "save:start", "save:complete", "on-change", "ready", "onboarding:finished", "test-email:click"],
|
|
36
|
-
setup(
|
|
37
|
-
const u =
|
|
35
|
+
setup(W, { expose: _, emit: o }) {
|
|
36
|
+
const u = W, A = I(
|
|
38
37
|
() => import("./organisms/email-preview/PreviewContainer.vue.js")
|
|
39
|
-
),
|
|
38
|
+
), N = I(
|
|
40
39
|
() => import("./organisms/onboarding/OnboardingWrapper.vue.js")
|
|
41
|
-
), p =
|
|
40
|
+
), p = z(), i = se(), g = me(), f = ie(), s = ae(), F = ce(), n = U(() => s.hasChanges), { getPartnerName: y, getProductType: v, isTestPartner: H } = J(), b = () => {
|
|
42
41
|
var e;
|
|
43
42
|
return (e = p.value) == null ? void 0 : e.handleSave(!0);
|
|
44
43
|
}, {
|
|
45
44
|
templateId: a,
|
|
46
|
-
userId:
|
|
47
|
-
guidoConfig:
|
|
45
|
+
userId: C,
|
|
46
|
+
guidoConfig: h,
|
|
48
47
|
templateConfig: t,
|
|
49
48
|
html: r = "",
|
|
50
49
|
css: S = "",
|
|
51
50
|
partnerName: c = y(),
|
|
52
51
|
productType: m = v(),
|
|
53
|
-
messageType: w =
|
|
54
|
-
username: D =
|
|
52
|
+
messageType: w = X,
|
|
53
|
+
username: D = V
|
|
55
54
|
} = u, d = (t == null ? void 0 : t.preselectedDynamicContentList) || [];
|
|
56
|
-
s.templateId = a, window.GuidoConfig =
|
|
55
|
+
s.templateId = a, window.GuidoConfig = de(Y, h), window.GuidoConfig.partner = {
|
|
57
56
|
partnerName: c,
|
|
58
57
|
productType: m,
|
|
59
58
|
messageType: w
|
|
60
59
|
}, f.templateConfig = t;
|
|
61
|
-
const { initPlugin:
|
|
60
|
+
const { initPlugin: E } = Q({
|
|
62
61
|
emailId: a,
|
|
63
|
-
userId:
|
|
62
|
+
userId: C,
|
|
64
63
|
username: D,
|
|
65
64
|
partnerName: c,
|
|
66
65
|
productType: m,
|
|
@@ -68,11 +67,11 @@ const Ae = /* @__PURE__ */ z({
|
|
|
68
67
|
onReady: () => {
|
|
69
68
|
console.debug("guido:ready"), o("ready");
|
|
70
69
|
}
|
|
71
|
-
}), { getDefaultTemplate:
|
|
70
|
+
}), { getDefaultTemplate: T } = re(), R = U(() => {
|
|
72
71
|
var e;
|
|
73
72
|
return !((e = window.GuidoConfig) != null && e.useHeader);
|
|
74
73
|
});
|
|
75
|
-
|
|
74
|
+
q({
|
|
76
75
|
onBack: () => {
|
|
77
76
|
console.debug("guido:back"), o("back");
|
|
78
77
|
},
|
|
@@ -86,50 +85,50 @@ const Ae = /* @__PURE__ */ z({
|
|
|
86
85
|
console.debug("guido:test-email:click"), o("test-email:click");
|
|
87
86
|
}
|
|
88
87
|
});
|
|
89
|
-
const
|
|
88
|
+
const P = (e) => {
|
|
90
89
|
console.debug("dynamic-content:close", e), i.setSelectedDynamicContent(e), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: e }));
|
|
91
|
-
},
|
|
90
|
+
}, k = () => {
|
|
92
91
|
console.debug("dynamic-content:close", "Without Data"), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: { text: "", value: "" } }));
|
|
93
92
|
};
|
|
94
|
-
|
|
93
|
+
B(() => n.value, () => {
|
|
95
94
|
o("on-change", n.value);
|
|
96
95
|
});
|
|
97
96
|
const l = (e) => {
|
|
98
|
-
const
|
|
99
|
-
console.debug("dynamic-content:open",
|
|
97
|
+
const G = e, { attribute: x, position: M } = G.detail;
|
|
98
|
+
console.debug("dynamic-content:open", G.detail), o("dynamic-content:open", x, M);
|
|
100
99
|
};
|
|
101
|
-
return
|
|
100
|
+
return K(async () => {
|
|
102
101
|
console.debug("Guido says happy coding 🎉"), console.debug("🚗 Ka-Chow");
|
|
103
102
|
try {
|
|
104
103
|
g.selectedUnsubscribePages = (t == null ? void 0 : t.selectedUnsubscribePages) || [];
|
|
105
104
|
let e = {
|
|
106
|
-
html: r && await
|
|
105
|
+
html: r && await L(r),
|
|
107
106
|
css: S,
|
|
108
107
|
forceRecreate: !0
|
|
109
108
|
// TODO: It should be false for old templates. We will communicate with Stripo
|
|
110
109
|
};
|
|
111
|
-
e.html || (e = await
|
|
110
|
+
e.html || (e = await T(), e.html = await L(e.html)), await E(e), i.selectedDynamicContentList = d;
|
|
112
111
|
} catch (e) {
|
|
113
112
|
console.error("Failed to initialize Stripo editor:", e);
|
|
114
113
|
}
|
|
115
114
|
document.addEventListener("dynamic-content:open", l);
|
|
116
|
-
}),
|
|
115
|
+
}), j(() => {
|
|
117
116
|
document.removeEventListener("dynamic-content:open", l);
|
|
118
117
|
try {
|
|
119
118
|
window.UIEditor.removeEditor();
|
|
120
119
|
} catch {
|
|
121
120
|
console.debug("Failed to remove Stripo editor: No editor found");
|
|
122
121
|
}
|
|
123
|
-
}),
|
|
122
|
+
}), _({
|
|
124
123
|
dynamicContent: {
|
|
125
|
-
insert:
|
|
126
|
-
close:
|
|
124
|
+
insert: P,
|
|
125
|
+
close: k
|
|
127
126
|
},
|
|
128
127
|
hasChanges: n,
|
|
129
|
-
saveSilent:
|
|
130
|
-
}), { __sfc: !0, PreviewContainer:
|
|
128
|
+
saveSilent: b
|
|
129
|
+
}), { __sfc: !0, PreviewContainer: A, OnboardingWrapper: N, headerWrapperRef: p, dynamicContentStore: i, unsubscribeStore: g, props: u, configStore: f, editorStore: s, previewStore: F, hasChanges: n, getPartnerName: y, getProductType: v, isTestPartner: H, saveSilent: b, templateId: a, userId: C, guidoConfig: h, templateConfig: t, html: r, css: S, partnerName: c, productType: m, messageType: w, username: D, preselectedDynamicContentList: d, emit: o, initPlugin: E, getDefaultTemplate: T, noHeader: R, insertDynamicContent: P, closeDynamicContent: k, handleDynamicContentOpen: l, Toaster: Z, FilterSelectionDrawer: $, HeaderWrapper: ee, LoadingWrapper: oe, SaveAsTemplateDrawer: te, UnsubscribeWrapper: ne };
|
|
131
130
|
}
|
|
132
131
|
});
|
|
133
132
|
export {
|
|
134
|
-
|
|
133
|
+
Ue as default
|
|
135
134
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent as H, ref as
|
|
1
|
+
import { defineComponent as H, ref as m, computed as _ } from "vue";
|
|
2
2
|
import { useConfig as h } from "../../../composables/useConfig.js";
|
|
3
3
|
import { useExport as V } from "../../../composables/useExport.js";
|
|
4
4
|
import { useTestEmailClick as x } from "../../../composables/useGuidoActions.js";
|
|
@@ -10,25 +10,25 @@ import { getTooltipOptions as O } from "../../../utils/tooltipUtils.js";
|
|
|
10
10
|
import { InButtonV2 as A } from "@useinsider/design-system-vue";
|
|
11
11
|
const J = /* @__PURE__ */ H({
|
|
12
12
|
__name: "RightSlot",
|
|
13
|
-
setup(k, { expose:
|
|
14
|
-
const { config:
|
|
15
|
-
if (
|
|
13
|
+
setup(k, { expose: c }) {
|
|
14
|
+
const { config: u } = h(), { exportHtml: r } = V(), { save: n } = E(), { openVersionHistory: i, closeVersionHistory: a } = w(), o = C(), t = T(), e = m(!1), s = m(!1), f = x(), v = () => {
|
|
15
|
+
if (o.isVersionHistoryOpen) {
|
|
16
16
|
a();
|
|
17
17
|
return;
|
|
18
18
|
}
|
|
19
19
|
i();
|
|
20
|
-
},
|
|
20
|
+
}, d = async () => {
|
|
21
21
|
e.value = !0, await r(), e.value = !1;
|
|
22
|
-
},
|
|
23
|
-
|
|
24
|
-
},
|
|
25
|
-
s.value = !0,
|
|
26
|
-
const g = await n(
|
|
27
|
-
return s.value = !1,
|
|
22
|
+
}, y = () => {
|
|
23
|
+
o.isSaveAsTemplateDrawerOpen = !0;
|
|
24
|
+
}, S = _(() => o.isVersionHistoryOpen ? t("newsletter.close-version-history") : t("newsletter.version-history")), l = async (p) => {
|
|
25
|
+
s.value = !0, o.loadingStatus = !0;
|
|
26
|
+
const g = await n(p);
|
|
27
|
+
return s.value = !1, p && (o.loadingStatus = !1), g;
|
|
28
28
|
};
|
|
29
|
-
return
|
|
29
|
+
return c({
|
|
30
30
|
handleSave: l
|
|
31
|
-
}), { __sfc: !0, config:
|
|
31
|
+
}), { __sfc: !0, config: u, exportHtml: r, save: n, openVersionHistory: i, closeVersionHistory: a, editorStore: o, trans: t, isExporting: e, isSaving: s, testEmailClick: f, handleVersionHistory: v, handleExport: d, handleSaveAs: y, versionHistoryTooltipText: S, handleSave: l, getTooltipOptions: O, InButtonV2: A };
|
|
32
32
|
}
|
|
33
33
|
});
|
|
34
34
|
export {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { useToaster as
|
|
1
|
+
import { useToaster as g } from "./useToaster.js";
|
|
2
2
|
const A = () => {
|
|
3
|
-
const { handleError: l } =
|
|
3
|
+
const { handleError: l } = g(), n = (t = {}) => new Promise((e, a) => {
|
|
4
4
|
const i = { ...{
|
|
5
5
|
minimize: !0,
|
|
6
6
|
utmEntity: {
|
|
@@ -20,13 +20,13 @@ const A = () => {
|
|
|
20
20
|
forceAmp: !1,
|
|
21
21
|
resetDataSavedFlag: !1,
|
|
22
22
|
disableLineHeightsReplace: !0
|
|
23
|
-
}, ...
|
|
24
|
-
callback: (
|
|
25
|
-
|
|
26
|
-
html:
|
|
27
|
-
ampHtml:
|
|
28
|
-
ampErrors:
|
|
29
|
-
displayConditions:
|
|
23
|
+
}, ...t }, m = {
|
|
24
|
+
callback: (s, c, p, u, d) => {
|
|
25
|
+
s ? a(s) : e({
|
|
26
|
+
html: c,
|
|
27
|
+
ampHtml: p,
|
|
28
|
+
ampErrors: u,
|
|
29
|
+
displayConditions: d
|
|
30
30
|
});
|
|
31
31
|
},
|
|
32
32
|
...i
|
|
@@ -34,53 +34,44 @@ const A = () => {
|
|
|
34
34
|
window.StripoEditorApi.actionsApi.compileEmail(m);
|
|
35
35
|
});
|
|
36
36
|
return {
|
|
37
|
-
getCompiledEmail:
|
|
38
|
-
getTemplateData: () => new Promise((
|
|
39
|
-
const
|
|
37
|
+
getCompiledEmail: n,
|
|
38
|
+
getTemplateData: () => new Promise((t) => {
|
|
39
|
+
const e = ({ html: a, css: o, width: i, height: r, utmParams: m, syncModulesIds: s }) => t({
|
|
40
40
|
html: a,
|
|
41
41
|
css: o,
|
|
42
42
|
width: i,
|
|
43
43
|
height: r,
|
|
44
44
|
utmParams: m,
|
|
45
|
-
syncModulesIds:
|
|
45
|
+
syncModulesIds: s
|
|
46
46
|
});
|
|
47
|
-
window.StripoEditorApi.actionsApi.getTemplateData(
|
|
47
|
+
window.StripoEditorApi.actionsApi.getTemplateData(e);
|
|
48
48
|
}),
|
|
49
|
-
activateCustomViewStyles: (
|
|
50
|
-
window.StripoEditorApi.actionsApi.activateCustomViewStyles(
|
|
49
|
+
activateCustomViewStyles: (t = !0) => {
|
|
50
|
+
window.StripoEditorApi.actionsApi.activateCustomViewStyles(t);
|
|
51
51
|
},
|
|
52
|
-
getPreviewData: async (
|
|
52
|
+
getPreviewData: async (t) => {
|
|
53
53
|
try {
|
|
54
54
|
const {
|
|
55
|
-
html:
|
|
55
|
+
html: e,
|
|
56
56
|
displayConditions: a,
|
|
57
57
|
ampHtml: o = "",
|
|
58
58
|
ampErrors: i = []
|
|
59
|
-
} = await
|
|
59
|
+
} = await n({ minimize: !1, resetDataSavedFlag: !1, ...t });
|
|
60
60
|
return {
|
|
61
|
-
html:
|
|
61
|
+
html: e,
|
|
62
62
|
ampHtml: o,
|
|
63
63
|
ampErrors: i,
|
|
64
64
|
displayConditions: a
|
|
65
65
|
};
|
|
66
|
-
} catch (
|
|
67
|
-
return l(
|
|
66
|
+
} catch (e) {
|
|
67
|
+
return l(e, "Error loading preview"), {
|
|
68
68
|
html: "",
|
|
69
69
|
ampHtml: "",
|
|
70
70
|
ampErrors: [],
|
|
71
71
|
displayConditions: []
|
|
72
72
|
};
|
|
73
73
|
}
|
|
74
|
-
}
|
|
75
|
-
updateTimerInClonedTemplate: () => new Promise((e) => {
|
|
76
|
-
try {
|
|
77
|
-
window.StripoEditorApi.actionsApi.updateTimerInClonedTemplate((t, a) => {
|
|
78
|
-
t ? (l(t, "Failed to update timer in cloned template"), e(null)) : e(a || null);
|
|
79
|
-
});
|
|
80
|
-
} catch (t) {
|
|
81
|
-
l(t, "Failed to call updateTimerInClonedTemplate"), e(null);
|
|
82
|
-
}
|
|
83
|
-
})
|
|
74
|
+
}
|
|
84
75
|
};
|
|
85
76
|
};
|
|
86
77
|
export {
|
|
@@ -1,26 +1,25 @@
|
|
|
1
|
-
import { useActionsApi as
|
|
2
|
-
import { useBlocksConfig as
|
|
3
|
-
import { useConfig as
|
|
4
|
-
import { useCustomInterfaceAppearance as
|
|
5
|
-
import { useStripoEventHandler as
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import {
|
|
12
|
-
import
|
|
13
|
-
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const e = P(), { html: s, css: f, forceRecreate: a } = i, { baseBlocks: t, extensions: d } = await E();
|
|
1
|
+
import { useActionsApi as w } from "./useActionsApi.js";
|
|
2
|
+
import { useBlocksConfig as b } from "./useBlocksConfig.js";
|
|
3
|
+
import { useConfig as k } from "./useConfig.js";
|
|
4
|
+
import { useCustomInterfaceAppearance as V } from "./useCustomInterfaceAppearance.js";
|
|
5
|
+
import { useStripoEventHandler as _ } from "./useStripoEventHandler.js";
|
|
6
|
+
import { useToaster as B } from "./useToaster.js";
|
|
7
|
+
import { displayConditions as T } from "../enums/displayConditions.js";
|
|
8
|
+
import { useStripoApi as A } from "../services/stripoApi.js";
|
|
9
|
+
import F from "../static/styles/customEditorStyle.css.js";
|
|
10
|
+
import { useEditorStore as M } from "../stores/editor.js";
|
|
11
|
+
import { dynamicContentToMergeTags as U } from "../utils/genericUtil.js";
|
|
12
|
+
import v from "../package.json.js";
|
|
13
|
+
const J = (c) => {
|
|
14
|
+
const { config: u } = k(), { handleError: l } = B(), { getToken: f, getCustomFonts: y } = A(), { handleEvent: S } = _(), { getStripoBlocksConfig: C } = b(), E = async (i, r = []) => {
|
|
15
|
+
var m, g;
|
|
16
|
+
const t = M(), { html: n, css: p, forceRecreate: a } = i, { baseBlocks: e, extensions: d } = await C();
|
|
18
17
|
window.UIEditor.initEditor(
|
|
19
18
|
document.querySelector("#guido-editor"),
|
|
20
19
|
{
|
|
21
20
|
metadata: c,
|
|
22
|
-
html:
|
|
23
|
-
css:
|
|
21
|
+
html: n,
|
|
22
|
+
css: p,
|
|
24
23
|
forceRecreate: a,
|
|
25
24
|
locale: "en",
|
|
26
25
|
undoButtonSelector: "#guido__undo-button",
|
|
@@ -31,10 +30,10 @@ const Y = (c) => {
|
|
|
31
30
|
customAppearanceMergetags: !0,
|
|
32
31
|
customAppearanceMergetagsBorderColor: "#f1f3fe",
|
|
33
32
|
customAppearanceMergetagsBackgroundColor: "#f1f3fe",
|
|
34
|
-
customViewStyles:
|
|
35
|
-
conditionsEnabled: ((
|
|
36
|
-
customConditionsEnabled: ((
|
|
37
|
-
conditionCategories:
|
|
33
|
+
customViewStyles: F,
|
|
34
|
+
conditionsEnabled: ((m = u.features) == null ? void 0 : m.displayConditions) ?? !0,
|
|
35
|
+
customConditionsEnabled: ((g = u.features) == null ? void 0 : g.displayConditions) ?? !0,
|
|
36
|
+
conditionCategories: T,
|
|
38
37
|
enableXSSSecurity: !0,
|
|
39
38
|
messageSettingsEnabled: !0,
|
|
40
39
|
displayGmailAnnotations: !0,
|
|
@@ -42,7 +41,7 @@ const Y = (c) => {
|
|
|
42
41
|
displayTitle: !1,
|
|
43
42
|
displayUTM: !1,
|
|
44
43
|
selectElementAfterDrop: !0,
|
|
45
|
-
...
|
|
44
|
+
...e ? { baseBlocks: e } : {},
|
|
46
45
|
editorFonts: {
|
|
47
46
|
showDefaultStandardFonts: !0,
|
|
48
47
|
showDefaultNotStandardFonts: !0,
|
|
@@ -50,39 +49,38 @@ const Y = (c) => {
|
|
|
50
49
|
},
|
|
51
50
|
mergeTags: [
|
|
52
51
|
{
|
|
53
|
-
entries:
|
|
52
|
+
entries: U(c.preselectedDynamicContentList)
|
|
54
53
|
}
|
|
55
54
|
],
|
|
56
55
|
async onTokenRefreshRequest(o) {
|
|
57
56
|
try {
|
|
58
|
-
const
|
|
59
|
-
o(
|
|
60
|
-
} catch (
|
|
61
|
-
|
|
57
|
+
const s = await f();
|
|
58
|
+
o(s);
|
|
59
|
+
} catch (s) {
|
|
60
|
+
l(s, "Failed to refresh token");
|
|
62
61
|
}
|
|
63
62
|
},
|
|
64
63
|
onTemplateLoaded() {
|
|
65
|
-
var o, n;
|
|
66
64
|
try {
|
|
67
|
-
const { importCss:
|
|
68
|
-
|
|
69
|
-
|
|
65
|
+
const { importCss: o } = V(), { activateCustomViewStyles: s } = w();
|
|
66
|
+
o(), s(), c.onReady(), t.isStripoInitialized = !0, t.loadingStatus = !1, setTimeout(() => {
|
|
67
|
+
t.hasChanges = !1;
|
|
70
68
|
}, 1e3);
|
|
71
|
-
} catch (
|
|
72
|
-
|
|
69
|
+
} catch (o) {
|
|
70
|
+
l(o, "Failed to load custom interface appearance");
|
|
73
71
|
}
|
|
74
72
|
},
|
|
75
73
|
onCodeEditorVisibilityChanged(o) {
|
|
76
|
-
|
|
74
|
+
t.isCodeEditorOpen = o;
|
|
77
75
|
},
|
|
78
76
|
onEditorVisualModeChanged(o) {
|
|
79
|
-
|
|
77
|
+
t.editorVisualMode = o.toLowerCase();
|
|
80
78
|
},
|
|
81
79
|
onVersionHistoryVisibilityChanged(o) {
|
|
82
|
-
|
|
80
|
+
t.isVersionHistoryOpen = o;
|
|
83
81
|
},
|
|
84
82
|
onDataChanged() {
|
|
85
|
-
|
|
83
|
+
t.hasChanges = !0;
|
|
86
84
|
},
|
|
87
85
|
onEvent: S,
|
|
88
86
|
ignoreClickOutsideSelectors: [
|
|
@@ -93,26 +91,26 @@ const Y = (c) => {
|
|
|
93
91
|
extensions: d
|
|
94
92
|
}
|
|
95
93
|
);
|
|
96
|
-
}, h = (i) => new Promise((r,
|
|
94
|
+
}, h = (i) => new Promise((r, t) => {
|
|
97
95
|
var d;
|
|
98
96
|
if (document.getElementById("UiEditorScript")) {
|
|
99
97
|
i(), r();
|
|
100
98
|
return;
|
|
101
99
|
}
|
|
102
|
-
const
|
|
103
|
-
|
|
100
|
+
const n = v.guido, a = `https://email-static.useinsider.com/guido/${(d = n == null ? void 0 : n.stripo) == null ? void 0 : d.version}/UIEditor.js`, e = document.createElement("script");
|
|
101
|
+
e.id = "UiEditorScript", e.type = "module", e.src = a, e.onload = () => {
|
|
104
102
|
i(), r();
|
|
105
|
-
},
|
|
106
|
-
|
|
107
|
-
}, document.body.appendChild(
|
|
103
|
+
}, e.onerror = () => {
|
|
104
|
+
t(new Error(`Failed to load Stripo UIEditor script from S3: ${a}`));
|
|
105
|
+
}, document.body.appendChild(e);
|
|
108
106
|
});
|
|
109
107
|
return { initPlugin: async (i) => {
|
|
110
108
|
await h(async () => {
|
|
111
|
-
const r = await
|
|
112
|
-
await
|
|
109
|
+
const r = await y();
|
|
110
|
+
await E(i, r);
|
|
113
111
|
});
|
|
114
112
|
} };
|
|
115
113
|
};
|
|
116
114
|
export {
|
|
117
|
-
|
|
115
|
+
J as useStripo
|
|
118
116
|
};
|
package/dist/enums/defaults.js
CHANGED
|
@@ -23,11 +23,11 @@ const e = {
|
|
|
23
23
|
}, t = {
|
|
24
24
|
promotional: 1,
|
|
25
25
|
transactional: 2
|
|
26
|
-
}, a = "email", o = "Guido User", s = t.promotional, n = 2, i = {
|
|
26
|
+
}, a = "email", o = "Guido User", s = t.promotional, n = 2, i = 13, u = {
|
|
27
27
|
email: 60,
|
|
28
28
|
architect: 49,
|
|
29
29
|
unsubscribePages: 97
|
|
30
|
-
},
|
|
30
|
+
}, r = [
|
|
31
31
|
"alfredtesting",
|
|
32
32
|
"electio",
|
|
33
33
|
"eurekatest",
|
|
@@ -65,7 +65,8 @@ export {
|
|
|
65
65
|
a as DefaultProductType,
|
|
66
66
|
o as DefaultUsername,
|
|
67
67
|
n as EditorType,
|
|
68
|
-
i as
|
|
69
|
-
u as
|
|
68
|
+
i as MAX_DEFAULT_TEMPLATE_ID,
|
|
69
|
+
u as ProductIds,
|
|
70
|
+
r as TEST_PARTNER_LIST,
|
|
70
71
|
t as TemplateTypes
|
|
71
72
|
};
|
|
@@ -1,70 +1,70 @@
|
|
|
1
1
|
var d = Object.defineProperty;
|
|
2
2
|
var h = (i, t, e) => t in i ? d(i, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : i[t] = e;
|
|
3
|
-
var
|
|
4
|
-
import { ModificationDescription as
|
|
3
|
+
var n = (i, t, e) => h(i, typeof t != "symbol" ? t + "" : t, e);
|
|
4
|
+
import { ModificationDescription as a, UIElementType as l, UEAttr as g } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
|
|
5
5
|
import { CommonControl as c } from "../../../common-control.js";
|
|
6
|
-
import { ItemsBlockControlId as
|
|
6
|
+
import { ItemsBlockControlId as p } from "../../enums/controlEnums.js";
|
|
7
7
|
import { SETTINGS_ENUMS as I } from "../../enums/settingsEnums.js";
|
|
8
8
|
import { useItemsBlockStore as N } from "../../store/items-block.js";
|
|
9
|
-
import { syncNameTrimmingFromAttributes as
|
|
10
|
-
import { updateConfigBlockAttributes as
|
|
11
|
-
const
|
|
9
|
+
import { syncNameTrimmingFromAttributes as M } from "../../utils/syncAttributesFromConfigBlock.js";
|
|
10
|
+
import { updateConfigBlockAttributes as u } from "../../utils/updateAttributes.js";
|
|
11
|
+
const y = p.NAME_TRIMMING, o = {
|
|
12
12
|
TRIMMING: "trimming"
|
|
13
13
|
};
|
|
14
|
-
class
|
|
14
|
+
class _ extends c {
|
|
15
15
|
constructor() {
|
|
16
16
|
super(...arguments);
|
|
17
|
-
|
|
17
|
+
n(this, "store", N());
|
|
18
18
|
}
|
|
19
19
|
getId() {
|
|
20
|
-
return
|
|
20
|
+
return y;
|
|
21
21
|
}
|
|
22
22
|
getTemplate() {
|
|
23
23
|
return `
|
|
24
|
-
<div class="${
|
|
24
|
+
<div class="${p.NAME_TRIMMING}">
|
|
25
25
|
${this._getTextTrimming()}
|
|
26
26
|
</div>
|
|
27
27
|
`;
|
|
28
28
|
}
|
|
29
29
|
onRender() {
|
|
30
|
-
this.api.updateValues({ [
|
|
30
|
+
this.api.updateValues({ [o.TRIMMING]: this.store.nameTrimming }), this.api.onValueChanged(o.TRIMMING, (e) => {
|
|
31
31
|
this._onTrimmingChange(e);
|
|
32
32
|
});
|
|
33
33
|
}
|
|
34
34
|
onTemplateNodeUpdated(e) {
|
|
35
35
|
super.onTemplateNodeUpdated(e), this.handleBlockInstanceChange(
|
|
36
|
-
() =>
|
|
36
|
+
() => M(this.currentNode),
|
|
37
37
|
() => {
|
|
38
|
-
this.api.updateValues({ [
|
|
38
|
+
this.api.updateValues({ [o.TRIMMING]: this.store.nameTrimming });
|
|
39
39
|
}
|
|
40
|
-
)
|
|
40
|
+
);
|
|
41
41
|
}
|
|
42
42
|
_onTrimmingChange(e) {
|
|
43
|
-
this.store.setNameTrimming(e),
|
|
43
|
+
this.store.setNameTrimming(e), u(this.currentNode, this.api), this.api.updateValues({ [o.TRIMMING]: e }), this._applyTrimmingStyles(e);
|
|
44
44
|
}
|
|
45
45
|
_applyTrimmingStyles(e) {
|
|
46
|
-
var
|
|
47
|
-
const
|
|
48
|
-
if (!
|
|
46
|
+
var s;
|
|
47
|
+
const r = (s = this.currentNode) == null ? void 0 : s.querySelector("p > a");
|
|
48
|
+
if (!r)
|
|
49
49
|
return;
|
|
50
|
-
const
|
|
51
|
-
|
|
50
|
+
const T = e !== void 0 ? e : this.store.nameTrimming, m = this.store.orientation === I.ORIENTATION.VERTICAL;
|
|
51
|
+
T ? this.api.getDocumentModifier().modifyHtml(r).setStyle("white-space", "nowrap").setStyle("overflow", "hidden").setStyle("text-overflow", "ellipsis").setStyle("max-width", m ? "130px" : "520px").apply(new a("Text Trimming Enabled")) : this.api.getDocumentModifier().modifyHtml(r).removeStyle("white-space").removeStyle("overflow").removeStyle("text-overflow").removeStyle("max-width").setStyle("max-width", m ? "130px" : "520px").apply(new a("Text Trimming Disabled"));
|
|
52
52
|
}
|
|
53
53
|
_getTextTrimming() {
|
|
54
54
|
return `
|
|
55
55
|
<div class="container">
|
|
56
56
|
<div class="display-flex align-items-center justify-content-between">
|
|
57
|
-
<${
|
|
57
|
+
<${l.LABEL}
|
|
58
58
|
${g.LABEL.text}="${this.api.translate("Text Trimming")}"
|
|
59
59
|
>
|
|
60
|
-
</${
|
|
61
|
-
${this._GuToggle(
|
|
60
|
+
</${l.LABEL}>
|
|
61
|
+
${this._GuToggle(o.TRIMMING)}
|
|
62
62
|
</div>
|
|
63
63
|
</div>
|
|
64
64
|
`;
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
export {
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
y as CONTROL_BLOCK_ID,
|
|
69
|
+
_ as NameTrimmingControl
|
|
70
70
|
};
|