@enerex/template-studio 1.1.21 → 1.1.23
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.
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { jsx as s, jsxs as
|
|
2
|
-
import I, { useContext as
|
|
3
|
-
import { QueryClient as
|
|
4
|
-
import
|
|
5
|
-
import { Spinner as U, Form as E, Card as
|
|
1
|
+
import { jsx as s, jsxs as T } from "react/jsx-runtime";
|
|
2
|
+
import I, { useContext as Z, useState as S, useEffect as _ } from "react";
|
|
3
|
+
import { QueryClient as ce, QueryClientProvider as pe, useQuery as O, useMutation as ee, useQueryClient as me } from "@tanstack/react-query";
|
|
4
|
+
import V from "axios";
|
|
5
|
+
import { Spinner as U, Form as E, Card as K, Row as ue, Col as $, Button as z } from "react-bootstrap";
|
|
6
6
|
import { Controller as ge, useForm as fe } from "react-hook-form";
|
|
7
|
-
import
|
|
7
|
+
import G from "react-select";
|
|
8
8
|
const D = `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\r
|
|
9
9
|
<html\r
|
|
10
10
|
dir="ltr"\r
|
|
@@ -361,7 +361,7 @@ const D = `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:
|
|
|
361
361
|
</div>\r
|
|
362
362
|
</body>\r
|
|
363
363
|
</html>\r
|
|
364
|
-
`,
|
|
364
|
+
`, te = I.createContext(
|
|
365
365
|
void 0
|
|
366
366
|
), ye = ({
|
|
367
367
|
children: t,
|
|
@@ -369,16 +369,16 @@ const D = `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:
|
|
|
369
369
|
}) => {
|
|
370
370
|
const [i, l] = I.useState(r.clientId), [n, e] = I.useState(r.apiKey), [a, o] = I.useState(
|
|
371
371
|
r.enerexIdentifier
|
|
372
|
-
), [p,
|
|
373
|
-
e(m.apiKey), l(m.clientId),
|
|
372
|
+
), [p, y] = I.useState(r.userName), [f, h] = I.useState(r.projectId), b = (m) => {
|
|
373
|
+
e(m.apiKey), l(m.clientId), h(m.projectId), o(m.enerexIdentifier), y(m.userName);
|
|
374
374
|
};
|
|
375
375
|
return /* @__PURE__ */ s(
|
|
376
|
-
|
|
376
|
+
te.Provider,
|
|
377
377
|
{
|
|
378
378
|
value: {
|
|
379
379
|
clientId: i,
|
|
380
380
|
apiKey: n,
|
|
381
|
-
setConfiguration:
|
|
381
|
+
setConfiguration: b,
|
|
382
382
|
enerexIdentifier: a,
|
|
383
383
|
projectId: f,
|
|
384
384
|
userName: p
|
|
@@ -386,14 +386,14 @@ const D = `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:
|
|
|
386
386
|
children: t
|
|
387
387
|
}
|
|
388
388
|
);
|
|
389
|
-
},
|
|
390
|
-
const t = te
|
|
389
|
+
}, v = () => {
|
|
390
|
+
const t = Z(te);
|
|
391
391
|
if (!t)
|
|
392
392
|
throw new Error("widgetConfig must be used within a ConfigProvider");
|
|
393
393
|
return t;
|
|
394
|
-
},
|
|
394
|
+
}, ne = (t = "", r) => ({ get: async (n, e) => {
|
|
395
395
|
try {
|
|
396
|
-
const a = await
|
|
396
|
+
const a = await V.get(
|
|
397
397
|
`${t}${n}`,
|
|
398
398
|
e ?? r
|
|
399
399
|
);
|
|
@@ -404,7 +404,7 @@ const D = `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:
|
|
|
404
404
|
}
|
|
405
405
|
}, post: async (n, e, a) => {
|
|
406
406
|
try {
|
|
407
|
-
const o = await
|
|
407
|
+
const o = await V.post(
|
|
408
408
|
`${t}${n}`,
|
|
409
409
|
e,
|
|
410
410
|
a ?? r
|
|
@@ -421,7 +421,7 @@ const D = `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:
|
|
|
421
421
|
API_BASE_URL: "https://dev-socket.enerex.com/common/api"
|
|
422
422
|
//API_BASE_URL: "https://localhost:44338/api",
|
|
423
423
|
// more env variables...
|
|
424
|
-
},
|
|
424
|
+
}, re = I.createContext({
|
|
425
425
|
get: () => {
|
|
426
426
|
throw new Error("HttpClientContext.get not implemented");
|
|
427
427
|
},
|
|
@@ -429,16 +429,16 @@ const D = `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:
|
|
|
429
429
|
throw new Error("HttpClientContext.post not implemented");
|
|
430
430
|
}
|
|
431
431
|
}), he = ({ children: t }) => {
|
|
432
|
-
const { clientId: r, apiKey: i } =
|
|
432
|
+
const { clientId: r, apiKey: i } = v(), l = {
|
|
433
433
|
headers: {
|
|
434
434
|
client_id: r,
|
|
435
435
|
"x-api-key": i
|
|
436
436
|
}
|
|
437
|
-
}, { get: n, post: e } =
|
|
438
|
-
return /* @__PURE__ */ s(
|
|
437
|
+
}, { get: n, post: e } = ne(k.API_BASE_URL, l);
|
|
438
|
+
return /* @__PURE__ */ s(re.Provider, { value: { get: n, post: e }, children: t });
|
|
439
439
|
}, be = ({ children: t }) => {
|
|
440
|
-
const r = new
|
|
441
|
-
return /* @__PURE__ */ s(he, { children: /* @__PURE__ */ s(
|
|
440
|
+
const r = new ce();
|
|
441
|
+
return /* @__PURE__ */ s(he, { children: /* @__PURE__ */ s(pe, { client: r, children: t }) });
|
|
442
442
|
}, we = (t) => {
|
|
443
443
|
const r = Array.from(new Set(t.map((l) => l.category))), i = [];
|
|
444
444
|
return r.forEach((l) => {
|
|
@@ -451,7 +451,7 @@ const D = `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:
|
|
|
451
451
|
i.push({ category: l, entries: n });
|
|
452
452
|
}), i;
|
|
453
453
|
}, A = () => {
|
|
454
|
-
const t =
|
|
454
|
+
const t = Z(re);
|
|
455
455
|
if (t)
|
|
456
456
|
return t;
|
|
457
457
|
throw new Error("useHttpClient must be used within a HttpClientProvider");
|
|
@@ -463,7 +463,7 @@ const D = `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:
|
|
|
463
463
|
SaveTemplate: "/Template/save-update/",
|
|
464
464
|
TemplateTypes: "/Template/TemplateTypes/"
|
|
465
465
|
}, Te = () => {
|
|
466
|
-
const t = A(), { enerexIdentifier: r, projectId: i } =
|
|
466
|
+
const t = A(), { enerexIdentifier: r, projectId: i } = v();
|
|
467
467
|
return O({
|
|
468
468
|
queryKey: ["getTemplateTags"],
|
|
469
469
|
queryFn: async (n) => await t.get(
|
|
@@ -471,7 +471,7 @@ const D = `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:
|
|
|
471
471
|
)
|
|
472
472
|
});
|
|
473
473
|
}, ve = () => {
|
|
474
|
-
const t = A(), { enerexIdentifier: r, projectId: i } =
|
|
474
|
+
const t = A(), { enerexIdentifier: r, projectId: i } = v();
|
|
475
475
|
return O({
|
|
476
476
|
queryKey: ["getExcludeCategory"],
|
|
477
477
|
queryFn: async (n) => await t.get(
|
|
@@ -483,9 +483,9 @@ const D = `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:
|
|
|
483
483
|
className: r = "",
|
|
484
484
|
loading: i = !1
|
|
485
485
|
}) => {
|
|
486
|
-
const { post: l } =
|
|
486
|
+
const { post: l } = ne(), { data: n } = Te(), { data: e } = ve(), [a, o] = S(
|
|
487
487
|
t ?? { html: D, css: "" }
|
|
488
|
-
), { enerexIdentifier: p, projectId:
|
|
488
|
+
), { enerexIdentifier: p, projectId: y, userName: f } = v(), h = "https://plugin.stripocdn.email/content/guids/CABINET_eab4e7d5a4603ac03f4120652a3a5a540f0c79c688514939f095f67433ed4a67/images/photo256.png", b = "https://plugins.stripo.email/api/v1/auth";
|
|
489
489
|
_(() => {
|
|
490
490
|
if (n && e && !document.getElementById("UiEditorScript")) {
|
|
491
491
|
const u = document.createElement("script");
|
|
@@ -501,10 +501,10 @@ const D = `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:
|
|
|
501
501
|
modulesExcludedCategories: e ?? [],
|
|
502
502
|
forceRecreate: !0,
|
|
503
503
|
metadata: {
|
|
504
|
-
emailId: `${
|
|
504
|
+
emailId: `${y}_${p}`,
|
|
505
505
|
userId: "1",
|
|
506
506
|
username: f,
|
|
507
|
-
avatarUrl:
|
|
507
|
+
avatarUrl: h
|
|
508
508
|
},
|
|
509
509
|
locale: "en",
|
|
510
510
|
onTokenRefreshRequest: async function(u) {
|
|
@@ -513,7 +513,7 @@ const D = `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:
|
|
|
513
513
|
secretKey: k.EDITOR_SECRET_KEY,
|
|
514
514
|
userId: "12",
|
|
515
515
|
role: "user"
|
|
516
|
-
}, g = await l(
|
|
516
|
+
}, g = await l(b, c);
|
|
517
517
|
g && u(g.token);
|
|
518
518
|
},
|
|
519
519
|
codeEditorButtonSelector: "#codeEditor",
|
|
@@ -525,7 +525,7 @@ const D = `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:
|
|
|
525
525
|
}
|
|
526
526
|
);
|
|
527
527
|
};
|
|
528
|
-
return /* @__PURE__ */ s("div", { className: "position-relative", children: /* @__PURE__ */
|
|
528
|
+
return /* @__PURE__ */ s("div", { className: "position-relative", children: /* @__PURE__ */ T("div", { className: `editor-container ${r}`, children: [
|
|
529
529
|
i && /* @__PURE__ */ s("div", { className: "loading-overlay", children: /* @__PURE__ */ s(
|
|
530
530
|
U,
|
|
531
531
|
{
|
|
@@ -539,7 +539,7 @@ const D = `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:
|
|
|
539
539
|
/* @__PURE__ */ s("div", { id: "externalSystemContainer" }),
|
|
540
540
|
/* @__PURE__ */ s("div", { id: "stripoEditorContainer" })
|
|
541
541
|
] }) });
|
|
542
|
-
},
|
|
542
|
+
}, Q = ({
|
|
543
543
|
label: t,
|
|
544
544
|
register: r,
|
|
545
545
|
validation: i,
|
|
@@ -548,8 +548,8 @@ const D = `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:
|
|
|
548
548
|
error: e,
|
|
549
549
|
className: a = "",
|
|
550
550
|
...o
|
|
551
|
-
}) => /* @__PURE__ */
|
|
552
|
-
t ? /* @__PURE__ */
|
|
551
|
+
}) => /* @__PURE__ */ T(E.Group, { className: a + " mb-1", children: [
|
|
552
|
+
t ? /* @__PURE__ */ T(E.Label, { className: "mb-3 d-block form-label", children: [
|
|
553
553
|
t,
|
|
554
554
|
l && /* @__PURE__ */ s("label", { className: "text-danger", children: "*" })
|
|
555
555
|
] }) : null,
|
|
@@ -568,7 +568,7 @@ const D = `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:
|
|
|
568
568
|
),
|
|
569
569
|
e && e[n] ? /* @__PURE__ */ s(E.Control.Feedback, { type: "invalid", children: e[n].message }) : null
|
|
570
570
|
] }), Ce = () => {
|
|
571
|
-
const t = A(), { enerexIdentifier: r, projectId: i } =
|
|
571
|
+
const t = A(), { enerexIdentifier: r, projectId: i } = v();
|
|
572
572
|
return O({
|
|
573
573
|
queryKey: ["getTemplatesList"],
|
|
574
574
|
queryFn: async (n) => await t.get(
|
|
@@ -576,8 +576,8 @@ const D = `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:
|
|
|
576
576
|
)
|
|
577
577
|
});
|
|
578
578
|
}, Ie = () => {
|
|
579
|
-
const t = A(), { enerexIdentifier: r, projectId: i } =
|
|
580
|
-
return
|
|
579
|
+
const t = A(), { enerexIdentifier: r, projectId: i } = v();
|
|
580
|
+
return ee({
|
|
581
581
|
mutationKey: ["getTemplate"],
|
|
582
582
|
mutationFn: async ({ id: n }) => {
|
|
583
583
|
if (n)
|
|
@@ -587,7 +587,7 @@ const D = `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:
|
|
|
587
587
|
}
|
|
588
588
|
});
|
|
589
589
|
}, Se = () => {
|
|
590
|
-
const t = A(), { enerexIdentifier: r, projectId: i } =
|
|
590
|
+
const t = A(), { enerexIdentifier: r, projectId: i } = v();
|
|
591
591
|
return O({
|
|
592
592
|
queryKey: ["getTemplateTypes"],
|
|
593
593
|
queryFn: async (n) => await t.get(
|
|
@@ -604,9 +604,9 @@ var B = { exports: {} };
|
|
|
604
604
|
Licensed under the MIT License (MIT), see
|
|
605
605
|
http://jedwatson.github.io/classnames
|
|
606
606
|
*/
|
|
607
|
-
var
|
|
607
|
+
var W;
|
|
608
608
|
function Ne() {
|
|
609
|
-
return
|
|
609
|
+
return W || (W = 1, function(t) {
|
|
610
610
|
(function() {
|
|
611
611
|
var r = {}.hasOwnProperty;
|
|
612
612
|
function i() {
|
|
@@ -638,7 +638,7 @@ function Ne() {
|
|
|
638
638
|
}(B)), B.exports;
|
|
639
639
|
}
|
|
640
640
|
var _e = Ne();
|
|
641
|
-
const
|
|
641
|
+
const Y = /* @__PURE__ */ Ee(_e), Ae = ({
|
|
642
642
|
name: t = "",
|
|
643
643
|
control: r,
|
|
644
644
|
options: i,
|
|
@@ -648,10 +648,10 @@ const J = /* @__PURE__ */ Ee(_e), Ae = ({
|
|
|
648
648
|
labelKey: a = "name",
|
|
649
649
|
disabled: o,
|
|
650
650
|
isInvalid: p,
|
|
651
|
-
value:
|
|
651
|
+
value: y,
|
|
652
652
|
onChange: f,
|
|
653
|
-
uncontrolled:
|
|
654
|
-
menuPlacement:
|
|
653
|
+
uncontrolled: h,
|
|
654
|
+
menuPlacement: b = "auto",
|
|
655
655
|
closeOnSelect: m = !0
|
|
656
656
|
}) => {
|
|
657
657
|
const u = {
|
|
@@ -692,10 +692,10 @@ const J = /* @__PURE__ */ Ee(_e), Ae = ({
|
|
|
692
692
|
display: o ? "none" : "block"
|
|
693
693
|
})
|
|
694
694
|
};
|
|
695
|
-
return
|
|
696
|
-
|
|
695
|
+
return h ? /* @__PURE__ */ s(
|
|
696
|
+
G,
|
|
697
697
|
{
|
|
698
|
-
className:
|
|
698
|
+
className: Y({
|
|
699
699
|
"is-invalid": p
|
|
700
700
|
}),
|
|
701
701
|
styles: u,
|
|
@@ -705,11 +705,11 @@ const J = /* @__PURE__ */ Ee(_e), Ae = ({
|
|
|
705
705
|
onChange: f,
|
|
706
706
|
placeholder: n,
|
|
707
707
|
menuPortalTarget: document.body,
|
|
708
|
-
value:
|
|
708
|
+
value: y,
|
|
709
709
|
getOptionLabel: typeof a == "string" ? (c) => c[a] : a,
|
|
710
710
|
getOptionValue: (c) => c.id,
|
|
711
711
|
isDisabled: o,
|
|
712
|
-
menuPlacement:
|
|
712
|
+
menuPlacement: b,
|
|
713
713
|
closeMenuOnSelect: m
|
|
714
714
|
}
|
|
715
715
|
) : /* @__PURE__ */ s(
|
|
@@ -718,40 +718,40 @@ const J = /* @__PURE__ */ Ee(_e), Ae = ({
|
|
|
718
718
|
control: r,
|
|
719
719
|
name: t,
|
|
720
720
|
rules: e,
|
|
721
|
-
render: ({ field: { onChange: c, value: g, onBlur:
|
|
722
|
-
|
|
721
|
+
render: ({ field: { onChange: c, value: g, onBlur: L } }) => /* @__PURE__ */ s(
|
|
722
|
+
G,
|
|
723
723
|
{
|
|
724
|
-
className:
|
|
724
|
+
className: Y({
|
|
725
725
|
"is-invalid": p
|
|
726
726
|
}),
|
|
727
727
|
styles: u,
|
|
728
728
|
classNamePrefix: "react-select",
|
|
729
729
|
isMulti: l,
|
|
730
730
|
options: i,
|
|
731
|
-
onBlur:
|
|
731
|
+
onBlur: L,
|
|
732
732
|
onChange: c,
|
|
733
733
|
placeholder: n,
|
|
734
734
|
menuPortalTarget: document.body,
|
|
735
735
|
value: g,
|
|
736
|
-
getOptionLabel: typeof a == "string" ? (
|
|
737
|
-
getOptionValue: (
|
|
736
|
+
getOptionLabel: typeof a == "string" ? (w) => w[a] : a,
|
|
737
|
+
getOptionValue: (w) => w.id,
|
|
738
738
|
isDisabled: o,
|
|
739
|
-
menuPlacement:
|
|
739
|
+
menuPlacement: b,
|
|
740
740
|
closeMenuOnSelect: m
|
|
741
741
|
},
|
|
742
742
|
g ? JSON.stringify(g) : "reset"
|
|
743
743
|
)
|
|
744
744
|
}
|
|
745
745
|
);
|
|
746
|
-
},
|
|
746
|
+
}, X = ({
|
|
747
747
|
label: t,
|
|
748
748
|
name: r,
|
|
749
749
|
validation: i,
|
|
750
750
|
control: l,
|
|
751
751
|
error: n,
|
|
752
752
|
...e
|
|
753
|
-
}) => /* @__PURE__ */
|
|
754
|
-
t && /* @__PURE__ */
|
|
753
|
+
}) => /* @__PURE__ */ T(E.Group, { className: "mb-1", children: [
|
|
754
|
+
t && /* @__PURE__ */ T(E.Label, { className: "mb-3 d-block form-label", children: [
|
|
755
755
|
t,
|
|
756
756
|
" ",
|
|
757
757
|
e.required && /* @__PURE__ */ s("span", { className: "text-danger", children: "*" })
|
|
@@ -769,16 +769,16 @@ const J = /* @__PURE__ */ Ee(_e), Ae = ({
|
|
|
769
769
|
n && n[r] ? /* @__PURE__ */ s(E.Control.Feedback, { type: "invalid", children: n[r].message }) : null
|
|
770
770
|
] }), Pe = () => {
|
|
771
771
|
const t = A();
|
|
772
|
-
|
|
773
|
-
const { enerexIdentifier: r, projectId: i } =
|
|
774
|
-
return
|
|
772
|
+
me();
|
|
773
|
+
const { enerexIdentifier: r, projectId: i } = v();
|
|
774
|
+
return ee({
|
|
775
775
|
mutationKey: ["saveTemplate"],
|
|
776
776
|
mutationFn: async (n) => (n.enerexIdentifier = r ?? "", n.projectId = i ?? "", await t.post(
|
|
777
777
|
`${P.SaveTemplate}`,
|
|
778
778
|
n
|
|
779
779
|
))
|
|
780
780
|
});
|
|
781
|
-
},
|
|
781
|
+
}, J = { id: "", name: "New (Blank)" }, je = ({
|
|
782
782
|
onSelectItem: t,
|
|
783
783
|
templateLoading: r,
|
|
784
784
|
onReset: i
|
|
@@ -790,24 +790,24 @@ const J = /* @__PURE__ */ Ee(_e), Ae = ({
|
|
|
790
790
|
setValue: a,
|
|
791
791
|
control: o,
|
|
792
792
|
watch: p,
|
|
793
|
-
reset:
|
|
793
|
+
reset: y,
|
|
794
794
|
formState: { errors: f }
|
|
795
795
|
} = fe({
|
|
796
796
|
defaultValues: {
|
|
797
797
|
templateName: "",
|
|
798
798
|
subject: "",
|
|
799
799
|
templateType: void 0,
|
|
800
|
-
template:
|
|
800
|
+
template: J
|
|
801
801
|
},
|
|
802
802
|
mode: "onChange"
|
|
803
803
|
}), {
|
|
804
|
-
data:
|
|
805
|
-
refetch:
|
|
804
|
+
data: h,
|
|
805
|
+
refetch: b,
|
|
806
806
|
isLoading: m
|
|
807
|
-
} = Ce(), [u, c] = S([]), [g,
|
|
807
|
+
} = Ce(), [u, c] = S([]), [g, L] = S(), [w, H] = S(), { mutateAsync: se, isPending: N } = Ie(), { mutateAsync: ie, isPending: R } = Pe(), { data: j, isLoading: M } = Se(), [F, ae] = S([]);
|
|
808
808
|
_(() => {
|
|
809
|
-
j &&
|
|
810
|
-
j.map((d) => ({
|
|
809
|
+
j && ae(
|
|
810
|
+
j.filter((d) => d.id !== void 0).map((d) => ({
|
|
811
811
|
id: `${d.id}`,
|
|
812
812
|
name: d.name
|
|
813
813
|
}))
|
|
@@ -815,32 +815,32 @@ const J = /* @__PURE__ */ Ee(_e), Ae = ({
|
|
|
815
815
|
}, [j]), _(() => {
|
|
816
816
|
r(!!N);
|
|
817
817
|
}, [N]), _(() => {
|
|
818
|
-
c(
|
|
819
|
-
}, [
|
|
820
|
-
const
|
|
821
|
-
if (
|
|
818
|
+
c(h ?? []);
|
|
819
|
+
}, [h]);
|
|
820
|
+
const le = async (d) => {
|
|
821
|
+
if (L(d), d) {
|
|
822
822
|
if (a("templateName", d?.name), j && j.find((C) => C.id === d.type)) {
|
|
823
|
-
const C = F.find((
|
|
823
|
+
const C = F.find((q) => q.id === `${d.type}`);
|
|
824
824
|
C && a("templateType", C);
|
|
825
|
-
}
|
|
826
|
-
a("templateType", void 0);
|
|
825
|
+
}
|
|
827
826
|
e();
|
|
828
|
-
}
|
|
829
|
-
|
|
827
|
+
} else
|
|
828
|
+
a("templateName", ""), a("subject", "");
|
|
829
|
+
const x = await se({ id: d?.id });
|
|
830
830
|
H(x || void 0);
|
|
831
831
|
};
|
|
832
832
|
_(() => {
|
|
833
833
|
let d = u.find((x) => x.id === p("template")?.id);
|
|
834
|
-
|
|
834
|
+
le(d);
|
|
835
835
|
}, [p("template")]), _(() => {
|
|
836
|
-
|
|
837
|
-
}, [
|
|
838
|
-
const
|
|
836
|
+
w && g ? (t(w), a("subject", w.subject ?? "")) : t(void 0);
|
|
837
|
+
}, [w, g, t]);
|
|
838
|
+
const oe = (d) => {
|
|
839
839
|
window.StripoEditorApi.actionsApi.getTemplateData(
|
|
840
840
|
async (x) => {
|
|
841
|
-
let C = d.template.id,
|
|
842
|
-
g?.
|
|
843
|
-
const
|
|
841
|
+
let C = d.template.id, q = "";
|
|
842
|
+
g?.readonly && (C = "", q = d.template.id);
|
|
843
|
+
const de = {
|
|
844
844
|
enerexIdentifier: "",
|
|
845
845
|
projectId: "",
|
|
846
846
|
templateId: C,
|
|
@@ -848,134 +848,124 @@ const J = /* @__PURE__ */ Ee(_e), Ae = ({
|
|
|
848
848
|
name: d.templateName,
|
|
849
849
|
html: x.html,
|
|
850
850
|
css: x.css,
|
|
851
|
-
subject: d?.subject ?? "",
|
|
852
|
-
parent_id:
|
|
851
|
+
subject: d.templateType.id === "2" ? d?.subject ?? "" : "",
|
|
852
|
+
parent_id: q
|
|
853
853
|
};
|
|
854
|
-
|
|
854
|
+
await ie(de) && (e(), y(), b());
|
|
855
855
|
}
|
|
856
856
|
);
|
|
857
857
|
};
|
|
858
|
-
return /* @__PURE__ */ s(
|
|
859
|
-
/* @__PURE__ */
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
message: "Template Name is required"
|
|
908
|
-
}
|
|
858
|
+
return /* @__PURE__ */ s(K, { className: "border border-0 text-start", children: /* @__PURE__ */ s(K.Body, { className: "pe-0 ps-2", children: /* @__PURE__ */ s("form", { onSubmit: n(oe), children: /* @__PURE__ */ s("div", { className: "template-list-container gap-3", children: /* @__PURE__ */ T(ue, { children: [
|
|
859
|
+
/* @__PURE__ */ s($, { children: /* @__PURE__ */ s(
|
|
860
|
+
X,
|
|
861
|
+
{
|
|
862
|
+
label: "Type",
|
|
863
|
+
control: o,
|
|
864
|
+
error: f,
|
|
865
|
+
options: F,
|
|
866
|
+
required: !0,
|
|
867
|
+
validation: {
|
|
868
|
+
required: {
|
|
869
|
+
value: !0,
|
|
870
|
+
message: "Select a type"
|
|
871
|
+
}
|
|
872
|
+
},
|
|
873
|
+
...l("templateType")
|
|
874
|
+
}
|
|
875
|
+
) }),
|
|
876
|
+
/* @__PURE__ */ s($, { children: /* @__PURE__ */ s(
|
|
877
|
+
X,
|
|
878
|
+
{
|
|
879
|
+
label: "Template",
|
|
880
|
+
control: o,
|
|
881
|
+
error: f,
|
|
882
|
+
options: [
|
|
883
|
+
J,
|
|
884
|
+
...u.filter(
|
|
885
|
+
(d) => (d.type?.toString() === p("templateType")?.id || d.type === null) && p("templateType")?.id != null
|
|
886
|
+
).map((d) => ({
|
|
887
|
+
id: d.id,
|
|
888
|
+
name: d.name
|
|
889
|
+
}))
|
|
890
|
+
],
|
|
891
|
+
required: !1,
|
|
892
|
+
...l("template")
|
|
893
|
+
}
|
|
894
|
+
) }),
|
|
895
|
+
/* @__PURE__ */ s($, { children: /* @__PURE__ */ s(
|
|
896
|
+
Q,
|
|
897
|
+
{
|
|
898
|
+
label: "Name",
|
|
899
|
+
register: l,
|
|
900
|
+
error: f,
|
|
901
|
+
required: !0,
|
|
902
|
+
name: "templateName",
|
|
903
|
+
validation: {
|
|
904
|
+
required: {
|
|
905
|
+
value: !0,
|
|
906
|
+
message: "Enter a name"
|
|
909
907
|
}
|
|
910
908
|
}
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
md: 3,
|
|
916
|
-
className: "d-flex align-items-end justify-content-end gap-2 mb-3",
|
|
917
|
-
children: [
|
|
918
|
-
/* @__PURE__ */ s(
|
|
919
|
-
Q,
|
|
920
|
-
{
|
|
921
|
-
style: { width: "70px" },
|
|
922
|
-
variant: "primary",
|
|
923
|
-
disabled: m || N || L || M,
|
|
924
|
-
onClick: () => {
|
|
925
|
-
$(void 0), h(), i();
|
|
926
|
-
},
|
|
927
|
-
children: N || L ? /* @__PURE__ */ s(
|
|
928
|
-
U,
|
|
929
|
-
{
|
|
930
|
-
animation: "border",
|
|
931
|
-
style: { width: "11px", height: "11px" },
|
|
932
|
-
size: "sm",
|
|
933
|
-
role: "status",
|
|
934
|
-
className: "me-1",
|
|
935
|
-
children: /* @__PURE__ */ s("span", { className: "visually-hidden", children: "Loading..." })
|
|
936
|
-
}
|
|
937
|
-
) : "Clear"
|
|
938
|
-
}
|
|
939
|
-
),
|
|
940
|
-
/* @__PURE__ */ s(
|
|
941
|
-
Q,
|
|
942
|
-
{
|
|
943
|
-
type: "submit",
|
|
944
|
-
variant: "primary",
|
|
945
|
-
style: { width: "80px" },
|
|
946
|
-
disabled: m || N || L || M,
|
|
947
|
-
children: N || L ? /* @__PURE__ */ s(
|
|
948
|
-
U,
|
|
949
|
-
{
|
|
950
|
-
animation: "border",
|
|
951
|
-
style: { width: "11px", height: "11px" },
|
|
952
|
-
size: "sm",
|
|
953
|
-
role: "status",
|
|
954
|
-
className: "me-1",
|
|
955
|
-
children: /* @__PURE__ */ s("span", { className: "visually-hidden", children: "Loading..." })
|
|
956
|
-
}
|
|
957
|
-
) : (g?.id ?? "") === "" ? "Save" : (g?.projectId ?? "") === 0 ? "Save as" : "Save"
|
|
958
|
-
}
|
|
959
|
-
)
|
|
960
|
-
]
|
|
961
|
-
}
|
|
962
|
-
)
|
|
963
|
-
] }),
|
|
964
|
-
p("templateType")?.id === "2" && /* @__PURE__ */ s(G, { children: /* @__PURE__ */ s(q, { md: 12, children: /* @__PURE__ */ s(
|
|
965
|
-
Y,
|
|
909
|
+
}
|
|
910
|
+
) }),
|
|
911
|
+
p("templateType")?.id === "2" && /* @__PURE__ */ s($, { children: /* @__PURE__ */ s(
|
|
912
|
+
Q,
|
|
966
913
|
{
|
|
967
|
-
className: "mt-3",
|
|
968
914
|
label: "Subject",
|
|
969
915
|
register: l,
|
|
970
916
|
error: f,
|
|
971
917
|
required: !1,
|
|
972
918
|
name: "subject"
|
|
973
919
|
}
|
|
974
|
-
) })
|
|
975
|
-
|
|
920
|
+
) }),
|
|
921
|
+
/* @__PURE__ */ T($, { className: "d-flex align-items-end justify-content-end gap-2 mb-3", children: [
|
|
922
|
+
/* @__PURE__ */ s(
|
|
923
|
+
z,
|
|
924
|
+
{
|
|
925
|
+
style: { width: "70px" },
|
|
926
|
+
variant: "primary",
|
|
927
|
+
disabled: m || N || R || M,
|
|
928
|
+
onClick: () => {
|
|
929
|
+
L(void 0), y(), i();
|
|
930
|
+
},
|
|
931
|
+
children: N || R ? /* @__PURE__ */ s(
|
|
932
|
+
U,
|
|
933
|
+
{
|
|
934
|
+
animation: "border",
|
|
935
|
+
style: { width: "11px", height: "11px" },
|
|
936
|
+
size: "sm",
|
|
937
|
+
role: "status",
|
|
938
|
+
className: "me-1",
|
|
939
|
+
children: /* @__PURE__ */ s("span", { className: "visually-hidden", children: "Loading..." })
|
|
940
|
+
}
|
|
941
|
+
) : "Clear"
|
|
942
|
+
}
|
|
943
|
+
),
|
|
944
|
+
(p("templateType")?.id !== "2" || (g?.id ?? "") !== "") && /* @__PURE__ */ s(
|
|
945
|
+
z,
|
|
946
|
+
{
|
|
947
|
+
type: "submit",
|
|
948
|
+
variant: "primary",
|
|
949
|
+
style: { width: "80px" },
|
|
950
|
+
disabled: m || N || R || M,
|
|
951
|
+
children: N || R ? /* @__PURE__ */ s(
|
|
952
|
+
U,
|
|
953
|
+
{
|
|
954
|
+
animation: "border",
|
|
955
|
+
style: { width: "11px", height: "11px" },
|
|
956
|
+
size: "sm",
|
|
957
|
+
role: "status",
|
|
958
|
+
className: "me-1",
|
|
959
|
+
children: /* @__PURE__ */ s("span", { className: "visually-hidden", children: "Loading..." })
|
|
960
|
+
}
|
|
961
|
+
) : g?.readonly ? "Save as" : "Save"
|
|
962
|
+
}
|
|
963
|
+
)
|
|
964
|
+
] })
|
|
965
|
+
] }) }) }) }) });
|
|
976
966
|
}, Ue = ({ config: t }) => {
|
|
977
967
|
const [r, i] = S(), [l, n] = S(!1);
|
|
978
|
-
return /* @__PURE__ */ s(ye, { configs: t, children: /* @__PURE__ */ s(be, { children: /* @__PURE__ */
|
|
968
|
+
return /* @__PURE__ */ s(ye, { configs: t, children: /* @__PURE__ */ s(be, { children: /* @__PURE__ */ T("div", { className: "root-widget", children: [
|
|
979
969
|
/* @__PURE__ */ s(
|
|
980
970
|
je,
|
|
981
971
|
{
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(f,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("react/jsx-runtime"),require("react"),require("@tanstack/react-query"),require("axios"),require("react-bootstrap"),require("react-hook-form"),require("react-select")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react","@tanstack/react-query","axios","react-bootstrap","react-hook-form","react-select"],n):(f=typeof globalThis<"u"?globalThis:f||self,n(f.EnerexTemplateEditor={},f.jsxRuntime,f.React,f.reactQuery,f.axios,f.reactBootstrap,f.reactHookForm,f.Select$1))})(this,function(f,n,c,w,O,p,F,M){"use strict";const
|
|
1
|
+
(function(f,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("react/jsx-runtime"),require("react"),require("@tanstack/react-query"),require("axios"),require("react-bootstrap"),require("react-hook-form"),require("react-select")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react","@tanstack/react-query","axios","react-bootstrap","react-hook-form","react-select"],n):(f=typeof globalThis<"u"?globalThis:f||self,n(f.EnerexTemplateEditor={},f.jsxRuntime,f.React,f.reactQuery,f.axios,f.reactBootstrap,f.reactHookForm,f.Select$1))})(this,function(f,n,c,w,O,p,F,M){"use strict";const P=`<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\r
|
|
2
2
|
<html\r
|
|
3
3
|
dir="ltr"\r
|
|
4
4
|
xmlns:o="urn:schemas-microsoft-com:office:office"\r
|
|
@@ -354,8 +354,8 @@
|
|
|
354
354
|
</div>\r
|
|
355
355
|
</body>\r
|
|
356
356
|
</html>\r
|
|
357
|
-
`,U=c.createContext(void 0),
|
|
357
|
+
`,U=c.createContext(void 0),Q=({children:t,configs:s})=>{const[l,o]=c.useState(s.clientId),[r,e]=c.useState(s.apiKey),[i,a]=c.useState(s.enerexIdentifier),[u,v]=c.useState(s.userName),[b,x]=c.useState(s.projectId),C=g=>{e(g.apiKey),o(g.clientId),x(g.projectId),a(g.enerexIdentifier),v(g.userName)};return n.jsx(U.Provider,{value:{clientId:l,apiKey:r,setConfiguration:C,enerexIdentifier:i,projectId:b,userName:u},children:t})},T=()=>{const t=c.useContext(U);if(!t)throw new Error("widgetConfig must be used within a ConfigProvider");return t},H=(t="",s)=>({get:async(r,e)=>{try{const i=await O.get(`${t}${r}`,e??s);if(i.status===200)return i.data}catch(i){throw i}},post:async(r,e,i)=>{try{const a=await O.post(`${t}${r}`,e,i??s);if(a.status===200)return a.data}catch(a){throw a}}}),A={EDITOR_SCRIPT_URL:"https://plugins.stripo.email/resources/uieditor/latest/UIEditor.js",EDITOR_PLUGIN_ID:"1afdc3161ec7409a8627a1c8561d45f5",EDITOR_SECRET_KEY:"54ba748ed7e94f2e929555783acb03da",API_BASE_URL:"https://dev-socket.enerex.com/common/api"},V=c.createContext({get:()=>{throw new Error("HttpClientContext.get not implemented")},post:()=>{throw new Error("HttpClientContext.post not implemented")}}),Z=({children:t})=>{const{clientId:s,apiKey:l}=T(),o={headers:{client_id:s,"x-api-key":l}},{get:r,post:e}=H(A.API_BASE_URL,o);return n.jsx(V.Provider,{value:{get:r,post:e},children:t})},R=({children:t})=>{const s=new w.QueryClient;return n.jsx(Z,{children:n.jsx(w.QueryClientProvider,{client:s,children:t})})},ee=t=>{const s=Array.from(new Set(t.map(o=>o.category))),l=[];return s.forEach(o=>{const r=t.filter(e=>e.category===o).map(e=>({label:e.label,value:e.value,hint:e.hint,hidden:e.hidden}));l.push({category:o,entries:r})}),l},N=()=>{const t=c.useContext(V);if(t)return t;throw new Error("useHttpClient must be used within a HttpClientProvider")},_={Template_list:"/Template/list/",Template:"/Template/GetTemplate/",MergeTags:"/Template/TemplateMergeTags/",ExcludeCategory:"/Template/GetExcludeCategories/",SaveTemplate:"/Template/save-update/",TemplateTypes:"/Template/TemplateTypes/"},te=()=>{const t=N(),{enerexIdentifier:s,projectId:l}=T();return w.useQuery({queryKey:["getTemplateTags"],queryFn:async r=>await t.get(`${_.MergeTags}${l}/${s}`)})},ne=()=>{const t=N(),{enerexIdentifier:s,projectId:l}=T();return w.useQuery({queryKey:["getExcludeCategory"],queryFn:async r=>await t.get(`${_.ExcludeCategory}${l}/${s}`)})},re=({templateHTML:t,className:s="",loading:l=!1})=>{const{post:o}=H(),{data:r}=te(),{data:e}=ne(),[i,a]=c.useState(t??{html:P,css:""}),{enerexIdentifier:u,projectId:v,userName:b}=T(),x="https://plugin.stripocdn.email/content/guids/CABINET_eab4e7d5a4603ac03f4120652a3a5a540f0c79c688514939f095f67433ed4a67/images/photo256.png",C="https://plugins.stripo.email/api/v1/auth";c.useEffect(()=>{if(r&&e&&!document.getElementById("UiEditorScript")){const y=document.createElement("script");y.id="UiEditorScript",y.type="module",y.src=A.EDITOR_SCRIPT_URL,y.onload=g,document.body.appendChild(y)}},[r,e]);const g=async()=>{window.UIEditor.initEditor(document.querySelector("#stripoEditorContainer"),{html:i.html,css:i.css,modulesExcludedCategories:e??[],forceRecreate:!0,metadata:{emailId:`${v}_${u}`,userId:"1",username:b,avatarUrl:x},locale:"en",onTokenRefreshRequest:async function(y){const m={pluginId:A.EDITOR_PLUGIN_ID,secretKey:A.EDITOR_SECRET_KEY,userId:"12",role:"user"},h=await o(C,m);h&&y(h.token)},codeEditorButtonSelector:"#codeEditor",undoButtonSelector:"#undoButton",redoButtonSelector:"#redoButton",mobileViewButtonSelector:"#mobileViewButton",desktopViewButtonSelector:"#desktopViewButton",mergeTags:ee(r??[])})};return n.jsx("div",{className:"position-relative",children:n.jsxs("div",{className:`editor-container ${s}`,children:[l&&n.jsx("div",{className:"loading-overlay",children:n.jsx(p.Spinner,{animation:"border",style:{width:"11px",height:"11px"},size:"sm",role:"status",className:"me-1"})}),n.jsx("div",{id:"externalSystemContainer"}),n.jsx("div",{id:"stripoEditorContainer"})]})})},K=({label:t,register:s,validation:l,required:o=!1,name:r,error:e,className:i="",...a})=>n.jsxs(p.Form.Group,{className:i+" mb-1",children:[t?n.jsxs(p.Form.Label,{className:"mb-3 d-block form-label",children:[t,o&&n.jsx("label",{className:"text-danger",children:"*"})]}):null,n.jsx(p.Form.Control,{name:r,type:"text",...a,isInvalid:!!(e&&e[r]),...s?s(r,{...l}):{},className:`react-select__control ${e&&e[r]&&"border border-danger"}`}),e&&e[r]?n.jsx(p.Form.Control.Feedback,{type:"invalid",children:e[r].message}):null]}),se=()=>{const t=N(),{enerexIdentifier:s,projectId:l}=T();return w.useQuery({queryKey:["getTemplatesList"],queryFn:async r=>await t.get(`${_.Template_list}${l}/${s}`)})},ie=()=>{const t=N(),{enerexIdentifier:s,projectId:l}=T();return w.useMutation({mutationKey:["getTemplate"],mutationFn:async({id:r})=>{if(r)return await t.get(`${_.Template}${s}/${r}/${l}`)}})},le=()=>{const t=N(),{enerexIdentifier:s,projectId:l}=T();return w.useQuery({queryKey:["getTemplateTypes"],queryFn:async r=>await t.get(`${_.TemplateTypes}${s}/${l}`)})};function oe(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var D={exports:{}};/*!
|
|
358
358
|
Copyright (c) 2018 Jed Watson.
|
|
359
359
|
Licensed under the MIT License (MIT), see
|
|
360
360
|
http://jedwatson.github.io/classnames
|
|
361
|
-
*/var z;function
|
|
361
|
+
*/var z;function ae(){return z||(z=1,function(t){(function(){var s={}.hasOwnProperty;function l(){for(var e="",i=0;i<arguments.length;i++){var a=arguments[i];a&&(e=r(e,o(a)))}return e}function o(e){if(typeof e=="string"||typeof e=="number")return e;if(typeof e!="object")return"";if(Array.isArray(e))return l.apply(null,e);if(e.toString!==Object.prototype.toString&&!e.toString.toString().includes("[native code]"))return e.toString();var i="";for(var a in e)s.call(e,a)&&e[a]&&(i=r(i,a));return i}function r(e,i){return i?e?e+" "+i:e+i:e}t.exports?(l.default=l,t.exports=l):window.classNames=l})()}(D)),D.exports}var de=ae();const G=oe(de),ce=({name:t="",control:s,options:l,multiple:o=!1,placeholder:r,validation:e,labelKey:i="name",disabled:a,isInvalid:u,value:v,onChange:b,uncontrolled:x,menuPlacement:C="auto",closeOnSelect:g=!0})=>{const y={control:m=>({...m,minHeight:"33px",borderColor:u?"var(--bs-form-invalid-border-color) !important":"var(--ct-input-border-color)",backgroundImage:u?'url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 12 12%27 width=%2712%27 height=%2712%27 fill=%27none%27 stroke=%27%23fa5c7c%27%3e%3ccircle cx=%276%27 cy=%276%27 r=%274.5%27/%3e%3cpath stroke-linejoin=%27round%27 d=%27M5.8 3.6h.4L6 6.5z%27/%3e%3ccircle cx=%276%27 cy=%278.2%27 r=%27.6%27 fill=%27%23fa5c7c%27 stroke=%27none%27/%3e%3c/svg%3e")':"none",backgroundRepeat:"no-repeat",backgroundPosition:"right calc(0.375em + 0.225rem) center",backgroundSize:"calc(0.75em + 0.45rem) calc(0.75em + 0.45rem)","&:hover":{borderColor:u?"var(--bs-form-invalid-border-color)":"var(--ct-input-border-color)"},"& .react-select__single-value":{color:"var(--ct-input-color) !important"},"& .react-select__placeholder":{color:"var(--ct-input-placeholder-color) !important"},"& .react-select__indicators":{display:"none"}}),menu:m=>({...m,marginTop:0,width:"max-content",minWidth:"100%"}),menuPortal:m=>({...m,zIndex:9999}),multiValueRemove:m=>({...m,display:a?"none":"block"})};return x?n.jsx(M,{className:G({"is-invalid":u}),styles:y,classNamePrefix:"react-select",isMulti:o,options:l,onChange:b,placeholder:r,menuPortalTarget:document.body,value:v,getOptionLabel:typeof i=="string"?m=>m[i]:i,getOptionValue:m=>m.id,isDisabled:a,menuPlacement:C,closeMenuOnSelect:g}):n.jsx(F.Controller,{control:s,name:t,rules:e,render:({field:{onChange:m,value:h,onBlur:L}})=>n.jsx(M,{className:G({"is-invalid":u}),styles:y,classNamePrefix:"react-select",isMulti:o,options:l,onBlur:L,onChange:m,placeholder:r,menuPortalTarget:document.body,value:h,getOptionLabel:typeof i=="string"?S=>S[i]:i,getOptionValue:S=>S.id,isDisabled:a,menuPlacement:C,closeMenuOnSelect:g},h?JSON.stringify(h):"reset")})},W=({label:t,name:s,validation:l,control:o,error:r,...e})=>n.jsxs(p.Form.Group,{className:"mb-1",children:[t&&n.jsxs(p.Form.Label,{className:"mb-3 d-block form-label",children:[t," ",e.required&&n.jsx("span",{className:"text-danger",children:"*"})]}),n.jsx(ce,{control:o,options:e.options??[],validation:l,isInvalid:r&&!!r[s],name:s}),r&&r[s]?n.jsx(p.Form.Control.Feedback,{type:"invalid",children:r[s].message}):null]}),pe=()=>{const t=N();w.useQueryClient();const{enerexIdentifier:s,projectId:l}=T();return w.useMutation({mutationKey:["saveTemplate"],mutationFn:async r=>(r.enerexIdentifier=s??"",r.projectId=l??"",await t.post(`${_.SaveTemplate}`,r))})},B={id:"",name:"New (Blank)"},me=({onSelectItem:t,templateLoading:s,onReset:l})=>{const{register:o,handleSubmit:r,clearErrors:e,setValue:i,control:a,watch:u,reset:v,formState:{errors:b}}=F.useForm({defaultValues:{templateName:"",subject:"",templateType:void 0,template:B},mode:"onChange"}),{data:x,refetch:C,isLoading:g}=se(),[y,m]=c.useState([]),[h,L]=c.useState(),[S,Y]=c.useState(),{mutateAsync:fe,isPending:j}=ie(),{mutateAsync:ge,isPending:$}=pe(),{data:q,isLoading:X}=le(),[J,ye]=c.useState([]);c.useEffect(()=>{q&&ye(q.filter(d=>d.id!==void 0).map(d=>({id:`${d.id}`,name:d.name})))},[q]),c.useEffect(()=>{s(!!j)},[j]),c.useEffect(()=>{m(x??[])},[x]);const he=async d=>{if(L(d),d){if(i("templateName",d?.name),q&&q.find(I=>I.id===d.type)){const I=J.find(k=>k.id===`${d.type}`);I&&i("templateType",I)}e()}else i("templateName",""),i("subject","");const E=await fe({id:d?.id});Y(E||void 0)};c.useEffect(()=>{let d=y.find(E=>E.id===u("template")?.id);he(d)},[u("template")]),c.useEffect(()=>{S&&h?(t(S),i("subject",S.subject??"")):t(void 0)},[S,h,t]);const be=d=>{window.StripoEditorApi.actionsApi.getTemplateData(async E=>{let I=d.template.id,k="";h?.readonly&&(I="",k=d.template.id);const we={enerexIdentifier:"",projectId:"",templateId:I,templateType:d.templateType.id,name:d.templateName,html:E.html,css:E.css,subject:d.templateType.id==="2"?d?.subject??"":"",parent_id:k};await ge(we)&&(e(),v(),C())})};return n.jsx(p.Card,{className:"border border-0 text-start",children:n.jsx(p.Card.Body,{className:"pe-0 ps-2",children:n.jsx("form",{onSubmit:r(be),children:n.jsx("div",{className:"template-list-container gap-3",children:n.jsxs(p.Row,{children:[n.jsx(p.Col,{children:n.jsx(W,{label:"Type",control:a,error:b,options:J,required:!0,validation:{required:{value:!0,message:"Select a type"}},...o("templateType")})}),n.jsx(p.Col,{children:n.jsx(W,{label:"Template",control:a,error:b,options:[B,...y.filter(d=>(d.type?.toString()===u("templateType")?.id||d.type===null)&&u("templateType")?.id!=null).map(d=>({id:d.id,name:d.name}))],required:!1,...o("template")})}),n.jsx(p.Col,{children:n.jsx(K,{label:"Name",register:o,error:b,required:!0,name:"templateName",validation:{required:{value:!0,message:"Enter a name"}}})}),u("templateType")?.id==="2"&&n.jsx(p.Col,{children:n.jsx(K,{label:"Subject",register:o,error:b,required:!1,name:"subject"})}),n.jsxs(p.Col,{className:"d-flex align-items-end justify-content-end gap-2 mb-3",children:[n.jsx(p.Button,{style:{width:"70px"},variant:"primary",disabled:g||j||$||X,onClick:()=>{L(void 0),v(),l()},children:j||$?n.jsx(p.Spinner,{animation:"border",style:{width:"11px",height:"11px"},size:"sm",role:"status",className:"me-1",children:n.jsx("span",{className:"visually-hidden",children:"Loading..."})}):"Clear"}),(u("templateType")?.id!=="2"||(h?.id??"")!=="")&&n.jsx(p.Button,{type:"submit",variant:"primary",style:{width:"80px"},disabled:g||j||$||X,children:j||$?n.jsx(p.Spinner,{animation:"border",style:{width:"11px",height:"11px"},size:"sm",role:"status",className:"me-1",children:n.jsx("span",{className:"visually-hidden",children:"Loading..."})}):h?.readonly?"Save as":"Save"})]})]})})})})})},ue=({config:t})=>{const[s,l]=c.useState(),[o,r]=c.useState(!1),e=a=>{l(a),window.StripoEditorApi&&window.StripoEditorApi.actionsApi&&window.StripoEditorApi.actionsApi.updateHtmlAndCss(a?.html??P,a?.css??"","")},i=()=>{r(!1),l(void 0),window.StripoEditorApi&&window.StripoEditorApi.actionsApi&&window.StripoEditorApi.actionsApi.updateHtmlAndCss(P,"","")};return n.jsx(Q,{configs:t,children:n.jsx(R,{children:n.jsxs("div",{className:"root-widget",children:[n.jsx(me,{templateLoading:r,onSelectItem:e,onReset:i}),n.jsx(re,{templateHTML:{css:s?.css??"",html:s?.html??P},loading:o,className:"col-span-5"})]})})})};f.EditorWidget=ue,Object.defineProperty(f,Symbol.toStringTag,{value:"Module"})});
|
|
@@ -7,6 +7,7 @@ export type ITemplatesList = {
|
|
|
7
7
|
name: string;
|
|
8
8
|
type: number;
|
|
9
9
|
projectId: number;
|
|
10
|
+
readonly: boolean;
|
|
10
11
|
};
|
|
11
12
|
export type ITemplate = {
|
|
12
13
|
templateID: string;
|
|
@@ -16,6 +17,7 @@ export type ITemplate = {
|
|
|
16
17
|
active: string;
|
|
17
18
|
enerexIdentifier: string;
|
|
18
19
|
projectId: string;
|
|
20
|
+
subject: string;
|
|
19
21
|
templateType: number;
|
|
20
22
|
};
|
|
21
23
|
export type ITemplateTypes = {
|