@useinsider/guido 3.5.1 → 3.6.0-beta.1564c9b
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 +75 -72
- package/dist/components/organisms/header/EditorActions.vue.js +1 -1
- package/dist/components/organisms/header/EditorActions.vue2.js +6 -6
- package/dist/components/organisms/header/LeftSlot.vue.js +1 -1
- package/dist/components/organisms/header/LeftSlot.vue2.js +9 -9
- package/dist/composables/useRecommendation.js +24 -28
- package/dist/composables/useStripo.js +12 -11
- package/dist/config/compiler/utils/recommendationCompilerUtils.js +84 -78
- package/dist/extensions/Blocks/Recommendation/store/recommendation.js +1 -1
- package/dist/guido.css +1 -1
- package/dist/package.json.js +1 -1
- package/dist/src/components/Guido.vue.d.ts +1 -0
- package/dist/src/extensions/Blocks/Recommendation/store/recommendation.test.d.ts +1 -0
- package/package.json +2 -2
|
@@ -1,70 +1,72 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { useCortexBlueprintBridge as
|
|
3
|
-
import { provideGuidoActions as
|
|
4
|
-
import { useGuidoStateBridge as
|
|
5
|
-
import { usePartner as
|
|
6
|
-
import { useStripo as
|
|
7
|
-
import { useTimerClone as
|
|
8
|
-
import { migrate as
|
|
9
|
-
import { ModuleFolderDefaults as
|
|
1
|
+
import { defineComponent as X, defineAsyncComponent as I, ref as W, computed as x, watch as Y, onMounted as Z, onUnmounted as ee } from "vue";
|
|
2
|
+
import { useCortexBlueprintBridge as oe } from "../composables/useCortexBlueprintBridge.js";
|
|
3
|
+
import { provideGuidoActions as te } from "../composables/useGuidoActions.js";
|
|
4
|
+
import { useGuidoStateBridge as ne } from "../composables/useGuidoStateBridge.js";
|
|
5
|
+
import { usePartner as re } from "../composables/usePartner.js";
|
|
6
|
+
import { useStripo as se } from "../composables/useStripo.js";
|
|
7
|
+
import { useTimerClone as ae } from "../composables/useTimerClone.js";
|
|
8
|
+
import { migrate as G } from "../config/migrator/index.js";
|
|
9
|
+
import { ModuleFolderDefaults as H } from "../enums/defaults.js";
|
|
10
10
|
import { RIBBON_SELECTOR as ce } from "../enums/onboarding.js";
|
|
11
|
-
import { useRecommendationExtensionStore as
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
import
|
|
18
|
-
import
|
|
19
|
-
import { useStripoApi as
|
|
11
|
+
import { useRecommendationExtensionStore as ie } from "../extensions/Blocks/Recommendation/store/recommendation.js";
|
|
12
|
+
import me from "./organisms/AutoSaveController.vue.js";
|
|
13
|
+
import de from "./organisms/base/Toaster.vue.js";
|
|
14
|
+
import le from "./organisms/extensions/recommendation/FilterSelectionDrawer.vue.js";
|
|
15
|
+
import ue from "./organisms/header/HeaderWrapper.vue.js";
|
|
16
|
+
import pe from "./organisms/LoadingWrapper.vue.js";
|
|
17
|
+
import fe from "./organisms/save-as-template/SaveAsTemplateDrawer.vue.js";
|
|
18
|
+
import ve from "./organisms/unsubscribe/UnsubscribeWrapper.vue.js";
|
|
19
|
+
import { useStripoApi as Se } from "../services/stripoApi.js";
|
|
20
20
|
import { useConfigStore as ye } from "../stores/config.js";
|
|
21
|
-
import { useDynamicContentStore as
|
|
22
|
-
import { useEditorStore as
|
|
23
|
-
import { usePreviewStore as
|
|
21
|
+
import { useDynamicContentStore as he } from "../stores/dynamic-content.js";
|
|
22
|
+
import { useEditorStore as $ } from "../stores/editor.js";
|
|
23
|
+
import { usePreviewStore as ge } from "../stores/preview.js";
|
|
24
24
|
import { useTemplateStore as be } from "../stores/template.js";
|
|
25
|
-
import { useUnsubscribeStore as
|
|
26
|
-
const
|
|
25
|
+
import { useUnsubscribeStore as Ee } from "../stores/unsubscribe.js";
|
|
26
|
+
const Ve = /* @__PURE__ */ X({
|
|
27
27
|
__name: "Guido",
|
|
28
28
|
props: {
|
|
29
29
|
config: null
|
|
30
30
|
},
|
|
31
31
|
emits: ["dynamic-content:open", "back", "save:start", "save:complete", "on-change", "ready", "onboarding:finished", "test-email:click"],
|
|
32
|
-
setup(
|
|
33
|
-
const
|
|
32
|
+
setup(z, { expose: q, emit: n }) {
|
|
33
|
+
const b = z, K = I(
|
|
34
34
|
() => import("./organisms/email-preview/PreviewContainer.vue.js")
|
|
35
|
-
),
|
|
35
|
+
), V = I(
|
|
36
36
|
() => import("./organisms/onboarding/OnboardingWrapper.vue.js")
|
|
37
|
-
), E =
|
|
38
|
-
i.init(
|
|
39
|
-
const
|
|
37
|
+
), E = W(), p = W(), f = he(), w = Ee(), i = ye();
|
|
38
|
+
i.init(b.config);
|
|
39
|
+
const m = $(), j = ge(), d = x(() => m.hasChanges), { isTestPartner: J } = re(), D = () => {
|
|
40
40
|
var e;
|
|
41
41
|
return (e = E.value) == null ? void 0 : e.handleSave(!0);
|
|
42
|
+
}, C = (e) => {
|
|
43
|
+
m.loadingStatus = e;
|
|
42
44
|
}, {
|
|
43
45
|
templateId: v,
|
|
44
|
-
userId:
|
|
45
|
-
partnerName:
|
|
46
|
+
userId: T,
|
|
47
|
+
partnerName: L,
|
|
46
48
|
username: k,
|
|
47
49
|
template: o,
|
|
48
50
|
editor: s
|
|
49
|
-
} = i,
|
|
50
|
-
|
|
51
|
-
const
|
|
51
|
+
} = i, l = (o == null ? void 0 : o.html) || "", F = (o == null ? void 0 : o.css) || "", S = (o == null ? void 0 : o.preselectedDynamicContent) || [], U = (s == null ? void 0 : s.savedModulesFolderName) || H.SAVED_MODULES, _ = (s == null ? void 0 : s.defaultModulesFolderName) || H.DEFAULT_MODULES;
|
|
52
|
+
oe(), ne();
|
|
53
|
+
const y = {
|
|
52
54
|
emailId: v,
|
|
53
|
-
userId:
|
|
55
|
+
userId: T,
|
|
54
56
|
username: k,
|
|
55
|
-
partnerName:
|
|
56
|
-
savedModulesFolderName:
|
|
57
|
-
defaultModulesFolderName:
|
|
58
|
-
},
|
|
59
|
-
preselectedDynamicContentList:
|
|
57
|
+
partnerName: L,
|
|
58
|
+
savedModulesFolderName: U,
|
|
59
|
+
defaultModulesFolderName: _
|
|
60
|
+
}, M = {
|
|
61
|
+
preselectedDynamicContentList: S,
|
|
60
62
|
onReady: () => {
|
|
61
63
|
console.debug("guido:ready"), n("ready");
|
|
62
64
|
}
|
|
63
|
-
}, { initPlugin:
|
|
65
|
+
}, { initPlugin: O } = se(y, M), { getDefaultTemplate: P } = Se(), { cloneTimersOnSave: R, hasTimerBlocks: A } = ae(), Q = x(() => {
|
|
64
66
|
var e;
|
|
65
67
|
return !((e = i.ui) != null && e.showHeader);
|
|
66
68
|
});
|
|
67
|
-
|
|
69
|
+
te({
|
|
68
70
|
onBack: () => {
|
|
69
71
|
console.debug("guido:back"), n("back");
|
|
70
72
|
},
|
|
@@ -72,66 +74,67 @@ const Ke = /* @__PURE__ */ Q({
|
|
|
72
74
|
console.debug("guido:save:start"), n("save:start");
|
|
73
75
|
},
|
|
74
76
|
onSaveComplete: (e) => {
|
|
75
|
-
const t = { ...e, metadata:
|
|
77
|
+
const t = { ...e, metadata: y };
|
|
76
78
|
console.debug("guido:save:complete", t), n("save:complete", t);
|
|
77
79
|
},
|
|
78
80
|
onTestEmailClick: () => {
|
|
79
81
|
console.debug("guido:test-email:click"), n("test-email:click");
|
|
80
82
|
}
|
|
81
83
|
});
|
|
82
|
-
const
|
|
83
|
-
console.debug("dynamic-content:close", e),
|
|
84
|
-
},
|
|
84
|
+
const B = (e) => {
|
|
85
|
+
console.debug("dynamic-content:close", e), f.setSelectedDynamicContent(e), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: e }));
|
|
86
|
+
}, N = () => {
|
|
85
87
|
console.debug("dynamic-content:close", "Without Data"), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: { text: "", value: "" } }));
|
|
86
88
|
};
|
|
87
|
-
|
|
88
|
-
n("on-change",
|
|
89
|
+
Y(() => d.value, () => {
|
|
90
|
+
n("on-change", d.value);
|
|
89
91
|
});
|
|
90
92
|
const h = (e) => {
|
|
91
|
-
const t = e, { attribute:
|
|
92
|
-
console.debug("dynamic-content:open", t.detail), n("dynamic-content:open",
|
|
93
|
+
const t = e, { attribute: u, position: c } = t.detail;
|
|
94
|
+
console.debug("dynamic-content:open", t.detail), n("dynamic-content:open", u, c);
|
|
93
95
|
};
|
|
94
|
-
let
|
|
95
|
-
const
|
|
96
|
+
let a = null;
|
|
97
|
+
const g = () => {
|
|
96
98
|
var t;
|
|
97
99
|
const e = document.querySelector(ce);
|
|
98
|
-
(t =
|
|
100
|
+
(t = p.value) == null || t.style.setProperty("--ribbon-offset", `${(e == null ? void 0 : e.offsetHeight) ?? 0}px`);
|
|
99
101
|
};
|
|
100
|
-
return
|
|
101
|
-
var t,
|
|
102
|
-
console.debug("Guido says happy coding 🎉"), console.debug("🚗 Ka-Chow"),
|
|
103
|
-
const e = (t =
|
|
104
|
-
e && (
|
|
102
|
+
return Z(async () => {
|
|
103
|
+
var t, u;
|
|
104
|
+
console.debug("Guido says happy coding 🎉"), console.debug("🚗 Ka-Chow"), ie().$reset(), $().$reset(), m.templateId = v, be().$reset(), g();
|
|
105
|
+
const e = (t = p.value) == null ? void 0 : t.parentElement;
|
|
106
|
+
e && (a = new ResizeObserver(g), a.observe(e));
|
|
105
107
|
try {
|
|
106
108
|
w.selectedUnsubscribePages = (o == null ? void 0 : o.selectedUnsubscribePages) || [];
|
|
107
|
-
const
|
|
109
|
+
const c = ((u = o == null ? void 0 : o.migration) == null ? void 0 : u.recommendationConfigs) ?? {};
|
|
108
110
|
let r = {
|
|
109
|
-
html:
|
|
111
|
+
html: l && await G(l, c),
|
|
110
112
|
css: F
|
|
111
113
|
};
|
|
112
|
-
r.html || (r = await
|
|
113
|
-
} catch (
|
|
114
|
-
console.error("Failed to initialize Stripo editor:",
|
|
114
|
+
r.html || (r = await P(), r.html = await G(r.html, c)), A(r.html) && (r.html = await R(r.html)), await O(r), f.selectedDynamicContentList = S;
|
|
115
|
+
} catch (c) {
|
|
116
|
+
console.error("Failed to initialize Stripo editor:", c);
|
|
115
117
|
}
|
|
116
118
|
document.addEventListener("dynamic-content:open", h);
|
|
117
|
-
}),
|
|
118
|
-
|
|
119
|
+
}), ee(() => {
|
|
120
|
+
a == null || a.disconnect(), document.removeEventListener("dynamic-content:open", h);
|
|
119
121
|
try {
|
|
120
122
|
window.UIEditor.removeEditor();
|
|
121
123
|
} catch {
|
|
122
124
|
console.debug("Failed to remove Stripo editor: No editor found");
|
|
123
125
|
}
|
|
124
126
|
i.reset();
|
|
125
|
-
}),
|
|
127
|
+
}), q({
|
|
126
128
|
dynamicContent: {
|
|
127
|
-
insert:
|
|
128
|
-
close:
|
|
129
|
+
insert: B,
|
|
130
|
+
close: N
|
|
129
131
|
},
|
|
130
|
-
hasChanges:
|
|
131
|
-
saveSilent: D
|
|
132
|
-
|
|
132
|
+
hasChanges: d,
|
|
133
|
+
saveSilent: D,
|
|
134
|
+
setLoading: C
|
|
135
|
+
}), { __sfc: !0, PreviewContainer: K, OnboardingWrapper: V, headerWrapperRef: E, wrapperRef: p, dynamicContentStore: f, unsubscribeStore: w, props: b, configStore: i, editorStore: m, previewStore: j, hasChanges: d, isTestPartner: J, saveSilent: D, setLoading: C, templateId: v, userId: T, partnerName: L, username: k, templateConfig: o, editorConfig: s, html: l, css: F, preselectedDynamicContentList: S, savedModulesFolderName: U, defaultModulesFolderName: _, emit: n, metadata: y, options: M, initPlugin: O, getDefaultTemplate: P, cloneTimersOnSave: R, hasTimerBlocks: A, noHeader: Q, insertDynamicContent: B, closeDynamicContent: N, handleDynamicContentOpen: h, ribbonObserver: a, updateRibbonOffset: g, AutoSaveController: me, Toaster: de, FilterSelectionDrawer: le, HeaderWrapper: ue, LoadingWrapper: pe, SaveAsTemplateDrawer: fe, UnsubscribeWrapper: ve };
|
|
133
136
|
}
|
|
134
137
|
});
|
|
135
138
|
export {
|
|
136
|
-
|
|
139
|
+
Ve as default
|
|
137
140
|
};
|
|
@@ -17,7 +17,7 @@ import K from "./MigrationConfirmModal.vue.js";
|
|
|
17
17
|
const ut = /* @__PURE__ */ O({
|
|
18
18
|
__name: "EditorActions",
|
|
19
19
|
setup(N, { expose: x }) {
|
|
20
|
-
const { config: a, isFeatureEnabled: l } = b(), { exportHtml: m } = k(), { save: u } = F(), { openVersionHistory: c, closeVersionHistory: p } = R(), { getCompiledEmail: f } = q(), { compileHtml: d } = D(), { validateLiquidSyntax: v } = z(), e = I(), y = P(), { hasMigrations:
|
|
20
|
+
const { config: a, isFeatureEnabled: l } = b(), { exportHtml: m } = k(), { save: u } = F(), { openVersionHistory: c, closeVersionHistory: p } = R(), { getCompiledEmail: f } = q(), { compileHtml: d } = D(), { validateLiquidSyntax: v } = z(), e = I(), y = P(), { hasMigrations: g } = J(y), s = L(), i = n(!1), r = n(!1), S = n(), H = B(), T = () => {
|
|
21
21
|
if (e.isVersionHistoryOpen) {
|
|
22
22
|
p();
|
|
23
23
|
return;
|
|
@@ -33,13 +33,13 @@ const ut = /* @__PURE__ */ O({
|
|
|
33
33
|
return ((o = (t = a.value) == null ? void 0 : t.features) == null ? void 0 : o.versionHistory) && !e.isPreviewModeOpen;
|
|
34
34
|
}
|
|
35
35
|
), V = async (t) => {
|
|
36
|
-
r.value = !0, e.loadingStatus = !0;
|
|
36
|
+
r.value = !0, t || (e.loadingStatus = !0);
|
|
37
37
|
const o = await u(t);
|
|
38
|
-
return r.value = !1,
|
|
38
|
+
return r.value = !1, !t && !o && (e.loadingStatus = !1), o;
|
|
39
39
|
}, E = (t) => {
|
|
40
40
|
var o;
|
|
41
|
-
if (!t &&
|
|
42
|
-
(o =
|
|
41
|
+
if (!t && g.value) {
|
|
42
|
+
(o = S.value) == null || o.open();
|
|
43
43
|
return;
|
|
44
44
|
}
|
|
45
45
|
return V(t);
|
|
@@ -58,7 +58,7 @@ const ut = /* @__PURE__ */ O({
|
|
|
58
58
|
};
|
|
59
59
|
return x({
|
|
60
60
|
handleSave: E
|
|
61
|
-
}), { __sfc: !0, config: a, isFeatureEnabled: l, exportHtml: m, save: u, openVersionHistory: c, closeVersionHistory: p, getCompiledEmail: f, compileHtml: d, validateLiquidSyntax: v, editorStore: e, templateStore: y, hasMigrations:
|
|
61
|
+
}), { __sfc: !0, config: a, isFeatureEnabled: l, exportHtml: m, save: u, openVersionHistory: c, closeVersionHistory: p, getCompiledEmail: f, compileHtml: d, validateLiquidSyntax: v, editorStore: e, templateStore: y, hasMigrations: g, trans: s, isExporting: i, isSaving: r, migrationModalRef: S, testEmailClick: H, handleVersionHistory: T, handleExport: w, handleSaveAs: _, versionHistoryTooltipText: C, isVersionHistoryButtonVisible: A, executeSave: V, handleSave: E, handleTestEmail: M, getTooltipOptions: j, InButtonV2: G, MigrationConfirmModal: K };
|
|
62
62
|
}
|
|
63
63
|
});
|
|
64
64
|
export {
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { defineComponent as l, computed as
|
|
1
|
+
import { defineComponent as l, computed as p, ref as d } from "vue";
|
|
2
2
|
import { useConfig as k } from "../../../composables/useConfig.js";
|
|
3
3
|
import { useBack as B } from "../../../composables/useGuidoActions.js";
|
|
4
4
|
import { usePreviewMode as b } from "../../../composables/usePreviewMode.js";
|
|
5
5
|
import { useTranslations as v } from "../../../composables/useTranslations.js";
|
|
6
6
|
import { useVersionHistoryApi as _ } from "../../../composables/useVersionHistoryApi.js";
|
|
7
7
|
import { useEditorStore as V } from "../../../stores/editor.js";
|
|
8
|
-
import { InButtonV2 as
|
|
9
|
-
import { useDebounceFn as
|
|
8
|
+
import { InButtonV2 as w } from "@useinsider/design-system-vue";
|
|
9
|
+
import { useDebounceFn as y } from "../../../node_modules/@vueuse/shared/index.js";
|
|
10
10
|
const D = /* @__PURE__ */ l({
|
|
11
11
|
__name: "LeftSlot",
|
|
12
|
-
setup(
|
|
13
|
-
const e = V(), i = B(), { closeVersionHistory: n } = _(), { closePreviewMode: s } = b(), o = v(), { config: t } = k(), f =
|
|
12
|
+
setup(C) {
|
|
13
|
+
const e = V(), i = B(), { closeVersionHistory: n } = _(), { closePreviewMode: s } = b(), o = v(), { config: t } = k(), f = p(() => {
|
|
14
14
|
var u, m;
|
|
15
15
|
return e.isVersionHistoryOpen || e.isPreviewModeOpen ? o("email-editor.back-to-editor") : (m = (u = t.value) == null ? void 0 : u.ui) != null && m.backButtonLabel ? t.value.ui.backButtonLabel : o("email-editor.back-to-design");
|
|
16
|
-
}), r =
|
|
16
|
+
}), r = d(!1), c = () => {
|
|
17
17
|
if (e.isVersionHistoryOpen) {
|
|
18
18
|
n();
|
|
19
19
|
return;
|
|
@@ -22,13 +22,13 @@ const D = /* @__PURE__ */ l({
|
|
|
22
22
|
s();
|
|
23
23
|
return;
|
|
24
24
|
}
|
|
25
|
-
|
|
26
|
-
}, a =
|
|
25
|
+
i();
|
|
26
|
+
}, a = y(() => {
|
|
27
27
|
c(), r.value = !1;
|
|
28
28
|
}, 500);
|
|
29
29
|
return { __sfc: !0, editorStore: e, handleBack: i, closeVersionHistory: n, closePreviewMode: s, trans: o, config: t, backButtonLabel: f, isBackButtonDisabled: r, executeBackAction: c, debouncedBackAction: a, handleBackClick: () => {
|
|
30
30
|
r.value = !0, a();
|
|
31
|
-
}, InButtonV2:
|
|
31
|
+
}, InButtonV2: w };
|
|
32
32
|
}
|
|
33
33
|
});
|
|
34
34
|
export {
|
|
@@ -5,16 +5,16 @@ import { generateCompleteFilterQuery as h } from "../extensions/Blocks/Recommend
|
|
|
5
5
|
import { useConfigStore as x } from "../stores/config.js";
|
|
6
6
|
const w = () => ({
|
|
7
7
|
calculateCardWidth: ({
|
|
8
|
-
mobileLeftPadding:
|
|
9
|
-
mobileRightPadding:
|
|
10
|
-
cardsInRow:
|
|
8
|
+
mobileLeftPadding: o,
|
|
9
|
+
mobileRightPadding: s,
|
|
10
|
+
cardsInRow: a,
|
|
11
11
|
unresponsive: n
|
|
12
12
|
}) => {
|
|
13
|
-
const r = n ?
|
|
13
|
+
const r = n ? a : 1, e = o + s + (r - 1) * b;
|
|
14
14
|
return (R - e) / r;
|
|
15
15
|
},
|
|
16
|
-
getRecommendationCampaignData: (
|
|
17
|
-
const
|
|
16
|
+
getRecommendationCampaignData: (o) => {
|
|
17
|
+
const s = m(), a = Number(o), n = s.blockStates[a];
|
|
18
18
|
if (!n)
|
|
19
19
|
return {
|
|
20
20
|
textTrimming: !1,
|
|
@@ -42,37 +42,33 @@ const w = () => ({
|
|
|
42
42
|
discountAfterTextValue: ""
|
|
43
43
|
};
|
|
44
44
|
},
|
|
45
|
-
buildCampaignUrl: (
|
|
45
|
+
buildCampaignUrl: (o, s) => {
|
|
46
46
|
var l;
|
|
47
|
-
const
|
|
47
|
+
const a = m(), n = x(), r = Number(o);
|
|
48
48
|
let e;
|
|
49
|
-
if (
|
|
50
|
-
e =
|
|
49
|
+
if (s)
|
|
50
|
+
e = s;
|
|
51
51
|
else {
|
|
52
|
-
const
|
|
53
|
-
if (!
|
|
52
|
+
const c = a.blockStates[r];
|
|
53
|
+
if (!c)
|
|
54
54
|
return "";
|
|
55
|
-
const { recommendationConfigs:
|
|
55
|
+
const { recommendationConfigs: i } = c;
|
|
56
56
|
e = {
|
|
57
|
-
strategy:
|
|
58
|
-
language:
|
|
59
|
-
currencyCode:
|
|
60
|
-
size:
|
|
61
|
-
productIds:
|
|
62
|
-
filters:
|
|
63
|
-
shuffleProducts:
|
|
57
|
+
strategy: i.strategy,
|
|
58
|
+
language: i.language,
|
|
59
|
+
currencyCode: i.currencySettings.value,
|
|
60
|
+
size: i.size,
|
|
61
|
+
productIds: i.productIds,
|
|
62
|
+
filters: i.filters,
|
|
63
|
+
shuffleProducts: i.shuffleProducts
|
|
64
64
|
};
|
|
65
65
|
}
|
|
66
|
-
const f = ((l = I().find((
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
t.set("productId", e.productIds.slice(0, i).join(","));
|
|
70
|
-
} else e.strategy === "similarViewed" && t.set("productId", "{itemId}");
|
|
71
|
-
e.strategy === "userBased" && t.set("userId", "{user_id}");
|
|
72
|
-
const g = e.filters.filter((i) => i.isValid), d = h(g);
|
|
66
|
+
const f = ((l = I().find((c) => c.key === e.strategy)) == null ? void 0 : l.path) || "", t = new URLSearchParams();
|
|
67
|
+
t.set("locale", e.language), t.set("currency", e.currencyCode), t.set("partnerName", n.partnerName), t.set("size", e.size), t.set("details", "true"), t.set("campaignId", n.variationId), e.strategy === "manualMerchandising" ? t.set("productId", e.productIds.join(",")) : e.strategy === "similarViewed" && t.set("productId", "{itemId}"), e.strategy === "userBased" && t.set("userId", "{user_id}");
|
|
68
|
+
const g = e.filters.filter((c) => c.isValid), d = h(g);
|
|
73
69
|
d && t.set("filter", d), e.shuffleProducts && t.set("shuffle", "true");
|
|
74
70
|
const p = decodeURIComponent(t.toString()), u = `${C.RECOMMENDATION_API_URL}/v2/${f}?${p}`;
|
|
75
|
-
return
|
|
71
|
+
return a.recommendationCampaignUrls[o] = u, u;
|
|
76
72
|
}
|
|
77
73
|
});
|
|
78
74
|
export {
|
|
@@ -9,12 +9,12 @@ import { localePatch as H } from "../config/i18n/index.js";
|
|
|
9
9
|
import { useStripoApi as O } from "../services/stripoApi.js";
|
|
10
10
|
import j from "../static/styles/customEditorStyle.css.js";
|
|
11
11
|
import { useEditorStore as E } from "../stores/editor.js";
|
|
12
|
-
import { dynamicContentToMergeTags as
|
|
13
|
-
import
|
|
12
|
+
import { dynamicContentToMergeTags as z } from "../utils/genericUtil.js";
|
|
13
|
+
import L from "../package.json.js";
|
|
14
14
|
const se = (C, l) => {
|
|
15
|
-
const { features: c, template: h, isFeatureEnabled: u } = P(), { handleError: m } = x(), { getToken: w, getCustomFonts: b, getSyncModulesStatus: k } = O(), { handleEvent:
|
|
15
|
+
const { features: c, template: h, isFeatureEnabled: u } = P(), { handleError: m } = x(), { getToken: w, getCustomFonts: b, getSyncModulesStatus: k } = O(), { handleEvent: F } = q(), { getStripoBlocksConfig: B } = I(), T = async (i, r = [], s = !1) => {
|
|
16
16
|
var g, S, y;
|
|
17
|
-
const e = E(), { html: p, css: a } = i, { baseBlocks: o, extensions: d } = await
|
|
17
|
+
const e = E(), { html: p, css: a } = i, { baseBlocks: o, extensions: d } = await B(), f = ((g = c.value) == null ? void 0 : g.displayConditions) ?? !0, _ = ((S = c.value) == null ? void 0 : S.modulesDisabled) ?? !1, v = ((y = h.value) == null ? void 0 : y.forceRecreate) ?? !1;
|
|
18
18
|
window.UIEditor.initEditor(
|
|
19
19
|
document.querySelector("#guido-editor"),
|
|
20
20
|
{
|
|
@@ -35,7 +35,7 @@ const se = (C, l) => {
|
|
|
35
35
|
conditionsEnabled: f,
|
|
36
36
|
customConditionsEnabled: f,
|
|
37
37
|
enableXSSSecurity: !0,
|
|
38
|
-
modulesDisabled:
|
|
38
|
+
modulesDisabled: _,
|
|
39
39
|
syncModulesEnabled: s,
|
|
40
40
|
messageSettingsEnabled: !0,
|
|
41
41
|
displayGmailAnnotations: !0,
|
|
@@ -43,6 +43,7 @@ const se = (C, l) => {
|
|
|
43
43
|
displayTitle: !1,
|
|
44
44
|
displayUTM: !1,
|
|
45
45
|
selectElementAfterDrop: !0,
|
|
46
|
+
sameFontSizeForOutlook: !0,
|
|
46
47
|
allowedScriptSourceDomains: "https://email-static.useinsider.com https://edge.fullstory.com https://rs.fullstory.com",
|
|
47
48
|
...o ? { baseBlocks: o } : {},
|
|
48
49
|
editorFonts: {
|
|
@@ -52,7 +53,7 @@ const se = (C, l) => {
|
|
|
52
53
|
},
|
|
53
54
|
mergeTags: [
|
|
54
55
|
{
|
|
55
|
-
entries:
|
|
56
|
+
entries: z(
|
|
56
57
|
l.preselectedDynamicContentList,
|
|
57
58
|
u("liquidSyntax")
|
|
58
59
|
)
|
|
@@ -88,7 +89,7 @@ const se = (C, l) => {
|
|
|
88
89
|
onDataChanged() {
|
|
89
90
|
e.hasChanges = !0;
|
|
90
91
|
},
|
|
91
|
-
onEvent:
|
|
92
|
+
onEvent: F,
|
|
92
93
|
ignoreClickOutsideSelectors: [
|
|
93
94
|
"#guido-dynamic-content-modal",
|
|
94
95
|
".in-on-board-wrapper",
|
|
@@ -98,13 +99,13 @@ const se = (C, l) => {
|
|
|
98
99
|
localePatch: H
|
|
99
100
|
}
|
|
100
101
|
);
|
|
101
|
-
},
|
|
102
|
+
}, V = (i) => new Promise((r, s) => {
|
|
102
103
|
var d;
|
|
103
104
|
if (document.getElementById("UiEditorScript")) {
|
|
104
105
|
i(), r();
|
|
105
106
|
return;
|
|
106
107
|
}
|
|
107
|
-
const e =
|
|
108
|
+
const e = L.guido, a = `https://email-static.useinsider.com/guido/${(d = e == null ? void 0 : e.stripo) == null ? void 0 : d.version}/UIEditor.js`, o = document.createElement("script");
|
|
108
109
|
o.id = "UiEditorScript", o.type = "module", o.src = a, o.onload = () => {
|
|
109
110
|
i(), r();
|
|
110
111
|
}, o.onerror = () => {
|
|
@@ -112,12 +113,12 @@ const se = (C, l) => {
|
|
|
112
113
|
}, document.body.appendChild(o);
|
|
113
114
|
});
|
|
114
115
|
return { initPlugin: async (i) => {
|
|
115
|
-
await
|
|
116
|
+
await V(async () => {
|
|
116
117
|
const r = E(), [s, e] = await Promise.all([
|
|
117
118
|
b(),
|
|
118
119
|
k()
|
|
119
120
|
]);
|
|
120
|
-
r.syncModulesEnabled = e, await
|
|
121
|
+
r.syncModulesEnabled = e, await T(i, s, e);
|
|
121
122
|
});
|
|
122
123
|
} };
|
|
123
124
|
};
|
|
@@ -1,127 +1,133 @@
|
|
|
1
|
-
import { useConfig as
|
|
2
|
-
import { useRecommendation as
|
|
3
|
-
import { CSS_CLASS_RECO_BUTTON as
|
|
4
|
-
import { useRecommendationExtensionStore as
|
|
5
|
-
function y(r,
|
|
6
|
-
const
|
|
7
|
-
return o === "before" ? `${t} ${
|
|
1
|
+
import { useConfig as g } from "../../../composables/useConfig.js";
|
|
2
|
+
import { useRecommendation as _ } from "../../../composables/useRecommendation.js";
|
|
3
|
+
import { CSS_CLASS_RECO_BUTTON as q } from "../../../extensions/Blocks/Recommendation/constants/selectors.js";
|
|
4
|
+
import { useRecommendationExtensionStore as C } from "../../../extensions/Blocks/Recommendation/store/recommendation.js";
|
|
5
|
+
function y(r, n, e, o, i = "") {
|
|
6
|
+
const c = `{{${i}${r}_${n}_${e}}}`, t = `{{${i}${r}_${n}_currency}}`;
|
|
7
|
+
return o === "before" ? `${t} ${c}` : `${c} ${t}`;
|
|
8
8
|
}
|
|
9
|
-
function
|
|
10
|
-
|
|
9
|
+
function A(r) {
|
|
10
|
+
let n = r;
|
|
11
|
+
for (; n.children.length === 1; )
|
|
12
|
+
[n] = n.children;
|
|
13
|
+
return n;
|
|
14
|
+
}
|
|
15
|
+
function f(r, n, e, o, i, c) {
|
|
16
|
+
switch (n) {
|
|
11
17
|
case "productImage": {
|
|
12
18
|
const t = r.querySelector("img");
|
|
13
|
-
t && (t.setAttribute("src", `{{${
|
|
14
|
-
const
|
|
15
|
-
|
|
19
|
+
t && (t.setAttribute("src", `{{${c}${e}_${o}_image_url}}`), t.setAttribute("alt", `{{${c}${e}_${o}_name}}`));
|
|
20
|
+
const s = r.querySelector("a");
|
|
21
|
+
s && (s.setAttribute("href", `{{${c}${e}_${o}_url}}`), s.classList.add(q));
|
|
16
22
|
break;
|
|
17
23
|
}
|
|
18
24
|
case "productName": {
|
|
19
25
|
const t = r.querySelector("p");
|
|
20
26
|
if (t) {
|
|
21
|
-
const
|
|
22
|
-
|
|
27
|
+
const s = t.querySelector("strong") || t;
|
|
28
|
+
s.textContent = `{{${c}${e}_${o}_name}}`;
|
|
23
29
|
}
|
|
24
30
|
break;
|
|
25
31
|
}
|
|
26
32
|
case "productPrice": {
|
|
27
33
|
const t = r.querySelector("p");
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
34
|
+
t && (A(t).textContent = y(
|
|
35
|
+
e,
|
|
36
|
+
o,
|
|
37
|
+
"price",
|
|
38
|
+
i,
|
|
39
|
+
c
|
|
40
|
+
));
|
|
32
41
|
break;
|
|
33
42
|
}
|
|
34
43
|
case "productOldPrice": {
|
|
35
44
|
const t = r.querySelector("p");
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
n
|
|
44
|
-
), t.setAttribute("product-attr", "discount");
|
|
45
|
-
}
|
|
45
|
+
t && (A(t).textContent = y(
|
|
46
|
+
e,
|
|
47
|
+
o,
|
|
48
|
+
"original_price",
|
|
49
|
+
i,
|
|
50
|
+
c
|
|
51
|
+
), t.setAttribute("product-attr", "discount"));
|
|
46
52
|
break;
|
|
47
53
|
}
|
|
48
54
|
case "productButton": {
|
|
49
55
|
const t = r.querySelector("a");
|
|
50
|
-
t && t.setAttribute("href", `{{${
|
|
56
|
+
t && t.setAttribute("href", `{{${c}${e}_${o}_url}}`);
|
|
51
57
|
break;
|
|
52
58
|
}
|
|
53
59
|
case "productOmnibusPrice": {
|
|
54
60
|
const t = r.querySelector(".omnibus-price-value");
|
|
55
61
|
if (t) {
|
|
56
|
-
t.textContent = `{{${
|
|
57
|
-
const
|
|
58
|
-
|
|
62
|
+
t.textContent = `{{${c}${e}_${o}_omnibus_price}}`;
|
|
63
|
+
const s = t.closest("p");
|
|
64
|
+
s && (s.setAttribute("product-attr", "omnibus_price"), s.setAttribute("composition", "true"));
|
|
59
65
|
}
|
|
60
66
|
break;
|
|
61
67
|
}
|
|
62
68
|
case "productOmnibusDiscount": {
|
|
63
69
|
const t = r.querySelector(".omnibus-discount-value");
|
|
64
70
|
if (t) {
|
|
65
|
-
t.textContent = `{{${
|
|
66
|
-
const
|
|
67
|
-
|
|
71
|
+
t.textContent = `{{${c}${e}_${o}_omnibus_discount}}`;
|
|
72
|
+
const s = t.closest("p");
|
|
73
|
+
s && (s.setAttribute("product-attr", "omnibus_discount"), s.setAttribute("composition", "true"));
|
|
68
74
|
}
|
|
69
75
|
break;
|
|
70
76
|
}
|
|
71
77
|
default: {
|
|
72
78
|
const t = r.getAttribute("product-attr") ? r : r.querySelector("[product-attr]");
|
|
73
79
|
if (t) {
|
|
74
|
-
const
|
|
80
|
+
const s = t.getAttribute("product-attr"), a = t.querySelector("p");
|
|
75
81
|
if (a) {
|
|
76
82
|
const u = a.querySelector("strong") || a;
|
|
77
|
-
u.textContent = `{{${
|
|
83
|
+
u.textContent = `{{${c}${e}_${o}_${s}}}`;
|
|
78
84
|
}
|
|
79
85
|
}
|
|
80
86
|
break;
|
|
81
87
|
}
|
|
82
88
|
}
|
|
83
89
|
}
|
|
84
|
-
function
|
|
85
|
-
r.querySelectorAll(".recommendation-product-row").forEach((
|
|
86
|
-
|
|
90
|
+
function w(r, n, e, o) {
|
|
91
|
+
r.querySelectorAll(".recommendation-product-row").forEach((c, t) => {
|
|
92
|
+
c.querySelectorAll("[data-attribute-type]").forEach((a) => {
|
|
87
93
|
const u = a.getAttribute("data-attribute-type") || "", p = a.querySelectorAll(".attribute-cell");
|
|
88
94
|
p.length > 0 ? p.forEach((l) => {
|
|
89
|
-
f(l, u,
|
|
90
|
-
}) : f(a, u,
|
|
95
|
+
f(l, u, n, t, e, o);
|
|
96
|
+
}) : f(a, u, n, t, e, o);
|
|
91
97
|
});
|
|
92
98
|
});
|
|
93
99
|
}
|
|
94
|
-
function E(r,
|
|
95
|
-
const
|
|
96
|
-
if (!
|
|
100
|
+
function E(r, n, e, o) {
|
|
101
|
+
const i = r.querySelectorAll(".recommendation-product-row");
|
|
102
|
+
if (!i.length)
|
|
97
103
|
return;
|
|
98
|
-
const [
|
|
99
|
-
|
|
104
|
+
const [c] = i, t = c.querySelector("[data-attribute-type]"), s = t ? t.querySelectorAll(".attribute-cell").length : 1;
|
|
105
|
+
i.forEach((a, u) => {
|
|
100
106
|
a.querySelectorAll("[data-attribute-type]").forEach((l) => {
|
|
101
107
|
const d = l.getAttribute("data-attribute-type") || "";
|
|
102
|
-
l.querySelectorAll(".attribute-cell").forEach((
|
|
103
|
-
const
|
|
104
|
-
f(
|
|
108
|
+
l.querySelectorAll(".attribute-cell").forEach((h, $) => {
|
|
109
|
+
const S = u * s + $;
|
|
110
|
+
f(h, d, n, S, e, o);
|
|
105
111
|
});
|
|
106
112
|
});
|
|
107
113
|
});
|
|
108
114
|
}
|
|
109
|
-
function
|
|
110
|
-
r.querySelectorAll(".ins-recommendation-product-container").forEach((
|
|
111
|
-
E(
|
|
115
|
+
function R(r, n, e, o) {
|
|
116
|
+
r.querySelectorAll(".ins-recommendation-product-container").forEach((c) => {
|
|
117
|
+
E(c, n, e, o);
|
|
112
118
|
});
|
|
113
119
|
}
|
|
114
|
-
function
|
|
115
|
-
const o = r.getAttribute("data-layout") || "grid",
|
|
116
|
-
o === "list" ?
|
|
120
|
+
function P(r, n, e) {
|
|
121
|
+
const o = r.getAttribute("data-layout") || "grid", i = r.getAttribute("currency-alignment") || "after";
|
|
122
|
+
o === "list" ? w(r, n, i, e) : R(r, n, i, e);
|
|
117
123
|
}
|
|
118
|
-
function b(r,
|
|
119
|
-
const o = new RegExp(`${
|
|
120
|
-
return
|
|
124
|
+
function b(r, n, e) {
|
|
125
|
+
const o = new RegExp(`${n}\\s*:\\s*(\\d+)\\s*px`, "i"), i = r.match(o);
|
|
126
|
+
return i ? parseInt(i[1]) : e;
|
|
121
127
|
}
|
|
122
|
-
function
|
|
128
|
+
function T(r, n) {
|
|
123
129
|
let e = r.parentElement;
|
|
124
|
-
for (; e && e !==
|
|
130
|
+
for (; e && e !== n; ) {
|
|
125
131
|
if (e.tagName === "TD") {
|
|
126
132
|
const o = e.getAttribute("width");
|
|
127
133
|
if (o && o.endsWith("%") && parseFloat(o) < 100)
|
|
@@ -131,40 +137,40 @@ function P(r, c) {
|
|
|
131
137
|
}
|
|
132
138
|
return null;
|
|
133
139
|
}
|
|
134
|
-
function
|
|
135
|
-
const
|
|
136
|
-
|
|
137
|
-
if (
|
|
140
|
+
function v(r) {
|
|
141
|
+
const n = r.getAttribute("style") || "", e = b(n, "width", 600), o = b(n, "padding", 0) * 2, i = Math.max(0, e - o);
|
|
142
|
+
i !== 0 && r.querySelectorAll("img.adapt-img").forEach((c) => {
|
|
143
|
+
if (c.hasAttribute("width"))
|
|
138
144
|
return;
|
|
139
|
-
const t =
|
|
145
|
+
const t = T(c, r);
|
|
140
146
|
if (!t)
|
|
141
147
|
return;
|
|
142
|
-
const
|
|
143
|
-
|
|
144
|
-
const d =
|
|
148
|
+
const s = t.getAttribute("width"), a = parseFloat(s), u = b(t.getAttribute("style") || "", "padding", 0) * 2, p = Math.floor(i * a / 100), l = Math.max(1, p - u);
|
|
149
|
+
c.setAttribute("width", String(l));
|
|
150
|
+
const d = c.getAttribute("style") || "";
|
|
145
151
|
if (!/\bwidth\s*:\s*\d/i.test(d)) {
|
|
146
152
|
const m = d && !d.trim().endsWith(";") ? "; " : "";
|
|
147
|
-
|
|
153
|
+
c.setAttribute("style", `${d}${m}width: ${l}px`);
|
|
148
154
|
}
|
|
149
155
|
});
|
|
150
156
|
}
|
|
151
|
-
function
|
|
157
|
+
function O(r, n) {
|
|
152
158
|
const e = r.match(/<!DOCTYPE[^>]*>/i);
|
|
153
159
|
return (e ? `${e[0]}
|
|
154
|
-
` : "") +
|
|
160
|
+
` : "") + n.documentElement.outerHTML;
|
|
155
161
|
}
|
|
156
162
|
function N(r) {
|
|
157
|
-
const
|
|
163
|
+
const n = r.replaceAll("{%", "<!--{%").replaceAll("%}", "%}-->"), e = new DOMParser().parseFromString(n, "text/html"), o = e.querySelectorAll(".recommendation-block-v2");
|
|
158
164
|
if (!o.length)
|
|
159
165
|
return r;
|
|
160
|
-
const { buildCampaignUrl:
|
|
161
|
-
|
|
162
|
-
const { isFeatureEnabled: t } =
|
|
166
|
+
const { buildCampaignUrl: i } = _(), c = C();
|
|
167
|
+
c.recommendationCampaignUrls = {};
|
|
168
|
+
const { isFeatureEnabled: t } = g(), s = t("liquidSyntax") ? "reco_" : "";
|
|
163
169
|
return o.forEach((u) => {
|
|
164
170
|
var l, d;
|
|
165
171
|
const p = u.getAttribute("recommendation-id");
|
|
166
|
-
p && ((l = u.parentNode) == null || l.insertBefore(e.createComment("REC_START"), u), (d = u.parentNode) == null || d.insertBefore(e.createComment("REC_END"), u.nextSibling), u.querySelectorAll('[data-visibility="0"]').forEach((m) => m.remove()),
|
|
167
|
-
}),
|
|
172
|
+
p && ((l = u.parentNode) == null || l.insertBefore(e.createComment("REC_START"), u), (d = u.parentNode) == null || d.insertBefore(e.createComment("REC_END"), u.nextSibling), u.querySelectorAll('[data-visibility="0"]').forEach((m) => m.remove()), i(p), P(u, p, s), v(u));
|
|
173
|
+
}), O(n, e).replaceAll("<!--{%", "{%").replaceAll("%}-->", "%}").replaceAll("<!--{%", "{%").replaceAll("%}-->", "%}");
|
|
168
174
|
}
|
|
169
175
|
export {
|
|
170
176
|
y as formatPriceVariable,
|
|
@@ -453,7 +453,7 @@ const N = () => ({
|
|
|
453
453
|
details: !0,
|
|
454
454
|
campaignId: o.variationId
|
|
455
455
|
};
|
|
456
|
-
r.strategy === "manualMerchandising" ? a.productId = r.productIds.
|
|
456
|
+
r.strategy === "manualMerchandising" ? a.productId = r.productIds.join(",") : r.strategy === "similarViewed" && (a.productId = "{itemId}"), r.strategy === "userBased" && (a.userId = "{user_id}"), c && (a.filter = c), r.shuffleProducts && (a.shuffle = !0);
|
|
457
457
|
let f;
|
|
458
458
|
try {
|
|
459
459
|
f = await h.fetchRecommendationProducts(i, a);
|
package/dist/guido.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.gap-16[data-v-5553d071],.gap-16[data-v-0e1b0c54]{gap:16px}[data-v-
|
|
1
|
+
.gap-16[data-v-5553d071],.gap-16[data-v-0e1b0c54]{gap:16px}[data-v-90ce2966] .in-button-v2__wrapper{line-height:0}[data-v-22226124] .in-segments-wrapper__button_selected,[data-v-22226124] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb;color:#0010ac;border-color:#0010ac}[data-v-2cb418af] .in-progress-wrapper__progress p span:last-child{display:none!important}[data-v-2cb418af] .in-progress-description-status{display:none!important}.view-options-wrapper[data-v-195ab6d4]{position:relative;display:inline-block}.new-tag[data-v-195ab6d4]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-195ab6d4] .guido__view-option-selection-desktop svg,[data-v-195ab6d4] .guido__view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-195ab6d4] .in-segments-wrapper__button_selected,[data-v-195ab6d4] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-195ab6d4] .in-tooltip-wrapper__icon{cursor:pointer}.editor-toolbar[data-v-173c3a40]{gap:4px}.version-history-item[data-v-ee4b9c3f]{flex-basis:200px}.version-history[data-v-64c52560]{gap:8px}.version-history__toolbar[data-v-64c52560]{gap:4px}.view-options-wrapper[data-v-d405ca59]{position:relative;display:inline-block}.new-tag[data-v-d405ca59]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-d405ca59] .guido__verion-history-view-option-selection-desktop svg,[data-v-d405ca59] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-d405ca59] .in-segments-wrapper__button_selected,[data-v-d405ca59] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-d405ca59] .in-tooltip-wrapper__icon{cursor:pointer}.auto-save-toggle[data-v-2c964af4]{position:relative}.auto-save-toggle__info-box[data-v-2c964af4]{position:absolute;top:100%;left:0;z-index:10;width:280px}.editor-actions[data-v-82128f7d]{gap:4px}.header-wrapper[data-v-5c02dcc7]{min-width:1000px}.guido-loading__wrapper[data-v-07c4b2d8]{height:100%;top:75px!important;bottom:0!important}.guido-editor__wrapper[data-v-50dac6de]{--ribbon-offset: 0px;position:relative;width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__container[data-v-50dac6de]{width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__no-header[data-v-50dac6de]{height:calc(100vh - 75px - var(--ribbon-offset))}[data-v-293f1c47] .in-breadcrumb-wrapper__links{cursor:pointer}.templates-wrapper[data-v-df672485]{gap:16px;grid-template-columns:repeat(3,1fr)}.templates-wrapper .template-wrapper[data-v-df672485]{cursor:pointer}.templates-wrapper .template-wrapper .template-container[data-v-df672485]{height:274px;padding:2px;transition:none}.templates-wrapper .template-wrapper .template-container.selected[data-v-df672485]{padding:1px}.templates-wrapper .template-wrapper .template-container .thumbnail[data-v-df672485]{object-fit:cover;transform:scale(1)}[data-v-43c617a7] .guido__verion-history-view-option-selection-desktop svg,[data-v-43c617a7] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-43c617a7] .in-segments-wrapper__button_selected,[data-v-43c617a7] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}.error-list[data-v-c3fd5d4b]{gap:16px}.desktop-browser-header[data-v-d86c5af5]{height:79px;min-height:79px}.desktop-browser-header__left[data-v-d86c5af5]{-webkit-user-drag:none;height:79px;width:378px}.desktop-browser-header__center[data-v-d86c5af5]{height:79px;background-repeat:repeat-x;background-size:auto 100%;background-position:left top}.desktop-browser-header__right[data-v-d86c5af5]{-webkit-user-drag:none;height:79px;width:112px}.desktop-preview[data-v-988f8da6]{min-width:602px;height:70vh;min-height:583px;border-radius:10px}.desktop-preview iframe[data-v-988f8da6]{min-height:504px}.iframe-wrapper[data-v-e0424e99]{width:258px}.iframe-scaled[data-v-e0424e99]{width:320px;height:124.0310077519%;transform:scale(.80625);transform-origin:top left}.cropped-text[data-v-eb3d05d7]{width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-preview-wrapper__phone[data-v-3f472f96]{width:282px}.mobile-preview-wrapper__phone img[data-v-3f472f96]{object-fit:cover;border-radius:44px}.mobile-preview-wrapper__content[data-v-3f472f96]{width:258px;height:450px;left:12px}[data-v-7419ae06] .vueperslides__bullets,[data-v-796d193b] .vueperslides__bullets{pointer-events:none!important}[data-v-796d193b] .vueperslides__parallax-wrapper{height:110px!important}[data-v-cadfc82d] .vueperslides__bullets{pointer-events:none!important}[data-v-cadfc82d] .vueperslides__parallax-wrapper{height:110px!important}
|
package/dist/package.json.js
CHANGED
|
@@ -12,6 +12,7 @@ declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<__
|
|
|
12
12
|
};
|
|
13
13
|
hasChanges: import("vue").ComputedRef<boolean>;
|
|
14
14
|
saveSilent: () => Promise<Omit<SavedTemplateDetails, "metadata" | "silent"> | undefined> | undefined;
|
|
15
|
+
setLoading: (value: boolean) => void;
|
|
15
16
|
}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {
|
|
16
17
|
"dynamic-content:open": (detail: {
|
|
17
18
|
text: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@useinsider/guido",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.6.0-beta.1564c9b",
|
|
4
4
|
"description": "Guido is a Vue + TypeScript wrapper for Email Plugin. Easily embed the email editor in your Vue applications.",
|
|
5
5
|
"main": "./dist/guido.umd.cjs",
|
|
6
6
|
"module": "./dist/library.js",
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
},
|
|
93
93
|
"guido": {
|
|
94
94
|
"stripo": {
|
|
95
|
-
"version": "2.
|
|
95
|
+
"version": "2.65.0"
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
}
|