@templatical/editor 0.26.0 → 0.26.1
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/{AiChatSidebar-c-3yyjN1.js → AiChatSidebar-B_fwa6zc.js} +1 -1
- package/dist/{AiFeatureMenu-B-COyG7k.js → AiFeatureMenu-BBBKsYD4.js} +1 -1
- package/dist/{BlockPreviewCanvas-CJPHGI93.js → BlockPreviewCanvas-zyyq2de0.js} +1 -1
- package/dist/{CloudEditor-BdSQ8hfv.js → CloudEditor-DM3RRCVn.js} +8 -8
- package/dist/{CollaboratorBar-mGoi6yye.js → CollaboratorBar-Coj8Ebwf.js} +1 -1
- package/dist/{DesignReferenceSidebar-CgYkySre.js → DesignReferenceSidebar-hDXOvGoV.js} +1 -1
- package/dist/{MergeTagModeToggle-hAJgIKhw.js → MergeTagModeToggle-D0t5NHBZ.js} +1 -1
- package/dist/{ParagraphEditor-DBG63S70.js → ParagraphEditor-B-CYrQMY.js} +2 -2
- package/dist/{SaveBlockDialog-Dq9UVihi.js → SaveBlockDialog-CoVPZfUv.js} +3 -3
- package/dist/{SavedBlocksBrowserModal-CtFG4zeV.js → SavedBlocksBrowserModal-DX13xw0O.js} +4 -4
- package/dist/{SavedBlocksPanels-DNVdso_W.js → SavedBlocksPanels-B7pBiZcc.js} +1 -1
- package/dist/{SavedBlocksPickBar-Cv4dIpP-.js → SavedBlocksPickBar-ZfqXByph.js} +1 -1
- package/dist/{SnapshotHistory-DsOtMHOV.js → SnapshotHistory-BxABntv5.js} +1 -1
- package/dist/{TestEmailModal-CIwqtGfr.js → TestEmailModal-Db4qheuy.js} +5 -5
- package/dist/{TestEmailPanel-l6LDmBGM.js → TestEmailPanel-B-SXSnRg.js} +1 -1
- package/dist/{TitleEditor-imoBUynh.js → TitleEditor-DmoaKooA.js} +2 -2
- package/dist/{TplModal-DDDHcoir.js → TplModal-Bym-Kf_i.js} +1 -1
- package/dist/{blockTypeIcons-CfLN4A6t.js → blockTypeIcons-BnCXsB2I.js} +1 -1
- package/dist/bundle-stats.json +5 -5
- package/dist/cdn/chunks/{AiChatSidebar-BHqNxNcX.js → AiChatSidebar-CFvS4-EZ.js} +2 -2
- package/dist/cdn/chunks/{AiChatSidebar-BHqNxNcX.js.map → AiChatSidebar-CFvS4-EZ.js.map} +1 -1
- package/dist/cdn/chunks/{AiFeatureMenu-D2AIDwEG.js → AiFeatureMenu-a0gBZiJ9.js} +2 -2
- package/dist/cdn/chunks/{AiFeatureMenu-D2AIDwEG.js.map → AiFeatureMenu-a0gBZiJ9.js.map} +1 -1
- package/dist/cdn/chunks/{BlockPreviewCanvas-DH5ULGkw.js → BlockPreviewCanvas-C27XK2q0.js} +2 -2
- package/dist/cdn/chunks/{BlockPreviewCanvas-DH5ULGkw.js.map → BlockPreviewCanvas-C27XK2q0.js.map} +1 -1
- package/dist/cdn/chunks/{CloudEditor-C0nB1JfD.js → CloudEditor-Ddnatfuw.js} +11 -11
- package/dist/cdn/chunks/{CloudEditor-C0nB1JfD.js.map → CloudEditor-Ddnatfuw.js.map} +1 -1
- package/dist/cdn/chunks/{CollaboratorBar-f6Ni7KNH.js → CollaboratorBar-C5Xf6Mz9.js} +2 -2
- package/dist/cdn/chunks/{CollaboratorBar-f6Ni7KNH.js.map → CollaboratorBar-C5Xf6Mz9.js.map} +1 -1
- package/dist/cdn/chunks/{DesignReferenceSidebar-DBoEBKxQ.js → DesignReferenceSidebar-CZiP00JN.js} +2 -2
- package/dist/cdn/chunks/{DesignReferenceSidebar-DBoEBKxQ.js.map → DesignReferenceSidebar-CZiP00JN.js.map} +1 -1
- package/dist/cdn/chunks/{MergeTagModeToggle-D8iKvz7v.js → MergeTagModeToggle-ClGdRNpZ.js} +2 -2
- package/dist/cdn/chunks/{MergeTagModeToggle-D8iKvz7v.js.map → MergeTagModeToggle-ClGdRNpZ.js.map} +1 -1
- package/dist/cdn/chunks/{ParagraphEditor-Cuc83Blj.js → ParagraphEditor-BNc146Pp.js} +3 -3
- package/dist/cdn/chunks/{ParagraphEditor-Cuc83Blj.js.map → ParagraphEditor-BNc146Pp.js.map} +1 -1
- package/dist/cdn/chunks/{SaveBlockDialog-B8KHhVkI.js → SaveBlockDialog-ogieDQp7.js} +4 -4
- package/dist/cdn/chunks/{SaveBlockDialog-B8KHhVkI.js.map → SaveBlockDialog-ogieDQp7.js.map} +1 -1
- package/dist/cdn/chunks/{SavedBlocksBrowserModal-B-sjsIJv.js → SavedBlocksBrowserModal-DSpZcT_T.js} +4 -4
- package/dist/cdn/chunks/{SavedBlocksBrowserModal-B-sjsIJv.js.map → SavedBlocksBrowserModal-DSpZcT_T.js.map} +1 -1
- package/dist/cdn/chunks/{SavedBlocksPanels-Bb-eDMAh.js → SavedBlocksPanels-WYrSyf-l.js} +2 -2
- package/dist/cdn/chunks/{SavedBlocksPanels-Bb-eDMAh.js.map → SavedBlocksPanels-WYrSyf-l.js.map} +1 -1
- package/dist/cdn/chunks/{SavedBlocksPickBar-GudFfXa4.js → SavedBlocksPickBar-DGbLBG5P.js} +2 -2
- package/dist/cdn/chunks/{SavedBlocksPickBar-GudFfXa4.js.map → SavedBlocksPickBar-DGbLBG5P.js.map} +1 -1
- package/dist/cdn/chunks/{SnapshotHistory-Srpzt2na.js → SnapshotHistory-VyL4tJwn.js} +2 -2
- package/dist/cdn/chunks/{SnapshotHistory-Srpzt2na.js.map → SnapshotHistory-VyL4tJwn.js.map} +1 -1
- package/dist/cdn/chunks/{TestEmailModal-DLeoJqaJ.js → TestEmailModal-DRte11oT.js} +6 -6
- package/dist/cdn/chunks/{TestEmailModal-DLeoJqaJ.js.map → TestEmailModal-DRte11oT.js.map} +1 -1
- package/dist/cdn/chunks/{TestEmailPanel-Dr7Dkq2P.js → TestEmailPanel-CpK5t4E3.js} +2 -2
- package/dist/cdn/chunks/{TestEmailPanel-Dr7Dkq2P.js.map → TestEmailPanel-CpK5t4E3.js.map} +1 -1
- package/dist/cdn/chunks/{TitleEditor-DzYRr18C.js → TitleEditor-EkDchueW.js} +3 -3
- package/dist/cdn/chunks/{TitleEditor-DzYRr18C.js.map → TitleEditor-EkDchueW.js.map} +1 -1
- package/dist/cdn/chunks/{TplModal-byw7-3wg.js → TplModal-BGLstO3F.js} +2 -2
- package/dist/cdn/chunks/{TplModal-byw7-3wg.js.map → TplModal-BGLstO3F.js.map} +1 -1
- package/dist/cdn/chunks/{cloud-CuItCnN_.js → cloud-CNpvDuv7.js} +2 -2
- package/dist/cdn/chunks/{cloud-CuItCnN_.js.map → cloud-CNpvDuv7.js.map} +1 -1
- package/dist/cdn/chunks/{extensions-B7laxHjs.js → extensions-CZAB08kD.js} +3 -3
- package/dist/cdn/chunks/{extensions-B7laxHjs.js.map → extensions-CZAB08kD.js.map} +1 -1
- package/dist/cdn/chunks/{src-C0N74uvF.js → src-BRRRFqXr.js} +2 -2
- package/dist/cdn/chunks/{src-C0N74uvF.js.map → src-BRRRFqXr.js.map} +1 -1
- package/dist/cdn/chunks/{src-BYKYmEOD.js → src-COnW7gMq.js} +120 -121
- package/dist/cdn/chunks/src-COnW7gMq.js.map +1 -0
- package/dist/cdn/chunks/{src-EKTTBQ0y.js → src-DsvVSm7Z.js} +219 -165
- package/dist/cdn/chunks/src-DsvVSm7Z.js.map +1 -0
- package/dist/cdn/chunks/{src-Bi-Qhtfs.js → src-DzH5U9Vm.js} +79 -79
- package/dist/cdn/chunks/{src-Bi-Qhtfs.js.map → src-DzH5U9Vm.js.map} +1 -1
- package/dist/cdn/chunks/{styles-C7s-VtJi.js → styles-DEU_sn3k.js} +452 -452
- package/dist/cdn/chunks/{styles-C7s-VtJi.js.map → styles-DEU_sn3k.js.map} +1 -1
- package/dist/cdn/chunks/{useEditorCore-C_nUXiph.js → useEditorCore-fyFmWS3D.js} +36 -36
- package/dist/cdn/chunks/{useEditorCore-C_nUXiph.js.map → useEditorCore-fyFmWS3D.js.map} +1 -1
- package/dist/cdn/chunks/{useMergeTag-CPa_9VOq.js → useMergeTag-DjQoCGEz.js} +2 -2
- package/dist/cdn/chunks/{useMergeTag-CPa_9VOq.js.map → useMergeTag-DjQoCGEz.js.map} +1 -1
- package/dist/cdn/editor.js +7 -7
- package/dist/{cloud-C7-FhzMc.js → cloud-4SuOLNTK.js} +1 -1
- package/dist/{dist-D5zCZFdU.js → dist-BvYvG5SQ.js} +108 -56
- package/dist/{extensions-CxwhoG8v.js → extensions-Dz5jj0wf.js} +2 -2
- package/dist/{styles-C_slTGwp.js → styles-DbP2S8Z1.js} +6 -6
- package/dist/templatical-editor.js +7 -7
- package/dist/{useEditorCore-r4gWzCBA.js → useEditorCore-CbcmGpwp.js} +4 -4
- package/dist/{useMergeTag-C-_WxrgL.js → useMergeTag-B9xG9EJ7.js} +1 -1
- package/package.json +8 -8
- package/dist/cdn/chunks/src-BYKYmEOD.js.map +0 -1
- package/dist/cdn/chunks/src-EKTTBQ0y.js.map +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { $ as e,
|
|
1
|
+
import { $ as e, G as t, H as n, J as r, K as i, Q as a, U as o, V as s, W as c, X as l, Y as u, Z as d, q as f, tt as p, v as m, y as h } from "./src-DsvVSm7Z.js";
|
|
2
2
|
//#endregion
|
|
3
3
|
//#region ../renderer/src/render-context.ts
|
|
4
|
-
var
|
|
4
|
+
var g = `https://cdn.jsdelivr.net/npm/@templatical/renderer@${{
|
|
5
5
|
name: "@templatical/renderer",
|
|
6
6
|
description: "Render Templatical email templates to MJML",
|
|
7
|
-
version: "0.26.
|
|
7
|
+
version: "0.26.1",
|
|
8
8
|
bugs: "https://github.com/templatical/sdk/issues",
|
|
9
9
|
dependencies: { "@templatical/types": "workspace:*" },
|
|
10
10
|
devDependencies: {
|
|
@@ -42,7 +42,7 @@ var m = `https://cdn.jsdelivr.net/npm/@templatical/renderer@${{
|
|
|
42
42
|
},
|
|
43
43
|
type: "module",
|
|
44
44
|
types: "./dist/index.d.ts"
|
|
45
|
-
}.version}/assets/social`,
|
|
45
|
+
}.version}/assets/social`, _ = {
|
|
46
46
|
arial: "Arial, sans-serif",
|
|
47
47
|
helvetica: "Helvetica, sans-serif",
|
|
48
48
|
georgia: "Georgia, serif",
|
|
@@ -51,14 +51,14 @@ var m = `https://cdn.jsdelivr.net/npm/@templatical/renderer@${{
|
|
|
51
51
|
"trebuchet ms": "'Trebuchet MS', sans-serif",
|
|
52
52
|
"courier new": "'Courier New', monospace",
|
|
53
53
|
tahoma: "Tahoma, sans-serif"
|
|
54
|
-
},
|
|
54
|
+
}, v = class e {
|
|
55
55
|
containerWidth;
|
|
56
56
|
customFonts;
|
|
57
57
|
defaultFallbackFont;
|
|
58
58
|
allowHtmlBlocks;
|
|
59
59
|
customBlockHtml;
|
|
60
60
|
socialIconsBaseUrl;
|
|
61
|
-
constructor(e, t, n, r, i = /* @__PURE__ */ new Map(), a =
|
|
61
|
+
constructor(e, t, n, r, i = /* @__PURE__ */ new Map(), a = g) {
|
|
62
62
|
this.containerWidth = e, this.customFonts = t, this.defaultFallbackFont = n, this.allowHtmlBlocks = r, this.customBlockHtml = i, this.socialIconsBaseUrl = a;
|
|
63
63
|
}
|
|
64
64
|
withContainerWidth(t) {
|
|
@@ -69,28 +69,28 @@ var m = `https://cdn.jsdelivr.net/npm/@templatical/renderer@${{
|
|
|
69
69
|
let e = t.fallback ?? this.defaultFallbackFont;
|
|
70
70
|
return `'${t.name}', ${e}`;
|
|
71
71
|
}
|
|
72
|
-
return
|
|
72
|
+
return _[e.toLowerCase()] || e;
|
|
73
73
|
}
|
|
74
|
-
},
|
|
74
|
+
}, y = {
|
|
75
75
|
"&": "&",
|
|
76
76
|
"<": "<",
|
|
77
77
|
">": ">",
|
|
78
78
|
"\"": """,
|
|
79
79
|
"'": "'"
|
|
80
|
-
},
|
|
81
|
-
function y(e) {
|
|
82
|
-
return e === "" ? "" : e.replace(v, (e) => _[e] ?? e);
|
|
83
|
-
}
|
|
84
|
-
function b(e) {
|
|
85
|
-
return e === "" ? "" : e.replace(v, (e) => _[e] ?? e);
|
|
86
|
-
}
|
|
80
|
+
}, b = /[&<>"']/g;
|
|
87
81
|
function x(e) {
|
|
88
|
-
return e === "" ? "" : b(e)
|
|
82
|
+
return e === "" ? "" : e.replace(b, (e) => y[e] ?? e);
|
|
89
83
|
}
|
|
90
84
|
function S(e) {
|
|
91
|
-
return e === "" ? "" :
|
|
85
|
+
return e === "" ? "" : e.replace(b, (e) => y[e] ?? e);
|
|
86
|
+
}
|
|
87
|
+
function C(e) {
|
|
88
|
+
return e === "" ? "" : S(e).replace(/[;{}\r\n]/g, "");
|
|
89
|
+
}
|
|
90
|
+
function w(e) {
|
|
91
|
+
return e === "" ? "" : T(e, (e) => E(e, "data-merge-tag") ?? E(e, "data-logic-merge-tag"));
|
|
92
92
|
}
|
|
93
|
-
function
|
|
93
|
+
function T(e, t) {
|
|
94
94
|
let n = "", r = 0;
|
|
95
95
|
for (; r < e.length;) {
|
|
96
96
|
let i = e.indexOf("<span", r);
|
|
@@ -103,7 +103,7 @@ function C(e, t) {
|
|
|
103
103
|
n += e.substring(r, i + 5), r = i + 5;
|
|
104
104
|
continue;
|
|
105
105
|
}
|
|
106
|
-
let o = e
|
|
106
|
+
let o = m(e, i + 5);
|
|
107
107
|
if (o === -1) {
|
|
108
108
|
n += e.substring(r);
|
|
109
109
|
break;
|
|
@@ -122,31 +122,30 @@ function C(e, t) {
|
|
|
122
122
|
}
|
|
123
123
|
return n;
|
|
124
124
|
}
|
|
125
|
-
function
|
|
126
|
-
|
|
127
|
-
return n ? n[1] : null;
|
|
125
|
+
function E(e, t) {
|
|
126
|
+
return h(e, t);
|
|
128
127
|
}
|
|
129
128
|
//#endregion
|
|
130
129
|
//#region ../renderer/src/padding.ts
|
|
131
|
-
function
|
|
130
|
+
function D(e) {
|
|
132
131
|
return `${e.top}px ${e.right}px ${e.bottom}px ${e.left}px`;
|
|
133
132
|
}
|
|
134
133
|
//#endregion
|
|
135
134
|
//#region ../renderer/src/utils.ts
|
|
136
|
-
function
|
|
135
|
+
function O(e, t) {
|
|
137
136
|
return e ? ` ${t === "native" ? "background-color" : "container-background-color"}="${e}"` : "";
|
|
138
137
|
}
|
|
139
138
|
//#endregion
|
|
140
139
|
//#region ../renderer/src/visibility.ts
|
|
141
|
-
function
|
|
140
|
+
function k(e) {
|
|
142
141
|
let t = e.visibility;
|
|
143
142
|
return t ? !t.desktop && !t.mobile : !1;
|
|
144
143
|
}
|
|
145
|
-
function
|
|
146
|
-
let t =
|
|
144
|
+
function A(e) {
|
|
145
|
+
let t = j(e);
|
|
147
146
|
return t === "" ? "" : ` css-class="${t}"`;
|
|
148
147
|
}
|
|
149
|
-
function
|
|
148
|
+
function j(e) {
|
|
150
149
|
let t = e.visibility;
|
|
151
150
|
if (!t) return "";
|
|
152
151
|
let n = [];
|
|
@@ -154,43 +153,43 @@ function k(e) {
|
|
|
154
153
|
}
|
|
155
154
|
//#endregion
|
|
156
155
|
//#region ../renderer/src/renderers/title.ts
|
|
157
|
-
function
|
|
158
|
-
if (
|
|
159
|
-
let
|
|
156
|
+
function ee(e, t) {
|
|
157
|
+
if (k(e)) return "";
|
|
158
|
+
let n = D(e.styles.padding), r = O(e.styles.backgroundColor, "container"), i = te(w(e.content)), a = p[e.level] ?? p[2], o = e.color ? `\n color="${S(e.color)}"` : "", s = e.textAlign, c = ne(e.fontFamily, t), l = A(e), u = `h${p[e.level] ? e.level : 2}`;
|
|
160
159
|
return `<mj-text
|
|
161
|
-
font-size="${
|
|
162
|
-
align="${
|
|
160
|
+
font-size="${a}px"${o}
|
|
161
|
+
align="${s}"
|
|
163
162
|
line-height="1.3"
|
|
164
|
-
padding="${
|
|
165
|
-
><${
|
|
163
|
+
padding="${n}"${r}${c}${l}
|
|
164
|
+
><${u} style="margin:0;font-size:inherit;color:inherit;line-height:inherit">${i}</${u}></mj-text>`;
|
|
166
165
|
}
|
|
167
|
-
function
|
|
166
|
+
function te(e) {
|
|
168
167
|
let t = e.match(/^\s*<p\b[^>]*>([\s\S]*)<\/p>\s*$/);
|
|
169
168
|
return !t || /<\/p>\s*<p\b/i.test(t[1]) ? e : t[1];
|
|
170
169
|
}
|
|
171
|
-
function
|
|
170
|
+
function ne(e, t) {
|
|
172
171
|
return e ? ` font-family="${t.resolveFontFamily(e)}"` : "";
|
|
173
172
|
}
|
|
174
173
|
//#endregion
|
|
175
174
|
//#region ../renderer/src/renderers/paragraph.ts
|
|
176
|
-
function
|
|
177
|
-
if (
|
|
178
|
-
let n =
|
|
175
|
+
function re(e, t) {
|
|
176
|
+
if (k(e) || e.content.replace(/<\/?p\b[^<>]*>/gi, "").trim() === "") return "";
|
|
177
|
+
let n = D(e.styles.padding), r = O(e.styles.backgroundColor, "container"), i = w(e.content);
|
|
179
178
|
return `<mj-text
|
|
180
179
|
line-height="1.5"
|
|
181
|
-
padding="${n}"${r}${
|
|
180
|
+
padding="${n}"${r}${A(e)}
|
|
182
181
|
>${i}</mj-text>`;
|
|
183
182
|
}
|
|
184
183
|
//#endregion
|
|
185
184
|
//#region ../renderer/src/renderers/image.ts
|
|
186
|
-
function
|
|
187
|
-
if (
|
|
188
|
-
let n =
|
|
189
|
-
e.linkUrl && (o = ` href="${
|
|
190
|
-
let s =
|
|
185
|
+
function ie(e, t) {
|
|
186
|
+
if (k(e) || e.src === "") return "";
|
|
187
|
+
let n = D(e.styles.padding), r = O(e.styles.backgroundColor, "container"), i = e.width === "full" ? t.containerWidth + "px" : e.width + "px", a = A(e), o = "";
|
|
188
|
+
e.linkUrl && (o = ` href="${S(e.linkUrl)}"`, e.linkOpenInNewTab && (o += " target=\"_blank\" rel=\"noopener\""));
|
|
189
|
+
let s = S(e.src), c = e.decorative === !0;
|
|
191
190
|
return `<mj-image
|
|
192
191
|
src="${s}"
|
|
193
|
-
alt="${c ? "" :
|
|
192
|
+
alt="${c ? "" : S(e.alt)}"
|
|
194
193
|
width="${i}"
|
|
195
194
|
align="${e.align}"
|
|
196
195
|
padding="${n}"${r}${o}${a}${c ? " role=\"presentation\"" : ""}
|
|
@@ -199,8 +198,8 @@ function ne(e, t) {
|
|
|
199
198
|
//#endregion
|
|
200
199
|
//#region ../renderer/src/renderers/button.ts
|
|
201
200
|
function M(e, t) {
|
|
202
|
-
if (
|
|
203
|
-
let n =
|
|
201
|
+
if (k(e)) return "";
|
|
202
|
+
let n = D(e.styles.padding), r = O(e.styles.backgroundColor, "container"), i = D(e.buttonPadding), a = e.url === "" ? "" : S(e.url), o = a === "" ? "" : ` href="${a}"`, s = S(e.backgroundColor), c = S(e.textColor), l = e.fontSize, u = e.borderRadius, d = x(e.text), f = e.openInNewTab ? " target=\"_blank\" rel=\"noopener\"" : "", p = N(e.fontFamily, t), m = P(e.width), h = A(e);
|
|
204
203
|
return `<mj-button${o}${f}
|
|
205
204
|
background-color="${s}"
|
|
206
205
|
color="${c}"
|
|
@@ -221,39 +220,39 @@ function P(e) {
|
|
|
221
220
|
//#endregion
|
|
222
221
|
//#region ../renderer/src/renderers/divider.ts
|
|
223
222
|
function F(e, t) {
|
|
224
|
-
if (
|
|
225
|
-
let n =
|
|
223
|
+
if (k(e)) return "";
|
|
224
|
+
let n = D(e.styles.padding), r = e.styles.backgroundColor ? ` container-background-color="${S(e.styles.backgroundColor)}"` : "", i = e.width === "full" ? "100%" : e.width + "px";
|
|
226
225
|
return `<mj-divider
|
|
227
226
|
border-width="${e.thickness}px"
|
|
228
227
|
border-style="${e.lineStyle}"
|
|
229
|
-
border-color="${
|
|
228
|
+
border-color="${S(e.color)}"
|
|
230
229
|
width="${i}"
|
|
231
|
-
padding="${n}"${r}${
|
|
230
|
+
padding="${n}"${r}${A(e)}
|
|
232
231
|
/>`;
|
|
233
232
|
}
|
|
234
233
|
//#endregion
|
|
235
234
|
//#region ../renderer/src/renderers/spacer.ts
|
|
236
235
|
function I(e, t) {
|
|
237
|
-
return
|
|
236
|
+
return k(e) ? "" : `<mj-spacer height="${e.height}px" padding="0"${e.styles.backgroundColor ? ` container-background-color="${S(e.styles.backgroundColor)}"` : ""}${A(e)} />`;
|
|
238
237
|
}
|
|
239
238
|
//#endregion
|
|
240
239
|
//#region ../renderer/src/renderers/html.ts
|
|
241
240
|
function L(e, t) {
|
|
242
|
-
if (
|
|
241
|
+
if (k(e) || !t.allowHtmlBlocks) return "";
|
|
243
242
|
let n = e.content;
|
|
244
243
|
if (n === "") return "";
|
|
245
|
-
let r =
|
|
246
|
-
return `<mj-text padding="${
|
|
244
|
+
let r = A(e);
|
|
245
|
+
return `<mj-text padding="${D(e.styles.padding)}"${O(e.styles.backgroundColor, "container")}${r}>
|
|
247
246
|
${n}
|
|
248
247
|
</mj-text>`;
|
|
249
248
|
}
|
|
250
249
|
//#endregion
|
|
251
250
|
//#region ../renderer/src/renderers/social.ts
|
|
252
251
|
function R(e, t) {
|
|
253
|
-
if (
|
|
252
|
+
if (k(e)) return "";
|
|
254
253
|
let n = e.icons;
|
|
255
254
|
if (n.length === 0) return "";
|
|
256
|
-
let r =
|
|
255
|
+
let r = D(e.styles.padding), i = e.styles.backgroundColor ? ` container-background-color="${S(e.styles.backgroundColor)}"` : "", a = A(e), o = e.align, s = e.iconSize, c = e.iconStyle, l = e.spacing, u;
|
|
257
256
|
switch (s) {
|
|
258
257
|
case "small":
|
|
259
258
|
u = 24;
|
|
@@ -284,7 +283,7 @@ function R(e, t) {
|
|
|
284
283
|
padding="${r}"${i}${a}
|
|
285
284
|
>
|
|
286
285
|
${n.map((e, n) => {
|
|
287
|
-
let r = e.platform, i =
|
|
286
|
+
let r = e.platform, i = S(e.url), a = `${t.socialIconsBaseUrl}/${c}/${r}.png`, o = n === f - 1 ? 0 : l;
|
|
288
287
|
return `<mj-social-element src="${a}" href="${i}" icon-size="${u}px" padding="0 ${o}px 0 0" border-radius="${d}" background-color="transparent"></mj-social-element>`;
|
|
289
288
|
}).join("\n")}
|
|
290
289
|
</mj-social>`;
|
|
@@ -292,23 +291,23 @@ ${n.map((e, n) => {
|
|
|
292
291
|
//#endregion
|
|
293
292
|
//#region ../renderer/src/renderers/menu.ts
|
|
294
293
|
function z(e, t) {
|
|
295
|
-
if (
|
|
296
|
-
let n =
|
|
294
|
+
if (k(e) || e.items.length === 0) return "";
|
|
295
|
+
let n = D(e.styles.padding), r = O(e.styles.backgroundColor, "container"), i = A(e), a = H(e.fontFamily, t), o = e.textAlign;
|
|
297
296
|
return `<mj-text
|
|
298
|
-
font-size="${e.fontSize}px"${e.color ? `\n color="${
|
|
297
|
+
font-size="${e.fontSize}px"${e.color ? `\n color="${S(e.color)}"` : ""}
|
|
299
298
|
align="${o}"
|
|
300
299
|
line-height="1.5"
|
|
301
300
|
padding="${n}"${r}${a}${i}
|
|
302
301
|
>${B(e)}</mj-text>`;
|
|
303
302
|
}
|
|
304
303
|
function B(e) {
|
|
305
|
-
let t = e.items, n =
|
|
304
|
+
let t = e.items, n = x(e.separator), r = C(e.separatorColor), i = e.spacing, a = e.linkColor ?? e.color, o = [], s = t.length;
|
|
306
305
|
for (let e = 0; e < s; e++) o.push(V(t[e], a)), e < s - 1 && o.push(`<span style="color: ${r}; padding: 0 ${i}px;">${n}</span>`);
|
|
307
306
|
return o.join("");
|
|
308
307
|
}
|
|
309
308
|
function V(e, t) {
|
|
310
|
-
let n =
|
|
311
|
-
return i && o.unshift(`color: ${
|
|
309
|
+
let n = x(e.text), r = S(e.url), i = e.color ?? t, a = e.openInNewTab ? " target=\"_blank\" rel=\"noopener\"" : "", o = ["text-decoration: none"];
|
|
310
|
+
return i && o.unshift(`color: ${C(i)}`), e.bold && o.push("font-weight: bold"), e.underline && o.push("text-decoration: underline"), `<a href="${r}" style="${o.join("; ")}"${a}>${n}</a>`;
|
|
312
311
|
}
|
|
313
312
|
function H(e, t) {
|
|
314
313
|
return e ? ` font-family="${t.resolveFontFamily(e)}"` : "";
|
|
@@ -316,17 +315,17 @@ function H(e, t) {
|
|
|
316
315
|
//#endregion
|
|
317
316
|
//#region ../renderer/src/renderers/table.ts
|
|
318
317
|
function U(e, t) {
|
|
319
|
-
if (
|
|
320
|
-
let n =
|
|
318
|
+
if (k(e) || e.rows.length === 0) return "";
|
|
319
|
+
let n = D(e.styles.padding), r = O(e.styles.backgroundColor, "container"), i = A(e), a = q(e.fontFamily, t);
|
|
321
320
|
return `<mj-text
|
|
322
|
-
font-size="${e.fontSize}px"${e.color ? `\n color="${
|
|
321
|
+
font-size="${e.fontSize}px"${e.color ? `\n color="${S(e.color)}"` : ""}
|
|
323
322
|
align="${e.textAlign}"
|
|
324
323
|
line-height="1.5"
|
|
325
324
|
padding="${n}"${r}${a}${i}
|
|
326
325
|
>${W(e)}</mj-text>`;
|
|
327
326
|
}
|
|
328
327
|
function W(e) {
|
|
329
|
-
let t =
|
|
328
|
+
let t = C(e.borderColor), n = e.borderWidth, r = "";
|
|
330
329
|
for (let i = 0; i < e.rows.length; i++) {
|
|
331
330
|
let a = e.rows[i];
|
|
332
331
|
r += G(a, e, e.hasHeaderRow && i === 0, t, n);
|
|
@@ -340,8 +339,8 @@ function G(e, t, n, r, i) {
|
|
|
340
339
|
}
|
|
341
340
|
function K(e, t, n, r, i) {
|
|
342
341
|
let a = t.cellPadding, o = [`border: ${i}px solid ${r}`, `padding: ${a}px`];
|
|
343
|
-
n && (o.push("font-weight: bold"), t.headerBackgroundColor && o.push(`background-color: ${
|
|
344
|
-
let s = o.join("; "), c =
|
|
342
|
+
n && (o.push("font-weight: bold"), t.headerBackgroundColor && o.push(`background-color: ${C(t.headerBackgroundColor)}`));
|
|
343
|
+
let s = o.join("; "), c = x(w(e.content)), l = n ? "th" : "td";
|
|
345
344
|
return `<${l} style="${s}">${c}</${l}>`;
|
|
346
345
|
}
|
|
347
346
|
function q(e, t) {
|
|
@@ -349,12 +348,12 @@ function q(e, t) {
|
|
|
349
348
|
}
|
|
350
349
|
//#endregion
|
|
351
350
|
//#region ../renderer/src/renderers/custom.ts
|
|
352
|
-
function
|
|
353
|
-
if (
|
|
351
|
+
function ae(e, t) {
|
|
352
|
+
if (k(e)) return "";
|
|
354
353
|
let n = t.customBlockHtml.get(e.id) ?? e.renderedHtml;
|
|
355
354
|
if (!n || n === "") return "";
|
|
356
|
-
let r =
|
|
357
|
-
return `<mj-text padding="${
|
|
355
|
+
let r = A(e);
|
|
356
|
+
return `<mj-text padding="${D(e.styles.padding)}"${O(e.styles.backgroundColor, "container")}${r}>
|
|
358
357
|
${n}
|
|
359
358
|
</mj-text>`;
|
|
360
359
|
}
|
|
@@ -397,11 +396,11 @@ function X(e, t) {
|
|
|
397
396
|
}
|
|
398
397
|
//#endregion
|
|
399
398
|
//#region ../renderer/src/renderers/section.ts
|
|
400
|
-
function
|
|
401
|
-
if (
|
|
402
|
-
let
|
|
399
|
+
function oe(e, t, n) {
|
|
400
|
+
if (k(e)) return "";
|
|
401
|
+
let i = e.columns, a = J(i), o = Y(i, t.containerWidth), s = D(e.styles.padding), c = O(e.styles.backgroundColor, "native"), l = A(e), u = e.borderRadius && e.borderRadius > 0 ? ` border-radius="${e.borderRadius}px"` : "", d = e.children, f = [];
|
|
403
402
|
for (let e = 0; e < d.length; e++) {
|
|
404
|
-
let
|
|
403
|
+
let i = d[e], s = a[e] ?? "100%", c = Math.floor(o[e] ?? t.containerWidth), l = se(i, t.allowHtmlBlocks).filter((e) => !r(e)), u = t.withContainerWidth(c), p = l.map((e) => X(e, n(e, u))).filter((e) => e !== "").join("\n");
|
|
405
404
|
f.push(`<mj-column width="${s}">
|
|
406
405
|
${p === "" ? "<mj-text> </mj-text>" : p}
|
|
407
406
|
</mj-column>`);
|
|
@@ -413,12 +412,12 @@ ${p}
|
|
|
413
412
|
</mj-group>` : p}
|
|
414
413
|
</mj-section>`;
|
|
415
414
|
}
|
|
416
|
-
function
|
|
415
|
+
function se(e, t) {
|
|
417
416
|
return t ? e : e.filter((e) => e.type !== "html");
|
|
418
417
|
}
|
|
419
418
|
//#endregion
|
|
420
419
|
//#region ../renderer/src/renderers/video.ts
|
|
421
|
-
function
|
|
420
|
+
function ce(e, t) {
|
|
422
421
|
if (t) return t;
|
|
423
422
|
if (!e) return null;
|
|
424
423
|
for (let t of [/(?:youtube\.com\/watch\?v=|youtu\.be\/|youtube\.com\/embed\/)([a-zA-Z0-9_-]{11})/, /youtube\.com\/shorts\/([a-zA-Z0-9_-]{11})/]) {
|
|
@@ -428,32 +427,32 @@ function oe(e, t) {
|
|
|
428
427
|
let n = e.match(/vimeo\.com\/(?:video\/)?(\d+)/);
|
|
429
428
|
return n ? `https://vumbnail.com/${n[1]}.jpg` : null;
|
|
430
429
|
}
|
|
431
|
-
function
|
|
432
|
-
if (
|
|
433
|
-
let n =
|
|
430
|
+
function le(e, t) {
|
|
431
|
+
if (k(e)) return "";
|
|
432
|
+
let n = ce(e.url, e.thumbnailUrl);
|
|
434
433
|
if (!n) return "";
|
|
435
|
-
let r =
|
|
434
|
+
let r = D(e.styles.padding), i = O(e.styles.backgroundColor, "container"), a = e.width === "full" ? t.containerWidth + "px" : e.width + "px", o = A(e);
|
|
436
435
|
return `<mj-image
|
|
437
|
-
src="${
|
|
438
|
-
alt="${
|
|
436
|
+
src="${S(n)}"
|
|
437
|
+
alt="${S(e.alt)}"
|
|
439
438
|
width="${a}"
|
|
440
439
|
align="${e.align}"
|
|
441
440
|
padding="${r}"
|
|
442
|
-
href="${
|
|
441
|
+
href="${S(e.url)}"
|
|
443
442
|
target="_blank"
|
|
444
443
|
rel="noopener"${i}${o}
|
|
445
444
|
/>`;
|
|
446
445
|
}
|
|
447
446
|
//#endregion
|
|
448
447
|
//#region ../renderer/src/renderers/index.ts
|
|
449
|
-
function Z(
|
|
450
|
-
return
|
|
448
|
+
function Z(p, m) {
|
|
449
|
+
return r(p) ? oe(p, m, Z) : a(p) ? ee(p, m) : f(p) ? re(p, m) : t(p) ? ie(p, m) : s(p) ? M(p, m) : o(p) ? F(p, m) : l(p) ? I(p, m) : c(p) ? L(p, m) : u(p) ? R(p, m) : i(p) ? z(p, m) : d(p) ? U(p, m) : e(p) ? le(p, m) : n(p) ? ae(p, m) : "";
|
|
451
450
|
}
|
|
452
451
|
//#endregion
|
|
453
452
|
//#region ../renderer/src/index.ts
|
|
454
|
-
async function
|
|
455
|
-
let n = t?.customFonts ?? [], r = t?.defaultFallbackFont ?? "Arial, sans-serif", i = t?.allowHtmlBlocks ?? !0, a =
|
|
456
|
-
return `<mjml lang="${
|
|
453
|
+
async function ue(e, t) {
|
|
454
|
+
let n = t?.customFonts ?? [], r = t?.defaultFallbackFont ?? "Arial, sans-serif", i = t?.allowHtmlBlocks ?? !0, a = me(t?.socialIconsBaseUrl ?? g), o = await _e(e, t?.renderCustomBlock), s = ve(e, t?.getCustomBlockStylesheet), c = new v(e.settings.width, n, r, i, o, a), l = ge(e.blocks, i), u = c.resolveFontFamily(e.settings.fontFamily), d = e.settings.backgroundColor, f = e.settings.textColor ? ` color="${S(e.settings.textColor)}"` : "", p = e.settings.linkColor ? C(e.settings.linkColor) : "inherit", m = e.settings.linkUnderline ? "underline" : "none", h = l.map((e) => de(e, c)).filter((e) => e !== "").join("\n"), _ = he(n), y = Q(e.settings.preheaderText);
|
|
455
|
+
return `<mjml lang="${S(e.settings.locale)}">
|
|
457
456
|
<mj-head>${y}
|
|
458
457
|
<mj-attributes>
|
|
459
458
|
<mj-all font-family="${u}" />
|
|
@@ -461,56 +460,56 @@ async function ce(e, t) {
|
|
|
461
460
|
<mj-section padding="0" />
|
|
462
461
|
<mj-column padding="0" />
|
|
463
462
|
<mj-image fluid-on-mobile="true" />
|
|
464
|
-
</mj-attributes>${
|
|
463
|
+
</mj-attributes>${_}
|
|
465
464
|
<mj-style>
|
|
466
|
-
a { color: ${p}; text-decoration: ${
|
|
465
|
+
a { color: ${p}; text-decoration: ${m}; }
|
|
467
466
|
@media only screen and (max-width: 480px) {
|
|
468
467
|
.tpl-hide-mobile { display: none !important; mso-hide: all !important; }
|
|
469
468
|
}
|
|
470
469
|
@media only screen and (min-width: 481px) {
|
|
471
470
|
.tpl-hide-desktop { display: none !important; mso-hide: all !important; }
|
|
472
471
|
}
|
|
473
|
-
</mj-style>${
|
|
472
|
+
</mj-style>${ye(s)}
|
|
474
473
|
</mj-head>
|
|
475
474
|
<mj-body width="${c.containerWidth}px" background-color="${d}">
|
|
476
|
-
${
|
|
475
|
+
${h}
|
|
477
476
|
</mj-body>
|
|
478
477
|
</mjml>`;
|
|
479
478
|
}
|
|
480
|
-
function
|
|
481
|
-
if (
|
|
479
|
+
function de(e, t) {
|
|
480
|
+
if (r(e)) {
|
|
482
481
|
let n = Z(e, t);
|
|
483
|
-
return X(e, e.wrapper && n !== "" ?
|
|
482
|
+
return X(e, e.wrapper && n !== "" ? fe(n, e.wrapper) : n);
|
|
484
483
|
}
|
|
485
|
-
return X(e,
|
|
484
|
+
return X(e, pe(Z(e, t)));
|
|
486
485
|
}
|
|
487
|
-
function
|
|
488
|
-
return `<mj-wrapper${
|
|
486
|
+
function fe(e, t) {
|
|
487
|
+
return `<mj-wrapper${O(t.backgroundColor, "native")}${` padding="${t.padding ? D(t.padding) : "0"}"`}${t.borderRadius && t.borderRadius > 0 ? ` border-radius="${t.borderRadius}px"` : ""}>
|
|
489
488
|
${e}
|
|
490
489
|
</mj-wrapper>`;
|
|
491
490
|
}
|
|
492
|
-
function
|
|
491
|
+
function pe(e) {
|
|
493
492
|
return e === "" ? "" : `<mj-section>
|
|
494
493
|
<mj-column>
|
|
495
494
|
${e}
|
|
496
495
|
</mj-column>
|
|
497
496
|
</mj-section>`;
|
|
498
497
|
}
|
|
499
|
-
function
|
|
498
|
+
function me(e) {
|
|
500
499
|
return e.endsWith("/") ? e.slice(0, -1) : e;
|
|
501
500
|
}
|
|
502
|
-
function
|
|
501
|
+
function Q(e) {
|
|
503
502
|
if (!e) return "";
|
|
504
503
|
let t = e.trim();
|
|
505
|
-
return t === "" ? "" : `\n <mj-preview>${
|
|
504
|
+
return t === "" ? "" : `\n <mj-preview>${x(t)}</mj-preview>`;
|
|
506
505
|
}
|
|
507
|
-
function
|
|
508
|
-
return e.length === 0 ? "" : e.map((e) => `\n <mj-font name="${
|
|
506
|
+
function he(e) {
|
|
507
|
+
return e.length === 0 ? "" : e.map((e) => `\n <mj-font name="${S(e.name)}" href="${S(e.url)}" />`).join("");
|
|
509
508
|
}
|
|
510
|
-
function
|
|
509
|
+
function ge(e, t) {
|
|
511
510
|
return t ? e : e.filter((e) => e.type !== "html");
|
|
512
511
|
}
|
|
513
|
-
async function
|
|
512
|
+
async function _e(e, t) {
|
|
514
513
|
let n = /* @__PURE__ */ new Map();
|
|
515
514
|
if (!t) return n;
|
|
516
515
|
let r = [];
|
|
@@ -519,16 +518,16 @@ async function he(e, t) {
|
|
|
519
518
|
for (let e = 0; e < r.length; e++) n.set(r[e].id, i[e]);
|
|
520
519
|
return n;
|
|
521
520
|
}
|
|
522
|
-
function $(e,
|
|
523
|
-
for (let
|
|
524
|
-
if (
|
|
525
|
-
|
|
521
|
+
function $(e, t) {
|
|
522
|
+
for (let i of e) {
|
|
523
|
+
if (n(i)) {
|
|
524
|
+
t.push(i);
|
|
526
525
|
continue;
|
|
527
526
|
}
|
|
528
|
-
if (
|
|
527
|
+
if (r(i)) for (let e of i.children) $(e, t);
|
|
529
528
|
}
|
|
530
529
|
}
|
|
531
|
-
function
|
|
530
|
+
function ve(e, t) {
|
|
532
531
|
if (!t) return [];
|
|
533
532
|
let n = [];
|
|
534
533
|
if ($(e.blocks, n), n.length === 0) return [];
|
|
@@ -543,10 +542,10 @@ function ge(e, t) {
|
|
|
543
542
|
}
|
|
544
543
|
return a;
|
|
545
544
|
}
|
|
546
|
-
function
|
|
545
|
+
function ye(e) {
|
|
547
546
|
return e.length === 0 ? "" : e.map((e) => `\n <mj-style>\n${e}\n </mj-style>`).join("");
|
|
548
547
|
}
|
|
549
548
|
//#endregion
|
|
550
|
-
export {
|
|
549
|
+
export { g as DEFAULT_SOCIAL_ICONS_BASE_URL, v as RenderContext, w as convertMergeTagsToValues, S as escapeAttr, x as escapeHtml, A as getCssClassAttr, j as getCssClasses, J as getWidthPercentages, Y as getWidthPixels, k as isHiddenOnAll, Z as renderBlock, ue as renderToMjml, D as toPaddingString };
|
|
551
550
|
|
|
552
|
-
//# sourceMappingURL=src-
|
|
551
|
+
//# sourceMappingURL=src-COnW7gMq.js.map
|