@enerex/template-studio 1.1.32 → 1.1.34

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,9 +1,9 @@
1
- import { jsx as i, jsxs as E, Fragment as Ie } from "react/jsx-runtime";
2
- import L, { useContext as de, useState as v, useRef as _e, useEffect as C } from "react";
3
- import { QueryClient as Ne, QueryClientProvider as Pe, useQuery as z, useMutation as ce, useQueryClient as Ae } from "@tanstack/react-query";
1
+ import { jsx as i, jsxs as I, Fragment as Ee } from "react/jsx-runtime";
2
+ import j, { useContext as de, useState as C, useRef as Ie, useEffect as S } from "react";
3
+ import { QueryClient as _e, QueryClientProvider as Ne, useQuery as z, useMutation as ce, useQueryClient as Pe } from "@tanstack/react-query";
4
4
  import ee from "axios";
5
- import { Spinner as Y, Form as N, Card as te, Row as je, Col as _, Button as ne } from "react-bootstrap";
6
- import { Controller as Oe, useForm as qe } from "react-hook-form";
5
+ import { Spinner as J, Form as O, Card as te, Row as Ae, Col as A, Button as ne } from "react-bootstrap";
6
+ import { Controller as je, useForm as Oe } from "react-hook-form";
7
7
  import re, { components as Le } from "react-select";
8
8
  const F = `<!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
@@ -361,52 +361,53 @@ const F = `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:
361
361
  </div>\r
362
362
  </body>\r
363
363
  </html>\r
