@useinsider/guido 3.27.0-beta.98e0c1b → 3.27.0-beta.a068207
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/organisms/extensions/recommendation/AssignStrategyDrawer.vue.js +10 -9
- package/dist/components/organisms/extensions/recommendation/AssignStrategyDrawer.vue2.js +41 -42
- package/dist/config/migrator/unsubscribeMigrator.js +112 -100
- package/dist/extensions/Blocks/Unsubscribe/block.js +104 -96
- package/dist/extensions/Blocks/Unsubscribe/utils/constants.js +4 -3
- package/dist/extensions/Blocks/Unsubscribe/utils/swapMergeTagInHref.js +5 -0
- package/dist/guido.css +1 -1
- package/dist/package.json.js +2 -2
- package/dist/src/extensions/Blocks/Unsubscribe/utils/constants.d.ts +1 -0
- package/dist/src/extensions/Blocks/Unsubscribe/utils/swapMergeTagInHref.d.ts +1 -0
- package/package.json +2 -2
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
import
|
|
1
|
+
import s from "./AssignStrategyDrawer.vue2.js";
|
|
2
|
+
/* empty css */
|
|
2
3
|
/* empty css */
|
|
3
4
|
import o from "../../../../_virtual/_plugin-vue2_normalizer.js";
|
|
4
5
|
var a = function() {
|
|
5
|
-
var e = this,
|
|
6
|
-
return t.store.assignStrategyDrawerStatus ?
|
|
7
|
-
return [
|
|
6
|
+
var e = this, r = e._self._c, t = e._self._setupProxy;
|
|
7
|
+
return t.store.assignStrategyDrawerStatus ? r(t.OrgStrategyDetailModal, { staticClass: "assign-strategy-drawer", attrs: { "description-status": "", show: "", "description-text": t.drawerDescription, "footer-button-group-options": t.footerButtonGroupOptions, strategy: t.selectedStrategy ?? {}, "title-text": t.trans("gpt-app-builder.assign-recommendation-strategy") }, on: { close: t.closeDrawer, primaryClick: t.assignStrategy }, scopedSlots: e._u([{ key: "contentTop", fn: function() {
|
|
8
|
+
return [r("div", { staticClass: "assign-strategy-drawer-content px-5 py-5" }, [r(t.OrgStrategyDropdown, { staticClass: "assign-strategy-select", attrs: { id: "assign-strategy-select", "create-button-visible": "", "info-box-position": "bottom right", loading: t.store.strategiesLoading || t.store.legacyConversionLoading, "placeholder-text": t.trans("smart-recommender.select-recommendation-strategy"), "selected-strategy-id": t.selectedStrategyId, state: t.showSelectionError ? "error" : "default", "state-message": t.showSelectionError ? t.trans("ds-steps.select-strategy-tooltip") : "", strategies: t.strategyOptions }, on: { create: function(l) {
|
|
8
9
|
return t.store.openStrategyCreation();
|
|
9
10
|
}, infoBoxButtonClick: t.onInfoBoxButtonClick, select: t.onSelect } })], 1)];
|
|
10
|
-
}, proxy: !0 }], null, !1,
|
|
11
|
+
}, proxy: !0 }], null, !1, 659108535) }) : e._e();
|
|
11
12
|
}, n = [], i = /* @__PURE__ */ o(
|
|
12
|
-
|
|
13
|
+
s,
|
|
13
14
|
a,
|
|
14
15
|
n,
|
|
15
16
|
!1,
|
|
16
17
|
null,
|
|
17
|
-
|
|
18
|
+
"6ce48dfd"
|
|
18
19
|
);
|
|
19
|
-
const
|
|
20
|
+
const y = i.exports;
|
|
20
21
|
export {
|
|
21
|
-
|
|
22
|
+
y as default
|
|
22
23
|
};
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
import { defineComponent as
|
|
1
|
+
import { defineComponent as B, defineAsyncComponent as T, ref as w, computed as n, watch as k } from "vue";
|
|
2
2
|
import "@useinsider/design-system-organisms/style";
|
|
3
|
-
import { useToaster as
|
|
4
|
-
import { useTranslations as
|
|
5
|
-
import { DOTTED_DATE_LOCALE as
|
|
6
|
-
import { URLS as
|
|
3
|
+
import { useToaster as b } from "../../../../composables/useToaster.js";
|
|
4
|
+
import { useTranslations as L } from "../../../../composables/useTranslations.js";
|
|
5
|
+
import { DOTTED_DATE_LOCALE as N } from "../../../../enums/date.js";
|
|
6
|
+
import { URLS as R } from "../../../../enums/extensions/recommendationBlock.js";
|
|
7
7
|
import { ToasterTypeOptions as u } from "../../../../enums/toaster.js";
|
|
8
|
-
import { useRecommendationExtensionStore as
|
|
9
|
-
import { commitStrategyChange as
|
|
10
|
-
import
|
|
11
|
-
import { formatShortDate as
|
|
12
|
-
import { asText as
|
|
13
|
-
import { escapeHtml as
|
|
14
|
-
import { InSkeleton as
|
|
15
|
-
const
|
|
8
|
+
import { useRecommendationExtensionStore as P } from "../../../../extensions/Blocks/Recommendation/store/recommendation.js";
|
|
9
|
+
import { commitStrategyChange as D } from "../../../../extensions/Blocks/Recommendation/utils/strategyCommit.js";
|
|
10
|
+
import U from "./StrategyInfoBoxContent.vue.js";
|
|
11
|
+
import { formatShortDate as M } from "../../../../utils/dateUtil.js";
|
|
12
|
+
import { asText as O } from "../../../../utils/genericUtil.js";
|
|
13
|
+
import { escapeHtml as G } from "../../../../utils/htmlEscape.js";
|
|
14
|
+
import { InSkeleton as $ } from "@useinsider/design-system-vue";
|
|
15
|
+
const st = /* @__PURE__ */ B({
|
|
16
16
|
__name: "AssignStrategyDrawer",
|
|
17
|
-
setup(
|
|
17
|
+
setup(H) {
|
|
18
18
|
const g = () => import("@useinsider/design-system-organisms"), p = (t, r) => ({
|
|
19
|
-
render: (
|
|
20
|
-
}),
|
|
19
|
+
render: (o) => o($, { props: { sizing: { width: t, height: r } } })
|
|
20
|
+
}), E = T({
|
|
21
21
|
loader: async () => (await g()).OrgStrategyDetailModal,
|
|
22
22
|
loadingComponent: p(480, 240),
|
|
23
23
|
delay: 0
|
|
24
|
-
}),
|
|
24
|
+
}), I = T({
|
|
25
25
|
loader: async () => (await g()).OrgStrategyDropdown
|
|
26
|
-
}), i = "guido-edit-strategy-",
|
|
27
|
-
|
|
26
|
+
}), i = "guido-edit-strategy-", a = L(), e = P(), { showToaster: c } = b(), s = w(null), m = "legacy", l = w(!1), x = n(() => e.assignStrategyDrawerStatus ? a("email-editor.assign-strategy-description", { url: R.RECOMMENDATION_STRATEGIES_PANEL_PATH }) : "");
|
|
27
|
+
k(() => e.assignStrategyDrawerStatus, (t) => {
|
|
28
28
|
if (!t)
|
|
29
29
|
return;
|
|
30
30
|
const { strategyId: r } = e.recommendationConfigs;
|
|
31
|
-
|
|
31
|
+
s.value = r || (e.isLegacyStrategyBlock ? m : null), l.value = !1, e.invalidateStrategies(), e.fetchStrategies().catch(() => {
|
|
32
32
|
c({
|
|
33
33
|
type: u.Error,
|
|
34
34
|
message: a("discovery-strategy.error-description")
|
|
@@ -36,28 +36,27 @@ const it = /* @__PURE__ */ b({
|
|
|
36
36
|
});
|
|
37
37
|
});
|
|
38
38
|
const f = (t) => {
|
|
39
|
-
const r =
|
|
39
|
+
const r = O(t.updated_at || t.created_at);
|
|
40
40
|
if (!r)
|
|
41
41
|
return "";
|
|
42
|
-
const
|
|
43
|
-
return a("recommendation-strategy.last-updated-on", { value:
|
|
44
|
-
}, S =
|
|
42
|
+
const o = M(r, N);
|
|
43
|
+
return a("recommendation-strategy.last-updated-on", { value: o });
|
|
44
|
+
}, S = n(() => ({
|
|
45
45
|
text: a("ds-steps.legacy-strategy"),
|
|
46
|
-
value:
|
|
46
|
+
value: m,
|
|
47
47
|
hidden: !0
|
|
48
|
-
})),
|
|
48
|
+
})), d = n(() => e.strategies.map((t) => ({
|
|
49
49
|
text: t.name,
|
|
50
50
|
value: t.strategy_id,
|
|
51
51
|
infoBoxProps: {
|
|
52
52
|
id: `strategy-info-${t.strategy_id}`,
|
|
53
53
|
theme: "light",
|
|
54
54
|
variant: "information",
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
titleText: H(D(t.name)),
|
|
55
|
+
className: "assign-strategy-info-box",
|
|
56
|
+
titleText: G(O(t.name)),
|
|
58
57
|
descriptionStatus: !0,
|
|
59
58
|
descriptionText: f(t),
|
|
60
|
-
slot:
|
|
59
|
+
slot: U,
|
|
61
60
|
slotProps: { strategy: t },
|
|
62
61
|
// The info box drops the option's value/text, so the id is the only channel
|
|
63
62
|
// that can carry the strategy back to the click handler.
|
|
@@ -70,17 +69,17 @@ const it = /* @__PURE__ */ b({
|
|
|
70
69
|
icon: "line-open-website"
|
|
71
70
|
}]
|
|
72
71
|
}
|
|
73
|
-
}))),
|
|
72
|
+
}))), A = n(() => e.isLegacyStrategyBlock ? [S.value, ...d.value] : d.value), h = (t) => {
|
|
74
73
|
var _;
|
|
75
74
|
const r = (_ = t == null ? void 0 : t.id) != null && _.startsWith(i) ? t.id.slice(i.length) : "";
|
|
76
75
|
if (!r)
|
|
77
76
|
return;
|
|
78
|
-
const
|
|
79
|
-
e.openStrategyEdit(r) && (String(
|
|
80
|
-
}, v =
|
|
81
|
-
const t = e.strategies.find((r) => String(r.strategy_id) === String(
|
|
77
|
+
const o = e.currentRecommendationId, y = e.recommendationConfigs.strategyId === r;
|
|
78
|
+
e.openStrategyEdit(r) && (String(s.value ?? "") === r && (s.value = null), y && (e.removeStrategy(), o !== null && D(o, "Removed recommendation strategy")));
|
|
79
|
+
}, v = n(() => {
|
|
80
|
+
const t = e.strategies.find((r) => String(r.strategy_id) === String(s.value ?? ""));
|
|
82
81
|
return t ? { ...t, fallback_config: null } : null;
|
|
83
|
-
}),
|
|
82
|
+
}), C = n(() => ({
|
|
84
83
|
primaryButton: {
|
|
85
84
|
styling: "solid",
|
|
86
85
|
type: "primary",
|
|
@@ -92,7 +91,7 @@ const it = /* @__PURE__ */ b({
|
|
|
92
91
|
labelText: a("products.cancel")
|
|
93
92
|
}
|
|
94
93
|
}));
|
|
95
|
-
return { __sfc: !0, loadOrganisms: g, skeleton: p, OrgStrategyDetailModal:
|
|
94
|
+
return { __sfc: !0, loadOrganisms: g, skeleton: p, OrgStrategyDetailModal: E, OrgStrategyDropdown: I, EDIT_BUTTON_ID_PREFIX: i, trans: a, store: e, showToaster: c, selectedStrategyId: s, LEGACY_OPTION_VALUE: m, showSelectionError: l, drawerDescription: x, lastUpdatedText: f, legacyStrategyOption: S, remoteStrategyOptions: d, strategyOptions: A, onInfoBoxButtonClick: h, selectedStrategy: v, footerButtonGroupOptions: C, closeDrawer: () => {
|
|
96
95
|
e.closeAssignStrategyDrawer();
|
|
97
96
|
}, assignStrategy: async () => {
|
|
98
97
|
const t = v.value;
|
|
@@ -113,16 +112,16 @@ const it = /* @__PURE__ */ b({
|
|
|
113
112
|
});
|
|
114
113
|
return;
|
|
115
114
|
}
|
|
116
|
-
const
|
|
115
|
+
const o = e.currentRecommendationId;
|
|
117
116
|
e.assignStrategy(t), c({
|
|
118
117
|
type: u.Success,
|
|
119
118
|
message: a("email-editor.strategy-assigned-success", { strategyName: t.name })
|
|
120
|
-
}), e.closeAssignStrategyDrawer(),
|
|
119
|
+
}), e.closeAssignStrategyDrawer(), o !== null && await D(o, "Assigned recommendation strategy");
|
|
121
120
|
}, onSelect: (t) => {
|
|
122
|
-
|
|
123
|
-
}
|
|
121
|
+
s.value = t.value, l.value = !1;
|
|
122
|
+
} };
|
|
124
123
|
}
|
|
125
124
|
});
|
|
126
125
|
export {
|
|
127
|
-
|
|
126
|
+
st as default
|
|
128
127
|
};
|
|
@@ -1,146 +1,158 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
import { MERGE_TAGS as
|
|
5
|
-
import { UNSUBSCRIBE_BLOCK_SELECTOR as
|
|
6
|
-
import {
|
|
7
|
-
|
|
1
|
+
var _ = Object.defineProperty;
|
|
2
|
+
var $ = (f, e, t) => e in f ? _(f, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : f[e] = t;
|
|
3
|
+
var k = (f, e, t) => $(f, typeof e != "symbol" ? e + "" : e, t);
|
|
4
|
+
import { MERGE_TAGS as c, PAGE_TYPES as T } from "../../enums/unsubscribe.js";
|
|
5
|
+
import { UNSUBSCRIBE_BLOCK_SELECTOR as y, DATA_ATTRIBUTES as d, UNSUBSCRIBE_MERGE_TAG_REGEX as h } from "../../extensions/Blocks/Unsubscribe/utils/constants.js";
|
|
6
|
+
import { swapMergeTagInHref as B } from "../../extensions/Blocks/Unsubscribe/utils/swapMergeTagInHref.js";
|
|
7
|
+
import { parsePageList as P } from "../../extensions/Blocks/Unsubscribe/utils/utils.js";
|
|
8
|
+
import { useUnsubscribeStore as M } from "../../stores/unsubscribe.js";
|
|
9
|
+
import { escapeHtml as A } from "../../utils/htmlEscape.js";
|
|
10
|
+
const S = "unsubscribe", N = "You can ", R = " from our emails, if you need to.", C = "{-{-UNSUBSCRIBE-LINK-}-}";
|
|
11
|
+
class H {
|
|
8
12
|
constructor() {
|
|
9
|
-
|
|
13
|
+
k(this, "parser");
|
|
10
14
|
this.parser = new DOMParser();
|
|
11
15
|
}
|
|
12
16
|
async migrate(e) {
|
|
13
17
|
try {
|
|
14
|
-
const
|
|
15
|
-
if (
|
|
16
|
-
const
|
|
17
|
-
await
|
|
18
|
+
const t = this.parser.parseFromString(e, "text/html"), r = t.querySelectorAll("td.unsubscribe-block");
|
|
19
|
+
if (r.length) {
|
|
20
|
+
const i = M();
|
|
21
|
+
await i.fetchTemplates(), this.migrateLegacyBlocks(r, i, this.collectBlockTags(t, i));
|
|
18
22
|
}
|
|
19
|
-
const
|
|
20
|
-
return !
|
|
21
|
-
} catch (
|
|
22
|
-
return console.error("UnsubscribeMigrator failed:",
|
|
23
|
+
const s = this.repairUnsubscribeLinks(t);
|
|
24
|
+
return !r.length && !s ? e : t.documentElement.outerHTML;
|
|
25
|
+
} catch (t) {
|
|
26
|
+
return console.error("UnsubscribeMigrator failed:", t), e;
|
|
23
27
|
}
|
|
24
28
|
}
|
|
25
|
-
migrateLegacyBlocks(e, r) {
|
|
26
|
-
e.forEach((
|
|
27
|
-
const
|
|
29
|
+
migrateLegacyBlocks(e, t, r) {
|
|
30
|
+
e.forEach((s) => {
|
|
31
|
+
const i = s.getAttribute("id"), n = this.extractPaddingClass(s), o = s.getAttribute("bgcolor") || "", a = this.extractUnsubscribeContent(s, r), b = this.getCollectionTypeFromMergeTag(a.linkHref), u = t.getSelectedUnsubscribePagesByCollection(b);
|
|
28
32
|
console.debug("[UnsubscribeMigrator]", {
|
|
29
33
|
mergeTag: a.linkHref,
|
|
30
|
-
collectionType:
|
|
31
|
-
pageIds:
|
|
32
|
-
paddingClass:
|
|
33
|
-
bgColor:
|
|
34
|
+
collectionType: b,
|
|
35
|
+
pageIds: u,
|
|
36
|
+
paddingClass: n,
|
|
37
|
+
bgColor: o
|
|
34
38
|
});
|
|
35
|
-
const
|
|
39
|
+
const l = this.buildUnsubscribeBlock(
|
|
36
40
|
a,
|
|
37
|
-
o,
|
|
38
41
|
b,
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
u,
|
|
43
|
+
n,
|
|
44
|
+
o
|
|
45
|
+
), g = this.parser.parseFromString(
|
|
46
|
+
`<table id="tempDoc"><tbody><tr>${l}</tr></tbody></table>`,
|
|
43
47
|
"text/html"
|
|
44
|
-
).querySelector(
|
|
45
|
-
|
|
48
|
+
).querySelector(y);
|
|
49
|
+
g && s.parentNode && (g.setAttribute("id", i || ""), s.parentNode.replaceChild(g, s));
|
|
46
50
|
});
|
|
47
51
|
}
|
|
52
|
+
// The compiler resolves a typed tag only through a block that lists pages, so a page-less block carries no tag.
|
|
53
|
+
collectBlockTags(e, t) {
|
|
54
|
+
const r = /* @__PURE__ */ new Set();
|
|
55
|
+
return e.querySelectorAll(y).forEach((s) => {
|
|
56
|
+
var a, b, u;
|
|
57
|
+
if (!P(s.getAttribute(d.PAGE_LIST) || "").length)
|
|
58
|
+
return;
|
|
59
|
+
const i = Number(s.getAttribute(d.PAGE_TYPE)), n = c[i];
|
|
60
|
+
if (n) {
|
|
61
|
+
r.add(n);
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
const o = (u = (b = (a = this.findLinkCandidates(s).primary) == null ? void 0 : a.getAttribute("href")) == null ? void 0 : b.match(h)) == null ? void 0 : u[0];
|
|
65
|
+
o && r.add(c[this.getCollectionTypeFromMergeTag(o)]);
|
|
66
|
+
}), e.querySelectorAll("td.unsubscribe-block").forEach((s) => {
|
|
67
|
+
const i = this.getCollectionTypeFromMergeTag(this.getLegacyLinkTag(s));
|
|
68
|
+
t.getSelectedUnsubscribePagesByCollection(i).length && r.add(c[i]);
|
|
69
|
+
}), r;
|
|
70
|
+
}
|
|
71
|
+
// Mirrors extractUnsubscribeContent: without a <p> the block migrates on the default tag.
|
|
72
|
+
getLegacyLinkTag(e) {
|
|
73
|
+
var r, s;
|
|
74
|
+
const { primary: t } = this.findLinkCandidates(e);
|
|
75
|
+
return !t || !(t.closest("p") || e.querySelector("p")) ? c.default : ((s = (r = t.getAttribute("href")) == null ? void 0 : r.match(h)) == null ? void 0 : s[0]) ?? c.default;
|
|
76
|
+
}
|
|
48
77
|
// Re-derives the typed merge tag from data-unsubscribe-page-type for any v2
|
|
49
78
|
// block whose anchor href is missing or the legacy default. Returns true when
|
|
50
79
|
// at least one href was rewritten. Typed tags and custom URLs are left intact.
|
|
51
80
|
repairUnsubscribeLinks(e) {
|
|
52
|
-
const
|
|
53
|
-
let
|
|
54
|
-
return
|
|
55
|
-
const
|
|
56
|
-
if (!
|
|
81
|
+
const t = e.querySelectorAll(`${y}[${d.PAGE_TYPE}]`);
|
|
82
|
+
let r = !1;
|
|
83
|
+
return t.forEach((s) => {
|
|
84
|
+
const i = s.querySelector('a[data-unsubscribe-link="true"], a.unsubscribe-link');
|
|
85
|
+
if (!i)
|
|
57
86
|
return;
|
|
58
|
-
const
|
|
59
|
-
if (
|
|
87
|
+
const n = i.getAttribute("href") || "";
|
|
88
|
+
if (n && n !== c.default)
|
|
60
89
|
return;
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
}),
|
|
90
|
+
const o = Number(s.getAttribute(d.PAGE_TYPE)), a = c[o];
|
|
91
|
+
a && (i.setAttribute("href", a), r = !0);
|
|
92
|
+
}), r;
|
|
64
93
|
}
|
|
65
94
|
extractPaddingClass(e) {
|
|
66
|
-
const
|
|
67
|
-
return
|
|
95
|
+
const r = (e.getAttribute("class") || "").match(/\bes-p\d+\b/);
|
|
96
|
+
return r ? r[0] : "";
|
|
97
|
+
}
|
|
98
|
+
hasVisibleContent(e) {
|
|
99
|
+
var t;
|
|
100
|
+
return !!((t = e.textContent) != null && t.trim() || e.querySelector("img"));
|
|
101
|
+
}
|
|
102
|
+
findLinkCandidates(e) {
|
|
103
|
+
const t = Array.from(/* @__PURE__ */ new Set([
|
|
104
|
+
...Array.from(e.querySelectorAll("a.unsubscribe-link")),
|
|
105
|
+
...Array.from(e.querySelectorAll('a[href*="unsubscribe"]'))
|
|
106
|
+
])), r = (n) => h.test(n.getAttribute("href") || ""), s = (n) => this.hasVisibleContent(n), i = t.find((n) => s(n) && r(n)) ?? t.find((n) => s(n) && n.classList.contains("unsubscribe-link")) ?? t.find(r) ?? t.find(s) ?? t[0];
|
|
107
|
+
return { candidates: t, primary: i };
|
|
68
108
|
}
|
|
69
|
-
extractUnsubscribeContent(e) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
linkStyle: "",
|
|
78
|
-
textAfter: " from our emails, if you need to.",
|
|
79
|
-
isBold: !1,
|
|
80
|
-
isItalic: !1,
|
|
81
|
-
align: "center",
|
|
82
|
-
paragraphStyle: ""
|
|
83
|
-
};
|
|
84
|
-
const n = e.getAttribute("align") || t.getAttribute("align") || "center", s = t.getAttribute("style") || "";
|
|
85
|
-
if (!r)
|
|
86
|
-
return {
|
|
87
|
-
textBefore: "You can ",
|
|
88
|
-
linkText: "unsubscribe",
|
|
89
|
-
linkHref: "{{ins-unsubscribe-link}}",
|
|
90
|
-
linkStyle: "",
|
|
91
|
-
textAfter: " from our emails, if you need to.",
|
|
92
|
-
isBold: !1,
|
|
93
|
-
isItalic: !1,
|
|
94
|
-
align: n,
|
|
95
|
-
paragraphStyle: s
|
|
96
|
-
};
|
|
97
|
-
const l = ((d = r.textContent) == null ? void 0 : d.trim()) || "unsubscribe", a = r.getAttribute("href") || "{{ins-unsubscribe-link}}", o = r.getAttribute("style") || "", b = t.textContent || "", u = b.indexOf(l), g = u >= 0 ? b.substring(0, u).trim() : "You can ", i = u >= 0 ? b.substring(u + l.length).trim() : " from our emails, if you need to.", m = !!t.querySelector("b, strong"), y = !!t.querySelector("i, em");
|
|
98
|
-
return {
|
|
99
|
-
textBefore: g,
|
|
100
|
-
linkText: l,
|
|
101
|
-
linkHref: this.normalizeUnsubscribeHref(a),
|
|
102
|
-
linkStyle: o,
|
|
103
|
-
textAfter: i,
|
|
104
|
-
isBold: m,
|
|
105
|
-
isItalic: y,
|
|
106
|
-
align: n,
|
|
107
|
-
paragraphStyle: s
|
|
109
|
+
extractUnsubscribeContent(e, t) {
|
|
110
|
+
const r = e.cloneNode(!0), { candidates: s, primary: i } = this.findLinkCandidates(r), n = (i == null ? void 0 : i.closest("p")) ?? null, o = n || r.querySelector("p"), a = {
|
|
111
|
+
footerHtml: "",
|
|
112
|
+
linkText: S,
|
|
113
|
+
linkHref: c.default,
|
|
114
|
+
linkStyle: "",
|
|
115
|
+
align: "center",
|
|
116
|
+
paragraphStyle: ""
|
|
108
117
|
};
|
|
118
|
+
if (!o || (a.align = e.getAttribute("align") || o.getAttribute("align") || "center", n || (a.paragraphStyle = o.getAttribute("style") || ""), !i))
|
|
119
|
+
return a;
|
|
120
|
+
a.linkText = this.hasVisibleContent(i) ? i.innerHTML.trim() : S, a.linkHref = this.normalizeUnsubscribeHref(i.getAttribute("href") || c.default), a.linkStyle = i.getAttribute("style") || "";
|
|
121
|
+
const b = this.getCollectionTypeFromMergeTag(a.linkHref), u = c[b];
|
|
122
|
+
return r.querySelectorAll("a[href]").forEach((l) => {
|
|
123
|
+
var m;
|
|
124
|
+
const p = l.getAttribute("href") || "", g = (m = p.match(h)) == null ? void 0 : m[0];
|
|
125
|
+
g && l.setAttribute("href", B(p, t.has(g) ? g : u));
|
|
126
|
+
}), s.filter((l) => l !== i && !this.hasVisibleContent(l)).forEach((l) => l.replaceWith(...Array.from(l.childNodes))), i.replaceWith(r.ownerDocument.createTextNode(C)), a.footerHtml = r.innerHTML.trim(), a;
|
|
109
127
|
}
|
|
110
|
-
buildUnsubscribeBlock(e,
|
|
111
|
-
const
|
|
112
|
-
e.textBefore && g.push(e.textBefore), g.push(u), e.textAfter && g.push(e.textAfter);
|
|
113
|
-
let i = g.join(" ");
|
|
114
|
-
e.isBold && e.isItalic ? i = `<strong path="1,0"><em path="1,0,0">${i}</em></strong>` : e.isBold ? i = `<strong path="1,0">${i}</strong>` : e.isItalic && (i = `<em path="1,0">${i}</em>`);
|
|
115
|
-
const m = e.align ? ` align="${e.align}"` : "", y = s ? ` bgcolor="${s}"` : "", d = e.paragraphStyle ? ` style="${e.paragraphStyle}"` : "", T = t.length > 0 ? ` ${k.PAGE_LIST}="${t.join(",")}"` : "", E = ` ${k.PAGE_TYPE}="${r}"`, S = "esd-block-text unsubscribe-block-v2 esd-block-unsubscribe esd-unsubscribe-block esd-extension-block";
|
|
128
|
+
buildUnsubscribeBlock(e, t, r, s, i) {
|
|
129
|
+
const n = e.linkStyle ? ` style="${A(e.linkStyle)}"` : "", a = Object.values(c).includes(e.linkHref) ? c[t] : e.linkHref, u = `<a ${`href="${A(a)}" class="unsubscribe-link" target="_blank" data-unsubscribe-link="true"`}${n}>${e.linkText}</a>`, l = e.paragraphStyle ? ` style="${A(e.paragraphStyle)}"` : "", p = e.footerHtml ? e.footerHtml.replace(C, () => u) : `<p path="1"${l}>${N}${u}${R}</p>`, g = e.align ? ` align="${e.align}"` : "", m = i ? ` bgcolor="${i}"` : "", L = r.length > 0 ? ` ${d.PAGE_LIST}="${r.join(",")}"` : "", U = ` ${d.PAGE_TYPE}="${t}"`, E = "esd-block-text unsubscribe-block-v2 esd-block-unsubscribe esd-unsubscribe-block esd-extension-block";
|
|
116
130
|
return `
|
|
117
131
|
<td
|
|
118
132
|
data-migration="true"
|
|
119
133
|
esd-extension-block-id="unsubscribe-block"
|
|
120
|
-
class="${
|
|
121
|
-
${
|
|
134
|
+
class="${s ? `${E} ${s}` : E}"
|
|
135
|
+
${g}${m}${U}${L}
|
|
122
136
|
>
|
|
123
|
-
|
|
124
|
-
${i}
|
|
125
|
-
</p>
|
|
137
|
+
${p}
|
|
126
138
|
</td>
|
|
127
139
|
`;
|
|
128
140
|
}
|
|
129
141
|
getCollectionTypeFromMergeTag(e) {
|
|
130
|
-
return e ===
|
|
142
|
+
return e === c[T.SUBSCRIPTION_PREFERENCE_CENTER] ? T.SUBSCRIPTION_PREFERENCE_CENTER : e === c[T.GLOBAL_UNSUBSCRIBE] ? T.GLOBAL_UNSUBSCRIBE : T.GLOBAL_UNSUBSCRIBE;
|
|
131
143
|
}
|
|
132
144
|
normalizeUnsubscribeHref(e) {
|
|
133
|
-
if (Object.values(
|
|
145
|
+
if (Object.values(c).includes(e))
|
|
134
146
|
return e;
|
|
135
|
-
const
|
|
136
|
-
return
|
|
147
|
+
const r = e.match(/{{ins-(?:global-)?(?:preferences-)?unsubscribe-link}}/);
|
|
148
|
+
return r ? r[0] : e.includes("unsubscribe") || e.includes("unsub") ? (console.warn(
|
|
137
149
|
`[UnsubscribeMigrator] Unrecognized unsubscribe href format: "${e}". Defaulting to {{ins-unsubscribe-link}}`
|
|
138
150
|
), "{{ins-unsubscribe-link}}") : e;
|
|
139
151
|
}
|
|
140
152
|
}
|
|
141
|
-
async function
|
|
142
|
-
return new
|
|
153
|
+
async function Y(f) {
|
|
154
|
+
return new H().migrate(f);
|
|
143
155
|
}
|
|
144
156
|
export {
|
|
145
|
-
|
|
157
|
+
Y as migrateUnsubscribe
|
|
146
158
|
};
|
|
@@ -1,48 +1,49 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
import { useToaster as
|
|
5
|
-
import { ToasterTypeOptions as
|
|
6
|
-
import { PAGE_TYPES as
|
|
7
|
-
import { useEditorStore as
|
|
8
|
-
import { useUnsubscribeStore as
|
|
9
|
-
import { Block as
|
|
10
|
-
import { getDefaultTemplate as
|
|
11
|
-
import { UNSUBSCRIBE_BLOCK_SELECTOR as
|
|
12
|
-
import {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
[
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
1
|
+
var R = Object.defineProperty;
|
|
2
|
+
var v = (l, c, e) => c in l ? R(l, c, { enumerable: !0, configurable: !0, writable: !0, value: e }) : l[c] = e;
|
|
3
|
+
var h = (l, c, e) => v(l, typeof c != "symbol" ? c + "" : c, e);
|
|
4
|
+
import { useToaster as D } from "../../../composables/useToaster.js";
|
|
5
|
+
import { ToasterTypeOptions as w } from "../../../enums/toaster.js";
|
|
6
|
+
import { PAGE_TYPES as B } from "../../../enums/unsubscribe.js";
|
|
7
|
+
import { useEditorStore as G } from "../../../stores/editor.js";
|
|
8
|
+
import { useUnsubscribeStore as u } from "../../../stores/unsubscribe.js";
|
|
9
|
+
import { Block as P, BlockCompositionType as x, ContextActionType as y, ModificationDescription as k, BlockType as M } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
|
|
10
|
+
import { getDefaultTemplate as O } from "./template.js";
|
|
11
|
+
import { UNSUBSCRIBE_BLOCK_SELECTOR as f, DATA_ATTRIBUTES as o, UNSUBSCRIBE_EVENTS as E, UNSUBSCRIBE_MERGE_TAG_REGEX as I } from "./utils/constants.js";
|
|
12
|
+
import { swapMergeTagInHref as q } from "./utils/swapMergeTagInHref.js";
|
|
13
|
+
import { parsePageList as L } from "./utils/utils.js";
|
|
14
|
+
const F = "unsubscribe-block", _ = 'a[data-unsubscribe-link="true"]', C = "{{ins-unsubscribe-link}}", K = "https://academy.insiderone.com/docs/adding-unsubscribe-pages-into-emails", H = "Removing the unsubscribe text leaves an empty block, but an active unsubscribe link is required. Undo your last action to restore the text, or delete the unsubscribe block entirely.", Y = {
|
|
15
|
+
[B.GLOBAL_UNSUBSCRIBE]: "{{ins-global-unsubscribe-link}}",
|
|
16
|
+
[B.SUBSCRIPTION_PREFERENCE_CENTER]: "{{ins-preferences-unsubscribe-link}}"
|
|
17
|
+
}, V = 3;
|
|
18
|
+
let d = null, b = null;
|
|
19
|
+
const N = () => {
|
|
20
|
+
d && (document.removeEventListener(E.SELECT, d), d = null);
|
|
21
|
+
}, U = () => {
|
|
22
|
+
b && (document.removeEventListener(E.CANCEL, b), b = null);
|
|
23
|
+
}, W = () => {
|
|
24
|
+
N(), U();
|
|
24
25
|
};
|
|
25
|
-
class
|
|
26
|
+
class se extends P {
|
|
26
27
|
constructor() {
|
|
27
28
|
super();
|
|
28
|
-
|
|
29
|
+
h(this, "currentNode");
|
|
29
30
|
// Per-block "did this instance have a link last time we saw it?" tracking.
|
|
30
31
|
// Keyed by the stable `data-unsubscribe-block-id` we assign, because
|
|
31
32
|
// ImmutableHtmlNode instances are recreated on every document mutation and
|
|
32
33
|
// can't be used as Map keys directly. A singleton boolean here would be
|
|
33
34
|
// polluted across blocks since Stripo fires onDocumentChanged per-instance.
|
|
34
|
-
|
|
35
|
+
h(this, "linkStateByBlockId", /* @__PURE__ */ new Map());
|
|
35
36
|
// Per-block prepend retry counter for the leading text guard (SD-143097).
|
|
36
|
-
|
|
37
|
+
h(this, "guardAttemptsByBlockId", /* @__PURE__ */ new Map());
|
|
37
38
|
}
|
|
38
39
|
getId() {
|
|
39
|
-
return
|
|
40
|
+
return F;
|
|
40
41
|
}
|
|
41
42
|
getIcon() {
|
|
42
43
|
return "unsubscribe-icon";
|
|
43
44
|
}
|
|
44
45
|
getBlockCompositionType() {
|
|
45
|
-
return
|
|
46
|
+
return x.BLOCK;
|
|
46
47
|
}
|
|
47
48
|
getName() {
|
|
48
49
|
return this.api.translate("Unsubscribe Block");
|
|
@@ -51,16 +52,16 @@ class J extends U {
|
|
|
51
52
|
return this.api.translate("Unsubscribe Block Description");
|
|
52
53
|
}
|
|
53
54
|
getTemplate() {
|
|
54
|
-
return
|
|
55
|
+
return O();
|
|
55
56
|
}
|
|
56
57
|
getContextActionsIds() {
|
|
57
|
-
return [
|
|
58
|
+
return [y.MOVE, y.REMOVE];
|
|
58
59
|
}
|
|
59
60
|
onSelect(e) {
|
|
60
|
-
if (this.currentNode = e,
|
|
61
|
+
if (this.currentNode = e, G().isPreviewModeOpen)
|
|
61
62
|
return;
|
|
62
63
|
const t = this._getOrAssignBlockId(e);
|
|
63
|
-
t && this.linkStateByBlockId.set(t, this._hasUnsubscribeLink(e)), this._setupSelectEventListener(), this._setupCancelEventListener(t), !("getAttribute" in e && e.getAttribute("data-migration")) && (this._resetStoreState(), t && (
|
|
64
|
+
t && this.linkStateByBlockId.set(t, this._hasUnsubscribeLink(e)), this._setupSelectEventListener(), this._setupCancelEventListener(t), !("getAttribute" in e && e.getAttribute("data-migration")) && (this._resetStoreState(), t && (u().pendingBlockId = t), this._loadBlockState(e), this._checkExistingBlocks(), this._openDrawer());
|
|
64
65
|
}
|
|
65
66
|
onCreated(e) {
|
|
66
67
|
this._ensureLeadingTextGuard(e);
|
|
@@ -68,7 +69,7 @@ class J extends U {
|
|
|
68
69
|
onDocumentInit() {
|
|
69
70
|
try {
|
|
70
71
|
const e = this.api.getDocumentRoot();
|
|
71
|
-
e && "querySelectorAll" in e && e.querySelectorAll(
|
|
72
|
+
e && "querySelectorAll" in e && e.querySelectorAll(f).forEach((t) => {
|
|
72
73
|
this._ensureLeadingTextGuard(t);
|
|
73
74
|
});
|
|
74
75
|
} catch {
|
|
@@ -79,11 +80,11 @@ class J extends U {
|
|
|
79
80
|
const t = this._getOrAssignBlockId(e);
|
|
80
81
|
if (!t)
|
|
81
82
|
return;
|
|
82
|
-
const
|
|
83
|
-
this.linkStateByBlockId.get(t) === !0 && !
|
|
83
|
+
const i = this._hasUnsubscribeLink(e);
|
|
84
|
+
this.linkStateByBlockId.get(t) === !0 && !i && this._warnLinkRemoved(), this.linkStateByBlockId.set(t, i);
|
|
84
85
|
}
|
|
85
86
|
onDelete(e) {
|
|
86
|
-
|
|
87
|
+
W(), this._removeBlockTemplatesFromStore(e), this._resetStoreState();
|
|
87
88
|
const t = this._readBlockId(e);
|
|
88
89
|
t && (this.linkStateByBlockId.delete(t), this.guardAttemptsByBlockId.delete(t));
|
|
89
90
|
}
|
|
@@ -95,38 +96,38 @@ class J extends U {
|
|
|
95
96
|
_ensureLeadingTextGuard(e) {
|
|
96
97
|
if (!("querySelector" in e))
|
|
97
98
|
return;
|
|
98
|
-
const t = e.querySelector(
|
|
99
|
+
const t = e.querySelector(_);
|
|
99
100
|
if (!t)
|
|
100
101
|
return;
|
|
101
|
-
let
|
|
102
|
+
let i = t, r = i.parent();
|
|
102
103
|
for (; r && "getTagName" in r && r.getTagName().toLowerCase() !== "p"; )
|
|
103
|
-
|
|
104
|
+
i = r, r = r.parent();
|
|
104
105
|
if (!r || !("getTagName" in r) || r.getTagName().toLowerCase() !== "p")
|
|
105
106
|
return;
|
|
106
|
-
const
|
|
107
|
-
if (!!(
|
|
108
|
-
const
|
|
109
|
-
|
|
107
|
+
const s = i.previousSibling();
|
|
108
|
+
if (!!(s && s.getType() === "text" && s.getTextContent())) {
|
|
109
|
+
const a = this._readBlockId(e);
|
|
110
|
+
a && this.guardAttemptsByBlockId.delete(a);
|
|
110
111
|
return;
|
|
111
112
|
}
|
|
112
|
-
const
|
|
113
|
-
if (!
|
|
113
|
+
const g = this._getOrAssignBlockId(e);
|
|
114
|
+
if (!g)
|
|
114
115
|
return;
|
|
115
|
-
const
|
|
116
|
-
if (!(
|
|
117
|
-
this.guardAttemptsByBlockId.set(
|
|
116
|
+
const p = this.guardAttemptsByBlockId.get(g) ?? 0;
|
|
117
|
+
if (!(p >= V)) {
|
|
118
|
+
this.guardAttemptsByBlockId.set(g, p + 1);
|
|
118
119
|
try {
|
|
119
|
-
this.api.getDocumentModifier().modifyHtml(r).prepend(" ").apply(new
|
|
120
|
-
} catch (
|
|
121
|
-
console.warn("[UnsubscribeBlock] Failed to ensure link text guard:",
|
|
120
|
+
this.api.getDocumentModifier().modifyHtml(r).prepend(" ").apply(new k("Ensure unsubscribe link text guard"));
|
|
121
|
+
} catch (a) {
|
|
122
|
+
console.warn("[UnsubscribeBlock] Failed to ensure link text guard:", a);
|
|
122
123
|
}
|
|
123
124
|
}
|
|
124
125
|
}
|
|
125
126
|
_hasUnsubscribeLink(e) {
|
|
126
|
-
return "querySelector" in e ? !!e.querySelector(
|
|
127
|
+
return "querySelector" in e ? !!e.querySelector(_) : !1;
|
|
127
128
|
}
|
|
128
129
|
_readBlockId(e) {
|
|
129
|
-
return "getAttribute" in e ? e.getAttribute(
|
|
130
|
+
return "getAttribute" in e ? e.getAttribute(o.BLOCK_ID) : null;
|
|
130
131
|
}
|
|
131
132
|
/**
|
|
132
133
|
* Returns the block's stable id, assigning one via the document modifier if
|
|
@@ -140,13 +141,13 @@ class J extends U {
|
|
|
140
141
|
return t;
|
|
141
142
|
if (!("getAttribute" in e))
|
|
142
143
|
return null;
|
|
143
|
-
const
|
|
144
|
+
const i = this._generateNextBlockId();
|
|
144
145
|
try {
|
|
145
|
-
this.api.getDocumentModifier().modifyHtml(e).setAttribute(
|
|
146
|
+
this.api.getDocumentModifier().modifyHtml(e).setAttribute(o.BLOCK_ID, i).apply(new k(`Assign unsubscribe block id ${i}`));
|
|
146
147
|
} catch (r) {
|
|
147
148
|
return console.warn("[UnsubscribeBlock] Failed to assign block id:", r), null;
|
|
148
149
|
}
|
|
149
|
-
return
|
|
150
|
+
return i;
|
|
150
151
|
}
|
|
151
152
|
/**
|
|
152
153
|
* Generates a unique id by scanning the document for the highest existing
|
|
@@ -157,10 +158,10 @@ class J extends U {
|
|
|
157
158
|
let e = 0;
|
|
158
159
|
try {
|
|
159
160
|
const t = this.api.getDocumentRoot();
|
|
160
|
-
t && "querySelectorAll" in t && t.querySelectorAll(
|
|
161
|
+
t && "querySelectorAll" in t && t.querySelectorAll(f).forEach((r) => {
|
|
161
162
|
if ("getAttribute" in r) {
|
|
162
|
-
const
|
|
163
|
-
|
|
163
|
+
const s = r.getAttribute(o.BLOCK_ID), n = s ? parseInt(s) : 0;
|
|
164
|
+
n > e && (e = n);
|
|
164
165
|
}
|
|
165
166
|
});
|
|
166
167
|
} catch {
|
|
@@ -169,14 +170,14 @@ class J extends U {
|
|
|
169
170
|
}
|
|
170
171
|
_warnLinkRemoved() {
|
|
171
172
|
try {
|
|
172
|
-
const { showToaster: e } =
|
|
173
|
+
const { showToaster: e } = D();
|
|
173
174
|
e({
|
|
174
|
-
type:
|
|
175
|
-
message: this.api.translate(
|
|
175
|
+
type: w.Warning,
|
|
176
|
+
message: this.api.translate(H),
|
|
176
177
|
actionButton: {
|
|
177
178
|
text: this.api.translate("Visit Academy"),
|
|
178
179
|
onClick: () => {
|
|
179
|
-
window.open(
|
|
180
|
+
window.open(K, "_blank", "noopener,noreferrer");
|
|
180
181
|
}
|
|
181
182
|
}
|
|
182
183
|
});
|
|
@@ -185,55 +186,62 @@ class J extends U {
|
|
|
185
186
|
}
|
|
186
187
|
}
|
|
187
188
|
_setupSelectEventListener() {
|
|
188
|
-
|
|
189
|
-
const t = e, { collectionType:
|
|
190
|
-
this._updateBlock(
|
|
191
|
-
}, document.addEventListener(
|
|
189
|
+
N(), d = (e) => {
|
|
190
|
+
const t = e, { collectionType: i, selectedPages: r } = t.detail;
|
|
191
|
+
this._updateBlock(i, r.join(","));
|
|
192
|
+
}, document.addEventListener(E.SELECT, d);
|
|
192
193
|
}
|
|
193
194
|
_setupCancelEventListener(e) {
|
|
194
|
-
|
|
195
|
-
const { detail:
|
|
196
|
-
((
|
|
197
|
-
}, document.addEventListener(
|
|
195
|
+
U(), b = (t) => {
|
|
196
|
+
const { detail: i } = t;
|
|
197
|
+
((i == null ? void 0 : i.blockId) ?? null) === e && this._handleCancel();
|
|
198
|
+
}, document.addEventListener(E.CANCEL, b);
|
|
198
199
|
}
|
|
199
200
|
_handleCancel() {
|
|
200
201
|
try {
|
|
201
202
|
if (!this.currentNode)
|
|
202
203
|
return;
|
|
203
|
-
this.api.getDocumentModifier().modifyHtml(this.currentNode).replaceWith(`<${
|
|
204
|
+
this.api.getDocumentModifier().modifyHtml(this.currentNode).replaceWith(`<${M.EMPTY_CONTAINER}/>`).apply(new k("Removed unsubscribe block due to cancel"));
|
|
204
205
|
} catch (e) {
|
|
205
206
|
console.warn("[UnsubscribeBlock] Failed to remove unsubscribe block:", e);
|
|
206
207
|
}
|
|
207
208
|
}
|
|
208
209
|
_updateBlock(e, t) {
|
|
210
|
+
var a;
|
|
209
211
|
if (!this.currentNode || !("querySelector" in this.currentNode))
|
|
210
212
|
return;
|
|
211
|
-
const
|
|
212
|
-
if (!
|
|
213
|
+
const i = this.currentNode.querySelector(_);
|
|
214
|
+
if (!i)
|
|
213
215
|
return;
|
|
214
|
-
const r = this._getMergeTag(e);
|
|
215
|
-
|
|
216
|
+
const r = this._getMergeTag(e), s = this.api.getDocumentModifier(), n = "getAttribute" in i ? i.getAttribute("href") : null, p = [(a = n == null ? void 0 : n.match(I)) == null ? void 0 : a[0], C];
|
|
217
|
+
s.modifyHtml(i).setAttribute("href", r), this.currentNode.querySelectorAll("a[href]").forEach((m) => {
|
|
218
|
+
var T;
|
|
219
|
+
if (!("getAttribute" in m) || m.getAttribute("data-unsubscribe-link") === "true")
|
|
220
|
+
return;
|
|
221
|
+
const S = m.getAttribute("href") ?? "", A = (T = S.match(I)) == null ? void 0 : T[0];
|
|
222
|
+
A && p.includes(A) && s.modifyHtml(m).setAttribute("href", q(S, r));
|
|
223
|
+
}), s.modifyHtml(this.currentNode).setAttribute(o.PAGE_TYPE, e.toString()).setAttribute(o.PAGE_LIST, t), s.apply(new k(`Updated unsubscribe link to ${r}`));
|
|
216
224
|
}
|
|
217
225
|
_getMergeTag(e) {
|
|
218
|
-
return
|
|
226
|
+
return Y[e] ?? C;
|
|
219
227
|
}
|
|
220
228
|
_openDrawer() {
|
|
221
229
|
if (!(this.currentNode && this.currentNode.getAttribute("data-unsubscribe-page-type")))
|
|
222
230
|
try {
|
|
223
|
-
const e =
|
|
231
|
+
const e = u();
|
|
224
232
|
e.typeSelectionDrawerStatus = !0;
|
|
225
233
|
} catch (e) {
|
|
226
234
|
console.error("[UnsubscribeBlock] Failed to open drawer:", e);
|
|
227
235
|
}
|
|
228
236
|
}
|
|
229
237
|
_checkExistingBlocks() {
|
|
230
|
-
const e =
|
|
231
|
-
e.isGlobalUnsubscribeDisabled = !1, e.isSubscriptionPreferencesCenterDisabled = !1, this.api.getDocumentRoot().querySelectorAll(
|
|
232
|
-
if ("getAttribute" in
|
|
233
|
-
const r =
|
|
238
|
+
const e = u();
|
|
239
|
+
e.isGlobalUnsubscribeDisabled = !1, e.isSubscriptionPreferencesCenterDisabled = !1, this.api.getDocumentRoot().querySelectorAll(f).forEach((i) => {
|
|
240
|
+
if ("getAttribute" in i) {
|
|
241
|
+
const r = i.getAttribute(o.PAGE_TYPE);
|
|
234
242
|
if (r) {
|
|
235
|
-
const
|
|
236
|
-
|
|
243
|
+
const s = Number(r);
|
|
244
|
+
s === B.GLOBAL_UNSUBSCRIBE ? e.isGlobalUnsubscribeDisabled = !0 : s === B.SUBSCRIPTION_PREFERENCE_CENTER && (e.isSubscriptionPreferencesCenterDisabled = !0);
|
|
237
245
|
}
|
|
238
246
|
}
|
|
239
247
|
});
|
|
@@ -241,27 +249,27 @@ class J extends U {
|
|
|
241
249
|
async _loadBlockState(e) {
|
|
242
250
|
if (!("getAttribute" in e))
|
|
243
251
|
return;
|
|
244
|
-
const t = e.getAttribute(
|
|
245
|
-
if (!t || !
|
|
252
|
+
const t = e.getAttribute(o.PAGE_TYPE), i = e.getAttribute(o.PAGE_LIST);
|
|
253
|
+
if (!t || !i)
|
|
246
254
|
return;
|
|
247
|
-
const r =
|
|
248
|
-
await r.fetchTemplates(), r.setCollectionWithoutAutoSelection(
|
|
255
|
+
const r = u(), s = Number(t), n = L(i);
|
|
256
|
+
await r.fetchTemplates(), r.setCollectionWithoutAutoSelection(s), r.loadSelectedTemplates(n);
|
|
249
257
|
}
|
|
250
258
|
_resetStoreState() {
|
|
251
|
-
|
|
259
|
+
u().$reset();
|
|
252
260
|
}
|
|
253
261
|
_removeBlockTemplatesFromStore(e) {
|
|
254
262
|
if (!("getAttribute" in e))
|
|
255
263
|
return;
|
|
256
|
-
const t = e.getAttribute(
|
|
264
|
+
const t = e.getAttribute(o.PAGE_LIST);
|
|
257
265
|
if (!t)
|
|
258
266
|
return;
|
|
259
|
-
const
|
|
260
|
-
|
|
267
|
+
const i = u(), r = L(t);
|
|
268
|
+
i.removeUnsubscribePages(r);
|
|
261
269
|
}
|
|
262
270
|
}
|
|
263
271
|
export {
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
272
|
+
F as UNSUBSCRIBE_BLOCK_ID,
|
|
273
|
+
se as UnsubscribeBlock,
|
|
274
|
+
W as disposeUnsubscribeListeners
|
|
267
275
|
};
|
|
@@ -5,10 +5,11 @@ const s = {
|
|
|
5
5
|
PAGE_TYPE: "data-unsubscribe-page-type",
|
|
6
6
|
PAGE_LIST: "data-unsubscribe-page-list",
|
|
7
7
|
BLOCK_ID: "data-unsubscribe-block-id"
|
|
8
|
-
},
|
|
8
|
+
}, e = ".unsubscribe-block-v2", E = /{{ins-(?:global-)?(?:preferences-)?unsubscribe-link}}/, c = 'a[data-unsubscribe-link="true"], a.unsubscribe-link';
|
|
9
9
|
export {
|
|
10
10
|
b as DATA_ATTRIBUTES,
|
|
11
|
-
|
|
11
|
+
e as UNSUBSCRIBE_BLOCK_SELECTOR,
|
|
12
12
|
s as UNSUBSCRIBE_EVENTS,
|
|
13
|
-
|
|
13
|
+
c as UNSUBSCRIBE_LINK_SELECTOR,
|
|
14
|
+
E as UNSUBSCRIBE_MERGE_TAG_REGEX
|
|
14
15
|
};
|
package/dist/guido.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@charset "UTF-8";.auth-error-modal[data-v-b4d7ae51]{position:relative;z-index:145}.gap-16[data-v-5553d071],.gap-16[data-v-0e1b0c54]{gap:16px}[data-v-9d988e4b] .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}.color-vision-select__dropdown[data-v-64cb50da]{z-index:20;width:387px}.accessibility-toolbar[data-v-391019bc]{gap:16px}.accessibility-toolbar[data-v-391019bc] .in-segments-wrapper__button svg{margin-right:0}.accessibility-toolbar[data-v-391019bc] .in-segments-wrapper__button .clearfix:after{content:none}.view-options-wrapper[data-v-87033101]{position:relative;display:inline-block}.new-tag[data-v-87033101]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-87033101] .guido__view-option-selection-desktop svg,[data-v-87033101] .guido__view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-87033101] .in-segments-wrapper__button_selected,[data-v-87033101] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-87033101] .in-tooltip-wrapper-v2__icon{cursor:pointer}.editor-toolbar[data-v-173c3a40]{gap:4px}.version-history-item[data-v-ee4b9c3f]{flex-basis:200px}.version-history[data-v-fad98586]{gap:8px}.version-history__toolbar[data-v-fad98586]{gap:4px}.view-options-wrapper[data-v-6ebabfe4]{position:relative;display:inline-block}.new-tag[data-v-6ebabfe4]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-6ebabfe4] .guido__verion-history-view-option-selection-desktop svg,[data-v-6ebabfe4] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-6ebabfe4] .in-segments-wrapper__button_selected,[data-v-6ebabfe4] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-6ebabfe4] .in-tooltip-wrapper-v2__icon{cursor:pointer}.editor-actions-menu__dropdown[data-v-bdb3b37a]{z-index:20;width:222px}.editor-actions[data-v-9a028d08]{gap:16px}.editor-actions__divider[data-v-9a028d08]{width:1px;height:40px;background-color:#e1e1e1}.right-slot[data-v-77451c9a]{gap:16px}.header-wrapper[data-v-3c713746]{min-width:1000px}.guido-loading__wrapper[data-v-07c4b2d8]{height:100%;top:75px!important;bottom:0!important}.validation-error-list[data-v-e48cebe9]{gap:16px}.validation-error-row[data-v-e48cebe9]{gap:8px;padding:24px;border:1px solid #E1E1E1;border-radius:8px}.validation-error-row__icon[data-v-e48cebe9]{flex-shrink:0;font-size:24px;line-height:0}.validation-error-row__text[data-v-e48cebe9]{font-size:13px;line-height:16px;color:#292929;word-break:break-word}.guido-editor__wrapper[data-v-8fc59697]{--ribbon-offset: 0px;position:relative;width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__container[data-v-8fc59697]{width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__no-header[data-v-8fc59697]{height:calc(100vh - 75px - var(--ribbon-offset))}[data-v-293f1c47] .in-breadcrumb-wrapper__links{cursor:pointer}.templates-wrapper[data-v-eaf8e461]{gap:16px;grid-template-columns:repeat(3,1fr)}.templates-wrapper .template-wrapper[data-v-eaf8e461]{cursor:pointer}.templates-wrapper .template-wrapper .template-container[data-v-eaf8e461]{height:274px;padding:2px;transition:none}.templates-wrapper .template-wrapper .template-container.selected[data-v-eaf8e461]{padding:1px}.templates-wrapper .template-wrapper .template-container .thumbnail[data-v-eaf8e461]{object-fit:cover;transform:scale(1)}[data-v-b9a93c6e] .guido__verion-history-view-option-selection-desktop svg,[data-v-b9a93c6e] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-b9a93c6e] .in-segments-wrapper__button_selected,[data-v-b9a93c6e] .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-cf946232]{min-width:602px;height:70vh;min-height:583px;border-radius:10px}.desktop-preview iframe[data-v-cf946232]{min-height:504px}.iframe-wrapper[data-v-f255b2bb]{width:258px}.iframe-scaled[data-v-f255b2bb]{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-6bcaca8a] .vueperslides__parallax-wrapper{padding-bottom:110px!important}.guido-tab-bar-onboarding[data-v-219b4f7c]{z-index:21}[data-v-fcba7e99] .vueperslides__bullets{pointer-events:none!important}[data-v-fcba7e99] .vueperslides__parallax-wrapper{padding-bottom:110px!important}[data-v-1a34025a] .vueperslides__bullets{pointer-events:none!important}[data-v-1a34025a] .vueperslides__parallax-wrapper{height:110px!important;padding-bottom:110px!important}[data-v-8fc96a58] .vueperslides__bullets,[data-v-ec2027ff] .vueperslides__bullets,[data-v-b09e80c4] .vueperslides__bullets{pointer-events:none!important}[data-v-b09e80c4] .vueperslides__parallax-wrapper{height:110px!important;padding-bottom:110px!important}[data-v-9bdef600] .vueperslides__parallax-wrapper{padding-bottom:110px!important}.assign-strategy-drawer .spaced-dot-sep{background-image:linear-gradient(90deg,#91949f 20%,#fff0 0);background-position:center bottom;background-repeat:repeat-x;background-size:5px 1px}.assign-strategy-drawer .spaced-dot-sep--top{background-position:center top}.assign-strategy-drawer .spaced-dot-sep--fc-n:first-child{background:none}.guido-display-condition-create__separator[data-v-929822bc]{height:1px;margin:0 0 24px;background-image:linear-gradient(to right,currentColor 1px,transparent 1px);background-size:5px 1px}.guido-display-condition-create__methods[data-v-929822bc]{gap:16px}.guido-display-condition-select-root[data-v-0d740001] .in-drawer__footer{justify-content:flex-start}.guido-display-condition-select__delete-modal[data-v-0d740001]{position:relative;z-index:145}.guido-display-condition-select__delete-modal[data-v-0d740001] .in-modal-v2-wrapper__header-title{margin-bottom:0}.guido-display-condition-select-root[data-v-0d740001] .in-drawer__content>div{display:flex;flex-direction:column;min-height:100%}.guido-display-condition-select__list[data-v-0d740001]{display:flex;flex-direction:column;gap:24px;margin:0;padding:0;list-style:none}.guido-display-condition-card__header[data-v-0d740001]{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px}.guido-display-condition-card__text[data-v-0d740001]{min-width:0}.guido-display-condition-card__name[data-v-0d740001],.guido-display-condition-card__description[data-v-0d740001]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.guido-display-condition-card__actions[data-v-0d740001]{display:flex;flex-shrink:0;align-items:center;gap:16px}.guido-display-condition-card__split[data-v-0d740001]{position:relative;display:flex;gap:1px}.guido-display-condition-card__menu[data-v-0d740001]{z-index:2;min-width:115px}.guido-display-condition-card__divider[data-v-0d740001]{width:1px;height:24px}.guido-display-condition-card__code[data-v-0d740001]{margin:1px 15px 15px;padding:8px;font-family:inherit;white-space:pre-wrap;word-break:break-word}.legacy-strategy-updated-modal[data-v-da2225a1]{position:relative;z-index:145}
|
|
1
|
+
@charset "UTF-8";.auth-error-modal[data-v-b4d7ae51]{position:relative;z-index:145}.gap-16[data-v-5553d071],.gap-16[data-v-0e1b0c54]{gap:16px}[data-v-9d988e4b] .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}.color-vision-select__dropdown[data-v-64cb50da]{z-index:20;width:387px}.accessibility-toolbar[data-v-391019bc]{gap:16px}.accessibility-toolbar[data-v-391019bc] .in-segments-wrapper__button svg{margin-right:0}.accessibility-toolbar[data-v-391019bc] .in-segments-wrapper__button .clearfix:after{content:none}.view-options-wrapper[data-v-87033101]{position:relative;display:inline-block}.new-tag[data-v-87033101]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-87033101] .guido__view-option-selection-desktop svg,[data-v-87033101] .guido__view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-87033101] .in-segments-wrapper__button_selected,[data-v-87033101] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-87033101] .in-tooltip-wrapper-v2__icon{cursor:pointer}.editor-toolbar[data-v-173c3a40]{gap:4px}.version-history-item[data-v-ee4b9c3f]{flex-basis:200px}.version-history[data-v-fad98586]{gap:8px}.version-history__toolbar[data-v-fad98586]{gap:4px}.view-options-wrapper[data-v-6ebabfe4]{position:relative;display:inline-block}.new-tag[data-v-6ebabfe4]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-6ebabfe4] .guido__verion-history-view-option-selection-desktop svg,[data-v-6ebabfe4] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-6ebabfe4] .in-segments-wrapper__button_selected,[data-v-6ebabfe4] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-6ebabfe4] .in-tooltip-wrapper-v2__icon{cursor:pointer}.editor-actions-menu__dropdown[data-v-bdb3b37a]{z-index:20;width:222px}.editor-actions[data-v-9a028d08]{gap:16px}.editor-actions__divider[data-v-9a028d08]{width:1px;height:40px;background-color:#e1e1e1}.right-slot[data-v-77451c9a]{gap:16px}.header-wrapper[data-v-3c713746]{min-width:1000px}.guido-loading__wrapper[data-v-07c4b2d8]{height:100%;top:75px!important;bottom:0!important}.validation-error-list[data-v-e48cebe9]{gap:16px}.validation-error-row[data-v-e48cebe9]{gap:8px;padding:24px;border:1px solid #E1E1E1;border-radius:8px}.validation-error-row__icon[data-v-e48cebe9]{flex-shrink:0;font-size:24px;line-height:0}.validation-error-row__text[data-v-e48cebe9]{font-size:13px;line-height:16px;color:#292929;word-break:break-word}.guido-editor__wrapper[data-v-8fc59697]{--ribbon-offset: 0px;position:relative;width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__container[data-v-8fc59697]{width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__no-header[data-v-8fc59697]{height:calc(100vh - 75px - var(--ribbon-offset))}[data-v-293f1c47] .in-breadcrumb-wrapper__links{cursor:pointer}.templates-wrapper[data-v-eaf8e461]{gap:16px;grid-template-columns:repeat(3,1fr)}.templates-wrapper .template-wrapper[data-v-eaf8e461]{cursor:pointer}.templates-wrapper .template-wrapper .template-container[data-v-eaf8e461]{height:274px;padding:2px;transition:none}.templates-wrapper .template-wrapper .template-container.selected[data-v-eaf8e461]{padding:1px}.templates-wrapper .template-wrapper .template-container .thumbnail[data-v-eaf8e461]{object-fit:cover;transform:scale(1)}[data-v-b9a93c6e] .guido__verion-history-view-option-selection-desktop svg,[data-v-b9a93c6e] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-b9a93c6e] .in-segments-wrapper__button_selected,[data-v-b9a93c6e] .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-cf946232]{min-width:602px;height:70vh;min-height:583px;border-radius:10px}.desktop-preview iframe[data-v-cf946232]{min-height:504px}.iframe-wrapper[data-v-f255b2bb]{width:258px}.iframe-scaled[data-v-f255b2bb]{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-6bcaca8a] .vueperslides__parallax-wrapper{padding-bottom:110px!important}.guido-tab-bar-onboarding[data-v-219b4f7c]{z-index:21}[data-v-fcba7e99] .vueperslides__bullets{pointer-events:none!important}[data-v-fcba7e99] .vueperslides__parallax-wrapper{padding-bottom:110px!important}[data-v-1a34025a] .vueperslides__bullets{pointer-events:none!important}[data-v-1a34025a] .vueperslides__parallax-wrapper{height:110px!important;padding-bottom:110px!important}[data-v-8fc96a58] .vueperslides__bullets,[data-v-ec2027ff] .vueperslides__bullets,[data-v-b09e80c4] .vueperslides__bullets{pointer-events:none!important}[data-v-b09e80c4] .vueperslides__parallax-wrapper{height:110px!important;padding-bottom:110px!important}[data-v-9bdef600] .vueperslides__parallax-wrapper{padding-bottom:110px!important}.assign-strategy-drawer-content .assign-strategy-select[data-v-6ce48dfd]{width:100%;max-width:none}.assign-strategy-drawer-content .assign-strategy-select[data-v-6ce48dfd] .in-skeleton{width:100%!important}.assign-strategy-drawer-content .assign-strategy-select[data-v-6ce48dfd] .in-dropdown-box__container{width:413px}.assign-strategy-drawer .spaced-dot-sep{background-image:linear-gradient(90deg,#91949f 20%,#fff0 0);background-position:center bottom;background-repeat:repeat-x;background-size:5px 1px}.assign-strategy-drawer .spaced-dot-sep--top{background-position:center top}.assign-strategy-drawer .spaced-dot-sep--fc-n:first-child{background:none}.guido-display-condition-create__separator[data-v-929822bc]{height:1px;margin:0 0 24px;background-image:linear-gradient(to right,currentColor 1px,transparent 1px);background-size:5px 1px}.guido-display-condition-create__methods[data-v-929822bc]{gap:16px}.guido-display-condition-select-root[data-v-0d740001] .in-drawer__footer{justify-content:flex-start}.guido-display-condition-select__delete-modal[data-v-0d740001]{position:relative;z-index:145}.guido-display-condition-select__delete-modal[data-v-0d740001] .in-modal-v2-wrapper__header-title{margin-bottom:0}.guido-display-condition-select-root[data-v-0d740001] .in-drawer__content>div{display:flex;flex-direction:column;min-height:100%}.guido-display-condition-select__list[data-v-0d740001]{display:flex;flex-direction:column;gap:24px;margin:0;padding:0;list-style:none}.guido-display-condition-card__header[data-v-0d740001]{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px}.guido-display-condition-card__text[data-v-0d740001]{min-width:0}.guido-display-condition-card__name[data-v-0d740001],.guido-display-condition-card__description[data-v-0d740001]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.guido-display-condition-card__actions[data-v-0d740001]{display:flex;flex-shrink:0;align-items:center;gap:16px}.guido-display-condition-card__split[data-v-0d740001]{position:relative;display:flex;gap:1px}.guido-display-condition-card__menu[data-v-0d740001]{z-index:2;min-width:115px}.guido-display-condition-card__divider[data-v-0d740001]{width:1px;height:24px}.guido-display-condition-card__code[data-v-0d740001]{margin:1px 15px 15px;padding:8px;font-family:inherit;white-space:pre-wrap;word-break:break-word}.legacy-strategy-updated-modal[data-v-da2225a1]{position:relative;z-index:145}
|
package/dist/package.json.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
const o = "3.27.0-beta.
|
|
1
|
+
const o = "3.27.0-beta.a068207", s = { stripo: { version: "2.83.1" } }, t = {
|
|
2
2
|
version: o,
|
|
3
3
|
guido: s
|
|
4
4
|
};
|
|
5
5
|
export {
|
|
6
|
-
|
|
6
|
+
t as default,
|
|
7
7
|
s as guido,
|
|
8
8
|
o as version
|
|
9
9
|
};
|
|
@@ -9,4 +9,5 @@ export declare const DATA_ATTRIBUTES: {
|
|
|
9
9
|
readonly BLOCK_ID: "data-unsubscribe-block-id";
|
|
10
10
|
};
|
|
11
11
|
export declare const UNSUBSCRIBE_BLOCK_SELECTOR = ".unsubscribe-block-v2";
|
|
12
|
+
export declare const UNSUBSCRIBE_MERGE_TAG_REGEX: RegExp;
|
|
12
13
|
export declare const UNSUBSCRIBE_LINK_SELECTOR = "a[data-unsubscribe-link=\"true\"], a.unsubscribe-link";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const swapMergeTagInHref: (href: string, mergeTag: string) => string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@useinsider/guido",
|
|
3
|
-
"version": "3.27.0-beta.
|
|
3
|
+
"version": "3.27.0-beta.a068207",
|
|
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",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"license": "ISC",
|
|
61
61
|
"dependencies": {
|
|
62
62
|
"@stripoinc/ui-editor-extensions": "3.11.0",
|
|
63
|
-
"@useinsider/design-system-organisms": "0.
|
|
63
|
+
"@useinsider/design-system-organisms": "0.0.3-beta.d816f06",
|
|
64
64
|
"@useinsider/design-system-vue": "2.5.0",
|
|
65
65
|
"@vueuse/core": "11.3.0",
|
|
66
66
|
"lodash-es": "4.17.21",
|