@resulticks/trustsignal-wa-hsm 0.5.0 → 0.6.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/README.md +94 -83
- package/dist/delete-BgBYMUw2.js +17 -0
- package/dist/delete-CZKt5rSC.cjs +1 -0
- package/dist/resulticks-trustsignal-wa-hsm.cjs.js +30 -20
- package/dist/resulticks-trustsignal-wa-hsm.es.js +1479 -1247
- package/dist/style.css +1 -1
- package/package.json +1 -1
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { jsx as e, jsxs as r, Fragment as
|
|
2
|
-
import
|
|
3
|
-
import { useNavigate as
|
|
4
|
-
const
|
|
1
|
+
import { jsx as e, jsxs as r, Fragment as ce } from "react/jsx-runtime";
|
|
2
|
+
import J, { forwardRef as Oe, createElement as ve, useRef as Le, useEffect as le, useState as P, useMemo as Se, useCallback as ke, createContext as Pe } from "react";
|
|
3
|
+
import { useNavigate as Ve, useInRouterContext as Ne } from "react-router-dom";
|
|
4
|
+
const ze = async (a, s = {}) => {
|
|
5
5
|
try {
|
|
6
|
-
return await
|
|
6
|
+
return await De(a.apiKey);
|
|
7
7
|
} catch (i) {
|
|
8
8
|
return console.error("API Error:", i), {
|
|
9
9
|
status: "error",
|
|
10
10
|
message: i instanceof Error ? i.message : "Failed to fetch templates"
|
|
11
11
|
};
|
|
12
12
|
}
|
|
13
|
-
},
|
|
14
|
-
const
|
|
13
|
+
}, De = async (a) => {
|
|
14
|
+
const s = await fetch(
|
|
15
15
|
"https://wpapi.trustsignal.io/api/v1/template?page=1&limit=100",
|
|
16
16
|
{
|
|
17
17
|
method: "GET",
|
|
@@ -21,25 +21,25 @@ const Ve = async (a, n = {}) => {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
);
|
|
24
|
-
if (!
|
|
25
|
-
throw new Error(`HTTP error! status: ${
|
|
26
|
-
const i = await
|
|
24
|
+
if (!s.ok)
|
|
25
|
+
throw new Error(`HTTP error! status: ${s.status}`);
|
|
26
|
+
const i = await s.json();
|
|
27
27
|
if (!i.success)
|
|
28
28
|
throw new Error(i.message || "Failed to fetch templates");
|
|
29
29
|
return {
|
|
30
30
|
status: "success",
|
|
31
|
-
data: i.templates.map((
|
|
32
|
-
id:
|
|
33
|
-
name:
|
|
34
|
-
category:
|
|
35
|
-
language:
|
|
36
|
-
type:
|
|
37
|
-
body:
|
|
38
|
-
status:
|
|
39
|
-
creation_time: new Date(
|
|
40
|
-
updation_time: new Date(
|
|
41
|
-
medialist:
|
|
42
|
-
shortlink:
|
|
31
|
+
data: i.templates.map((t) => ({
|
|
32
|
+
id: t.id,
|
|
33
|
+
name: t.name,
|
|
34
|
+
category: t.category,
|
|
35
|
+
language: t.lang,
|
|
36
|
+
type: t.temptype || "TEXT",
|
|
37
|
+
body: t.temp_var_data || "",
|
|
38
|
+
status: t.status,
|
|
39
|
+
creation_time: new Date(t.created_at).getTime(),
|
|
40
|
+
updation_time: new Date(t.modified_at).getTime(),
|
|
41
|
+
medialist: t.medialist,
|
|
42
|
+
shortlink: t.shortlink
|
|
43
43
|
})),
|
|
44
44
|
meta: {
|
|
45
45
|
total: i.totalrecords,
|
|
@@ -54,7 +54,7 @@ const Ve = async (a, n = {}) => {
|
|
|
54
54
|
* This source code is licensed under the ISC license.
|
|
55
55
|
* See the LICENSE file in the root directory of this source tree.
|
|
56
56
|
*/
|
|
57
|
-
var
|
|
57
|
+
var _e = {
|
|
58
58
|
xmlns: "http://www.w3.org/2000/svg",
|
|
59
59
|
width: 24,
|
|
60
60
|
height: 24,
|
|
@@ -71,31 +71,31 @@ var Ue = {
|
|
|
71
71
|
* This source code is licensed under the ISC license.
|
|
72
72
|
* See the LICENSE file in the root directory of this source tree.
|
|
73
73
|
*/
|
|
74
|
-
const
|
|
75
|
-
const i =
|
|
74
|
+
const Fe = (a) => a.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase().trim(), $ = (a, s) => {
|
|
75
|
+
const i = Oe(
|
|
76
76
|
({
|
|
77
|
-
color:
|
|
78
|
-
size:
|
|
79
|
-
strokeWidth:
|
|
80
|
-
absoluteStrokeWidth:
|
|
81
|
-
className:
|
|
82
|
-
children:
|
|
83
|
-
...
|
|
84
|
-
},
|
|
77
|
+
color: n = "currentColor",
|
|
78
|
+
size: t = 24,
|
|
79
|
+
strokeWidth: x = 2,
|
|
80
|
+
absoluteStrokeWidth: l,
|
|
81
|
+
className: k = "",
|
|
82
|
+
children: w,
|
|
83
|
+
...o
|
|
84
|
+
}, N) => ve(
|
|
85
85
|
"svg",
|
|
86
86
|
{
|
|
87
|
-
ref:
|
|
88
|
-
...
|
|
89
|
-
width:
|
|
90
|
-
height:
|
|
91
|
-
stroke:
|
|
92
|
-
strokeWidth:
|
|
93
|
-
className: ["lucide", `lucide-${
|
|
94
|
-
...
|
|
87
|
+
ref: N,
|
|
88
|
+
..._e,
|
|
89
|
+
width: t,
|
|
90
|
+
height: t,
|
|
91
|
+
stroke: n,
|
|
92
|
+
strokeWidth: l ? Number(x) * 24 / Number(t) : x,
|
|
93
|
+
className: ["lucide", `lucide-${Fe(a)}`, k].join(" "),
|
|
94
|
+
...o
|
|
95
95
|
},
|
|
96
96
|
[
|
|
97
|
-
...
|
|
98
|
-
...Array.isArray(
|
|
97
|
+
...s.map(([U, f]) => ve(U, f)),
|
|
98
|
+
...Array.isArray(w) ? w : [w]
|
|
99
99
|
]
|
|
100
100
|
)
|
|
101
101
|
);
|
|
@@ -107,7 +107,7 @@ const Ae = (a) => a.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase().trim(),
|
|
|
107
107
|
* This source code is licensed under the ISC license.
|
|
108
108
|
* See the LICENSE file in the root directory of this source tree.
|
|
109
109
|
*/
|
|
110
|
-
const
|
|
110
|
+
const fe = $("AlertCircle", [
|
|
111
111
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
112
112
|
["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
|
|
113
113
|
["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
|
|
@@ -118,7 +118,7 @@ const ce = H("AlertCircle", [
|
|
|
118
118
|
* This source code is licensed under the ISC license.
|
|
119
119
|
* See the LICENSE file in the root directory of this source tree.
|
|
120
120
|
*/
|
|
121
|
-
const
|
|
121
|
+
const qe = $("ArrowRight", [
|
|
122
122
|
["path", { d: "M5 12h14", key: "1ays0h" }],
|
|
123
123
|
["path", { d: "m12 5 7 7-7 7", key: "xquz4c" }]
|
|
124
124
|
]);
|
|
@@ -128,7 +128,7 @@ const Re = H("ArrowRight", [
|
|
|
128
128
|
* This source code is licensed under the ISC license.
|
|
129
129
|
* See the LICENSE file in the root directory of this source tree.
|
|
130
130
|
*/
|
|
131
|
-
const
|
|
131
|
+
const He = $("ExternalLink", [
|
|
132
132
|
["path", { d: "M15 3h6v6", key: "1q9fwt" }],
|
|
133
133
|
["path", { d: "M10 14 21 3", key: "gplh6r" }],
|
|
134
134
|
["path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6", key: "a6xqqp" }]
|
|
@@ -139,7 +139,7 @@ const Be = H("ExternalLink", [
|
|
|
139
139
|
* This source code is licensed under the ISC license.
|
|
140
140
|
* See the LICENSE file in the root directory of this source tree.
|
|
141
141
|
*/
|
|
142
|
-
const
|
|
142
|
+
const $e = $("FileText", [
|
|
143
143
|
["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
|
|
144
144
|
["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
|
|
145
145
|
["path", { d: "M10 9H8", key: "b1mrlr" }],
|
|
@@ -152,7 +152,7 @@ const Ie = H("FileText", [
|
|
|
152
152
|
* This source code is licensed under the ISC license.
|
|
153
153
|
* See the LICENSE file in the root directory of this source tree.
|
|
154
154
|
*/
|
|
155
|
-
const
|
|
155
|
+
const Ge = $("FileVideo", [
|
|
156
156
|
["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
|
|
157
157
|
["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
|
|
158
158
|
["path", { d: "m10 11 5 3-5 3v-6Z", key: "7ntvm4" }]
|
|
@@ -163,7 +163,7 @@ const ze = H("FileVideo", [
|
|
|
163
163
|
* This source code is licensed under the ISC license.
|
|
164
164
|
* See the LICENSE file in the root directory of this source tree.
|
|
165
165
|
*/
|
|
166
|
-
const
|
|
166
|
+
const We = $("Link", [
|
|
167
167
|
["path", { d: "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71", key: "1cjeqo" }],
|
|
168
168
|
["path", { d: "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71", key: "19qd67" }]
|
|
169
169
|
]);
|
|
@@ -173,7 +173,7 @@ const Oe = H("Link", [
|
|
|
173
173
|
* This source code is licensed under the ISC license.
|
|
174
174
|
* See the LICENSE file in the root directory of this source tree.
|
|
175
175
|
*/
|
|
176
|
-
const
|
|
176
|
+
const me = $("MessageCircle", [
|
|
177
177
|
["path", { d: "M7.9 20A9 9 0 1 0 4 16.1L2 22Z", key: "vv11sd" }]
|
|
178
178
|
]);
|
|
179
179
|
/**
|
|
@@ -182,7 +182,17 @@ const le = H("MessageCircle", [
|
|
|
182
182
|
* This source code is licensed under the ISC license.
|
|
183
183
|
* See the LICENSE file in the root directory of this source tree.
|
|
184
184
|
*/
|
|
185
|
-
const
|
|
185
|
+
const Ke = $("Pencil", [
|
|
186
|
+
["path", { d: "M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z", key: "5qss01" }],
|
|
187
|
+
["path", { d: "m15 5 4 4", key: "1mk7zo" }]
|
|
188
|
+
]);
|
|
189
|
+
/**
|
|
190
|
+
* @license lucide-react v0.344.0 - ISC
|
|
191
|
+
*
|
|
192
|
+
* This source code is licensed under the ISC license.
|
|
193
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
194
|
+
*/
|
|
195
|
+
const Ue = $("Phone", [
|
|
186
196
|
[
|
|
187
197
|
"path",
|
|
188
198
|
{
|
|
@@ -197,7 +207,7 @@ const Me = H("Phone", [
|
|
|
197
207
|
* This source code is licensed under the ISC license.
|
|
198
208
|
* See the LICENSE file in the root directory of this source tree.
|
|
199
209
|
*/
|
|
200
|
-
const
|
|
210
|
+
const Ae = $("Plus", [
|
|
201
211
|
["path", { d: "M5 12h14", key: "1ays0h" }],
|
|
202
212
|
["path", { d: "M12 5v14", key: "s699le" }]
|
|
203
213
|
]);
|
|
@@ -207,7 +217,7 @@ const de = H("Plus", [
|
|
|
207
217
|
* This source code is licensed under the ISC license.
|
|
208
218
|
* See the LICENSE file in the root directory of this source tree.
|
|
209
219
|
*/
|
|
210
|
-
const
|
|
220
|
+
const Je = $("Reply", [
|
|
211
221
|
["polyline", { points: "9 17 4 12 9 7", key: "hvgpf2" }],
|
|
212
222
|
["path", { d: "M20 18v-2a4 4 0 0 0-4-4H4", key: "5vmcpk" }]
|
|
213
223
|
]);
|
|
@@ -217,7 +227,7 @@ const Pe = H("Reply", [
|
|
|
217
227
|
* This source code is licensed under the ISC license.
|
|
218
228
|
* See the LICENSE file in the root directory of this source tree.
|
|
219
229
|
*/
|
|
220
|
-
const
|
|
230
|
+
const he = $("Smile", [
|
|
221
231
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
222
232
|
["path", { d: "M8 14s1.5 2 4 2 4-2 4-2", key: "1y1vjs" }],
|
|
223
233
|
["line", { x1: "9", x2: "9.01", y1: "9", y2: "9", key: "yxxnd0" }],
|
|
@@ -229,7 +239,20 @@ const xe = H("Smile", [
|
|
|
229
239
|
* This source code is licensed under the ISC license.
|
|
230
240
|
* See the LICENSE file in the root directory of this source tree.
|
|
231
241
|
*/
|
|
232
|
-
const
|
|
242
|
+
const Xe = $("Trash2", [
|
|
243
|
+
["path", { d: "M3 6h18", key: "d0wm0j" }],
|
|
244
|
+
["path", { d: "M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6", key: "4alrt4" }],
|
|
245
|
+
["path", { d: "M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2", key: "v07s0e" }],
|
|
246
|
+
["line", { x1: "10", x2: "10", y1: "11", y2: "17", key: "1uufr5" }],
|
|
247
|
+
["line", { x1: "14", x2: "14", y1: "11", y2: "17", key: "xtxkd" }]
|
|
248
|
+
]);
|
|
249
|
+
/**
|
|
250
|
+
* @license lucide-react v0.344.0 - ISC
|
|
251
|
+
*
|
|
252
|
+
* This source code is licensed under the ISC license.
|
|
253
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
254
|
+
*/
|
|
255
|
+
const Ye = $("Upload", [
|
|
233
256
|
["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }],
|
|
234
257
|
["polyline", { points: "17 8 12 3 7 8", key: "t8dd8p" }],
|
|
235
258
|
["line", { x1: "12", x2: "12", y1: "3", y2: "15", key: "widbto" }]
|
|
@@ -240,7 +263,7 @@ const _e = H("Upload", [
|
|
|
240
263
|
* This source code is licensed under the ISC license.
|
|
241
264
|
* See the LICENSE file in the root directory of this source tree.
|
|
242
265
|
*/
|
|
243
|
-
const
|
|
266
|
+
const Qe = $("Workflow", [
|
|
244
267
|
["rect", { width: "8", height: "8", x: "3", y: "3", rx: "2", key: "by2w9f" }],
|
|
245
268
|
["path", { d: "M7 11v4a2 2 0 0 0 2 2h4", key: "xkn7yn" }],
|
|
246
269
|
["rect", { width: "8", height: "8", x: "13", y: "13", rx: "2", key: "1cgmvn" }]
|
|
@@ -251,91 +274,97 @@ const Fe = H("Workflow", [
|
|
|
251
274
|
* This source code is licensed under the ISC license.
|
|
252
275
|
* See the LICENSE file in the root directory of this source tree.
|
|
253
276
|
*/
|
|
254
|
-
const
|
|
277
|
+
const re = $("X", [
|
|
255
278
|
["path", { d: "M18 6 6 18", key: "1bl5f8" }],
|
|
256
279
|
["path", { d: "m6 6 12 12", key: "d8bk6v" }]
|
|
257
280
|
]);
|
|
258
|
-
function
|
|
259
|
-
const
|
|
260
|
-
return
|
|
261
|
-
const
|
|
262
|
-
|
|
281
|
+
function te({ isOpen: a, onClose: s, title: i, children: n }) {
|
|
282
|
+
const t = Le(null);
|
|
283
|
+
return le(() => {
|
|
284
|
+
const x = (l) => {
|
|
285
|
+
t.current && !t.current.contains(l.target) && s();
|
|
263
286
|
};
|
|
264
|
-
return a && document.addEventListener("mousedown",
|
|
265
|
-
document.removeEventListener("mousedown",
|
|
287
|
+
return a && document.addEventListener("mousedown", x), () => {
|
|
288
|
+
document.removeEventListener("mousedown", x);
|
|
266
289
|
};
|
|
267
|
-
}, [a,
|
|
290
|
+
}, [a, s]), a ? /* @__PURE__ */ e("div", { className: "rsp-fixed rsp-inset-0 rsp-bg-black rsp-bg-opacity-50 rsp-flex rsp-items-center rsp-justify-center rsp-p-4 rsp-z-50", children: /* @__PURE__ */ r("div", { ref: t, className: "rsp-bg-white rsp-rounded-lg rsp-shadow-xl rsp-w-full rsp-max-w-[600px] rsp-animate-modal-appear", style: { backgroundColor: "#f5f7fc" }, children: [
|
|
268
291
|
/* @__PURE__ */ r("div", { className: "rsp-flex rsp-items-center rsp-justify-between rsp-px-6 rsp-py-4 rsp-border-b", children: [
|
|
269
292
|
/* @__PURE__ */ e("h2", { className: "rsp-text-lg rsp-font-semibold rsp-text-gray-900 rsp-text-center rsp-w-full rsp-break-words rsp-break-all rsp-whitespace-pre-wrap", children: i }),
|
|
270
293
|
/* @__PURE__ */ e(
|
|
271
294
|
"button",
|
|
272
295
|
{
|
|
273
|
-
onClick:
|
|
296
|
+
onClick: s,
|
|
274
297
|
className: "rsp-p-1 hover:rsp-bg-gray-100 rsp-rounded-full",
|
|
275
|
-
children: /* @__PURE__ */ e(
|
|
298
|
+
children: /* @__PURE__ */ e(re, { className: "rsp-w-5 rsp-h-5 rsp-text-gray-500" })
|
|
276
299
|
}
|
|
277
300
|
)
|
|
278
301
|
] }),
|
|
279
|
-
/* @__PURE__ */ e("div", { className: "rsp-px-6 rsp-py-4 rsp-overflow-y-auto rsp-max-h-[70vh] rsp-break-words rsp-whitespace-pre-wrap", children:
|
|
302
|
+
/* @__PURE__ */ e("div", { className: "rsp-px-6 rsp-py-4 rsp-overflow-y-auto rsp-max-h-[70vh] rsp-break-words rsp-whitespace-pre-wrap", children: n })
|
|
280
303
|
] }) }) : null;
|
|
281
304
|
}
|
|
282
|
-
function
|
|
283
|
-
const a =
|
|
284
|
-
const
|
|
285
|
-
return
|
|
305
|
+
function Va() {
|
|
306
|
+
const a = Ve(), [s, i] = P([]), [n, t] = P(!0), [x, l] = P(null), [k, w] = P(null), [o, N] = P({ isOpen: !1 }), [U, f] = P(() => {
|
|
307
|
+
const h = localStorage.getItem("account");
|
|
308
|
+
return h ? JSON.parse(h) : {
|
|
286
309
|
apiKey: ""
|
|
287
310
|
};
|
|
288
|
-
}), [
|
|
289
|
-
|
|
311
|
+
}), [b, M] = P(""), [g, v] = P("all"), [c, p] = P("all"), [y] = P("all"), [u, V] = P(1), B = 20, [d, E] = P({ isOpen: !1 });
|
|
312
|
+
le(() => {
|
|
290
313
|
(async () => {
|
|
291
314
|
try {
|
|
292
|
-
if (
|
|
293
|
-
|
|
315
|
+
if (l(null), t(!0), i([]), !U.apiKey) {
|
|
316
|
+
l("Please enter your TrustSignal API key"), t(!1);
|
|
294
317
|
return;
|
|
295
318
|
}
|
|
296
|
-
const
|
|
319
|
+
const L = await ze(U, {
|
|
297
320
|
limit: 1e3
|
|
298
321
|
});
|
|
299
|
-
if (
|
|
300
|
-
throw new Error(
|
|
301
|
-
i(
|
|
302
|
-
} catch (
|
|
303
|
-
|
|
322
|
+
if (L.status === "error")
|
|
323
|
+
throw new Error(L.message);
|
|
324
|
+
i(L.data);
|
|
325
|
+
} catch (L) {
|
|
326
|
+
l(L instanceof Error ? L.message : "Failed to fetch templates"), i([]);
|
|
304
327
|
} finally {
|
|
305
|
-
|
|
328
|
+
t(!1);
|
|
306
329
|
}
|
|
307
330
|
})();
|
|
308
|
-
}, [
|
|
309
|
-
const
|
|
310
|
-
const { name:
|
|
311
|
-
...
|
|
312
|
-
[
|
|
331
|
+
}, [U]);
|
|
332
|
+
const A = (h) => {
|
|
333
|
+
const { name: L, value: z } = h.target, q = {
|
|
334
|
+
...U,
|
|
335
|
+
[L]: z
|
|
313
336
|
};
|
|
314
|
-
|
|
315
|
-
},
|
|
316
|
-
|
|
337
|
+
f(q), localStorage.setItem("account", JSON.stringify(q));
|
|
338
|
+
}, O = (h, L) => {
|
|
339
|
+
E({
|
|
317
340
|
isOpen: !0,
|
|
318
|
-
url:
|
|
319
|
-
templateName:
|
|
341
|
+
url: h,
|
|
342
|
+
templateName: L
|
|
320
343
|
});
|
|
321
|
-
},
|
|
322
|
-
|
|
323
|
-
},
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
)
|
|
338
|
-
|
|
344
|
+
}, R = () => {
|
|
345
|
+
E({ isOpen: !1 });
|
|
346
|
+
}, _ = async (h) => {
|
|
347
|
+
try {
|
|
348
|
+
const L = localStorage.getItem("account"), z = L ? JSON.parse(L) : { apiKey: "" };
|
|
349
|
+
if (!z.apiKey) {
|
|
350
|
+
l("Please enter your TrustSignal API key");
|
|
351
|
+
return;
|
|
352
|
+
}
|
|
353
|
+
w(h);
|
|
354
|
+
const { deleteTemplateById: q } = await import("./delete-BgBYMUw2.js"), X = await q(z.apiKey, h);
|
|
355
|
+
if (!X.success) throw new Error(X.message || "Delete failed");
|
|
356
|
+
i((T) => T.filter((Y) => Y.id !== h)), N({ isOpen: !1 });
|
|
357
|
+
} catch (L) {
|
|
358
|
+
l(L instanceof Error ? L.message : "Failed to delete template");
|
|
359
|
+
} finally {
|
|
360
|
+
w(null);
|
|
361
|
+
}
|
|
362
|
+
}, m = s.filter((h) => {
|
|
363
|
+
const L = b.trim(), z = L.toLowerCase(), q = L === "" || h.id.toString().includes(L) || h.name.toLowerCase().includes(z), X = g === "all" || h.status.toLowerCase() === g.toLowerCase(), T = c === "all" || h.category.toLowerCase() === c.toLowerCase(), Y = y === "all" || h.language.toLowerCase().startsWith(y.toLowerCase());
|
|
364
|
+
return q && X && T && Y;
|
|
365
|
+
}), C = Math.ceil(m.length / B), S = (u - 1) * B, j = S + B, I = m.slice(S, j);
|
|
366
|
+
return n ? /* @__PURE__ */ e("div", { className: "rsp-flex rsp-items-center rsp-justify-center rsp-min-h-screen", children: /* @__PURE__ */ e("div", { className: "rsp-text-lg rsp-text-gray-600", children: "Loading templates..." }) }) : /* @__PURE__ */ r("div", { className: "rsp-container rsp-mx-auto rsp-px-4 rsp-py-8 rsp-bg-[#f5f7fc] rsp-rounded-lg rsp-shadow-sm", children: [
|
|
367
|
+
/* @__PURE__ */ e("div", { className: "rsp-flex rsp-justify-between rsp-items-center rsp-mb-6", children: /* @__PURE__ */ e("h1", { className: "rsp-text-2xl rsp-font-bold", children: "Whatsapp HSM Templates" }) }),
|
|
339
368
|
/* @__PURE__ */ e("div", { className: " rsp-p-4 rsp-pl-0 rsp-rounded-lg rsp-shadow-sm rsp-mb-6", children: /* @__PURE__ */ r("div", { children: [
|
|
340
369
|
/* @__PURE__ */ e("label", { className: "rsp-block rsp-text-sm rsp-font-medium rsp-text-gray-700 rsp-mb-1", children: "TrustSignal API Key" }),
|
|
341
370
|
/* @__PURE__ */ r("div", { className: "rsp-relative", children: [
|
|
@@ -344,8 +373,8 @@ function ga() {
|
|
|
344
373
|
{
|
|
345
374
|
type: "password",
|
|
346
375
|
name: "apiKey",
|
|
347
|
-
value:
|
|
348
|
-
onChange:
|
|
376
|
+
value: U.apiKey,
|
|
377
|
+
onChange: A,
|
|
349
378
|
className: "rsp-w-full rsp-px-0 rsp-py-2 rsp-border-0 rsp-border-b rsp-border-gray-300 rsp-text-sm focus:rsp-outline-none focus:rsp-border-blue-500 rsp-bg-transparent",
|
|
350
379
|
placeholder: "Enter your TrustSignal API key"
|
|
351
380
|
}
|
|
@@ -353,17 +382,17 @@ function ga() {
|
|
|
353
382
|
/* @__PURE__ */ e("div", { className: "rsp-absolute rsp-bottom-0 rsp-left-0 rsp-w-4 rsp-h-0.5 rsp-bg-red-500" })
|
|
354
383
|
] })
|
|
355
384
|
] }) }),
|
|
356
|
-
|
|
357
|
-
/* @__PURE__ */ e("div", { className: "rsp-flex-shrink-0", children: /* @__PURE__ */ e(
|
|
358
|
-
/* @__PURE__ */ e("div", { className: "rsp-ml-3", children: /* @__PURE__ */ e("p", { className: "rsp-text-sm rsp-text-red-700", children:
|
|
385
|
+
x && /* @__PURE__ */ e("div", { className: "rsp-bg-red-50 rsp-border-l-4 rsp-border-red-500 rsp-p-4 rsp-mb-6", children: /* @__PURE__ */ r("div", { className: "rsp-flex", children: [
|
|
386
|
+
/* @__PURE__ */ e("div", { className: "rsp-flex-shrink-0", children: /* @__PURE__ */ e(fe, { className: "rsp-h-5 rsp-w-5 rsp-text-red-400" }) }),
|
|
387
|
+
/* @__PURE__ */ e("div", { className: "rsp-ml-3", children: /* @__PURE__ */ e("p", { className: "rsp-text-sm rsp-text-red-700", children: x }) })
|
|
359
388
|
] }) }),
|
|
360
389
|
/* @__PURE__ */ e("div", { className: "rsp-mb-6", children: /* @__PURE__ */ e("div", { className: "rsp-relative", children: /* @__PURE__ */ e(
|
|
361
390
|
"input",
|
|
362
391
|
{
|
|
363
392
|
type: "text",
|
|
364
393
|
placeholder: "Search by name or ID...",
|
|
365
|
-
value:
|
|
366
|
-
onChange: (
|
|
394
|
+
value: b,
|
|
395
|
+
onChange: (h) => M(h.target.value),
|
|
367
396
|
className: "rsp-w-full rsp-px-0 rsp-py-3 rsp-border-0 rsp-border-b rsp-border-gray-300 rsp-text-sm focus:rsp-outline-none focus:rsp-border-blue-500 rsp-bg-transparent"
|
|
368
397
|
}
|
|
369
398
|
) }) }),
|
|
@@ -376,10 +405,10 @@ function ga() {
|
|
|
376
405
|
/* @__PURE__ */ e("div", { className: "rsp-flex rsp-items-center", children: /* @__PURE__ */ r(
|
|
377
406
|
"select",
|
|
378
407
|
{
|
|
379
|
-
value:
|
|
380
|
-
onChange: (
|
|
408
|
+
value: c,
|
|
409
|
+
onChange: (h) => p(h.target.value),
|
|
381
410
|
className: "rsp-cursor-pointer rsp-ml-2 rsp-bg-transparent rsp-text-white rsp-border-0 rsp-text-sm focus:rsp-outline-none ",
|
|
382
|
-
onClick: (
|
|
411
|
+
onClick: (h) => h.stopPropagation(),
|
|
383
412
|
children: [
|
|
384
413
|
/* @__PURE__ */ e("option", { value: "all", className: "rsp-text-gray-900", children: "All" }),
|
|
385
414
|
/* @__PURE__ */ e("option", { value: "utility", className: "rsp-text-gray-900", children: "Utility" }),
|
|
@@ -395,10 +424,10 @@ function ga() {
|
|
|
395
424
|
/* @__PURE__ */ e("div", { className: "rsp-flex rsp-items-center", children: /* @__PURE__ */ r(
|
|
396
425
|
"select",
|
|
397
426
|
{
|
|
398
|
-
value:
|
|
399
|
-
onChange: (
|
|
427
|
+
value: g,
|
|
428
|
+
onChange: (h) => v(h.target.value),
|
|
400
429
|
className: "rsp-cursor-pointer rsp-ml-2 rsp-bg-transparent rsp-text-white rsp-border-0 rsp-text-sm focus:rsp-outline-none",
|
|
401
|
-
onClick: (
|
|
430
|
+
onClick: (h) => h.stopPropagation(),
|
|
402
431
|
children: [
|
|
403
432
|
/* @__PURE__ */ e("option", { value: "all", className: "rsp-text-gray-900", children: "All" }),
|
|
404
433
|
/* @__PURE__ */ e("option", { value: "pending", className: "rsp-text-gray-900", children: "Pending" }),
|
|
@@ -410,75 +439,94 @@ function ga() {
|
|
|
410
439
|
] }) }),
|
|
411
440
|
/* @__PURE__ */ e("th", { className: "rsp-px-6 rsp-py-3 rsp-text-left rsp-text-sm rsp-font-medium", children: "Created" }),
|
|
412
441
|
/* @__PURE__ */ e("th", { className: "rsp-px-6 rsp-py-3 rsp-text-left rsp-text-sm rsp-font-medium", children: "Updated" }),
|
|
413
|
-
/* @__PURE__ */ e("th", { className: "rsp-px-6 rsp-py-3 rsp-text-left rsp-text-sm rsp-font-medium", children: "Media" })
|
|
442
|
+
/* @__PURE__ */ e("th", { className: "rsp-px-6 rsp-py-3 rsp-text-left rsp-text-sm rsp-font-medium", children: "Media" }),
|
|
443
|
+
/* @__PURE__ */ e("th", { className: "rsp-px-6 rsp-py-3 rsp-text-left rsp-text-sm rsp-font-medium", children: "Actions" })
|
|
414
444
|
] }) }),
|
|
415
|
-
/* @__PURE__ */ e("tbody", { children:
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
"
|
|
419
|
-
|
|
420
|
-
className:
|
|
421
|
-
children:
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
445
|
+
/* @__PURE__ */ e("tbody", { children: I.length > 0 ? I.map((h, L) => /* @__PURE__ */ r(
|
|
446
|
+
"tr",
|
|
447
|
+
{
|
|
448
|
+
className: `rsp-border-b rsp-border-gray-200 ${L % 2 === 0 ? "rsp-bg-white" : "rsp-bg-blue-50"} hover:rsp-bg-blue-100 rsp-transition-colors`,
|
|
449
|
+
children: [
|
|
450
|
+
/* @__PURE__ */ e("td", { className: "rsp-px-6 rsp-py-4 rsp-text-sm rsp-text-gray-900", children: h.id }),
|
|
451
|
+
/* @__PURE__ */ e("td", { className: "rsp-px-6 rsp-py-4 rsp-text-sm rsp-text-gray-900 rsp-font-medium", children: h.name }),
|
|
452
|
+
/* @__PURE__ */ e("td", { className: "rsp-px-6 rsp-py-4 rsp-text-sm rsp-text-gray-700 rsp-capitalize", children: h.category }),
|
|
453
|
+
/* @__PURE__ */ e("td", { className: "rsp-px-6 rsp-py-4 rsp-text-sm rsp-text-gray-700", children: h.language }),
|
|
454
|
+
/* @__PURE__ */ e("td", { className: "rsp-px-6 rsp-py-4 rsp-text-sm rsp-text-gray-700", children: h.type }),
|
|
455
|
+
/* @__PURE__ */ e("td", { className: "rsp-px-6 rsp-py-4", children: /* @__PURE__ */ e("span", { className: `rsp-inline-flex rsp-px-3 rsp-py-1 rsp-rounded-full rsp-text-xs rsp-font-medium
|
|
456
|
+
${h.status.toLowerCase() === "approved" ? "rsp-bg-green-100 rsp-text-green-800" : h.status.toLowerCase() === "rejected" ? "rsp-bg-red-100 rsp-text-red-800" : "rsp-bg-yellow-100 rsp-text-yellow-800"}`, children: h.status }) }),
|
|
457
|
+
/* @__PURE__ */ e("td", { className: "rsp-px-6 rsp-py-4 rsp-text-sm rsp-text-gray-700", children: h.creation_time ? new Date(h.creation_time).toLocaleDateString() : "N/A" }),
|
|
458
|
+
/* @__PURE__ */ e("td", { className: "rsp-px-6 rsp-py-4 rsp-text-sm rsp-text-gray-700", children: h.updation_time ? new Date(h.updation_time).toLocaleDateString() : "N/A" }),
|
|
459
|
+
/* @__PURE__ */ e("td", { className: "rsp-px-6 rsp-py-4 rsp-text-sm rsp-text-gray-700", children: h.medialist && typeof h.medialist == "object" && "header" in h.medialist && h.medialist.header ? /* @__PURE__ */ r(
|
|
460
|
+
"button",
|
|
461
|
+
{
|
|
462
|
+
onClick: () => O(String(h.medialist.header || ""), h.name),
|
|
463
|
+
className: "rsp-inline-flex rsp-items-center rsp-px-3 rsp-py-1 rsp-rounded rsp-text-xs rsp-font-medium rsp-bg-blue-100 rsp-text-blue-800 hover:rsp-bg-blue-200 rsp-transition-colors",
|
|
464
|
+
children: [
|
|
465
|
+
/* @__PURE__ */ r("svg", { className: "rsp-w-3 rsp-h-3 rsp-mr-1", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: [
|
|
466
|
+
/* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 12a3 3 0 11-6 0 3 3 0 016 0z" }),
|
|
467
|
+
/* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z" })
|
|
468
|
+
] }),
|
|
469
|
+
/* @__PURE__ */ e("span", { children: "View Media" })
|
|
470
|
+
]
|
|
471
|
+
}
|
|
472
|
+
) : /* @__PURE__ */ e("span", { className: "rsp-inline-flex rsp-px-2 rsp-py-1 rsp-rounded-full rsp-text-xs rsp-font-medium rsp-bg-gray-100 rsp-text-gray-800", children: "No Media" }) }),
|
|
473
|
+
/* @__PURE__ */ e("td", { className: "rsp-px-6 rsp-py-4", children: /* @__PURE__ */ r("div", { className: "rsp-flex rsp-gap-2", children: [
|
|
474
|
+
/* @__PURE__ */ e(
|
|
432
475
|
"button",
|
|
433
476
|
{
|
|
434
|
-
onClick: () =>
|
|
435
|
-
className: "rsp-inline-flex rsp-items-center rsp-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
/* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 12a3 3 0 11-6 0 3 3 0 016 0z" }),
|
|
439
|
-
/* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z" })
|
|
440
|
-
] }),
|
|
441
|
-
/* @__PURE__ */ e("span", { children: "View Media" })
|
|
442
|
-
]
|
|
477
|
+
onClick: () => a(`/create?edit=${encodeURIComponent(String(h.id))}`),
|
|
478
|
+
className: "rsp-inline-flex rsp-items-center rsp-justify-center rsp-w-8 rsp-h-8 rsp-rounded rsp-bg-blue-600 rsp-text-white hover:rsp-bg-blue-700 rsp-transition-colors",
|
|
479
|
+
title: "Update",
|
|
480
|
+
children: /* @__PURE__ */ e(Ke, { className: "rsp-w-4 rsp-h-4" })
|
|
443
481
|
}
|
|
444
|
-
)
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
482
|
+
),
|
|
483
|
+
/* @__PURE__ */ e(
|
|
484
|
+
"button",
|
|
485
|
+
{
|
|
486
|
+
onClick: () => N({ isOpen: !0, templateId: String(h.id), templateName: h.name }),
|
|
487
|
+
disabled: k === h.id,
|
|
488
|
+
className: `rsp-inline-flex rsp-items-center rsp-justify-center rsp-w-8 rsp-h-8 rsp-rounded rsp-text-white rsp-transition-colors ${k === h.id ? "rsp-bg-red-400" : "rsp-bg-red-600 hover:rsp-bg-red-700"}`,
|
|
489
|
+
title: k === h.id ? "Deleting..." : "Delete",
|
|
490
|
+
children: /* @__PURE__ */ e(Xe, { className: "rsp-w-4 rsp-h-4" })
|
|
491
|
+
}
|
|
492
|
+
)
|
|
493
|
+
] }) })
|
|
494
|
+
]
|
|
495
|
+
},
|
|
496
|
+
h.id
|
|
497
|
+
)) : /* @__PURE__ */ e("tr", { children: /* @__PURE__ */ e("td", { colSpan: 9, className: "rsp-px-6 rsp-py-8 rsp-text-center rsp-text-gray-500", children: "No templates found" }) }) })
|
|
450
498
|
] }) }) }),
|
|
451
|
-
|
|
499
|
+
I.length > 0 && /* @__PURE__ */ r("div", { className: "rsp-flex rsp-justify-between rsp-items-center rsp-mt-6 rsp-px-6 rsp-py-4 rsp-bg-white rsp-rounded-lg rsp-shadow-sm rsp-border rsp-border-gray-200", children: [
|
|
452
500
|
/* @__PURE__ */ r("div", { className: "rsp-text-sm rsp-text-gray-700", children: [
|
|
453
501
|
"Showing ",
|
|
454
|
-
/* @__PURE__ */ e("span", { className: "rsp-font-medium", children:
|
|
502
|
+
/* @__PURE__ */ e("span", { className: "rsp-font-medium", children: S + 1 }),
|
|
455
503
|
" to ",
|
|
456
|
-
/* @__PURE__ */ e("span", { className: "rsp-font-medium", children: Math.min(
|
|
504
|
+
/* @__PURE__ */ e("span", { className: "rsp-font-medium", children: Math.min(j, m.length) }),
|
|
457
505
|
" of ",
|
|
458
|
-
/* @__PURE__ */ e("span", { className: "rsp-font-medium", children:
|
|
506
|
+
/* @__PURE__ */ e("span", { className: "rsp-font-medium", children: m.length }),
|
|
459
507
|
" results"
|
|
460
508
|
] }),
|
|
461
509
|
/* @__PURE__ */ r("div", { className: "rsp-flex rsp-gap-2", children: [
|
|
462
510
|
/* @__PURE__ */ e(
|
|
463
511
|
"button",
|
|
464
512
|
{
|
|
465
|
-
onClick: () =>
|
|
466
|
-
disabled:
|
|
513
|
+
onClick: () => V((h) => Math.max(h - 1, 1)),
|
|
514
|
+
disabled: u === 1,
|
|
467
515
|
className: "rsp-px-4 rsp-py-2 rsp-text-sm rsp-font-medium rsp-text-gray-700 rsp-bg-white rsp-border rsp-border-gray-300 rsp-rounded-md hover:rsp-bg-gray-50 disabled:rsp-opacity-50 disabled:rsp-cursor-not-allowed rsp-transition-colors",
|
|
468
516
|
children: "Previous"
|
|
469
517
|
}
|
|
470
518
|
),
|
|
471
519
|
/* @__PURE__ */ r("span", { className: "rsp-px-4 rsp-py-2 rsp-text-sm rsp-font-medium rsp-text-gray-700", children: [
|
|
472
520
|
"Page ",
|
|
473
|
-
|
|
521
|
+
u,
|
|
474
522
|
" of ",
|
|
475
|
-
|
|
523
|
+
C
|
|
476
524
|
] }),
|
|
477
525
|
/* @__PURE__ */ e(
|
|
478
526
|
"button",
|
|
479
527
|
{
|
|
480
|
-
onClick: () =>
|
|
481
|
-
disabled:
|
|
528
|
+
onClick: () => V((h) => Math.min(h + 1, C)),
|
|
529
|
+
disabled: u === C,
|
|
482
530
|
className: "rsp-px-4 rsp-py-2 rsp-text-sm rsp-font-medium rsp-text-gray-700 rsp-bg-white rsp-border rsp-border-gray-300 rsp-rounded-md hover:rsp-bg-gray-50 disabled:rsp-opacity-50 disabled:rsp-cursor-not-allowed rsp-transition-colors",
|
|
483
531
|
children: "Next"
|
|
484
532
|
}
|
|
@@ -486,34 +534,32 @@ function ga() {
|
|
|
486
534
|
] })
|
|
487
535
|
] }),
|
|
488
536
|
/* @__PURE__ */ e(
|
|
489
|
-
|
|
537
|
+
te,
|
|
490
538
|
{
|
|
491
|
-
isOpen:
|
|
492
|
-
onClose:
|
|
493
|
-
title: `Media - ${
|
|
539
|
+
isOpen: d.isOpen,
|
|
540
|
+
onClose: R,
|
|
541
|
+
title: `Media - ${d.templateName || "Template"}`,
|
|
494
542
|
children: /* @__PURE__ */ r("div", { className: "rsp-space-y-4", children: [
|
|
495
|
-
|
|
543
|
+
d.url && /* @__PURE__ */ r("div", { className: "rsp-text-center", children: [
|
|
496
544
|
/* @__PURE__ */ r("div", { className: "rsp-relative rsp-bg-gray-50 rsp-rounded-lg rsp-p-4 rsp-min-h-[200px] rsp-flex rsp-items-center rsp-justify-center", children: [
|
|
497
545
|
/* @__PURE__ */ e(
|
|
498
546
|
"img",
|
|
499
547
|
{
|
|
500
|
-
src:
|
|
548
|
+
src: d.url,
|
|
501
549
|
alt: "Template media",
|
|
502
550
|
className: "rsp-max-w-full rsp-max-h-[400px] rsp-mx-auto rsp-rounded-lg rsp-shadow-md rsp-object-contain",
|
|
503
|
-
onLoad: (
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
M && (M.style.display = "none");
|
|
551
|
+
onLoad: (h) => {
|
|
552
|
+
const L = h.currentTarget.parentElement, z = L == null ? void 0 : L.querySelector(".loading-placeholder");
|
|
553
|
+
z && (z.style.display = "none");
|
|
507
554
|
},
|
|
508
|
-
onError: (
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
M && (M.style.display = "block");
|
|
555
|
+
onError: (h) => {
|
|
556
|
+
h.currentTarget.style.display = "none";
|
|
557
|
+
const L = h.currentTarget.parentElement, z = L == null ? void 0 : L.querySelector(".error-placeholder");
|
|
558
|
+
z && (z.style.display = "block");
|
|
513
559
|
}
|
|
514
560
|
}
|
|
515
561
|
),
|
|
516
|
-
|
|
562
|
+
n && /* @__PURE__ */ e("div", { className: "loading-placeholder rsp-absolute rsp-inset-0 rsp-flex rsp-items-center rsp-justify-center", children: /* @__PURE__ */ e("div", { className: "rsp-text-gray-500 rsp-text-sm", children: "Loading media..." }) }),
|
|
517
563
|
/* @__PURE__ */ r("div", { className: "error-placeholder rsp-absolute rsp-inset-0 rsp-flex rsp-flex-col rsp-items-center rsp-justify-center", style: { display: "none" }, children: [
|
|
518
564
|
/* @__PURE__ */ e("svg", { className: "rsp-w-[100%] rsp-h-12 rsp-text-gray-400 rsp-m-2", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z" }) }),
|
|
519
565
|
/* @__PURE__ */ e("p", { className: "rsp-text-gray-500 rsp-text-sm rsp-mb-2", children: "Load media on new tab" })
|
|
@@ -521,13 +567,13 @@ function ga() {
|
|
|
521
567
|
] }),
|
|
522
568
|
/* @__PURE__ */ r("div", { className: "rsp-mt-4 rsp-p-3 rsp-bg-gray-50 rsp-rounded-lg", children: [
|
|
523
569
|
/* @__PURE__ */ e("p", { className: "rsp-text-xs rsp-text-gray-600 rsp-mb-1", children: "Media URL:" }),
|
|
524
|
-
/* @__PURE__ */ e("p", { className: "rsp-text-xs rsp-text-gray-800 rsp-break-all rsp-font-mono", children:
|
|
570
|
+
/* @__PURE__ */ e("p", { className: "rsp-text-xs rsp-text-gray-800 rsp-break-all rsp-font-mono", children: d.url })
|
|
525
571
|
] })
|
|
526
572
|
] }),
|
|
527
573
|
/* @__PURE__ */ e("div", { className: "rsp-flex rsp-justify-end rsp-pt-4", children: /* @__PURE__ */ r(
|
|
528
574
|
"a",
|
|
529
575
|
{
|
|
530
|
-
href:
|
|
576
|
+
href: d.url,
|
|
531
577
|
target: "_blank",
|
|
532
578
|
rel: "noopener noreferrer",
|
|
533
579
|
className: "rsp-inline-flex rsp-items-center rsp-px-4 rsp-py-2 rsp-bg-blue-600 rsp-text-white rsp-text-sm rsp-font-medium rsp-rounded-md hover:rsp-bg-blue-700 rsp-transition-colors",
|
|
@@ -539,70 +585,101 @@ function ga() {
|
|
|
539
585
|
) })
|
|
540
586
|
] })
|
|
541
587
|
}
|
|
588
|
+
),
|
|
589
|
+
/* @__PURE__ */ e(
|
|
590
|
+
te,
|
|
591
|
+
{
|
|
592
|
+
isOpen: o.isOpen,
|
|
593
|
+
onClose: () => N({ isOpen: !1 }),
|
|
594
|
+
title: "Delete Template",
|
|
595
|
+
children: /* @__PURE__ */ r("div", { className: "rsp-space-y-4", children: [
|
|
596
|
+
/* @__PURE__ */ r("p", { className: "rsp-text-sm rsp-text-gray-700", children: [
|
|
597
|
+
"Are you sure you want to delete the template ",
|
|
598
|
+
/* @__PURE__ */ e("span", { className: "rsp-font-medium", children: o.templateName }),
|
|
599
|
+
"?"
|
|
600
|
+
] }),
|
|
601
|
+
/* @__PURE__ */ r("div", { className: "rsp-flex rsp-justify-end rsp-gap-3", children: [
|
|
602
|
+
/* @__PURE__ */ e("button", { onClick: () => N({ isOpen: !1 }), className: "rsp-px-4 rsp-py-2 rsp-text-sm rsp-font-medium rsp-text-gray-700 rsp-bg-white rsp-border rsp-border-gray-300 rsp-rounded-md hover:rsp-bg-gray-50", children: "Cancel" }),
|
|
603
|
+
/* @__PURE__ */ e(
|
|
604
|
+
"button",
|
|
605
|
+
{
|
|
606
|
+
onClick: () => o.templateId && _(o.templateId),
|
|
607
|
+
className: "rsp-px-4 rsp-py-2 rsp-text-sm rsp-font-medium rsp-text-white rsp-bg-red-600 rsp-rounded-md hover:rsp-bg-red-700",
|
|
608
|
+
children: "Delete"
|
|
609
|
+
}
|
|
610
|
+
)
|
|
611
|
+
] })
|
|
612
|
+
] })
|
|
613
|
+
}
|
|
542
614
|
)
|
|
543
615
|
] });
|
|
544
616
|
}
|
|
545
|
-
const
|
|
546
|
-
var i,
|
|
617
|
+
const Ze = async (a, s) => {
|
|
618
|
+
var i, n, t, x, l, k, w;
|
|
547
619
|
try {
|
|
548
|
-
console.log("Creating template with data:",
|
|
549
|
-
const
|
|
550
|
-
let
|
|
551
|
-
|
|
552
|
-
const
|
|
620
|
+
console.log("Creating template with data:", s);
|
|
621
|
+
const o = s.language, N = s.headerType === "MEDIA" && s.mediaType === "DOCUMENT", U = s.type === "CAROUSEL";
|
|
622
|
+
let f = "";
|
|
623
|
+
N ? f = je(s, o) : U ? f = Re(s, o) : f = Ie(s, o), console.log("Raw JSON string being sent:", f);
|
|
624
|
+
const b = {
|
|
553
625
|
method: "POST",
|
|
554
626
|
headers: {
|
|
555
627
|
"Content-Type": "application/json"
|
|
556
628
|
},
|
|
557
|
-
body:
|
|
629
|
+
body: f,
|
|
558
630
|
redirect: "follow"
|
|
559
631
|
};
|
|
560
632
|
console.log(
|
|
561
633
|
"Making request to:",
|
|
562
634
|
`https://wpapi.trustsignal.io/api/v1/template?api_key=${a}`
|
|
563
|
-
), console.log("Request options:",
|
|
564
|
-
const
|
|
635
|
+
), console.log("Request options:", b);
|
|
636
|
+
const M = await fetch(
|
|
565
637
|
`https://wpapi.trustsignal.io/api/v1/template?api_key=${a}`,
|
|
566
|
-
|
|
638
|
+
b
|
|
567
639
|
);
|
|
568
|
-
console.log("Response status:",
|
|
640
|
+
console.log("Response status:", M.status), console.log(
|
|
569
641
|
"Response headers:",
|
|
570
|
-
Object.fromEntries(
|
|
642
|
+
Object.fromEntries(M.headers.entries())
|
|
571
643
|
);
|
|
572
|
-
const
|
|
573
|
-
console.log("Raw response:",
|
|
574
|
-
const
|
|
575
|
-
if (console.log("Parsed response:",
|
|
576
|
-
throw new Error(
|
|
644
|
+
const g = await M.text();
|
|
645
|
+
console.log("Raw response:", g);
|
|
646
|
+
const v = JSON.parse(g);
|
|
647
|
+
if (console.log("Parsed response:", v), !v.success)
|
|
648
|
+
throw new Error(v.message || "Template creation failed");
|
|
577
649
|
return {
|
|
578
650
|
status: "success",
|
|
579
651
|
message: "Template created successfully",
|
|
580
652
|
data: {
|
|
581
|
-
template:
|
|
653
|
+
template: v.template,
|
|
582
654
|
details: [
|
|
583
655
|
{
|
|
584
|
-
template_name: ((i =
|
|
585
|
-
template_id: ((
|
|
586
|
-
meta_tid: (
|
|
587
|
-
status: (
|
|
588
|
-
quality: (
|
|
589
|
-
temp_route: (
|
|
590
|
-
temptype: (
|
|
656
|
+
template_name: ((i = v.template) == null ? void 0 : i.name) || s.name,
|
|
657
|
+
template_id: ((n = v.template) == null ? void 0 : n.id) || "unknown",
|
|
658
|
+
meta_tid: (t = v.template) == null ? void 0 : t.meta_tid,
|
|
659
|
+
status: (x = v.template) == null ? void 0 : x.status,
|
|
660
|
+
quality: (l = v.template) == null ? void 0 : l.quality,
|
|
661
|
+
temp_route: (k = v.template) == null ? void 0 : k.temp_route,
|
|
662
|
+
temptype: (w = v.template) == null ? void 0 : w.temptype
|
|
591
663
|
}
|
|
592
664
|
]
|
|
593
665
|
}
|
|
594
666
|
};
|
|
595
|
-
} catch (
|
|
596
|
-
return console.error("TrustSignal API Error:",
|
|
667
|
+
} catch (o) {
|
|
668
|
+
return console.error("TrustSignal API Error:", o), {
|
|
597
669
|
status: "error",
|
|
598
|
-
message:
|
|
670
|
+
message: o instanceof Error ? o.message : "Failed to create template"
|
|
599
671
|
};
|
|
600
672
|
}
|
|
601
|
-
}
|
|
602
|
-
|
|
673
|
+
};
|
|
674
|
+
function ea(a) {
|
|
675
|
+
const s = a.language, i = a.headerType === "MEDIA" && a.mediaType === "DOCUMENT", n = a.type === "CAROUSEL";
|
|
676
|
+
return i ? je(a, s) : n ? Re(a, s) : Ie(a, s);
|
|
677
|
+
}
|
|
678
|
+
const je = (a, s) => {
|
|
679
|
+
var x, l;
|
|
603
680
|
const i = {
|
|
604
681
|
name: a.name,
|
|
605
|
-
lang:
|
|
682
|
+
lang: s,
|
|
606
683
|
category: a.category,
|
|
607
684
|
components: []
|
|
608
685
|
// Components should be an array
|
|
@@ -613,72 +690,72 @@ const De = async (a, n) => {
|
|
|
613
690
|
type: "HEADER",
|
|
614
691
|
format: "DOCUMENT"
|
|
615
692
|
}));
|
|
616
|
-
const
|
|
693
|
+
const n = ee(a.body), t = {
|
|
617
694
|
type: "BODY",
|
|
618
695
|
text: a.body
|
|
619
696
|
};
|
|
620
|
-
if (
|
|
621
|
-
const
|
|
622
|
-
|
|
623
|
-
body_text: [
|
|
697
|
+
if (n.length > 0 && ((x = a.sampleContent) != null && x.bodyVariables)) {
|
|
698
|
+
const k = be(a, n);
|
|
699
|
+
t.example = {
|
|
700
|
+
body_text: [k]
|
|
624
701
|
// This creates the required nested array
|
|
625
702
|
};
|
|
626
703
|
}
|
|
627
|
-
if (i.components.push(
|
|
704
|
+
if (i.components.push(t), (l = a.footer) != null && l.trim() && i.components.push({
|
|
628
705
|
type: "FOOTER",
|
|
629
706
|
text: a.footer
|
|
630
707
|
}), a.buttons && a.buttons.length > 0) {
|
|
631
|
-
const
|
|
632
|
-
var
|
|
633
|
-
const
|
|
634
|
-
type:
|
|
635
|
-
text:
|
|
708
|
+
const k = a.buttons.map((w) => {
|
|
709
|
+
var N;
|
|
710
|
+
const o = {
|
|
711
|
+
type: w.type === "CALL" ? "PHONE_NUMBER" : w.type,
|
|
712
|
+
text: w.text
|
|
636
713
|
};
|
|
637
|
-
if (
|
|
638
|
-
const
|
|
639
|
-
if (
|
|
640
|
-
const
|
|
641
|
-
({ number:
|
|
642
|
-
var
|
|
643
|
-
return ((
|
|
714
|
+
if (w.type === "URL" && w.value && (o.url = w.value, w.urlType === "dynamic" && w.value.includes("{{"))) {
|
|
715
|
+
const U = ee(w.value);
|
|
716
|
+
if (U.length > 0 && ((N = a.sampleContent) != null && N.buttonVariables)) {
|
|
717
|
+
const f = U.map(
|
|
718
|
+
({ number: b }) => {
|
|
719
|
+
var M, g;
|
|
720
|
+
return ((g = (M = a.sampleContent) == null ? void 0 : M.buttonVariables) == null ? void 0 : g[b]) || `sample${b}`;
|
|
644
721
|
}
|
|
645
722
|
);
|
|
646
|
-
|
|
723
|
+
o.example = f;
|
|
647
724
|
}
|
|
648
725
|
}
|
|
649
|
-
return (
|
|
726
|
+
return (w.type === "CALL" || w.type === "PHONE_NUMBER") && w.value && (o.phone_number = ue(w.value)), o;
|
|
650
727
|
});
|
|
651
728
|
i.components.push({
|
|
652
729
|
type: "BUTTONS",
|
|
653
|
-
buttons:
|
|
730
|
+
buttons: k
|
|
654
731
|
});
|
|
655
732
|
}
|
|
656
733
|
return JSON.stringify(i);
|
|
657
|
-
},
|
|
658
|
-
var
|
|
734
|
+
}, Re = (a, s) => {
|
|
735
|
+
var l, k, w;
|
|
659
736
|
const i = {
|
|
660
737
|
name: a.name,
|
|
661
|
-
lang:
|
|
738
|
+
lang: s,
|
|
662
739
|
category: a.category,
|
|
663
740
|
shortlink: a.enableClickTracking ? "1" : "0",
|
|
664
741
|
components: []
|
|
665
742
|
};
|
|
666
|
-
(
|
|
667
|
-
|
|
743
|
+
(l = a.carousel) != null && l.cards.length && (i.media = {}, a.carousel.cards.forEach((o, N) => {
|
|
744
|
+
o.mediaUrl && (i.media[`card${N}header`] = o.mediaUrl);
|
|
668
745
|
}));
|
|
669
|
-
const
|
|
746
|
+
const n = [], t = ee(a.body), x = {
|
|
670
747
|
type: "BODY",
|
|
671
748
|
text: a.body,
|
|
672
|
-
...
|
|
749
|
+
...t.length > 0 && ((k = a.sampleContent) == null ? void 0 : k.bodyVariables) && {
|
|
673
750
|
example: {
|
|
674
|
-
body_text: [
|
|
751
|
+
body_text: [be(a, t)]
|
|
675
752
|
}
|
|
676
753
|
}
|
|
677
754
|
};
|
|
678
|
-
if (
|
|
679
|
-
const
|
|
755
|
+
if (n.push(x), (w = a.carousel) != null && w.cards.length) {
|
|
756
|
+
const o = {
|
|
680
757
|
type: "CAROUSEL",
|
|
681
|
-
cards: a.carousel.cards.map((
|
|
758
|
+
cards: a.carousel.cards.map((N) => {
|
|
682
759
|
var U;
|
|
683
760
|
return {
|
|
684
761
|
components: [
|
|
@@ -688,47 +765,47 @@ const De = async (a, n) => {
|
|
|
688
765
|
},
|
|
689
766
|
{
|
|
690
767
|
type: "BODY",
|
|
691
|
-
text:
|
|
692
|
-
...
|
|
768
|
+
text: N.body,
|
|
769
|
+
...ee(N.body).length > 0 && {
|
|
693
770
|
example: {
|
|
694
|
-
body_text: [
|
|
771
|
+
body_text: [aa(N)]
|
|
695
772
|
}
|
|
696
773
|
}
|
|
697
774
|
},
|
|
698
|
-
...
|
|
775
|
+
...N.buttons.length > 0 ? [{
|
|
699
776
|
type: "BUTTONS",
|
|
700
|
-
buttons:
|
|
701
|
-
var
|
|
702
|
-
const
|
|
703
|
-
type:
|
|
704
|
-
text:
|
|
777
|
+
buttons: N.buttons.map((f) => {
|
|
778
|
+
var M;
|
|
779
|
+
const b = {
|
|
780
|
+
type: f.type === "CALL" ? "PHONE_NUMBER" : f.type,
|
|
781
|
+
text: f.text
|
|
705
782
|
};
|
|
706
|
-
if (
|
|
707
|
-
const
|
|
708
|
-
if (
|
|
709
|
-
const
|
|
710
|
-
|
|
783
|
+
if (f.type === "URL" && f.value && (b.url = f.value, f.urlType === "dynamic" && f.value.includes("{{"))) {
|
|
784
|
+
const g = ee(f.value);
|
|
785
|
+
if (g.length > 0) {
|
|
786
|
+
const v = ((M = N == null ? void 0 : N.sampleContent) == null ? void 0 : M.buttonVariables) || {}, c = g.map(({ number: p }) => v[p] || `sample${p}`);
|
|
787
|
+
b.example = c;
|
|
711
788
|
}
|
|
712
789
|
}
|
|
713
|
-
return (
|
|
790
|
+
return (f.type === "CALL" || f.type === "PHONE_NUMBER") && f.value && (b.phone_number = ue(f.value)), console.log("Carousel card button data:", b), b;
|
|
714
791
|
})
|
|
715
792
|
}] : []
|
|
716
793
|
]
|
|
717
794
|
};
|
|
718
795
|
})
|
|
719
796
|
};
|
|
720
|
-
|
|
797
|
+
n.push(o);
|
|
721
798
|
}
|
|
722
|
-
return i.components =
|
|
723
|
-
},
|
|
724
|
-
var
|
|
725
|
-
const
|
|
726
|
-
return
|
|
727
|
-
},
|
|
728
|
-
var
|
|
799
|
+
return i.components = n, JSON.stringify(i);
|
|
800
|
+
}, aa = (a) => {
|
|
801
|
+
var n;
|
|
802
|
+
const s = ee(a.body || ""), i = ((n = a == null ? void 0 : a.sampleContent) == null ? void 0 : n.bodyVariables) || {};
|
|
803
|
+
return s.map(({ number: t }) => i[t] || `Sample ${t}`);
|
|
804
|
+
}, Ie = (a, s) => {
|
|
805
|
+
var l, k;
|
|
729
806
|
const i = {
|
|
730
807
|
name: a.name,
|
|
731
|
-
lang:
|
|
808
|
+
lang: s,
|
|
732
809
|
category: a.category,
|
|
733
810
|
shortlink: a.enableClickTracking ? "1" : "0",
|
|
734
811
|
components: []
|
|
@@ -736,94 +813,229 @@ const De = async (a, n) => {
|
|
|
736
813
|
a.headerType === "MEDIA" && a.mediaUrl && a.mediaType !== "DOCUMENT" && (i.media = {
|
|
737
814
|
header: a.mediaUrl
|
|
738
815
|
});
|
|
739
|
-
const
|
|
816
|
+
const n = [];
|
|
740
817
|
if (a.type !== "CAROUSEL") {
|
|
741
818
|
if (a.headerType === "TEXT" && a.headerText) {
|
|
742
|
-
const
|
|
819
|
+
const w = ee(a.headerText), o = {
|
|
743
820
|
type: "HEADER",
|
|
744
821
|
format: "TEXT",
|
|
745
822
|
text: a.headerText,
|
|
746
|
-
...
|
|
823
|
+
...w.length > 0 && ((l = a.sampleContent) == null ? void 0 : l.headerVariables) && {
|
|
747
824
|
example: {
|
|
748
|
-
header_text:
|
|
825
|
+
header_text: ra(a, w)
|
|
749
826
|
}
|
|
750
827
|
}
|
|
751
828
|
};
|
|
752
|
-
|
|
829
|
+
n.push(o);
|
|
753
830
|
} else if (a.headerType === "MEDIA") {
|
|
754
|
-
const
|
|
831
|
+
const w = {
|
|
755
832
|
type: "HEADER",
|
|
756
833
|
format: a.mediaType || "IMAGE"
|
|
757
834
|
};
|
|
758
|
-
|
|
835
|
+
n.push(w);
|
|
759
836
|
}
|
|
760
837
|
}
|
|
761
|
-
const
|
|
838
|
+
const t = ee(a.body), x = {
|
|
762
839
|
type: "BODY",
|
|
763
840
|
text: a.body,
|
|
764
|
-
...
|
|
841
|
+
...t.length > 0 && ((k = a.sampleContent) == null ? void 0 : k.bodyVariables) && {
|
|
765
842
|
example: {
|
|
766
|
-
body_text: [
|
|
843
|
+
body_text: [be(a, t)]
|
|
767
844
|
}
|
|
768
845
|
}
|
|
769
846
|
};
|
|
770
|
-
if (
|
|
847
|
+
if (n.push(x), a.footer && a.type !== "CAROUSEL" && n.push({
|
|
771
848
|
type: "FOOTER",
|
|
772
849
|
text: a.footer
|
|
773
850
|
}), a.buttons.length > 0) {
|
|
774
|
-
const
|
|
775
|
-
var
|
|
776
|
-
const
|
|
777
|
-
type:
|
|
778
|
-
text:
|
|
851
|
+
const w = a.buttons.map((o) => {
|
|
852
|
+
var U;
|
|
853
|
+
const N = {
|
|
854
|
+
type: o.type === "CALL" ? "PHONE_NUMBER" : o.type,
|
|
855
|
+
text: o.text
|
|
779
856
|
};
|
|
780
|
-
if (
|
|
781
|
-
const
|
|
782
|
-
if (
|
|
783
|
-
const
|
|
784
|
-
({ number:
|
|
785
|
-
var
|
|
786
|
-
return ((
|
|
857
|
+
if (o.type === "URL" && o.value && (N.url = o.value, o.urlType === "dynamic" && o.value.includes("{{"))) {
|
|
858
|
+
const f = ee(o.value);
|
|
859
|
+
if (f.length > 0 && ((U = a.sampleContent) != null && U.buttonVariables)) {
|
|
860
|
+
const b = f.map(
|
|
861
|
+
({ number: M }) => {
|
|
862
|
+
var g, v;
|
|
863
|
+
return ((v = (g = a.sampleContent) == null ? void 0 : g.buttonVariables) == null ? void 0 : v[M]) || `sample${M}`;
|
|
787
864
|
}
|
|
788
865
|
);
|
|
789
|
-
|
|
866
|
+
N.example = b;
|
|
790
867
|
}
|
|
791
868
|
}
|
|
792
|
-
return (
|
|
869
|
+
return (o.type === "CALL" || o.type === "PHONE_NUMBER") && o.value && (N.phone_number = ue(o.value)), N;
|
|
793
870
|
});
|
|
794
|
-
|
|
871
|
+
n.push({
|
|
795
872
|
type: "BUTTONS",
|
|
796
|
-
buttons:
|
|
873
|
+
buttons: w
|
|
797
874
|
});
|
|
798
875
|
}
|
|
799
|
-
return i.components =
|
|
800
|
-
},
|
|
876
|
+
return i.components = n, JSON.stringify(i);
|
|
877
|
+
}, ee = (a) => (a.match(/\{\{(\d+)\}\}/g) || []).map((i) => ({
|
|
801
878
|
variable: i.replace(/[{}]/g, ""),
|
|
802
879
|
number: i.replace(/[{}]/g, "")
|
|
803
|
-
})),
|
|
880
|
+
})), ue = (a) => a.startsWith("+") ? a : `+${a}`, ra = (a, s) => s.map(
|
|
804
881
|
({ number: i }) => {
|
|
805
|
-
var
|
|
806
|
-
return ((
|
|
882
|
+
var n, t;
|
|
883
|
+
return ((t = (n = a.sampleContent) == null ? void 0 : n.headerVariables) == null ? void 0 : t[i]) || `Sample ${i}`;
|
|
807
884
|
}
|
|
808
|
-
),
|
|
885
|
+
), be = (a, s) => s.map(
|
|
809
886
|
({ number: i }) => {
|
|
810
|
-
var
|
|
811
|
-
return ((
|
|
887
|
+
var n, t;
|
|
888
|
+
return ((t = (n = a.sampleContent) == null ? void 0 : n.bodyVariables) == null ? void 0 : t[i]) || `Sample ${i}`;
|
|
812
889
|
}
|
|
813
|
-
),
|
|
890
|
+
), sa = async (a, s) => {
|
|
814
891
|
try {
|
|
815
|
-
if (!
|
|
892
|
+
if (!s.name || !s.body)
|
|
816
893
|
throw new Error("Missing required template fields: name and body are required");
|
|
817
894
|
if (!a.apiKey)
|
|
818
895
|
throw new Error("Missing TrustSignal API key");
|
|
819
|
-
return await
|
|
896
|
+
return await Ze(
|
|
897
|
+
a.apiKey,
|
|
898
|
+
s
|
|
899
|
+
);
|
|
820
900
|
} catch (i) {
|
|
821
901
|
return console.error("API Error:", i), {
|
|
822
902
|
status: "error",
|
|
823
903
|
message: i instanceof Error ? i.message : "An unexpected error occurred while creating the template"
|
|
824
904
|
};
|
|
825
905
|
}
|
|
826
|
-
}
|
|
906
|
+
};
|
|
907
|
+
async function na(a, s, i) {
|
|
908
|
+
const n = ea(i), x = {
|
|
909
|
+
method: "POST",
|
|
910
|
+
headers: { "Content-Type": "application/json" },
|
|
911
|
+
body: n,
|
|
912
|
+
redirect: "follow"
|
|
913
|
+
}, l = `https://wpapi.trustsignal.io/v1/user-templates/update/${encodeURIComponent(s)}?api_key=${encodeURIComponent(a)}`, k = await fetch(l, x), w = await k.text();
|
|
914
|
+
if (!k.ok)
|
|
915
|
+
return { success: !1, message: `Update failed (${k.status}): ${w}`, raw: n };
|
|
916
|
+
try {
|
|
917
|
+
const o = JSON.parse(w);
|
|
918
|
+
return { success: !!((o == null ? void 0 : o.success) ?? !0), message: o == null ? void 0 : o.message, raw: n };
|
|
919
|
+
} catch {
|
|
920
|
+
return { success: !0, raw: n };
|
|
921
|
+
}
|
|
922
|
+
}
|
|
923
|
+
async function ia(a, s) {
|
|
924
|
+
var k;
|
|
925
|
+
const i = `https://wpapi.trustsignal.io/api/v1/template/${encodeURIComponent(s)}?api_key=${encodeURIComponent(a)}`, n = await fetch(i, { method: "GET", redirect: "follow" });
|
|
926
|
+
if (!n.ok)
|
|
927
|
+
throw new Error(`Failed to fetch template ${s}: ${n.status}`);
|
|
928
|
+
const t = await n.text(), x = JSON.parse(t), l = x.template || ((k = x.data) == null ? void 0 : k.template) || x;
|
|
929
|
+
if (!l)
|
|
930
|
+
throw new Error("Invalid template details response");
|
|
931
|
+
return la(l);
|
|
932
|
+
}
|
|
933
|
+
function la(a) {
|
|
934
|
+
var N, U;
|
|
935
|
+
const s = {
|
|
936
|
+
headerVariables: {},
|
|
937
|
+
bodyVariables: {},
|
|
938
|
+
buttonVariables: {}
|
|
939
|
+
};
|
|
940
|
+
let i = "NONE", n = "", t, x, l = "", k = "";
|
|
941
|
+
const w = [];
|
|
942
|
+
if (a.jsonstruct)
|
|
943
|
+
try {
|
|
944
|
+
const f = JSON.parse(a.jsonstruct);
|
|
945
|
+
if (f != null && f.header) {
|
|
946
|
+
const b = f.header.format;
|
|
947
|
+
b && b !== "TEXT" ? (i = "MEDIA", t = b, x = f.header.url || ((N = a.medialist) == null ? void 0 : N.header)) : b === "TEXT" && (i = "TEXT", n = f.header.text || "");
|
|
948
|
+
}
|
|
949
|
+
if (f != null && f.body && (l = f.body.text || ""), (U = f == null ? void 0 : f.buttons) != null && U.buttons && Array.isArray(f.buttons.buttons))
|
|
950
|
+
for (const b of f.buttons.buttons) {
|
|
951
|
+
if (!b || !b.type || !b.text) continue;
|
|
952
|
+
const M = {
|
|
953
|
+
id: de(),
|
|
954
|
+
type: b.type === "PHONE_NUMBER" ? "PHONE_NUMBER" : b.type,
|
|
955
|
+
text: b.text
|
|
956
|
+
};
|
|
957
|
+
b.type === "URL" && (M.value = b.url, typeof b.url == "string" && b.url.includes("{{") && Array.isArray(b.example) ? (Ce(b.url).forEach((v, c) => {
|
|
958
|
+
s.buttonVariables[v] = b.example[c] ?? "";
|
|
959
|
+
}), M.urlType = "dynamic") : M.urlType = "static"), (b.type === "CALL" || b.type === "PHONE_NUMBER") && (M.value = b.phone_number || ""), w.push(M);
|
|
960
|
+
}
|
|
961
|
+
if (f != null && f.carousel) {
|
|
962
|
+
const b = Object.keys(f.carousel).filter((p) => /^card\d+$/.test(p));
|
|
963
|
+
b.sort((p, y) => {
|
|
964
|
+
const u = parseInt(p.replace("card", ""), 10), V = parseInt(y.replace("card", ""), 10);
|
|
965
|
+
return u - V;
|
|
966
|
+
});
|
|
967
|
+
const M = b.map((p) => {
|
|
968
|
+
const y = f.carousel[p] || {}, u = y.header || {}, V = y.body || {}, B = y.buttons && Array.isArray(y.buttons.buttons) ? y.buttons.buttons : [], d = u.format, E = d === "IMAGE" || d === "VIDEO" || d === "DOCUMENT" ? d : void 0, O = `card${p.replace("card", "")}header`, R = u.url || (a.medialist ? a.medialist[O] : void 0), _ = V.text || "", m = [];
|
|
969
|
+
for (const C of B) {
|
|
970
|
+
if (!C || !C.type || !C.text) continue;
|
|
971
|
+
const S = { id: de(), type: C.type === "PHONE_NUMBER" ? "PHONE_NUMBER" : C.type, text: C.text };
|
|
972
|
+
C.type === "URL" && (S.value = C.url, typeof C.url == "string" && C.url.includes("{{") && Array.isArray(C.example) ? (Ce(C.url).forEach((I, h) => {
|
|
973
|
+
}), S.urlType = "dynamic") : S.urlType = "static"), (C.type === "CALL" || C.type === "PHONE_NUMBER") && (S.value = C.phone_number || ""), m.push(S);
|
|
974
|
+
}
|
|
975
|
+
return {
|
|
976
|
+
id: de(),
|
|
977
|
+
headerType: E ? "MEDIA" : "NONE",
|
|
978
|
+
mediaType: E,
|
|
979
|
+
mediaUrl: R,
|
|
980
|
+
body: _,
|
|
981
|
+
buttons: m,
|
|
982
|
+
sampleContent: {
|
|
983
|
+
headerVariables: {},
|
|
984
|
+
bodyVariables: {},
|
|
985
|
+
buttonVariables: {}
|
|
986
|
+
}
|
|
987
|
+
};
|
|
988
|
+
});
|
|
989
|
+
let g = "IMAGE";
|
|
990
|
+
const v = M[0];
|
|
991
|
+
(v == null ? void 0 : v.mediaType) === "VIDEO" && (g = "VIDEO");
|
|
992
|
+
const c = {
|
|
993
|
+
type: g,
|
|
994
|
+
cards: M
|
|
995
|
+
};
|
|
996
|
+
return {
|
|
997
|
+
name: a.name,
|
|
998
|
+
category: a.category === "MARKETING" || a.category === "UTILITY" ? a.category : "MARKETING",
|
|
999
|
+
type: "CAROUSEL",
|
|
1000
|
+
language: a.lang || "en",
|
|
1001
|
+
enableClickTracking: !1,
|
|
1002
|
+
headerType: "NONE",
|
|
1003
|
+
headerText: "",
|
|
1004
|
+
body: l,
|
|
1005
|
+
footer: k,
|
|
1006
|
+
buttons: [],
|
|
1007
|
+
sampleContent: s,
|
|
1008
|
+
carousel: c
|
|
1009
|
+
};
|
|
1010
|
+
}
|
|
1011
|
+
} catch (f) {
|
|
1012
|
+
console.warn("Failed to parse jsonstruct; falling back", f);
|
|
1013
|
+
}
|
|
1014
|
+
return {
|
|
1015
|
+
name: a.name,
|
|
1016
|
+
category: a.category === "MARKETING" || a.category === "UTILITY" ? a.category : "MARKETING",
|
|
1017
|
+
type: "BASIC",
|
|
1018
|
+
language: a.lang || "en",
|
|
1019
|
+
enableClickTracking: !1,
|
|
1020
|
+
headerType: i,
|
|
1021
|
+
headerText: n,
|
|
1022
|
+
mediaType: t,
|
|
1023
|
+
mediaUrl: x,
|
|
1024
|
+
body: l,
|
|
1025
|
+
footer: k,
|
|
1026
|
+
buttons: w,
|
|
1027
|
+
sampleContent: s
|
|
1028
|
+
};
|
|
1029
|
+
}
|
|
1030
|
+
function Ce(a) {
|
|
1031
|
+
if (!a) return [];
|
|
1032
|
+
const s = a.match(/\{\{(\d+)\}\}/g) || [];
|
|
1033
|
+
return [...new Set(s.map((i) => i.replace(/[{}]/g, "")))];
|
|
1034
|
+
}
|
|
1035
|
+
function de() {
|
|
1036
|
+
return typeof crypto < "u" && "randomUUID" in crypto ? crypto.randomUUID() : "id-" + Math.random().toString(36).slice(2);
|
|
1037
|
+
}
|
|
1038
|
+
const ta = [
|
|
827
1039
|
{ value: "af", label: "Afrikaans" },
|
|
828
1040
|
{ value: "sq", label: "Albanian" },
|
|
829
1041
|
{ value: "ar", label: "Arabic" },
|
|
@@ -889,118 +1101,118 @@ const De = async (a, n) => {
|
|
|
889
1101
|
{ value: "ur", label: "Urdu" },
|
|
890
1102
|
{ value: "uz", label: "Uzbek" },
|
|
891
1103
|
{ value: "vi", label: "Vietnamese" }
|
|
892
|
-
],
|
|
1104
|
+
], ca = [
|
|
893
1105
|
{ value: "NONE", label: "None" },
|
|
894
1106
|
{ value: "TEXT", label: "Text" },
|
|
895
1107
|
{ value: "MEDIA", label: "Media" }
|
|
896
|
-
],
|
|
1108
|
+
], ma = [
|
|
897
1109
|
{ value: "IMAGE", label: "Image" },
|
|
898
1110
|
{ value: "VIDEO", label: "Video" },
|
|
899
1111
|
{ value: "DOCUMENT", label: "Document" }
|
|
900
|
-
],
|
|
901
|
-
function
|
|
902
|
-
var
|
|
903
|
-
const [
|
|
904
|
-
const
|
|
905
|
-
if (!
|
|
906
|
-
const
|
|
907
|
-
const
|
|
908
|
-
return
|
|
1112
|
+
], da = 5 * 1024 * 1024, xa = 16 * 1024 * 1024, pa = 100 * 1024 * 1024, xe = ["jpg", "jpeg", "png"], pe = ["mp4", "3gpp"], oe = ["pdf", "docx", "xlsx", "pptx", "txt"];
|
|
1113
|
+
function oa({ template: a, setTemplate: s, onFileUpload: i }) {
|
|
1114
|
+
var V, B;
|
|
1115
|
+
const [n, t] = J.useState(null), [x, l] = J.useState(!1), [k, w] = J.useState(null), [o, N] = J.useState(null), U = () => {
|
|
1116
|
+
const E = (a.headerText || "").match(/{{\d+}}/g);
|
|
1117
|
+
if (!E) return 0;
|
|
1118
|
+
const A = E.map((O) => {
|
|
1119
|
+
const R = O.match(/{{(\d+)}}/);
|
|
1120
|
+
return R ? parseInt(R[1], 10) : 0;
|
|
909
1121
|
});
|
|
910
|
-
return
|
|
911
|
-
},
|
|
912
|
-
const
|
|
913
|
-
if (
|
|
914
|
-
const
|
|
915
|
-
|
|
916
|
-
if (
|
|
917
|
-
const
|
|
918
|
-
|
|
1122
|
+
return A.length > 0 ? Math.max(...A) : 0;
|
|
1123
|
+
}, f = () => {
|
|
1124
|
+
const A = `{{${U() + 1}}}`;
|
|
1125
|
+
if (k && a.headerText.length + A.length <= 60) {
|
|
1126
|
+
const O = k.selectionStart || a.headerText.length, R = a.headerText.substring(0, O), _ = a.headerText.substring(O), m = R + A + _;
|
|
1127
|
+
s({ ...a, headerText: m }), setTimeout(() => {
|
|
1128
|
+
if (k) {
|
|
1129
|
+
const C = O + A.length;
|
|
1130
|
+
k.setSelectionRange(C, C), k.focus();
|
|
919
1131
|
}
|
|
920
1132
|
}, 0);
|
|
921
1133
|
}
|
|
922
|
-
},
|
|
923
|
-
|
|
924
|
-
...
|
|
925
|
-
headerType:
|
|
926
|
-
headerText:
|
|
927
|
-
mediaType:
|
|
928
|
-
mediaUrl:
|
|
929
|
-
})),
|
|
930
|
-
},
|
|
931
|
-
var
|
|
932
|
-
return ((
|
|
933
|
-
},
|
|
934
|
-
const
|
|
935
|
-
switch (
|
|
1134
|
+
}, b = (d) => {
|
|
1135
|
+
s((E) => ({
|
|
1136
|
+
...E,
|
|
1137
|
+
headerType: d,
|
|
1138
|
+
headerText: d === "TEXT" ? E.headerText : "",
|
|
1139
|
+
mediaType: d === "MEDIA" ? E.mediaType || "IMAGE" : void 0,
|
|
1140
|
+
mediaUrl: d === "MEDIA" ? E.mediaUrl : void 0
|
|
1141
|
+
})), d !== "MEDIA" && (t(null), N(null));
|
|
1142
|
+
}, M = (d) => {
|
|
1143
|
+
var E;
|
|
1144
|
+
return ((E = d.split("?")[0].split(".").pop()) == null ? void 0 : E.toLowerCase()) || "";
|
|
1145
|
+
}, g = (d, E) => {
|
|
1146
|
+
const A = M(d.name);
|
|
1147
|
+
switch (E) {
|
|
936
1148
|
case "IMAGE":
|
|
937
|
-
if (!
|
|
938
|
-
if (
|
|
1149
|
+
if (!xe.includes(A)) return "Invalid format. Only JPG, JPEG, PNG are allowed.";
|
|
1150
|
+
if (d.size > da) return "File is too large. Max size is 5 MB.";
|
|
939
1151
|
break;
|
|
940
1152
|
case "VIDEO":
|
|
941
|
-
if (!
|
|
942
|
-
if (
|
|
1153
|
+
if (!pe.includes(A)) return "Invalid format. Only MP4, 3GPP are allowed.";
|
|
1154
|
+
if (d.size > xa) return "File is too large. Max size is 16 MB.";
|
|
943
1155
|
break;
|
|
944
1156
|
case "DOCUMENT":
|
|
945
|
-
if (!
|
|
946
|
-
if (
|
|
1157
|
+
if (!oe.includes(A)) return "Invalid format. Allowed types: PDF, DOCX, XLSX, PPTX, TXT.";
|
|
1158
|
+
if (d.size > pa) return "File is too large. Max size is 100 MB.";
|
|
947
1159
|
break;
|
|
948
1160
|
default:
|
|
949
1161
|
return "Invalid media type.";
|
|
950
1162
|
}
|
|
951
1163
|
return null;
|
|
952
|
-
},
|
|
953
|
-
if (!
|
|
954
|
-
const
|
|
955
|
-
switch (
|
|
1164
|
+
}, v = (d, E) => {
|
|
1165
|
+
if (!d) return null;
|
|
1166
|
+
const A = M(d);
|
|
1167
|
+
switch (E) {
|
|
956
1168
|
case "IMAGE":
|
|
957
|
-
if (!
|
|
1169
|
+
if (!xe.includes(A)) return "URL does not point to a valid image (JPG, JPEG, PNG).";
|
|
958
1170
|
break;
|
|
959
1171
|
case "VIDEO":
|
|
960
|
-
if (!
|
|
1172
|
+
if (!pe.includes(A)) return "URL does not point to a valid video (MP4, 3GPP).";
|
|
961
1173
|
break;
|
|
962
1174
|
case "DOCUMENT":
|
|
963
|
-
if (!
|
|
1175
|
+
if (!oe.includes(A)) return "URL does not point to a valid document.";
|
|
964
1176
|
break;
|
|
965
1177
|
}
|
|
966
1178
|
return null;
|
|
967
|
-
},
|
|
968
|
-
|
|
969
|
-
},
|
|
970
|
-
var
|
|
971
|
-
const
|
|
972
|
-
if (!
|
|
973
|
-
|
|
974
|
-
const
|
|
975
|
-
if (
|
|
976
|
-
|
|
1179
|
+
}, c = () => {
|
|
1180
|
+
t(null), s({ ...a, mediaUrl: "" }), N(null);
|
|
1181
|
+
}, p = async (d) => {
|
|
1182
|
+
var O;
|
|
1183
|
+
const E = (O = d.target.files) == null ? void 0 : O[0];
|
|
1184
|
+
if (!E || !a.mediaType) return;
|
|
1185
|
+
N(null);
|
|
1186
|
+
const A = g(E, a.mediaType);
|
|
1187
|
+
if (A) {
|
|
1188
|
+
N(A);
|
|
977
1189
|
return;
|
|
978
1190
|
}
|
|
979
|
-
|
|
1191
|
+
l(!0), t(E);
|
|
980
1192
|
try {
|
|
981
|
-
const
|
|
982
|
-
|
|
983
|
-
} catch (
|
|
984
|
-
console.error("File upload failed:",
|
|
985
|
-
const
|
|
986
|
-
|
|
1193
|
+
const R = await i(E);
|
|
1194
|
+
s({ ...a, mediaUrl: R });
|
|
1195
|
+
} catch (R) {
|
|
1196
|
+
console.error("File upload failed:", R), c();
|
|
1197
|
+
const _ = R instanceof Error ? R.message : "File upload failed. Please try again.";
|
|
1198
|
+
N(_);
|
|
987
1199
|
} finally {
|
|
988
|
-
|
|
1200
|
+
l(!1);
|
|
989
1201
|
}
|
|
990
|
-
},
|
|
991
|
-
const
|
|
992
|
-
if (
|
|
993
|
-
const
|
|
994
|
-
|
|
1202
|
+
}, y = (d) => {
|
|
1203
|
+
const E = d.target.value;
|
|
1204
|
+
if (t(null), s({ ...a, mediaUrl: E }), a.mediaType) {
|
|
1205
|
+
const A = v(E, a.mediaType);
|
|
1206
|
+
N(A);
|
|
995
1207
|
}
|
|
996
|
-
},
|
|
1208
|
+
}, u = () => {
|
|
997
1209
|
switch (a.mediaType) {
|
|
998
1210
|
case "IMAGE":
|
|
999
|
-
return
|
|
1211
|
+
return xe.map((d) => `.${d}`).join(",");
|
|
1000
1212
|
case "VIDEO":
|
|
1001
|
-
return
|
|
1213
|
+
return pe.map((d) => `.${d}`).join(",");
|
|
1002
1214
|
case "DOCUMENT":
|
|
1003
|
-
return
|
|
1215
|
+
return oe.map((d) => `.${d}`).join(",");
|
|
1004
1216
|
default:
|
|
1005
1217
|
return "*/*";
|
|
1006
1218
|
}
|
|
@@ -1013,9 +1225,9 @@ function aa({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
1013
1225
|
"select",
|
|
1014
1226
|
{
|
|
1015
1227
|
value: a.headerType,
|
|
1016
|
-
onChange: (
|
|
1228
|
+
onChange: (d) => b(d.target.value),
|
|
1017
1229
|
className: "rsp-w-full rsp-px-0 rsp-py-2 rsp-border-0 rsp-border-b rsp-border-gray-300 rsp-text-sm focus:rsp-outline-none focus:rsp-border-blue-500 rsp-bg-transparent rsp-appearance-none",
|
|
1018
|
-
children:
|
|
1230
|
+
children: ca.map((d) => /* @__PURE__ */ e("option", { value: d.value, children: d.label }, d.value))
|
|
1019
1231
|
}
|
|
1020
1232
|
),
|
|
1021
1233
|
/* @__PURE__ */ e("div", { className: "rsp-absolute rsp-inset-y-0 rsp-right-0 rsp-flex rsp-items-center rsp-px-2 rsp-pointer-events-none", children: /* @__PURE__ */ e("svg", { className: "rsp-w-4 rsp-h-4 rsp-text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }) }) }),
|
|
@@ -1027,10 +1239,10 @@ function aa({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
1027
1239
|
/* @__PURE__ */ e("div", { className: "rsp-relative", children: /* @__PURE__ */ e(
|
|
1028
1240
|
"input",
|
|
1029
1241
|
{
|
|
1030
|
-
ref:
|
|
1242
|
+
ref: w,
|
|
1031
1243
|
type: "text",
|
|
1032
1244
|
value: a.headerText,
|
|
1033
|
-
onChange: (
|
|
1245
|
+
onChange: (d) => s({ ...a, headerText: d.target.value }),
|
|
1034
1246
|
maxLength: 60,
|
|
1035
1247
|
className: "rsp-w-full rsp-px-0 rsp-py-2 rsp-border-0 rsp-border-b rsp-border-gray-300 rsp-text-sm focus:rsp-outline-none focus:rsp-border-blue-500 rsp-bg-transparent",
|
|
1036
1248
|
placeholder: "Add a 60 character title to your message"
|
|
@@ -1040,7 +1252,7 @@ function aa({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
1040
1252
|
/* @__PURE__ */ e(
|
|
1041
1253
|
"button",
|
|
1042
1254
|
{
|
|
1043
|
-
onClick:
|
|
1255
|
+
onClick: f,
|
|
1044
1256
|
className: "rsp-px-2 rsp-py-1 rsp-text-xs hover:rsp-bg-gray-100 rsp-rounded rsp-text-gray-500 rsp-flex rsp-items-center rsp-gap-1",
|
|
1045
1257
|
title: "Add variable to header",
|
|
1046
1258
|
children: /* @__PURE__ */ e("svg", { className: "rsp-w-4 rsp-h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" }) })
|
|
@@ -1052,30 +1264,30 @@ function aa({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
1052
1264
|
] })
|
|
1053
1265
|
] }),
|
|
1054
1266
|
(() => {
|
|
1055
|
-
const
|
|
1056
|
-
return
|
|
1267
|
+
const d = [...new Set((a.headerText.match(/\{\{(\d+)\}\}/g) || []).map((E) => E.replace(/[{}]/g, "")))];
|
|
1268
|
+
return d.length === 0 ? null : /* @__PURE__ */ r("div", { className: "rsp-mt-3", children: [
|
|
1057
1269
|
/* @__PURE__ */ e("p", { className: "rsp-text-xs rsp-font-medium rsp-text-gray-600 rsp-mb-2", children: "Sample Values" }),
|
|
1058
|
-
/* @__PURE__ */ e("div", { className: "rsp-grid rsp-grid-cols-3 rsp-gap-2", children:
|
|
1059
|
-
var
|
|
1270
|
+
/* @__PURE__ */ e("div", { className: "rsp-grid rsp-grid-cols-3 rsp-gap-2", children: d.map((E) => {
|
|
1271
|
+
var A, O;
|
|
1060
1272
|
return /* @__PURE__ */ r("div", { className: "rsp-flex rsp-items-center rsp-gap-2", children: [
|
|
1061
1273
|
/* @__PURE__ */ r("label", { className: "rsp-text-xs rsp-text-gray-500 rsp-whitespace-nowrap", children: [
|
|
1062
|
-
`{{${
|
|
1274
|
+
`{{${E}}}`,
|
|
1063
1275
|
":"
|
|
1064
1276
|
] }),
|
|
1065
1277
|
/* @__PURE__ */ e(
|
|
1066
1278
|
"input",
|
|
1067
1279
|
{
|
|
1068
1280
|
type: "text",
|
|
1069
|
-
value: ((
|
|
1070
|
-
onChange: (
|
|
1071
|
-
var
|
|
1072
|
-
const
|
|
1281
|
+
value: ((O = (A = a.sampleContent) == null ? void 0 : A.headerVariables) == null ? void 0 : O[E]) || "",
|
|
1282
|
+
onChange: (R) => {
|
|
1283
|
+
var m, C, S;
|
|
1284
|
+
const _ = {
|
|
1073
1285
|
...a.sampleContent,
|
|
1074
|
-
headerVariables: { ...(
|
|
1075
|
-
bodyVariables: ((
|
|
1076
|
-
buttonVariables: ((
|
|
1286
|
+
headerVariables: { ...(m = a.sampleContent) == null ? void 0 : m.headerVariables, [E]: R.target.value },
|
|
1287
|
+
bodyVariables: ((C = a.sampleContent) == null ? void 0 : C.bodyVariables) || {},
|
|
1288
|
+
buttonVariables: ((S = a.sampleContent) == null ? void 0 : S.buttonVariables) || {}
|
|
1077
1289
|
};
|
|
1078
|
-
|
|
1290
|
+
s({ ...a, sampleContent: _ });
|
|
1079
1291
|
},
|
|
1080
1292
|
className: "rsp-flex-1 rsp-px-2 rsp-py-1 rsp-border rsp-border-gray-300 rsp-rounded rsp-text-xs focus:rsp-outline-none focus:rsp-border-blue-500",
|
|
1081
1293
|
placeholder: "Sample"
|
|
@@ -1086,16 +1298,16 @@ function aa({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
1086
1298
|
{
|
|
1087
1299
|
type: "button",
|
|
1088
1300
|
onClick: () => {
|
|
1089
|
-
var
|
|
1090
|
-
const
|
|
1091
|
-
|
|
1301
|
+
var C, S, j;
|
|
1302
|
+
const R = new RegExp(`\\{\\{${E}\\}\\}`, "g"), _ = (a.headerText || "").replace(R, ""), m = Object.fromEntries(Object.entries(((C = a.sampleContent) == null ? void 0 : C.headerVariables) || {}).filter(([I]) => I !== E));
|
|
1303
|
+
s({
|
|
1092
1304
|
...a,
|
|
1093
|
-
headerText:
|
|
1305
|
+
headerText: _,
|
|
1094
1306
|
sampleContent: {
|
|
1095
1307
|
...a.sampleContent,
|
|
1096
|
-
headerVariables:
|
|
1097
|
-
bodyVariables: ((
|
|
1098
|
-
buttonVariables: ((
|
|
1308
|
+
headerVariables: m,
|
|
1309
|
+
bodyVariables: ((S = a.sampleContent) == null ? void 0 : S.bodyVariables) || {},
|
|
1310
|
+
buttonVariables: ((j = a.sampleContent) == null ? void 0 : j.buttonVariables) || {}
|
|
1099
1311
|
}
|
|
1100
1312
|
});
|
|
1101
1313
|
},
|
|
@@ -1104,7 +1316,7 @@ function aa({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
1104
1316
|
children: "×"
|
|
1105
1317
|
}
|
|
1106
1318
|
)
|
|
1107
|
-
] }, `header-sample-${
|
|
1319
|
+
] }, `header-sample-${E}`);
|
|
1108
1320
|
}) })
|
|
1109
1321
|
] });
|
|
1110
1322
|
})()
|
|
@@ -1117,15 +1329,15 @@ function aa({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
1117
1329
|
"select",
|
|
1118
1330
|
{
|
|
1119
1331
|
value: a.mediaType || "IMAGE",
|
|
1120
|
-
onChange: (
|
|
1121
|
-
|
|
1122
|
-
...
|
|
1123
|
-
mediaType:
|
|
1332
|
+
onChange: (d) => {
|
|
1333
|
+
s((E) => ({
|
|
1334
|
+
...E,
|
|
1335
|
+
mediaType: d.target.value,
|
|
1124
1336
|
mediaUrl: ""
|
|
1125
|
-
})),
|
|
1337
|
+
})), t(null), N(null);
|
|
1126
1338
|
},
|
|
1127
1339
|
className: "rsp-w-full rsp-px-0 rsp-py-2 rsp-border-0 rsp-border-b rsp-border-gray-300 rsp-text-sm focus:rsp-outline-none focus:rsp-border-blue-500 rsp-bg-transparent rsp-appearance-none",
|
|
1128
|
-
children:
|
|
1340
|
+
children: ma.map((d) => /* @__PURE__ */ e("option", { value: d.value, children: d.label }, d.value))
|
|
1129
1341
|
}
|
|
1130
1342
|
),
|
|
1131
1343
|
/* @__PURE__ */ e("div", { className: "rsp-absolute rsp-inset-y-0 rsp-right-0 rsp-flex rsp-items-center rsp-px-2 rsp-pointer-events-none", children: /* @__PURE__ */ e("svg", { className: "rsp-w-4 rsp-h-4 rsp-text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }) }) })
|
|
@@ -1141,32 +1353,32 @@ function aa({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
1141
1353
|
src: a.mediaUrl,
|
|
1142
1354
|
alt: "Preview",
|
|
1143
1355
|
className: "rsp-w-12 rsp-h-12 rsp-object-cover rsp-rounded",
|
|
1144
|
-
onError: (
|
|
1145
|
-
|
|
1356
|
+
onError: (d) => {
|
|
1357
|
+
d.currentTarget.style.display = "none", o || N("Could not load image preview from URL.");
|
|
1146
1358
|
},
|
|
1147
1359
|
onLoad: () => {
|
|
1148
|
-
|
|
1360
|
+
o != null && o.includes("Could not load") && N(null);
|
|
1149
1361
|
}
|
|
1150
1362
|
}
|
|
1151
1363
|
),
|
|
1152
|
-
a.mediaType === "VIDEO" && /* @__PURE__ */ e("div", { className: "rsp-w-12 rsp-h-12 rsp-bg-gray-200 rsp-rounded rsp-flex rsp-items-center rsp-justify-center flex-shrink-0", children: /* @__PURE__ */ e(
|
|
1153
|
-
a.mediaType === "DOCUMENT" && /* @__PURE__ */ e("div", { className: "rsp-w-12 rsp-h-12 rsp-bg-gray-200 rsp-rounded rsp-flex rsp-items-center rsp-justify-center flex-shrink-0", children: /* @__PURE__ */ e(
|
|
1364
|
+
a.mediaType === "VIDEO" && /* @__PURE__ */ e("div", { className: "rsp-w-12 rsp-h-12 rsp-bg-gray-200 rsp-rounded rsp-flex rsp-items-center rsp-justify-center flex-shrink-0", children: /* @__PURE__ */ e(Ge, { className: "rsp-w-6 rsp-h-6 rsp-text-gray-500" }) }),
|
|
1365
|
+
a.mediaType === "DOCUMENT" && /* @__PURE__ */ e("div", { className: "rsp-w-12 rsp-h-12 rsp-bg-gray-200 rsp-rounded rsp-flex rsp-items-center rsp-justify-center flex-shrink-0", children: /* @__PURE__ */ e($e, { className: "rsp-w-6 rsp-h-6 rsp-text-gray-500" }) }),
|
|
1154
1366
|
/* @__PURE__ */ r("div", { className: "overflow-hidden", children: [
|
|
1155
|
-
/* @__PURE__ */ e("p", { className: "rsp-text-sm rsp-font-medium rsp-text-gray-900 rsp-truncate", children:
|
|
1156
|
-
|
|
1367
|
+
/* @__PURE__ */ e("p", { className: "rsp-text-sm rsp-font-medium rsp-text-gray-900 rsp-truncate", children: n ? n.name : a.mediaUrl }),
|
|
1368
|
+
n && /* @__PURE__ */ e("p", { className: "rsp-text-xs rsp-text-gray-500", children: `${(n.size / 1024 / 1024).toFixed(2)} MB` })
|
|
1157
1369
|
] })
|
|
1158
1370
|
] }),
|
|
1159
|
-
/* @__PURE__ */ e("button", { onClick:
|
|
1371
|
+
/* @__PURE__ */ e("button", { onClick: c, className: "rsp-p-1 rsp-text-gray-400 hover:rsp-text-red-500 rsp-transition-colors flex-shrink-0", children: /* @__PURE__ */ e(re, { className: "rsp-w-4 rsp-h-4" }) })
|
|
1160
1372
|
] }) : /* @__PURE__ */ r("div", { children: [
|
|
1161
|
-
/* @__PURE__ */ e("input", { type: "file", accept:
|
|
1373
|
+
/* @__PURE__ */ e("input", { type: "file", accept: u(), onChange: p, className: "rsp-hidden", id: "media-upload", disabled: x }),
|
|
1162
1374
|
/* @__PURE__ */ r(
|
|
1163
1375
|
"label",
|
|
1164
1376
|
{
|
|
1165
1377
|
htmlFor: "media-upload",
|
|
1166
|
-
className: `rsp-w-full rsp-px-4 rsp-py-3 rsp-border-2 rsp-border-dashed rsp-border-gray-300 rsp-rounded-md rsp-flex rsp-flex-col rsp-items-center rsp-justify-center rsp-cursor-pointer rsp-transition-colors hover:rsp-border-gray-400 hover:rsp-bg-gray-50 ${
|
|
1378
|
+
className: `rsp-w-full rsp-px-4 rsp-py-3 rsp-border-2 rsp-border-dashed rsp-border-gray-300 rsp-rounded-md rsp-flex rsp-flex-col rsp-items-center rsp-justify-center rsp-cursor-pointer rsp-transition-colors hover:rsp-border-gray-400 hover:rsp-bg-gray-50 ${x ? "rsp-opacity-50 rsp-cursor-not-allowed" : ""}`,
|
|
1167
1379
|
children: [
|
|
1168
|
-
/* @__PURE__ */ e(
|
|
1169
|
-
/* @__PURE__ */ e("span", { className: "rsp-text-sm rsp-text-gray-600", children:
|
|
1380
|
+
/* @__PURE__ */ e(Ye, { className: "rsp-w-6 rsp-h-6 rsp-text-gray-400 rsp-mb-2" }),
|
|
1381
|
+
/* @__PURE__ */ e("span", { className: "rsp-text-sm rsp-text-gray-600", children: x ? "Uploading..." : `Upload ${((V = a.mediaType) == null ? void 0 : V.toLowerCase()) || "file"}` }),
|
|
1170
1382
|
/* @__PURE__ */ r("span", { className: "rsp-text-xs rsp-text-gray-400 rsp-mt-1", children: [
|
|
1171
1383
|
a.mediaType === "IMAGE" && "JPG, PNG up to 5MB",
|
|
1172
1384
|
a.mediaType === "VIDEO" && "MP4, 3GPP up to 16MB",
|
|
@@ -1176,9 +1388,9 @@ function aa({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
1176
1388
|
}
|
|
1177
1389
|
)
|
|
1178
1390
|
] }),
|
|
1179
|
-
|
|
1180
|
-
/* @__PURE__ */ e(
|
|
1181
|
-
/* @__PURE__ */ e("span", { children:
|
|
1391
|
+
o && /* @__PURE__ */ r("div", { className: "rsp-flex rsp-items-center rsp-gap-2 rsp-text-xs rsp-text-red-600", children: [
|
|
1392
|
+
/* @__PURE__ */ e(fe, { className: "rsp-w-4 rsp-h-4" }),
|
|
1393
|
+
/* @__PURE__ */ e("span", { children: o })
|
|
1182
1394
|
] }),
|
|
1183
1395
|
/* @__PURE__ */ r("div", { className: "rsp-flex rsp-items-center", children: [
|
|
1184
1396
|
/* @__PURE__ */ e("div", { className: "rsp-flex-1 rsp-border-t rsp-border-gray-300" }),
|
|
@@ -1190,16 +1402,16 @@ function aa({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
1190
1402
|
{
|
|
1191
1403
|
type: "url",
|
|
1192
1404
|
value: a.mediaUrl || "",
|
|
1193
|
-
onChange:
|
|
1405
|
+
onChange: y,
|
|
1194
1406
|
className: "rsp-w-full rsp-px-0 rsp-py-2 rsp-border-0 rsp-border-b rsp-border-gray-300 rsp-text-sm focus:rsp-outline-none focus:rsp-border-blue-500 rsp-bg-transparent",
|
|
1195
|
-
placeholder: `Enter ${(
|
|
1407
|
+
placeholder: `Enter ${(B = a.mediaType) == null ? void 0 : B.toLowerCase()} URL`
|
|
1196
1408
|
}
|
|
1197
1409
|
) })
|
|
1198
1410
|
] })
|
|
1199
1411
|
] })
|
|
1200
1412
|
] });
|
|
1201
1413
|
}
|
|
1202
|
-
const
|
|
1414
|
+
const Ee = [
|
|
1203
1415
|
{ name: "grinning-face", hexadecimal: "😀" },
|
|
1204
1416
|
{ name: "grinning-face-with-smiling-eyes", hexadecimal: "😁" },
|
|
1205
1417
|
{ name: "face-with-tears-of-joy", hexadecimal: "😂" },
|
|
@@ -2998,56 +3210,56 @@ const we = [
|
|
|
2998
3210
|
{ name: "south-africa", hexadecimal: "🇿🇦" },
|
|
2999
3211
|
{ name: "zambia", hexadecimal: "🇿🇲" },
|
|
3000
3212
|
{ name: "zimbabwe", hexadecimal: "🇿🇼" }
|
|
3001
|
-
],
|
|
3213
|
+
], fa = ({
|
|
3002
3214
|
emojis: a,
|
|
3003
|
-
onSelect:
|
|
3215
|
+
onSelect: s,
|
|
3004
3216
|
onClose: i
|
|
3005
3217
|
}) => {
|
|
3006
|
-
const [
|
|
3007
|
-
const
|
|
3008
|
-
|
|
3009
|
-
Math.ceil(a.length /
|
|
3218
|
+
const [n, t] = P({ start: 0, end: 80 }), x = 8, l = 40, k = 400, w = ke((f) => {
|
|
3219
|
+
const b = f.currentTarget.scrollTop, M = Math.floor(b / l), g = Math.min(
|
|
3220
|
+
M + Math.ceil(k / l) + 2,
|
|
3221
|
+
Math.ceil(a.length / x)
|
|
3010
3222
|
);
|
|
3011
|
-
|
|
3012
|
-
start:
|
|
3013
|
-
end:
|
|
3223
|
+
t({
|
|
3224
|
+
start: M * x,
|
|
3225
|
+
end: g * x
|
|
3014
3226
|
});
|
|
3015
|
-
}, [a.length,
|
|
3016
|
-
const
|
|
3017
|
-
if (!
|
|
3018
|
-
const
|
|
3019
|
-
const
|
|
3020
|
-
return parseInt(
|
|
3227
|
+
}, [a.length, l, k, x]), o = ke((f) => {
|
|
3228
|
+
const b = f.match(/&#x([0-9A-Fa-f]+);/g);
|
|
3229
|
+
if (!b) return "";
|
|
3230
|
+
const M = b.map((g) => {
|
|
3231
|
+
const v = g.replace(/&#x|;/g, "");
|
|
3232
|
+
return parseInt(v, 16);
|
|
3021
3233
|
});
|
|
3022
|
-
return String.fromCodePoint(...
|
|
3023
|
-
}, []),
|
|
3234
|
+
return String.fromCodePoint(...M);
|
|
3235
|
+
}, []), N = Math.ceil(a.length / x) * l, U = a.slice(n.start, n.end);
|
|
3024
3236
|
return /* @__PURE__ */ e(
|
|
3025
3237
|
"div",
|
|
3026
3238
|
{
|
|
3027
3239
|
className: "rsp-h-[400px] rsp-overflow-y-auto rsp-relative",
|
|
3028
|
-
onScroll:
|
|
3029
|
-
children: /* @__PURE__ */ e("div", { style: { height:
|
|
3240
|
+
onScroll: w,
|
|
3241
|
+
children: /* @__PURE__ */ e("div", { style: { height: N }, className: "rsp-relative", children: /* @__PURE__ */ e(
|
|
3030
3242
|
"div",
|
|
3031
3243
|
{
|
|
3032
3244
|
className: "rsp-absolute rsp-w-full rsp-grid rsp-grid-cols-8 rsp-gap-1",
|
|
3033
3245
|
style: {
|
|
3034
|
-
top: Math.floor(
|
|
3246
|
+
top: Math.floor(n.start / x) * l,
|
|
3035
3247
|
transform: "translateY(0px)"
|
|
3036
3248
|
},
|
|
3037
|
-
children:
|
|
3038
|
-
const
|
|
3249
|
+
children: U.map((f, b) => {
|
|
3250
|
+
const M = n.start + b;
|
|
3039
3251
|
return /* @__PURE__ */ e(
|
|
3040
3252
|
"button",
|
|
3041
3253
|
{
|
|
3042
3254
|
onClick: () => {
|
|
3043
|
-
|
|
3255
|
+
s(o(f.hexadecimal));
|
|
3044
3256
|
},
|
|
3045
3257
|
className: "rsp-w-10 rsp-h-10 rsp-flex rsp-items-center rsp-justify-center rsp-text-xl hover:rsp-bg-gray-100 rsp-rounded rsp-transition-colors",
|
|
3046
|
-
title:
|
|
3047
|
-
style: { height:
|
|
3048
|
-
children: f
|
|
3258
|
+
title: f.name,
|
|
3259
|
+
style: { height: l },
|
|
3260
|
+
children: o(f.hexadecimal)
|
|
3049
3261
|
},
|
|
3050
|
-
|
|
3262
|
+
M
|
|
3051
3263
|
);
|
|
3052
3264
|
})
|
|
3053
3265
|
}
|
|
@@ -3055,113 +3267,113 @@ const we = [
|
|
|
3055
3267
|
}
|
|
3056
3268
|
);
|
|
3057
3269
|
};
|
|
3058
|
-
function
|
|
3059
|
-
const [
|
|
3060
|
-
(
|
|
3061
|
-
) :
|
|
3062
|
-
return
|
|
3063
|
-
a ||
|
|
3064
|
-
}, [a]), /* @__PURE__ */ e(
|
|
3270
|
+
function ge({ isOpen: a, onClose: s, onSelect: i }) {
|
|
3271
|
+
const [n, t] = P(""), x = Se(() => n ? Ee.filter(
|
|
3272
|
+
(l) => l.name.toLowerCase().includes(n.toLowerCase())
|
|
3273
|
+
) : Ee, [n]);
|
|
3274
|
+
return J.useEffect(() => {
|
|
3275
|
+
a || t("");
|
|
3276
|
+
}, [a]), /* @__PURE__ */ e(te, { isOpen: a, onClose: s, title: "Select Emoji", children: /* @__PURE__ */ r("div", { className: "rsp-space-y-4", children: [
|
|
3065
3277
|
/* @__PURE__ */ r("div", { className: "rsp-relative", children: [
|
|
3066
3278
|
/* @__PURE__ */ e(
|
|
3067
3279
|
"input",
|
|
3068
3280
|
{
|
|
3069
3281
|
type: "text",
|
|
3070
3282
|
placeholder: "Search emojis...",
|
|
3071
|
-
value:
|
|
3072
|
-
onChange: (
|
|
3283
|
+
value: n,
|
|
3284
|
+
onChange: (l) => t(l.target.value),
|
|
3073
3285
|
className: "rsp-w-full rsp-px-3 rsp-py-2 rsp-border rsp-border-gray-300 rsp-rounded-md rsp-text-sm focus:rsp-outline-none focus:rsp-border-blue-500"
|
|
3074
3286
|
}
|
|
3075
3287
|
),
|
|
3076
|
-
|
|
3288
|
+
n && /* @__PURE__ */ e(
|
|
3077
3289
|
"button",
|
|
3078
3290
|
{
|
|
3079
|
-
onClick: () =>
|
|
3291
|
+
onClick: () => t(""),
|
|
3080
3292
|
className: "rsp-absolute rsp-right-2 rsp-top-1/2 rsp-transform -rsp-translate-y-1/2 rsp-text-gray-400 hover:rsp-text-gray-600",
|
|
3081
3293
|
children: "×"
|
|
3082
3294
|
}
|
|
3083
3295
|
)
|
|
3084
3296
|
] }),
|
|
3085
|
-
/* @__PURE__ */ e("div", { className: "rsp-flex rsp-gap-2 rsp-flex-wrap", children: ["😀", "🎉", "❤️", "👍", "🔥", "💯", "✨", "🎯"].map((
|
|
3297
|
+
/* @__PURE__ */ e("div", { className: "rsp-flex rsp-gap-2 rsp-flex-wrap", children: ["😀", "🎉", "❤️", "👍", "🔥", "💯", "✨", "🎯"].map((l) => /* @__PURE__ */ e(
|
|
3086
3298
|
"button",
|
|
3087
3299
|
{
|
|
3088
3300
|
onClick: () => {
|
|
3089
|
-
i(
|
|
3301
|
+
i(l);
|
|
3090
3302
|
},
|
|
3091
3303
|
className: "rsp-w-8 rsp-h-8 rsp-flex rsp-items-center rsp-justify-center rsp-text-lg hover:rsp-bg-gray-100 rsp-rounded rsp-transition-colors",
|
|
3092
|
-
children:
|
|
3304
|
+
children: l
|
|
3093
3305
|
},
|
|
3094
|
-
|
|
3306
|
+
l
|
|
3095
3307
|
)) }),
|
|
3096
3308
|
/* @__PURE__ */ r("div", { className: "rsp-text-sm rsp-text-gray-500", children: [
|
|
3097
|
-
|
|
3309
|
+
x.length,
|
|
3098
3310
|
" emojis found"
|
|
3099
3311
|
] }),
|
|
3100
3312
|
/* @__PURE__ */ e(
|
|
3101
|
-
|
|
3313
|
+
fa,
|
|
3102
3314
|
{
|
|
3103
|
-
emojis:
|
|
3315
|
+
emojis: x,
|
|
3104
3316
|
onSelect: i,
|
|
3105
|
-
onClose:
|
|
3317
|
+
onClose: s
|
|
3106
3318
|
}
|
|
3107
3319
|
)
|
|
3108
3320
|
] }) });
|
|
3109
3321
|
}
|
|
3110
|
-
function
|
|
3111
|
-
const [i,
|
|
3112
|
-
const
|
|
3113
|
-
if (!
|
|
3114
|
-
const
|
|
3115
|
-
const
|
|
3116
|
-
return
|
|
3322
|
+
function ha({ template: a, setTemplate: s }) {
|
|
3323
|
+
const [i, n] = P(!1), [t, x] = P(null), [l, k] = P(null), [w, o] = P(null), [N, U] = P(!1), f = () => {
|
|
3324
|
+
const c = (a.body || "").match(/{{\d+}}/g);
|
|
3325
|
+
if (!c) return 0;
|
|
3326
|
+
const p = c.map((y) => {
|
|
3327
|
+
const u = y.match(/{{(\d+)}}/);
|
|
3328
|
+
return u ? parseInt(u[1], 10) : 0;
|
|
3117
3329
|
});
|
|
3118
|
-
return
|
|
3119
|
-
},
|
|
3120
|
-
const
|
|
3121
|
-
if (
|
|
3122
|
-
const
|
|
3123
|
-
|
|
3330
|
+
return p.length > 0 ? Math.max(...p) : 0;
|
|
3331
|
+
}, b = () => {
|
|
3332
|
+
const p = `{{${f() + 1}}}`;
|
|
3333
|
+
if (l && a.body.length + p.length <= 1024) {
|
|
3334
|
+
const y = l.selectionStart || a.body.length, u = a.body.substring(0, y), V = a.body.substring(y), B = u + p + V;
|
|
3335
|
+
s({
|
|
3124
3336
|
...a,
|
|
3125
|
-
body:
|
|
3337
|
+
body: B
|
|
3126
3338
|
}), setTimeout(() => {
|
|
3127
|
-
if (
|
|
3128
|
-
const
|
|
3129
|
-
|
|
3339
|
+
if (l) {
|
|
3340
|
+
const d = y + p.length;
|
|
3341
|
+
l.setSelectionRange(d, d), l.focus();
|
|
3130
3342
|
}
|
|
3131
3343
|
}, 0);
|
|
3132
3344
|
}
|
|
3133
|
-
},
|
|
3134
|
-
|
|
3135
|
-
|
|
3345
|
+
}, M = () => {
|
|
3346
|
+
x("body"), n(!0), setTimeout(() => {
|
|
3347
|
+
l && l.focus();
|
|
3136
3348
|
}, 0);
|
|
3137
|
-
},
|
|
3138
|
-
if (
|
|
3139
|
-
if (!
|
|
3140
|
-
const
|
|
3141
|
-
if (
|
|
3142
|
-
const
|
|
3143
|
-
|
|
3349
|
+
}, g = (v) => {
|
|
3350
|
+
if (t === "body") {
|
|
3351
|
+
if (!l) return;
|
|
3352
|
+
const c = l.selectionStart || a.body.length, p = 1024, y = a.body;
|
|
3353
|
+
if (y.length + v.length <= p) {
|
|
3354
|
+
const u = y.substring(0, c), V = y.substring(c), B = u + v + V;
|
|
3355
|
+
s({
|
|
3144
3356
|
...a,
|
|
3145
|
-
body:
|
|
3357
|
+
body: B
|
|
3146
3358
|
}), setTimeout(() => {
|
|
3147
|
-
if (
|
|
3148
|
-
const
|
|
3149
|
-
|
|
3359
|
+
if (l) {
|
|
3360
|
+
const d = c + v.length;
|
|
3361
|
+
l.setSelectionRange(d, d), l.focus();
|
|
3150
3362
|
}
|
|
3151
3363
|
}, 0);
|
|
3152
3364
|
}
|
|
3153
|
-
} else if (
|
|
3154
|
-
if (!
|
|
3155
|
-
const
|
|
3156
|
-
if (
|
|
3157
|
-
const
|
|
3158
|
-
|
|
3365
|
+
} else if (t === "footer") {
|
|
3366
|
+
if (!w) return;
|
|
3367
|
+
const c = w.selectionStart || a.footer.length, p = 60, y = a.footer;
|
|
3368
|
+
if (y.length + v.length <= p) {
|
|
3369
|
+
const u = y.substring(0, c), V = y.substring(c), B = u + v + V;
|
|
3370
|
+
s({
|
|
3159
3371
|
...a,
|
|
3160
|
-
footer:
|
|
3372
|
+
footer: B
|
|
3161
3373
|
}), setTimeout(() => {
|
|
3162
|
-
if (
|
|
3163
|
-
const
|
|
3164
|
-
|
|
3374
|
+
if (w) {
|
|
3375
|
+
const d = c + v.length;
|
|
3376
|
+
w.setSelectionRange(d, d), w.focus();
|
|
3165
3377
|
}
|
|
3166
3378
|
}, 0);
|
|
3167
3379
|
}
|
|
@@ -3173,22 +3385,24 @@ function sa({ template: a, setTemplate: n }) {
|
|
|
3173
3385
|
/* @__PURE__ */ e("div", { className: "rsp-relative", children: /* @__PURE__ */ e(
|
|
3174
3386
|
"textarea",
|
|
3175
3387
|
{
|
|
3176
|
-
ref:
|
|
3388
|
+
ref: k,
|
|
3177
3389
|
value: a.body,
|
|
3178
|
-
onChange: (
|
|
3390
|
+
onChange: (v) => s({ ...a, body: v.target.value }),
|
|
3179
3391
|
maxLength: 1024,
|
|
3180
3392
|
rows: 6,
|
|
3181
3393
|
className: "rsp-w-full rsp-px-3 rsp-py-2 rsp-border rsp-border-gray-300 rsp-rounded-md rsp-text-sm focus:rsp-outline-none focus:rsp-border-blue-500 rsp-bg-white rsp-resize-none rsp-shadow-sm",
|
|
3182
3394
|
placeholder: "Enter the text for your message",
|
|
3183
|
-
onFocus: () =>
|
|
3395
|
+
onFocus: () => x("body"),
|
|
3396
|
+
onBlur: () => U(!0)
|
|
3184
3397
|
}
|
|
3185
3398
|
) }),
|
|
3399
|
+
!a.body && N && /* @__PURE__ */ e("p", { className: "rsp-text-xs rsp-text-red-600 rsp-mt-1", children: "Body is required." }),
|
|
3186
3400
|
/* @__PURE__ */ r("div", { className: "rsp-flex rsp-items-center rsp-justify-between rsp-mt-2", children: [
|
|
3187
3401
|
/* @__PURE__ */ r("div", { className: "rsp-flex rsp-items-center rsp-gap-2", children: [
|
|
3188
3402
|
/* @__PURE__ */ e(
|
|
3189
3403
|
"button",
|
|
3190
3404
|
{
|
|
3191
|
-
onClick:
|
|
3405
|
+
onClick: b,
|
|
3192
3406
|
className: "rsp-p-1 rsp-text-gray-500 hover:rsp-text-gray-700 hover:rsp-bg-gray-100 rsp-rounded",
|
|
3193
3407
|
title: "Add Variable",
|
|
3194
3408
|
children: /* @__PURE__ */ e("svg", { className: "rsp-w-4 rsp-h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" }) })
|
|
@@ -3197,10 +3411,10 @@ function sa({ template: a, setTemplate: n }) {
|
|
|
3197
3411
|
/* @__PURE__ */ e(
|
|
3198
3412
|
"button",
|
|
3199
3413
|
{
|
|
3200
|
-
onClick:
|
|
3414
|
+
onClick: M,
|
|
3201
3415
|
className: "rsp-p-1 rsp-text-gray-500 hover:rsp-text-gray-700 hover:rsp-bg-gray-100 rsp-rounded",
|
|
3202
3416
|
title: "Add emoji",
|
|
3203
|
-
children: /* @__PURE__ */ e(
|
|
3417
|
+
children: /* @__PURE__ */ e(he, { className: "rsp-w-4 rsp-h-4" })
|
|
3204
3418
|
}
|
|
3205
3419
|
)
|
|
3206
3420
|
] }),
|
|
@@ -3210,15 +3424,15 @@ function sa({ template: a, setTemplate: n }) {
|
|
|
3210
3424
|
] }) })
|
|
3211
3425
|
] }),
|
|
3212
3426
|
(() => {
|
|
3213
|
-
const
|
|
3214
|
-
return
|
|
3427
|
+
const v = a.body.match(/\{\{(\d+)\}\}/g) || [], c = [...new Set(v.map((p) => p.replace(/[{}]/g, "")))];
|
|
3428
|
+
return c.length === 0 ? null : /* @__PURE__ */ r("div", { className: "rsp-mt-3", children: [
|
|
3215
3429
|
/* @__PURE__ */ e("p", { className: "rsp-text-xs rsp-font-medium rsp-text-gray-600 rsp-mb-2", children: "Sample Values" }),
|
|
3216
|
-
/* @__PURE__ */ e("div", { className: "rsp-grid rsp-grid-cols-3 rsp-gap-2", children:
|
|
3217
|
-
var
|
|
3430
|
+
/* @__PURE__ */ e("div", { className: "rsp-grid rsp-grid-cols-3 rsp-gap-2", children: c.map((p) => {
|
|
3431
|
+
var y, u;
|
|
3218
3432
|
return /* @__PURE__ */ r("div", { className: "rsp-flex rsp-items-center rsp-gap-2", children: [
|
|
3219
3433
|
/* @__PURE__ */ r("label", { className: "rsp-text-xs rsp-text-gray-500 rsp-whitespace-nowrap", children: [
|
|
3220
3434
|
"{{",
|
|
3221
|
-
|
|
3435
|
+
p,
|
|
3222
3436
|
"}}",
|
|
3223
3437
|
":"
|
|
3224
3438
|
] }),
|
|
@@ -3226,21 +3440,21 @@ function sa({ template: a, setTemplate: n }) {
|
|
|
3226
3440
|
"input",
|
|
3227
3441
|
{
|
|
3228
3442
|
type: "text",
|
|
3229
|
-
value: ((
|
|
3230
|
-
onChange: (
|
|
3231
|
-
var
|
|
3232
|
-
const
|
|
3443
|
+
value: ((u = (y = a.sampleContent) == null ? void 0 : y.bodyVariables) == null ? void 0 : u[p]) || "",
|
|
3444
|
+
onChange: (V) => {
|
|
3445
|
+
var d, E, A;
|
|
3446
|
+
const B = {
|
|
3233
3447
|
...a.sampleContent,
|
|
3234
3448
|
bodyVariables: {
|
|
3235
|
-
...(
|
|
3236
|
-
[
|
|
3449
|
+
...(d = a.sampleContent) == null ? void 0 : d.bodyVariables,
|
|
3450
|
+
[p]: V.target.value
|
|
3237
3451
|
},
|
|
3238
|
-
headerVariables: ((
|
|
3239
|
-
buttonVariables: ((
|
|
3452
|
+
headerVariables: ((E = a.sampleContent) == null ? void 0 : E.headerVariables) || {},
|
|
3453
|
+
buttonVariables: ((A = a.sampleContent) == null ? void 0 : A.buttonVariables) || {}
|
|
3240
3454
|
};
|
|
3241
|
-
|
|
3455
|
+
s({
|
|
3242
3456
|
...a,
|
|
3243
|
-
sampleContent:
|
|
3457
|
+
sampleContent: B
|
|
3244
3458
|
});
|
|
3245
3459
|
},
|
|
3246
3460
|
className: "rsp-flex-1 rsp-px-2 rsp-py-1 rsp-border rsp-border-gray-300 rsp-rounded rsp-text-xs focus:rsp-outline-none focus:rsp-border-blue-500",
|
|
@@ -3252,16 +3466,16 @@ function sa({ template: a, setTemplate: n }) {
|
|
|
3252
3466
|
{
|
|
3253
3467
|
type: "button",
|
|
3254
3468
|
onClick: () => {
|
|
3255
|
-
var
|
|
3256
|
-
const
|
|
3257
|
-
|
|
3469
|
+
var E, A, O;
|
|
3470
|
+
const V = new RegExp(`\\{\\{${p}\\}\\}`, "g"), B = (a.body || "").replace(V, ""), d = Object.fromEntries(Object.entries(((E = a.sampleContent) == null ? void 0 : E.bodyVariables) || {}).filter(([R]) => R !== p));
|
|
3471
|
+
s({
|
|
3258
3472
|
...a,
|
|
3259
|
-
body:
|
|
3473
|
+
body: B,
|
|
3260
3474
|
sampleContent: {
|
|
3261
3475
|
...a.sampleContent,
|
|
3262
|
-
bodyVariables:
|
|
3263
|
-
headerVariables: ((
|
|
3264
|
-
buttonVariables: ((
|
|
3476
|
+
bodyVariables: d,
|
|
3477
|
+
headerVariables: ((A = a.sampleContent) == null ? void 0 : A.headerVariables) || {},
|
|
3478
|
+
buttonVariables: ((O = a.sampleContent) == null ? void 0 : O.buttonVariables) || {}
|
|
3265
3479
|
}
|
|
3266
3480
|
});
|
|
3267
3481
|
},
|
|
@@ -3270,7 +3484,7 @@ function sa({ template: a, setTemplate: n }) {
|
|
|
3270
3484
|
children: "×"
|
|
3271
3485
|
}
|
|
3272
3486
|
)
|
|
3273
|
-
] }, `body-sample-${
|
|
3487
|
+
] }, `body-sample-${p}`);
|
|
3274
3488
|
}) })
|
|
3275
3489
|
] });
|
|
3276
3490
|
})()
|
|
@@ -3280,14 +3494,14 @@ function sa({ template: a, setTemplate: n }) {
|
|
|
3280
3494
|
/* @__PURE__ */ e("div", { className: "rsp-relative", children: /* @__PURE__ */ e(
|
|
3281
3495
|
"input",
|
|
3282
3496
|
{
|
|
3283
|
-
ref:
|
|
3497
|
+
ref: o,
|
|
3284
3498
|
type: "text",
|
|
3285
3499
|
value: a.footer,
|
|
3286
|
-
onChange: (
|
|
3500
|
+
onChange: (v) => s({ ...a, footer: v.target.value }),
|
|
3287
3501
|
maxLength: 60,
|
|
3288
3502
|
className: "rsp-w-full rsp-px-0 rsp-py-2 rsp-border-0 rsp-border-b rsp-border-gray-300 rsp-text-sm focus:rsp-outline-none focus:rsp-border-blue-500 rsp-bg-transparent",
|
|
3289
3503
|
placeholder: "Footer Text",
|
|
3290
|
-
onFocus: () =>
|
|
3504
|
+
onFocus: () => x("footer")
|
|
3291
3505
|
}
|
|
3292
3506
|
) }),
|
|
3293
3507
|
/* @__PURE__ */ r("p", { className: "rsp-text-xs rsp-text-gray-500 rsp-mt-1", children: [
|
|
@@ -3296,93 +3510,95 @@ function sa({ template: a, setTemplate: n }) {
|
|
|
3296
3510
|
] })
|
|
3297
3511
|
] }),
|
|
3298
3512
|
/* @__PURE__ */ e(
|
|
3299
|
-
|
|
3513
|
+
ge,
|
|
3300
3514
|
{
|
|
3301
3515
|
isOpen: i,
|
|
3302
|
-
onClose: () =>
|
|
3303
|
-
onSelect:
|
|
3516
|
+
onClose: () => n(!1),
|
|
3517
|
+
onSelect: g
|
|
3304
3518
|
}
|
|
3305
3519
|
)
|
|
3306
3520
|
] });
|
|
3307
3521
|
}
|
|
3308
|
-
function
|
|
3309
|
-
var
|
|
3310
|
-
const [i,
|
|
3522
|
+
function ua({ template: a, setTemplate: s }) {
|
|
3523
|
+
var v;
|
|
3524
|
+
const [i, n] = P(null), [t, x] = P(!1), [l, k] = P({
|
|
3311
3525
|
text: "",
|
|
3312
3526
|
value: "",
|
|
3313
3527
|
urlType: "static"
|
|
3314
|
-
}),
|
|
3315
|
-
quickReply: a.buttons.filter((
|
|
3316
|
-
url: a.buttons.filter((
|
|
3317
|
-
call: a.buttons.filter((
|
|
3318
|
-
flow: a.buttons.filter((
|
|
3319
|
-
},
|
|
3320
|
-
|
|
3321
|
-
},
|
|
3322
|
-
if (!
|
|
3323
|
-
|
|
3528
|
+
}), o = {
|
|
3529
|
+
quickReply: a.buttons.filter((c) => c.type === "QUICK_REPLY").length,
|
|
3530
|
+
url: a.buttons.filter((c) => c.type === "URL").length,
|
|
3531
|
+
call: a.buttons.filter((c) => c.type === "CALL").length,
|
|
3532
|
+
flow: a.buttons.filter((c) => c.type === "FLOW").length
|
|
3533
|
+
}, N = () => {
|
|
3534
|
+
k({ text: "", value: "", urlType: "static" }), n(null), x(!1);
|
|
3535
|
+
}, U = (c) => {
|
|
3536
|
+
if (!l.text.trim()) return;
|
|
3537
|
+
let p = c === "QUICK_REPLY" ? l.text : l.value;
|
|
3538
|
+
c === "CALL" && p && !p.startsWith("+") && (p = "+" + p);
|
|
3539
|
+
const y = {
|
|
3324
3540
|
id: Math.random().toString(36).substr(2, 9),
|
|
3325
|
-
type:
|
|
3326
|
-
text:
|
|
3327
|
-
value:
|
|
3328
|
-
urlType:
|
|
3541
|
+
type: c,
|
|
3542
|
+
text: l.text,
|
|
3543
|
+
value: p,
|
|
3544
|
+
urlType: c === "URL" ? l.urlType : void 0
|
|
3329
3545
|
};
|
|
3330
|
-
|
|
3546
|
+
s({
|
|
3331
3547
|
...a,
|
|
3332
|
-
buttons: [...a.buttons,
|
|
3333
|
-
}),
|
|
3334
|
-
},
|
|
3335
|
-
|
|
3548
|
+
buttons: [...a.buttons, y]
|
|
3549
|
+
}), N();
|
|
3550
|
+
}, f = (c) => {
|
|
3551
|
+
s({
|
|
3336
3552
|
...a,
|
|
3337
|
-
buttons: a.buttons.filter((
|
|
3553
|
+
buttons: a.buttons.filter((p) => p.id !== c)
|
|
3338
3554
|
});
|
|
3339
|
-
},
|
|
3340
|
-
|
|
3341
|
-
|
|
3342
|
-
|
|
3555
|
+
}, b = (c, p, y) => {
|
|
3556
|
+
const u = a.buttons.find((d) => d.id === c), V = p === "text" ? 25 : p === "value" && (u == null ? void 0 : u.type) === "URL" ? 2e3 : 20;
|
|
3557
|
+
let B = y.slice(0, V);
|
|
3558
|
+
p === "value" && (u == null ? void 0 : u.type) === "CALL" && B && !B.startsWith("+") && (B = "+" + B), s({
|
|
3343
3559
|
...a,
|
|
3344
3560
|
buttons: a.buttons.map(
|
|
3345
|
-
(
|
|
3561
|
+
(d) => d.id === c ? { ...d, [p]: B } : d
|
|
3346
3562
|
)
|
|
3347
3563
|
});
|
|
3348
|
-
},
|
|
3349
|
-
const
|
|
3350
|
-
...a.buttons.filter((
|
|
3351
|
-
|
|
3564
|
+
}, M = () => {
|
|
3565
|
+
const p = [
|
|
3566
|
+
...a.buttons.filter((u) => u.type === "URL" && u.urlType === "dynamic").map((u) => u.value || ""),
|
|
3567
|
+
l.value
|
|
3352
3568
|
// Include current form input
|
|
3353
3569
|
].join(" ").match(/{{\d+}}/g);
|
|
3354
|
-
if (!
|
|
3355
|
-
const
|
|
3356
|
-
const
|
|
3357
|
-
return
|
|
3570
|
+
if (!p) return 0;
|
|
3571
|
+
const y = p.map((u) => {
|
|
3572
|
+
const V = u.match(/{{(\d+)}}/);
|
|
3573
|
+
return V ? parseInt(V[1], 10) : 0;
|
|
3358
3574
|
});
|
|
3359
|
-
return
|
|
3360
|
-
},
|
|
3575
|
+
return y.length > 0 ? Math.max(...y) : 0;
|
|
3576
|
+
}, g = [
|
|
3361
3577
|
{
|
|
3362
3578
|
type: "QUICK_REPLY",
|
|
3363
|
-
icon:
|
|
3579
|
+
icon: me,
|
|
3364
3580
|
label: "Quick Reply",
|
|
3365
3581
|
description: "Add quick response options",
|
|
3366
3582
|
limit: 10,
|
|
3367
|
-
current:
|
|
3583
|
+
current: o.quickReply,
|
|
3368
3584
|
color: "blue"
|
|
3369
3585
|
},
|
|
3370
3586
|
{
|
|
3371
3587
|
type: "URL",
|
|
3372
|
-
icon:
|
|
3588
|
+
icon: He,
|
|
3373
3589
|
label: "Web URL",
|
|
3374
3590
|
description: "Link to websites or pages",
|
|
3375
3591
|
limit: 2,
|
|
3376
|
-
current:
|
|
3592
|
+
current: o.url,
|
|
3377
3593
|
color: "green"
|
|
3378
3594
|
},
|
|
3379
3595
|
{
|
|
3380
3596
|
type: "CALL",
|
|
3381
|
-
icon:
|
|
3597
|
+
icon: Ue,
|
|
3382
3598
|
label: "Call Button",
|
|
3383
3599
|
description: "Add phone number to call",
|
|
3384
3600
|
limit: 1,
|
|
3385
|
-
current:
|
|
3601
|
+
current: o.call,
|
|
3386
3602
|
color: "purple"
|
|
3387
3603
|
}
|
|
3388
3604
|
// {
|
|
@@ -3407,47 +3623,47 @@ function na({ template: a, setTemplate: n }) {
|
|
|
3407
3623
|
/* @__PURE__ */ e("div", { className: "rsp-flex-shrink-0", children: /* @__PURE__ */ e("svg", { className: "rsp-h-5 rsp-w-5 rsp-text-blue-400", viewBox: "0 0 20 20", fill: "currentColor", children: /* @__PURE__ */ e("path", { fillRule: "evenodd", d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z", clipRule: "evenodd" }) }) }),
|
|
3408
3624
|
/* @__PURE__ */ e("div", { className: "rsp-ml-3", children: /* @__PURE__ */ e("p", { className: "rsp-text-sm rsp-text-blue-700", children: "We recommend adding the marketing opt-out button. This can help reduce blocks from customers and increase your quality rating." }) })
|
|
3409
3625
|
] }) }),
|
|
3410
|
-
!i && /* @__PURE__ */ e("div", { className: "rsp-grid rsp-grid-cols-1 md:rsp-grid-cols-2 rsp-gap-4", children:
|
|
3411
|
-
const
|
|
3626
|
+
!i && /* @__PURE__ */ e("div", { className: "rsp-grid rsp-grid-cols-1 md:rsp-grid-cols-2 rsp-gap-4", children: g.map((c) => {
|
|
3627
|
+
const p = c.icon, y = c.current >= c.limit;
|
|
3412
3628
|
return /* @__PURE__ */ e(
|
|
3413
3629
|
"button",
|
|
3414
3630
|
{
|
|
3415
|
-
onClick: () => !
|
|
3416
|
-
disabled:
|
|
3417
|
-
className: `rsp-p-4 rsp-border-2 rsp-rounded-xl rsp-text-left rsp-transition-all rsp-duration-200 ${
|
|
3631
|
+
onClick: () => !y && n(c.type),
|
|
3632
|
+
disabled: y,
|
|
3633
|
+
className: `rsp-p-4 rsp-border-2 rsp-rounded-xl rsp-text-left rsp-transition-all rsp-duration-200 ${y ? "rsp-border-gray-200 rsp-bg-gray-50 rsp-text-gray-400 rsp-cursor-not-allowed rsp-opacity-60" : "rsp-cursor-pointer rsp-transform rsp-shadow-sm hover:rsp-shadow-md"}`,
|
|
3418
3634
|
children: /* @__PURE__ */ r("div", { className: "rsp-flex rsp-items-start rsp-justify-between", children: [
|
|
3419
3635
|
/* @__PURE__ */ r("div", { className: "rsp-flex rsp-items-center rsp-gap-3", children: [
|
|
3420
|
-
/* @__PURE__ */ e("div", { className: `rsp-p-2 rsp-rounded-lg ${
|
|
3636
|
+
/* @__PURE__ */ e("div", { className: `rsp-p-2 rsp-rounded-lg ${y ? "rsp-bg-gray-200" : "rsp-bg-white rsp-shadow-sm"}`, children: /* @__PURE__ */ e(p, { className: "rsp-w-5 rsp-h-5" }) }),
|
|
3421
3637
|
/* @__PURE__ */ r("div", { children: [
|
|
3422
|
-
/* @__PURE__ */ e("h4", { className: "rsp-font-semibold rsp-text-sm", children:
|
|
3423
|
-
/* @__PURE__ */ e("p", { className: "rsp-text-xs rsp-opacity-80 rsp-mt-1", children:
|
|
3638
|
+
/* @__PURE__ */ e("h4", { className: "rsp-font-semibold rsp-text-sm", children: c.label }),
|
|
3639
|
+
/* @__PURE__ */ e("p", { className: "rsp-text-xs rsp-opacity-80 rsp-mt-1", children: c.description })
|
|
3424
3640
|
] })
|
|
3425
3641
|
] }),
|
|
3426
3642
|
/* @__PURE__ */ r("div", { className: "rsp-flex rsp-items-center rsp-gap-2", children: [
|
|
3427
3643
|
/* @__PURE__ */ r("span", { className: "rsp-text-xs rsp-font-medium rsp-px-2 rsp-py-1 rsp-rounded-full rsp-bg-white rsp-bg-opacity-70", children: [
|
|
3428
|
-
|
|
3644
|
+
c.current,
|
|
3429
3645
|
"/",
|
|
3430
|
-
|
|
3646
|
+
c.limit
|
|
3431
3647
|
] }),
|
|
3432
|
-
!
|
|
3648
|
+
!y && /* @__PURE__ */ e(Ae, { className: "rsp-w-4 rsp-h-4" })
|
|
3433
3649
|
] })
|
|
3434
3650
|
] })
|
|
3435
3651
|
},
|
|
3436
|
-
|
|
3652
|
+
c.type
|
|
3437
3653
|
);
|
|
3438
3654
|
}) }),
|
|
3439
3655
|
i && /* @__PURE__ */ r("div", { className: "rsp-bg-gradient-to-br rsp-from-gray-50 rsp-to-gray-100 rsp-border rsp-border-gray-200 rsp-rounded-xl rsp-p-6 rsp-shadow-sm", children: [
|
|
3440
3656
|
/* @__PURE__ */ r("div", { className: "rsp-flex rsp-items-center rsp-justify-between rsp-mb-4", children: [
|
|
3441
3657
|
/* @__PURE__ */ r("h4", { className: "rsp-text-lg rsp-font-semibold rsp-text-gray-900", children: [
|
|
3442
3658
|
"Add ",
|
|
3443
|
-
(
|
|
3659
|
+
(v = g.find((c) => c.type === i)) == null ? void 0 : v.label
|
|
3444
3660
|
] }),
|
|
3445
3661
|
/* @__PURE__ */ e(
|
|
3446
3662
|
"button",
|
|
3447
3663
|
{
|
|
3448
|
-
onClick:
|
|
3664
|
+
onClick: N,
|
|
3449
3665
|
className: "rsp-p-2 rsp-text-gray-400 hover:rsp-text-gray-600 hover:rsp-bg-white rsp-rounded-lg rsp-transition-colors",
|
|
3450
|
-
children: /* @__PURE__ */ e(
|
|
3666
|
+
children: /* @__PURE__ */ e(re, { className: "rsp-w-5 rsp-h-5" })
|
|
3451
3667
|
}
|
|
3452
3668
|
)
|
|
3453
3669
|
] }),
|
|
@@ -3459,15 +3675,15 @@ function na({ template: a, setTemplate: n }) {
|
|
|
3459
3675
|
"input",
|
|
3460
3676
|
{
|
|
3461
3677
|
type: "text",
|
|
3462
|
-
value:
|
|
3463
|
-
onChange: (
|
|
3678
|
+
value: l.text,
|
|
3679
|
+
onChange: (c) => k({ ...l, text: c.target.value.slice(0, 25) }),
|
|
3464
3680
|
className: "rsp-w-full rsp-px-4 rsp-py-3 rsp-border rsp-border-gray-300 rsp-rounded-lg rsp-bg-white rsp-text-sm focus:rsp-outline-none focus:rsp-ring-2 focus:rsp-ring-blue-500 focus:rsp-border-transparent rsp-shadow-sm",
|
|
3465
3681
|
placeholder: "Enter button text (max 25 characters)",
|
|
3466
3682
|
maxLength: 25
|
|
3467
3683
|
}
|
|
3468
3684
|
),
|
|
3469
3685
|
/* @__PURE__ */ r("span", { className: "rsp-absolute rsp-right-3 rsp-top-1/2 rsp-transform -rsp-translate-y-1/2 rsp-text-xs rsp-text-gray-400", children: [
|
|
3470
|
-
|
|
3686
|
+
l.text.length,
|
|
3471
3687
|
"/25"
|
|
3472
3688
|
] })
|
|
3473
3689
|
] })
|
|
@@ -3481,8 +3697,8 @@ function na({ template: a, setTemplate: n }) {
|
|
|
3481
3697
|
"input",
|
|
3482
3698
|
{
|
|
3483
3699
|
type: "radio",
|
|
3484
|
-
checked:
|
|
3485
|
-
onChange: () =>
|
|
3700
|
+
checked: l.urlType === "static",
|
|
3701
|
+
onChange: () => k({ ...l, urlType: "static" }),
|
|
3486
3702
|
className: "rsp-mr-2 rsp-text-blue-600"
|
|
3487
3703
|
}
|
|
3488
3704
|
),
|
|
@@ -3493,15 +3709,15 @@ function na({ template: a, setTemplate: n }) {
|
|
|
3493
3709
|
"input",
|
|
3494
3710
|
{
|
|
3495
3711
|
type: "radio",
|
|
3496
|
-
checked:
|
|
3497
|
-
onChange: () =>
|
|
3712
|
+
checked: l.urlType === "dynamic",
|
|
3713
|
+
onChange: () => k({ ...l, urlType: "dynamic" }),
|
|
3498
3714
|
className: "rsp-mr-2 rsp-text-blue-600"
|
|
3499
3715
|
}
|
|
3500
3716
|
),
|
|
3501
3717
|
/* @__PURE__ */ e("span", { className: "rsp-text-sm rsp-text-gray-700", children: "Dynamic URL" })
|
|
3502
3718
|
] })
|
|
3503
3719
|
] }),
|
|
3504
|
-
|
|
3720
|
+
l.urlType === "dynamic" && /* @__PURE__ */ r("div", { className: "rsp-mt-3 rsp-p-3 rsp-bg-blue-50 rsp-rounded-lg rsp-border rsp-border-blue-200", children: [
|
|
3505
3721
|
/* @__PURE__ */ e("h4", { className: "rsp-text-sm rsp-font-medium rsp-text-blue-800 rsp-mb-2", children: "Dynamic URL Guidelines:" }),
|
|
3506
3722
|
/* @__PURE__ */ r("ul", { className: "rsp-text-xs rsp-text-blue-700 rsp-space-y-1", children: [
|
|
3507
3723
|
/* @__PURE__ */ e("li", { children: "• Use placeholders like: https://example.com/order/{{1}}" }),
|
|
@@ -3516,73 +3732,73 @@ function na({ template: a, setTemplate: n }) {
|
|
|
3516
3732
|
"input",
|
|
3517
3733
|
{
|
|
3518
3734
|
type: i === "CALL" ? "tel" : i === "URL" ? "url" : "text",
|
|
3519
|
-
value:
|
|
3520
|
-
onChange: (
|
|
3521
|
-
const
|
|
3522
|
-
|
|
3735
|
+
value: l.value,
|
|
3736
|
+
onChange: (c) => {
|
|
3737
|
+
const p = i === "URL" ? 2e3 : 20;
|
|
3738
|
+
k({ ...l, value: c.target.value.slice(0, p) });
|
|
3523
3739
|
},
|
|
3524
3740
|
className: "rsp-w-full rsp-px-4 rsp-py-3 rsp-border rsp-border-gray-300 rsp-rounded-lg rsp-bg-white rsp-text-sm focus:rsp-outline-none focus:rsp-ring-2 focus:rsp-ring-blue-500 focus:rsp-border-transparent rsp-shadow-sm",
|
|
3525
|
-
placeholder: i === "URL" ?
|
|
3741
|
+
placeholder: i === "URL" ? l.urlType === "dynamic" ? "https://example.com/order/{{1}}?user={{2}}" : "https://example.com" : i === "CALL" ? "+1234567890" : "Flow ID",
|
|
3526
3742
|
maxLength: i === "URL" ? 2e3 : 20
|
|
3527
3743
|
}
|
|
3528
3744
|
),
|
|
3529
3745
|
/* @__PURE__ */ r("span", { className: "rsp-absolute rsp-right-3 rsp-top-1/2 rsp-transform -rsp-translate-y-1/2 rsp-text-xs rsp-text-gray-400", children: [
|
|
3530
|
-
|
|
3746
|
+
l.value.length,
|
|
3531
3747
|
"/",
|
|
3532
3748
|
i === "URL" ? 2e3 : 20
|
|
3533
3749
|
] })
|
|
3534
3750
|
] }),
|
|
3535
|
-
i === "URL" &&
|
|
3751
|
+
i === "URL" && l.urlType === "dynamic" && /* @__PURE__ */ r("div", { className: "rsp-mt-3", children: [
|
|
3536
3752
|
/* @__PURE__ */ e("div", { className: "rsp-flex rsp-items-center rsp-gap-2 rsp-mb-2", children: /* @__PURE__ */ e(
|
|
3537
3753
|
"button",
|
|
3538
3754
|
{
|
|
3539
3755
|
type: "button",
|
|
3540
3756
|
onClick: () => {
|
|
3541
|
-
if ((
|
|
3542
|
-
const
|
|
3543
|
-
|
|
3757
|
+
if ((l.value.match(/\{\{(\d+)\}\}/g) || []).length >= 3) return;
|
|
3758
|
+
const y = M() + 1, u = l.value + `{{${y}}}`;
|
|
3759
|
+
k({ ...l, value: u }), x(!0);
|
|
3544
3760
|
},
|
|
3545
|
-
disabled: (
|
|
3761
|
+
disabled: (l.value.match(/\{\{(\d+)\}\}/g) || []).length >= 3,
|
|
3546
3762
|
className: "rsp-px-2 rsp-py-2 rsp-text-xs rsp-bg-gray-300 hover:rsp-bg-gray-200 rsp-rounded rsp-text-gray-700 disabled:rsp-bg-gray-200 disabled:rsp-text-gray-500",
|
|
3547
3763
|
children: "+ Add Variable"
|
|
3548
3764
|
}
|
|
3549
3765
|
) }),
|
|
3550
|
-
(
|
|
3551
|
-
|
|
3766
|
+
(l.value.match(/\{\{(\d+)\}\}/g) || []).length >= 3 && /* @__PURE__ */ e("p", { className: "rsp-text-xs rsp-text-gray-500 rsp-mt-1", children: "Maximum 3 variables allowed." }),
|
|
3767
|
+
t && /* @__PURE__ */ r("div", { className: "rsp-mt-4 rsp-p-4 rsp-bg-gray-50 rsp-rounded-lg rsp-border", children: [
|
|
3552
3768
|
/* @__PURE__ */ e("h4", { className: "rsp-text-sm rsp-font-medium rsp-text-gray-700 rsp-mb-3", children: "Sample Values for URL Variables" }),
|
|
3553
3769
|
/* @__PURE__ */ e("div", { className: "rsp-space-y-3", children: (() => {
|
|
3554
|
-
const
|
|
3555
|
-
return [...new Set(
|
|
3556
|
-
var
|
|
3770
|
+
const c = l.value.match(/\{\{(\d+)\}\}/g) || [];
|
|
3771
|
+
return [...new Set(c.map((y) => y.replace(/[{}]/g, "")))].map((y) => {
|
|
3772
|
+
var u, V;
|
|
3557
3773
|
return /* @__PURE__ */ r("div", { className: "rsp-flex rsp-items-center rsp-gap-2", children: [
|
|
3558
3774
|
/* @__PURE__ */ r("label", { className: "rsp-text-sm rsp-text-gray-600 rsp-whitespace-nowrap", children: [
|
|
3559
3775
|
"Variable {{",
|
|
3560
|
-
|
|
3776
|
+
y,
|
|
3561
3777
|
"}}"
|
|
3562
3778
|
] }),
|
|
3563
3779
|
/* @__PURE__ */ e(
|
|
3564
3780
|
"input",
|
|
3565
3781
|
{
|
|
3566
3782
|
type: "text",
|
|
3567
|
-
value: ((
|
|
3568
|
-
onChange: (
|
|
3569
|
-
var
|
|
3570
|
-
const
|
|
3783
|
+
value: ((V = (u = a.sampleContent) == null ? void 0 : u.buttonVariables) == null ? void 0 : V[y]) || "",
|
|
3784
|
+
onChange: (B) => {
|
|
3785
|
+
var E, A, O;
|
|
3786
|
+
const d = {
|
|
3571
3787
|
...a.sampleContent,
|
|
3572
|
-
headerVariables: ((
|
|
3573
|
-
bodyVariables: ((
|
|
3788
|
+
headerVariables: ((E = a.sampleContent) == null ? void 0 : E.headerVariables) || {},
|
|
3789
|
+
bodyVariables: ((A = a.sampleContent) == null ? void 0 : A.bodyVariables) || {},
|
|
3574
3790
|
buttonVariables: {
|
|
3575
|
-
...(
|
|
3576
|
-
[
|
|
3791
|
+
...(O = a.sampleContent) == null ? void 0 : O.buttonVariables,
|
|
3792
|
+
[y]: B.target.value
|
|
3577
3793
|
}
|
|
3578
3794
|
};
|
|
3579
|
-
|
|
3795
|
+
s({
|
|
3580
3796
|
...a,
|
|
3581
|
-
sampleContent:
|
|
3797
|
+
sampleContent: d
|
|
3582
3798
|
});
|
|
3583
3799
|
},
|
|
3584
3800
|
className: "rsp-flex-1 rsp-px-3 rsp-py-2 rsp-border rsp-border-gray-300 rsp-rounded-md rsp-text-sm focus:rsp-outline-none focus:rsp-ring-1 focus:rsp-ring-blue-500 focus:rsp-border-blue-500",
|
|
3585
|
-
placeholder: `Sample value (e.g., ${
|
|
3801
|
+
placeholder: `Sample value (e.g., ${y === "1" ? "order123" : "user456"})`
|
|
3586
3802
|
}
|
|
3587
3803
|
),
|
|
3588
3804
|
/* @__PURE__ */ e(
|
|
@@ -3590,17 +3806,17 @@ function na({ template: a, setTemplate: n }) {
|
|
|
3590
3806
|
{
|
|
3591
3807
|
type: "button",
|
|
3592
3808
|
onClick: () => {
|
|
3593
|
-
var
|
|
3594
|
-
const
|
|
3595
|
-
|
|
3596
|
-
const
|
|
3597
|
-
|
|
3809
|
+
var A, O, R;
|
|
3810
|
+
const B = new RegExp(`\\{\\{${y}\\}\\}`, "g"), d = (l.value || "").replace(B, "");
|
|
3811
|
+
k({ ...l, value: d });
|
|
3812
|
+
const E = Object.fromEntries(Object.entries(((A = a.sampleContent) == null ? void 0 : A.buttonVariables) || {}).filter(([_]) => _ !== y));
|
|
3813
|
+
s({
|
|
3598
3814
|
...a,
|
|
3599
3815
|
sampleContent: {
|
|
3600
3816
|
...a.sampleContent,
|
|
3601
|
-
headerVariables: ((
|
|
3602
|
-
bodyVariables: ((
|
|
3603
|
-
buttonVariables:
|
|
3817
|
+
headerVariables: ((O = a.sampleContent) == null ? void 0 : O.headerVariables) || {},
|
|
3818
|
+
bodyVariables: ((R = a.sampleContent) == null ? void 0 : R.bodyVariables) || {},
|
|
3819
|
+
buttonVariables: E
|
|
3604
3820
|
}
|
|
3605
3821
|
});
|
|
3606
3822
|
},
|
|
@@ -3609,16 +3825,16 @@ function na({ template: a, setTemplate: n }) {
|
|
|
3609
3825
|
children: "×"
|
|
3610
3826
|
}
|
|
3611
3827
|
)
|
|
3612
|
-
] }, `sample-${
|
|
3828
|
+
] }, `sample-${y}`);
|
|
3613
3829
|
});
|
|
3614
3830
|
})() }),
|
|
3615
3831
|
/* @__PURE__ */ r("div", { className: "rsp-mt-4 rsp-p-3 rsp-bg-white rsp-rounded-lg rsp-border", children: [
|
|
3616
3832
|
/* @__PURE__ */ e("p", { className: "rsp-text-xs rsp-font-medium rsp-text-gray-700 rsp-mb-1", children: "Preview URL:" }),
|
|
3617
|
-
/* @__PURE__ */ e("p", { className: "rsp-text-xs rsp-text-gray-600 rsp-font-mono rsp-break-all", children:
|
|
3833
|
+
/* @__PURE__ */ e("p", { className: "rsp-text-xs rsp-text-gray-600 rsp-font-mono rsp-break-all", children: l.value.replace(
|
|
3618
3834
|
/\{\{(\d+)\}\}/g,
|
|
3619
|
-
(
|
|
3620
|
-
var
|
|
3621
|
-
return ((
|
|
3835
|
+
(c, p) => {
|
|
3836
|
+
var y, u;
|
|
3837
|
+
return ((u = (y = a.sampleContent) == null ? void 0 : y.buttonVariables) == null ? void 0 : u[p]) || `[${c}]`;
|
|
3622
3838
|
}
|
|
3623
3839
|
) })
|
|
3624
3840
|
] }),
|
|
@@ -3626,7 +3842,7 @@ function na({ template: a, setTemplate: n }) {
|
|
|
3626
3842
|
"button",
|
|
3627
3843
|
{
|
|
3628
3844
|
type: "button",
|
|
3629
|
-
onClick: () =>
|
|
3845
|
+
onClick: () => x(!1),
|
|
3630
3846
|
className: "rsp-px-3 rsp-py-1 rsp-text-xs rsp-text-gray-500 hover:rsp-text-gray-700",
|
|
3631
3847
|
children: "Close"
|
|
3632
3848
|
}
|
|
@@ -3638,8 +3854,8 @@ function na({ template: a, setTemplate: n }) {
|
|
|
3638
3854
|
/* @__PURE__ */ e(
|
|
3639
3855
|
"button",
|
|
3640
3856
|
{
|
|
3641
|
-
onClick: () =>
|
|
3642
|
-
disabled: !
|
|
3857
|
+
onClick: () => U(i),
|
|
3858
|
+
disabled: !l.text.trim() || i !== "QUICK_REPLY" && !l.value.trim(),
|
|
3643
3859
|
className: "rsp-flex-1 rsp-bg-blue-600 rsp-text-white rsp-py-3 rsp-px-4 rsp-rounded-lg rsp-font-medium rsp-text-sm rsp-transition-colors hover:rsp-bg-blue-700 disabled:rsp-opacity-50 disabled:rsp-cursor-not-allowed rsp-shadow-sm",
|
|
3644
3860
|
children: "Add Button"
|
|
3645
3861
|
}
|
|
@@ -3647,7 +3863,7 @@ function na({ template: a, setTemplate: n }) {
|
|
|
3647
3863
|
/* @__PURE__ */ e(
|
|
3648
3864
|
"button",
|
|
3649
3865
|
{
|
|
3650
|
-
onClick:
|
|
3866
|
+
onClick: N,
|
|
3651
3867
|
className: "rsp-px-4 rsp-py-3 rsp-text-gray-600 rsp-bg-white rsp-border rsp-border-gray-300 rsp-rounded-lg rsp-font-medium rsp-text-sm rsp-transition-colors hover:rsp-bg-gray-50 rsp-shadow-sm",
|
|
3652
3868
|
children: "Cancel"
|
|
3653
3869
|
}
|
|
@@ -3657,19 +3873,19 @@ function na({ template: a, setTemplate: n }) {
|
|
|
3657
3873
|
] }),
|
|
3658
3874
|
a.buttons.length > 0 && /* @__PURE__ */ r("div", { className: "rsp-space-y-4", children: [
|
|
3659
3875
|
/* @__PURE__ */ e("h4", { className: "rsp-text-md rsp-font-semibold rsp-text-gray-900", children: "Added Buttons" }),
|
|
3660
|
-
/* @__PURE__ */ e("div", { className: "rsp-space-y-3", children: a.buttons.map((
|
|
3661
|
-
const
|
|
3876
|
+
/* @__PURE__ */ e("div", { className: "rsp-space-y-3", children: a.buttons.map((c) => {
|
|
3877
|
+
const p = g.find((u) => u.type === c.type), y = (p == null ? void 0 : p.icon) || me;
|
|
3662
3878
|
return /* @__PURE__ */ e("div", { className: "rsp-bg-white rsp-border rsp-border-gray-200 rsp-rounded-lg rsp-p-4 rsp-shadow-sm", children: /* @__PURE__ */ r("div", { className: "rsp-flex rsp-items-start rsp-gap-3", children: [
|
|
3663
|
-
/* @__PURE__ */ e("div", { className: "rsp-p-2 rsp-bg-gray-50 rsp-rounded-lg", children: /* @__PURE__ */ e(
|
|
3879
|
+
/* @__PURE__ */ e("div", { className: "rsp-p-2 rsp-bg-gray-50 rsp-rounded-lg", children: /* @__PURE__ */ e(y, { className: "rsp-w-4 rsp-h-4 rsp-text-gray-600" }) }),
|
|
3664
3880
|
/* @__PURE__ */ r("div", { className: "rsp-flex-1 rsp-space-y-3", children: [
|
|
3665
3881
|
/* @__PURE__ */ r("div", { className: "rsp-flex rsp-items-center rsp-justify-between", children: [
|
|
3666
|
-
/* @__PURE__ */ e("span", { className: "rsp-text-xs rsp-font-medium rsp-text-gray-500 rsp-uppercase rsp-tracking-wider", children:
|
|
3882
|
+
/* @__PURE__ */ e("span", { className: "rsp-text-xs rsp-font-medium rsp-text-gray-500 rsp-uppercase rsp-tracking-wider", children: c.type.replace("_", " ") }),
|
|
3667
3883
|
/* @__PURE__ */ e(
|
|
3668
3884
|
"button",
|
|
3669
3885
|
{
|
|
3670
|
-
onClick: () =>
|
|
3886
|
+
onClick: () => f(c.id),
|
|
3671
3887
|
className: "rsp-p-1 rsp-text-red-400 hover:rsp-text-red-600 hover:rsp-bg-red-50 rsp-rounded rsp-transition-colors",
|
|
3672
|
-
children: /* @__PURE__ */ e(
|
|
3888
|
+
children: /* @__PURE__ */ e(re, { className: "rsp-w-4 rsp-h-4" })
|
|
3673
3889
|
}
|
|
3674
3890
|
)
|
|
3675
3891
|
] }),
|
|
@@ -3681,103 +3897,103 @@ function na({ template: a, setTemplate: n }) {
|
|
|
3681
3897
|
"input",
|
|
3682
3898
|
{
|
|
3683
3899
|
type: "text",
|
|
3684
|
-
value:
|
|
3685
|
-
onChange: (
|
|
3900
|
+
value: c.text,
|
|
3901
|
+
onChange: (u) => b(c.id, "text", u.target.value),
|
|
3686
3902
|
maxLength: 25,
|
|
3687
3903
|
className: "rsp-w-full rsp-px-3 rsp-py-2 rsp-border rsp-border-gray-300 rsp-rounded-md rsp-text-sm focus:rsp-outline-none focus:rsp-ring-1 focus:rsp-ring-blue-500 focus:rsp-border-blue-500"
|
|
3688
3904
|
}
|
|
3689
3905
|
),
|
|
3690
3906
|
/* @__PURE__ */ r("span", { className: "rsp-absolute rsp-right-2 rsp-top-1/2 rsp-transform -rsp-translate-y-1/2 rsp-text-xs rsp-text-gray-400", children: [
|
|
3691
|
-
|
|
3907
|
+
c.text.length,
|
|
3692
3908
|
"/25"
|
|
3693
3909
|
] })
|
|
3694
3910
|
] })
|
|
3695
3911
|
] }),
|
|
3696
|
-
|
|
3697
|
-
/* @__PURE__ */ e("label", { className: "rsp-block rsp-text-xs rsp-font-medium rsp-text-gray-600 rsp-mb-1", children:
|
|
3912
|
+
c.type !== "QUICK_REPLY" && /* @__PURE__ */ r("div", { children: [
|
|
3913
|
+
/* @__PURE__ */ e("label", { className: "rsp-block rsp-text-xs rsp-font-medium rsp-text-gray-600 rsp-mb-1", children: c.type === "URL" ? "Website URL" : c.type === "CALL" ? "Phone Number" : "Flow ID" }),
|
|
3698
3914
|
/* @__PURE__ */ r("div", { className: "rsp-relative", children: [
|
|
3699
3915
|
/* @__PURE__ */ e(
|
|
3700
3916
|
"input",
|
|
3701
3917
|
{
|
|
3702
|
-
type:
|
|
3703
|
-
value:
|
|
3704
|
-
onChange: (
|
|
3705
|
-
maxLength:
|
|
3918
|
+
type: c.type === "CALL" ? "tel" : c.type === "URL" ? "url" : "text",
|
|
3919
|
+
value: c.value || "",
|
|
3920
|
+
onChange: (u) => b(c.id, "value", u.target.value),
|
|
3921
|
+
maxLength: c.type === "URL" ? 2e3 : 20,
|
|
3706
3922
|
className: "rsp-w-full rsp-px-3 rsp-py-2 rsp-border rsp-border-gray-300 rsp-rounded-md rsp-text-sm focus:rsp-outline-none focus:rsp-ring-1 focus:rsp-ring-blue-500 focus:rsp-border-blue-500"
|
|
3707
3923
|
}
|
|
3708
3924
|
),
|
|
3709
3925
|
/* @__PURE__ */ r("span", { className: "rsp-absolute rsp-right-2 rsp-top-1/2 rsp-transform -rsp-translate-y-1/2 rsp-text-xs rsp-text-gray-400", children: [
|
|
3710
|
-
(
|
|
3926
|
+
(c.value || "").length,
|
|
3711
3927
|
"/",
|
|
3712
|
-
|
|
3928
|
+
c.type === "URL" ? 2e3 : 20
|
|
3713
3929
|
] })
|
|
3714
3930
|
] })
|
|
3715
3931
|
] })
|
|
3716
3932
|
] })
|
|
3717
3933
|
] })
|
|
3718
|
-
] }) },
|
|
3934
|
+
] }) }, c.id);
|
|
3719
3935
|
}) })
|
|
3720
3936
|
] }),
|
|
3721
3937
|
a.buttons.length === 0 && !i && /* @__PURE__ */ r("div", { className: "rsp-text-center rsp-py-12 rsp-bg-gray-50 rsp-rounded-xl rsp-border-2 rsp-border-dashed rsp-border-gray-300", children: [
|
|
3722
|
-
/* @__PURE__ */ e("div", { className: "rsp-w-16 rsp-h-16 rsp-bg-white rsp-rounded-full rsp-flex rsp-items-center rsp-justify-center rsp-mx-auto rsp-mb-4 rsp-shadow-sm", children: /* @__PURE__ */ e(
|
|
3938
|
+
/* @__PURE__ */ e("div", { className: "rsp-w-16 rsp-h-16 rsp-bg-white rsp-rounded-full rsp-flex rsp-items-center rsp-justify-center rsp-mx-auto rsp-mb-4 rsp-shadow-sm", children: /* @__PURE__ */ e(me, { className: "rsp-w-8 rsp-h-8 rsp-text-gray-400" }) }),
|
|
3723
3939
|
/* @__PURE__ */ e("h3", { className: "rsp-text-lg rsp-font-medium rsp-text-gray-900 rsp-mb-2", children: "No buttons added yet" }),
|
|
3724
3940
|
/* @__PURE__ */ e("p", { className: "rsp-text-gray-500 rsp-text-sm rsp-mb-4", children: "Add interactive buttons to make your message more engaging" }),
|
|
3725
3941
|
/* @__PURE__ */ e("p", { className: "rsp-text-xs rsp-text-gray-400", children: "Choose from Quick Reply, Web URL, Call, or Flow buttons above" })
|
|
3726
3942
|
] })
|
|
3727
3943
|
] });
|
|
3728
3944
|
}
|
|
3729
|
-
const
|
|
3945
|
+
const ba = async (a) => {
|
|
3730
3946
|
try {
|
|
3731
3947
|
if (!a)
|
|
3732
3948
|
throw new Error("No file provided");
|
|
3733
|
-
const
|
|
3734
|
-
if (a.size >
|
|
3735
|
-
throw new Error(`File size too large. Maximum allowed size is ${
|
|
3949
|
+
const s = 100 * 1024 * 1024;
|
|
3950
|
+
if (a.size > s)
|
|
3951
|
+
throw new Error(`File size too large. Maximum allowed size is ${s / (1024 * 1024)}MB`);
|
|
3736
3952
|
const i = new FormData();
|
|
3737
3953
|
i.append("file", a), console.log("Uploading file:", a.name, "Size:", a.size, "Type:", a.type);
|
|
3738
|
-
const
|
|
3954
|
+
const n = await fetch("https://wiz.resul.io/Communication/UploadDocuments", {
|
|
3739
3955
|
method: "POST",
|
|
3740
3956
|
body: i
|
|
3741
3957
|
});
|
|
3742
|
-
console.log("Upload response status:",
|
|
3743
|
-
const
|
|
3744
|
-
console.log("Raw upload response:",
|
|
3745
|
-
let
|
|
3958
|
+
console.log("Upload response status:", n.status), console.log("Upload response headers:", Object.fromEntries(n.headers.entries()));
|
|
3959
|
+
const t = await n.text();
|
|
3960
|
+
console.log("Raw upload response:", t);
|
|
3961
|
+
let x;
|
|
3746
3962
|
try {
|
|
3747
|
-
|
|
3748
|
-
} catch (
|
|
3749
|
-
throw console.error("Failed to parse upload response:",
|
|
3963
|
+
x = JSON.parse(t);
|
|
3964
|
+
} catch (l) {
|
|
3965
|
+
throw console.error("Failed to parse upload response:", l), new Error("Invalid response from upload server");
|
|
3750
3966
|
}
|
|
3751
|
-
if (console.log("Parsed upload response:",
|
|
3752
|
-
throw new Error(
|
|
3753
|
-
if (
|
|
3754
|
-
const
|
|
3755
|
-
if (
|
|
3967
|
+
if (console.log("Parsed upload response:", x), console.log("Upload status:", x.status), console.log("Upload message:", x.message), console.log("Upload data:", x.data), !x.status)
|
|
3968
|
+
throw new Error(x.message || "Upload failed");
|
|
3969
|
+
if (x.data && Array.isArray(x.data) && x.data.length > 0) {
|
|
3970
|
+
const l = x.data[0];
|
|
3971
|
+
if (l.url)
|
|
3756
3972
|
return console.log("File uploaded successfully:", {
|
|
3757
|
-
url:
|
|
3758
|
-
filename:
|
|
3759
|
-
originalName:
|
|
3760
|
-
size:
|
|
3761
|
-
}),
|
|
3973
|
+
url: l.url,
|
|
3974
|
+
filename: l.filename,
|
|
3975
|
+
originalName: l.originalName,
|
|
3976
|
+
size: l.size
|
|
3977
|
+
}), l.url;
|
|
3762
3978
|
throw new Error("No file URL in upload response data");
|
|
3763
3979
|
} else
|
|
3764
3980
|
throw new Error("No files in upload response data");
|
|
3765
|
-
} catch (
|
|
3766
|
-
throw console.error("File upload error:",
|
|
3981
|
+
} catch (s) {
|
|
3982
|
+
throw console.error("File upload error:", s), s instanceof Error ? s : new Error("Unknown error occurred during file upload");
|
|
3767
3983
|
}
|
|
3768
|
-
},
|
|
3769
|
-
const
|
|
3770
|
-
switch (
|
|
3984
|
+
}, ga = (a, s) => {
|
|
3985
|
+
const n = a.name.toLowerCase().split(".").pop();
|
|
3986
|
+
switch (s) {
|
|
3771
3987
|
case "IMAGE":
|
|
3772
|
-
return ["jpg", "jpeg", "png", "gif", "bmp", "tiff", "svg"].includes(
|
|
3988
|
+
return ["jpg", "jpeg", "png", "gif", "bmp", "tiff", "svg"].includes(n || "");
|
|
3773
3989
|
case "VIDEO":
|
|
3774
|
-
return ["mp4", "mov", "avi", "3gpp"].includes(
|
|
3990
|
+
return ["mp4", "mov", "avi", "3gpp"].includes(n || "");
|
|
3775
3991
|
case "DOCUMENT":
|
|
3776
|
-
return ["pdf", "doc", "docx", "xls", "xlsx", "ppt", "pptx", "txt"].includes(
|
|
3992
|
+
return ["pdf", "doc", "docx", "xls", "xlsx", "ppt", "pptx", "txt"].includes(n || "");
|
|
3777
3993
|
default:
|
|
3778
3994
|
return !1;
|
|
3779
3995
|
}
|
|
3780
|
-
},
|
|
3996
|
+
}, ya = (a) => {
|
|
3781
3997
|
switch (a) {
|
|
3782
3998
|
case "IMAGE":
|
|
3783
3999
|
return 5 * 1024 * 1024;
|
|
@@ -3789,138 +4005,161 @@ const la = async (a) => {
|
|
|
3789
4005
|
return 10 * 1024 * 1024;
|
|
3790
4006
|
}
|
|
3791
4007
|
};
|
|
3792
|
-
function
|
|
3793
|
-
var
|
|
3794
|
-
const [
|
|
3795
|
-
var
|
|
3796
|
-
const
|
|
4008
|
+
function wa({ template: a, setTemplate: s, onFileUpload: i }) {
|
|
4009
|
+
var E, A, O, R, _;
|
|
4010
|
+
const [n, t] = J.useState({}), [, x] = J.useState({}), [l, k] = J.useState({ open: !1, message: "" }), [w, o] = J.useState(!1), [N, U] = J.useState(null), f = J.useRef({}), b = () => {
|
|
4011
|
+
var C;
|
|
4012
|
+
const m = {
|
|
3797
4013
|
id: Math.random().toString(36).substr(2, 9),
|
|
3798
4014
|
headerType: "MEDIA",
|
|
3799
|
-
mediaType: ((
|
|
4015
|
+
mediaType: ((C = a.carousel) == null ? void 0 : C.type) === "VIDEO" ? "VIDEO" : "IMAGE",
|
|
3800
4016
|
body: "",
|
|
3801
4017
|
buttons: []
|
|
3802
4018
|
};
|
|
3803
|
-
|
|
3804
|
-
var
|
|
4019
|
+
s((S) => {
|
|
4020
|
+
var j, I;
|
|
3805
4021
|
return {
|
|
3806
|
-
...
|
|
4022
|
+
...S,
|
|
3807
4023
|
carousel: {
|
|
3808
|
-
type: ((
|
|
3809
|
-
cards: [...((
|
|
4024
|
+
type: ((j = a.carousel) == null ? void 0 : j.type) || "IMAGE",
|
|
4025
|
+
cards: [...((I = a.carousel) == null ? void 0 : I.cards) || [], m]
|
|
3810
4026
|
}
|
|
3811
4027
|
};
|
|
3812
4028
|
});
|
|
3813
|
-
},
|
|
3814
|
-
|
|
3815
|
-
...
|
|
4029
|
+
}, M = (m) => {
|
|
4030
|
+
s((C) => ({
|
|
4031
|
+
...C,
|
|
3816
4032
|
carousel: {
|
|
3817
|
-
...
|
|
3818
|
-
cards:
|
|
4033
|
+
...C.carousel,
|
|
4034
|
+
cards: C.carousel.cards.filter((S) => S.id !== m)
|
|
3819
4035
|
}
|
|
3820
4036
|
}));
|
|
3821
|
-
},
|
|
3822
|
-
|
|
3823
|
-
...
|
|
4037
|
+
}, g = (m, C, S) => {
|
|
4038
|
+
s((j) => ({
|
|
4039
|
+
...j,
|
|
3824
4040
|
carousel: {
|
|
3825
|
-
...
|
|
3826
|
-
cards:
|
|
3827
|
-
(
|
|
4041
|
+
...j.carousel,
|
|
4042
|
+
cards: j.carousel.cards.map(
|
|
4043
|
+
(I) => I.id === m ? { ...I, [C]: S } : I
|
|
3828
4044
|
)
|
|
3829
4045
|
}
|
|
3830
4046
|
}));
|
|
3831
|
-
},
|
|
3832
|
-
|
|
3833
|
-
|
|
3834
|
-
|
|
3835
|
-
|
|
3836
|
-
|
|
3837
|
-
|
|
3838
|
-
|
|
3839
|
-
|
|
3840
|
-
|
|
3841
|
-
|
|
3842
|
-
|
|
3843
|
-
|
|
3844
|
-
|
|
3845
|
-
|
|
3846
|
-
|
|
3847
|
-
|
|
4047
|
+
}, v = (m) => {
|
|
4048
|
+
s((C) => {
|
|
4049
|
+
const j = ((C.carousel || { type: m, cards: [] }).cards || []).map((I) => ({
|
|
4050
|
+
...I,
|
|
4051
|
+
mediaType: m,
|
|
4052
|
+
mediaUrl: ""
|
|
4053
|
+
}));
|
|
4054
|
+
return {
|
|
4055
|
+
...C,
|
|
4056
|
+
carousel: {
|
|
4057
|
+
type: m,
|
|
4058
|
+
cards: j
|
|
4059
|
+
}
|
|
4060
|
+
};
|
|
4061
|
+
});
|
|
4062
|
+
}, c = (m, C) => {
|
|
4063
|
+
var q;
|
|
4064
|
+
const S = (q = a.carousel) == null ? void 0 : q.cards.find((X) => X.id === m);
|
|
4065
|
+
if (!S) return;
|
|
4066
|
+
const h = `{{${y(m) + 1}}}`, z = S[C] + h;
|
|
4067
|
+
g(m, C, z);
|
|
4068
|
+
}, p = (m) => {
|
|
4069
|
+
var z;
|
|
4070
|
+
if (!N) return;
|
|
4071
|
+
const C = f.current[N], S = (z = a.carousel) == null ? void 0 : z.cards.find((q) => q.id === N);
|
|
4072
|
+
if (!S) return;
|
|
4073
|
+
const j = C && typeof C.selectionStart == "number" ? C.selectionStart : S.body.length, I = S.body.substring(0, j), h = S.body.substring(j), L = I + m + h;
|
|
4074
|
+
g(N, "body", L), setTimeout(() => {
|
|
4075
|
+
const q = f.current[N];
|
|
4076
|
+
if (q) {
|
|
4077
|
+
const X = j + m.length;
|
|
4078
|
+
q.setSelectionRange(X, X), q.focus();
|
|
3848
4079
|
}
|
|
3849
|
-
}, 0),
|
|
3850
|
-
},
|
|
3851
|
-
var
|
|
3852
|
-
const
|
|
3853
|
-
if (!
|
|
3854
|
-
const
|
|
3855
|
-
if (!
|
|
3856
|
-
const
|
|
3857
|
-
const
|
|
3858
|
-
return
|
|
4080
|
+
}, 0), o(!1);
|
|
4081
|
+
}, y = (m) => {
|
|
4082
|
+
var h;
|
|
4083
|
+
const C = (h = a.carousel) == null ? void 0 : h.cards.find((L) => L.id === m);
|
|
4084
|
+
if (!C) return 0;
|
|
4085
|
+
const j = (C.body || "").match(/\{\{(\d+)\}\}/g);
|
|
4086
|
+
if (!j) return 0;
|
|
4087
|
+
const I = j.map((L) => {
|
|
4088
|
+
const z = L.match(/{{(\d+)}}/);
|
|
4089
|
+
return z ? parseInt(z[1], 10) : 0;
|
|
3859
4090
|
});
|
|
3860
|
-
return
|
|
3861
|
-
},
|
|
3862
|
-
var
|
|
3863
|
-
const
|
|
3864
|
-
if (!
|
|
3865
|
-
const
|
|
4091
|
+
return I.length > 0 ? Math.max(...I) : 0;
|
|
4092
|
+
}, u = (m, C) => {
|
|
4093
|
+
var I;
|
|
4094
|
+
const S = (I = a.carousel) == null ? void 0 : I.cards.find((h) => h.id === m);
|
|
4095
|
+
if (!S || S.buttons.length >= 2) return;
|
|
4096
|
+
const j = {
|
|
3866
4097
|
id: Math.random().toString(36).substr(2, 9),
|
|
3867
|
-
type:
|
|
4098
|
+
type: C,
|
|
3868
4099
|
text: "",
|
|
3869
4100
|
value: "",
|
|
3870
4101
|
urlType: "static"
|
|
3871
4102
|
};
|
|
3872
|
-
|
|
3873
|
-
},
|
|
3874
|
-
var
|
|
3875
|
-
const
|
|
3876
|
-
if (!
|
|
3877
|
-
const
|
|
3878
|
-
(
|
|
4103
|
+
g(m, "buttons", [...S.buttons, j]);
|
|
4104
|
+
}, V = (m, C, S, j) => {
|
|
4105
|
+
var L;
|
|
4106
|
+
const I = (L = a.carousel) == null ? void 0 : L.cards.find((z) => z.id === m);
|
|
4107
|
+
if (!I) return;
|
|
4108
|
+
const h = I.buttons.map(
|
|
4109
|
+
(z) => z.id === C ? { ...z, [S]: j } : z
|
|
3879
4110
|
);
|
|
3880
|
-
|
|
3881
|
-
},
|
|
3882
|
-
var
|
|
3883
|
-
const
|
|
3884
|
-
if (!
|
|
3885
|
-
const
|
|
3886
|
-
|
|
3887
|
-
},
|
|
3888
|
-
var
|
|
4111
|
+
g(m, "buttons", h);
|
|
4112
|
+
}, B = (m, C) => {
|
|
4113
|
+
var I;
|
|
4114
|
+
const S = (I = a.carousel) == null ? void 0 : I.cards.find((h) => h.id === m);
|
|
4115
|
+
if (!S) return;
|
|
4116
|
+
const j = S.buttons.filter((h) => h.id !== C);
|
|
4117
|
+
g(m, "buttons", j);
|
|
4118
|
+
}, d = async (m, C) => {
|
|
4119
|
+
var S;
|
|
3889
4120
|
try {
|
|
3890
|
-
|
|
3891
|
-
const
|
|
3892
|
-
if (!
|
|
3893
|
-
throw new Error(`Invalid file type. Expected ${
|
|
3894
|
-
const
|
|
3895
|
-
if (
|
|
3896
|
-
const
|
|
3897
|
-
throw new Error(`File size too large. Maximum allowed size is ${
|
|
4121
|
+
t((L) => ({ ...L, [m]: !0 })), x((L) => ({ ...L, [m]: !1 }));
|
|
4122
|
+
const j = ((S = a.carousel) == null ? void 0 : S.type) === "VIDEO" ? "VIDEO" : "IMAGE";
|
|
4123
|
+
if (!ga(C, j))
|
|
4124
|
+
throw new Error(`Invalid file type. Expected ${j.toLowerCase()} file.`);
|
|
4125
|
+
const I = ya(j);
|
|
4126
|
+
if (C.size > I) {
|
|
4127
|
+
const L = I / 1048576;
|
|
4128
|
+
throw new Error(`File size too large. Maximum allowed size is ${L}MB.`);
|
|
3898
4129
|
}
|
|
3899
|
-
const
|
|
3900
|
-
|
|
3901
|
-
} catch (
|
|
3902
|
-
console.error("File upload failed:",
|
|
4130
|
+
const h = await i(C);
|
|
4131
|
+
g(m, "mediaUrl", h);
|
|
4132
|
+
} catch (j) {
|
|
4133
|
+
console.error("File upload failed:", j), k({ open: !0, message: j instanceof Error ? j.message : "File upload failed" });
|
|
3903
4134
|
} finally {
|
|
3904
|
-
|
|
4135
|
+
t((j) => ({ ...j, [m]: !1 }));
|
|
3905
4136
|
}
|
|
3906
4137
|
};
|
|
3907
4138
|
return /* @__PURE__ */ r("div", { className: "rsp-space-y-6", children: [
|
|
4139
|
+
l.open && /* @__PURE__ */ r("div", { className: "rsp-fixed rsp-inset-0 rsp-z-50 rsp-flex rsp-items-center rsp-justify-center", children: [
|
|
4140
|
+
/* @__PURE__ */ e("div", { className: "rsp-absolute rsp-inset-0 rsp-bg-black rsp-bg-opacity-40", onClick: () => k({ open: !1, message: "" }) }),
|
|
4141
|
+
/* @__PURE__ */ r("div", { className: "rsp-relative rsp-z-10 rsp-bg-white rsp-rounded-lg rsp-shadow-lg rsp-w-full rsp-max-w-md rsp-p-5", children: [
|
|
4142
|
+
/* @__PURE__ */ e("div", { className: "rsp-mb-3 rsp-text-lg rsp-font-semibold rsp-text-gray-900", children: "Upload Error" }),
|
|
4143
|
+
/* @__PURE__ */ e("div", { className: "rsp-text-sm rsp-text-gray-700 rsp-break-words rsp-whitespace-pre-wrap", children: l.message }),
|
|
4144
|
+
/* @__PURE__ */ e("div", { className: "rsp-flex rsp-justify-end rsp-mt-4", children: /* @__PURE__ */ e("button", { onClick: () => k({ open: !1, message: "" }), className: "rsp-px-4 rsp-py-2 rsp-text-sm rsp-font-medium rsp-text-white rsp-bg-blue-600 rsp-rounded-md hover:rsp-bg-blue-700", children: "OK" }) })
|
|
4145
|
+
] })
|
|
4146
|
+
] }),
|
|
3908
4147
|
/* @__PURE__ */ r("div", { className: "rsp-flex rsp-items-center rsp-justify-between", children: [
|
|
3909
4148
|
/* @__PURE__ */ e("h3", { className: "rsp-text-lg rsp-font-semibold rsp-text-gray-900", children: "Carousel Cards" }),
|
|
3910
4149
|
/* @__PURE__ */ r("div", { className: "rsp-flex rsp-items-center rsp-gap-4", children: [
|
|
3911
4150
|
/* @__PURE__ */ r("span", { className: "rsp-text-sm rsp-text-gray-500", children: [
|
|
3912
4151
|
"Total Cards: ",
|
|
3913
|
-
((
|
|
4152
|
+
((E = a.carousel) == null ? void 0 : E.cards.length) || 0,
|
|
3914
4153
|
"/10"
|
|
3915
4154
|
] }),
|
|
3916
4155
|
/* @__PURE__ */ r(
|
|
3917
4156
|
"button",
|
|
3918
4157
|
{
|
|
3919
|
-
onClick:
|
|
3920
|
-
disabled: (((
|
|
4158
|
+
onClick: b,
|
|
4159
|
+
disabled: (((A = a.carousel) == null ? void 0 : A.cards.length) || 0) >= 10,
|
|
3921
4160
|
className: "rsp-px-4 rsp-py-2 rsp-bg-blue-600 rsp-text-white rsp-rounded-md hover:rsp-bg-blue-700 disabled:rsp-bg-gray-400 disabled:rsp-cursor-not-allowed rsp-text-sm rsp-font-medium",
|
|
3922
4161
|
children: [
|
|
3923
|
-
/* @__PURE__ */ e(
|
|
4162
|
+
/* @__PURE__ */ e(Ae, { className: "rsp-w-4 rsp-h-4 rsp-inline rsp-mr-2" }),
|
|
3924
4163
|
"Add Card"
|
|
3925
4164
|
]
|
|
3926
4165
|
}
|
|
@@ -3937,17 +4176,8 @@ function ma({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
3937
4176
|
type: "radio",
|
|
3938
4177
|
name: "carouselType",
|
|
3939
4178
|
value: "IMAGE",
|
|
3940
|
-
checked: ((
|
|
3941
|
-
onChange: (
|
|
3942
|
-
var E;
|
|
3943
|
-
return {
|
|
3944
|
-
...b,
|
|
3945
|
-
carousel: {
|
|
3946
|
-
type: s.target.value,
|
|
3947
|
-
cards: ((E = b.carousel) == null ? void 0 : E.cards) || []
|
|
3948
|
-
}
|
|
3949
|
-
};
|
|
3950
|
-
}),
|
|
4179
|
+
checked: ((O = a.carousel) == null ? void 0 : O.type) === "IMAGE",
|
|
4180
|
+
onChange: (m) => v(m.target.value),
|
|
3951
4181
|
className: "rsp-mr-2"
|
|
3952
4182
|
}
|
|
3953
4183
|
),
|
|
@@ -3960,17 +4190,8 @@ function ma({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
3960
4190
|
type: "radio",
|
|
3961
4191
|
name: "carouselType",
|
|
3962
4192
|
value: "VIDEO",
|
|
3963
|
-
checked: ((
|
|
3964
|
-
onChange: (
|
|
3965
|
-
var E;
|
|
3966
|
-
return {
|
|
3967
|
-
...b,
|
|
3968
|
-
carousel: {
|
|
3969
|
-
type: s.target.value,
|
|
3970
|
-
cards: ((E = b.carousel) == null ? void 0 : E.cards) || []
|
|
3971
|
-
}
|
|
3972
|
-
};
|
|
3973
|
-
}),
|
|
4193
|
+
checked: ((R = a.carousel) == null ? void 0 : R.type) === "VIDEO",
|
|
4194
|
+
onChange: (m) => v(m.target.value),
|
|
3974
4195
|
className: "rsp-mr-2"
|
|
3975
4196
|
}
|
|
3976
4197
|
),
|
|
@@ -3978,98 +4199,98 @@ function ma({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
3978
4199
|
] })
|
|
3979
4200
|
] })
|
|
3980
4201
|
] }),
|
|
3981
|
-
/* @__PURE__ */ e("div", { className: "rsp-space-y-6", children: (
|
|
3982
|
-
var
|
|
4202
|
+
/* @__PURE__ */ e("div", { className: "rsp-space-y-6", children: (_ = a.carousel) == null ? void 0 : _.cards.map((m, C) => {
|
|
4203
|
+
var S, j, I, h, L, z, q, X;
|
|
3983
4204
|
return /* @__PURE__ */ r("div", { className: "rsp-bg-white rsp-rounded-xl rsp-border-2 rsp-border-gray-200 rsp-overflow-hidden rsp-shadow-lg rsp-transition-all hover:rsp-shadow-xl hover:rsp-border-blue-300", children: [
|
|
3984
4205
|
/* @__PURE__ */ r("div", { className: "rsp-bg-gradient-to-r rsp-from-blue-50 rsp-to-blue-100 rsp-px-5 rsp-py-3 rsp-flex rsp-items-center rsp-justify-between rsp-border-b rsp-border-gray-200", children: [
|
|
3985
4206
|
/* @__PURE__ */ r("div", { className: "rsp-flex rsp-items-center rsp-gap-3", children: [
|
|
3986
|
-
/* @__PURE__ */ e("div", { className: "rsp-w-8 rsp-h-8 rsp-bg-blue-500 rsp-text-white rsp-rounded-full rsp-flex rsp-items-center rsp-justify-center rsp-font-bold rsp-text-sm rsp-shadow-md", children:
|
|
4207
|
+
/* @__PURE__ */ e("div", { className: "rsp-w-8 rsp-h-8 rsp-bg-blue-500 rsp-text-white rsp-rounded-full rsp-flex rsp-items-center rsp-justify-center rsp-font-bold rsp-text-sm rsp-shadow-md", children: C + 1 }),
|
|
3987
4208
|
/* @__PURE__ */ r("h4", { className: "rsp-text-base rsp-font-semibold rsp-text-gray-800", children: [
|
|
3988
4209
|
"Card ",
|
|
3989
|
-
|
|
4210
|
+
C + 1
|
|
3990
4211
|
] })
|
|
3991
4212
|
] }),
|
|
3992
4213
|
/* @__PURE__ */ e(
|
|
3993
4214
|
"button",
|
|
3994
4215
|
{
|
|
3995
|
-
onClick: () =>
|
|
4216
|
+
onClick: () => M(m.id),
|
|
3996
4217
|
className: "rsp-p-1.5 rsp-text-gray-500 hover:rsp-text-white hover:rsp-bg-red-500 rsp-rounded-full rsp-transition-colors",
|
|
3997
4218
|
title: "Remove Card",
|
|
3998
|
-
children: /* @__PURE__ */ e(
|
|
4219
|
+
children: /* @__PURE__ */ e(re, { className: "rsp-w-4 rsp-h-4" })
|
|
3999
4220
|
}
|
|
4000
4221
|
)
|
|
4001
4222
|
] }),
|
|
4002
4223
|
/* @__PURE__ */ e("div", { className: "rsp-p-6", children: /* @__PURE__ */ r("div", { className: "rsp-grid rsp-grid-cols-1 lg:rsp-grid-cols-2 rsp-gap-6", children: [
|
|
4003
4224
|
/* @__PURE__ */ r("div", { children: [
|
|
4004
4225
|
/* @__PURE__ */ r("label", { className: "rsp-text-sm rsp-font-semibold rsp-text-gray-800 rsp-mb-3 rsp-flex rsp-items-center rsp-gap-2", children: [
|
|
4005
|
-
/* @__PURE__ */ e("svg", { className: "rsp-w-4 rsp-h-4 rsp-text-blue-500", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: ((
|
|
4006
|
-
((
|
|
4226
|
+
/* @__PURE__ */ e("svg", { className: "rsp-w-4 rsp-h-4 rsp-text-blue-500", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: ((S = a.carousel) == null ? void 0 : S.type) === "VIDEO" ? /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z" }) : /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z" }) }),
|
|
4227
|
+
((j = a.carousel) == null ? void 0 : j.type) === "VIDEO" ? "Video" : "Image",
|
|
4007
4228
|
" Upload"
|
|
4008
4229
|
] }),
|
|
4009
4230
|
/* @__PURE__ */ r("div", { className: "rsp-border-2 rsp-border-dashed rsp-border-blue-200 rsp-rounded-xl rsp-p-6 rsp-text-center rsp-bg-gradient-to-br rsp-from-blue-50 rsp-to-white rsp-transition-all hover:rsp-border-blue-400 hover:rsp-from-blue-100 rsp-relative", children: [
|
|
4010
|
-
|
|
4011
|
-
((
|
|
4231
|
+
m.mediaUrl ? /* @__PURE__ */ r("div", { className: "rsp-relative rsp-group", children: [
|
|
4232
|
+
((I = a.carousel) == null ? void 0 : I.type) === "IMAGE" ? /* @__PURE__ */ e(
|
|
4012
4233
|
"img",
|
|
4013
4234
|
{
|
|
4014
|
-
src:
|
|
4015
|
-
alt: `Card ${
|
|
4235
|
+
src: m.mediaUrl,
|
|
4236
|
+
alt: `Card ${C + 1}`,
|
|
4016
4237
|
className: "rsp-w-full rsp-h-48 rsp-object-cover rsp-rounded-lg rsp-shadow-md",
|
|
4017
|
-
onLoad: () =>
|
|
4018
|
-
onError: () =>
|
|
4238
|
+
onLoad: () => x((T) => ({ ...T, [m.id]: !0 })),
|
|
4239
|
+
onError: () => x((T) => ({ ...T, [m.id]: !1 }))
|
|
4019
4240
|
}
|
|
4020
4241
|
) : /* @__PURE__ */ e(
|
|
4021
4242
|
"video",
|
|
4022
4243
|
{
|
|
4023
|
-
src:
|
|
4244
|
+
src: m.mediaUrl,
|
|
4024
4245
|
className: "rsp-w-full rsp-h-48 rsp-object-cover rsp-rounded-lg rsp-shadow-md",
|
|
4025
4246
|
controls: !0,
|
|
4026
|
-
onLoadedData: () =>
|
|
4027
|
-
onError: () =>
|
|
4247
|
+
onLoadedData: () => x((T) => ({ ...T, [m.id]: !0 })),
|
|
4248
|
+
onError: () => x((T) => ({ ...T, [m.id]: !1 }))
|
|
4028
4249
|
}
|
|
4029
4250
|
),
|
|
4030
4251
|
/* @__PURE__ */ e(
|
|
4031
4252
|
"button",
|
|
4032
4253
|
{
|
|
4033
|
-
onClick: () =>
|
|
4254
|
+
onClick: () => g(m.id, "mediaUrl", ""),
|
|
4034
4255
|
className: "rsp-absolute rsp-top-2 rsp-right-2 rsp-p-2 rsp-bg-red-500 rsp-text-white rsp-rounded-full hover:rsp-bg-red-600 rsp-shadow-lg rsp-opacity-0 group-hover:rsp-opacity-100 rsp-transition-opacity",
|
|
4035
4256
|
title: "Remove media",
|
|
4036
|
-
children: /* @__PURE__ */ e(
|
|
4257
|
+
children: /* @__PURE__ */ e(re, { className: "rsp-w-4 rsp-h-4" })
|
|
4037
4258
|
}
|
|
4038
4259
|
),
|
|
4039
|
-
/* @__PURE__ */ e("div", { className: "rsp-absolute rsp-bottom-2 rsp-left-2 rsp-bg-black rsp-bg-opacity-60 rsp-text-white rsp-text-xs rsp-px-2 rsp-py-1 rsp-rounded rsp-backdrop-blur-sm", children: ((
|
|
4260
|
+
/* @__PURE__ */ e("div", { className: "rsp-absolute rsp-bottom-2 rsp-left-2 rsp-bg-black rsp-bg-opacity-60 rsp-text-white rsp-text-xs rsp-px-2 rsp-py-1 rsp-rounded rsp-backdrop-blur-sm", children: ((h = a.carousel) == null ? void 0 : h.type) === "VIDEO" ? "📹 Video" : "🖼️ Image" })
|
|
4040
4261
|
] }) : /* @__PURE__ */ r("div", { children: [
|
|
4041
|
-
/* @__PURE__ */ e("div", { className: "rsp-w-20 rsp-h-20 rsp-mx-auto rsp-mb-4 rsp-bg-gradient-to-br rsp-from-blue-100 rsp-to-blue-200 rsp-rounded-xl rsp-flex rsp-items-center rsp-justify-center rsp-shadow-md", children: /* @__PURE__ */ e("svg", { className: "rsp-w-10 rsp-h-10 rsp-text-blue-600", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: ((
|
|
4262
|
+
/* @__PURE__ */ e("div", { className: "rsp-w-20 rsp-h-20 rsp-mx-auto rsp-mb-4 rsp-bg-gradient-to-br rsp-from-blue-100 rsp-to-blue-200 rsp-rounded-xl rsp-flex rsp-items-center rsp-justify-center rsp-shadow-md", children: /* @__PURE__ */ e("svg", { className: "rsp-w-10 rsp-h-10 rsp-text-blue-600", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: ((L = a.carousel) == null ? void 0 : L.type) === "VIDEO" ? /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z" }) : /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z" }) }) }),
|
|
4042
4263
|
/* @__PURE__ */ e(
|
|
4043
4264
|
"input",
|
|
4044
4265
|
{
|
|
4045
4266
|
type: "file",
|
|
4046
|
-
accept: ((
|
|
4047
|
-
onChange: (
|
|
4048
|
-
var
|
|
4049
|
-
const
|
|
4050
|
-
|
|
4267
|
+
accept: ((z = a.carousel) == null ? void 0 : z.type) === "VIDEO" ? "video/*" : "image/*",
|
|
4268
|
+
onChange: (T) => {
|
|
4269
|
+
var D;
|
|
4270
|
+
const Y = (D = T.target.files) == null ? void 0 : D[0];
|
|
4271
|
+
Y && !n[m.id] && d(m.id, Y);
|
|
4051
4272
|
},
|
|
4052
4273
|
className: "rsp-hidden",
|
|
4053
|
-
id: `file-upload-${
|
|
4054
|
-
disabled: !!
|
|
4274
|
+
id: `file-upload-${m.id}`,
|
|
4275
|
+
disabled: !!n[m.id]
|
|
4055
4276
|
}
|
|
4056
4277
|
),
|
|
4057
4278
|
/* @__PURE__ */ r(
|
|
4058
4279
|
"label",
|
|
4059
4280
|
{
|
|
4060
|
-
htmlFor: `file-upload-${
|
|
4061
|
-
className: `rsp-inline-flex rsp-items-center rsp-gap-2 rsp-px-5 rsp-py-2.5 rsp-border rsp-border-blue-300 rsp-rounded-lg rsp-shadow-sm rsp-text-sm rsp-font-semibold rsp-text-blue-600 rsp-bg-white rsp-transition-colors ${
|
|
4062
|
-
"aria-disabled": !!
|
|
4281
|
+
htmlFor: `file-upload-${m.id}`,
|
|
4282
|
+
className: `rsp-inline-flex rsp-items-center rsp-gap-2 rsp-px-5 rsp-py-2.5 rsp-border rsp-border-blue-300 rsp-rounded-lg rsp-shadow-sm rsp-text-sm rsp-font-semibold rsp-text-blue-600 rsp-bg-white rsp-transition-colors ${n[m.id] ? "rsp-opacity-50 rsp-cursor-not-allowed" : "hover:rsp-bg-blue-50 rsp-cursor-pointer"}`,
|
|
4283
|
+
"aria-disabled": !!n[m.id],
|
|
4063
4284
|
children: [
|
|
4064
4285
|
/* @__PURE__ */ e("svg", { className: "rsp-w-4 rsp-h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12" }) }),
|
|
4065
4286
|
"Upload ",
|
|
4066
|
-
((
|
|
4287
|
+
((q = a.carousel) == null ? void 0 : q.type) === "VIDEO" ? "Video" : "Image"
|
|
4067
4288
|
]
|
|
4068
4289
|
}
|
|
4069
4290
|
),
|
|
4070
4291
|
/* @__PURE__ */ e("p", { className: "rsp-text-xs rsp-text-gray-500 rsp-mt-3 rsp-px-2", children: ((X = a.carousel) == null ? void 0 : X.type) === "VIDEO" ? "📹 MP4, MOV, AVI (Max 16MB)" : "🖼️ PNG, JPG, GIF, TIFF, SVG, BMP (Max 5MB)" })
|
|
4071
4292
|
] }),
|
|
4072
|
-
|
|
4293
|
+
n[m.id] && /* @__PURE__ */ e("div", { className: "rsp-absolute rsp-inset-0 rsp-bg-black rsp-bg-opacity-30 rsp-flex rsp-items-center rsp-justify-center", children: /* @__PURE__ */ r("div", { className: "rsp-flex rsp-items-center rsp-gap-2 rsp-bg-white rsp-px-3 rsp-py-2 rsp-rounded-md rsp-shadow", children: [
|
|
4073
4294
|
/* @__PURE__ */ r("svg", { className: "rsp-w-4 rsp-h-4 rsp-animate-spin", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", children: [
|
|
4074
4295
|
/* @__PURE__ */ e("circle", { cx: "12", cy: "12", r: "10", strokeOpacity: "0.25", strokeWidth: "4" }),
|
|
4075
4296
|
/* @__PURE__ */ e("path", { d: "M22 12a10 10 0 00-10-10", strokeWidth: "4" })
|
|
@@ -4088,11 +4309,11 @@ function ma({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
4088
4309
|
/* @__PURE__ */ e("div", { className: "rsp-relative", children: /* @__PURE__ */ e(
|
|
4089
4310
|
"textarea",
|
|
4090
4311
|
{
|
|
4091
|
-
ref: (
|
|
4092
|
-
|
|
4312
|
+
ref: (T) => {
|
|
4313
|
+
f.current[m.id] = T;
|
|
4093
4314
|
},
|
|
4094
|
-
value:
|
|
4095
|
-
onChange: (
|
|
4315
|
+
value: m.body,
|
|
4316
|
+
onChange: (T) => g(m.id, "body", T.target.value),
|
|
4096
4317
|
maxLength: 160,
|
|
4097
4318
|
rows: 4,
|
|
4098
4319
|
className: "rsp-w-full rsp-px-4 rsp-py-3 rsp-border-2 rsp-border-gray-200 rsp-rounded-lg rsp-text-sm focus:rsp-outline-none focus:rsp-border-blue-400 rsp-bg-white rsp-resize-none rsp-shadow-sm rsp-transition-colors",
|
|
@@ -4104,7 +4325,7 @@ function ma({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
4104
4325
|
/* @__PURE__ */ e(
|
|
4105
4326
|
"button",
|
|
4106
4327
|
{
|
|
4107
|
-
onClick: () =>
|
|
4328
|
+
onClick: () => c(m.id, "body"),
|
|
4108
4329
|
className: "rsp-p-1.5 rsp-text-gray-500 hover:rsp-text-blue-600 hover:rsp-bg-blue-50 rsp-rounded rsp-transition-colors",
|
|
4109
4330
|
title: "Add Variable",
|
|
4110
4331
|
children: /* @__PURE__ */ e("svg", { className: "rsp-w-4 rsp-h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" }) })
|
|
@@ -4114,29 +4335,29 @@ function ma({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
4114
4335
|
"button",
|
|
4115
4336
|
{
|
|
4116
4337
|
onClick: () => {
|
|
4117
|
-
|
|
4338
|
+
U(m.id), o(!0);
|
|
4118
4339
|
},
|
|
4119
4340
|
className: "rsp-p-1.5 rsp-text-gray-500 hover:rsp-text-blue-600 hover:rsp-bg-blue-50 rsp-rounded rsp-transition-colors",
|
|
4120
4341
|
title: "Add Emoji",
|
|
4121
|
-
children: /* @__PURE__ */ e(
|
|
4342
|
+
children: /* @__PURE__ */ e(he, { className: "rsp-w-4 rsp-h-4" })
|
|
4122
4343
|
}
|
|
4123
4344
|
)
|
|
4124
4345
|
] }),
|
|
4125
|
-
/* @__PURE__ */ r("span", { className: `rsp-text-xs rsp-font-medium ${
|
|
4126
|
-
|
|
4346
|
+
/* @__PURE__ */ r("span", { className: `rsp-text-xs rsp-font-medium ${m.body.length > 140 ? "rsp-text-orange-500" : "rsp-text-gray-500"}`, children: [
|
|
4347
|
+
m.body.length,
|
|
4127
4348
|
"/160"
|
|
4128
4349
|
] })
|
|
4129
4350
|
] }),
|
|
4130
4351
|
(() => {
|
|
4131
|
-
const
|
|
4132
|
-
return
|
|
4352
|
+
const T = m.body.match(/\{\{(\d+)\}\}/g) || [], Y = [...new Set(T.map((D) => D.replace(/[{}]/g, "")))];
|
|
4353
|
+
return Y.length === 0 ? null : /* @__PURE__ */ r("div", { className: "rsp-mt-3 rsp-p-3 rsp-bg-blue-50 rsp-rounded-lg rsp-border rsp-border-blue-200", children: [
|
|
4133
4354
|
/* @__PURE__ */ e("p", { className: "rsp-text-xs rsp-font-semibold rsp-text-blue-800 rsp-mb-2", children: "Sample Values for This Card" }),
|
|
4134
|
-
/* @__PURE__ */ e("div", { className: "rsp-grid rsp-grid-cols-1 rsp-gap-2", children:
|
|
4135
|
-
var
|
|
4355
|
+
/* @__PURE__ */ e("div", { className: "rsp-grid rsp-grid-cols-1 rsp-gap-2", children: Y.map((D) => {
|
|
4356
|
+
var ie, G;
|
|
4136
4357
|
return /* @__PURE__ */ r("div", { className: "rsp-flex rsp-items-center rsp-gap-2", children: [
|
|
4137
4358
|
/* @__PURE__ */ r("label", { className: "rsp-text-xs rsp-text-gray-700 rsp-font-medium rsp-whitespace-nowrap", children: [
|
|
4138
4359
|
"{{",
|
|
4139
|
-
|
|
4360
|
+
D,
|
|
4140
4361
|
"}}",
|
|
4141
4362
|
":"
|
|
4142
4363
|
] }),
|
|
@@ -4144,24 +4365,24 @@ function ma({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
4144
4365
|
"input",
|
|
4145
4366
|
{
|
|
4146
4367
|
type: "text",
|
|
4147
|
-
value: ((
|
|
4148
|
-
onChange: (
|
|
4149
|
-
const
|
|
4150
|
-
|
|
4151
|
-
...
|
|
4368
|
+
value: ((G = (ie = m.sampleContent) == null ? void 0 : ie.bodyVariables) == null ? void 0 : G[D]) || "",
|
|
4369
|
+
onChange: (se) => {
|
|
4370
|
+
const ae = se.target.value;
|
|
4371
|
+
s((K) => ({
|
|
4372
|
+
...K,
|
|
4152
4373
|
carousel: {
|
|
4153
|
-
...
|
|
4154
|
-
cards:
|
|
4155
|
-
var
|
|
4156
|
-
return
|
|
4157
|
-
...
|
|
4374
|
+
...K.carousel,
|
|
4375
|
+
cards: K.carousel.cards.map((F) => {
|
|
4376
|
+
var H, W, Z;
|
|
4377
|
+
return F.id !== m.id ? F : {
|
|
4378
|
+
...F,
|
|
4158
4379
|
sampleContent: {
|
|
4159
|
-
headerVariables: ((
|
|
4380
|
+
headerVariables: ((H = F.sampleContent) == null ? void 0 : H.headerVariables) || {},
|
|
4160
4381
|
bodyVariables: {
|
|
4161
|
-
...((
|
|
4162
|
-
[
|
|
4382
|
+
...((W = F.sampleContent) == null ? void 0 : W.bodyVariables) || {},
|
|
4383
|
+
[D]: ae
|
|
4163
4384
|
},
|
|
4164
|
-
buttonVariables: ((
|
|
4385
|
+
buttonVariables: ((Z = F.sampleContent) == null ? void 0 : Z.buttonVariables) || {}
|
|
4165
4386
|
}
|
|
4166
4387
|
};
|
|
4167
4388
|
})
|
|
@@ -4177,22 +4398,22 @@ function ma({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
4177
4398
|
{
|
|
4178
4399
|
type: "button",
|
|
4179
4400
|
onClick: () => {
|
|
4180
|
-
const
|
|
4181
|
-
|
|
4182
|
-
...
|
|
4401
|
+
const se = new RegExp(`\\{\\{${D}\\}\\}`, "g"), ae = (m.body || "").replace(se, "");
|
|
4402
|
+
s((K) => ({
|
|
4403
|
+
...K,
|
|
4183
4404
|
carousel: {
|
|
4184
|
-
...
|
|
4185
|
-
cards:
|
|
4186
|
-
var
|
|
4187
|
-
if (
|
|
4188
|
-
const
|
|
4405
|
+
...K.carousel,
|
|
4406
|
+
cards: K.carousel.cards.map((F) => {
|
|
4407
|
+
var H, W, Z;
|
|
4408
|
+
if (F.id !== m.id) return F;
|
|
4409
|
+
const Q = Object.fromEntries(Object.entries(((H = F.sampleContent) == null ? void 0 : H.bodyVariables) || {}).filter(([ne]) => ne !== D));
|
|
4189
4410
|
return {
|
|
4190
|
-
...
|
|
4191
|
-
body:
|
|
4411
|
+
...F,
|
|
4412
|
+
body: ae,
|
|
4192
4413
|
sampleContent: {
|
|
4193
|
-
headerVariables: ((
|
|
4194
|
-
bodyVariables:
|
|
4195
|
-
buttonVariables: ((
|
|
4414
|
+
headerVariables: ((W = F.sampleContent) == null ? void 0 : W.headerVariables) || {},
|
|
4415
|
+
bodyVariables: Q,
|
|
4416
|
+
buttonVariables: ((Z = F.sampleContent) == null ? void 0 : Z.buttonVariables) || {}
|
|
4196
4417
|
}
|
|
4197
4418
|
};
|
|
4198
4419
|
})
|
|
@@ -4204,18 +4425,18 @@ function ma({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
4204
4425
|
children: "×"
|
|
4205
4426
|
}
|
|
4206
4427
|
)
|
|
4207
|
-
] }, `card-${
|
|
4428
|
+
] }, `card-${m.id}-sample-${D}`);
|
|
4208
4429
|
}) })
|
|
4209
4430
|
] });
|
|
4210
4431
|
})()
|
|
4211
4432
|
] }),
|
|
4212
|
-
|
|
4433
|
+
m.buttons.length < 2 && /* @__PURE__ */ r("div", { children: [
|
|
4213
4434
|
/* @__PURE__ */ r("label", { className: "rsp-text-sm rsp-font-semibold rsp-text-gray-800 rsp-mb-3 rsp-flex rsp-items-center rsp-gap-2", children: [
|
|
4214
4435
|
/* @__PURE__ */ e("svg", { className: "rsp-w-4 rsp-h-4 rsp-text-blue-500", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122" }) }),
|
|
4215
4436
|
"Add Action Button",
|
|
4216
4437
|
/* @__PURE__ */ r("span", { className: "rsp-text-xs rsp-text-gray-500 rsp-font-normal", children: [
|
|
4217
4438
|
"(",
|
|
4218
|
-
|
|
4439
|
+
m.buttons.length,
|
|
4219
4440
|
"/2)"
|
|
4220
4441
|
] })
|
|
4221
4442
|
] }),
|
|
@@ -4223,7 +4444,7 @@ function ma({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
4223
4444
|
/* @__PURE__ */ r(
|
|
4224
4445
|
"button",
|
|
4225
4446
|
{
|
|
4226
|
-
onClick: () =>
|
|
4447
|
+
onClick: () => u(m.id, "QUICK_REPLY"),
|
|
4227
4448
|
className: "rsp-flex rsp-flex-col rsp-items-center rsp-gap-2 rsp-px-3 rsp-py-4 rsp-border-2 rsp-border-gray-200 rsp-rounded-lg rsp-text-sm rsp-font-medium rsp-text-gray-700 hover:rsp-border-blue-400 hover:rsp-bg-blue-50 rsp-transition-all rsp-shadow-sm",
|
|
4228
4449
|
children: [
|
|
4229
4450
|
/* @__PURE__ */ e("svg", { className: "rsp-w-6 rsp-h-6 rsp-text-blue-500", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z" }) }),
|
|
@@ -4234,7 +4455,7 @@ function ma({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
4234
4455
|
/* @__PURE__ */ r(
|
|
4235
4456
|
"button",
|
|
4236
4457
|
{
|
|
4237
|
-
onClick: () =>
|
|
4458
|
+
onClick: () => u(m.id, "URL"),
|
|
4238
4459
|
className: "rsp-flex rsp-flex-col rsp-items-center rsp-gap-2 rsp-px-3 rsp-py-4 rsp-border-2 rsp-border-gray-200 rsp-rounded-lg rsp-text-sm rsp-font-medium rsp-text-gray-700 hover:rsp-border-blue-400 hover:rsp-bg-blue-50 rsp-transition-all rsp-shadow-sm",
|
|
4239
4460
|
children: [
|
|
4240
4461
|
/* @__PURE__ */ e("svg", { className: "rsp-w-6 rsp-h-6 rsp-text-blue-500", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" }) }),
|
|
@@ -4245,7 +4466,7 @@ function ma({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
4245
4466
|
/* @__PURE__ */ r(
|
|
4246
4467
|
"button",
|
|
4247
4468
|
{
|
|
4248
|
-
onClick: () =>
|
|
4469
|
+
onClick: () => u(m.id, "PHONE_NUMBER"),
|
|
4249
4470
|
className: "rsp-flex rsp-flex-col rsp-items-center rsp-gap-2 rsp-px-3 rsp-py-4 rsp-border-2 rsp-border-gray-200 rsp-rounded-lg rsp-text-sm rsp-font-medium rsp-text-gray-700 hover:rsp-border-blue-400 hover:rsp-bg-blue-50 rsp-transition-all rsp-shadow-sm",
|
|
4250
4471
|
children: [
|
|
4251
4472
|
/* @__PURE__ */ e("svg", { className: "rsp-w-6 rsp-h-6 rsp-text-blue-500", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z" }) }),
|
|
@@ -4255,24 +4476,24 @@ function ma({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
4255
4476
|
)
|
|
4256
4477
|
] })
|
|
4257
4478
|
] }),
|
|
4258
|
-
|
|
4479
|
+
m.buttons.length > 0 && /* @__PURE__ */ r("div", { className: "rsp-space-y-3", children: [
|
|
4259
4480
|
/* @__PURE__ */ r("label", { className: "rsp-text-sm rsp-font-semibold rsp-text-gray-800 rsp-flex rsp-items-center rsp-gap-2", children: [
|
|
4260
4481
|
/* @__PURE__ */ e("svg", { className: "rsp-w-4 rsp-h-4 rsp-text-green-500", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" }) }),
|
|
4261
4482
|
"Configured Buttons"
|
|
4262
4483
|
] }),
|
|
4263
|
-
|
|
4484
|
+
m.buttons.map((T, Y) => /* @__PURE__ */ r("div", { className: "rsp-p-4 rsp-border-2 rsp-border-blue-200 rsp-rounded-lg rsp-bg-gradient-to-br rsp-from-blue-50 rsp-to-white rsp-shadow-sm", children: [
|
|
4264
4485
|
/* @__PURE__ */ r("div", { className: "rsp-flex rsp-items-center rsp-justify-between rsp-mb-3", children: [
|
|
4265
4486
|
/* @__PURE__ */ r("div", { className: "rsp-flex rsp-items-center rsp-gap-2", children: [
|
|
4266
|
-
/* @__PURE__ */ e("div", { className: "rsp-w-6 rsp-h-6 rsp-bg-blue-500 rsp-text-white rsp-rounded rsp-flex rsp-items-center rsp-justify-center rsp-text-xs rsp-font-bold", children:
|
|
4267
|
-
/* @__PURE__ */ e("span", { className: "rsp-text-sm rsp-font-semibold rsp-text-gray-800", children:
|
|
4487
|
+
/* @__PURE__ */ e("div", { className: "rsp-w-6 rsp-h-6 rsp-bg-blue-500 rsp-text-white rsp-rounded rsp-flex rsp-items-center rsp-justify-center rsp-text-xs rsp-font-bold", children: Y + 1 }),
|
|
4488
|
+
/* @__PURE__ */ e("span", { className: "rsp-text-sm rsp-font-semibold rsp-text-gray-800", children: T.type === "QUICK_REPLY" ? "Quick Reply" : T.type === "URL" ? "Website" : "Phone" })
|
|
4268
4489
|
] }),
|
|
4269
4490
|
/* @__PURE__ */ e(
|
|
4270
4491
|
"button",
|
|
4271
4492
|
{
|
|
4272
|
-
onClick: () =>
|
|
4493
|
+
onClick: () => B(m.id, T.id),
|
|
4273
4494
|
className: "rsp-p-1 rsp-text-gray-400 hover:rsp-text-red-500 hover:rsp-bg-red-50 rsp-rounded rsp-transition-colors",
|
|
4274
4495
|
title: "Remove button",
|
|
4275
|
-
children: /* @__PURE__ */ e(
|
|
4496
|
+
children: /* @__PURE__ */ e(re, { className: "rsp-w-4 rsp-h-4" })
|
|
4276
4497
|
}
|
|
4277
4498
|
)
|
|
4278
4499
|
] }),
|
|
@@ -4283,15 +4504,15 @@ function ma({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
4283
4504
|
"input",
|
|
4284
4505
|
{
|
|
4285
4506
|
type: "text",
|
|
4286
|
-
value:
|
|
4287
|
-
onChange: (
|
|
4288
|
-
placeholder: `Enter Button Text (Max ${
|
|
4289
|
-
maxLength:
|
|
4507
|
+
value: T.text,
|
|
4508
|
+
onChange: (D) => V(m.id, T.id, "text", D.target.value),
|
|
4509
|
+
placeholder: `Enter Button Text (Max ${T.type === "QUICK_REPLY" ? "25" : "20"} characters)`,
|
|
4510
|
+
maxLength: T.type === "QUICK_REPLY" ? 25 : 20,
|
|
4290
4511
|
className: "rsp-w-full rsp-px-3 rsp-py-2 rsp-border rsp-border-gray-300 rsp-rounded-md rsp-text-sm focus:rsp-outline-none focus:rsp-border-blue-500 rsp-bg-white"
|
|
4291
4512
|
}
|
|
4292
4513
|
)
|
|
4293
4514
|
] }),
|
|
4294
|
-
|
|
4515
|
+
T.type === "URL" && /* @__PURE__ */ r("div", { className: "rsp-space-y-3", children: [
|
|
4295
4516
|
/* @__PURE__ */ r("div", { children: [
|
|
4296
4517
|
/* @__PURE__ */ e("label", { className: "rsp-block rsp-text-xs rsp-font-medium rsp-text-gray-600 rsp-mb-2", children: "URL Type" }),
|
|
4297
4518
|
/* @__PURE__ */ r("div", { className: "rsp-flex rsp-gap-4", children: [
|
|
@@ -4300,8 +4521,8 @@ function ma({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
4300
4521
|
"input",
|
|
4301
4522
|
{
|
|
4302
4523
|
type: "radio",
|
|
4303
|
-
checked:
|
|
4304
|
-
onChange: () =>
|
|
4524
|
+
checked: T.urlType !== "dynamic",
|
|
4525
|
+
onChange: () => V(m.id, T.id, "urlType", "static"),
|
|
4305
4526
|
className: "rsp-mr-2 rsp-text-blue-600"
|
|
4306
4527
|
}
|
|
4307
4528
|
),
|
|
@@ -4312,8 +4533,8 @@ function ma({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
4312
4533
|
"input",
|
|
4313
4534
|
{
|
|
4314
4535
|
type: "radio",
|
|
4315
|
-
checked:
|
|
4316
|
-
onChange: () =>
|
|
4536
|
+
checked: T.urlType === "dynamic",
|
|
4537
|
+
onChange: () => V(m.id, T.id, "urlType", "dynamic"),
|
|
4317
4538
|
className: "rsp-mr-2 rsp-text-blue-600"
|
|
4318
4539
|
}
|
|
4319
4540
|
),
|
|
@@ -4327,14 +4548,14 @@ function ma({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
4327
4548
|
"input",
|
|
4328
4549
|
{
|
|
4329
4550
|
type: "text",
|
|
4330
|
-
value:
|
|
4331
|
-
onChange: (
|
|
4332
|
-
placeholder:
|
|
4551
|
+
value: T.value || "",
|
|
4552
|
+
onChange: (D) => V(m.id, T.id, "value", D.target.value),
|
|
4553
|
+
placeholder: T.urlType === "dynamic" ? "https://example.com/order/{{1}}" : "https://example.com",
|
|
4333
4554
|
className: "rsp-w-full rsp-px-3 rsp-py-2 rsp-border rsp-border-gray-300 rsp-rounded-md rsp-text-sm focus:rsp-outline-none focus:rsp-border-blue-500 rsp-bg-white"
|
|
4334
4555
|
}
|
|
4335
4556
|
)
|
|
4336
4557
|
] }),
|
|
4337
|
-
|
|
4558
|
+
T.urlType === "dynamic" && /* @__PURE__ */ r("div", { className: "rsp-space-y-2", children: [
|
|
4338
4559
|
/* @__PURE__ */ e("div", { className: "rsp-p-2 rsp-bg-blue-50 rsp-rounded rsp-border rsp-border-blue-200", children: /* @__PURE__ */ r("p", { className: "rsp-text-xs rsp-text-blue-700", children: [
|
|
4339
4560
|
/* @__PURE__ */ e("strong", { children: "Tip:" }),
|
|
4340
4561
|
" Use ",
|
|
@@ -4353,71 +4574,54 @@ function ma({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
4353
4574
|
{
|
|
4354
4575
|
type: "button",
|
|
4355
4576
|
onClick: () => {
|
|
4356
|
-
if (((
|
|
4357
|
-
const
|
|
4358
|
-
const
|
|
4359
|
-
return
|
|
4360
|
-
}),
|
|
4361
|
-
|
|
4577
|
+
if (((T.value || "").match(/\{\{(\d+)\}\}/g) || []).length >= 3) return;
|
|
4578
|
+
const G = ((T.value || "").match(/\{\{(\d+)\}\}/g) || []).map((F) => {
|
|
4579
|
+
const Q = F.match(/{{(\d+)}}/);
|
|
4580
|
+
return Q ? parseInt(Q[1], 10) : 0;
|
|
4581
|
+
}), ae = (G.length > 0 ? Math.max(...G) : 0) + 1, K = (T.value || "") + `{{${ae}}}`;
|
|
4582
|
+
V(m.id, T.id, "value", K);
|
|
4362
4583
|
},
|
|
4363
|
-
disabled: ((
|
|
4584
|
+
disabled: ((T.value || "").match(/\{\{(\d+)\}\}/g) || []).length >= 3,
|
|
4364
4585
|
className: "rsp-px-3 rsp-py-1.5 rsp-text-xs rsp-bg-blue-500 hover:rsp-bg-blue-600 rsp-text-white rsp-rounded disabled:rsp-bg-gray-300 disabled:rsp-cursor-not-allowed rsp-transition-colors",
|
|
4365
4586
|
children: "+ Add Variable"
|
|
4366
4587
|
}
|
|
4367
4588
|
),
|
|
4368
|
-
((
|
|
4589
|
+
((T.value || "").match(/\{\{(\d+)\}\}/g) || []).length >= 3 && /* @__PURE__ */ e("p", { className: "rsp-text-xs rsp-text-gray-500 rsp-mt-1", children: "Maximum 3 variables allowed" })
|
|
4369
4590
|
] }),
|
|
4370
|
-
/* @__PURE__ */ e("div", { children: /* @__PURE__ */ e(
|
|
4371
|
-
"button",
|
|
4372
|
-
{
|
|
4373
|
-
type: "button",
|
|
4374
|
-
onClick: () => {
|
|
4375
|
-
const z = S.value || "", Z = /\{\{\d+\}\}/g;
|
|
4376
|
-
let _ = -1, Q = "", W;
|
|
4377
|
-
for (; (W = Z.exec(z)) !== null; )
|
|
4378
|
-
_ = W.index, Q = W[0];
|
|
4379
|
-
if (_ === -1) return;
|
|
4380
|
-
const F = _, P = F + Q.length, G = z.slice(0, F) + z.slice(P);
|
|
4381
|
-
h(s.id, S.id, "value", G);
|
|
4382
|
-
},
|
|
4383
|
-
className: "rsp-mt-2 rsp-px-3 rsp-py-1.5 rsp-text-xs rsp-bg-red-500 hover:rsp-bg-red-600 rsp-text-white rsp-rounded rsp-transition-colors",
|
|
4384
|
-
children: "Remove Last"
|
|
4385
|
-
}
|
|
4386
|
-
) }),
|
|
4387
4591
|
(() => {
|
|
4388
|
-
const
|
|
4389
|
-
return
|
|
4592
|
+
const D = (T.value || "").match(/\{\{(\d+)\}\}/g) || [], ie = [...new Set(D.map((G) => G.replace(/[{}]/g, "")))];
|
|
4593
|
+
return ie.length === 0 ? null : /* @__PURE__ */ r("div", { className: "rsp-p-3 rsp-bg-gray-50 rsp-rounded-lg rsp-border rsp-border-gray-200", children: [
|
|
4390
4594
|
/* @__PURE__ */ e("h4", { className: "rsp-text-xs rsp-font-semibold rsp-text-gray-700 rsp-mb-2", children: "Sample Values for URL Variables" }),
|
|
4391
|
-
/* @__PURE__ */ e("div", { className: "rsp-space-y-2", children:
|
|
4392
|
-
var
|
|
4595
|
+
/* @__PURE__ */ e("div", { className: "rsp-space-y-2", children: ie.map((G) => {
|
|
4596
|
+
var se, ae;
|
|
4393
4597
|
return /* @__PURE__ */ r("div", { className: "rsp-space-y-1", children: [
|
|
4394
4598
|
/* @__PURE__ */ r("label", { className: "rsp-block rsp-text-xs rsp-text-gray-600 rsp-mb-1", children: [
|
|
4395
4599
|
"Variable ",
|
|
4396
4600
|
"{{",
|
|
4397
|
-
|
|
4601
|
+
G,
|
|
4398
4602
|
"}}"
|
|
4399
4603
|
] }),
|
|
4400
4604
|
/* @__PURE__ */ e(
|
|
4401
4605
|
"input",
|
|
4402
4606
|
{
|
|
4403
4607
|
type: "text",
|
|
4404
|
-
value: ((
|
|
4405
|
-
onChange: (
|
|
4406
|
-
const
|
|
4407
|
-
|
|
4408
|
-
...
|
|
4608
|
+
value: ((ae = (se = m.sampleContent) == null ? void 0 : se.buttonVariables) == null ? void 0 : ae[G]) || "",
|
|
4609
|
+
onChange: (K) => {
|
|
4610
|
+
const F = K.target.value;
|
|
4611
|
+
s((Q) => ({
|
|
4612
|
+
...Q,
|
|
4409
4613
|
carousel: {
|
|
4410
|
-
...
|
|
4411
|
-
cards:
|
|
4412
|
-
var
|
|
4413
|
-
return
|
|
4414
|
-
...
|
|
4614
|
+
...Q.carousel,
|
|
4615
|
+
cards: Q.carousel.cards.map((H) => {
|
|
4616
|
+
var W, Z, ne;
|
|
4617
|
+
return H.id !== m.id ? H : {
|
|
4618
|
+
...H,
|
|
4415
4619
|
sampleContent: {
|
|
4416
|
-
headerVariables: ((
|
|
4417
|
-
bodyVariables: ((
|
|
4620
|
+
headerVariables: ((W = H.sampleContent) == null ? void 0 : W.headerVariables) || {},
|
|
4621
|
+
bodyVariables: ((Z = H.sampleContent) == null ? void 0 : Z.bodyVariables) || {},
|
|
4418
4622
|
buttonVariables: {
|
|
4419
|
-
...((
|
|
4420
|
-
[
|
|
4623
|
+
...((ne = H.sampleContent) == null ? void 0 : ne.buttonVariables) || {},
|
|
4624
|
+
[G]: F
|
|
4421
4625
|
}
|
|
4422
4626
|
}
|
|
4423
4627
|
};
|
|
@@ -4426,7 +4630,7 @@ function ma({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
4426
4630
|
}));
|
|
4427
4631
|
},
|
|
4428
4632
|
className: "rsp-w-full rsp-px-3 rsp-py-2 rsp-border rsp-border-gray-300 rsp-rounded-md rsp-text-sm focus:rsp-outline-none focus:rsp-ring-1 focus:rsp-ring-blue-500 focus:rsp-border-blue-500 rsp-bg-white",
|
|
4429
|
-
placeholder: `Sample value (e.g., ${
|
|
4633
|
+
placeholder: `Sample value (e.g., ${G === "1" ? "order123" : "user456"})`
|
|
4430
4634
|
}
|
|
4431
4635
|
),
|
|
4432
4636
|
/* @__PURE__ */ e(
|
|
@@ -4434,57 +4638,57 @@ function ma({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
4434
4638
|
{
|
|
4435
4639
|
type: "button",
|
|
4436
4640
|
onClick: () => {
|
|
4437
|
-
const
|
|
4438
|
-
|
|
4439
|
-
...
|
|
4641
|
+
const K = T.value || "", F = new RegExp(`\\{\\{${G}\\}\\}`, "g"), Q = K.replace(F, "");
|
|
4642
|
+
V(m.id, T.id, "value", Q), s((H) => ({
|
|
4643
|
+
...H,
|
|
4440
4644
|
carousel: {
|
|
4441
|
-
...
|
|
4442
|
-
cards:
|
|
4443
|
-
var
|
|
4444
|
-
if (
|
|
4445
|
-
const
|
|
4645
|
+
...H.carousel,
|
|
4646
|
+
cards: H.carousel.cards.map((W) => {
|
|
4647
|
+
var ne, ye, we;
|
|
4648
|
+
if (W.id !== m.id) return W;
|
|
4649
|
+
const Z = Object.fromEntries(Object.entries(((ne = W.sampleContent) == null ? void 0 : ne.buttonVariables) || {}).filter(([Be]) => Be !== G));
|
|
4446
4650
|
return {
|
|
4447
|
-
...
|
|
4651
|
+
...W,
|
|
4448
4652
|
sampleContent: {
|
|
4449
|
-
headerVariables: ((
|
|
4450
|
-
bodyVariables: ((
|
|
4451
|
-
buttonVariables:
|
|
4653
|
+
headerVariables: ((ye = W.sampleContent) == null ? void 0 : ye.headerVariables) || {},
|
|
4654
|
+
bodyVariables: ((we = W.sampleContent) == null ? void 0 : we.bodyVariables) || {},
|
|
4655
|
+
buttonVariables: Z
|
|
4452
4656
|
}
|
|
4453
4657
|
};
|
|
4454
4658
|
})
|
|
4455
4659
|
}
|
|
4456
4660
|
}));
|
|
4457
4661
|
},
|
|
4458
|
-
className: "rsp-px-2 rsp-py-1 rsp-text-
|
|
4662
|
+
className: "rsp-px-2 rsp-py-1 rsp-text- rsp-text-red-600 hover:rsp-bg-red-50 rsp-rounded",
|
|
4459
4663
|
title: "Remove this variable",
|
|
4460
4664
|
children: "×"
|
|
4461
4665
|
}
|
|
4462
4666
|
)
|
|
4463
|
-
] }, `button-${
|
|
4667
|
+
] }, `button-${T.id}-sample-${G}`);
|
|
4464
4668
|
}) })
|
|
4465
4669
|
] });
|
|
4466
4670
|
})()
|
|
4467
4671
|
] })
|
|
4468
4672
|
] }),
|
|
4469
|
-
|
|
4673
|
+
T.type === "PHONE_NUMBER" && /* @__PURE__ */ r("div", { children: [
|
|
4470
4674
|
/* @__PURE__ */ e("label", { className: "rsp-block rsp-text-xs rsp-font-medium rsp-text-gray-600 rsp-mb-1", children: "Phone Number" }),
|
|
4471
4675
|
/* @__PURE__ */ e(
|
|
4472
4676
|
"input",
|
|
4473
4677
|
{
|
|
4474
4678
|
type: "text",
|
|
4475
|
-
value:
|
|
4476
|
-
onChange: (
|
|
4679
|
+
value: T.value || "",
|
|
4680
|
+
onChange: (D) => V(m.id, T.id, "value", D.target.value),
|
|
4477
4681
|
placeholder: "+1234567890",
|
|
4478
4682
|
className: "rsp-w-full rsp-px-3 rsp-py-2 rsp-border rsp-border-gray-300 rsp-rounded-md rsp-text-sm focus:rsp-outline-none focus:rsp-border-blue-500 rsp-bg-white"
|
|
4479
4683
|
}
|
|
4480
4684
|
)
|
|
4481
4685
|
] })
|
|
4482
4686
|
] })
|
|
4483
|
-
] },
|
|
4687
|
+
] }, T.id))
|
|
4484
4688
|
] })
|
|
4485
4689
|
] })
|
|
4486
4690
|
] }) })
|
|
4487
|
-
] },
|
|
4691
|
+
] }, m.id);
|
|
4488
4692
|
}) }),
|
|
4489
4693
|
/* @__PURE__ */ e("div", { className: "rsp-bg-blue-50 rsp-border-l-4 rsp-border-blue-500 rsp-p-4 rsp-rounded-r-md", children: /* @__PURE__ */ r("div", { className: "rsp-flex", children: [
|
|
4490
4694
|
/* @__PURE__ */ e("div", { className: "rsp-flex-shrink-0", children: /* @__PURE__ */ e("svg", { className: "rsp-h-5 rsp-w-5 rsp-text-blue-400", viewBox: "0 0 20 20", fill: "currentColor", children: /* @__PURE__ */ e("path", { fillRule: "evenodd", d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z", clipRule: "evenodd" }) }) }),
|
|
@@ -4501,52 +4705,52 @@ function ma({ template: a, setTemplate: n, onFileUpload: i }) {
|
|
|
4501
4705
|
] })
|
|
4502
4706
|
] }) }),
|
|
4503
4707
|
/* @__PURE__ */ e(
|
|
4504
|
-
|
|
4708
|
+
ge,
|
|
4505
4709
|
{
|
|
4506
|
-
isOpen:
|
|
4507
|
-
onClose: () =>
|
|
4508
|
-
onSelect:
|
|
4710
|
+
isOpen: w,
|
|
4711
|
+
onClose: () => o(!1),
|
|
4712
|
+
onSelect: p
|
|
4509
4713
|
}
|
|
4510
4714
|
)
|
|
4511
4715
|
] });
|
|
4512
4716
|
}
|
|
4513
|
-
const
|
|
4717
|
+
const Me = async (a) => {
|
|
4514
4718
|
try {
|
|
4515
4719
|
console.log(`Starting file upload: ${a.name}`);
|
|
4516
|
-
const
|
|
4517
|
-
return console.log(`File uploaded successfully: ${
|
|
4518
|
-
} catch (
|
|
4519
|
-
throw console.error("Upload failed in parent:",
|
|
4720
|
+
const s = await ba(a);
|
|
4721
|
+
return console.log(`File uploaded successfully: ${s}`), s;
|
|
4722
|
+
} catch (s) {
|
|
4723
|
+
throw console.error("Upload failed in parent:", s), s;
|
|
4520
4724
|
}
|
|
4521
|
-
},
|
|
4725
|
+
}, va = (a) => {
|
|
4522
4726
|
const i = (a.body || "").match(/\{\{(\d+)\}\}/g);
|
|
4523
4727
|
if (!i) return 0;
|
|
4524
|
-
const
|
|
4525
|
-
const
|
|
4526
|
-
return
|
|
4728
|
+
const n = i.map((t) => {
|
|
4729
|
+
const x = t.match(/{{(\d+)}}/);
|
|
4730
|
+
return x ? parseInt(x[1], 10) : 0;
|
|
4527
4731
|
});
|
|
4528
|
-
return
|
|
4732
|
+
return n.length > 0 ? Math.max(...n) : 0;
|
|
4529
4733
|
};
|
|
4530
|
-
function
|
|
4531
|
-
const [i,
|
|
4532
|
-
|
|
4533
|
-
|
|
4734
|
+
function ka({ template: a, setTemplate: s }) {
|
|
4735
|
+
const [i, n] = J.useState(!1), t = J.useRef(null), x = () => {
|
|
4736
|
+
n(!0), setTimeout(() => {
|
|
4737
|
+
t.current && t.current.focus();
|
|
4534
4738
|
}, 0);
|
|
4535
|
-
},
|
|
4536
|
-
const
|
|
4537
|
-
|
|
4538
|
-
if (
|
|
4539
|
-
const
|
|
4540
|
-
|
|
4739
|
+
}, l = (k) => {
|
|
4740
|
+
const w = t.current, o = a.body, N = w && typeof w.selectionStart == "number" ? w.selectionStart : o.length, U = o.substring(0, N), f = o.substring(N), b = U + k + f;
|
|
4741
|
+
s({ ...a, body: b }), setTimeout(() => {
|
|
4742
|
+
if (t.current) {
|
|
4743
|
+
const M = N + k.length;
|
|
4744
|
+
t.current.setSelectionRange(M, M), t.current.focus();
|
|
4541
4745
|
}
|
|
4542
|
-
}, 0),
|
|
4746
|
+
}, 0), n(!1);
|
|
4543
4747
|
};
|
|
4544
4748
|
return /* @__PURE__ */ r("div", { className: "rsp-space-y-6", children: [
|
|
4545
4749
|
a.type !== "CAROUSEL" && /* @__PURE__ */ r("div", { className: "rsp-space-y-6", children: [
|
|
4546
4750
|
/* @__PURE__ */ e("h2", { className: "rsp-text-lg rsp-font-semibold rsp-text-gray-900", children: "Message Content" }),
|
|
4547
4751
|
/* @__PURE__ */ r("div", { className: "rsp-space-y-6", children: [
|
|
4548
|
-
/* @__PURE__ */ e(
|
|
4549
|
-
/* @__PURE__ */ e(
|
|
4752
|
+
/* @__PURE__ */ e(oa, { template: a, setTemplate: s, onFileUpload: Me }),
|
|
4753
|
+
/* @__PURE__ */ e(ha, { template: a, setTemplate: s })
|
|
4550
4754
|
] })
|
|
4551
4755
|
] }),
|
|
4552
4756
|
a.type === "CAROUSEL" && /* @__PURE__ */ r("div", { className: "rsp-space-y-6", children: [
|
|
@@ -4559,23 +4763,24 @@ function da({ template: a, setTemplate: n }) {
|
|
|
4559
4763
|
/* @__PURE__ */ e("div", { className: "rsp-relative", children: /* @__PURE__ */ e(
|
|
4560
4764
|
"textarea",
|
|
4561
4765
|
{
|
|
4562
|
-
ref:
|
|
4766
|
+
ref: t,
|
|
4563
4767
|
value: a.body,
|
|
4564
|
-
onChange: (
|
|
4768
|
+
onChange: (k) => s({ ...a, body: k.target.value }),
|
|
4565
4769
|
maxLength: 1024,
|
|
4566
4770
|
rows: 4,
|
|
4567
4771
|
className: "rsp-w-full rsp-px-3 rsp-py-2 rsp-border rsp-border-gray-300 rsp-rounded-md rsp-text-sm focus:rsp-outline-none focus:rsp-border-blue-500 rsp-bg-white rsp-resize-none",
|
|
4568
4772
|
placeholder: "Enter Template Message"
|
|
4569
4773
|
}
|
|
4570
4774
|
) }),
|
|
4775
|
+
!a.body && /* @__PURE__ */ e("p", { className: "rsp-text-xs rsp-text-red-600 rsp-mt-1", children: "Body is required." }),
|
|
4571
4776
|
/* @__PURE__ */ r("div", { className: "rsp-flex rsp-items-center rsp-justify-between rsp-mt-1", children: [
|
|
4572
4777
|
/* @__PURE__ */ r("div", { className: "rsp-flex rsp-items-center rsp-gap-2", children: [
|
|
4573
4778
|
/* @__PURE__ */ e(
|
|
4574
4779
|
"button",
|
|
4575
4780
|
{
|
|
4576
4781
|
onClick: () => {
|
|
4577
|
-
const
|
|
4578
|
-
|
|
4782
|
+
const o = `{{${va(a) + 1}}}`;
|
|
4783
|
+
s({ ...a, body: a.body + o });
|
|
4579
4784
|
},
|
|
4580
4785
|
className: "rsp-p-1 rsp-text-gray-500 hover:rsp-text-gray-700 hover:rsp-bg-gray-100 rsp-rounded",
|
|
4581
4786
|
title: "Add Variable",
|
|
@@ -4585,10 +4790,10 @@ function da({ template: a, setTemplate: n }) {
|
|
|
4585
4790
|
/* @__PURE__ */ e(
|
|
4586
4791
|
"button",
|
|
4587
4792
|
{
|
|
4588
|
-
onClick:
|
|
4793
|
+
onClick: x,
|
|
4589
4794
|
className: "rsp-p-1 rsp-text-gray-500 hover:rsp-text-gray-700 hover:rsp-bg-gray-100 rsp-rounded",
|
|
4590
4795
|
title: "Add emoji",
|
|
4591
|
-
children: /* @__PURE__ */ e(
|
|
4796
|
+
children: /* @__PURE__ */ e(he, { className: "rsp-w-4 rsp-h-4" })
|
|
4592
4797
|
}
|
|
4593
4798
|
)
|
|
4594
4799
|
] }),
|
|
@@ -4598,15 +4803,15 @@ function da({ template: a, setTemplate: n }) {
|
|
|
4598
4803
|
] })
|
|
4599
4804
|
] }),
|
|
4600
4805
|
(() => {
|
|
4601
|
-
const
|
|
4602
|
-
return
|
|
4806
|
+
const k = a.body.match(/\{\{(\d+)\}\}/g) || [], w = [...new Set(k.map((o) => o.replace(/[{}]/g, "")))];
|
|
4807
|
+
return w.length === 0 ? null : /* @__PURE__ */ r("div", { className: "rsp-mt-3", children: [
|
|
4603
4808
|
/* @__PURE__ */ e("p", { className: "rsp-text-xs rsp-font-medium rsp-text-gray-600 rsp-mb-2", children: "Sample Values" }),
|
|
4604
|
-
/* @__PURE__ */ e("div", { className: "rsp-grid rsp-grid-cols-3 rsp-gap-2", children:
|
|
4605
|
-
var
|
|
4809
|
+
/* @__PURE__ */ e("div", { className: "rsp-grid rsp-grid-cols-3 rsp-gap-2", children: w.map((o) => {
|
|
4810
|
+
var N, U;
|
|
4606
4811
|
return /* @__PURE__ */ r("div", { className: "rsp-flex rsp-items-center rsp-gap-2", children: [
|
|
4607
4812
|
/* @__PURE__ */ r("label", { className: "rsp-text-xs rsp-text-gray-500 rsp-whitespace-nowrap", children: [
|
|
4608
4813
|
"{{",
|
|
4609
|
-
|
|
4814
|
+
o,
|
|
4610
4815
|
"}}",
|
|
4611
4816
|
":"
|
|
4612
4817
|
] }),
|
|
@@ -4614,19 +4819,19 @@ function da({ template: a, setTemplate: n }) {
|
|
|
4614
4819
|
"input",
|
|
4615
4820
|
{
|
|
4616
4821
|
type: "text",
|
|
4617
|
-
value: ((
|
|
4618
|
-
onChange: (
|
|
4619
|
-
var
|
|
4620
|
-
const
|
|
4822
|
+
value: ((U = (N = a.sampleContent) == null ? void 0 : N.bodyVariables) == null ? void 0 : U[o]) || "",
|
|
4823
|
+
onChange: (f) => {
|
|
4824
|
+
var M, g, v;
|
|
4825
|
+
const b = {
|
|
4621
4826
|
...a.sampleContent,
|
|
4622
|
-
headerVariables: ((
|
|
4827
|
+
headerVariables: ((M = a.sampleContent) == null ? void 0 : M.headerVariables) || {},
|
|
4623
4828
|
bodyVariables: {
|
|
4624
|
-
...(
|
|
4625
|
-
[
|
|
4829
|
+
...(g = a.sampleContent) == null ? void 0 : g.bodyVariables,
|
|
4830
|
+
[o]: f.target.value
|
|
4626
4831
|
},
|
|
4627
|
-
buttonVariables: ((
|
|
4832
|
+
buttonVariables: ((v = a.sampleContent) == null ? void 0 : v.buttonVariables) || {}
|
|
4628
4833
|
};
|
|
4629
|
-
|
|
4834
|
+
s({ ...a, sampleContent: b });
|
|
4630
4835
|
},
|
|
4631
4836
|
className: "rsp-flex-1 rsp-px-2 rsp-py-1 rsp-border rsp-border-gray-300 rsp-rounded rsp-text-xs focus:rsp-outline-none focus:rsp-border-blue-500",
|
|
4632
4837
|
placeholder: "Sample"
|
|
@@ -4637,16 +4842,16 @@ function da({ template: a, setTemplate: n }) {
|
|
|
4637
4842
|
{
|
|
4638
4843
|
type: "button",
|
|
4639
4844
|
onClick: () => {
|
|
4640
|
-
var
|
|
4641
|
-
const
|
|
4642
|
-
|
|
4845
|
+
var g, v, c;
|
|
4846
|
+
const f = new RegExp(`\\{\\{${o}\\}\\}`, "g"), b = (a.body || "").replace(f, ""), M = Object.fromEntries(Object.entries(((g = a.sampleContent) == null ? void 0 : g.bodyVariables) || {}).filter(([p]) => p !== o));
|
|
4847
|
+
s({
|
|
4643
4848
|
...a,
|
|
4644
|
-
body:
|
|
4849
|
+
body: b,
|
|
4645
4850
|
sampleContent: {
|
|
4646
4851
|
...a.sampleContent,
|
|
4647
|
-
bodyVariables:
|
|
4648
|
-
headerVariables: ((
|
|
4649
|
-
buttonVariables: ((
|
|
4852
|
+
bodyVariables: M,
|
|
4853
|
+
headerVariables: ((v = a.sampleContent) == null ? void 0 : v.headerVariables) || {},
|
|
4854
|
+
buttonVariables: ((c = a.sampleContent) == null ? void 0 : c.buttonVariables) || {}
|
|
4650
4855
|
}
|
|
4651
4856
|
});
|
|
4652
4857
|
},
|
|
@@ -4655,74 +4860,74 @@ function da({ template: a, setTemplate: n }) {
|
|
|
4655
4860
|
children: "×"
|
|
4656
4861
|
}
|
|
4657
4862
|
)
|
|
4658
|
-
] }, `global-body-sample-${
|
|
4863
|
+
] }, `global-body-sample-${o}`);
|
|
4659
4864
|
}) })
|
|
4660
4865
|
] });
|
|
4661
4866
|
})()
|
|
4662
4867
|
] }) })
|
|
4663
4868
|
] }),
|
|
4664
4869
|
a.type === "CAROUSEL" && /* @__PURE__ */ e("div", { className: "rsp-space-y-6", children: /* @__PURE__ */ e(
|
|
4665
|
-
|
|
4870
|
+
wa,
|
|
4666
4871
|
{
|
|
4667
4872
|
template: a,
|
|
4668
|
-
setTemplate:
|
|
4669
|
-
onFileUpload:
|
|
4873
|
+
setTemplate: s,
|
|
4874
|
+
onFileUpload: Me
|
|
4670
4875
|
}
|
|
4671
4876
|
) }),
|
|
4672
4877
|
a.type !== "CAROUSEL" && /* @__PURE__ */ e("div", { className: "rsp-space-y-6", children: /* @__PURE__ */ e(
|
|
4673
|
-
|
|
4878
|
+
ua,
|
|
4674
4879
|
{
|
|
4675
4880
|
template: a,
|
|
4676
|
-
setTemplate:
|
|
4881
|
+
setTemplate: s
|
|
4677
4882
|
}
|
|
4678
4883
|
) }),
|
|
4679
4884
|
/* @__PURE__ */ e(
|
|
4680
|
-
|
|
4885
|
+
ge,
|
|
4681
4886
|
{
|
|
4682
4887
|
isOpen: i,
|
|
4683
|
-
onClose: () =>
|
|
4684
|
-
onSelect:
|
|
4888
|
+
onClose: () => n(!1),
|
|
4889
|
+
onSelect: l
|
|
4685
4890
|
}
|
|
4686
4891
|
)
|
|
4687
4892
|
] });
|
|
4688
4893
|
}
|
|
4689
|
-
function
|
|
4894
|
+
function Na({ type: a }) {
|
|
4690
4895
|
switch (a) {
|
|
4691
4896
|
case "QUICK_REPLY":
|
|
4692
|
-
return /* @__PURE__ */ e(
|
|
4897
|
+
return /* @__PURE__ */ e(Je, { className: "w-4 h-4" });
|
|
4693
4898
|
case "URL":
|
|
4694
|
-
return /* @__PURE__ */ e(
|
|
4899
|
+
return /* @__PURE__ */ e(We, { className: "w-4 h-4" });
|
|
4695
4900
|
case "CALL":
|
|
4696
|
-
return /* @__PURE__ */ e(
|
|
4901
|
+
return /* @__PURE__ */ e(Ue, { className: "w-4 h-4" });
|
|
4697
4902
|
case "FLOW":
|
|
4698
|
-
return /* @__PURE__ */ e(
|
|
4903
|
+
return /* @__PURE__ */ e(Qe, { className: "w-4 h-4" });
|
|
4699
4904
|
default:
|
|
4700
4905
|
return null;
|
|
4701
4906
|
}
|
|
4702
4907
|
}
|
|
4703
|
-
function
|
|
4704
|
-
const
|
|
4705
|
-
|
|
4908
|
+
function Ca({ buttons: a, flowButtonText: s, onShowAllOptions: i }) {
|
|
4909
|
+
const n = [...a];
|
|
4910
|
+
s && n.push({
|
|
4706
4911
|
id: "flow-button",
|
|
4707
4912
|
type: "QUICK_REPLY",
|
|
4708
|
-
text:
|
|
4913
|
+
text: s
|
|
4709
4914
|
});
|
|
4710
|
-
const
|
|
4915
|
+
const t = n.slice(0, 2);
|
|
4711
4916
|
return /* @__PURE__ */ r("div", { className: "rsp-divide-y rsp-divide-gray-200", children: [
|
|
4712
|
-
|
|
4917
|
+
t.map((x) => /* @__PURE__ */ r(
|
|
4713
4918
|
"button",
|
|
4714
4919
|
{
|
|
4715
4920
|
className: "rsp-w-full rsp-py-4 rsp-text-[#128C7E] rsp-text-[15px] rsp-font-medium rsp-bg-white hover:rsp-bg-gray-50 rsp-flex rsp-items-center rsp-gap-3 rsp-px-4 rsp-transition-colors",
|
|
4716
4921
|
style: { fontFamily: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif' },
|
|
4717
4922
|
children: [
|
|
4718
|
-
/* @__PURE__ */ e("div", { className: "rsp-text-[#128C7E]", children: /* @__PURE__ */ e(
|
|
4719
|
-
/* @__PURE__ */ e("span", { className: "rsp-flex-1 rsp-text-left rsp-break-words rsp-break-all rsp-whitespace-pre-wrap", children:
|
|
4720
|
-
|
|
4923
|
+
/* @__PURE__ */ e("div", { className: "rsp-text-[#128C7E]", children: /* @__PURE__ */ e(Na, { type: x.type }) }),
|
|
4924
|
+
/* @__PURE__ */ e("span", { className: "rsp-flex-1 rsp-text-left rsp-break-words rsp-break-all rsp-whitespace-pre-wrap", children: x.text }),
|
|
4925
|
+
x.id === "flow-button" && /* @__PURE__ */ e(qe, { className: "rsp-w-5 rsp-h-5 rsp-text-[#128C7E] rsp-ml-auto" })
|
|
4721
4926
|
]
|
|
4722
4927
|
},
|
|
4723
|
-
|
|
4928
|
+
x.id
|
|
4724
4929
|
)),
|
|
4725
|
-
|
|
4930
|
+
n.length > 2 && /* @__PURE__ */ r(
|
|
4726
4931
|
"button",
|
|
4727
4932
|
{
|
|
4728
4933
|
onClick: i,
|
|
@@ -4736,25 +4941,25 @@ function pa({ buttons: a, flowButtonText: n, onShowAllOptions: i }) {
|
|
|
4736
4941
|
)
|
|
4737
4942
|
] });
|
|
4738
4943
|
}
|
|
4739
|
-
function
|
|
4740
|
-
var
|
|
4741
|
-
const [
|
|
4742
|
-
|
|
4743
|
-
a.type === "CAROUSEL" &&
|
|
4744
|
-
}, [
|
|
4745
|
-
const
|
|
4746
|
-
var
|
|
4747
|
-
return ((
|
|
4748
|
-
}) : "",
|
|
4749
|
-
var
|
|
4750
|
-
return ((
|
|
4751
|
-
}) : "",
|
|
4752
|
-
var
|
|
4753
|
-
const
|
|
4754
|
-
if (!
|
|
4755
|
-
const
|
|
4756
|
-
return
|
|
4757
|
-
},
|
|
4944
|
+
function Ea({ template: a }) {
|
|
4945
|
+
var U, f, b, M;
|
|
4946
|
+
const [s, i] = P(!1), [n, t] = P(0), x = (U = a.carousel) != null && U.cards ? a.carousel.cards.length : 0;
|
|
4947
|
+
le(() => {
|
|
4948
|
+
a.type === "CAROUSEL" && x > 0 ? n >= x && t(0) : t(0);
|
|
4949
|
+
}, [x, a.type]);
|
|
4950
|
+
const l = (g) => g ? g.replace(/\{\{(\d+)\}\}/g, (v, c) => {
|
|
4951
|
+
var p, y;
|
|
4952
|
+
return ((y = (p = a.sampleContent) == null ? void 0 : p.headerVariables) == null ? void 0 : y[c]) || `[Variable ${c}]`;
|
|
4953
|
+
}) : "", k = (g) => g ? g.replace(/\{\{(\d+)\}\}/g, (v, c) => {
|
|
4954
|
+
var p, y;
|
|
4955
|
+
return ((y = (p = a.sampleContent) == null ? void 0 : p.bodyVariables) == null ? void 0 : y[c]) || `[Variable ${c}]`;
|
|
4956
|
+
}) : "", w = (g) => {
|
|
4957
|
+
var p;
|
|
4958
|
+
const v = (g == null ? void 0 : g.body) ?? "";
|
|
4959
|
+
if (!v) return "";
|
|
4960
|
+
const c = ((p = g == null ? void 0 : g.sampleContent) == null ? void 0 : p.bodyVariables) ?? {};
|
|
4961
|
+
return v.replace(/\{\{(\d+)\}\}/g, (y, u) => c[u] || `[Variable ${u}]`);
|
|
4962
|
+
}, o = a.headerType !== "NONE" || a.body || a.footer || a.buttons.length > 0 || a.type === "CAROUSEL" && ((f = a.carousel) == null ? void 0 : f.cards.length), N = a.headerText || a.body || a.footer;
|
|
4758
4963
|
return /* @__PURE__ */ r("div", { className: "rsp-bg-white rsp-rounded-lg rsp-shadow-sm rsp-border rsp-border-gray-200", children: [
|
|
4759
4964
|
/* @__PURE__ */ r("div", { className: "rsp-p-4 rsp-border-b rsp-border-gray-200", children: [
|
|
4760
4965
|
/* @__PURE__ */ e("h3", { className: "rsp-text-lg rsp-font-semibold rsp-text-gray-900", children: "Preview" }),
|
|
@@ -4801,7 +5006,7 @@ function oa({ template: a }) {
|
|
|
4801
5006
|
] }),
|
|
4802
5007
|
/* @__PURE__ */ r("div", { className: "rsp-absolute rsp-top-[105px] rsp-left-0 rsp-right-0 rsp-bottom-[60px] rsp-bg-gradient-to-b rsp-from-[#E8E2DB] rsp-via-[#E5DDD5] rsp-to-[#DDD5CC] rsp-overflow-y-auto", children: [
|
|
4803
5008
|
/* @__PURE__ */ e("div", { className: "rsp-absolute rsp-inset-0 rsp-opacity-[0.03]", style: { backgroundImage: `url("data:image/svg+xml,%3Csvg width='80' height='80' viewBox='0 0 80 80' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23000000' fill-opacity='0.08'%3E%3Cpath d='M40 40c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8zm0-32c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8zm32 32c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")` } }),
|
|
4804
|
-
/* @__PURE__ */ e("div", { className: "rsp-relative rsp-px-4 rsp-py-4", children:
|
|
5009
|
+
/* @__PURE__ */ e("div", { className: "rsp-relative rsp-px-4 rsp-py-4", children: o ? /* @__PURE__ */ r("div", { className: "rsp-flex rsp-flex-col rsp-items-start", children: [
|
|
4805
5010
|
a.headerType === "MEDIA" && a.mediaUrl && /* @__PURE__ */ r("div", { className: "rsp-max-w-[220px] rsp-w-auto rsp-rounded-xl rsp-overflow-hidden rsp-shadow-md rsp-mb-1.5 rsp-animate-slide-up rsp-border rsp-border-gray-200", children: [
|
|
4806
5011
|
a.mediaType === "IMAGE" && /* @__PURE__ */ e(
|
|
4807
5012
|
"img",
|
|
@@ -4809,8 +5014,8 @@ function oa({ template: a }) {
|
|
|
4809
5014
|
src: a.mediaUrl,
|
|
4810
5015
|
alt: "Header media",
|
|
4811
5016
|
className: "rsp-w-full rsp-max-h-[150px] rsp-object-cover rsp-block",
|
|
4812
|
-
onError: (
|
|
4813
|
-
|
|
5017
|
+
onError: (g) => {
|
|
5018
|
+
g.currentTarget.style.display = "none";
|
|
4814
5019
|
}
|
|
4815
5020
|
}
|
|
4816
5021
|
),
|
|
@@ -4826,38 +5031,38 @@ function oa({ template: a }) {
|
|
|
4826
5031
|
] })
|
|
4827
5032
|
] }) })
|
|
4828
5033
|
] }),
|
|
4829
|
-
|
|
4830
|
-
a.headerType === "TEXT" && a.headerText && /* @__PURE__ */ e("div", { className: "rsp-px-4 rsp-pt-3 rsp-pb-2", children: /* @__PURE__ */ e("div", { className: "rsp-text-[15px] rsp-font-semibold rsp-text-[#111b21] rsp-leading-[1.3] rsp-tracking-normal rsp-break-words", style: { fontFamily: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif' }, children:
|
|
4831
|
-
a.body && /* @__PURE__ */ e("div", { className: "rsp-px-4 rsp-py-2", children: /* @__PURE__ */ e("div", { className: "rsp-text-[14px] rsp-text-[#111b21] rsp-leading-[1.4] rsp-whitespace-pre-wrap rsp-tracking-normal rsp-break-words", style: { fontFamily: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif' }, children:
|
|
5034
|
+
N && /* @__PURE__ */ e("div", { className: "rsp-flex rsp-justify-start rsp-mb-1.5", children: /* @__PURE__ */ r("div", { className: "rsp-bg-gradient-to-b rsp-from-white rsp-to-[#fafafa] rsp-rounded-[12px] rsp-max-w-[220px] rsp-shadow-[0_2px_8px_rgba(0,0,0,0.08)] rsp-relative rsp-border rsp-border-gray-100 rsp-animate-slide-up", children: [
|
|
5035
|
+
a.headerType === "TEXT" && a.headerText && /* @__PURE__ */ e("div", { className: "rsp-px-4 rsp-pt-3 rsp-pb-2", children: /* @__PURE__ */ e("div", { className: "rsp-text-[15px] rsp-font-semibold rsp-text-[#111b21] rsp-leading-[1.3] rsp-tracking-normal rsp-break-words", style: { fontFamily: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif' }, children: l(a.headerText) }) }),
|
|
5036
|
+
a.body && /* @__PURE__ */ e("div", { className: "rsp-px-4 rsp-py-2", children: /* @__PURE__ */ e("div", { className: "rsp-text-[14px] rsp-text-[#111b21] rsp-leading-[1.4] rsp-whitespace-pre-wrap rsp-tracking-normal rsp-break-words", style: { fontFamily: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif' }, children: k(a.body) }) }),
|
|
4832
5037
|
a.footer && /* @__PURE__ */ e("div", { className: "rsp-px-4 rsp-pb-2", children: /* @__PURE__ */ e("div", { className: "rsp-text-[12px] rsp-text-[#667781] rsp-pt-2 rsp-border-t rsp-border-gray-100 rsp-break-words rsp-break-all rsp-whitespace-pre-wrap", style: { fontFamily: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif' }, children: a.footer }) }),
|
|
4833
5038
|
/* @__PURE__ */ e("div", { className: "rsp-px-4 rsp-pb-2 rsp-text-right", children: /* @__PURE__ */ r("div", { className: "rsp-text-[11px] rsp-text-[#667781] rsp-flex rsp-items-center rsp-justify-end rsp-gap-1 rsp-opacity-80", style: { fontFamily: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif' }, children: [
|
|
4834
5039
|
"9:41 AM",
|
|
4835
5040
|
/* @__PURE__ */ e("svg", { className: "rsp-w-3 rsp-h-3 rsp-text-[#53bdeb]", viewBox: "0 0 16 15", fill: "currentColor", children: /* @__PURE__ */ e("path", { d: "M15.01 3.316l-.478-.372a.365.365 0 0 0-.51.063L8.666 9.879a.32.32 0 0 1-.484.033l-.358-.325a.319.319 0 0 0-.484.032l-.378.483a.418.418 0 0 0 .036.541l1.32 1.266c.143.14.361.125.484-.033l6.272-8.048a.366.366 0 0 0-.064-.512zm-4.1 0l-.478-.372a.365.365 0 0 0-.51.063L4.566 9.879a.32.32 0 0 1-.484.033L1.891 7.769a.319.319 0 0 0-.484.032l-.378.483a.418.418 0 0 0 .036.541l3.61 3.463c.143.14.361.125.484-.033l6.272-8.048a.365.365 0 0 0-.064-.512z" }) })
|
|
4836
5041
|
] }) })
|
|
4837
5042
|
] }) }),
|
|
4838
|
-
a.type === "CAROUSEL" && (((
|
|
5043
|
+
a.type === "CAROUSEL" && (((M = (b = a.carousel) == null ? void 0 : b.cards) == null ? void 0 : M.length) || 0) > 0 && /* @__PURE__ */ e("div", { className: "rsp-flex rsp-justify-start rsp-mb-1.5", children: /* @__PURE__ */ e("div", { className: "rsp-w-[220px] rsp-animate-slide-up", children: /* @__PURE__ */ e("div", { className: "rsp-bg-gradient-to-b rsp-from-white rsp-to-[#fafafa] rsp-rounded-[12px] rsp-overflow-hidden rsp-shadow-[0_2px_8px_rgba(0,0,0,0.08)] rsp-border rsp-border-gray-100 rsp-relative rsp-min-h-[280px] rsp-flex rsp-flex-col", children: /* @__PURE__ */ r("div", { className: "rsp-relative rsp-flex-1 rsp-flex rsp-flex-col", children: [
|
|
4839
5044
|
(() => {
|
|
4840
|
-
var
|
|
4841
|
-
const
|
|
5045
|
+
var v, c;
|
|
5046
|
+
const g = a.carousel && a.carousel.cards.length > 0 ? a.carousel.cards[n] || a.carousel.cards[0] : void 0;
|
|
4842
5047
|
return /* @__PURE__ */ r("div", { className: "rsp-flex rsp-flex-col rsp-h-full", children: [
|
|
4843
|
-
/* @__PURE__ */ e("div", { className: "rsp-relative rsp-w-full rsp-h-[140px] rsp-bg-gray-100 rsp-group rsp-flex-shrink-0", children:
|
|
4844
|
-
((
|
|
5048
|
+
/* @__PURE__ */ e("div", { className: "rsp-relative rsp-w-full rsp-h-[140px] rsp-bg-gray-100 rsp-group rsp-flex-shrink-0", children: g && g.mediaUrl ? /* @__PURE__ */ r(ce, { children: [
|
|
5049
|
+
((v = a.carousel) == null ? void 0 : v.type) === "IMAGE" ? /* @__PURE__ */ e(
|
|
4845
5050
|
"img",
|
|
4846
5051
|
{
|
|
4847
|
-
src:
|
|
5052
|
+
src: g.mediaUrl,
|
|
4848
5053
|
alt: "Carousel card",
|
|
4849
5054
|
className: "rsp-w-full rsp-h-full rsp-object-cover",
|
|
4850
|
-
onError: (
|
|
4851
|
-
|
|
5055
|
+
onError: (p) => {
|
|
5056
|
+
p.currentTarget.style.display = "none";
|
|
4852
5057
|
}
|
|
4853
5058
|
}
|
|
4854
5059
|
) : /* @__PURE__ */ e("div", { className: "rsp-relative rsp-w-full rsp-h-full rsp-bg-gradient-to-br rsp-from-gray-800 rsp-to-gray-900 rsp-flex rsp-items-center rsp-justify-center", children: /* @__PURE__ */ e("div", { className: "rsp-w-10 rsp-h-10 rsp-bg-black rsp-bg-opacity-70 rsp-rounded-full rsp-flex rsp-items-center rsp-justify-center rsp-shadow-lg", children: /* @__PURE__ */ e("div", { className: "rsp-w-0 rsp-h-0 rsp-border-l-[6px] rsp-border-l-white rsp-border-t-[5px] rsp-border-t-transparent rsp-border-b-[5px] rsp-border-b-transparent rsp-ml-1" }) }) }),
|
|
4855
|
-
a.carousel && a.carousel.cards.length > 1 && /* @__PURE__ */ r(
|
|
5060
|
+
a.carousel && a.carousel.cards.length > 1 && /* @__PURE__ */ r(ce, { children: [
|
|
4856
5061
|
/* @__PURE__ */ e(
|
|
4857
5062
|
"button",
|
|
4858
5063
|
{
|
|
4859
|
-
onClick: () =>
|
|
4860
|
-
(
|
|
5064
|
+
onClick: () => t(
|
|
5065
|
+
(p) => p > 0 ? p - 1 : a.carousel.cards.length - 1
|
|
4861
5066
|
),
|
|
4862
5067
|
className: "rsp-absolute rsp-left-1 rsp-top-1/2 rsp-transform -rsp-translate-y-1/2 rsp-z-20 rsp-w-6 rsp-h-6 rsp-bg-black rsp-bg-opacity-50 rsp-rounded-full rsp-flex rsp-items-center rsp-justify-center rsp-text-white hover:rsp-bg-opacity-80 rsp-transition-all rsp-opacity-0 group-hover:rsp-opacity-100",
|
|
4863
5068
|
children: /* @__PURE__ */ e("svg", { className: "rsp-w-4 rsp-h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }) })
|
|
@@ -4866,8 +5071,8 @@ function oa({ template: a }) {
|
|
|
4866
5071
|
/* @__PURE__ */ e(
|
|
4867
5072
|
"button",
|
|
4868
5073
|
{
|
|
4869
|
-
onClick: () =>
|
|
4870
|
-
(
|
|
5074
|
+
onClick: () => t(
|
|
5075
|
+
(p) => p < a.carousel.cards.length - 1 ? p + 1 : 0
|
|
4871
5076
|
),
|
|
4872
5077
|
className: "rsp-absolute rsp-right-1 rsp-top-1/2 rsp-transform -rsp-translate-y-1/2 rsp-z-20 rsp-w-6 rsp-h-6 rsp-bg-black rsp-bg-opacity-50 rsp-rounded-full rsp-flex rsp-items-center rsp-justify-center rsp-text-white hover:rsp-bg-opacity-80 rsp-transition-all rsp-opacity-0 group-hover:rsp-opacity-100",
|
|
4873
5078
|
children: /* @__PURE__ */ e("svg", { className: "rsp-w-4 rsp-h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) })
|
|
@@ -4875,41 +5080,41 @@ function oa({ template: a }) {
|
|
|
4875
5080
|
)
|
|
4876
5081
|
] }),
|
|
4877
5082
|
/* @__PURE__ */ r("div", { className: "rsp-absolute rsp-top-2 rsp-right-2 rsp-bg-black rsp-bg-opacity-60 rsp-text-white rsp-text-[10px] rsp-px-2 rsp-py-0.5 rsp-rounded-full rsp-backdrop-blur-sm", style: { fontFamily: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif' }, children: [
|
|
4878
|
-
|
|
5083
|
+
n + 1,
|
|
4879
5084
|
"/",
|
|
4880
5085
|
a.carousel ? a.carousel.cards.length : 0
|
|
4881
5086
|
] })
|
|
4882
5087
|
] }) : /* @__PURE__ */ e("div", { className: "rsp-w-full rsp-h-full rsp-flex rsp-items-center rsp-justify-center", children: /* @__PURE__ */ r("div", { className: "rsp-text-center", children: [
|
|
4883
|
-
/* @__PURE__ */ e("svg", { className: "rsp-w-12 rsp-h-12 rsp-mx-auto rsp-text-gray-400 rsp-mb-2", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: ((
|
|
5088
|
+
/* @__PURE__ */ e("svg", { className: "rsp-w-12 rsp-h-12 rsp-mx-auto rsp-text-gray-400 rsp-mb-2", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: ((c = a.carousel) == null ? void 0 : c.type) === "VIDEO" ? /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z" }) : /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z" }) }),
|
|
4884
5089
|
/* @__PURE__ */ e("p", { className: "rsp-text-xs rsp-text-gray-500", style: { fontFamily: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif' }, children: "No media" })
|
|
4885
5090
|
] }) }) }),
|
|
4886
|
-
/* @__PURE__ */ e("div", { className: "rsp-px-4 rsp-py-3 rsp-flex-1 rsp-flex rsp-items-start", children: /* @__PURE__ */ e("p", { className: "rsp-text-[13px] rsp-text-[#111b21] rsp-leading-[1.4] rsp-line-clamp-3", style: { fontFamily: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif' }, children:
|
|
4887
|
-
/* @__PURE__ */ e("div", { className: "rsp-border-t rsp-border-gray-100 rsp-mt-auto", children:
|
|
5091
|
+
/* @__PURE__ */ e("div", { className: "rsp-px-4 rsp-py-3 rsp-flex-1 rsp-flex rsp-items-start", children: /* @__PURE__ */ e("p", { className: "rsp-text-[13px] rsp-text-[#111b21] rsp-leading-[1.4] rsp-line-clamp-3", style: { fontFamily: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif' }, children: g ? w(g) : "Card body text..." }) }),
|
|
5092
|
+
/* @__PURE__ */ e("div", { className: "rsp-border-t rsp-border-gray-100 rsp-mt-auto", children: g && g.buttons.length > 0 ? /* @__PURE__ */ e(ce, { children: g.buttons.map((p, y) => /* @__PURE__ */ e(
|
|
4888
5093
|
"div",
|
|
4889
5094
|
{
|
|
4890
|
-
className: `rsp-px-4 rsp-py-3 rsp-text-center rsp-text-[14px] rsp-text-[#128C7E] rsp-font-medium rsp-break-words rsp-whitespace-pre-wrap ${
|
|
5095
|
+
className: `rsp-px-4 rsp-py-3 rsp-text-center rsp-text-[14px] rsp-text-[#128C7E] rsp-font-medium rsp-break-words rsp-whitespace-pre-wrap ${y < g.buttons.length - 1 ? "rsp-border-b rsp-border-gray-100" : ""}`,
|
|
4891
5096
|
style: { fontFamily: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif' },
|
|
4892
5097
|
children: /* @__PURE__ */ r("div", { className: "rsp-flex rsp-items-center rsp-justify-center rsp-gap-2", children: [
|
|
4893
|
-
|
|
4894
|
-
(
|
|
4895
|
-
/* @__PURE__ */ e("span", { className: "rsp-inline-block rsp-max-w-[180px] rsp-break-words rsp-break-all rsp-whitespace-pre-wrap rsp-text-center", children:
|
|
5098
|
+
p.type === "URL" && /* @__PURE__ */ e("svg", { className: "rsp-w-4 rsp-h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" }) }),
|
|
5099
|
+
(p.type === "CALL" || p.type === "PHONE_NUMBER") && /* @__PURE__ */ e("svg", { className: "rsp-w-4 rsp-h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z" }) }),
|
|
5100
|
+
/* @__PURE__ */ e("span", { className: "rsp-inline-block rsp-max-w-[180px] rsp-break-words rsp-break-all rsp-whitespace-pre-wrap rsp-text-center", children: p.text })
|
|
4896
5101
|
] })
|
|
4897
5102
|
},
|
|
4898
|
-
|
|
5103
|
+
p.id
|
|
4899
5104
|
)) }) : /* @__PURE__ */ e("div", { className: "rsp-px-4 rsp-py-3 rsp-text-center rsp-text-xs rsp-text-gray-400", style: { fontFamily: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif' }, children: "No buttons" }) })
|
|
4900
5105
|
] });
|
|
4901
5106
|
})(),
|
|
4902
|
-
a.carousel && a.carousel.cards.length > 1 && /* @__PURE__ */ e("div", { className: "rsp-flex rsp-items-center rsp-justify-center rsp-gap-1.5 rsp-py-3 rsp-bg-white rsp-border-t rsp-border-gray-100", children: a.carousel && a.carousel.cards.map((
|
|
5107
|
+
a.carousel && a.carousel.cards.length > 1 && /* @__PURE__ */ e("div", { className: "rsp-flex rsp-items-center rsp-justify-center rsp-gap-1.5 rsp-py-3 rsp-bg-white rsp-border-t rsp-border-gray-100", children: a.carousel && a.carousel.cards.map((g, v) => /* @__PURE__ */ e(
|
|
4903
5108
|
"button",
|
|
4904
5109
|
{
|
|
4905
|
-
onClick: () =>
|
|
4906
|
-
className: `rsp-w-2 rsp-h-2 rsp-rounded-full rsp-transition-all ${
|
|
5110
|
+
onClick: () => t(v),
|
|
5111
|
+
className: `rsp-w-2 rsp-h-2 rsp-rounded-full rsp-transition-all ${v === n ? "rsp-bg-[#128C7E] rsp-w-6" : "rsp-bg-gray-300 hover:rsp-bg-gray-400"}`
|
|
4907
5112
|
},
|
|
4908
|
-
|
|
5113
|
+
v
|
|
4909
5114
|
)) })
|
|
4910
5115
|
] }) }) }) }),
|
|
4911
5116
|
a.buttons.length > 0 && /* @__PURE__ */ e("div", { className: "rsp-flex rsp-justify-start", children: /* @__PURE__ */ e("div", { className: "rsp-bg-gradient-to-b rsp-from-white rsp-to-[#fafafa] rsp-rounded-[12px] rsp-overflow-hidden rsp-shadow-[0_2px_8px_rgba(0,0,0,0.08)] rsp-max-w-[220px] rsp-w-full rsp-border rsp-border-gray-100 rsp-animate-slide-up", children: /* @__PURE__ */ e(
|
|
4912
|
-
|
|
5117
|
+
Ca,
|
|
4913
5118
|
{
|
|
4914
5119
|
buttons: a.buttons,
|
|
4915
5120
|
onShowAllOptions: () => i(!0)
|
|
@@ -4926,20 +5131,20 @@ function oa({ template: a }) {
|
|
|
4926
5131
|
/* @__PURE__ */ e("div", { className: "rsp-flex-1 rsp-bg-gradient-to-r rsp-from-white rsp-to-[#fafafa] rsp-rounded-[24px] rsp-px-4 rsp-py-2 rsp-flex rsp-items-center rsp-min-h-[36px] rsp-shadow-[0_1px_2px_rgba(0,0,0,0.1)] rsp-border rsp-border-gray-200", children: /* @__PURE__ */ e("span", { className: "rsp-text-[13px] rsp-text-[#667781] rsp-opacity-70 rsp-font-normal", children: "Type a message" }) }),
|
|
4927
5132
|
/* @__PURE__ */ e("div", { className: "rsp-w-9 rsp-h-9 rsp-bg-gradient-to-br rsp-from-[#25D366] rsp-via-[#20c55e] rsp-to-[#00A884] rsp-rounded-full rsp-flex rsp-items-center rsp-justify-center rsp-shadow-[0_2px_6px_rgba(37,211,102,0.3)] rsp-border rsp-border-[#20c55e] rsp-border-opacity-30", children: /* @__PURE__ */ e("svg", { className: "rsp-w-4 rsp-h-4 rsp-text-white rsp-drop-shadow-sm", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ e("path", { d: "M2.01 21L23 12 2.01 3 2 10l15 2-15 2z" }) }) })
|
|
4928
5133
|
] }),
|
|
4929
|
-
|
|
5134
|
+
s && /* @__PURE__ */ e("div", { className: "rsp-absolute rsp-inset-0 rsp-bg-black rsp-bg-opacity-40 rsp-z-30 rsp-flex rsp-items-end rsp-animate-fade-in", children: /* @__PURE__ */ r(
|
|
4930
5135
|
"div",
|
|
4931
5136
|
{
|
|
4932
5137
|
className: "rsp-w-full rsp-bg-[#F0F2F5] rsp-rounded-t-2xl rsp-shadow-lg rsp-animate-slide-up",
|
|
4933
5138
|
children: [
|
|
4934
5139
|
/* @__PURE__ */ e("div", { className: "rsp-p-4 rsp-border-b rsp-border-gray-300", children: /* @__PURE__ */ e("h4", { className: "rsp-font-bold rsp-text-center rsp-text-gray-800 rsp-text-md", children: a.body || "Options" }) }),
|
|
4935
|
-
/* @__PURE__ */ e("div", { className: "rsp-max-h-[250px] rsp-overflow-y-auto", children: a.buttons.map((
|
|
5140
|
+
/* @__PURE__ */ e("div", { className: "rsp-max-h-[250px] rsp-overflow-y-auto", children: a.buttons.map((g, v) => /* @__PURE__ */ e(
|
|
4936
5141
|
"div",
|
|
4937
5142
|
{
|
|
4938
|
-
className: `rsp-p-4 rsp-text-center rsp-text-[15px] rsp-text-[#128C7E] rsp-font-medium ${
|
|
5143
|
+
className: `rsp-p-4 rsp-text-center rsp-text-[15px] rsp-text-[#128C7E] rsp-font-medium ${v < a.buttons.length - 1 ? "rsp-border-b rsp-border-gray-300" : ""}`,
|
|
4939
5144
|
style: { fontFamily: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif' },
|
|
4940
|
-
children:
|
|
5145
|
+
children: g.text
|
|
4941
5146
|
},
|
|
4942
|
-
|
|
5147
|
+
g.id
|
|
4943
5148
|
)) }),
|
|
4944
5149
|
/* @__PURE__ */ e(
|
|
4945
5150
|
"div",
|
|
@@ -4958,7 +5163,7 @@ function oa({ template: a }) {
|
|
|
4958
5163
|
] }) }) })
|
|
4959
5164
|
] });
|
|
4960
5165
|
}
|
|
4961
|
-
const
|
|
5166
|
+
const Te = {
|
|
4962
5167
|
name: "",
|
|
4963
5168
|
category: "MARKETING",
|
|
4964
5169
|
type: "BASIC",
|
|
@@ -4970,76 +5175,73 @@ const ke = {
|
|
|
4970
5175
|
footer: "",
|
|
4971
5176
|
buttons: []
|
|
4972
5177
|
};
|
|
4973
|
-
function
|
|
4974
|
-
var
|
|
4975
|
-
const
|
|
5178
|
+
function Ua({ onCancel: a }) {
|
|
5179
|
+
var c, p, y;
|
|
5180
|
+
const s = typeof Ne == "function" ? Ne() : !1, i = Ve(), [n, t] = P(Te), [x, l] = P(!0), [k, w] = P(!1), [o, N] = P(!1), [U, f] = P(null), [b, M] = P({
|
|
4976
5181
|
isOpen: !1
|
|
4977
|
-
})
|
|
5182
|
+
});
|
|
5183
|
+
P({
|
|
4978
5184
|
isOpen: !1
|
|
4979
|
-
}),
|
|
4980
|
-
if (
|
|
4981
|
-
|
|
4982
|
-
|
|
4983
|
-
var c, M, A;
|
|
4984
|
-
return !!((A = (M = (c = l.sampleContent) == null ? void 0 : c.headerVariables) == null ? void 0 : M[T]) != null && A.trim());
|
|
4985
|
-
}
|
|
4986
|
-
), b = x.every(
|
|
4987
|
-
(T) => {
|
|
4988
|
-
var c, M, A;
|
|
4989
|
-
return !!((A = (M = (c = l.sampleContent) == null ? void 0 : c.bodyVariables) == null ? void 0 : M[T]) != null && A.trim());
|
|
4990
|
-
}
|
|
4991
|
-
), E = L.every(
|
|
4992
|
-
(T) => {
|
|
4993
|
-
var c, M, A;
|
|
4994
|
-
return !!((A = (M = (c = l.sampleContent) == null ? void 0 : c.buttonVariables) == null ? void 0 : M[T]) != null && A.trim());
|
|
4995
|
-
}
|
|
4996
|
-
);
|
|
4997
|
-
return s && b && E;
|
|
4998
|
-
}, u = (x) => {
|
|
4999
|
-
if (!x) return [];
|
|
5000
|
-
const w = x.match(/\{\{(\d+)\}\}/g) || [];
|
|
5001
|
-
return [...new Set(w.map((L) => L.replace(/[{}]/g, "")))];
|
|
5002
|
-
}, t = () => {
|
|
5003
|
-
const x = l.buttons.find(
|
|
5004
|
-
(L) => L.type === "URL" && L.urlType === "dynamic"
|
|
5005
|
-
);
|
|
5006
|
-
if (!(x != null && x.value)) return [];
|
|
5007
|
-
const w = x.value.match(/\{\{(\d+)\}\}/g) || [];
|
|
5008
|
-
return [...new Set(w.map((L) => L.replace(/[{}]/g, "")))];
|
|
5009
|
-
};
|
|
5010
|
-
se(() => {
|
|
5011
|
-
if (f) {
|
|
5012
|
-
const x = setTimeout(() => {
|
|
5013
|
-
y(null);
|
|
5185
|
+
}), le(() => {
|
|
5186
|
+
if (U) {
|
|
5187
|
+
const u = setTimeout(() => {
|
|
5188
|
+
f(null);
|
|
5014
5189
|
}, 5e3);
|
|
5015
|
-
return () => clearTimeout(
|
|
5190
|
+
return () => clearTimeout(u);
|
|
5016
5191
|
}
|
|
5017
|
-
}, [
|
|
5018
|
-
const
|
|
5019
|
-
var
|
|
5192
|
+
}, [U]);
|
|
5193
|
+
const g = async () => {
|
|
5194
|
+
var u, V, B;
|
|
5020
5195
|
try {
|
|
5021
|
-
if (
|
|
5196
|
+
if (N(!0), f(null), !n.name || !n.body)
|
|
5022
5197
|
throw new Error("Template name and body are required");
|
|
5023
|
-
const
|
|
5024
|
-
if (!
|
|
5198
|
+
const d = localStorage.getItem("account"), E = d ? JSON.parse(d) : { apiKey: "" };
|
|
5199
|
+
if (!E.apiKey)
|
|
5025
5200
|
throw new Error("Please set your API key in the dashboard first");
|
|
5026
|
-
const
|
|
5027
|
-
|
|
5028
|
-
|
|
5029
|
-
|
|
5201
|
+
const O = new URLSearchParams(window.location.search).get("edit");
|
|
5202
|
+
let R;
|
|
5203
|
+
if (O) {
|
|
5204
|
+
const _ = await na(E.apiKey, O, n);
|
|
5205
|
+
if (!_.success)
|
|
5206
|
+
throw new Error(_.message || "Update failed");
|
|
5207
|
+
R = {
|
|
5208
|
+
status: "success",
|
|
5209
|
+
data: { details: [{ template_name: n.name, template_id: O }] }
|
|
5210
|
+
};
|
|
5211
|
+
} else if (R = await sa(E, n), R.status === "error")
|
|
5212
|
+
throw new Error(R.message);
|
|
5213
|
+
if (R.status === "error")
|
|
5214
|
+
throw new Error(R.message);
|
|
5215
|
+
M({
|
|
5030
5216
|
isOpen: !0,
|
|
5031
|
-
templateName: (
|
|
5032
|
-
templateId: (
|
|
5033
|
-
|
|
5034
|
-
|
|
5035
|
-
|
|
5036
|
-
|
|
5037
|
-
y(s instanceof Error ? s.message : "An error occurred while creating the template");
|
|
5217
|
+
templateName: (u = R.data) == null ? void 0 : u.details[0].template_name,
|
|
5218
|
+
templateId: (V = R.data) == null ? void 0 : V.details[0].template_id,
|
|
5219
|
+
template: (B = R.data) == null ? void 0 : B.template
|
|
5220
|
+
}), t(Te);
|
|
5221
|
+
} catch (d) {
|
|
5222
|
+
f(d instanceof Error ? d.message : "An error occurred while creating the template");
|
|
5038
5223
|
} finally {
|
|
5039
|
-
|
|
5224
|
+
N(!1);
|
|
5040
5225
|
}
|
|
5041
|
-
}
|
|
5042
|
-
|
|
5226
|
+
};
|
|
5227
|
+
le(() => {
|
|
5228
|
+
const V = new URLSearchParams(window.location.search).get("edit");
|
|
5229
|
+
if (!V) return;
|
|
5230
|
+
(async () => {
|
|
5231
|
+
try {
|
|
5232
|
+
const d = localStorage.getItem("account"), E = d ? JSON.parse(d) : { apiKey: "" };
|
|
5233
|
+
if (!E.apiKey)
|
|
5234
|
+
throw new Error("Please set your API key in the dashboard first");
|
|
5235
|
+
const A = await ia(E.apiKey, V);
|
|
5236
|
+
t((O) => ({ ...O, ...A }));
|
|
5237
|
+
} catch (d) {
|
|
5238
|
+
console.error("Failed to load template for edit", d), f(d instanceof Error ? d.message : "Failed to load template");
|
|
5239
|
+
} finally {
|
|
5240
|
+
}
|
|
5241
|
+
})();
|
|
5242
|
+
}, []);
|
|
5243
|
+
const v = () => {
|
|
5244
|
+
M({ isOpen: !1 }), a ? a() : s ? i("/") : window.history.length > 1 && window.history.back();
|
|
5043
5245
|
};
|
|
5044
5246
|
return /* @__PURE__ */ r("div", { className: "rsp-min-h-screen rsp-bg-[#f5f7fc] rsp-rounded-lg rsp-shadow-sm", children: [
|
|
5045
5247
|
/* @__PURE__ */ r("div", { className: "rsp-max-w-[1200px] rsp-mx-auto rsp-px-6 rsp-h-full", children: [
|
|
@@ -5050,7 +5252,7 @@ function ya({ onCancel: a }) {
|
|
|
5050
5252
|
"button",
|
|
5051
5253
|
{
|
|
5052
5254
|
onClick: () => {
|
|
5053
|
-
a ? a() :
|
|
5255
|
+
a ? a() : s ? i("/") : window.history.length > 1 && window.history.back();
|
|
5054
5256
|
},
|
|
5055
5257
|
className: "rsp-px-4 rsp-py-2 rsp-text-sm rsp-font-medium rsp-text-gray-700 rsp-bg-white rsp-border rsp-border-gray-300 rsp-rounded-md hover:rsp-bg-gray-50 rsp-transition-colors",
|
|
5056
5258
|
children: "Cancel"
|
|
@@ -5059,22 +5261,22 @@ function ya({ onCancel: a }) {
|
|
|
5059
5261
|
/* @__PURE__ */ r(
|
|
5060
5262
|
"button",
|
|
5061
5263
|
{
|
|
5062
|
-
onClick: () =>
|
|
5264
|
+
onClick: () => l(!x),
|
|
5063
5265
|
className: `rsp-flex rsp-items-center rsp-gap-2 rsp-px-4 rsp-py-2 rsp-rounded-md rsp-text-sm rsp-font-medium rsp-transition-colors
|
|
5064
|
-
${
|
|
5266
|
+
${x ? "rsp-bg-blue-100 rsp-text-blue-700 rsp-border rsp-border-blue-200" : "rsp-bg-gray-100 rsp-text-gray-700 rsp-border rsp-border-gray-200"}`,
|
|
5065
5267
|
children: [
|
|
5066
5268
|
/* @__PURE__ */ r("svg", { className: "rsp-w-4 rsp-h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: [
|
|
5067
5269
|
/* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 12a3 3 0 11-6 0 3 3 0 016 0z" }),
|
|
5068
5270
|
/* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z" })
|
|
5069
5271
|
] }),
|
|
5070
|
-
|
|
5272
|
+
x ? "Hide Preview" : "Show Preview"
|
|
5071
5273
|
]
|
|
5072
5274
|
}
|
|
5073
5275
|
)
|
|
5074
5276
|
] })
|
|
5075
5277
|
] }) }),
|
|
5076
|
-
/* @__PURE__ */ r("div", { className: `rsp-py-8 ${
|
|
5077
|
-
/* @__PURE__ */ r("div", { className: `rsp-space-y-8 ${
|
|
5278
|
+
/* @__PURE__ */ r("div", { className: `rsp-py-8 ${x ? "rsp-grid xl:rsp-grid-cols-[1fr,400px] rsp-gap-8" : ""}`, children: [
|
|
5279
|
+
/* @__PURE__ */ r("div", { className: `rsp-space-y-8 ${x ? "" : "rsp-max-w-4xl rsp-mx-auto"}`, children: [
|
|
5078
5280
|
/* @__PURE__ */ r("div", { className: "rsp-bg-white rsp-p-6 rsp-rounded-lg rsp-shadow-sm rsp-space-y-6", children: [
|
|
5079
5281
|
/* @__PURE__ */ r("div", { children: [
|
|
5080
5282
|
/* @__PURE__ */ r("label", { className: "rsp-block rsp-text-sm rsp-font-medium rsp-text-gray-700 rsp-mb-2", children: [
|
|
@@ -5086,14 +5288,16 @@ function ya({ onCancel: a }) {
|
|
|
5086
5288
|
"input",
|
|
5087
5289
|
{
|
|
5088
5290
|
type: "text",
|
|
5089
|
-
value:
|
|
5090
|
-
onChange: (
|
|
5291
|
+
value: n.name,
|
|
5292
|
+
onChange: (u) => t({ ...n, name: u.target.value.replace(/\s/g, "_").replace(/[^a-zA-Z0-9_]/g, "").replace(/_+/g, "_") }),
|
|
5293
|
+
onBlur: () => w(!0),
|
|
5091
5294
|
className: "rsp-w-full rsp-px-0 rsp-py-2 rsp-border-0 rsp-border-b rsp-border-gray-300 rsp-text-sm focus:rsp-outline-none focus:rsp-border-blue-500 rsp-bg-transparent",
|
|
5092
5295
|
placeholder: "Template name cannot Have capital letters and space"
|
|
5093
5296
|
}
|
|
5094
5297
|
),
|
|
5095
5298
|
/* @__PURE__ */ e("div", { className: "rsp-absolute rsp-bottom-0 rsp-left-0 rsp-w-4 rsp-h-0.5 rsp-bg-red-500" })
|
|
5096
5299
|
] }),
|
|
5300
|
+
!n.name && k && /* @__PURE__ */ e("p", { className: "rsp-text-xs rsp-text-red-600 rsp-mt-1", children: "Template name is required." }),
|
|
5097
5301
|
/* @__PURE__ */ e("p", { className: "rsp-text-xs rsp-text-gray-500 rsp-mt-1", children: "Template name cannot Have capital letters and space" })
|
|
5098
5302
|
] }),
|
|
5099
5303
|
/* @__PURE__ */ r("div", { className: "rsp-grid rsp-grid-cols-2 rsp-gap-6", children: [
|
|
@@ -5103,8 +5307,8 @@ function ya({ onCancel: a }) {
|
|
|
5103
5307
|
/* @__PURE__ */ r(
|
|
5104
5308
|
"select",
|
|
5105
5309
|
{
|
|
5106
|
-
value:
|
|
5107
|
-
onChange: (
|
|
5310
|
+
value: n.category,
|
|
5311
|
+
onChange: (u) => t({ ...n, category: u.target.value }),
|
|
5108
5312
|
className: "rsp-w-full rsp-px-0 rsp-py-2 rsp-border-0 rsp-border-b rsp-border-gray-300 rsp-text-sm focus:rsp-outline-none focus:rsp-border-blue-500 rsp-bg-transparent rsp-appearance-none",
|
|
5109
5313
|
children: [
|
|
5110
5314
|
/* @__PURE__ */ e("option", { value: "MARKETING", children: "Marketing" }),
|
|
@@ -5123,10 +5327,10 @@ function ya({ onCancel: a }) {
|
|
|
5123
5327
|
/* @__PURE__ */ e(
|
|
5124
5328
|
"select",
|
|
5125
5329
|
{
|
|
5126
|
-
value:
|
|
5127
|
-
onChange: (
|
|
5330
|
+
value: n.language,
|
|
5331
|
+
onChange: (u) => t({ ...n, language: u.target.value }),
|
|
5128
5332
|
className: "rsp-w-full rsp-px-0 rsp-py-2 rsp-border-0 rsp-border-b rsp-border-gray-300 rsp-text-sm focus:rsp-outline-none focus:rsp-border-blue-500 rsp-bg-transparent rsp-appearance-none",
|
|
5129
|
-
children:
|
|
5333
|
+
children: ta.map((u) => /* @__PURE__ */ e("option", { value: u.value, children: u.label }, u.value))
|
|
5130
5334
|
}
|
|
5131
5335
|
),
|
|
5132
5336
|
/* @__PURE__ */ e("div", { className: "rsp-absolute rsp-inset-y-0 rsp-right-0 rsp-flex rsp-items-center rsp-px-2 rsp-pointer-events-none", children: /* @__PURE__ */ e("svg", { className: "rsp-w-4 rsp-h-4 rsp-text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }) }) }),
|
|
@@ -5141,12 +5345,12 @@ function ya({ onCancel: a }) {
|
|
|
5141
5345
|
/* @__PURE__ */ r(
|
|
5142
5346
|
"select",
|
|
5143
5347
|
{
|
|
5144
|
-
value:
|
|
5145
|
-
onChange: (
|
|
5146
|
-
const
|
|
5147
|
-
|
|
5148
|
-
...
|
|
5149
|
-
type:
|
|
5348
|
+
value: n.type,
|
|
5349
|
+
onChange: (u) => {
|
|
5350
|
+
const V = u.target.value;
|
|
5351
|
+
V === "CAROUSEL" && !n.carousel ? t({
|
|
5352
|
+
...n,
|
|
5353
|
+
type: V,
|
|
5150
5354
|
carousel: {
|
|
5151
5355
|
type: "IMAGE",
|
|
5152
5356
|
cards: [{
|
|
@@ -5158,7 +5362,7 @@ function ya({ onCancel: a }) {
|
|
|
5158
5362
|
buttons: []
|
|
5159
5363
|
}]
|
|
5160
5364
|
}
|
|
5161
|
-
}) :
|
|
5365
|
+
}) : t({ ...n, type: V });
|
|
5162
5366
|
},
|
|
5163
5367
|
className: "rsp-w-full rsp-px-0 rsp-py-2 rsp-border-0 rsp-border-b rsp-border-gray-300 rsp-text-sm focus:rsp-outline-none focus:rsp-border-blue-500 rsp-bg-transparent rsp-appearance-none",
|
|
5164
5368
|
children: [
|
|
@@ -5177,8 +5381,8 @@ function ya({ onCancel: a }) {
|
|
|
5177
5381
|
/* @__PURE__ */ r(
|
|
5178
5382
|
"select",
|
|
5179
5383
|
{
|
|
5180
|
-
value:
|
|
5181
|
-
onChange: (
|
|
5384
|
+
value: n.enableClickTracking.toString(),
|
|
5385
|
+
onChange: (u) => t({ ...n, enableClickTracking: u.target.value === "true" }),
|
|
5182
5386
|
className: "rsp-w-full rsp-px-0 rsp-py-2 rsp-border-0 rsp-border-b rsp-border-gray-300 rsp-text-sm focus:rsp-outline-none focus:rsp-border-blue-500 rsp-bg-transparent rsp-appearance-none",
|
|
5183
5387
|
children: [
|
|
5184
5388
|
/* @__PURE__ */ e("option", { value: "false", children: "False" }),
|
|
@@ -5191,70 +5395,73 @@ function ya({ onCancel: a }) {
|
|
|
5191
5395
|
] })
|
|
5192
5396
|
] })
|
|
5193
5397
|
] }),
|
|
5194
|
-
/* @__PURE__ */ e("div", { className: "rsp-bg-white rsp-p-6 rsp-rounded-lg rsp-shadow-sm", children: /* @__PURE__ */ e(
|
|
5398
|
+
/* @__PURE__ */ e("div", { className: "rsp-bg-white rsp-p-6 rsp-rounded-lg rsp-shadow-sm", children: /* @__PURE__ */ e(ka, { template: n, setTemplate: t }) }),
|
|
5195
5399
|
/* @__PURE__ */ r("div", { className: "rsp-bg-white rsp-p-6 rsp-rounded-lg rsp-shadow-sm rsp-pt-6 rsp-border-t rsp-border-gray-200", children: [
|
|
5196
|
-
|
|
5197
|
-
/* @__PURE__ */ e(
|
|
5400
|
+
U && /* @__PURE__ */ r("div", { className: "rsp-mb-4 rsp-flex rsp-items-start rsp-gap-3 rsp-p-4 rsp-rounded-lg rsp-bg-red-50 rsp-border-l-4 rsp-border-l-red-500 rsp-relative rsp-animate-fade-in", children: [
|
|
5401
|
+
/* @__PURE__ */ e(fe, { className: "rsp-w-5 rsp-h-5 rsp-text-red-500 rsp-flex-shrink-0 rsp-mt-0.5" }),
|
|
5198
5402
|
/* @__PURE__ */ r("div", { children: [
|
|
5199
5403
|
/* @__PURE__ */ e("h3", { className: "rsp-text-sm rsp-font-medium rsp-text-red-800", children: "Error" }),
|
|
5200
|
-
/* @__PURE__ */ e("p", { className: "rsp-mt-1 rsp-text-sm rsp-text-red-700", children:
|
|
5404
|
+
/* @__PURE__ */ e("p", { className: "rsp-mt-1 rsp-text-sm rsp-text-red-700", children: U })
|
|
5201
5405
|
] }),
|
|
5202
5406
|
/* @__PURE__ */ e(
|
|
5203
5407
|
"button",
|
|
5204
5408
|
{
|
|
5205
|
-
onClick: () =>
|
|
5409
|
+
onClick: () => f(null),
|
|
5206
5410
|
className: "rsp-absolute rsp-top-2 rsp-right-2 rsp-p-1 hover:rsp-bg-red-100 rsp-rounded-full",
|
|
5207
|
-
children: /* @__PURE__ */ e(
|
|
5411
|
+
children: /* @__PURE__ */ e(re, { className: "rsp-w-4 rsp-h-4 rsp-text-red-500" })
|
|
5208
5412
|
}
|
|
5209
5413
|
)
|
|
5210
5414
|
] }),
|
|
5211
5415
|
/* @__PURE__ */ e("div", { className: "rsp-flex rsp-gap-4", children: /* @__PURE__ */ e(
|
|
5212
5416
|
"button",
|
|
5213
5417
|
{
|
|
5214
|
-
onClick:
|
|
5215
|
-
disabled:
|
|
5418
|
+
onClick: g,
|
|
5419
|
+
disabled: o,
|
|
5216
5420
|
className: `rsp-flex-1 rsp-py-3 rsp-px-6 rsp-rounded-md rsp-transition-colors rsp-text-white rsp-font-medium rsp-text-sm
|
|
5217
|
-
${
|
|
5218
|
-
children:
|
|
5421
|
+
${o ? "rsp-bg-blue-600 rsp-cursor-not-allowed" : "rsp-bg-blue-600 hover:rsp-bg-blue-700 active:rsp-bg-blue-800"}`,
|
|
5422
|
+
children: (() => {
|
|
5423
|
+
const u = new URLSearchParams(window.location.search).get("edit");
|
|
5424
|
+
return o ? u ? "Resubmitting for Approval..." : "Submitting for Approval..." : u ? "Resubmit for Approval" : "Submit for Approval";
|
|
5425
|
+
})()
|
|
5219
5426
|
}
|
|
5220
5427
|
) })
|
|
5221
5428
|
] })
|
|
5222
5429
|
] }),
|
|
5223
|
-
|
|
5430
|
+
x && /* @__PURE__ */ e("div", { children: /* @__PURE__ */ e("div", { className: "rsp-sticky rsp-top-4", children: /* @__PURE__ */ e(Ea, { template: n }) }) })
|
|
5224
5431
|
] })
|
|
5225
5432
|
] }),
|
|
5226
5433
|
/* @__PURE__ */ e(
|
|
5227
|
-
|
|
5434
|
+
te,
|
|
5228
5435
|
{
|
|
5229
|
-
isOpen:
|
|
5436
|
+
isOpen: b.isOpen,
|
|
5230
5437
|
onClose: v,
|
|
5231
5438
|
title: "Success",
|
|
5232
5439
|
children: /* @__PURE__ */ r("div", { className: "rsp-space-y-4", children: [
|
|
5233
5440
|
/* @__PURE__ */ e("div", { className: "rsp-text-center", children: /* @__PURE__ */ e("p", { className: "rsp-text-green-600 rsp-font-medium rsp-mb-4", children: "Template created successfully!" }) }),
|
|
5234
|
-
|
|
5441
|
+
b.templateId && /* @__PURE__ */ r("div", { className: "rsp-bg-gray-50 rsp-p-4 rsp-rounded-lg rsp-space-y-2", children: [
|
|
5235
5442
|
/* @__PURE__ */ r("div", { className: "rsp-flex rsp-justify-between", children: [
|
|
5236
5443
|
/* @__PURE__ */ e("span", { className: "rsp-text-sm rsp-text-gray-600", children: "Template Name:" }),
|
|
5237
|
-
/* @__PURE__ */ e("span", { className: "rsp-text-sm rsp-font-medium", children:
|
|
5444
|
+
/* @__PURE__ */ e("span", { className: "rsp-text-sm rsp-font-medium", children: b.templateName })
|
|
5238
5445
|
] }),
|
|
5239
5446
|
/* @__PURE__ */ r("div", { className: "rsp-flex rsp-justify-between", children: [
|
|
5240
5447
|
/* @__PURE__ */ e("span", { className: "rsp-text-sm rsp-text-gray-600", children: "Template ID:" }),
|
|
5241
|
-
/* @__PURE__ */ e("span", { className: "rsp-text-sm rsp-font-medium rsp-font-mono", children:
|
|
5448
|
+
/* @__PURE__ */ e("span", { className: "rsp-text-sm rsp-font-medium rsp-font-mono", children: b.templateId })
|
|
5242
5449
|
] }),
|
|
5243
|
-
((
|
|
5450
|
+
((c = b.template) == null ? void 0 : c.meta_tid) && /* @__PURE__ */ r("div", { className: "rsp-flex rsp-justify-between", children: [
|
|
5244
5451
|
/* @__PURE__ */ e("span", { className: "rsp-text-sm rsp-text-gray-600", children: "Meta TID:" }),
|
|
5245
|
-
/* @__PURE__ */ e("span", { className: "rsp-text-sm rsp-font-medium rsp-font-mono", children:
|
|
5452
|
+
/* @__PURE__ */ e("span", { className: "rsp-text-sm rsp-font-medium rsp-font-mono", children: b.template.meta_tid })
|
|
5246
5453
|
] }),
|
|
5247
|
-
((
|
|
5454
|
+
((p = b.template) == null ? void 0 : p.status) && /* @__PURE__ */ r("div", { className: "rsp-flex rsp-justify-between", children: [
|
|
5248
5455
|
/* @__PURE__ */ e("span", { className: "rsp-text-sm rsp-text-gray-600", children: "Status:" }),
|
|
5249
5456
|
/* @__PURE__ */ e("span", { className: `rsp-text-sm rsp-font-medium rsp-capitalize ${// @ts-ignore
|
|
5250
|
-
|
|
5457
|
+
b.template.status === "pending" ? "rsp-text-yellow-600" : (
|
|
5251
5458
|
// @ts-ignore
|
|
5252
|
-
|
|
5253
|
-
)}`, children:
|
|
5459
|
+
b.template.status === "approved" ? "rsp-text-green-600" : "rsp-text-red-600"
|
|
5460
|
+
)}`, children: b.template.status })
|
|
5254
5461
|
] }),
|
|
5255
|
-
((
|
|
5462
|
+
((y = b.template) == null ? void 0 : y.quality) && /* @__PURE__ */ r("div", { className: "rsp-flex rsp-justify-between", children: [
|
|
5256
5463
|
/* @__PURE__ */ e("span", { className: "rsp-text-sm rsp-text-gray-600", children: "Quality:" }),
|
|
5257
|
-
/* @__PURE__ */ e("span", { className: "rsp-text-sm rsp-font-medium rsp-capitalize", children:
|
|
5464
|
+
/* @__PURE__ */ e("span", { className: "rsp-text-sm rsp-font-medium rsp-capitalize", children: b.template.quality })
|
|
5258
5465
|
] })
|
|
5259
5466
|
] })
|
|
5260
5467
|
] })
|
|
@@ -5262,18 +5469,43 @@ function ya({ onCancel: a }) {
|
|
|
5262
5469
|
)
|
|
5263
5470
|
] });
|
|
5264
5471
|
}
|
|
5265
|
-
const
|
|
5266
|
-
function
|
|
5267
|
-
const
|
|
5268
|
-
|
|
5472
|
+
const Ma = Pe({});
|
|
5473
|
+
function Aa({ apiKey: a, pConfig: s, children: i }) {
|
|
5474
|
+
const n = Se(
|
|
5475
|
+
() => ({ apiKey: a, resulMeta: s }),
|
|
5476
|
+
[a, s]
|
|
5477
|
+
), t = Le(null);
|
|
5478
|
+
return le(() => {
|
|
5479
|
+
if (typeof window > "u" || a === void 0 && !s)
|
|
5480
|
+
return;
|
|
5481
|
+
let x = {};
|
|
5269
5482
|
try {
|
|
5270
|
-
localStorage.
|
|
5271
|
-
|
|
5483
|
+
const w = localStorage.getItem("account");
|
|
5484
|
+
w && (x = JSON.parse(w));
|
|
5485
|
+
} catch (w) {
|
|
5486
|
+
console.error(
|
|
5487
|
+
"TrustSignalProvider: Failed to read account from storage",
|
|
5488
|
+
w
|
|
5489
|
+
);
|
|
5272
5490
|
}
|
|
5273
|
-
|
|
5491
|
+
const l = {
|
|
5492
|
+
...x,
|
|
5493
|
+
...a !== void 0 ? { apiKey: a } : {},
|
|
5494
|
+
...s ? { resulMeta: s } : {}
|
|
5495
|
+
}, k = JSON.stringify(l);
|
|
5496
|
+
if (k !== t.current)
|
|
5497
|
+
try {
|
|
5498
|
+
localStorage.setItem("account", k), t.current = k;
|
|
5499
|
+
} catch (w) {
|
|
5500
|
+
console.error(
|
|
5501
|
+
"TrustSignalProvider: Failed to persist account to storage",
|
|
5502
|
+
w
|
|
5503
|
+
);
|
|
5504
|
+
}
|
|
5505
|
+
}, [a, s]), /* @__PURE__ */ e(Ma.Provider, { value: n, children: i });
|
|
5274
5506
|
}
|
|
5275
5507
|
export {
|
|
5276
|
-
|
|
5277
|
-
|
|
5278
|
-
|
|
5508
|
+
Ua as CreateTemplate,
|
|
5509
|
+
Va as Dashboard,
|
|
5510
|
+
Aa as TrustSignalProvider
|
|
5279
5511
|
};
|