364
- `, pe = L.createContext(
364
+ `, pe = j.createContext(
365
365
  void 0
366
366
  ), Re = ({
367
367
  children: e,
368
368
  configs: r
369
369
  }) => {
370
- const [o, l] = L.useState(r.clientId), [n, t] = L.useState(r.apiKey), [s, d] = L.useState(
370
+ const [s, l] = j.useState(r.clientId), [n, t] = j.useState(r.apiKey), [o, d] = j.useState(
371
371
  r.enerexIdentifier
372
- ), [p, x] = L.useState(r.projectId), I = (g) => {
373
- t(g.apiKey), l(g.clientId), x(g.projectId), d(g.enerexIdentifier);
372
+ ), [p, v] = j.useState(r.projectId), [N, b] = j.useState(r.userEmail), T = (w) => {
373
+ t(w.apiKey), l(w.clientId), v(w.projectId), d(w.enerexIdentifier), b(w.userEmail);
374
374
  };
375
375
  return /* @__PURE__ */ i(
376
376
  pe.Provider,
377
377
  {
378
378
  value: {
379
- clientId: o,
379
+ clientId: s,
380
380
  apiKey: n,
381
- setConfiguration: I,
382
- enerexIdentifier: s,
383
- projectId: p
381
+ setConfiguration: T,
382
+ enerexIdentifier: o,
383
+ projectId: p,
384
+ userEmail: N
384
385
  },
385
386
  children: e
386
387
  }
387
388
  );
388
- }, P = () => {
389
+ }, _ = () => {
389
390
  const e = de(pe);
390
391
  if (!e)
391
392
  throw new Error("widgetConfig must be used within a ConfigProvider");
392
393
  return e;
393
394
  }, me = (e = "", r) => ({ get: async (n, t) => {
394
395
  try {
395
- const s = await ee.get(
396
+ const o = await ee.get(
396
397
  `${e}${n}`,
397
398
  t ?? r
398
399
  );
399
- if (s.status === 200)
400
- return s.data;
401
- } catch (s) {
402
- throw s;
400
+ if (o.status === 200)
401
+ return o.data;
402
+ } catch (o) {
403
+ throw o;
403
404
  }
404
- }, post: async (n, t, s) => {
405
+ }, post: async (n, t, o) => {
405
406
  try {
406
407
  const d = await ee.post(
407
408
  `${e}${n}`,
408
409
  t,
409
- s ?? r
410
+ o ?? r
410
411
  );
411
412
  if (d.status === 200)
412
413
  return d.data;
@@ -420,26 +421,26 @@ const F = `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:
420
421
  API_BASE_URL: "https://dev-socket.enerex.com/common/api"
421
422
  //API_BASE_URL: "https://localhost:44338/api",
422
423
  // more env variables...
423
- }, ue = L.createContext({
424
+ }, ue = j.createContext({
424
425
  get: () => {
425
426
  throw new Error("HttpClientContext.get not implemented");
426
427
  },
427
428
  post: () => {
428
429
  throw new Error("HttpClientContext.post not implemented");
429
430
  }
430
- }), De = ({ children: e }) => {
431
- const { clientId: r, apiKey: o } = P(), l = {
431
+ }), qe = ({ children: e }) => {
432
+ const { clientId: r, apiKey: s } = _(), l = {
432
433
  headers: {
433
434
  client_id: r,
434
- "x-api-key": o
435
+ "x-api-key": s
435
436
  }
436
437
  }, { get: n, post: t } = me(H.API_BASE_URL, l);
437
438
  return /* @__PURE__ */ i(ue.Provider, { value: { get: n, post: t }, children: e });
438
- }, $e = ({ children: e }) => {
439
- const r = new Ne();
440
- return /* @__PURE__ */ i(De, { children: /* @__PURE__ */ i(Pe, { client: r, children: e }) });
441
- }, ke = (e) => {
442
- const r = Array.from(new Set(e.map((l) => l.category))), o = [];
439
+ }, De = ({ children: e }) => {
440
+ const r = new _e();
441
+ return /* @__PURE__ */ i(qe, { children: /* @__PURE__ */ i(Ne, { client: r, children: e }) });
442
+ }, $e = (e) => {
443
+ const r = Array.from(new Set(e.map((l) => l.category))), s = [];
443
444
  return r.forEach((l) => {
444
445
  const n = e.filter((t) => t.category === l).map((t) => ({
445
446
  label: t.label,
@@ -447,70 +448,68 @@ const F = `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:
447
448
  hint: t.hint,
448
449
  hidden: t.hidden
449
450
  }));
450
- o.push({ category: l, entries: n });
451
- }), o;
452
- }, R = () => {
451
+ s.push({ category: l, entries: n });
452
+ }), s;
453
+ }, D = () => {
453
454
  const e = de(ue);
454
455
  if (e)
455
456
  return e;
456
457
  throw new Error("useHttpClient must be used within a HttpClientProvider");
457
- }, D = {
458
+ }, $ = {
458
459
  Template_list: "/Template/list/",
459
460
  Template: "/Template/GetTemplate/",
460
461
  MergeTags: "/Template/TemplateMergeTags/",
461
462
  ExcludeCategory: "/Template/GetExcludeCategories/",
462
463
  SaveTemplate: "/Template/save-update/",
463
464
  TemplateTypes: "/Template/TemplateTypes/"
464
- }, Be = () => {
465
- const e = R(), { enerexIdentifier: r, projectId: o } = P();
465
+ }, ke = () => {
466
+ const e = D(), { enerexIdentifier: r, projectId: s } = _();
466
467
  return z({
467
468
  queryKey: ["getTemplateTags"],
468
469
  queryFn: async (n) => await e.get(
469
- `${D.MergeTags}${o}/${r}`
470
+ `${$.MergeTags}${s}/${r}`
470
471
  )
471
472
  });
472
- }, Me = () => {
473
- const e = R(), { enerexIdentifier: r, projectId: o } = P();
473
+ }, Be = () => {
474
+ const e = D(), { enerexIdentifier: r, projectId: s } = _();
474
475
  return z({
475
476
  queryKey: ["getExcludeCategory"],
476
477
  queryFn: async (n) => await e.get(
477
- `${D.ExcludeCategory}${o}/${r}`
478
+ `${$.ExcludeCategory}${s}/${r}`
478
479
  )
479
480
  });
480
- }, J = Date.now().toString(36) + Math.random().toString(36).substr(2);
481
- console.log("uniqueId", J);
482
- const Ue = ({
481
+ }, Me = ({
483
482
  templateHTML: e,
484
483
  className: r = "",
485
- loading: o = !1
484
+ loading: s = !1
486
485
  }) => {
487
- const { post: l } = me(), { data: n } = Be(), { data: t } = Me(), [s, d] = v(
486
+ const { post: l } = me(), { data: n } = ke(), { data: t } = Be(), [o, d] = C(
488
487
  e ?? { html: F, css: "" }
489
- ), p = _e(null), x = "https://plugin.stripocdn.email/content/guids/CABINET_eab4e7d5a4603ac03f4120652a3a5a540f0c79c688514939f095f67433ed4a67/images/photo256.png", I = "https://plugins.stripo.email/api/v1/auth";
490
- C(() => {
491
- (async () => (await g(), n && t && await S(H.EDITOR_SCRIPT_URL)))();
488
+ ), { userEmail: p } = _(), v = Ie(null), N = "https://plugin.stripocdn.email/content/guids/CABINET_eab4e7d5a4603ac03f4120652a3a5a540f0c79c688514939f095f67433ed4a67/images/photo256.png", b = "https://plugins.stripo.email/api/v1/auth";
489
+ S(() => {
490
+ (async () => (await T(), n && t && await w(H.EDITOR_SCRIPT_URL)))();
492
491
  }, [n, t]);
493
- async function g() {
494
- window.Zone || await new Promise((y, c) => {
492
+ async function T() {
493
+ window.Zone || await new Promise((c, g) => {
495
494
  const f = document.createElement("script");
496
495
  f.src = "https://unpkg.com/zone.js@0.13.1/bundles/zone.umd.min.js";
497
- const h = document.querySelector("script[nonce]")?.nonce;
498
- h && f.setAttribute("nonce", h), f.onload = () => y(), f.onerror = () => c(new Error("Failed to load zone.js")), document.head.appendChild(f);
496
+ const y = document.querySelector("script[nonce]")?.nonce;
497
+ y && f.setAttribute("nonce", y), f.onload = () => c(), f.onerror = () => g(new Error("Failed to load zone.js")), document.head.appendChild(f);
499
498
  });
500
499
  }
501
- async function S(y) {
502
- let c = document.getElementById(
500
+ async function w(c) {
501
+ let g = document.getElementById(
503
502
  "UiEditorScript"
504
503
  );
505
- c || (c = document.createElement("script"), c.id = "UiEditorScript", c.src = y, c.onload = async () => {
506
- await A();
507
- }, document.body.appendChild(c)), await new Promise(
508
- (f) => c.addEventListener("load", () => f(), { once: !0 })
504
+ g || (g = document.createElement("script"), g.id = "UiEditorScript", g.src = c, g.onload = async () => {
505
+ await P();
506
+ }, document.body.appendChild(g)), await new Promise(
507
+ (f) => g.addEventListener("load", () => f(), { once: !0 })
509
508
  );
510
509
  }
511
- const A = async () => {
512
- const y = p.current;
513
- if (!y) {
510
+ const P = async () => {
511
+ const c = v.current;
512
+ if (!c) {
514
513
  console.error("Missing #stripoEditorContainer in DOM");
515
514
  return;
516
515
  }
@@ -518,45 +517,45 @@ const Ue = ({
518
517
  console.error("UIEditor script not loaded or not exposing initEditor");
519
518
  return;
520
519
  }
521
- const c = {
522
- html: s.html,
523
- css: s.css,
520
+ const g = {
521
+ html: o.html,
522
+ css: o.css,
524
523
  modulesExcludedCategories: t ?? [],
525
524
  forceRecreate: !0,
526
525
  metadata: {
527
- emailId: J,
526
+ emailId: p,
528
527
  userId: "1",
529
528
  // username: userName,
530
- avatarUrl: x
529
+ avatarUrl: N
531
530
  },
532
531
  locale: "en",
533
532
  onTokenRefreshRequest: async (f) => {
534
- const h = {
533
+ const y = {
535
534
  pluginId: H.EDITOR_PLUGIN_ID,
536
535
  secretKey: H.EDITOR_SECRET_KEY,
537
- userId: J,
536
+ userId: p,
538
537
  role: "user"
539
- }, w = await l(
540
- I,
541
- h
538
+ }, E = await l(
539
+ b,
540
+ y
542
541
  );
543
- w?.token && f(w.token);
542
+ E?.token && f(E.token);
544
543
  },
545
- mergeTags: ke(n ?? [])
544
+ mergeTags: $e(n ?? [])
546
545
  };
547
- for (const [f, h] of Object.entries({
546
+ for (const [f, y] of Object.entries({
548
547
  codeEditorButtonSelector: "#codeEditor",
549
548
  undoButtonSelector: "#undoButton",
550
549
  redoButtonSelector: "#redoButton",
551
550
  mobileViewButtonSelector: "#mobileViewButton",
552
551
  desktopViewButtonSelector: "#desktopViewButton"
553
552
  }))
554
- y.ownerDocument && y.getRootNode() instanceof ShadowRoot && y.getRootNode().querySelector(h) && (c[f] = h);
555
- await window.UIEditor.initEditor(y, c);
553
+ c.ownerDocument && c.getRootNode() instanceof ShadowRoot && c.getRootNode().querySelector(y) && (g[f] = y);
554
+ await window.UIEditor.initEditor(c, g);
556
555
  };
557
- return /* @__PURE__ */ i("div", { className: "position-relative", children: /* @__PURE__ */ E("div", { className: `editor-container ${r}`, children: [
558
- o && /* @__PURE__ */ i("div", { className: "loading-overlay", children: /* @__PURE__ */ i(
559
- Y,
556
+ return /* @__PURE__ */ i("div", { className: "position-relative", children: /* @__PURE__ */ I("div", { className: `editor-container ${r}`, children: [
557
+ s && /* @__PURE__ */ i("div", { className: "loading-overlay", children: /* @__PURE__ */ i(
558
+ J,
560
559
  {
561
560
  animation: "border",
562
561
  style: { width: "11px", height: "11px" },
@@ -566,102 +565,102 @@ const Ue = ({
566
565
  }
567
566
  ) }),
568
567
  /* @__PURE__ */ i("div", { id: "externalSystemContainer" }),
569
- /* @__PURE__ */ i("div", { id: "stripoEditorContainer", ref: p })
568
+ /* @__PURE__ */ i("div", { id: "stripoEditorContainer", ref: v })
570
569
  ] }) });
571
570
  }, ie = ({
572
571
  label: e,
573
572
  register: r,
574
- validation: o,
573
+ validation: s,
575
574
  required: l = !1,
576
575
  name: n,
577
576
  error: t,
578
- className: s = "",
577
+ className: o = "",
579
578
  ...d
580
- }) => /* @__PURE__ */ E(N.Group, { className: s + " mb-1", children: [
581
- e ? /* @__PURE__ */ E(N.Label, { className: "mb-3 d-block form-label", children: [
579
+ }) => /* @__PURE__ */ I(O.Group, { className: o + " mb-1", children: [
580
+ e ? /* @__PURE__ */ I(O.Label, { className: "mb-3 d-block form-label", children: [
582
581
  e,
583
582
  l && /* @__PURE__ */ i("label", { className: "text-danger", children: "*" })
584
583
  ] }) : null,
585
584
  /* @__PURE__ */ i(
586
- N.Control,
585
+ O.Control,
587
586
  {
588
587
  name: n,
589
588
  type: "text",
590
589
  ...d,
591
590
  isInvalid: !!(t && t[n]),
592
591
  ...r ? r(n, {
593
- ...o
592
+ ...s
594
593
  }) : {},
595
594
  className: `react-select__control ${t && t[n] && "border border-danger"}`
596
595
  }
597
596
  ),
598
- t && t[n] ? /* @__PURE__ */ i(N.Control.Feedback, { type: "invalid", children: t[n].message }) : null
599
- ] }), Fe = () => {
600
- const e = R(), { enerexIdentifier: r, projectId: o } = P();
597
+ t && t[n] ? /* @__PURE__ */ i(O.Control.Feedback, { type: "invalid", children: t[n].message }) : null
598
+ ] }), Ue = () => {
599
+ const e = D(), { enerexIdentifier: r, projectId: s } = _();
601
600
  return z({
602
601
  queryKey: ["getTemplatesList"],
603
602
  queryFn: async (n) => await e.get(
604
- `${D.Template_list}${o}/${r}`
603
+ `${$.Template_list}${s}/${r}`
605
604
  )
606
605
  });
607
606
  };
608
- function K(e) {
609
- return e.sort((r, o) => r.name.localeCompare(o.name));
607
+ function Q(e) {
608
+ return e.sort((r, s) => r.name.localeCompare(s.name));
610
609
  }
611
- function He(e) {
612
- const r = /* @__PURE__ */ new Map(), o = [];
610
+ function Fe(e) {
611
+ const r = /* @__PURE__ */ new Map(), s = [];
613
612
  e.forEach((t) => r.set(t.id, t));
614
613
  let l = e.filter((t) => t.parent_id === 0), n = 0;
615
614
  for (; l.length > 0; ) {
616
- o.push({ level: n, data: l });
615
+ s.push({ level: n, data: l });
617
616
  const t = l.map((d) => d.id);
618
617
  l = e.filter(
619
618
  (d) => t.includes(d.parent_id)
620
619
  ), n++;
621
620
  }
622
- return o;
621
+ return s;
623
622
  }
624
- function Q(e, r) {
625
- const l = He(e).find((n) => n.level === r);
623
+ function W(e, r) {
624
+ const l = Fe(e).find((n) => n.level === r);
626
625
  return l ? l.data : [];
627
626
  }
628
- const ze = () => {
629
- const e = R(), { enerexIdentifier: r, projectId: o } = P();
627
+ const He = () => {
628
+ const e = D(), { enerexIdentifier: r, projectId: s } = _();
630
629
  return ce({
631
630
  mutationKey: ["getTemplate"],
632
631
  mutationFn: async ({ id: n }) => {
633
632
  if (n)
634
633
  return await e.get(
635
- `${D.Template}${r}/${n}/${o}`
634
+ `${$.Template}${r}/${n}/${s}`
636
635
  );
637
636
  }
638
637
  });
639
- }, Ge = () => {
640
- const e = R(), { enerexIdentifier: r, projectId: o } = P();
638
+ }, ze = () => {
639
+ const e = D(), { enerexIdentifier: r, projectId: s } = _();
641
640
  return z({
642
641
  queryKey: ["getTemplateTypes"],
643
642
  queryFn: async (n) => await e.get(
644
- `${D.TemplateTypes}${r}/${o}`
643
+ `${$.TemplateTypes}${r}/${s}`
645
644
  )
646
645
  });
647
646
  };
648
- function Ve(e) {
647
+ function Ge(e) {
649
648
  return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
650
649
  }
651
- var W = { exports: {} };
650
+ var Y = { exports: {} };
652
651
  /*!
653
652
  Copyright (c) 2018 Jed Watson.
654
653
  Licensed under the MIT License (MIT), see
655
654
  http://jedwatson.github.io/classnames
656
655
  */
657
- var oe;
658
- function Ke() {
659
- return oe || (oe = 1, function(e) {
656
+ var se;
657
+ function Ve() {
658
+ return se || (se = 1, function(e) {
660
659
  (function() {
661
660
  var r = {}.hasOwnProperty;
662
- function o() {
663
- for (var t = "", s = 0; s < arguments.length; s++) {
664
- var d = arguments[s];
661
+ function s() {
662
+ for (var t = "", o = 0; o < arguments.length; o++) {
663
+ var d = arguments[o];
665
664
  d && (t = n(t, l(d)));
666
665
  }
667
666
  return t;
@@ -672,23 +671,23 @@ function Ke() {
672
671
  if (typeof t != "object")
673
672
  return "";
674
673
  if (Array.isArray(t))
675
- return o.apply(null, t);
674
+ return s.apply(null, t);
676
675
  if (t.toString !== Object.prototype.toString && !t.toString.toString().includes("[native code]"))
677
676
  return t.toString();
678
- var s = "";
677
+ var o = "";
679
678
  for (var d in t)
680
- r.call(t, d) && t[d] && (s = n(s, d));
681
- return s;
679
+ r.call(t, d) && t[d] && (o = n(o, d));
680
+ return o;
682
681
  }
683
- function n(t, s) {
684
- return s ? t ? t + " " + s : t + s : t;
682
+ function n(t, o) {
683
+ return o ? t ? t + " " + o : t + o : t;
685
684
  }
686
- e.exports ? (o.default = o, e.exports = o) : window.classNames = o;
685
+ e.exports ? (s.default = s, e.exports = s) : window.classNames = s;
687
686
  })();
688
- }(W)), W.exports;
687
+ }(Y)), Y.exports;
689
688
  }
690
- var Qe = Ke();
691
- const se = /* @__PURE__ */ Ve(Qe), le = (e) => e.data.isSeparator ? /* @__PURE__ */ i("div", { style: { padding: 0, margin: "2px 0" }, children: /* @__PURE__ */ i(
689
+ var Ke = Ve();
690
+ const oe = /* @__PURE__ */ Ge(Ke), le = (e) => e.data.isSeparator ? /* @__PURE__ */ i("div", { style: { padding: 0, margin: "2px 0" }, children: /* @__PURE__ */ i(
692
691
  "hr",
693
692
  {
694
693
  style: {
@@ -698,23 +697,23 @@ const se = /* @__PURE__ */ Ve(Qe), le = (e) => e.data.isSeparator ? /* @__PURE__
698
697
  margin: 0
699
698
  }
700
699
  }
701
- ) }) : /* @__PURE__ */ i(Le.Option, { ...e }), We = ({
700
+ ) }) : /* @__PURE__ */ i(Le.Option, { ...e }), Qe = ({
702
701
  name: e = "",
703
702
  control: r,
704
- options: o,
703
+ options: s,
705
704
  multiple: l = !1,
706
705
  placeholder: n,
707
706
  validation: t,
708
- labelKey: s = "name",
707
+ labelKey: o = "name",
709
708
  disabled: d,
710
709
  isInvalid: p,
711
- value: x,
712
- onChange: I,
713
- uncontrolled: g,
714
- menuPlacement: S = "auto",
715
- closeOnSelect: A = !0
710
+ value: v,
711
+ onChange: N,
712
+ uncontrolled: b,
713
+ menuPlacement: T = "auto",
714
+ closeOnSelect: w = !0
716
715
  }) => {
717
- const y = {
716
+ const P = {
718
717
  control: (c) => ({
719
718
  ...c,
720
719
  minHeight: "33px",
@@ -752,239 +751,241 @@ const se = /* @__PURE__ */ Ve(Qe), le = (e) => e.data.isSeparator ? /* @__PURE__
752
751
  display: d ? "none" : "block"
753
752
  })
754
753
  };
755
- return g ? /* @__PURE__ */ i(
754
+ return b ? /* @__PURE__ */ i(
756
755
  re,
757
756
  {
758
757
  components: { Option: le },
759
758
  isOptionDisabled: (c) => !!c.isSeparator,
760
- className: se({
759
+ className: oe({
761
760
  "is-invalid": p
762
761
  }),
763
- styles: y,
762
+ styles: P,
764
763
  classNamePrefix: "react-select",
765
764
  isMulti: l,
766
- options: o,
767
- onChange: I,
765
+ options: s,
766
+ onChange: N,
768
767
  placeholder: n,
769
768
  menuPortalTarget: document.body,
770
- value: x,
771
- getOptionLabel: typeof s == "string" ? (c) => c[s] : s,
769
+ value: v,
770
+ getOptionLabel: typeof o == "string" ? (c) => c[o] : o,
772
771
  getOptionValue: (c) => c.id,
773
772
  isDisabled: d,
774
- menuPlacement: S,
775
- closeMenuOnSelect: A
773
+ menuPlacement: T,
774
+ closeMenuOnSelect: w
776
775
  }
777
776
  ) : /* @__PURE__ */ i(
778
- Oe,
777
+ je,
779
778
  {
780
779
  control: r,
781
780
  name: e,
782
781
  rules: t,
783
- render: ({ field: { onChange: c, value: f, onBlur: h } }) => /* @__PURE__ */ i(
782
+ render: ({ field: { onChange: c, value: g, onBlur: f } }) => /* @__PURE__ */ i(
784
783
  re,
785
784
  {
786
785
  components: { Option: le },
787
- isOptionDisabled: (w) => !!w.isSeparator,
788
- className: se({
786
+ isOptionDisabled: (y) => !!y.isSeparator,
787
+ className: oe({
789
788
  "is-invalid": p
790
789
  }),
791
- styles: y,
790
+ styles: P,
792
791
  classNamePrefix: "react-select",
793
792
  isMulti: l,
794
- options: o,
795
- onBlur: h,
793
+ options: s,
794
+ onBlur: f,
796
795
  onChange: c,
797
796
  placeholder: n,
798
797
  menuPortalTarget: document.body,
799
- value: f,
800
- getOptionLabel: typeof s == "string" ? (w) => w[s] : s,
801
- getOptionValue: (w) => w.id,
798
+ value: g,
799
+ getOptionLabel: typeof o == "string" ? (y) => y[o] : o,
800
+ getOptionValue: (y) => y.id,
802
801
  isDisabled: d,
803
- menuPlacement: S,
804
- closeMenuOnSelect: A
802
+ menuPlacement: T,
803
+ closeMenuOnSelect: w
805
804
  },
806
- f ? JSON.stringify(f) : "reset"
805
+ g ? JSON.stringify(g) : "reset"
807
806
  )
808
807
  }
809
808
  );
810
- }, M = ({
809
+ }, U = ({
811
810
  label: e,
812
811
  name: r,
813
- validation: o,
812
+ validation: s,
814
813
  control: l,
815
814
  error: n,
816
815
  ...t
817
- }) => /* @__PURE__ */ E(N.Group, { className: "mb-1", children: [
818
- e && /* @__PURE__ */ E(N.Label, { className: "mb-3 d-block form-label", children: [
816
+ }) => /* @__PURE__ */ I(O.Group, { className: "mb-1", children: [
817
+ e && /* @__PURE__ */ I(O.Label, { className: "mb-3 d-block form-label", children: [
819
818
  e,
820
819
  " ",
821
820
  t.required && /* @__PURE__ */ i("span", { className: "text-danger", children: "*" })
822
821
  ] }),
823
822
  /* @__PURE__ */ i(
824
- We,
823
+ Qe,
825
824
  {
826
825
  control: l,
827
826
  options: t.options ?? [],
828
- validation: o,
827
+ validation: s,
829
828
  isInvalid: n && !!n[r],
830
829
  name: r
831
830
  }
832
831
  ),
833
- n && n[r] ? /* @__PURE__ */ i(N.Control.Feedback, { type: "invalid", children: n[r].message }) : null
834
- ] }), Ye = () => {
835
- const e = R();
836
- Ae();
837
- const { enerexIdentifier: r, projectId: o } = P();
832
+ n && n[r] ? /* @__PURE__ */ i(O.Control.Feedback, { type: "invalid", children: n[r].message }) : null
833
+ ] }), We = () => {
834
+ const e = D();
835
+ Pe();
836
+ const { enerexIdentifier: r, projectId: s } = _();
838
837
  return ce({
839
838
  mutationKey: ["saveTemplate"],
840
- mutationFn: async (n) => (n.enerexIdentifier = r ?? "", n.projectId = o ?? "", await e.post(
841
- `${D.SaveTemplate}`,
839
+ mutationFn: async (n) => (n.enerexIdentifier = r ?? "", n.projectId = s ?? "", await e.post(
840
+ `${$.SaveTemplate}`,
842
841
  n
843
842
  ))
844
843
  });
845
- }, U = {
844
+ }, B = {
846
845
  id: "",
847
846
  name: "New (Blank)"
848
847
  }, ae = {
849
848
  id: "",
850
849
  name: "Separator",
851
850
  isSeparator: !0
852
- }, Je = ({
851
+ }, Ye = ({
853
852
  onSelectItem: e,
854
853
  templateLoading: r,
855
- onReset: o
854
+ onReset: s
856
855
  }) => {
857
856
  const {
858
857
  register: l,
859
858
  handleSubmit: n,
860
859
  clearErrors: t,
861
- setValue: s,
860
+ setValue: o,
862
861
  control: d,
863
862
  watch: p,
864
- reset: x,
865
- setError: I,
866
- formState: { errors: g }
867
- } = qe({
863
+ reset: v,
864
+ setError: N,
865
+ formState: { errors: b }
866
+ } = Oe({
868
867
  defaultValues: {
869
868
  templateName: "",
870
869
  subTemplateType: void 0,
871
870
  subTemplateType2: void 0,
872
871
  subject: "",
873
872
  templateType: void 0,
874
- template: U
873
+ template: B
875
874
  },
876
875
  mode: "onChange"
877
876
  }), {
878
- data: S,
879
- refetch: A,
880
- isLoading: y
881
- } = Fe(), [c, f] = v([]), [h, w] = v(), [k, X] = v(), { mutateAsync: fe, isPending: j } = ze(), { mutateAsync: ge, isPending: B } = Ye(), { data: $, isLoading: Z } = Ge(), [ye, he] = v([]), [O, G] = v([]), [q, be] = v([]);
882
- C(() => {
883
- if ($) {
884
- let a = $.filter((u) => u.id != null), m = Q(a, 0);
885
- he(K(m));
877
+ data: T,
878
+ refetch: w,
879
+ isLoading: P
880
+ } = Ue(), [c, g] = C([]), [f, y] = C(), [E, X] = C(), { mutateAsync: fe, isPending: L } = He(), { mutateAsync: ge, isPending: M } = We(), { data: k, isLoading: Z } = ze(), [ye, he] = C([]), [R, G] = C([]), [q, V] = C([]);
881
+ S(() => {
882
+ if (k) {
883
+ let a = k.filter((u) => u.id != null), m = W(a, 0);
884
+ he(Q(m));
886
885
  }
887
- }, [$]);
888
- const we = (a, m) => {
886
+ }, [k]);
887
+ const be = (a, m) => {
889
888
  let u = [];
890
- return a.forEach((T, b) => {
891
- m.includes(b) && b !== 0 && u.push(ae), u.push(T);
889
+ return a.forEach((x, h) => {
890
+ m.includes(h) && h !== 0 && u.push(ae), u.push(x);
892
891
  }), u;
893
892
  };
894
- C(() => {
895
- r(!!j);
896
- }, [j]), C(() => {
897
- S?.sort((a, m) => a.readonly !== m.readonly ? (a.readonly ? 0 : 1) - (m.readonly ? 0 : 1) : a.name.localeCompare(m.name)), f(S ?? []);
898
- }, [S]);
899
- const Te = async (a) => {
900
- w(a), a && !a.readonly ? (s("templateName", a?.name), t()) : (s("templateName", ""), s("subject", ""));
893
+ S(() => {
894
+ r(!!L);
895
+ }, [L]), S(() => {
896
+ T?.sort((a, m) => a.readonly !== m.readonly ? (a.readonly ? 0 : 1) - (m.readonly ? 0 : 1) : a.name.localeCompare(m.name)), g(T ?? []);
897
+ }, [T]);
898
+ const we = async (a) => {
899
+ y(a), a && !a.readonly ? (o("templateName", a?.name), t()) : (o("templateName", ""), o("subject", ""));
901
900
  const m = await fe({ id: a?.id });
902
901
  X(m || void 0);
903
902
  };
904
- C(() => {
905
- if (s("template", U), p("templateType")) {
906
- let a = $?.filter((u) => u.id !== void 0) ?? [], m = Q(a, 1);
903
+ S(() => {
904
+ if (o("template", B), p("templateType")) {
905
+ let a = k?.filter((u) => u.id !== void 0) ?? [], m = W(a, 1);
907
906
  G(
908
- K(
907
+ Q(
909
908
  m.filter(
910
909
  (u) => u.parent_id.toString() === `${p("templateType")?.id}`
911
910
  )
912
911
  )
913
- ), s("subTemplateType", void 0);
912
+ ), o("subTemplateType", void 0), o("subTemplateType2", void 0);
914
913
  }
915
- }, [p("templateType")]), C(() => {
916
- if (s("template", U), p("subTemplateType")) {
917
- let a = $?.filter((u) => u.id !== void 0) ?? [], m = Q(a, 2);
918
- be(
919
- K(
914
+ }, [p("templateType")]), S(() => {
915
+ if (o("template", B), p("subTemplateType")) {
916
+ let a = k?.filter((u) => u.id !== void 0) ?? [], m = W(a, 2);
917
+ V(
918
+ Q(
920
919
  m.filter(
921
920
  (u) => u.parent_id.toString() === `${p("subTemplateType")?.id}`
922
921
  )
923
922
  )
924
- ), s("subTemplateType2", void 0);
923
+ ), o("subTemplateType2", void 0);
925
924
  }
926
- }, [p("subTemplateType")]), C(() => {
925
+ }, [p("subTemplateType")]), S(() => {
926
+ o("template", B);
927
+ }, [p("subTemplateType2")]), S(() => {
927
928
  let a = c.find((m) => m.id === p("template")?.id);
928
- Te(a);
929
- }, [p("template")]), C(() => {
930
- k && h ? (e(k), s("subject", k.subject ?? "")) : e(void 0);
931
- }, [k, h, e]);
932
- const ve = () => {
933
- let a = [U], m = "templateType";
934
- q.length > 0 ? m = "subTemplateType2" : O.length > 0 && (m = "subTemplateType");
929
+ we(a);
930
+ }, [p("template")]), S(() => {
931
+ E && f ? (e(E), o("subject", E.subject ?? "")) : e(void 0);
932
+ }, [E, f, e]);
933
+ const Te = () => {
934
+ let a = [B], m = "templateType";
935
+ q.length > 0 ? m = "subTemplateType2" : R.length > 0 && (m = "subTemplateType");
935
936
  let u = c.filter(
936
- (b) => (b.type?.toString() === p(m)?.id.toString() || b.type === null) && p(m)?.id != null
937
- ), T = we(u, [u.findIndex((b) => !b.readonly)]);
938
- return T.length > 0 && (a.push(ae), a = [
937
+ (h) => (h.type?.toString() === p(m)?.id.toString() || h.type === null) && p(m)?.id != null
938
+ ), x = be(u, [u.findIndex((h) => !h.readonly)]);
939
+ return x.length > 0 && (a.push(ae), a = [
939
940
  ...a,
940
- ...T.map((b) => ({
941
- id: b.id,
942
- name: xe(u, b.id),
943
- isSeparator: b.isSeparator
941
+ ...x.map((h) => ({
942
+ id: h.id,
943
+ name: ve(u, h.id),
944
+ isSeparator: h.isSeparator
944
945
  }))
945
946
  ]), a.length ? a : [];
946
- }, xe = (a, m) => {
947
- let u = a.find((T) => T.id === m);
948
- return u ? `${u.readonly ? "Default - " : "Custom - "} ${u.name}` : "";
949
- }, Se = (a) => {
947
+ }, ve = (a, m) => {
948
+ let u = a.find((x) => x.id === m);
949
+ return u ? `${u.displayName}` : "";
950
+ }, xe = (a) => {
950
951
  window.StripoEditorApi.actionsApi.getTemplateData(
951
952
  async (m) => {
952
- let u = a.template.id, T = "";
953
- h?.readonly && (u = "", T = a.template.id);
954
- let b = c.find(
955
- (Ee) => Ee.name === a.templateName.trim()
953
+ let u = a.template.id, x = "";
954
+ f?.readonly && (u = "", x = a.template.id);
955
+ let h = c.find(
956
+ (Ce) => Ce.name === a.templateName.trim()
956
957
  );
957
- if (b && b.id !== u) {
958
- I("templateName", {
958
+ if (h && h.id !== u) {
959
+ N("templateName", {
959
960
  type: "validate",
960
961
  message: "Template name already exists. Please choose a different name."
961
962
  });
962
963
  return;
963
964
  }
964
- let V = a.templateType.id;
965
- q && q.length > 0 ? V = a.subTemplateType2.id : O && O.length > 0 && (V = a.subTemplateType.id);
966
- const Ce = {
965
+ let K = a.templateType.id;
966
+ q && q.length > 0 ? K = a.subTemplateType2.id : R && R.length > 0 && (K = a.subTemplateType.id);
967
+ const Se = {
967
968
  enerexIdentifier: "",
968
969
  projectId: "",
969
970
  templateId: u,
970
- templateType: V,
971
+ templateType: K,
971
972
  name: a.templateName.trim(),
972
973
  html: m.html,
973
974
  css: m.css,
974
975
  subject: a.templateType.id === "2" ? a?.subject ?? "" : "",
975
- parent_id: T
976
+ parent_id: x
976
977
  };
977
- await ge(Ce) && (t(), x(), G([]), A());
978
+ await ge(Se) && (t(), v(), G([]), V([]), w());
978
979
  }
979
980
  );
980
981
  };
981
- return /* @__PURE__ */ i(te, { className: "border border-0 text-start", children: /* @__PURE__ */ i(te.Body, { className: "pe-0 ps-2", children: /* @__PURE__ */ i("form", { onSubmit: n(Se), children: /* @__PURE__ */ i("div", { className: "template-list-container gap-3", children: /* @__PURE__ */ E(je, { children: [
982
- /* @__PURE__ */ i(_, { children: /* @__PURE__ */ i(
983
- M,
982
+ return /* @__PURE__ */ i(te, { className: "border border-0 text-start", children: /* @__PURE__ */ i(te.Body, { className: "pe-0 ps-2", children: /* @__PURE__ */ i("form", { onSubmit: n(xe), children: /* @__PURE__ */ i("div", { className: "template-list-container gap-3", children: /* @__PURE__ */ I(Ae, { children: [
983
+ /* @__PURE__ */ i(A, { children: /* @__PURE__ */ i(
984
+ U,
984
985
  {
985
986
  label: "Category",
986
987
  control: d,
987
- error: g,
988
+ error: b,
988
989
  options: ye,
989
990
  required: !0,
990
991
  validation: {
@@ -996,13 +997,13 @@ const se = /* @__PURE__ */ Ve(Qe), le = (e) => e.data.isSeparator ? /* @__PURE__
996
997
  ...l("templateType")
997
998
  }
998
999
  ) }),
999
- O && O.length > 0 && /* @__PURE__ */ i(_, { children: /* @__PURE__ */ i(
1000
- M,
1000
+ R && R.length > 0 && /* @__PURE__ */ i(A, { children: /* @__PURE__ */ i(
1001
+ U,
1001
1002
  {
1002
1003
  label: "Type",
1003
1004
  control: d,
1004
- error: g,
1005
- options: O,
1005
+ error: b,
1006
+ options: R,
1006
1007
  required: !0,
1007
1008
  validation: {
1008
1009
  required: {
@@ -1013,12 +1014,12 @@ const se = /* @__PURE__ */ Ve(Qe), le = (e) => e.data.isSeparator ? /* @__PURE__
1013
1014
  ...l("subTemplateType")
1014
1015
  }
1015
1016
  ) }),
1016
- q && q.length > 0 && /* @__PURE__ */ i(_, { children: /* @__PURE__ */ i(
1017
- M,
1017
+ q && q.length > 0 && /* @__PURE__ */ i(A, { children: /* @__PURE__ */ i(
1018
+ U,
1018
1019
  {
1019
1020
  label: "Sub Type",
1020
1021
  control: d,
1021
- error: g,
1022
+ error: b,
1022
1023
  options: q,
1023
1024
  required: !0,
1024
1025
  validation: {
@@ -1030,23 +1031,23 @@ const se = /* @__PURE__ */ Ve(Qe), le = (e) => e.data.isSeparator ? /* @__PURE__
1030
1031
  ...l("subTemplateType2")
1031
1032
  }
1032
1033
  ) }),
1033
- /* @__PURE__ */ i(_, { children: /* @__PURE__ */ i(
1034
- M,
1034
+ /* @__PURE__ */ i(A, { children: /* @__PURE__ */ i(
1035
+ U,
1035
1036
  {
1036
1037
  label: "Template",
1037
1038
  control: d,
1038
- error: g,
1039
- options: ve(),
1039
+ error: b,
1040
+ options: Te(),
1040
1041
  required: !1,
1041
1042
  ...l("template")
1042
1043
  }
1043
1044
  ) }),
1044
- /* @__PURE__ */ i(_, { children: /* @__PURE__ */ i(
1045
+ /* @__PURE__ */ i(A, { children: /* @__PURE__ */ i(
1045
1046
  ie,
1046
1047
  {
1047
1048
  label: "Name",
1048
1049
  register: l,
1049
- error: g,
1050
+ error: b,
1050
1051
  required: !0,
1051
1052
  name: "templateName",
1052
1053
  validation: {
@@ -1057,28 +1058,28 @@ const se = /* @__PURE__ */ Ve(Qe), le = (e) => e.data.isSeparator ? /* @__PURE__
1057
1058
  }
1058
1059
  }
1059
1060
  ) }),
1060
- p("templateType")?.id === "2" && /* @__PURE__ */ i(_, { children: /* @__PURE__ */ i(
1061
+ p("templateType")?.id === "2" && /* @__PURE__ */ i(A, { children: /* @__PURE__ */ i(
1061
1062
  ie,
1062
1063
  {
1063
1064
  label: "Subject",
1064
1065
  register: l,
1065
- error: g,
1066
+ error: b,
1066
1067
  required: !1,
1067
1068
  name: "subject"
1068
1069
  }
1069
1070
  ) }),
1070
- /* @__PURE__ */ E(_, { className: "d-flex align-items-end justify-content-end gap-2 mb-3", children: [
1071
+ /* @__PURE__ */ I(A, { className: "d-flex align-self-start justify-content-end gap-2 mb-1 btn-padding", children: [
1071
1072
  /* @__PURE__ */ i(
1072
1073
  ne,
1073
1074
  {
1074
1075
  style: { width: "70px" },
1075
1076
  variant: "primary",
1076
- disabled: y || j || B || Z,
1077
+ disabled: P || L || M || Z,
1077
1078
  onClick: () => {
1078
- w(void 0), x(), G([]), o();
1079
+ y(void 0), v(), G([]), V([]), s();
1079
1080
  },
1080
- children: j || B ? /* @__PURE__ */ i(
1081
- Y,
1081
+ children: L || M ? /* @__PURE__ */ i(
1082
+ J,
1082
1083
  {
1083
1084
  animation: "border",
1084
1085
  style: { width: "11px", height: "11px" },
@@ -1090,15 +1091,15 @@ const se = /* @__PURE__ */ Ve(Qe), le = (e) => e.data.isSeparator ? /* @__PURE__
1090
1091
  ) : "Clear"
1091
1092
  }
1092
1093
  ),
1093
- (p("templateType")?.id.toString() !== "2" || (p("templateType")?.id.toString() === "2" && (h?.id ?? "")) !== "") && /* @__PURE__ */ i(Ie, { children: /* @__PURE__ */ i(
1094
+ (p("templateType")?.id.toString() !== "2" || (p("templateType")?.id.toString() === "2" && (f?.id ?? "")) !== "") && /* @__PURE__ */ i(Ee, { children: /* @__PURE__ */ i(
1094
1095
  ne,
1095
1096
  {
1096
1097
  type: "submit",
1097
1098
  variant: "primary",
1098
1099
  style: { width: "80px" },
1099
- disabled: y || j || B || Z,
1100
- children: j || B ? /* @__PURE__ */ i(
1101
- Y,
1100
+ disabled: P || L || M || Z,
1101
+ children: L || M ? /* @__PURE__ */ i(
1102
+ J,
1102
1103
  {
1103
1104
  animation: "border",
1104
1105
  style: { width: "11px", height: "11px" },
@@ -1107,20 +1108,20 @@ const se = /* @__PURE__ */ Ve(Qe), le = (e) => e.data.isSeparator ? /* @__PURE__
1107
1108
  className: "me-1",
1108
1109
  children: /* @__PURE__ */ i("span", { className: "visually-hidden", children: "Loading..." })
1109
1110
  }
1110
- ) : h?.readonly ? "Save as" : "Save"
1111
+ ) : f?.readonly ? "Save as" : "Save"
1111
1112
  }
1112
1113
  ) })
1113
1114
  ] })
1114
1115
  ] }) }) }) }) });
1115
1116
  }, st = ({ config: e }) => {
1116
- const [r, o] = v(), [l, n] = v(!1);
1117
- return /* @__PURE__ */ i(Re, { configs: e, children: /* @__PURE__ */ i($e, { children: /* @__PURE__ */ E("div", { className: "root-widget", children: [
1117
+ const [r, s] = C(), [l, n] = C(!1);
1118
+ return /* @__PURE__ */ i(Re, { configs: e, children: /* @__PURE__ */ i(De, { children: /* @__PURE__ */ I("div", { className: "root-widget", children: [
1118
1119
  /* @__PURE__ */ i(
1119
- Je,
1120
+ Ye,
1120
1121
  {
1121
1122
  templateLoading: n,
1122
1123
  onSelectItem: (d) => {
1123
- if (o(d), window.StripoEditorApi && window.StripoEditorApi.actionsApi) {
1124
+ if (s(d), window.StripoEditorApi && window.StripoEditorApi.actionsApi) {
1124
1125
  let p = F;
1125
1126
  window.StripoEditorApi.actionsApi.updateHtmlAndCss(
1126
1127
  d?.html ?? p,
@@ -1130,7 +1131,7 @@ const se = /* @__PURE__ */ Ve(Qe), le = (e) => e.data.isSeparator ? /* @__PURE__
1130
1131
  }
1131
1132
  },
1132
1133
  onReset: () => {
1133
- n(!1), o(void 0), window.StripoEditorApi && window.StripoEditorApi.actionsApi && window.StripoEditorApi.actionsApi.updateHtmlAndCss(
1134
+ n(!1), s(void 0), window.StripoEditorApi && window.StripoEditorApi.actionsApi && window.StripoEditorApi.actionsApi.updateHtmlAndCss(
1134
1135
  F,
1135
1136
  "",
1136
1137
  ""
@@ -1139,7 +1140,7 @@ const se = /* @__PURE__ */ Ve(Qe), le = (e) => e.data.isSeparator ? /* @__PURE__
1139
1140
  }
1140
1141
  ),
1141
1142
  /* @__PURE__ */ i(
1142
- Ue,
1143
+ Me,
1143
1144
  {
1144
1145
  templateHTML: {
1145
1146
  css: r?.css ?? "",
@@ -1,4 +1,4 @@
1
- (function(v,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):(v=typeof globalThis<"u"?globalThis:v||self,n(v.EnerexTemplateEditor={},v.jsxRuntime,v.React,v.reactQuery,v.axios,v.reactBootstrap,v.reactHookForm,v.Select$1))})(this,function(v,n,p,S,J,g,X,z){"use strict";const k=`<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\r
1
+ (function(w,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):(w=typeof globalThis<"u"?globalThis:w||self,n(w.EnerexTemplateEditor={},w.jsxRuntime,w.React,w.reactQuery,w.axios,w.reactBootstrap,w.reactHookForm,w.Select$1))})(this,function(w,n,p,E,J,g,X,z){"use strict";const F=`<!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
- `,Z=p.createContext(void 0),ie=({children:e,configs:s})=>{const[l,i]=p.useState(s.clientId),[r,t]=p.useState(s.apiKey),[o,d]=p.useState(s.enerexIdentifier),[u,E]=p.useState(s.projectId),N=h=>{t(h.apiKey),i(h.clientId),E(h.projectId),d(h.enerexIdentifier)};return n.jsx(Z.Provider,{value:{clientId:l,apiKey:r,setConfiguration:N,enerexIdentifier:o,projectId:u},children:e})},_=()=>{const e=p.useContext(Z);if(!e)throw new Error("widgetConfig must be used within a ConfigProvider");return e},Q=(e="",s)=>({get:async(r,t)=>{try{const o=await J.get(`${e}${r}`,t??s);if(o.status===200)return o.data}catch(o){throw o}},post:async(r,t,o)=>{try{const d=await J.post(`${e}${r}`,t,o??s);if(d.status===200)return d.data}catch(d){throw d}}}),$={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"},R=p.createContext({get:()=>{throw new Error("HttpClientContext.get not implemented")},post:()=>{throw new Error("HttpClientContext.post not implemented")}}),ae=({children:e})=>{const{clientId:s,apiKey:l}=_(),i={headers:{client_id:s,"x-api-key":l}},{get:r,post:t}=Q($.API_BASE_URL,i);return n.jsx(R.Provider,{value:{get:r,post:t},children:e})},de=({children:e})=>{const s=new S.QueryClient;return n.jsx(ae,{children:n.jsx(S.QueryClientProvider,{client:s,children:e})})},ce=e=>{const s=Array.from(new Set(e.map(i=>i.category))),l=[];return s.forEach(i=>{const r=e.filter(t=>t.category===i).map(t=>({label:t.label,value:t.value,hint:t.hint,hidden:t.hidden}));l.push({category:i,entries:r})}),l},q=()=>{const e=p.useContext(R);if(e)return e;throw new Error("useHttpClient must be used within a HttpClientProvider")},P={Template_list:"/Template/list/",Template:"/Template/GetTemplate/",MergeTags:"/Template/TemplateMergeTags/",ExcludeCategory:"/Template/GetExcludeCategories/",SaveTemplate:"/Template/save-update/",TemplateTypes:"/Template/TemplateTypes/"},pe=()=>{const e=q(),{enerexIdentifier:s,projectId:l}=_();return S.useQuery({queryKey:["getTemplateTags"],queryFn:async r=>await e.get(`${P.MergeTags}${l}/${s}`)})},ue=()=>{const e=q(),{enerexIdentifier:s,projectId:l}=_();return S.useQuery({queryKey:["getExcludeCategory"],queryFn:async r=>await e.get(`${P.ExcludeCategory}${l}/${s}`)})},G=Date.now().toString(36)+Math.random().toString(36).substr(2);console.log("uniqueId",G);const me=({templateHTML:e,className:s="",loading:l=!1})=>{const{post:i}=Q(),{data:r}=pe(),{data:t}=ue(),[o,d]=p.useState(e??{html:k,css:""}),u=p.useRef(null),E="https://plugin.stripocdn.email/content/guids/CABINET_eab4e7d5a4603ac03f4120652a3a5a540f0c79c688514939f095f67433ed4a67/images/photo256.png",N="https://plugins.stripo.email/api/v1/auth";p.useEffect(()=>{(async()=>(await h(),r&&t&&await I($.EDITOR_SCRIPT_URL)))()},[r,t]);async function h(){window.Zone||await new Promise((b,c)=>{const y=document.createElement("script");y.src="https://unpkg.com/zone.js@0.13.1/bundles/zone.umd.min.js";const w=document.querySelector("script[nonce]")?.nonce;w&&y.setAttribute("nonce",w),y.onload=()=>b(),y.onerror=()=>c(new Error("Failed to load zone.js")),document.head.appendChild(y)})}async function I(b){let c=document.getElementById("UiEditorScript");c||(c=document.createElement("script"),c.id="UiEditorScript",c.src=b,c.onload=async()=>{await j()},document.body.appendChild(c)),await new Promise(y=>c.addEventListener("load",()=>y(),{once:!0}))}const j=async()=>{const b=u.current;if(!b){console.error("Missing #stripoEditorContainer in DOM");return}if(!window.UIEditor||typeof window.UIEditor.initEditor!="function"){console.error("UIEditor script not loaded or not exposing initEditor");return}const c={html:o.html,css:o.css,modulesExcludedCategories:t??[],forceRecreate:!0,metadata:{emailId:G,userId:"1",avatarUrl:E},locale:"en",onTokenRefreshRequest:async y=>{const w={pluginId:$.EDITOR_PLUGIN_ID,secretKey:$.EDITOR_SECRET_KEY,userId:G,role:"user"},x=await i(N,w);x?.token&&y(x.token)},mergeTags:ce(r??[])};for(const[y,w]of Object.entries({codeEditorButtonSelector:"#codeEditor",undoButtonSelector:"#undoButton",redoButtonSelector:"#redoButton",mobileViewButtonSelector:"#mobileViewButton",desktopViewButtonSelector:"#desktopViewButton"}))b.ownerDocument&&b.getRootNode()instanceof ShadowRoot&&b.getRootNode().querySelector(w)&&(c[y]=w);await window.UIEditor.initEditor(b,c)};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(g.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",ref:u})]})})},ee=({label:e,register:s,validation:l,required:i=!1,name:r,error:t,className:o="",...d})=>n.jsxs(g.Form.Group,{className:o+" mb-1",children:[e?n.jsxs(g.Form.Label,{className:"mb-3 d-block form-label",children:[e,i&&n.jsx("label",{className:"text-danger",children:"*"})]}):null,n.jsx(g.Form.Control,{name:r,type:"text",...d,isInvalid:!!(t&&t[r]),...s?s(r,{...l}):{},className:`react-select__control ${t&&t[r]&&"border border-danger"}`}),t&&t[r]?n.jsx(g.Form.Control.Feedback,{type:"invalid",children:t[r].message}):null]}),fe=()=>{const e=q(),{enerexIdentifier:s,projectId:l}=_();return S.useQuery({queryKey:["getTemplatesList"],queryFn:async r=>await e.get(`${P.Template_list}${l}/${s}`)})};function V(e){return e.sort((s,l)=>s.name.localeCompare(l.name))}function ge(e){const s=new Map,l=[];e.forEach(t=>s.set(t.id,t));let i=e.filter(t=>t.parent_id===0),r=0;for(;i.length>0;){l.push({level:r,data:i});const t=i.map(d=>d.id);i=e.filter(d=>t.includes(d.parent_id)),r++}return l}function K(e,s){const i=ge(e).find(r=>r.level===s);return i?i.data:[]}const ye=()=>{const e=q(),{enerexIdentifier:s,projectId:l}=_();return S.useMutation({mutationKey:["getTemplate"],mutationFn:async({id:r})=>{if(r)return await e.get(`${P.Template}${s}/${r}/${l}`)}})},he=()=>{const e=q(),{enerexIdentifier:s,projectId:l}=_();return S.useQuery({queryKey:["getTemplateTypes"],queryFn:async r=>await e.get(`${P.TemplateTypes}${s}/${l}`)})};function be(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var W={exports:{}};/*!
357
+ `,Z=p.createContext(void 0),oe=({children:e,configs:s})=>{const[i,o]=p.useState(s.clientId),[r,t]=p.useState(s.apiKey),[l,d]=p.useState(s.enerexIdentifier),[m,C]=p.useState(s.projectId),[q,v]=p.useState(s.userEmail),S=x=>{t(x.apiKey),o(x.clientId),C(x.projectId),d(x.enerexIdentifier),v(x.userEmail)};return n.jsx(Z.Provider,{value:{clientId:i,apiKey:r,setConfiguration:S,enerexIdentifier:l,projectId:m,userEmail:q},children:e})},_=()=>{const e=p.useContext(Z);if(!e)throw new Error("widgetConfig must be used within a ConfigProvider");return e},Q=(e="",s)=>({get:async(r,t)=>{try{const l=await J.get(`${e}${r}`,t??s);if(l.status===200)return l.data}catch(l){throw l}},post:async(r,t,l)=>{try{const d=await J.post(`${e}${r}`,t,l??s);if(d.status===200)return d.data}catch(d){throw d}}}),M={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"},R=p.createContext({get:()=>{throw new Error("HttpClientContext.get not implemented")},post:()=>{throw new Error("HttpClientContext.post not implemented")}}),ae=({children:e})=>{const{clientId:s,apiKey:i}=_(),o={headers:{client_id:s,"x-api-key":i}},{get:r,post:t}=Q(M.API_BASE_URL,o);return n.jsx(R.Provider,{value:{get:r,post:t},children:e})},de=({children:e})=>{const s=new E.QueryClient;return n.jsx(ae,{children:n.jsx(E.QueryClientProvider,{client:s,children:e})})},ce=e=>{const s=Array.from(new Set(e.map(o=>o.category))),i=[];return s.forEach(o=>{const r=e.filter(t=>t.category===o).map(t=>({label:t.label,value:t.value,hint:t.hint,hidden:t.hidden}));i.push({category:o,entries:r})}),i},j=()=>{const e=p.useContext(R);if(e)return e;throw new Error("useHttpClient must be used within a HttpClientProvider")},A={Template_list:"/Template/list/",Template:"/Template/GetTemplate/",MergeTags:"/Template/TemplateMergeTags/",ExcludeCategory:"/Template/GetExcludeCategories/",SaveTemplate:"/Template/save-update/",TemplateTypes:"/Template/TemplateTypes/"},pe=()=>{const e=j(),{enerexIdentifier:s,projectId:i}=_();return E.useQuery({queryKey:["getTemplateTags"],queryFn:async r=>await e.get(`${A.MergeTags}${i}/${s}`)})},me=()=>{const e=j(),{enerexIdentifier:s,projectId:i}=_();return E.useQuery({queryKey:["getExcludeCategory"],queryFn:async r=>await e.get(`${A.ExcludeCategory}${i}/${s}`)})},ue=({templateHTML:e,className:s="",loading:i=!1})=>{const{post:o}=Q(),{data:r}=pe(),{data:t}=me(),[l,d]=p.useState(e??{html:F,css:""}),{userEmail:m}=_(),C=p.useRef(null),q="https://plugin.stripocdn.email/content/guids/CABINET_eab4e7d5a4603ac03f4120652a3a5a540f0c79c688514939f095f67433ed4a67/images/photo256.png",v="https://plugins.stripo.email/api/v1/auth";p.useEffect(()=>{(async()=>(await S(),r&&t&&await x(M.EDITOR_SCRIPT_URL)))()},[r,t]);async function S(){window.Zone||await new Promise((c,h)=>{const y=document.createElement("script");y.src="https://unpkg.com/zone.js@0.13.1/bundles/zone.umd.min.js";const b=document.querySelector("script[nonce]")?.nonce;b&&y.setAttribute("nonce",b),y.onload=()=>c(),y.onerror=()=>h(new Error("Failed to load zone.js")),document.head.appendChild(y)})}async function x(c){let h=document.getElementById("UiEditorScript");h||(h=document.createElement("script"),h.id="UiEditorScript",h.src=c,h.onload=async()=>{await P()},document.body.appendChild(h)),await new Promise(y=>h.addEventListener("load",()=>y(),{once:!0}))}const P=async()=>{const c=C.current;if(!c){console.error("Missing #stripoEditorContainer in DOM");return}if(!window.UIEditor||typeof window.UIEditor.initEditor!="function"){console.error("UIEditor script not loaded or not exposing initEditor");return}const h={html:l.html,css:l.css,modulesExcludedCategories:t??[],forceRecreate:!0,metadata:{emailId:m,userId:"1",avatarUrl:q},locale:"en",onTokenRefreshRequest:async y=>{const b={pluginId:M.EDITOR_PLUGIN_ID,secretKey:M.EDITOR_SECRET_KEY,userId:m,role:"user"},N=await o(v,b);N?.token&&y(N.token)},mergeTags:ce(r??[])};for(const[y,b]of Object.entries({codeEditorButtonSelector:"#codeEditor",undoButtonSelector:"#undoButton",redoButtonSelector:"#redoButton",mobileViewButtonSelector:"#mobileViewButton",desktopViewButtonSelector:"#desktopViewButton"}))c.ownerDocument&&c.getRootNode()instanceof ShadowRoot&&c.getRootNode().querySelector(b)&&(h[y]=b);await window.UIEditor.initEditor(c,h)};return n.jsx("div",{className:"position-relative",children:n.jsxs("div",{className:`editor-container ${s}`,children:[i&&n.jsx("div",{className:"loading-overlay",children:n.jsx(g.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",ref:C})]})})},ee=({label:e,register:s,validation:i,required:o=!1,name:r,error:t,className:l="",...d})=>n.jsxs(g.Form.Group,{className:l+" mb-1",children:[e?n.jsxs(g.Form.Label,{className:"mb-3 d-block form-label",children:[e,o&&n.jsx("label",{className:"text-danger",children:"*"})]}):null,n.jsx(g.Form.Control,{name:r,type:"text",...d,isInvalid:!!(t&&t[r]),...s?s(r,{...i}):{},className:`react-select__control ${t&&t[r]&&"border border-danger"}`}),t&&t[r]?n.jsx(g.Form.Control.Feedback,{type:"invalid",children:t[r].message}):null]}),fe=()=>{const e=j(),{enerexIdentifier:s,projectId:i}=_();return E.useQuery({queryKey:["getTemplatesList"],queryFn:async r=>await e.get(`${A.Template_list}${i}/${s}`)})};function G(e){return e.sort((s,i)=>s.name.localeCompare(i.name))}function ge(e){const s=new Map,i=[];e.forEach(t=>s.set(t.id,t));let o=e.filter(t=>t.parent_id===0),r=0;for(;o.length>0;){i.push({level:r,data:o});const t=o.map(d=>d.id);o=e.filter(d=>t.includes(d.parent_id)),r++}return i}function V(e,s){const o=ge(e).find(r=>r.level===s);return o?o.data:[]}const ye=()=>{const e=j(),{enerexIdentifier:s,projectId:i}=_();return E.useMutation({mutationKey:["getTemplate"],mutationFn:async({id:r})=>{if(r)return await e.get(`${A.Template}${s}/${r}/${i}`)}})},he=()=>{const e=j(),{enerexIdentifier:s,projectId:i}=_();return E.useQuery({queryKey:["getTemplateTypes"],queryFn:async r=>await e.get(`${A.TemplateTypes}${s}/${i}`)})};function be(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var K={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 te;function we(){return te||(te=1,function(e){(function(){var s={}.hasOwnProperty;function l(){for(var t="",o=0;o<arguments.length;o++){var d=arguments[o];d&&(t=r(t,i(d)))}return t}function i(t){if(typeof t=="string"||typeof t=="number")return t;if(typeof t!="object")return"";if(Array.isArray(t))return l.apply(null,t);if(t.toString!==Object.prototype.toString&&!t.toString.toString().includes("[native code]"))return t.toString();var o="";for(var d in t)s.call(t,d)&&t[d]&&(o=r(o,d));return o}function r(t,o){return o?t?t+" "+o:t+o:t}e.exports?(l.default=l,e.exports=l):window.classNames=l})()}(W)),W.exports}var Te=we();const ne=be(Te),re=e=>e.data.isSeparator?n.jsx("div",{style:{padding:0,margin:"2px 0"},children:n.jsx("hr",{style:{border:0,borderTop:"1px solid #bdbdbdff",padding:0,margin:0}})}):n.jsx(z.components.Option,{...e}),ve=({name:e="",control:s,options:l,multiple:i=!1,placeholder:r,validation:t,labelKey:o="name",disabled:d,isInvalid:u,value:E,onChange:N,uncontrolled:h,menuPlacement:I="auto",closeOnSelect:j=!0})=>{const b={control:c=>({...c,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:c=>({...c,marginTop:0,width:"max-content",minWidth:"100%"}),menuPortal:c=>({...c,zIndex:9999}),multiValueRemove:c=>({...c,display:d?"none":"block"})};return h?n.jsx(z,{components:{Option:re},isOptionDisabled:c=>!!c.isSeparator,className:ne({"is-invalid":u}),styles:b,classNamePrefix:"react-select",isMulti:i,options:l,onChange:N,placeholder:r,menuPortalTarget:document.body,value:E,getOptionLabel:typeof o=="string"?c=>c[o]:o,getOptionValue:c=>c.id,isDisabled:d,menuPlacement:I,closeMenuOnSelect:j}):n.jsx(X.Controller,{control:s,name:e,rules:t,render:({field:{onChange:c,value:y,onBlur:w}})=>n.jsx(z,{components:{Option:re},isOptionDisabled:x=>!!x.isSeparator,className:ne({"is-invalid":u}),styles:b,classNamePrefix:"react-select",isMulti:i,options:l,onBlur:w,onChange:c,placeholder:r,menuPortalTarget:document.body,value:y,getOptionLabel:typeof o=="string"?x=>x[o]:o,getOptionValue:x=>x.id,isDisabled:d,menuPlacement:I,closeMenuOnSelect:j},y?JSON.stringify(y):"reset")})},M=({label:e,name:s,validation:l,control:i,error:r,...t})=>n.jsxs(g.Form.Group,{className:"mb-1",children:[e&&n.jsxs(g.Form.Label,{className:"mb-3 d-block form-label",children:[e," ",t.required&&n.jsx("span",{className:"text-danger",children:"*"})]}),n.jsx(ve,{control:i,options:t.options??[],validation:l,isInvalid:r&&!!r[s],name:s}),r&&r[s]?n.jsx(g.Form.Control.Feedback,{type:"invalid",children:r[s].message}):null]}),xe=()=>{const e=q();S.useQueryClient();const{enerexIdentifier:s,projectId:l}=_();return S.useMutation({mutationKey:["saveTemplate"],mutationFn:async r=>(r.enerexIdentifier=s??"",r.projectId=l??"",await e.post(`${P.SaveTemplate}`,r))})},F={id:"",name:"New (Blank)"},se={id:"",name:"Separator",isSeparator:!0},Se=({onSelectItem:e,templateLoading:s,onReset:l})=>{const{register:i,handleSubmit:r,clearErrors:t,setValue:o,control:d,watch:u,reset:E,setError:N,formState:{errors:h}}=X.useForm({defaultValues:{templateName:"",subTemplateType:void 0,subTemplateType2:void 0,subject:"",templateType:void 0,template:F},mode:"onChange"}),{data:I,refetch:j,isLoading:b}=fe(),[c,y]=p.useState([]),[w,x]=p.useState(),[U,le]=p.useState(),{mutateAsync:Ee,isPending:A}=ye(),{mutateAsync:Ie,isPending:H}=xe(),{data:D,isLoading:oe}=he(),[_e,Ne]=p.useState([]),[O,B]=p.useState([]),[L,qe]=p.useState([]);p.useEffect(()=>{if(D){let a=D.filter(f=>f.id!=null),m=K(a,0);Ne(V(m))}},[D]);const Pe=(a,m)=>{let f=[];return a.forEach((C,T)=>{m.includes(T)&&T!==0&&f.push(se),f.push(C)}),f};p.useEffect(()=>{s(!!A)},[A]),p.useEffect(()=>{I?.sort((a,m)=>a.readonly!==m.readonly?(a.readonly?0:1)-(m.readonly?0:1):a.name.localeCompare(m.name)),y(I??[])},[I]);const je=async a=>{x(a),a&&!a.readonly?(o("templateName",a?.name),t()):(o("templateName",""),o("subject",""));const m=await Ee({id:a?.id});le(m||void 0)};p.useEffect(()=>{if(o("template",F),u("templateType")){let a=D?.filter(f=>f.id!==void 0)??[],m=K(a,1);B(V(m.filter(f=>f.parent_id.toString()===`${u("templateType")?.id}`))),o("subTemplateType",void 0)}},[u("templateType")]),p.useEffect(()=>{if(o("template",F),u("subTemplateType")){let a=D?.filter(f=>f.id!==void 0)??[],m=K(a,2);qe(V(m.filter(f=>f.parent_id.toString()===`${u("subTemplateType")?.id}`))),o("subTemplateType2",void 0)}},[u("subTemplateType")]),p.useEffect(()=>{let a=c.find(m=>m.id===u("template")?.id);je(a)},[u("template")]),p.useEffect(()=>{U&&w?(e(U),o("subject",U.subject??"")):e(void 0)},[U,w,e]);const Ae=()=>{let a=[F],m="templateType";L.length>0?m="subTemplateType2":O.length>0&&(m="subTemplateType");let f=c.filter(T=>(T.type?.toString()===u(m)?.id.toString()||T.type===null)&&u(m)?.id!=null),C=Pe(f,[f.findIndex(T=>!T.readonly)]);return C.length>0&&(a.push(se),a=[...a,...C.map(T=>({id:T.id,name:Oe(f,T.id),isSeparator:T.isSeparator}))]),a.length?a:[]},Oe=(a,m)=>{let f=a.find(C=>C.id===m);return f?`${f.readonly?"Default - ":"Custom - "} ${f.name}`:""},Le=a=>{window.StripoEditorApi.actionsApi.getTemplateData(async m=>{let f=a.template.id,C="";w?.readonly&&(f="",C=a.template.id);let T=c.find(ke=>ke.name===a.templateName.trim());if(T&&T.id!==f){N("templateName",{type:"validate",message:"Template name already exists. Please choose a different name."});return}let Y=a.templateType.id;L&&L.length>0?Y=a.subTemplateType2.id:O&&O.length>0&&(Y=a.subTemplateType.id);const De={enerexIdentifier:"",projectId:"",templateId:f,templateType:Y,name:a.templateName.trim(),html:m.html,css:m.css,subject:a.templateType.id==="2"?a?.subject??"":"",parent_id:C};await Ie(De)&&(t(),E(),B([]),j())})};return n.jsx(g.Card,{className:"border border-0 text-start",children:n.jsx(g.Card.Body,{className:"pe-0 ps-2",children:n.jsx("form",{onSubmit:r(Le),children:n.jsx("div",{className:"template-list-container gap-3",children:n.jsxs(g.Row,{children:[n.jsx(g.Col,{children:n.jsx(M,{label:"Category",control:d,error:h,options:_e,required:!0,validation:{required:{value:!0,message:"Select a category"}},...i("templateType")})}),O&&O.length>0&&n.jsx(g.Col,{children:n.jsx(M,{label:"Type",control:d,error:h,options:O,required:!0,validation:{required:{value:!0,message:"Select a type"}},...i("subTemplateType")})}),L&&L.length>0&&n.jsx(g.Col,{children:n.jsx(M,{label:"Sub Type",control:d,error:h,options:L,required:!0,validation:{required:{value:!0,message:"Select a subtype"}},...i("subTemplateType2")})}),n.jsx(g.Col,{children:n.jsx(M,{label:"Template",control:d,error:h,options:Ae(),required:!1,...i("template")})}),n.jsx(g.Col,{children:n.jsx(ee,{label:"Name",register:i,error:h,required:!0,name:"templateName",validation:{required:{value:!0,message:"Enter a name"}}})}),u("templateType")?.id==="2"&&n.jsx(g.Col,{children:n.jsx(ee,{label:"Subject",register:i,error:h,required:!1,name:"subject"})}),n.jsxs(g.Col,{className:"d-flex align-items-end justify-content-end gap-2 mb-3",children:[n.jsx(g.Button,{style:{width:"70px"},variant:"primary",disabled:b||A||H||oe,onClick:()=>{x(void 0),E(),B([]),l()},children:A||H?n.jsx(g.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.toString()!=="2"||(u("templateType")?.id.toString()==="2"&&(w?.id??""))!=="")&&n.jsx(n.Fragment,{children:n.jsx(g.Button,{type:"submit",variant:"primary",style:{width:"80px"},disabled:b||A||H||oe,children:A||H?n.jsx(g.Spinner,{animation:"border",style:{width:"11px",height:"11px"},size:"sm",role:"status",className:"me-1",children:n.jsx("span",{className:"visually-hidden",children:"Loading..."})}):w?.readonly?"Save as":"Save"})})]})]})})})})})},Ce=({config:e})=>{const[s,l]=p.useState(),[i,r]=p.useState(!1),t=d=>{if(l(d),window.StripoEditorApi&&window.StripoEditorApi.actionsApi){let u=k;window.StripoEditorApi.actionsApi.updateHtmlAndCss(d?.html??u,d?.css??"","")}},o=()=>{r(!1),l(void 0),window.StripoEditorApi&&window.StripoEditorApi.actionsApi&&window.StripoEditorApi.actionsApi.updateHtmlAndCss(k,"","")};return n.jsx(ie,{configs:e,children:n.jsx(de,{children:n.jsxs("div",{className:"root-widget",children:[n.jsx(Se,{templateLoading:r,onSelectItem:t,onReset:o}),n.jsx(me,{templateHTML:{css:s?.css??"",html:s?.html??k},loading:!1,className:"col-span-5"})]})})})};v.EditorWidget=Ce,Object.defineProperty(v,Symbol.toStringTag,{value:"Module"})});
361
+ */var te;function Te(){return te||(te=1,function(e){(function(){var s={}.hasOwnProperty;function i(){for(var t="",l=0;l<arguments.length;l++){var d=arguments[l];d&&(t=r(t,o(d)))}return t}function o(t){if(typeof t=="string"||typeof t=="number")return t;if(typeof t!="object")return"";if(Array.isArray(t))return i.apply(null,t);if(t.toString!==Object.prototype.toString&&!t.toString.toString().includes("[native code]"))return t.toString();var l="";for(var d in t)s.call(t,d)&&t[d]&&(l=r(l,d));return l}function r(t,l){return l?t?t+" "+l:t+l:t}e.exports?(i.default=i,e.exports=i):window.classNames=i})()}(K)),K.exports}var we=Te();const ne=be(we),re=e=>e.data.isSeparator?n.jsx("div",{style:{padding:0,margin:"2px 0"},children:n.jsx("hr",{style:{border:0,borderTop:"1px solid #bdbdbdff",padding:0,margin:0}})}):n.jsx(z.components.Option,{...e}),ve=({name:e="",control:s,options:i,multiple:o=!1,placeholder:r,validation:t,labelKey:l="name",disabled:d,isInvalid:m,value:C,onChange:q,uncontrolled:v,menuPlacement:S="auto",closeOnSelect:x=!0})=>{const P={control:c=>({...c,minHeight:"33px",borderColor:m?"var(--bs-form-invalid-border-color) !important":"var(--ct-input-border-color)",backgroundImage:m?'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:m?"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:c=>({...c,marginTop:0,width:"max-content",minWidth:"100%"}),menuPortal:c=>({...c,zIndex:9999}),multiValueRemove:c=>({...c,display:d?"none":"block"})};return v?n.jsx(z,{components:{Option:re},isOptionDisabled:c=>!!c.isSeparator,className:ne({"is-invalid":m}),styles:P,classNamePrefix:"react-select",isMulti:o,options:i,onChange:q,placeholder:r,menuPortalTarget:document.body,value:C,getOptionLabel:typeof l=="string"?c=>c[l]:l,getOptionValue:c=>c.id,isDisabled:d,menuPlacement:S,closeMenuOnSelect:x}):n.jsx(X.Controller,{control:s,name:e,rules:t,render:({field:{onChange:c,value:h,onBlur:y}})=>n.jsx(z,{components:{Option:re},isOptionDisabled:b=>!!b.isSeparator,className:ne({"is-invalid":m}),styles:P,classNamePrefix:"react-select",isMulti:o,options:i,onBlur:y,onChange:c,placeholder:r,menuPortalTarget:document.body,value:h,getOptionLabel:typeof l=="string"?b=>b[l]:l,getOptionValue:b=>b.id,isDisabled:d,menuPlacement:S,closeMenuOnSelect:x},h?JSON.stringify(h):"reset")})},U=({label:e,name:s,validation:i,control:o,error:r,...t})=>n.jsxs(g.Form.Group,{className:"mb-1",children:[e&&n.jsxs(g.Form.Label,{className:"mb-3 d-block form-label",children:[e," ",t.required&&n.jsx("span",{className:"text-danger",children:"*"})]}),n.jsx(ve,{control:o,options:t.options??[],validation:i,isInvalid:r&&!!r[s],name:s}),r&&r[s]?n.jsx(g.Form.Control.Feedback,{type:"invalid",children:r[s].message}):null]}),xe=()=>{const e=j();E.useQueryClient();const{enerexIdentifier:s,projectId:i}=_();return E.useMutation({mutationKey:["saveTemplate"],mutationFn:async r=>(r.enerexIdentifier=s??"",r.projectId=i??"",await e.post(`${A.SaveTemplate}`,r))})},k={id:"",name:"New (Blank)"},se={id:"",name:"Separator",isSeparator:!0},Se=({onSelectItem:e,templateLoading:s,onReset:i})=>{const{register:o,handleSubmit:r,clearErrors:t,setValue:l,control:d,watch:m,reset:C,setError:q,formState:{errors:v}}=X.useForm({defaultValues:{templateName:"",subTemplateType:void 0,subTemplateType2:void 0,subject:"",templateType:void 0,template:k},mode:"onChange"}),{data:S,refetch:x,isLoading:P}=fe(),[c,h]=p.useState([]),[y,b]=p.useState(),[N,le]=p.useState(),{mutateAsync:Ce,isPending:O}=ye(),{mutateAsync:Ie,isPending:H}=xe(),{data:$,isLoading:ie}=he(),[_e,Ne]=p.useState([]),[L,W]=p.useState([]),[D,B]=p.useState([]);p.useEffect(()=>{if($){let a=$.filter(f=>f.id!=null),u=V(a,0);Ne(G(u))}},[$]);const qe=(a,u)=>{let f=[];return a.forEach((I,T)=>{u.includes(T)&&T!==0&&f.push(se),f.push(I)}),f};p.useEffect(()=>{s(!!O)},[O]),p.useEffect(()=>{S?.sort((a,u)=>a.readonly!==u.readonly?(a.readonly?0:1)-(u.readonly?0:1):a.name.localeCompare(u.name)),h(S??[])},[S]);const Pe=async a=>{b(a),a&&!a.readonly?(l("templateName",a?.name),t()):(l("templateName",""),l("subject",""));const u=await Ce({id:a?.id});le(u||void 0)};p.useEffect(()=>{if(l("template",k),m("templateType")){let a=$?.filter(f=>f.id!==void 0)??[],u=V(a,1);W(G(u.filter(f=>f.parent_id.toString()===`${m("templateType")?.id}`))),l("subTemplateType",void 0),l("subTemplateType2",void 0)}},[m("templateType")]),p.useEffect(()=>{if(l("template",k),m("subTemplateType")){let a=$?.filter(f=>f.id!==void 0)??[],u=V(a,2);B(G(u.filter(f=>f.parent_id.toString()===`${m("subTemplateType")?.id}`))),l("subTemplateType2",void 0)}},[m("subTemplateType")]),p.useEffect(()=>{l("template",k)},[m("subTemplateType2")]),p.useEffect(()=>{let a=c.find(u=>u.id===m("template")?.id);Pe(a)},[m("template")]),p.useEffect(()=>{N&&y?(e(N),l("subject",N.subject??"")):e(void 0)},[N,y,e]);const je=()=>{let a=[k],u="templateType";D.length>0?u="subTemplateType2":L.length>0&&(u="subTemplateType");let f=c.filter(T=>(T.type?.toString()===m(u)?.id.toString()||T.type===null)&&m(u)?.id!=null),I=qe(f,[f.findIndex(T=>!T.readonly)]);return I.length>0&&(a.push(se),a=[...a,...I.map(T=>({id:T.id,name:Ae(f,T.id),isSeparator:T.isSeparator}))]),a.length?a:[]},Ae=(a,u)=>{let f=a.find(I=>I.id===u);return f?`${f.displayName}`:""},Oe=a=>{window.StripoEditorApi.actionsApi.getTemplateData(async u=>{let f=a.template.id,I="";y?.readonly&&(f="",I=a.template.id);let T=c.find(De=>De.name===a.templateName.trim());if(T&&T.id!==f){q("templateName",{type:"validate",message:"Template name already exists. Please choose a different name."});return}let Y=a.templateType.id;D&&D.length>0?Y=a.subTemplateType2.id:L&&L.length>0&&(Y=a.subTemplateType.id);const Le={enerexIdentifier:"",projectId:"",templateId:f,templateType:Y,name:a.templateName.trim(),html:u.html,css:u.css,subject:a.templateType.id==="2"?a?.subject??"":"",parent_id:I};await Ie(Le)&&(t(),C(),W([]),B([]),x())})};return n.jsx(g.Card,{className:"border border-0 text-start",children:n.jsx(g.Card.Body,{className:"pe-0 ps-2",children:n.jsx("form",{onSubmit:r(Oe),children:n.jsx("div",{className:"template-list-container gap-3",children:n.jsxs(g.Row,{children:[n.jsx(g.Col,{children:n.jsx(U,{label:"Category",control:d,error:v,options:_e,required:!0,validation:{required:{value:!0,message:"Select a category"}},...o("templateType")})}),L&&L.length>0&&n.jsx(g.Col,{children:n.jsx(U,{label:"Type",control:d,error:v,options:L,required:!0,validation:{required:{value:!0,message:"Select a type"}},...o("subTemplateType")})}),D&&D.length>0&&n.jsx(g.Col,{children:n.jsx(U,{label:"Sub Type",control:d,error:v,options:D,required:!0,validation:{required:{value:!0,message:"Select a subtype"}},...o("subTemplateType2")})}),n.jsx(g.Col,{children:n.jsx(U,{label:"Template",control:d,error:v,options:je(),required:!1,...o("template")})}),n.jsx(g.Col,{children:n.jsx(ee,{label:"Name",register:o,error:v,required:!0,name:"templateName",validation:{required:{value:!0,message:"Enter a name"}}})}),m("templateType")?.id==="2"&&n.jsx(g.Col,{children:n.jsx(ee,{label:"Subject",register:o,error:v,required:!1,name:"subject"})}),n.jsxs(g.Col,{className:"d-flex align-self-start justify-content-end gap-2 mb-1 btn-padding",children:[n.jsx(g.Button,{style:{width:"70px"},variant:"primary",disabled:P||O||H||ie,onClick:()=>{b(void 0),C(),W([]),B([]),i()},children:O||H?n.jsx(g.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"}),(m("templateType")?.id.toString()!=="2"||(m("templateType")?.id.toString()==="2"&&(y?.id??""))!=="")&&n.jsx(n.Fragment,{children:n.jsx(g.Button,{type:"submit",variant:"primary",style:{width:"80px"},disabled:P||O||H||ie,children:O||H?n.jsx(g.Spinner,{animation:"border",style:{width:"11px",height:"11px"},size:"sm",role:"status",className:"me-1",children:n.jsx("span",{className:"visually-hidden",children:"Loading..."})}):y?.readonly?"Save as":"Save"})})]})]})})})})})},Ee=({config:e})=>{const[s,i]=p.useState(),[o,r]=p.useState(!1),t=d=>{if(i(d),window.StripoEditorApi&&window.StripoEditorApi.actionsApi){let m=F;window.StripoEditorApi.actionsApi.updateHtmlAndCss(d?.html??m,d?.css??"","")}},l=()=>{r(!1),i(void 0),window.StripoEditorApi&&window.StripoEditorApi.actionsApi&&window.StripoEditorApi.actionsApi.updateHtmlAndCss(F,"","")};return n.jsx(oe,{configs:e,children:n.jsx(de,{children:n.jsxs("div",{className:"root-widget",children:[n.jsx(Se,{templateLoading:r,onSelectItem:t,onReset:l}),n.jsx(ue,{templateHTML:{css:s?.css??"",html:s?.html??F},loading:!1,className:"col-span-5"})]})})})};w.EditorWidget=Ee,Object.defineProperty(w,Symbol.toStringTag,{value:"Module"})});
@@ -1 +1 @@
1
- .root-widget{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif,Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;-moz-osx-font-smoothing:grayscale;line-height:1.5;font-weight:400;-webkit-font-smoothing:antialiased}.root-widget code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.root-widget .ng-star-inserted{display:none}.root-widget .wraped-text{text-wrap:nowrap;overflow:hidden;text-overflow:ellipsis}.root-widget .required:after{content:" *";color:#fa5c7c}.root-widget button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;cursor:pointer;transition:border-color .25s}.root-widget button:hover{border-color:#646cff}.root-widget button:focus,.root-widget button:focus-visible{outline:4px auto -webkit-focus-ring-color}.root-widget .loader-container{display:flex;justify-content:center;align-items:center;height:100vh;width:100vw}.root-widget .info-icon{height:14px}.root-widget .info-icon img{width:100%;height:100%}.dark-popover{left:50%;transform:translate(-50%) translateY(-8px);z-index:9999;width:50px!important;font-size:.85rem!important;padding:.5rem;background-color:#1e1e1e!important;color:#f1f1f1;border:1px solid #444}.dark-popover.bs-popover-top>.popover-arrow:before,.dark-popover.bs-popover-bottom>.popover-arrow:before,.dark-popover.bs-popover-left>.popover-arrow:before,.dark-popover.bs-popover-right>.popover-arrow:before{border-color:transparent!important}.dark-popover.bs-popover-top>.popover-arrow:after{border-top-color:#1e1e1e!important}.dark-popover.bs-popover-bottom>.popover-arrow:after{border-bottom-color:#1e1e1e!important}.dark-popover.bs-popover-left>.popover-arrow:after{border-left-color:#1e1e1e!important}.dark-popover.bs-popover-right>.popover-arrow:after{border-right-color:#1e1e1e!important}.template-list-container{max-height:350px;overflow-y:auto}.react-select__control--is-focused{border-color:var(--ct-input-border-color)!important;box-shadow:none!important}.react-select__option{color:var(--ct-input-color)!important;background-color:#fff!important}.react-select__option:hover,.react-select__option--is-focused,.react-select__option--is-selected{color:var(--ct-input-color)!important;background-color:#deebff!important}.root-widget label{font-weight:600!important}.root-widget input{padding-block:1px!important;padding-inline:2px!important}.root-widget .form-control{display:block!important;outline:none!important;box-shadow:none!important;width:100%!important;padding:.45rem .9rem!important;font-size:.9rem!important;font-weight:400!important;line-height:1.5!important;color:var(--ct-input-color)!important;background-color:var(--ct-input-bg)!important;background-clip:padding-box!important;border:1px solid var(--ct-input-border-color)!important;appearance:none!important;border-radius:.25rem!important;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out!important}.root-widget .btn{--bs-btn-padding-x: .9rem !important;--bs-btn-padding-y: .25rem !important;--bs-btn-font-size: .9rem !important;--bs-btn-font-weight: 400 !important;--bs-btn-line-height: 1.5 !important;--bs-btn-color: #6c757d !important;--bs-btn-bg: transparent !important;--bs-btn-border-width: 1px !important;--bs-btn-border-color: transparent !important;--bs-btn-border-radius: .15rem !important;--bs-btn-hover-border-color: transparent !important;--bs-btn-box-shadow: 0px 2px 6px 0px !important;--bs-btn-disabled-opacity: .65 !important;--bs-btn-focus-box-shadow: 0 0 0 .2rem rgba(var(--bs-btn-focus-shadow-rgb), .5) !important;display:inline-block!important;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x)!important;font-family:var(--bs-btn-font-family)!important;font-size:var(--bs-btn-font-size)!important;font-weight:var(--bs-btn-font-weight)!important;line-height:var(--bs-btn-line-height)!important;color:var(--bs-btn-color)!important;text-align:center!important;vertical-align:middle!important;cursor:pointer!important;-webkit-user-select:none!important;user-select:none!important;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color)!important;border-radius:var(--bs-btn-border-radius)!important;background-color:var(--bs-btn-bg)!important;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out!important}.root-widget .btn-primary{--bs-btn-color: #fff !important;--bs-btn-bg: #131c45 !important;--bs-btn-border-color: #131c45 !important;--bs-btn-hover-color: #fff !important;--bs-btn-hover-bg: #10183b !important;--bs-btn-hover-border-color: #0f1637 !important;--bs-btn-focus-shadow-rgb: 54, 62, 97 !important;--bs-btn-active-color: #fff !important;--bs-btn-active-bg: #0f1637 !important;--bs-btn-active-border-color: #0e1534 !important;--bs-btn-active-shadow: var(--ct-btn-active-box-shadow) !important;--bs-btn-disabled-color: #fff !important;--bs-btn-disabled-bg: #131c45 !important;--bs-btn-disabled-border-color: #131c45 !important}.root-widget .logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.root-widget .logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.root-widget .logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}.root-widget .requiredField:after{content:"";font-family:FontAwesome;position:absolute;left:10px;top:10px;color:red}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.root-widget .card{padding:.3em}.root-widget .read-the-docs{color:#888}.root-widget .row{margin:0!important}.root-widget{--ct-input-border-color: #ced4da !important}#stripoEditorContainer{height:calc(100% + -0px)}.editor-container{height:100vh;position:absolute;min-width:1200px;width:100%;overflow:auto}.root-widget .loading-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#fffc;display:flex;justify-content:center;align-items:center;z-index:1000}
1
+ .root-widget{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif,Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;-moz-osx-font-smoothing:grayscale;line-height:1.5;font-weight:400;-webkit-font-smoothing:antialiased}.root-widget code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.root-widget .ng-star-inserted{display:none}.root-widget .wraped-text{text-wrap:nowrap;overflow:hidden;text-overflow:ellipsis}.root-widget .required:after{content:" *";color:#fa5c7c}.root-widget button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;cursor:pointer;transition:border-color .25s}.root-widget button:hover{border-color:#646cff}.root-widget button:focus,.root-widget button:focus-visible{outline:4px auto -webkit-focus-ring-color}.root-widget .loader-container{display:flex;justify-content:center;align-items:center;height:100vh;width:100vw}.root-widget .info-icon{height:14px}.root-widget .info-icon img{width:100%;height:100%}.dark-popover{left:50%;transform:translate(-50%) translateY(-8px);z-index:9999;width:50px!important;font-size:.85rem!important;padding:.5rem;background-color:#1e1e1e!important;color:#f1f1f1;border:1px solid #444}.dark-popover.bs-popover-top>.popover-arrow:before,.dark-popover.bs-popover-bottom>.popover-arrow:before,.dark-popover.bs-popover-left>.popover-arrow:before,.dark-popover.bs-popover-right>.popover-arrow:before{border-color:transparent!important}.dark-popover.bs-popover-top>.popover-arrow:after{border-top-color:#1e1e1e!important}.dark-popover.bs-popover-bottom>.popover-arrow:after{border-bottom-color:#1e1e1e!important}.dark-popover.bs-popover-left>.popover-arrow:after{border-left-color:#1e1e1e!important}.dark-popover.bs-popover-right>.popover-arrow:after{border-right-color:#1e1e1e!important}.template-list-container{max-height:350px;overflow-y:auto}.react-select__control--is-focused{border-color:var(--ct-input-border-color)!important;box-shadow:none!important}.react-select__option{color:var(--ct-input-color)!important;background-color:#fff!important}.react-select__option:hover,.react-select__option--is-focused,.react-select__option--is-selected{color:var(--ct-input-color)!important;background-color:#deebff!important}.root-widget label{font-weight:600!important}.root-widget input{padding-block:1px!important;padding-inline:2px!important}.root-widget .form-control{display:block!important;min-height:33px;outline:none!important;box-shadow:none!important;width:100%!important;font-weight:400!important;line-height:1.5!important;color:var(--ct-input-color)!important;background-color:var(--ct-input-bg)!important;background-clip:padding-box!important;border:1px solid var(--ct-input-border-color)!important;appearance:none!important;border-radius:.25rem!important;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out!important}.root-widget .btn{--bs-btn-padding-x: 12px !important;--bs-btn-padding-y: 5px !important;--bs-btn-font-size: .9rem !important;--bs-btn-font-weight: 400 !important;--bs-btn-line-height: 1.5 !important;--bs-btn-color: #6c757d !important;--bs-btn-bg: transparent !important;--bs-btn-border-width: 1px !important;--bs-btn-border-color: transparent !important;--bs-btn-border-radius: .15rem !important;--bs-btn-hover-border-color: transparent !important;--bs-btn-box-shadow: 0px 2px 6px 0px !important;--bs-btn-disabled-opacity: .65 !important;--bs-btn-focus-box-shadow: 0 0 0 .2rem rgba(var(--bs-btn-focus-shadow-rgb), .5) !important;display:inline-block!important;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x)!important;font-family:var(--bs-btn-font-family)!important;font-size:var(--bs-btn-font-size)!important;font-weight:var(--bs-btn-font-weight)!important;line-height:var(--bs-btn-line-height)!important;color:var(--bs-btn-color)!important;text-align:center!important;vertical-align:middle!important;cursor:pointer!important;-webkit-user-select:none!important;user-select:none!important;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color)!important;border-radius:var(--bs-btn-border-radius)!important;background-color:var(--bs-btn-bg)!important;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out!important}.root-widget .btn-primary{--bs-btn-color: #fff !important;--bs-btn-bg: #131c45 !important;--bs-btn-border-color: #131c45 !important;--bs-btn-hover-color: #fff !important;--bs-btn-hover-bg: #10183b !important;--bs-btn-hover-border-color: #0f1637 !important;--bs-btn-focus-shadow-rgb: 54, 62, 97 !important;--bs-btn-active-color: #fff !important;--bs-btn-active-bg: #0f1637 !important;--bs-btn-active-border-color: #0e1534 !important;--bs-btn-active-shadow: var(--ct-btn-active-box-shadow) !important;--bs-btn-disabled-color: #fff !important;--bs-btn-disabled-bg: #131c45 !important;--bs-btn-disabled-border-color: #131c45 !important}.root-widget .logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.root-widget .logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.root-widget .logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}.root-widget .requiredField:after{content:"";font-family:FontAwesome;position:absolute;left:10px;top:10px;color:red}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.root-widget .card{padding:.3em}.root-widget .read-the-docs{color:#888}.root-widget .row{margin:0!important}.root-widget{--ct-input-border-color: #ced4da !important}.root-widget .btn-padding{padding-top:40px}#stripoEditorContainer{height:calc(100% + -0px)}.editor-container{height:100vh;position:absolute;min-width:1200px;width:100%;overflow:auto}.root-widget .loading-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#fffc;display:flex;justify-content:center;align-items:center;z-index:1000}
@@ -8,6 +8,7 @@ export interface IConfigSettings {
8
8
  apiKey: string;
9
9
  enerexIdentifier?: string;
10
10
  projectId?: string;
11
+ userEmail?: string;
11
12
  }
12
13
  interface ConfigProvidersProp extends SingleChildProp {
13
14
  configs: IConfigSettings;
@@ -5,6 +5,7 @@ export type InputTemplatesList = {
5
5
  export type ITemplatesList = {
6
6
  id: string;
7
7
  name: string;
8
+ displayName: string;
8
9
  type: number;
9
10
  projectId: number;
10
11
  readonly: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enerex/template-studio",
3
- "version": "1.1.32",
3
+ "version": "1.1.34",
4
4
  "main": "./dist/enerex-template-editor.umd.js",
5
5
  "module": "./dist/enerex-template-editor.es.js",
6
6
  "types": "./dist/types/index.d.ts",