@templatical/editor 0.22.0 → 0.23.0
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-K_AehWc-.js → AiChatSidebar-Bru6-ziQ.js} +1 -1
- package/dist/{SavedBlockPreviewCanvas-DXkGDYph.js → BlockPreviewCanvas-MD9BGuXV.js} +35 -29
- package/dist/{CloudEditor-BVH7D1Ka.js → CloudEditor-iK4vkpNm.js} +274 -278
- package/dist/{DesignReferenceSidebar-DNmK3dxp.js → DesignReferenceSidebar-BxPo0zyx.js} +1 -1
- package/dist/{SaveBlockDialog-B_5KBaXW.js → SaveBlockDialog-CFAJHP3v.js} +98 -97
- package/dist/{SavedBlocksBrowserModal-DoJBoYPk.js → SavedBlocksBrowserModal-C_-Xcm0Q.js} +1 -1
- package/dist/{SavedBlocksPanels-3Af5dMaf.js → SavedBlocksPanels-CRf7zzFn.js} +1 -1
- package/dist/TestEmailModal-D90-3Yex.js +162 -0
- package/dist/TestEmailPanel-B0u_Yd3X.js +33 -0
- package/dist/ViewportToggle-BjmbNoao.js +97 -0
- package/dist/bundle-stats.json +7 -7
- package/dist/{cdn/chunks/ca-BBgad6y5.js → ca-D47BxSGu.js} +14 -2
- package/dist/cdn/chunks/{AiChatSidebar-A1CuWGY0.js → AiChatSidebar-BMnsF8G6.js} +2 -2
- package/dist/cdn/chunks/{AiChatSidebar-A1CuWGY0.js.map → AiChatSidebar-BMnsF8G6.js.map} +1 -1
- package/dist/cdn/chunks/{SavedBlockPreviewCanvas-DgLOKtR_.js → BlockPreviewCanvas-eASrdFSN.js} +36 -30
- package/dist/cdn/chunks/BlockPreviewCanvas-eASrdFSN.js.map +1 -0
- package/dist/cdn/chunks/{CloudEditor-FCS53UcZ.js → CloudEditor-S8zLHtKb.js} +253 -257
- package/dist/cdn/chunks/CloudEditor-S8zLHtKb.js.map +1 -0
- package/dist/cdn/chunks/{DesignReferenceSidebar-Dre99DTH.js → DesignReferenceSidebar-CM-k15pd.js} +2 -2
- package/dist/cdn/chunks/{DesignReferenceSidebar-Dre99DTH.js.map → DesignReferenceSidebar-CM-k15pd.js.map} +1 -1
- package/dist/cdn/chunks/{SaveBlockDialog-CSeD3gn9.js → SaveBlockDialog-Bi_Z3kuA.js} +100 -99
- package/dist/cdn/chunks/SaveBlockDialog-Bi_Z3kuA.js.map +1 -0
- package/dist/cdn/chunks/{SavedBlocksBrowserModal-B2x5WRPN.js → SavedBlocksBrowserModal-CesYxFsH.js} +2 -2
- package/dist/cdn/chunks/SavedBlocksBrowserModal-CesYxFsH.js.map +1 -0
- package/dist/cdn/chunks/{SavedBlocksPanels-BzMTZxf2.js → SavedBlocksPanels-BsSpJwrW.js} +2 -2
- package/dist/cdn/chunks/{SavedBlocksPanels-BzMTZxf2.js.map → SavedBlocksPanels-BsSpJwrW.js.map} +1 -1
- package/dist/cdn/chunks/TestEmailModal-CCWEVrE2.js +162 -0
- package/dist/cdn/chunks/TestEmailModal-CCWEVrE2.js.map +1 -0
- package/dist/cdn/chunks/TestEmailPanel-048m0kxX.js +35 -0
- package/dist/cdn/chunks/TestEmailPanel-048m0kxX.js.map +1 -0
- package/dist/cdn/chunks/ViewportToggle-CFmF-N4i.js +66 -0
- package/dist/cdn/chunks/ViewportToggle-CFmF-N4i.js.map +1 -0
- package/dist/{ca-BBgad6y5.js → cdn/chunks/ca-D47BxSGu.js} +16 -0
- package/dist/cdn/chunks/{ca-BBgad6y5.js.map → ca-D47BxSGu.js.map} +1 -1
- package/dist/cdn/chunks/{cloud-BJlbXGTJ.js → cloud-F-aVi9hj.js} +45 -41
- package/dist/cdn/chunks/cloud-F-aVi9hj.js.map +1 -0
- package/dist/{de-D7WbpFBR.js → cdn/chunks/de-CnnxBwh7.js} +16 -0
- package/dist/cdn/chunks/{de-D7WbpFBR.js.map → de-CnnxBwh7.js.map} +1 -1
- package/dist/{de-Bw6fB5JU.js → cdn/chunks/de-uVoSP1xF.js} +2 -9
- package/dist/cdn/chunks/de-uVoSP1xF.js.map +1 -0
- package/dist/cdn/chunks/emailFrameWidth-BmFCN2dp.js +8 -0
- package/dist/cdn/chunks/emailFrameWidth-BmFCN2dp.js.map +1 -0
- package/dist/cdn/chunks/{en-BrZ0uGK2.js → en-5gW-bYy2.js} +15 -1
- package/dist/cdn/chunks/{en-BrZ0uGK2.js.map → en-5gW-bYy2.js.map} +1 -1
- package/dist/{en-DAdHJz7h.js → cdn/chunks/en-CjhsJxb-.js} +2 -9
- package/dist/cdn/chunks/en-CjhsJxb-.js.map +1 -0
- package/dist/{es-tLSLysPs.js → cdn/chunks/es-sQ9SdI0l.js} +16 -0
- package/dist/cdn/chunks/{es-tLSLysPs.js.map → es-sQ9SdI0l.js.map} +1 -1
- package/dist/cdn/chunks/{fr-BMWOPztQ.js → fr-DBZ5w21C.js} +15 -1
- package/dist/cdn/chunks/{fr-BMWOPztQ.js.map → fr-DBZ5w21C.js.map} +1 -1
- package/dist/{nl-Dhctu7JL.js → cdn/chunks/nl-DOL7Fnfo.js} +16 -0
- package/dist/cdn/chunks/{nl-Dhctu7JL.js.map → nl-DOL7Fnfo.js.map} +1 -1
- package/dist/{pt-BR-w2sGzHNX.js → cdn/chunks/pt-BR-CTzHTqJD.js} +2 -9
- package/dist/cdn/chunks/pt-BR-CTzHTqJD.js.map +1 -0
- package/dist/cdn/chunks/{pt-BR-BWFokdTU.js → pt-BR-DRCdHX1d.js} +15 -1
- package/dist/cdn/chunks/{pt-BR-BWFokdTU.js.map → pt-BR-DRCdHX1d.js.map} +1 -1
- package/dist/cdn/chunks/{src-ByWL5K1f.js → src-CzoMNRq4.js} +17 -17
- package/dist/cdn/chunks/{src-ByWL5K1f.js.map → src-CzoMNRq4.js.map} +1 -1
- package/dist/cdn/chunks/{src-MA8DWI8O.js → src-SluTVSz_.js} +2 -2
- package/dist/cdn/chunks/{src-MA8DWI8O.js.map → src-SluTVSz_.js.map} +1 -1
- package/dist/cdn/chunks/{styles-BkXzQ4-n.js → styles-BbfU2w9R.js} +616 -584
- package/dist/cdn/chunks/styles-BbfU2w9R.js.map +1 -0
- package/dist/cdn/editor.css +1 -1
- package/dist/cdn/editor.js +164 -147
- package/dist/cdn/editor.js.map +1 -1
- package/dist/{cloud-Du7mnkz2.js → cloud-CeZPgo1V.js} +41 -39
- package/dist/{cdn/chunks/de-D7WbpFBR.js → de-CnnxBwh7.js} +14 -2
- package/dist/{cdn/chunks/de-Bw6fB5JU.js → de-uVoSP1xF.js} +0 -11
- package/dist/emailFrameWidth-BmFCN2dp.js +6 -0
- package/dist/{en-BrZ0uGK2.js → en-5gW-bYy2.js} +14 -0
- package/dist/{cdn/chunks/en-DAdHJz7h.js → en-CjhsJxb-.js} +0 -11
- package/dist/{cdn/chunks/es-tLSLysPs.js → es-sQ9SdI0l.js} +14 -2
- package/dist/{fr-BMWOPztQ.js → fr-DBZ5w21C.js} +14 -0
- package/dist/index.d.ts +74 -0
- package/dist/{cdn/chunks/nl-Dhctu7JL.js → nl-DOL7Fnfo.js} +14 -2
- package/dist/{cdn/chunks/pt-BR-w2sGzHNX.js → pt-BR-CTzHTqJD.js} +0 -11
- package/dist/{pt-BR-BWFokdTU.js → pt-BR-DRCdHX1d.js} +14 -0
- package/dist/style.css +1 -1
- package/dist/{styles-AxBd7CgB.js → styles-BWTIgN5L.js} +670 -671
- package/dist/templatical-editor.js +127 -109
- package/package.json +7 -7
- package/dist/TestEmailModal-DComAFpR.js +0 -95
- package/dist/cdn/chunks/CloudEditor-FCS53UcZ.js.map +0 -1
- package/dist/cdn/chunks/SaveBlockDialog-CSeD3gn9.js.map +0 -1
- package/dist/cdn/chunks/SavedBlockPreviewCanvas-DgLOKtR_.js.map +0 -1
- package/dist/cdn/chunks/SavedBlocksBrowserModal-B2x5WRPN.js.map +0 -1
- package/dist/cdn/chunks/TestEmailModal-DT37w7i_.js +0 -96
- package/dist/cdn/chunks/TestEmailModal-DT37w7i_.js.map +0 -1
- package/dist/cdn/chunks/cloud-BJlbXGTJ.js.map +0 -1
- package/dist/cdn/chunks/de-Bw6fB5JU.js.map +0 -1
- package/dist/cdn/chunks/en-DAdHJz7h.js.map +0 -1
- package/dist/cdn/chunks/pt-BR-w2sGzHNX.js.map +0 -1
- package/dist/cdn/chunks/styles-BkXzQ4-n.js.map +0 -1
|
@@ -9,7 +9,7 @@ import { t as v } from "./x-CkD6A1iB.js";
|
|
|
9
9
|
import { t as le } from "./LoadingTrack-KIcREPlS.js";
|
|
10
10
|
import { t as y } from "./_plugin-vue_export-helper-B3ysoDQm.js";
|
|
11
11
|
import { n as ue } from "./useCloudI18n-BmiygEM4.js";
|
|
12
|
-
import {
|
|
12
|
+
import { f as de } from "./cloud-CeZPgo1V.js";
|
|
13
13
|
var fe = g("file-image", [
|
|
14
14
|
["path", {
|
|
15
15
|
d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
|
|
@@ -2,20 +2,21 @@ import { A as e, Dt as t, E as n, Et as r, I as i, N as a, O as o, Ot as s, R as
|
|
|
2
2
|
import { a as C, c as w, s as T } from "./runtime-dom.esm-bundler-GdMI8WqG.js";
|
|
3
3
|
import { H as E, P as D, c as O } from "./useEditorCore-CuMMIfiS.js";
|
|
4
4
|
import { B as k, P as A, f as j, h as M } from "./keys-CHPcp-Nz.js";
|
|
5
|
-
import { t as
|
|
6
|
-
import { t as
|
|
7
|
-
import { t as
|
|
8
|
-
import { t as
|
|
9
|
-
import {
|
|
10
|
-
import { t as
|
|
5
|
+
import { t as ee } from "./useI18n-D2L9Mkik.js";
|
|
6
|
+
import { t as te } from "./chevron-down-j8GrdTyz.js";
|
|
7
|
+
import { t as N } from "./chevron-up-BACyVhyC.js";
|
|
8
|
+
import { t as P } from "./loader-circle-C-Z6kgI6.js";
|
|
9
|
+
import { n as F } from "./emailFrameWidth-BmFCN2dp.js";
|
|
10
|
+
import { t as I } from "./TplModal-CykwWFhF.js";
|
|
11
|
+
import { t as L } from "./BlockPreviewCanvas-MD9BGuXV.js";
|
|
11
12
|
//#region src/components/SavedBlockPreviewRow.vue?vue&type=script&setup=true&lang.ts
|
|
12
|
-
var
|
|
13
|
+
var R = ["data-block-id"], z = ["aria-label", "title"], B = { class: "tpl:relative tpl:min-w-0 tpl:flex-1" }, V = {
|
|
13
14
|
key: 0,
|
|
14
15
|
"data-testid": "saved-blocks-preview-fade",
|
|
15
16
|
"aria-hidden": "true",
|
|
16
17
|
class: "tpl:pointer-events-none tpl:absolute tpl:inset-x-0 tpl:bottom-0 tpl:h-10",
|
|
17
18
|
style: { background: "linear-gradient(\n to bottom,\n transparent,\n var(--tpl-bg) 90%\n )" }
|
|
18
|
-
},
|
|
19
|
+
}, H = ["aria-label", "aria-expanded"], U = 240, W = /* @__PURE__ */ d({
|
|
19
20
|
__name: "SavedBlockPreviewRow",
|
|
20
21
|
props: {
|
|
21
22
|
block: {},
|
|
@@ -24,25 +25,25 @@ var z = ["data-block-id"], B = ["aria-label", "title"], V = { class: "tpl:relati
|
|
|
24
25
|
},
|
|
25
26
|
emits: ["move"],
|
|
26
27
|
setup(e, { emit: r }) {
|
|
27
|
-
let i = e, c = r, { t: d, format: v } =
|
|
28
|
-
function
|
|
29
|
-
let e =
|
|
28
|
+
let i = e, c = r, { t: d, format: v } = ee(), S = x(j, []), C = x(M, null), O = y(() => F(C?.content.value.settings)), k = u(null), A = u(null), P = u(1), I = u(null), W = u(!1), G = null, K = y(() => I.value !== null && I.value > U), q = y(() => I.value === null ? null : W.value || !K.value ? I.value : U);
|
|
29
|
+
function J() {
|
|
30
|
+
let e = k.value, t = A.value;
|
|
30
31
|
if (!e || !t) return;
|
|
31
32
|
let n = e.clientWidth;
|
|
32
33
|
if (n <= 0) return;
|
|
33
|
-
let r = Math.min(1, n /
|
|
34
|
-
|
|
34
|
+
let r = Math.min(1, n / O.value);
|
|
35
|
+
P.value = r, I.value = t.offsetHeight * r;
|
|
35
36
|
}
|
|
36
37
|
n(() => {
|
|
37
|
-
|
|
38
|
+
J(), !(typeof ResizeObserver > "u") && (G = new ResizeObserver(() => J()), k.value && G.observe(k.value), A.value && G.observe(A.value));
|
|
38
39
|
}), l(() => {
|
|
39
|
-
|
|
40
|
+
G?.disconnect(), G = null;
|
|
40
41
|
});
|
|
41
|
-
let
|
|
42
|
-
block:
|
|
42
|
+
let Y = y(() => E(i.block, d, S)), X = y(() => v(d.savedBlocks.reorderHandle, {
|
|
43
|
+
block: Y.value,
|
|
43
44
|
position: i.position,
|
|
44
45
|
total: i.total
|
|
45
|
-
})),
|
|
46
|
+
})), Z = y(() => v(W.value ? d.savedBlocks.collapsePreview : d.savedBlocks.expandPreview, { block: Y.value }));
|
|
46
47
|
return (n, r) => (o(), p("div", {
|
|
47
48
|
"data-testid": "saved-blocks-reorder-row",
|
|
48
49
|
"data-block-id": e.block.id,
|
|
@@ -52,67 +53,67 @@ var z = ["data-block-id"], B = ["aria-label", "title"], V = { class: "tpl:relati
|
|
|
52
53
|
type: "button",
|
|
53
54
|
"data-testid": "saved-blocks-reorder-handle",
|
|
54
55
|
class: "tpl-saved-block-reorder-handle tpl:mt-0.5 tpl:shrink-0 tpl:cursor-grab tpl:rounded tpl:border-none tpl:bg-transparent tpl:p-0.5 tpl:text-[var(--tpl-text-dim)]",
|
|
55
|
-
"aria-label":
|
|
56
|
+
"aria-label": X.value,
|
|
56
57
|
title: _(d).savedBlocks.reorderHint,
|
|
57
58
|
onKeydown: [r[0] ||= T(w((e) => c("move", -1), ["prevent"]), ["up"]), r[1] ||= T(w((e) => c("move", 1), ["prevent"]), ["down"])]
|
|
58
59
|
}, [m(_(D), {
|
|
59
60
|
size: 14,
|
|
60
61
|
"stroke-width": 1.5
|
|
61
|
-
})], 40,
|
|
62
|
+
})], 40, z), f("div", B, [
|
|
62
63
|
f("div", {
|
|
63
64
|
ref_key: "frameEl",
|
|
64
|
-
ref:
|
|
65
|
+
ref: k,
|
|
65
66
|
class: "tpl:overflow-hidden",
|
|
66
|
-
style: t({ height:
|
|
67
|
+
style: t({ height: q.value === null ? void 0 : `${q.value}px` })
|
|
67
68
|
}, [f("div", {
|
|
68
69
|
ref_key: "contentEl",
|
|
69
|
-
ref:
|
|
70
|
+
ref: A,
|
|
70
71
|
style: t({
|
|
71
|
-
width: `${
|
|
72
|
-
transform: `scale(${
|
|
72
|
+
width: `${O.value}px`,
|
|
73
|
+
transform: `scale(${P.value})`,
|
|
73
74
|
transformOrigin: "top left"
|
|
74
75
|
})
|
|
75
|
-
}, [m(
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
}, [m(L, { blocks: [e.block] }, null, 8, ["blocks"])], 4)], 4),
|
|
77
|
+
K.value && !W.value ? (o(), p("div", V)) : b("", !0),
|
|
78
|
+
K.value ? (o(), p("button", {
|
|
78
79
|
key: 1,
|
|
79
80
|
type: "button",
|
|
80
81
|
"data-testid": "saved-blocks-preview-toggle",
|
|
81
82
|
class: "tpl:absolute tpl:bottom-1 tpl:right-1 tpl:flex tpl:cursor-pointer tpl:items-center tpl:gap-0.5 tpl:rounded tpl:border tpl:px-1.5 tpl:py-0.5 tpl:text-[10px] tpl:font-medium tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-elevated)] tpl:text-[var(--tpl-text-muted)]",
|
|
82
|
-
"aria-label":
|
|
83
|
-
"aria-expanded":
|
|
84
|
-
onClick: r[2] ||= (e) =>
|
|
85
|
-
}, [(o(), h(a(
|
|
83
|
+
"aria-label": Z.value,
|
|
84
|
+
"aria-expanded": W.value,
|
|
85
|
+
onClick: r[2] ||= (e) => W.value = !W.value
|
|
86
|
+
}, [(o(), h(a(W.value ? _(N) : _(te)), {
|
|
86
87
|
size: 11,
|
|
87
88
|
"stroke-width": 2
|
|
88
|
-
})), g(" " + s(
|
|
89
|
-
])], 8,
|
|
89
|
+
})), g(" " + s(W.value ? _(d).savedBlocks.collapse : _(d).savedBlocks.expand), 1)], 8, H)) : b("", !0)
|
|
90
|
+
])], 8, R));
|
|
90
91
|
}
|
|
91
|
-
}),
|
|
92
|
+
}), G = ["aria-busy"], K = {
|
|
92
93
|
id: "tpl-save-block-title",
|
|
93
94
|
class: "tpl:mb-4 tpl:shrink-0 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]"
|
|
94
|
-
},
|
|
95
|
+
}, q = { class: "tpl:mb-3 tpl:shrink-0" }, J = { class: "tpl:mb-1.5 tpl:block tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, Y = ["placeholder", "disabled"], X = { class: "tpl:mb-3 tpl:shrink-0" }, Z = {
|
|
95
96
|
for: "tpl-save-block-category",
|
|
96
97
|
class: "tpl:mb-1.5 tpl:block tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]"
|
|
97
|
-
},
|
|
98
|
+
}, ne = ["placeholder", "disabled"], re = { id: "tpl-saved-block-categories" }, ie = ["value"], ae = {
|
|
98
99
|
"data-testid": "saved-blocks-save-summary",
|
|
99
100
|
class: "tpl:mb-1.5 tpl:shrink-0 tpl:text-xs tpl:text-[var(--tpl-text-muted)]"
|
|
100
|
-
},
|
|
101
|
+
}, oe = { class: "tpl:text-[var(--tpl-text-dim)]" }, se = {
|
|
101
102
|
key: 0,
|
|
102
103
|
class: "tpl:mb-1.5 tpl:shrink-0 tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]"
|
|
103
|
-
},
|
|
104
|
+
}, ce = {
|
|
104
105
|
class: "tpl-sr-only",
|
|
105
106
|
role: "status",
|
|
106
107
|
"aria-live": "polite",
|
|
107
108
|
"aria-atomic": "true"
|
|
108
|
-
},
|
|
109
|
+
}, le = {
|
|
109
110
|
key: 1,
|
|
110
111
|
role: "alert",
|
|
111
112
|
class: "tpl:mb-3 tpl:shrink-0 tpl:text-xs tpl:text-[var(--tpl-danger)]"
|
|
112
|
-
},
|
|
113
|
+
}, ue = { class: "tpl:flex tpl:shrink-0 tpl:justify-end tpl:gap-2" }, de = ["disabled"], fe = ["disabled"], pe = {
|
|
113
114
|
key: 0,
|
|
114
115
|
class: "tpl:flex tpl:items-center tpl:gap-1.5"
|
|
115
|
-
},
|
|
116
|
+
}, me = { key: 1 }, Q = /* @__PURE__ */ d({
|
|
116
117
|
__name: "SaveBlockDialog",
|
|
117
118
|
props: {
|
|
118
119
|
visible: { type: Boolean },
|
|
@@ -120,55 +121,55 @@ var z = ["data-block-id"], B = ["aria-label", "title"], V = { class: "tpl:relati
|
|
|
120
121
|
},
|
|
121
122
|
emits: ["close", "saved"],
|
|
122
123
|
setup(t, { emit: n }) {
|
|
123
|
-
let a = t, l = n, { t: d, format: w } =
|
|
124
|
+
let a = t, l = n, { t: d, format: w } = ee(), T = k(M, "SaveBlockDialog"), D = k(A, "SaveBlockDialog"), te = x(j, []), N = u(""), F = u(""), L = u(!1), R = u(null), z = u(""), B = u([]), V = y(() => {
|
|
124
125
|
let e = new Map(T.content.value.blocks.map((e) => [e.id, e]));
|
|
125
|
-
return
|
|
126
|
-
}),
|
|
127
|
-
get: () =>
|
|
126
|
+
return B.value.map((t) => e.get(t)).filter((e) => e !== void 0);
|
|
127
|
+
}), H = y({
|
|
128
|
+
get: () => V.value,
|
|
128
129
|
set: (e) => {
|
|
129
|
-
|
|
130
|
+
B.value = e.map((e) => e.id);
|
|
130
131
|
}
|
|
131
132
|
});
|
|
132
|
-
function
|
|
133
|
-
let n =
|
|
133
|
+
function U(e, t) {
|
|
134
|
+
let n = V.value.map((e) => e.id), r = n.indexOf(e), i = r + t;
|
|
134
135
|
if (r === -1 || i < 0 || i >= n.length) return;
|
|
135
|
-
[n[r], n[i]] = [n[i], n[r]],
|
|
136
|
-
let a =
|
|
137
|
-
|
|
138
|
-
block:
|
|
136
|
+
[n[r], n[i]] = [n[i], n[r]], B.value = n;
|
|
137
|
+
let a = V.value[i];
|
|
138
|
+
z.value = a ? w(d.savedBlocks.reorderAnnouncement, {
|
|
139
|
+
block: Q(a),
|
|
139
140
|
position: i + 1,
|
|
140
141
|
total: n.length
|
|
141
142
|
}) : "";
|
|
142
143
|
}
|
|
143
|
-
function
|
|
144
|
-
return E(e, d,
|
|
144
|
+
function Q(e) {
|
|
145
|
+
return E(e, d, te);
|
|
145
146
|
}
|
|
146
|
-
let
|
|
147
|
+
let he = y(() => V.value.map(Q).join(", "));
|
|
147
148
|
i(() => a.visible, (e) => {
|
|
148
|
-
e && (
|
|
149
|
+
e && (N.value = "", F.value = "", R.value = null, z.value = "", B.value = [...a.pickedIds]);
|
|
149
150
|
}, { immediate: !0 });
|
|
150
|
-
let
|
|
151
|
+
let ge = y(() => N.value.trim().length > 0 && V.value.length > 0 && !L.value);
|
|
151
152
|
async function _e() {
|
|
152
|
-
if (!
|
|
153
|
-
let e =
|
|
153
|
+
if (!ge.value) return;
|
|
154
|
+
let e = V.value;
|
|
154
155
|
if (e.length !== 0) {
|
|
155
|
-
|
|
156
|
+
L.value = !0, R.value = null;
|
|
156
157
|
try {
|
|
157
|
-
await D.create(
|
|
158
|
+
await D.create(N.value.trim(), e, F.value.trim() || void 0), l("saved"), l("close");
|
|
158
159
|
} catch (e) {
|
|
159
|
-
|
|
160
|
+
R.value = e.message;
|
|
160
161
|
} finally {
|
|
161
|
-
|
|
162
|
+
L.value = !1;
|
|
162
163
|
}
|
|
163
164
|
}
|
|
164
165
|
}
|
|
165
166
|
function $() {
|
|
166
|
-
|
|
167
|
+
L.value || l("close");
|
|
167
168
|
}
|
|
168
169
|
function ve(e) {
|
|
169
170
|
e.key === "Enter" && !e.shiftKey && (e.preventDefault(), _e()), e.key === "Escape" && $();
|
|
170
171
|
}
|
|
171
|
-
return (n, i) => (o(), h(
|
|
172
|
+
return (n, i) => (o(), h(I, {
|
|
172
173
|
visible: t.visible,
|
|
173
174
|
onClose: $,
|
|
174
175
|
onKeydown: ve
|
|
@@ -176,7 +177,7 @@ var z = ["data-block-id"], B = ["aria-label", "title"], V = { class: "tpl:relati
|
|
|
176
177
|
default: c(() => [f("div", {
|
|
177
178
|
role: "dialog",
|
|
178
179
|
"aria-modal": "true",
|
|
179
|
-
"aria-busy":
|
|
180
|
+
"aria-busy": L.value,
|
|
180
181
|
"aria-labelledby": "tpl-save-block-title",
|
|
181
182
|
class: "tpl-scale-in tpl:mx-4 tpl:flex tpl:w-full tpl:max-w-2xl tpl:flex-col tpl:rounded-[var(--tpl-radius-lg)] tpl:p-5",
|
|
182
183
|
style: {
|
|
@@ -185,37 +186,37 @@ var z = ["data-block-id"], B = ["aria-label", "title"], V = { class: "tpl:relati
|
|
|
185
186
|
"max-height": "90vh"
|
|
186
187
|
}
|
|
187
188
|
}, [
|
|
188
|
-
f("h3",
|
|
189
|
-
f("div",
|
|
190
|
-
"onUpdate:modelValue": i[0] ||= (e) =>
|
|
189
|
+
f("h3", K, s(_(d).savedBlocks.saveAsBlock), 1),
|
|
190
|
+
f("div", q, [f("label", J, s(_(d).savedBlocks.name), 1), S(f("input", {
|
|
191
|
+
"onUpdate:modelValue": i[0] ||= (e) => N.value = e,
|
|
191
192
|
type: "text",
|
|
192
193
|
"data-testid": "saved-blocks-name-input",
|
|
193
194
|
placeholder: _(d).savedBlocks.namePlaceholder,
|
|
194
195
|
class: "tpl:h-9 tpl:w-full tpl:rounded-md tpl:border tpl:px-3 tpl:py-1 tpl:text-sm tpl:shadow-xs tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]",
|
|
195
|
-
disabled:
|
|
196
|
-
}, null, 8,
|
|
197
|
-
f("div",
|
|
198
|
-
f("label",
|
|
196
|
+
disabled: L.value
|
|
197
|
+
}, null, 8, Y), [[C, N.value]])]),
|
|
198
|
+
f("div", X, [
|
|
199
|
+
f("label", Z, s(_(d).savedBlocks.category), 1),
|
|
199
200
|
S(f("input", {
|
|
200
201
|
id: "tpl-save-block-category",
|
|
201
|
-
"onUpdate:modelValue": i[1] ||= (e) =>
|
|
202
|
+
"onUpdate:modelValue": i[1] ||= (e) => F.value = e,
|
|
202
203
|
type: "text",
|
|
203
204
|
"data-testid": "saved-blocks-category-input",
|
|
204
205
|
list: "tpl-saved-block-categories",
|
|
205
206
|
placeholder: _(d).savedBlocks.categoryPlaceholder,
|
|
206
207
|
class: "tpl:h-9 tpl:w-full tpl:rounded-md tpl:border tpl:px-3 tpl:py-1 tpl:text-sm tpl:shadow-xs tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]",
|
|
207
|
-
disabled:
|
|
208
|
-
}, null, 8,
|
|
209
|
-
f("datalist",
|
|
208
|
+
disabled: L.value
|
|
209
|
+
}, null, 8, ne), [[C, F.value]]),
|
|
210
|
+
f("datalist", re, [(o(!0), p(v, null, e(_(D).categories.value, (e) => (o(), p("option", {
|
|
210
211
|
key: e,
|
|
211
212
|
value: e
|
|
212
|
-
}, null, 8,
|
|
213
|
+
}, null, 8, ie))), 128))])
|
|
213
214
|
]),
|
|
214
|
-
f("p",
|
|
215
|
-
|
|
215
|
+
f("p", ae, [g(s(_(w)(_(d).savedBlocks.savingCount, { count: V.value.length })) + " ", 1), f("span", oe, s(he.value), 1)]),
|
|
216
|
+
V.value.length > 1 ? (o(), p("p", se, s(_(d).savedBlocks.reorderHint), 1)) : b("", !0),
|
|
216
217
|
m(_(O), {
|
|
217
|
-
modelValue:
|
|
218
|
-
"onUpdate:modelValue": i[2] ||= (e) =>
|
|
218
|
+
modelValue: H.value,
|
|
219
|
+
"onUpdate:modelValue": i[2] ||= (e) => H.value = e,
|
|
219
220
|
"data-testid": "saved-blocks-reorder-list",
|
|
220
221
|
animation: 150,
|
|
221
222
|
"ghost-class": "tpl-ghost",
|
|
@@ -224,12 +225,12 @@ var z = ["data-block-id"], B = ["aria-label", "title"], V = { class: "tpl:relati
|
|
|
224
225
|
"force-fallback": !0,
|
|
225
226
|
class: "tpl:mb-4 tpl:flex tpl:min-h-0 tpl:flex-1 tpl:flex-col tpl:gap-1.5 tpl:overflow-y-auto"
|
|
226
227
|
}, {
|
|
227
|
-
default: c(() => [(o(!0), p(v, null, e(
|
|
228
|
+
default: c(() => [(o(!0), p(v, null, e(H.value, (e, t) => (o(), h(W, {
|
|
228
229
|
key: e.id,
|
|
229
230
|
block: e,
|
|
230
231
|
position: t + 1,
|
|
231
|
-
total:
|
|
232
|
-
onMove: (t) =>
|
|
232
|
+
total: H.value.length,
|
|
233
|
+
onMove: (t) => U(e.id, t)
|
|
233
234
|
}, null, 8, [
|
|
234
235
|
"block",
|
|
235
236
|
"position",
|
|
@@ -238,27 +239,27 @@ var z = ["data-block-id"], B = ["aria-label", "title"], V = { class: "tpl:relati
|
|
|
238
239
|
]))), 128))]),
|
|
239
240
|
_: 1
|
|
240
241
|
}, 8, ["modelValue"]),
|
|
241
|
-
f("div",
|
|
242
|
-
|
|
243
|
-
f("div",
|
|
242
|
+
f("div", ce, s(z.value), 1),
|
|
243
|
+
R.value ? (o(), p("p", le, s(R.value), 1)) : b("", !0),
|
|
244
|
+
f("div", ue, [f("button", {
|
|
244
245
|
type: "button",
|
|
245
|
-
class: r(["tpl:cursor-pointer tpl:rounded-md tpl:border tpl:px-3 tpl:py-1.5 tpl:text-sm tpl:font-medium tpl:shadow-xs tpl:transition-all tpl:duration-150 tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-text)] tpl:bg-[var(--tpl-bg)]", { "tpl:cursor-not-allowed tpl:opacity-50":
|
|
246
|
-
disabled:
|
|
246
|
+
class: r(["tpl:cursor-pointer tpl:rounded-md tpl:border tpl:px-3 tpl:py-1.5 tpl:text-sm tpl:font-medium tpl:shadow-xs tpl:transition-all tpl:duration-150 tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-text)] tpl:bg-[var(--tpl-bg)]", { "tpl:cursor-not-allowed tpl:opacity-50": L.value }]),
|
|
247
|
+
disabled: L.value,
|
|
247
248
|
onClick: $
|
|
248
|
-
}, s(_(d).savedBlocks.cancel), 11,
|
|
249
|
+
}, s(_(d).savedBlocks.cancel), 11, de), f("button", {
|
|
249
250
|
type: "button",
|
|
250
251
|
class: "tpl:cursor-pointer tpl:rounded-md tpl:px-3 tpl:py-1.5 tpl:text-sm tpl:font-medium tpl:shadow-xs tpl:transition-all tpl:duration-150 tpl:hover:opacity-90 tpl:disabled:cursor-not-allowed tpl:disabled:opacity-50 tpl:bg-[var(--tpl-primary)] tpl:text-[var(--tpl-bg)]",
|
|
251
|
-
disabled: !
|
|
252
|
+
disabled: !ge.value,
|
|
252
253
|
onClick: _e
|
|
253
|
-
}, [
|
|
254
|
+
}, [L.value ? (o(), p("span", pe, [m(_(P), {
|
|
254
255
|
class: "tpl:animate-spin",
|
|
255
256
|
size: 12,
|
|
256
257
|
"stroke-width": 2
|
|
257
|
-
}), g(" " + s(_(d).savedBlocks.saving), 1)])) : (o(), p("span",
|
|
258
|
-
], 8,
|
|
258
|
+
}), g(" " + s(_(d).savedBlocks.saving), 1)])) : (o(), p("span", me, s(_(d).savedBlocks.save), 1))], 8, fe)])
|
|
259
|
+
], 8, G)]),
|
|
259
260
|
_: 1
|
|
260
261
|
}, 8, ["visible"]));
|
|
261
262
|
}
|
|
262
263
|
});
|
|
263
264
|
//#endregion
|
|
264
|
-
export {
|
|
265
|
+
export { Q as default };
|
|
@@ -65,7 +65,7 @@ var fe = {
|
|
|
65
65
|
props: { visible: { type: Boolean } },
|
|
66
66
|
emits: ["close", "insert"],
|
|
67
67
|
setup(c, { emit: A }) {
|
|
68
|
-
let et = c, j = A, tt = te(() => import("./
|
|
68
|
+
let et = c, j = A, tt = te(() => import("./BlockPreviewCanvas-MD9BGuXV.js").then((e) => e.n)), { t: M, format: N } = ae(), P = S(re, "SavedBlocksBrowserModal"), F = S(ie, "SavedBlocksBrowserModal"), I = s(""), L = s(""), R = s(null), z = s(null), B = s(null), V = s(""), H = s(""), U = s(null), W = s("end"), G = h(() => {
|
|
69
69
|
let e = I.value.trim().toLowerCase(), t = L.value;
|
|
70
70
|
return P.savedBlocks.value.filter((n) => !(e && !n.name.toLowerCase().includes(e) || t && n.category !== t));
|
|
71
71
|
}), K = h(() => P.isLoading.value && P.savedBlocks.value.length === 0), nt = h(() => I.value.trim().length > 0 || L.value !== ""), q = h(() => R.value ? P.savedBlocks.value.find((e) => e.id === R.value) ?? null : null), rt = h(() => {
|
|
@@ -5,7 +5,7 @@ var c = /* @__PURE__ */ t({
|
|
|
5
5
|
__name: "SavedBlocksPanels",
|
|
6
6
|
props: { feature: {} },
|
|
7
7
|
setup(t) {
|
|
8
|
-
let c = t, l = r(() => import("./SavedBlocksPickBar-C1FTJP-I.js")), u = r(() => import("./SaveBlockDialog-
|
|
8
|
+
let c = t, l = r(() => import("./SavedBlocksPickBar-C1FTJP-I.js")), u = r(() => import("./SaveBlockDialog-CFAJHP3v.js")), d = r(() => import("./SavedBlocksBrowserModal-C_-Xcm0Q.js"));
|
|
9
9
|
function f(e, t) {
|
|
10
10
|
c.feature.insert(e, t);
|
|
11
11
|
}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { A as e, Et as t, I as n, O as r, Ot as i, R as a, Y as o, _ as s, c, d as l, h as u, l as d, m as f, nt as p, r as m, s as h, u as g, x as ee, z as _ } from "./vue.runtime.esm-bundler-B0xoGkDv.js";
|
|
2
|
+
import { a as te, i as v } from "./runtime-dom.esm-bundler-GdMI8WqG.js";
|
|
3
|
+
import { h as y } from "./keys-CHPcp-Nz.js";
|
|
4
|
+
import { t as ne } from "./useI18n-D2L9Mkik.js";
|
|
5
|
+
import { t as b } from "./check-BpQDKiPz.js";
|
|
6
|
+
import { t as re } from "./loader-circle-C-Z6kgI6.js";
|
|
7
|
+
import { t as ie } from "./ViewportToggle-BjmbNoao.js";
|
|
8
|
+
import { t as ae } from "./TplModal-CykwWFhF.js";
|
|
9
|
+
import { t as oe } from "./BlockPreviewCanvas-MD9BGuXV.js";
|
|
10
|
+
//#region src/utils/validateEmailShape.ts
|
|
11
|
+
var x = /[,;<>()[\]\\"'`|/?#@!$%^&*+=~{}]/;
|
|
12
|
+
function se(e) {
|
|
13
|
+
let t = e.trim();
|
|
14
|
+
if (t.length === 0 || /\s/.test(t)) return !1;
|
|
15
|
+
let n = t.split("@");
|
|
16
|
+
if (n.length !== 2) return !1;
|
|
17
|
+
let [r, i] = n;
|
|
18
|
+
if (r.length === 0 || x.test(i)) return !1;
|
|
19
|
+
let a = i.indexOf(".");
|
|
20
|
+
return a > 0 && a < i.length - 1;
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
//#region src/components/TestEmailModal.vue?vue&type=script&setup=true&lang.ts
|
|
24
|
+
var S = ["aria-busy"], C = {
|
|
25
|
+
id: "tpl-test-email-title",
|
|
26
|
+
class: "tpl:mb-4 tpl:shrink-0 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]"
|
|
27
|
+
}, w = { class: "tpl:mb-3 tpl:shrink-0" }, T = {
|
|
28
|
+
for: "tpl-test-email-recipient",
|
|
29
|
+
class: "tpl:mb-1.5 tpl:block tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]"
|
|
30
|
+
}, E = ["value"], D = ["disabled"], O = ["value"], k = ["placeholder", "disabled"], A = {
|
|
31
|
+
key: 3,
|
|
32
|
+
class: "tpl:mt-1.5 tpl:text-xs tpl:text-[var(--tpl-text-dim)]"
|
|
33
|
+
}, j = { class: "tpl:mb-2 tpl:shrink-0" }, M = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:gap-2" }, N = { class: "tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, P = { class: "tpl:mt-1 tpl:text-xs tpl:text-[var(--tpl-text-dim)]" }, F = {
|
|
34
|
+
id: "tpl-test-email-preview",
|
|
35
|
+
"data-testid": "test-email-preview",
|
|
36
|
+
class: "tpl:mb-3 tpl:min-h-0 tpl:flex-1 tpl:overflow-y-auto tpl:rounded-[var(--tpl-radius-sm)] tpl:p-3 tpl:bg-[var(--tpl-canvas-bg)]"
|
|
37
|
+
}, I = {
|
|
38
|
+
key: 0,
|
|
39
|
+
role: "status",
|
|
40
|
+
"data-testid": "test-email-success",
|
|
41
|
+
class: "tpl:mb-3 tpl:flex tpl:shrink-0 tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-success,var(--tpl-primary))]"
|
|
42
|
+
}, ce = {
|
|
43
|
+
key: 1,
|
|
44
|
+
role: "alert",
|
|
45
|
+
"data-testid": "test-email-error",
|
|
46
|
+
class: "tpl:mb-3 tpl:shrink-0 tpl:text-xs tpl:text-[var(--tpl-danger)]"
|
|
47
|
+
}, L = { class: "tpl:flex tpl:shrink-0 tpl:justify-end tpl:gap-2" }, R = ["disabled"], z = ["disabled"], B = {
|
|
48
|
+
key: 0,
|
|
49
|
+
class: "tpl:flex tpl:items-center tpl:gap-1.5"
|
|
50
|
+
}, V = { key: 1 }, H = /* @__PURE__ */ s({
|
|
51
|
+
__name: "TestEmailModal",
|
|
52
|
+
props: {
|
|
53
|
+
visible: { type: Boolean },
|
|
54
|
+
allowedRecipients: {},
|
|
55
|
+
defaultRecipient: {},
|
|
56
|
+
isSending: { type: Boolean },
|
|
57
|
+
justSent: { type: Boolean },
|
|
58
|
+
error: {}
|
|
59
|
+
},
|
|
60
|
+
emits: ["send", "close"],
|
|
61
|
+
setup(s, { emit: x }) {
|
|
62
|
+
let H = s, U = x, { t: W } = ne(), G = ee(y, null), K = o(""), q = o("desktop"), le = h(() => G?.content.value.blocks ?? []), J = h(() => H.allowedRecipients !== void 0 && H.allowedRecipients.length > 0), ue = h(() => H.allowedRecipients?.length === 1);
|
|
63
|
+
n(() => H.visible, (e) => {
|
|
64
|
+
e && (K.value = H.defaultRecipient ?? H.allowedRecipients?.[0] ?? "");
|
|
65
|
+
}, { immediate: !0 });
|
|
66
|
+
let Y = h(() => J.value ? K.value.length > 0 : se(K.value)), X = h(() => Y.value && !H.isSending && !H.justSent), de = h(() => !J.value && K.value.trim().length > 0 && !Y.value), Z = h(() => H.error ? H.error.kind === "provider" ? H.error.message : W.testEmail.recipientNotAllowed : null);
|
|
67
|
+
function Q() {
|
|
68
|
+
X.value && U("send", K.value.trim());
|
|
69
|
+
}
|
|
70
|
+
function $() {
|
|
71
|
+
H.isSending || U("close");
|
|
72
|
+
}
|
|
73
|
+
function fe(e) {
|
|
74
|
+
e.key === "Enter" && !e.shiftKey && (e.preventDefault(), Q()), e.key === "Escape" && $();
|
|
75
|
+
}
|
|
76
|
+
return (n, o) => (r(), d(ae, {
|
|
77
|
+
visible: s.visible,
|
|
78
|
+
onClose: $,
|
|
79
|
+
onKeydown: fe
|
|
80
|
+
}, {
|
|
81
|
+
default: a(() => [c("div", {
|
|
82
|
+
role: "dialog",
|
|
83
|
+
"aria-modal": "true",
|
|
84
|
+
"aria-busy": s.isSending,
|
|
85
|
+
"aria-labelledby": "tpl-test-email-title",
|
|
86
|
+
class: "tpl-scale-in tpl:mx-4 tpl:flex tpl:max-h-[90vh] tpl:w-full tpl:max-w-2xl tpl:flex-col tpl:rounded-[var(--tpl-radius-lg)] tpl:p-5",
|
|
87
|
+
style: {
|
|
88
|
+
"background-color": "var(--tpl-bg-elevated)",
|
|
89
|
+
"box-shadow": "var(--tpl-shadow-xl)"
|
|
90
|
+
}
|
|
91
|
+
}, [
|
|
92
|
+
c("h3", C, i(p(W).testEmail.title), 1),
|
|
93
|
+
c("div", w, [
|
|
94
|
+
c("label", T, i(p(W).testEmail.recipientLabel), 1),
|
|
95
|
+
ue.value ? (r(), l("input", {
|
|
96
|
+
key: 0,
|
|
97
|
+
id: "tpl-test-email-recipient",
|
|
98
|
+
type: "text",
|
|
99
|
+
value: K.value,
|
|
100
|
+
disabled: "",
|
|
101
|
+
"data-testid": "test-email-recipient",
|
|
102
|
+
class: "tpl:h-9 tpl:w-full tpl:rounded-md tpl:border tpl:px-3 tpl:py-1 tpl:text-sm tpl:opacity-70 tpl:shadow-xs tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]"
|
|
103
|
+
}, null, 8, E)) : J.value ? _((r(), l("select", {
|
|
104
|
+
key: 1,
|
|
105
|
+
id: "tpl-test-email-recipient",
|
|
106
|
+
"onUpdate:modelValue": o[0] ||= (e) => K.value = e,
|
|
107
|
+
disabled: s.isSending || s.justSent,
|
|
108
|
+
"data-testid": "test-email-recipient",
|
|
109
|
+
class: "tpl:h-9 tpl:w-full tpl:rounded-md tpl:border tpl:px-3 tpl:py-1 tpl:text-sm tpl:shadow-xs tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]"
|
|
110
|
+
}, [(r(!0), l(m, null, e(s.allowedRecipients, (e) => (r(), l("option", {
|
|
111
|
+
key: e,
|
|
112
|
+
value: e
|
|
113
|
+
}, i(e), 9, O))), 128))], 8, D)), [[v, K.value]]) : _((r(), l("input", {
|
|
114
|
+
key: 2,
|
|
115
|
+
id: "tpl-test-email-recipient",
|
|
116
|
+
"onUpdate:modelValue": o[1] ||= (e) => K.value = e,
|
|
117
|
+
type: "email",
|
|
118
|
+
autocomplete: "email",
|
|
119
|
+
spellcheck: "false",
|
|
120
|
+
placeholder: p(W).testEmail.recipientPlaceholder,
|
|
121
|
+
disabled: s.isSending || s.justSent,
|
|
122
|
+
"data-testid": "test-email-recipient",
|
|
123
|
+
class: "tpl:h-9 tpl:w-full tpl:rounded-md tpl:border tpl:px-3 tpl:py-1 tpl:text-sm tpl:shadow-xs tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]"
|
|
124
|
+
}, null, 8, k)), [[te, K.value]]),
|
|
125
|
+
de.value ? (r(), l("p", A, i(p(W).testEmail.invalidAddress), 1)) : g("", !0)
|
|
126
|
+
]),
|
|
127
|
+
c("div", j, [c("div", M, [c("span", N, i(p(W).testEmail.preview), 1), u(ie, {
|
|
128
|
+
viewport: q.value,
|
|
129
|
+
onChange: o[2] ||= (e) => q.value = e
|
|
130
|
+
}, null, 8, ["viewport"])]), c("p", P, i(p(W).testEmail.previewHint), 1)]),
|
|
131
|
+
c("div", F, [u(oe, {
|
|
132
|
+
blocks: le.value,
|
|
133
|
+
viewport: q.value
|
|
134
|
+
}, null, 8, ["blocks", "viewport"])]),
|
|
135
|
+
s.justSent ? (r(), l("p", I, [u(p(b), {
|
|
136
|
+
size: 13,
|
|
137
|
+
"stroke-width": 2.5
|
|
138
|
+
}), f(" " + i(p(W).testEmail.success), 1)])) : Z.value ? (r(), l("p", ce, i(Z.value), 1)) : g("", !0),
|
|
139
|
+
c("div", L, [c("button", {
|
|
140
|
+
type: "button",
|
|
141
|
+
"data-testid": "test-email-cancel",
|
|
142
|
+
class: t(["tpl:cursor-pointer tpl:rounded-md tpl:border tpl:px-3 tpl:py-1.5 tpl:text-sm tpl:font-medium tpl:shadow-xs tpl:transition-all tpl:duration-150 tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-text)] tpl:bg-[var(--tpl-bg)]", { "tpl:cursor-not-allowed tpl:opacity-50": s.isSending }]),
|
|
143
|
+
disabled: s.isSending,
|
|
144
|
+
onClick: $
|
|
145
|
+
}, i(p(W).testEmail.cancel), 11, R), c("button", {
|
|
146
|
+
type: "button",
|
|
147
|
+
"data-testid": "test-email-send",
|
|
148
|
+
class: "tpl:cursor-pointer tpl:rounded-md tpl:px-3 tpl:py-1.5 tpl:text-sm tpl:font-medium tpl:shadow-xs tpl:transition-all tpl:duration-150 tpl:hover:opacity-90 tpl:disabled:cursor-not-allowed tpl:disabled:opacity-50 tpl:bg-[var(--tpl-primary)] tpl:text-[var(--tpl-bg)]",
|
|
149
|
+
disabled: !X.value,
|
|
150
|
+
onClick: Q
|
|
151
|
+
}, [s.isSending ? (r(), l("span", B, [u(p(re), {
|
|
152
|
+
class: "tpl:animate-spin",
|
|
153
|
+
size: 12,
|
|
154
|
+
"stroke-width": 2
|
|
155
|
+
}), f(" " + i(p(W).testEmail.sending), 1)])) : (r(), l("span", V, i(p(W).testEmail.send), 1))], 8, z)])
|
|
156
|
+
], 8, S)]),
|
|
157
|
+
_: 1
|
|
158
|
+
}, 8, ["visible"]));
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
//#endregion
|
|
162
|
+
export { H as default };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { O as e, _ as t, g as n, l as r, nt as i, u as a } from "./vue.runtime.esm-bundler-B0xoGkDv.js";
|
|
2
|
+
//#endregion
|
|
3
|
+
//#region src/components/TestEmailPanel.vue
|
|
4
|
+
var o = /* @__PURE__ */ t({
|
|
5
|
+
__name: "TestEmailPanel",
|
|
6
|
+
props: { feature: {} },
|
|
7
|
+
setup(t) {
|
|
8
|
+
let o = t, s = n(() => import("./TestEmailModal-D90-3Yex.js"));
|
|
9
|
+
function c(e) {
|
|
10
|
+
o.feature.send(e);
|
|
11
|
+
}
|
|
12
|
+
return (n, o) => t.feature.isModalOpen.value ? (e(), r(i(s), {
|
|
13
|
+
key: 0,
|
|
14
|
+
visible: t.feature.isModalOpen.value,
|
|
15
|
+
"allowed-recipients": t.feature.allowedRecipients.value,
|
|
16
|
+
"default-recipient": t.feature.defaultRecipient.value,
|
|
17
|
+
"is-sending": t.feature.isSending.value,
|
|
18
|
+
"just-sent": t.feature.justSent.value,
|
|
19
|
+
error: t.feature.error.value,
|
|
20
|
+
onSend: c,
|
|
21
|
+
onClose: o[0] ||= (e) => t.feature.close()
|
|
22
|
+
}, null, 8, [
|
|
23
|
+
"visible",
|
|
24
|
+
"allowed-recipients",
|
|
25
|
+
"default-recipient",
|
|
26
|
+
"is-sending",
|
|
27
|
+
"just-sent",
|
|
28
|
+
"error"
|
|
29
|
+
])) : a("", !0);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
//#endregion
|
|
33
|
+
export { o as default };
|