@wysdym/agent 1.21.0 → 1.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.es.js CHANGED
@@ -1853,10 +1853,10 @@ function requireLottie() {
1853
1853
  function N() {
1854
1854
  A || (A = O(function(z) {
1855
1855
  function H() {
1856
- function Q(fe, ne) {
1857
- var ce, ee, te = fe.length, oe, ae, de, ge;
1856
+ function Q(me, ne) {
1857
+ var ce, ee, te = me.length, oe, ae, de, ge;
1858
1858
  for (ee = 0; ee < te; ee += 1)
1859
- if (ce = fe[ee], "ks" in ce && !ce.completed) {
1859
+ if (ce = me[ee], "ks" in ce && !ce.completed) {
1860
1860
  if (ce.completed = !0, ce.hasMask) {
1861
1861
  var ye = ce.masksProperties;
1862
1862
  for (ae = ye.length, oe = 0; oe < ae; oe += 1)
@@ -1869,47 +1869,47 @@ function requireLottie() {
1869
1869
  ce.ty === 0 ? (ce.layers = G(ce.refId, ne), Q(ce.layers, ne)) : ce.ty === 4 ? K(ce.shapes) : ce.ty === 5 && ve(ce);
1870
1870
  }
1871
1871
  }
1872
- function j(fe, ne) {
1873
- if (fe) {
1874
- var ce = 0, ee = fe.length;
1872
+ function j(me, ne) {
1873
+ if (me) {
1874
+ var ce = 0, ee = me.length;
1875
1875
  for (ce = 0; ce < ee; ce += 1)
1876
- fe[ce].t === 1 && (fe[ce].data.layers = G(fe[ce].data.refId, ne), Q(fe[ce].data.layers, ne));
1876
+ me[ce].t === 1 && (me[ce].data.layers = G(me[ce].data.refId, ne), Q(me[ce].data.layers, ne));
1877
1877
  }
1878
1878
  }
1879
- function J(fe, ne) {
1879
+ function J(me, ne) {
1880
1880
  for (var ce = 0, ee = ne.length; ce < ee; ) {
1881
- if (ne[ce].id === fe)
1881
+ if (ne[ce].id === me)
1882
1882
  return ne[ce];
1883
1883
  ce += 1;
1884
1884
  }
1885
1885
  return null;
1886
1886
  }
1887
- function G(fe, ne) {
1888
- var ce = J(fe, ne);
1887
+ function G(me, ne) {
1888
+ var ce = J(me, ne);
1889
1889
  return ce ? ce.layers.__used ? JSON.parse(JSON.stringify(ce.layers)) : (ce.layers.__used = !0, ce.layers) : null;
1890
1890
  }
1891
- function K(fe) {
1892
- var ne, ce = fe.length, ee, te;
1891
+ function K(me) {
1892
+ var ne, ce = me.length, ee, te;
1893
1893
  for (ne = ce - 1; ne >= 0; ne -= 1)
1894
- if (fe[ne].ty === "sh")
1895
- if (fe[ne].ks.k.i)
1896
- Y(fe[ne].ks.k);
1894
+ if (me[ne].ty === "sh")
1895
+ if (me[ne].ks.k.i)
1896
+ Y(me[ne].ks.k);
1897
1897
  else
1898
- for (te = fe[ne].ks.k.length, ee = 0; ee < te; ee += 1)
1899
- fe[ne].ks.k[ee].s && Y(fe[ne].ks.k[ee].s[0]), fe[ne].ks.k[ee].e && Y(fe[ne].ks.k[ee].e[0]);
1900
- else fe[ne].ty === "gr" && K(fe[ne].it);
1898
+ for (te = me[ne].ks.k.length, ee = 0; ee < te; ee += 1)
1899
+ me[ne].ks.k[ee].s && Y(me[ne].ks.k[ee].s[0]), me[ne].ks.k[ee].e && Y(me[ne].ks.k[ee].e[0]);
1900
+ else me[ne].ty === "gr" && K(me[ne].it);
1901
1901
  }
1902
- function Y(fe) {
1903
- var ne, ce = fe.i.length;
1902
+ function Y(me) {
1903
+ var ne, ce = me.i.length;
1904
1904
  for (ne = 0; ne < ce; ne += 1)
1905
- fe.i[ne][0] += fe.v[ne][0], fe.i[ne][1] += fe.v[ne][1], fe.o[ne][0] += fe.v[ne][0], fe.o[ne][1] += fe.v[ne][1];
1905
+ me.i[ne][0] += me.v[ne][0], me.i[ne][1] += me.v[ne][1], me.o[ne][0] += me.v[ne][0], me.o[ne][1] += me.v[ne][1];
1906
1906
  }
1907
- function Z(fe, ne) {
1907
+ function Z(me, ne) {
1908
1908
  var ce = ne ? ne.split(".") : [100, 100, 100];
1909
- return fe[0] > ce[0] ? !0 : ce[0] > fe[0] ? !1 : fe[1] > ce[1] ? !0 : ce[1] > fe[1] ? !1 : fe[2] > ce[2] ? !0 : ce[2] > fe[2] ? !1 : null;
1909
+ return me[0] > ce[0] ? !0 : ce[0] > me[0] ? !1 : me[1] > ce[1] ? !0 : ce[1] > me[1] ? !1 : me[2] > ce[2] ? !0 : ce[2] > me[2] ? !1 : null;
1910
1910
  }
1911
1911
  var ie = /* @__PURE__ */ (function() {
1912
- var fe = [4, 4, 14];
1912
+ var me = [4, 4, 14];
1913
1913
  function ne(ee) {
1914
1914
  var te = ee.t.d;
1915
1915
  ee.t.d = {
@@ -1925,16 +1925,16 @@ function requireLottie() {
1925
1925
  ee[te].ty === 5 && ne(ee[te]);
1926
1926
  }
1927
1927
  return function(ee) {
1928
- if (Z(fe, ee.v) && (ce(ee.layers), ee.assets)) {
1928
+ if (Z(me, ee.v) && (ce(ee.layers), ee.assets)) {
1929
1929
  var te, oe = ee.assets.length;
1930
1930
  for (te = 0; te < oe; te += 1)
1931
1931
  ee.assets[te].layers && ce(ee.assets[te].layers);
1932
1932
  }
1933
1933
  };
1934
1934
  })(), se = /* @__PURE__ */ (function() {
1935
- var fe = [4, 7, 99];
1935
+ var me = [4, 7, 99];
1936
1936
  return function(ne) {
1937
- if (ne.chars && !Z(fe, ne.v)) {
1937
+ if (ne.chars && !Z(me, ne.v)) {
1938
1938
  var ce, ee = ne.chars.length;
1939
1939
  for (ce = 0; ce < ee; ce += 1) {
1940
1940
  var te = ne.chars[ce];
@@ -1996,7 +1996,7 @@ function requireLottie() {
1996
1996
  }
1997
1997
  };
1998
1998
  })(), le = /* @__PURE__ */ (function() {
1999
- var fe = [5, 7, 15];
1999
+ var me = [5, 7, 15];
2000
2000
  function ne(ee) {
2001
2001
  var te = ee.t.p;
2002
2002
  typeof te.a == "number" && (te.a = {
@@ -2016,14 +2016,14 @@ function requireLottie() {
2016
2016
  ee[te].ty === 5 && ne(ee[te]);
2017
2017
  }
2018
2018
  return function(ee) {
2019
- if (Z(fe, ee.v) && (ce(ee.layers), ee.assets)) {
2019
+ if (Z(me, ee.v) && (ce(ee.layers), ee.assets)) {
2020
2020
  var te, oe = ee.assets.length;
2021
2021
  for (te = 0; te < oe; te += 1)
2022
2022
  ee.assets[te].layers && ce(ee.assets[te].layers);
2023
2023
  }
2024
2024
  };
2025
2025
  })(), pe = /* @__PURE__ */ (function() {
2026
- var fe = [4, 1, 9];
2026
+ var me = [4, 1, 9];
2027
2027
  function ne(ee) {
2028
2028
  var te, oe = ee.length, ae, de;
2029
2029
  for (te = 0; te < oe; te += 1)
@@ -2042,14 +2042,14 @@ function requireLottie() {
2042
2042
  ee[te].ty === 4 && ne(ee[te].shapes);
2043
2043
  }
2044
2044
  return function(ee) {
2045
- if (Z(fe, ee.v) && (ce(ee.layers), ee.assets)) {
2045
+ if (Z(me, ee.v) && (ce(ee.layers), ee.assets)) {
2046
2046
  var te, oe = ee.assets.length;
2047
2047
  for (te = 0; te < oe; te += 1)
2048
2048
  ee.assets[te].layers && ce(ee.assets[te].layers);
2049
2049
  }
2050
2050
  };
2051
2051
  })(), ue = /* @__PURE__ */ (function() {
2052
- var fe = [4, 4, 18];
2052
+ var me = [4, 4, 18];
2053
2053
  function ne(ee) {
2054
2054
  var te, oe = ee.length, ae, de;
2055
2055
  for (te = oe - 1; te >= 0; te -= 1)
@@ -2077,21 +2077,21 @@ function requireLottie() {
2077
2077
  }
2078
2078
  }
2079
2079
  return function(ee) {
2080
- if (Z(fe, ee.v) && (ce(ee.layers), ee.assets)) {
2080
+ if (Z(me, ee.v) && (ce(ee.layers), ee.assets)) {
2081
2081
  var te, oe = ee.assets.length;
2082
2082
  for (te = 0; te < oe; te += 1)
2083
2083
  ee.assets[te].layers && ce(ee.assets[te].layers);
2084
2084
  }
2085
2085
  };
2086
2086
  })();
2087
- function he(fe) {
2088
- fe.__complete || (pe(fe), ie(fe), se(fe), le(fe), ue(fe), Q(fe.layers, fe.assets), j(fe.chars, fe.assets), fe.__complete = !0);
2087
+ function he(me) {
2088
+ me.__complete || (pe(me), ie(me), se(me), le(me), ue(me), Q(me.layers, me.assets), j(me.chars, me.assets), me.__complete = !0);
2089
2089
  }
2090
- function ve(fe) {
2091
- fe.t.a.length === 0 && "m" in fe.t.p;
2090
+ function ve(me) {
2091
+ me.t.a.length === 0 && "m" in me.t.p;
2092
2092
  }
2093
- var be = {};
2094
- return be.completeData = he, be.checkColors = pe, be.checkChars = se, be.checkPathProperties = le, be.checkShapes = ue, be.completeLayers = Q, be;
2093
+ var ke = {};
2094
+ return ke.completeData = he, ke.checkColors = pe, ke.checkChars = se, ke.checkPathProperties = le, ke.checkShapes = ue, ke.completeLayers = Q, ke;
2095
2095
  }
2096
2096
  if (L.dataManager || (L.dataManager = H()), L.assetLoader || (L.assetLoader = /* @__PURE__ */ (function() {
2097
2097
  function Q(J) {
@@ -2757,17 +2757,17 @@ function requireLottie() {
2757
2757
  for (ee = 0; ee < A; ee += 1)
2758
2758
  n[ee].animation.setVolume(ne, ce);
2759
2759
  }
2760
- function be(ne) {
2760
+ function ke(ne) {
2761
2761
  var ce;
2762
2762
  for (ce = 0; ce < A; ce += 1)
2763
2763
  n[ce].animation.mute(ne);
2764
2764
  }
2765
- function fe(ne) {
2765
+ function me(ne) {
2766
2766
  var ce;
2767
2767
  for (ce = 0; ce < A; ce += 1)
2768
2768
  n[ce].animation.unmute(ne);
2769
2769
  }
2770
- return T.registerAnimation = V, T.loadAnimation = z, T.setSpeed = H, T.setDirection = $, T.play = Q, T.pause = G, T.stop = Y, T.togglePause = Z, T.searchAnimations = se, T.resize = le, T.goToAndStop = K, T.destroy = ie, T.freeze = ue, T.unfreeze = he, T.setVolume = ve, T.mute = be, T.unmute = fe, T.getRegisteredAnimations = B, T;
2770
+ return T.registerAnimation = V, T.loadAnimation = z, T.setSpeed = H, T.setDirection = $, T.play = Q, T.pause = G, T.stop = Y, T.togglePause = Z, T.searchAnimations = se, T.resize = le, T.goToAndStop = K, T.destroy = ie, T.freeze = ue, T.unfreeze = he, T.setVolume = ve, T.mute = ke, T.unmute = me, T.getRegisteredAnimations = B, T;
2771
2771
  })(), BezierFactory = (function() {
2772
2772
  var T = {};
2773
2773
  T.getBezierEasing = P;
@@ -2959,9 +2959,9 @@ function requireLottie() {
2959
2959
  Q < 0 ? Q = 0 : Q > 1 && (Q = 1);
2960
2960
  var G = V(Q, J);
2961
2961
  j = j > 1 ? 1 : j;
2962
- var K = V(j, J), Y, Z = W.length, ie = 1 - G, se = 1 - K, le = ie * ie * ie, pe = G * ie * ie * 3, ue = G * G * ie * 3, he = G * G * G, ve = ie * ie * se, be = G * ie * se + ie * G * se + ie * ie * K, fe = G * G * se + ie * G * K + G * ie * K, ne = G * G * K, ce = ie * se * se, ee = G * se * se + ie * K * se + ie * se * K, te = G * K * se + ie * K * K + G * se * K, oe = G * K * K, ae = se * se * se, de = K * se * se + se * K * se + se * se * K, ge = K * K * se + se * K * K + K * se * K, ye = K * K * K;
2962
+ var K = V(j, J), Y, Z = W.length, ie = 1 - G, se = 1 - K, le = ie * ie * ie, pe = G * ie * ie * 3, ue = G * G * ie * 3, he = G * G * G, ve = ie * ie * se, ke = G * ie * se + ie * G * se + ie * ie * K, me = G * G * se + ie * G * K + G * ie * K, ne = G * G * K, ce = ie * se * se, ee = G * se * se + ie * K * se + ie * se * K, te = G * K * se + ie * K * K + G * se * K, oe = G * K * K, ae = se * se * se, de = K * se * se + se * K * se + se * se * K, ge = K * K * se + se * K * K + K * se * K, ye = K * K * K;
2963
2963
  for (Y = 0; Y < Z; Y += 1)
2964
- U[Y * 4] = T.round((le * W[Y] + pe * H[Y] + ue * $[Y] + he * z[Y]) * 1e3) / 1e3, U[Y * 4 + 1] = T.round((ve * W[Y] + be * H[Y] + fe * $[Y] + ne * z[Y]) * 1e3) / 1e3, U[Y * 4 + 2] = T.round((ce * W[Y] + ee * H[Y] + te * $[Y] + oe * z[Y]) * 1e3) / 1e3, U[Y * 4 + 3] = T.round((ae * W[Y] + de * H[Y] + ge * $[Y] + ye * z[Y]) * 1e3) / 1e3;
2964
+ U[Y * 4] = T.round((le * W[Y] + pe * H[Y] + ue * $[Y] + he * z[Y]) * 1e3) / 1e3, U[Y * 4 + 1] = T.round((ve * W[Y] + ke * H[Y] + me * $[Y] + ne * z[Y]) * 1e3) / 1e3, U[Y * 4 + 2] = T.round((ce * W[Y] + ee * H[Y] + te * $[Y] + oe * z[Y]) * 1e3) / 1e3, U[Y * 4 + 3] = T.round((ae * W[Y] + de * H[Y] + ge * $[Y] + ye * z[Y]) * 1e3) / 1e3;
2965
2965
  return U;
2966
2966
  }
2967
2967
  return {
@@ -3022,8 +3022,8 @@ function requireLottie() {
3022
3022
  else if (T <= J)
3023
3023
  A[0] = V.s[0], A[1] = V.s[1], A[2] = V.s[2];
3024
3024
  else {
3025
- var be = createQuaternion(V.s), fe = createQuaternion(G), ne = (T - J) / (j - J);
3026
- quaternionToEuler(A, slerp(be, fe, ne));
3025
+ var ke = createQuaternion(V.s), me = createQuaternion(G), ne = (T - J) / (j - J);
3026
+ quaternionToEuler(A, slerp(ke, me, ne));
3027
3027
  }
3028
3028
  else
3029
3029
  for (L = 0; L < O; L += 1)
@@ -3248,15 +3248,15 @@ function requireLottie() {
3248
3248
  })(), ShapePropertyFactory = (function() {
3249
3249
  var T = -999999;
3250
3250
  function n(j, J, G) {
3251
- var K = G.lastIndex, Y, Z, ie, se, le, pe, ue, he, ve, be = this.keyframes;
3252
- if (j < be[0].t - this.offsetTime)
3253
- Y = be[0].s[0], ie = !0, K = 0;
3254
- else if (j >= be[be.length - 1].t - this.offsetTime)
3255
- Y = be[be.length - 1].s ? be[be.length - 1].s[0] : be[be.length - 2].e[0], ie = !0;
3251
+ var K = G.lastIndex, Y, Z, ie, se, le, pe, ue, he, ve, ke = this.keyframes;
3252
+ if (j < ke[0].t - this.offsetTime)
3253
+ Y = ke[0].s[0], ie = !0, K = 0;
3254
+ else if (j >= ke[ke.length - 1].t - this.offsetTime)
3255
+ Y = ke[ke.length - 1].s ? ke[ke.length - 1].s[0] : ke[ke.length - 2].e[0], ie = !0;
3256
3256
  else {
3257
- for (var fe = K, ne = be.length - 1, ce = !0, ee, te, oe; ce && (ee = be[fe], te = be[fe + 1], !(te.t - this.offsetTime > j)); )
3258
- fe < ne - 1 ? fe += 1 : ce = !1;
3259
- if (oe = this.keyframesMetadata[fe] || {}, ie = ee.h === 1, K = fe, !ie) {
3257
+ for (var me = K, ne = ke.length - 1, ce = !0, ee, te, oe; ce && (ee = ke[me], te = ke[me + 1], !(te.t - this.offsetTime > j)); )
3258
+ me < ne - 1 ? me += 1 : ce = !1;
3259
+ if (oe = this.keyframesMetadata[me] || {}, ie = ee.h === 1, K = me, !ie) {
3260
3260
  if (j >= te.t - this.offsetTime)
3261
3261
  he = 1;
3262
3262
  else if (j < ee.t - this.offsetTime)
@@ -3354,20 +3354,20 @@ function requireLottie() {
3354
3354
  this.elem.globalData.frameId !== this.frameId && (this.frameId = this.elem.globalData.frameId, this.iterateDynamicProperties(), this._mdf && this.convertToPath());
3355
3355
  },
3356
3356
  convertStarToPath: function() {
3357
- var G = Math.floor(this.pt.v) * 2, K = Math.PI * 2 / G, Y = !0, Z = this.or.v, ie = this.ir.v, se = this.os.v, le = this.is.v, pe = 2 * Math.PI * Z / (G * 2), ue = 2 * Math.PI * ie / (G * 2), he, ve, be, fe, ne = -Math.PI / 2;
3357
+ var G = Math.floor(this.pt.v) * 2, K = Math.PI * 2 / G, Y = !0, Z = this.or.v, ie = this.ir.v, se = this.os.v, le = this.is.v, pe = 2 * Math.PI * Z / (G * 2), ue = 2 * Math.PI * ie / (G * 2), he, ve, ke, me, ne = -Math.PI / 2;
3358
3358
  ne += this.r.v;
3359
3359
  var ce = this.data.d === 3 ? -1 : 1;
3360
3360
  for (this.v._length = 0, he = 0; he < G; he += 1) {
3361
- ve = Y ? Z : ie, be = Y ? se : le, fe = Y ? pe : ue;
3361
+ ve = Y ? Z : ie, ke = Y ? se : le, me = Y ? pe : ue;
3362
3362
  var ee = ve * Math.cos(ne), te = ve * Math.sin(ne), oe = ee === 0 && te === 0 ? 0 : te / Math.sqrt(ee * ee + te * te), ae = ee === 0 && te === 0 ? 0 : -ee / Math.sqrt(ee * ee + te * te);
3363
- ee += +this.p.v[0], te += +this.p.v[1], this.v.setTripleAt(ee, te, ee - oe * fe * be * ce, te - ae * fe * be * ce, ee + oe * fe * be * ce, te + ae * fe * be * ce, he, !0), Y = !Y, ne += K * ce;
3363
+ ee += +this.p.v[0], te += +this.p.v[1], this.v.setTripleAt(ee, te, ee - oe * me * ke * ce, te - ae * me * ke * ce, ee + oe * me * ke * ce, te + ae * me * ke * ce, he, !0), Y = !Y, ne += K * ce;
3364
3364
  }
3365
3365
  },
3366
3366
  convertPolygonToPath: function() {
3367
3367
  var G = Math.floor(this.pt.v), K = Math.PI * 2 / G, Y = this.or.v, Z = this.os.v, ie = 2 * Math.PI * Y / (G * 4), se, le = -Math.PI * 0.5, pe = this.data.d === 3 ? -1 : 1;
3368
3368
  for (le += this.r.v, this.v._length = 0, se = 0; se < G; se += 1) {
3369
- var ue = Y * Math.cos(le), he = Y * Math.sin(le), ve = ue === 0 && he === 0 ? 0 : he / Math.sqrt(ue * ue + he * he), be = ue === 0 && he === 0 ? 0 : -ue / Math.sqrt(ue * ue + he * he);
3370
- ue += +this.p.v[0], he += +this.p.v[1], this.v.setTripleAt(ue, he, ue - ve * ie * Z * pe, he - be * ie * Z * pe, ue + ve * ie * Z * pe, he + be * ie * Z * pe, se, !0), le += K * pe;
3369
+ var ue = Y * Math.cos(le), he = Y * Math.sin(le), ve = ue === 0 && he === 0 ? 0 : he / Math.sqrt(ue * ue + he * he), ke = ue === 0 && he === 0 ? 0 : -ue / Math.sqrt(ue * ue + he * he);
3370
+ ue += +this.p.v[0], he += +this.p.v[1], this.v.setTripleAt(ue, he, ue - ve * ie * Z * pe, he - ke * ie * Z * pe, ue + ve * ie * Z * pe, he + ke * ie * Z * pe, se, !0), le += K * pe;
3371
3371
  }
3372
3372
  this.paths.length = 0, this.paths[0] = this.v;
3373
3373
  }
@@ -3454,18 +3454,18 @@ function requireLottie() {
3454
3454
  function W(ee, te, oe) {
3455
3455
  return !oe && oe !== 0 && (oe = 1), ee === 1 && te === 1 && oe === 1 ? this : this._t(ee, 0, 0, 0, 0, te, 0, 0, 0, 0, oe, 0, 0, 0, 0, 1);
3456
3456
  }
3457
- function z(ee, te, oe, ae, de, ge, ye, Ee, Pe, Ie, Re, Le, Me, ke, Ce, xe) {
3458
- return this.props[0] = ee, this.props[1] = te, this.props[2] = oe, this.props[3] = ae, this.props[4] = de, this.props[5] = ge, this.props[6] = ye, this.props[7] = Ee, this.props[8] = Pe, this.props[9] = Ie, this.props[10] = Re, this.props[11] = Le, this.props[12] = Me, this.props[13] = ke, this.props[14] = Ce, this.props[15] = xe, this;
3457
+ function z(ee, te, oe, ae, de, ge, ye, Ee, Pe, Ie, Re, Le, Me, Se, Ce, xe) {
3458
+ return this.props[0] = ee, this.props[1] = te, this.props[2] = oe, this.props[3] = ae, this.props[4] = de, this.props[5] = ge, this.props[6] = ye, this.props[7] = Ee, this.props[8] = Pe, this.props[9] = Ie, this.props[10] = Re, this.props[11] = Le, this.props[12] = Me, this.props[13] = Se, this.props[14] = Ce, this.props[15] = xe, this;
3459
3459
  }
3460
3460
  function H(ee, te, oe) {
3461
3461
  return oe = oe || 0, ee !== 0 || te !== 0 || oe !== 0 ? this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, ee, te, oe, 1) : this;
3462
3462
  }
3463
- function $(ee, te, oe, ae, de, ge, ye, Ee, Pe, Ie, Re, Le, Me, ke, Ce, xe) {
3463
+ function $(ee, te, oe, ae, de, ge, ye, Ee, Pe, Ie, Re, Le, Me, Se, Ce, xe) {
3464
3464
  var we = this.props;
3465
3465
  if (ee === 1 && te === 0 && oe === 0 && ae === 0 && de === 0 && ge === 1 && ye === 0 && Ee === 0 && Pe === 0 && Ie === 0 && Re === 1 && Le === 0)
3466
- return we[12] = we[12] * ee + we[15] * Me, we[13] = we[13] * ge + we[15] * ke, we[14] = we[14] * Re + we[15] * Ce, we[15] *= xe, this._identityCalculated = !1, this;
3466
+ return we[12] = we[12] * ee + we[15] * Me, we[13] = we[13] * ge + we[15] * Se, we[14] = we[14] * Re + we[15] * Ce, we[15] *= xe, this._identityCalculated = !1, this;
3467
3467
  var Oe = we[0], De = we[1], We = we[2], Fe = we[3], ze = we[4], Ne = we[5], Be = we[6], Ye = we[7], Xe = we[8], qe = we[9], Qe = we[10], Ge = we[11], et = we[12], nt = we[13], Ze = we[14], tt = we[15];
3468
- return we[0] = Oe * ee + De * de + We * Pe + Fe * Me, we[1] = Oe * te + De * ge + We * Ie + Fe * ke, we[2] = Oe * oe + De * ye + We * Re + Fe * Ce, we[3] = Oe * ae + De * Ee + We * Le + Fe * xe, we[4] = ze * ee + Ne * de + Be * Pe + Ye * Me, we[5] = ze * te + Ne * ge + Be * Ie + Ye * ke, we[6] = ze * oe + Ne * ye + Be * Re + Ye * Ce, we[7] = ze * ae + Ne * Ee + Be * Le + Ye * xe, we[8] = Xe * ee + qe * de + Qe * Pe + Ge * Me, we[9] = Xe * te + qe * ge + Qe * Ie + Ge * ke, we[10] = Xe * oe + qe * ye + Qe * Re + Ge * Ce, we[11] = Xe * ae + qe * Ee + Qe * Le + Ge * xe, we[12] = et * ee + nt * de + Ze * Pe + tt * Me, we[13] = et * te + nt * ge + Ze * Ie + tt * ke, we[14] = et * oe + nt * ye + Ze * Re + tt * Ce, we[15] = et * ae + nt * Ee + Ze * Le + tt * xe, this._identityCalculated = !1, this;
3468
+ return we[0] = Oe * ee + De * de + We * Pe + Fe * Me, we[1] = Oe * te + De * ge + We * Ie + Fe * Se, we[2] = Oe * oe + De * ye + We * Re + Fe * Ce, we[3] = Oe * ae + De * Ee + We * Le + Fe * xe, we[4] = ze * ee + Ne * de + Be * Pe + Ye * Me, we[5] = ze * te + Ne * ge + Be * Ie + Ye * Se, we[6] = ze * oe + Ne * ye + Be * Re + Ye * Ce, we[7] = ze * ae + Ne * Ee + Be * Le + Ye * xe, we[8] = Xe * ee + qe * de + Qe * Pe + Ge * Me, we[9] = Xe * te + qe * ge + Qe * Ie + Ge * Se, we[10] = Xe * oe + qe * ye + Qe * Re + Ge * Ce, we[11] = Xe * ae + qe * Ee + Qe * Le + Ge * xe, we[12] = et * ee + nt * de + Ze * Pe + tt * Me, we[13] = et * te + nt * ge + Ze * Ie + tt * Se, we[14] = et * oe + nt * ye + Ze * Re + tt * Ce, we[15] = et * ae + nt * Ee + Ze * Le + tt * xe, this._identityCalculated = !1, this;
3469
3469
  }
3470
3470
  function Q(ee) {
3471
3471
  var te = ee.props;
@@ -3537,13 +3537,13 @@ function requireLottie() {
3537
3537
  var ae;
3538
3538
  return this.isIdentity() ? ae = [ee, te, oe] : ae = [ee * this.props[0] + te * this.props[4] + oe * this.props[8] + this.props[12], ee * this.props[1] + te * this.props[5] + oe * this.props[9] + this.props[13], ee * this.props[2] + te * this.props[6] + oe * this.props[10] + this.props[14]], ae;
3539
3539
  }
3540
- function be(ee, te) {
3540
+ function ke(ee, te) {
3541
3541
  if (this.isIdentity())
3542
3542
  return ee + "," + te;
3543
3543
  var oe = this.props;
3544
3544
  return Math.round((ee * oe[0] + te * oe[4] + oe[12]) * 100) / 100 + "," + Math.round((ee * oe[1] + te * oe[5] + oe[13]) * 100) / 100;
3545
3545
  }
3546
- function fe() {
3546
+ function me() {
3547
3547
  for (var ee = 0, te = this.props, oe = "matrix3d(", ae = 1e4; ee < 16; )
3548
3548
  oe += A(te[ee] * ae) / ae, oe += ee === 15 ? ")" : ",", ee += 1;
3549
3549
  return oe;
@@ -3557,7 +3557,7 @@ function requireLottie() {
3557
3557
  return "matrix(" + te + "," + oe + "," + ae + "," + de + "," + ge + "," + ye + ")";
3558
3558
  }
3559
3559
  return function() {
3560
- this.reset = R, this.rotate = L, this.rotateX = O, this.rotateY = N, this.rotateZ = V, this.skew = U, this.skewFromAxis = q, this.shear = B, this.scale = W, this.setTransform = z, this.translate = H, this.transform = $, this.multiply = Q, this.applyToPoint = Y, this.applyToX = Z, this.applyToY = ie, this.applyToZ = se, this.applyToPointArray = ve, this.applyToTriplePoints = he, this.applyToPointStringified = be, this.toCSS = fe, this.to2dCSS = ce, this.clone = G, this.cloneFromProps = K, this.equals = J, this.inversePoints = ue, this.inversePoint = pe, this.getInverseMatrix = le, this._t = this.transform, this.isIdentity = j, this._identity = !0, this._identityCalculated = !1, this.props = createTypedArray("float32", 16), this.reset();
3560
+ this.reset = R, this.rotate = L, this.rotateX = O, this.rotateY = N, this.rotateZ = V, this.skew = U, this.skewFromAxis = q, this.shear = B, this.scale = W, this.setTransform = z, this.translate = H, this.transform = $, this.multiply = Q, this.applyToPoint = Y, this.applyToX = Z, this.applyToY = ie, this.applyToZ = se, this.applyToPointArray = ve, this.applyToTriplePoints = he, this.applyToPointStringified = ke, this.toCSS = me, this.to2dCSS = ce, this.clone = G, this.cloneFromProps = K, this.equals = J, this.inversePoints = ue, this.inversePoint = pe, this.getInverseMatrix = le, this._t = this.transform, this.isIdentity = j, this._identity = !0, this._identityCalculated = !1, this.props = createTypedArray("float32", 16), this.reset();
3561
3561
  };
3562
3562
  })();
3563
3563
  function _typeof$3(T) {
@@ -4546,11 +4546,11 @@ function requireLottie() {
4546
4546
  function ve() {
4547
4547
  this.isLoaded = !0;
4548
4548
  }
4549
- var be = function() {
4549
+ var ke = function() {
4550
4550
  this.fonts = [], this.chars = null, this.typekitLoaded = 0, this.isLoaded = !1, this._warned = !1, this.initTime = Date.now(), this.setIsLoadedBinded = this.setIsLoaded.bind(this), this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);
4551
4551
  };
4552
- be.isModifier = Z, be.isZeroWidthJoiner = ie, be.isFlagEmoji = pe, be.isRegionalCode = le, be.isCombinedCharacter = ue, be.isRegionalFlag = he, be.isVariationSelector = se, be.BLACK_FLAG_CODE_POINT = A;
4553
- var fe = {
4552
+ ke.isModifier = Z, ke.isZeroWidthJoiner = ie, ke.isFlagEmoji = pe, ke.isRegionalCode = le, ke.isCombinedCharacter = ue, ke.isRegionalFlag = he, ke.isVariationSelector = se, ke.BLACK_FLAG_CODE_POINT = A;
4553
+ var me = {
4554
4554
  addChars: j,
4555
4555
  addFonts: Q,
4556
4556
  getCharData: J,
@@ -4559,7 +4559,7 @@ function requireLottie() {
4559
4559
  checkLoadedFonts: H,
4560
4560
  setIsLoaded: ve
4561
4561
  };
4562
- return be.prototype = fe, be;
4562
+ return ke.prototype = me, ke;
4563
4563
  })();
4564
4564
  function SlotManager(T) {
4565
4565
  this.animationData = T;
@@ -5565,8 +5565,8 @@ function requireLottie() {
5565
5565
  ue || (ue = Math.sqrt(Math.pow(Q[0] - j[0], 2) + Math.pow(Q[1] - j[1], 2)));
5566
5566
  var he = Math.atan2(j[1] - Q[1], j[0] - Q[0]), ve = W.h.v;
5567
5567
  ve >= 1 ? ve = 0.99 : ve <= -1 && (ve = -0.99);
5568
- var be = ue * ve, fe = Math.cos(he + W.a.v) * be + Q[0], ne = Math.sin(he + W.a.v) * be + Q[1];
5569
- H.setAttribute("fx", fe), H.setAttribute("fy", ne), $ && !W.g._collapsable && (W.of.setAttribute("fx", fe), W.of.setAttribute("fy", ne));
5568
+ var ke = ue * ve, me = Math.cos(he + W.a.v) * ke + Q[0], ne = Math.sin(he + W.a.v) * ke + Q[1];
5569
+ H.setAttribute("fx", me), H.setAttribute("fy", ne), $ && !W.g._collapsable && (W.of.setAttribute("fx", me), W.of.setAttribute("fy", ne));
5570
5570
  }
5571
5571
  }
5572
5572
  }
@@ -5767,9 +5767,9 @@ function requireLottie() {
5767
5767
  ue += J.ascent * T.finalSize / 100, this.canResize && T.finalSize > this.minimumFontSize && pe < ue ? (T.finalSize -= 1, T.finalLineHeight = T.finalSize * T.lh / T.s) : (T.finalText = he, L = T.finalText.length, se = !1);
5768
5768
  }
5769
5769
  H = -Z, K = 0;
5770
- var be = 0, fe;
5770
+ var ke = 0, me;
5771
5771
  for (R = 0; R < L; R += 1)
5772
- if (O = !1, fe = T.finalText[R], ie = fe.charCodeAt(0), ie === 13 || ie === 3 ? (be = 0, z.push(H), $ = H > $ ? H : $, H = -2 * Z, V = "", O = !0, W += 1) : V = fe, n.chars ? (G = n.getCharData(fe, J.fStyle, n.getFontByName(T.f).fFamily), K = O ? 0 : G.w * T.finalSize / 100) : K = n.measureText(V, T.f, T.finalSize), fe === " " ? be += K + Z : (H += K + Z + be, be = 0), A.push({
5772
+ if (O = !1, me = T.finalText[R], ie = me.charCodeAt(0), ie === 13 || ie === 3 ? (ke = 0, z.push(H), $ = H > $ ? H : $, H = -2 * Z, V = "", O = !0, W += 1) : V = me, n.chars ? (G = n.getCharData(me, J.fStyle, n.getFontByName(T.f).fFamily), K = O ? 0 : G.w * T.finalSize / 100) : K = n.measureText(V, T.f, T.finalSize), me === " " ? ke += K + Z : (H += K + Z + ke, ke = 0), A.push({
5773
5773
  l: K,
5774
5774
  an: K,
5775
5775
  add: U,
@@ -5958,9 +5958,9 @@ function requireLottie() {
5958
5958
  Y = Z[G].points, K = Y[J - 1], $ = Y[J], ie = $.partialLength;
5959
5959
  }
5960
5960
  q = W.length, V = 0, B = 0;
5961
- var be = T.finalSize * 1.2 * 0.714, fe = !0, ne, ce, ee, te, oe;
5961
+ var ke = T.finalSize * 1.2 * 0.714, me = !0, ne, ce, ee, te, oe;
5962
5962
  te = A.length;
5963
- var ae, de = -1, ge, ye, Ee, Pe = H, Ie = G, Re = J, Le = -1, Me, ke, Ce, xe, we, Oe, De, We, Fe = "", ze = this.defaultPropsArray, Ne;
5963
+ var ae, de = -1, ge, ye, Ee, Pe = H, Ie = G, Re = J, Le = -1, Me, Se, Ce, xe, we, Oe, De, We, Fe = "", ze = this.defaultPropsArray, Ne;
5964
5964
  if (T.j === 2 || T.j === 1) {
5965
5965
  var Be = 0, Ye = 0, Xe = T.j === 2 ? -0.5 : -1, qe = 0, Qe = !0;
5966
5966
  for (U = 0; U < q; U += 1)
@@ -5978,7 +5978,7 @@ function requireLottie() {
5978
5978
  }
5979
5979
  for (U = 0; U < q; U += 1) {
5980
5980
  if (L.reset(), Me = 1, W[U].n)
5981
- V = 0, B += T.yOffset, B += fe ? 1 : 0, H = Pe, fe = !1, this._hasMaskedPath && (G = Ie, J = Re, Y = Z[G].points, K = Y[J - 1], $ = Y[J], ie = $.partialLength, Q = 0), Fe = "", We = "", Oe = "", Ne = "", ze = this.defaultPropsArray;
5981
+ V = 0, B += T.yOffset, B += me ? 1 : 0, H = Pe, me = !1, this._hasMaskedPath && (G = Ie, J = Re, Y = Z[G].points, K = Y[J - 1], $ = Y[J], ie = $.partialLength, Q = 0), Fe = "", We = "", Oe = "", Ne = "", ze = this.defaultPropsArray;
5982
5982
  else {
5983
5983
  if (this._hasMaskedPath) {
5984
5984
  if (Le !== W[U].line) {
@@ -5997,20 +5997,20 @@ function requireLottie() {
5997
5997
  for (ee = 0; ee < te; ee += 1)
5998
5998
  ne = A[ee].a, ne.p.propType && (ce = A[ee].s, ae = ce.getMult(W[U].anIndexes[ee], R.a[ee].s.totalChars), ae.length ? Ge += ne.p.v[0] * ae[0] : Ge += ne.p.v[0] * ae), ne.a.propType && (ce = A[ee].s, ae = ce.getMult(W[U].anIndexes[ee], R.a[ee].s.totalChars), ae.length ? Ge += ne.a.v[0] * ae[0] : Ge += ne.a.v[0] * ae);
5999
5999
  for (j = !0, this._pathData.a.v && (H = W[0].an * 0.5 + (se - this._pathData.f.v - W[0].an * 0.5 - W[W.length - 1].an * 0.5) * de / (q - 1), H += this._pathData.f.v); j; )
6000
- Q + ie >= H + Ge || !Y ? (le = (H + Ge - Q) / $.partialLength, ye = K.point[0] + ($.point[0] - K.point[0]) * le, Ee = K.point[1] + ($.point[1] - K.point[1]) * le, L.translate(-P[0] * W[U].an * 5e-3, -(P[1] * be) * 0.01), j = !1) : Y && (Q += $.partialLength, J += 1, J >= Y.length && (J = 0, G += 1, Z[G] ? Y = Z[G].points : ue.v.c ? (J = 0, G = 0, Y = Z[G].points) : (Q -= $.partialLength, Y = null)), Y && (K = $, $ = Y[J], ie = $.partialLength));
6000
+ Q + ie >= H + Ge || !Y ? (le = (H + Ge - Q) / $.partialLength, ye = K.point[0] + ($.point[0] - K.point[0]) * le, Ee = K.point[1] + ($.point[1] - K.point[1]) * le, L.translate(-P[0] * W[U].an * 5e-3, -(P[1] * ke) * 0.01), j = !1) : Y && (Q += $.partialLength, J += 1, J >= Y.length && (J = 0, G += 1, Z[G] ? Y = Z[G].points : ue.v.c ? (J = 0, G = 0, Y = Z[G].points) : (Q -= $.partialLength, Y = null)), Y && (K = $, $ = Y[J], ie = $.partialLength));
6001
6001
  ge = W[U].an / 2 - W[U].add, L.translate(-ge, 0, 0);
6002
6002
  } else
6003
- ge = W[U].an / 2 - W[U].add, L.translate(-ge, 0, 0), L.translate(-P[0] * W[U].an * 5e-3, -P[1] * be * 0.01, 0);
6003
+ ge = W[U].an / 2 - W[U].add, L.translate(-ge, 0, 0), L.translate(-P[0] * W[U].an * 5e-3, -P[1] * ke * 0.01, 0);
6004
6004
  for (ee = 0; ee < te; ee += 1)
6005
6005
  ne = A[ee].a, ne.t.propType && (ce = A[ee].s, ae = ce.getMult(W[U].anIndexes[ee], R.a[ee].s.totalChars), (V !== 0 || T.j !== 0) && (this._hasMaskedPath ? ae.length ? H += ne.t.v * ae[0] : H += ne.t.v * ae : ae.length ? V += ne.t.v * ae[0] : V += ne.t.v * ae));
6006
- for (T.strokeWidthAnim && (Ce = T.sw || 0), T.strokeColorAnim && (T.sc ? ke = [T.sc[0], T.sc[1], T.sc[2]] : ke = [0, 0, 0]), T.fillColorAnim && T.fc && (xe = [T.fc[0], T.fc[1], T.fc[2]]), ee = 0; ee < te; ee += 1)
6006
+ for (T.strokeWidthAnim && (Ce = T.sw || 0), T.strokeColorAnim && (T.sc ? Se = [T.sc[0], T.sc[1], T.sc[2]] : Se = [0, 0, 0]), T.fillColorAnim && T.fc && (xe = [T.fc[0], T.fc[1], T.fc[2]]), ee = 0; ee < te; ee += 1)
6007
6007
  ne = A[ee].a, ne.a.propType && (ce = A[ee].s, ae = ce.getMult(W[U].anIndexes[ee], R.a[ee].s.totalChars), ae.length ? L.translate(-ne.a.v[0] * ae[0], -ne.a.v[1] * ae[1], ne.a.v[2] * ae[2]) : L.translate(-ne.a.v[0] * ae, -ne.a.v[1] * ae, ne.a.v[2] * ae));
6008
6008
  for (ee = 0; ee < te; ee += 1)
6009
6009
  ne = A[ee].a, ne.s.propType && (ce = A[ee].s, ae = ce.getMult(W[U].anIndexes[ee], R.a[ee].s.totalChars), ae.length ? L.scale(1 + (ne.s.v[0] - 1) * ae[0], 1 + (ne.s.v[1] - 1) * ae[1], 1) : L.scale(1 + (ne.s.v[0] - 1) * ae, 1 + (ne.s.v[1] - 1) * ae, 1));
6010
6010
  for (ee = 0; ee < te; ee += 1) {
6011
6011
  if (ne = A[ee].a, ce = A[ee].s, ae = ce.getMult(W[U].anIndexes[ee], R.a[ee].s.totalChars), ne.sk.propType && (ae.length ? L.skewFromAxis(-ne.sk.v * ae[0], ne.sa.v * ae[1]) : L.skewFromAxis(-ne.sk.v * ae, ne.sa.v * ae)), ne.r.propType && (ae.length ? L.rotateZ(-ne.r.v * ae[2]) : L.rotateZ(-ne.r.v * ae)), ne.ry.propType && (ae.length ? L.rotateY(ne.ry.v * ae[1]) : L.rotateY(ne.ry.v * ae)), ne.rx.propType && (ae.length ? L.rotateX(ne.rx.v * ae[0]) : L.rotateX(ne.rx.v * ae)), ne.o.propType && (ae.length ? Me += (ne.o.v * ae[0] - Me) * ae[0] : Me += (ne.o.v * ae - Me) * ae), T.strokeWidthAnim && ne.sw.propType && (ae.length ? Ce += ne.sw.v * ae[0] : Ce += ne.sw.v * ae), T.strokeColorAnim && ne.sc.propType)
6012
6012
  for (we = 0; we < 3; we += 1)
6013
- ae.length ? ke[we] += (ne.sc.v[we] - ke[we]) * ae[0] : ke[we] += (ne.sc.v[we] - ke[we]) * ae;
6013
+ ae.length ? Se[we] += (ne.sc.v[we] - Se[we]) * ae[0] : Se[we] += (ne.sc.v[we] - Se[we]) * ae;
6014
6014
  if (T.fillColorAnim && T.fc) {
6015
6015
  if (ne.fc.propType)
6016
6016
  for (we = 0; we < 3; we += 1)
@@ -6020,8 +6020,8 @@ function requireLottie() {
6020
6020
  }
6021
6021
  for (ee = 0; ee < te; ee += 1)
6022
6022
  ne = A[ee].a, ne.p.propType && (ce = A[ee].s, ae = ce.getMult(W[U].anIndexes[ee], R.a[ee].s.totalChars), this._hasMaskedPath ? ae.length ? L.translate(0, ne.p.v[1] * ae[0], -ne.p.v[2] * ae[1]) : L.translate(0, ne.p.v[1] * ae, -ne.p.v[2] * ae) : ae.length ? L.translate(ne.p.v[0] * ae[0], ne.p.v[1] * ae[1], -ne.p.v[2] * ae[2]) : L.translate(ne.p.v[0] * ae, ne.p.v[1] * ae, -ne.p.v[2] * ae));
6023
- if (T.strokeWidthAnim && (Oe = Ce < 0 ? 0 : Ce), T.strokeColorAnim && (De = "rgb(" + Math.round(ke[0] * 255) + "," + Math.round(ke[1] * 255) + "," + Math.round(ke[2] * 255) + ")"), T.fillColorAnim && T.fc && (We = "rgb(" + Math.round(xe[0] * 255) + "," + Math.round(xe[1] * 255) + "," + Math.round(xe[2] * 255) + ")"), this._hasMaskedPath) {
6024
- if (L.translate(0, -T.ls), L.translate(0, P[1] * be * 0.01 + B, 0), this._pathData.p.v) {
6023
+ if (T.strokeWidthAnim && (Oe = Ce < 0 ? 0 : Ce), T.strokeColorAnim && (De = "rgb(" + Math.round(Se[0] * 255) + "," + Math.round(Se[1] * 255) + "," + Math.round(Se[2] * 255) + ")"), T.fillColorAnim && T.fc && (We = "rgb(" + Math.round(xe[0] * 255) + "," + Math.round(xe[1] * 255) + "," + Math.round(xe[2] * 255) + ")"), this._hasMaskedPath) {
6024
+ if (L.translate(0, -T.ls), L.translate(0, P[1] * ke * 0.01 + B, 0), this._pathData.p.v) {
6025
6025
  pe = ($.point[1] - K.point[1]) / ($.point[0] - K.point[0]);
6026
6026
  var et = Math.atan(pe) * 180 / Math.PI;
6027
6027
  $.point[0] < K.point[0] && (et += 180), L.rotate(-et * Math.PI / 180);
@@ -6036,7 +6036,7 @@ function requireLottie() {
6036
6036
  L.translate(W[U].animatorJustifyOffset + T.justifyOffset + (T.boxWidth - T.lineWidths[W[U].line]) / 2, 0, 0);
6037
6037
  break;
6038
6038
  }
6039
- L.translate(0, -T.ls), L.translate(ge, 0, 0), L.translate(P[0] * W[U].an * 5e-3, P[1] * be * 0.01, 0), V += W[U].l + T.tr * 1e-3 * T.finalSize;
6039
+ L.translate(0, -T.ls), L.translate(ge, 0, 0), L.translate(P[0] * W[U].an * 5e-3, P[1] * ke * 0.01, 0), V += W[U].l + T.tr * 1e-3 * T.finalSize;
6040
6040
  }
6041
6041
  O === "html" ? Fe = L.toCSS() : O === "svg" ? Fe = L.to2dCSS() : ze = [L.props[0], L.props[1], L.props[2], L.props[3], L.props[4], L.props[5], L.props[6], L.props[7], L.props[8], L.props[9], L.props[10], L.props[11], L.props[12], L.props[13], L.props[14], L.props[15]], Ne = Me;
6042
6042
  }
@@ -7561,9 +7561,9 @@ function requireLottie() {
7561
7561
  for (ie = 0; ie < A; ie++)
7562
7562
  le[ie] = le[se = U & se + G[ie % Y] + (K = le[ie])], le[se] = K;
7563
7563
  Z.g = function(pe) {
7564
- for (var ue, he = 0, ve = Z.i, be = Z.j, fe = Z.S; pe--; )
7565
- ue = fe[ve = U & ve + 1], he = he * A + fe[U & (fe[ve] = fe[be = U & be + ue]) + (fe[be] = ue)];
7566
- return Z.i = ve, Z.j = be, he;
7564
+ for (var ue, he = 0, ve = Z.i, ke = Z.j, me = Z.S; pe--; )
7565
+ ue = me[ve = U & ve + 1], he = he * A + me[U & (me[ve] = me[ke = U & ke + ue]) + (me[ke] = ue)];
7566
+ return Z.i = ve, Z.j = ke, he;
7567
7567
  };
7568
7568
  }
7569
7569
  function H(G, K) {
@@ -9340,10 +9340,10 @@ var _excluded$1 = ["animationData", "loop", "autoplay", "initialSegment", "onCom
9340
9340
  }, ve = function(de, ge) {
9341
9341
  var ye;
9342
9342
  (ye = Z.current) === null || ye === void 0 || ye.goToAndStop(de, ge);
9343
- }, be = function(de) {
9343
+ }, ke = function(de) {
9344
9344
  var ge;
9345
9345
  (ge = Z.current) === null || ge === void 0 || ge.setDirection(de);
9346
- }, fe = function(de, ge) {
9346
+ }, me = function(de, ge) {
9347
9347
  var ye;
9348
9348
  (ye = Z.current) === null || ye === void 0 || ye.playSegments(de, ge);
9349
9349
  }, ne = function(de) {
@@ -9451,8 +9451,8 @@ var _excluded$1 = ["animationData", "loop", "autoplay", "initialSegment", "onCom
9451
9451
  setSpeed: ue,
9452
9452
  goToAndStop: ve,
9453
9453
  goToAndPlay: he,
9454
- setDirection: be,
9455
- playSegments: fe,
9454
+ setDirection: ke,
9455
+ playSegments: me,
9456
9456
  setSubframe: ne,
9457
9457
  getDuration: ce,
9458
9458
  destroy: ee,
@@ -14981,8 +14981,8 @@ function requireLoglevel() {
14981
14981
  }
14982
14982
  if (typeof ue === P)
14983
14983
  try {
14984
- var he = window.document.cookie, ve = encodeURIComponent(Y), be = he.indexOf(ve + "=");
14985
- be !== -1 && (ue = /^([^;]+)/.exec(he.slice(be + ve.length + 1))[1]);
14984
+ var he = window.document.cookie, ve = encodeURIComponent(Y), ke = he.indexOf(ve + "=");
14985
+ ke !== -1 && (ue = /^([^;]+)/.exec(he.slice(ke + ve.length + 1))[1]);
14986
14986
  } catch {
14987
14987
  }
14988
14988
  return j.levels[ue] === void 0 && (ue = void 0), ue;
@@ -15205,7 +15205,7 @@ function requireEvents() {
15205
15205
  if (typeof he == "function")
15206
15206
  n(he, this, Z);
15207
15207
  else
15208
- for (var ve = he.length, be = H(he, ve), ie = 0; ie < ve; ++ie) n(be[ie], this, Z);
15208
+ for (var ve = he.length, ke = H(he, ve), ie = 0; ie < ve; ++ie) n(ke[ie], this, Z);
15209
15209
  return !0;
15210
15210
  };
15211
15211
  function B(K, Y, Z, ie) {
@@ -24171,7 +24171,7 @@ class LocalParticipant extends Participant {
24171
24171
  this.log.debug("finished recording preconnect buffer", Object.assign(Object.assign({}, this.logContext), getLogContextFromTrack(n))), n.stopPreConnectBuffer();
24172
24172
  }
24173
24173
  }), le && new Promise((he, ve) => __awaiter(this, void 0, void 0, function* () {
24174
- var be, fe, ne, ce, ee, te;
24174
+ var ke, me, ne, ce, ee, te;
24175
24175
  try {
24176
24176
  this.log.debug("waiting for agent", Object.assign(Object.assign({}, this.logContext), getLogContextFromTrack(n)));
24177
24177
  const ge = setTimeout(() => {
@@ -24190,20 +24190,20 @@ class LocalParticipant extends Participant {
24190
24190
  }
24191
24191
  });
24192
24192
  try {
24193
- for (var oe = !0, ae = __asyncValues(le), de; de = yield ae.next(), be = de.done, !be; oe = !0) {
24193
+ for (var oe = !0, ae = __asyncValues(le), de; de = yield ae.next(), ke = de.done, !ke; oe = !0) {
24194
24194
  ce = de.value, oe = !1;
24195
24195
  const Pe = ce;
24196
24196
  yield Ee.write(Pe);
24197
24197
  }
24198
24198
  } catch (Pe) {
24199
- fe = {
24199
+ me = {
24200
24200
  error: Pe
24201
24201
  };
24202
24202
  } finally {
24203
24203
  try {
24204
- !oe && !be && (ne = ae.return) && (yield ne.call(ae));
24204
+ !oe && !ke && (ne = ae.return) && (yield ne.call(ae));
24205
24205
  } finally {
24206
- if (fe) throw fe.error;
24206
+ if (me) throw me.error;
24207
24207
  }
24208
24208
  }
24209
24209
  yield Ee.close(), he();
@@ -27775,7 +27775,7 @@ const elevenLabsErrorLogger = new ElevenLabsErrorLogger(), useElevenLabsManager
27775
27775
  }), P?.(oe);
27776
27776
  },
27777
27777
  onMessage: (oe) => {
27778
- be(), console.log("[ElevenLabsManager] 📨 Message received:", JSON.stringify(oe).substring(0, 300)), A?.(oe);
27778
+ ke(), console.log("[ElevenLabsManager] 📨 Message received:", JSON.stringify(oe).substring(0, 300)), A?.(oe);
27779
27779
  }
27780
27780
  }), [N, V] = useState("disconnected"), [B, U] = useState(null), [q, W] = useState([]), z = useRef(null);
27781
27781
  useEffect(() => {
@@ -27949,13 +27949,13 @@ const elevenLabsErrorLogger = new ElevenLabsErrorLogger(), useElevenLabsManager
27949
27949
  const Me = await Le.json();
27950
27950
  if (console.log("[ElevenLabsManager] ✅ Asset search result:", Me), Me.success && Me.asset) {
27951
27951
  console.log("[ElevenLabsManager] 📤 Dispatching show_asset event to window");
27952
- const ke = new CustomEvent("show_asset", {
27952
+ const Se = new CustomEvent("show_asset", {
27953
27953
  detail: {
27954
27954
  asset: Me.asset,
27955
27955
  offer_message: Me.offer_message
27956
27956
  }
27957
27957
  });
27958
- window.dispatchEvent(ke), console.log("[ElevenLabsManager] ✅ Event dispatched successfully");
27958
+ window.dispatchEvent(Se), console.log("[ElevenLabsManager] ✅ Event dispatched successfully");
27959
27959
  }
27960
27960
  return L?.("speaking"), Me;
27961
27961
  } catch (Re) {
@@ -27996,7 +27996,7 @@ const elevenLabsErrorLogger = new ElevenLabsErrorLogger(), useElevenLabsManager
27996
27996
  },
27997
27997
  custom_cta: async (Ie) => {
27998
27998
  console.log("[ElevenLabsManager] 🔗 custom_cta tool called:", Ie), L?.("calling_tool");
27999
- const Re = oe.customLlmExtraBody?.customCta, Le = oe.customLlmExtraBody?.session_id, Me = oe.customLlmExtraBody?.jwt, ke = oe.customLlmExtraBody?.agent_id, Ce = oe.customLlmExtraBody?.companyToken || "", xe = Ie.url || Re?.href;
27999
+ const Re = oe.customLlmExtraBody?.customCta, Le = oe.customLlmExtraBody?.session_id, Me = oe.customLlmExtraBody?.jwt, Se = oe.customLlmExtraBody?.agent_id, Ce = oe.customLlmExtraBody?.companyToken || "", xe = Ie.url || Re?.href;
28000
28000
  if (!xe)
28001
28001
  return console.error("[ElevenLabsManager] ❌ custom_cta: No URL provided and no CTA configured"), L?.("speaking"), { success: !1, error: "No URL to redirect to" };
28002
28002
  let we = null;
@@ -28037,7 +28037,7 @@ const elevenLabsErrorLogger = new ElevenLabsErrorLogger(), useElevenLabsManager
28037
28037
  De({
28038
28038
  sessionId: Le,
28039
28039
  widgetJwt: Me,
28040
- agentId: ke || "",
28040
+ agentId: Se || "",
28041
28041
  companyToken: Ce,
28042
28042
  status: "paused",
28043
28043
  lastActivityAt: Date.now(),
@@ -28047,6 +28047,8 @@ const elevenLabsErrorLogger = new ElevenLabsErrorLogger(), useElevenLabsManager
28047
28047
  }
28048
28048
  return L?.("speaking"), { success: !0 };
28049
28049
  },
28050
+ // TODO: Remove when show_email_form is deleted from ElevenLabs UI.
28051
+ // Kept here so the client-side handler exists while the ElevenLabs tool definition is still active.
28050
28052
  show_email_form: async (Ie) => {
28051
28053
  console.log("[ElevenLabsManager] 📧 show_email_form tool called:", Ie), L?.("calling_tool");
28052
28054
  try {
@@ -28064,16 +28066,16 @@ const elevenLabsErrorLogger = new ElevenLabsErrorLogger(), useElevenLabsManager
28064
28066
  const Re = getCurrentBackendUrl(), Le = oe.customLlmExtraBody?.agent_id;
28065
28067
  let Me = `${Re}/api/skills/${Ie.skill_name}/content`;
28066
28068
  Le && (Me += `?agent_id=${Le}`);
28067
- const ke = await fetch(Me, {
28069
+ const Se = await fetch(Me, {
28068
28070
  method: "GET",
28069
28071
  headers: {
28070
28072
  "Content-Type": "application/json",
28071
28073
  Authorization: `Bearer ${oe.customLlmExtraBody.jwt || ""}`
28072
28074
  }
28073
28075
  });
28074
- if (!ke.ok)
28075
- throw new Error(`Skill content fetch failed: ${ke.statusText}`);
28076
- const Ce = await ke.json();
28076
+ if (!Se.ok)
28077
+ throw new Error(`Skill content fetch failed: ${Se.statusText}`);
28078
+ const Ce = await Se.json();
28077
28079
  return console.log("[ElevenLabsManager] ✅ Skill content loaded:", Ce.name), L?.("speaking"), Ce;
28078
28080
  } catch (Re) {
28079
28081
  return console.error("[ElevenLabsManager] ❌ load_skill error:", Re), L?.("speaking"), { success: !1, error: String(Re) };
@@ -28143,9 +28145,9 @@ const elevenLabsErrorLogger = new ElevenLabsErrorLogger(), useElevenLabsManager
28143
28145
  H.current && (clearInterval(H.current), H.current = null, $.current = !1, console.log("[ElevenLabsManager] 🛑 Session renewal stopped"));
28144
28146
  }, []), ve = useCallback(() => {
28145
28147
  U(null);
28146
- }, []), be = useCallback(() => {
28148
+ }, []), ke = useCallback(() => {
28147
28149
  j.current = Date.now();
28148
- }, []), fe = useCallback(async (oe, ae = 3) => {
28150
+ }, []), me = useCallback(async (oe, ae = 3) => {
28149
28151
  if (N === "connecting" || N === "reconnecting")
28150
28152
  return console.log("[ElevenLabsManager] ⚠️ Already attempting to connect"), !1;
28151
28153
  console.log("[ElevenLabsManager] 🔄 Manual reconnection initiated"), V("reconnecting");
@@ -28230,8 +28232,8 @@ const elevenLabsErrorLogger = new ElevenLabsErrorLogger(), useElevenLabsManager
28230
28232
  startSessionRenewal: ue,
28231
28233
  stopSessionRenewal: he,
28232
28234
  clearError: ve,
28233
- updateActivity: be,
28234
- manualReconnect: fe,
28235
+ updateActivity: ke,
28236
+ manualReconnect: me,
28235
28237
  sendKeepAlive: ce,
28236
28238
  // Audio control
28237
28239
  muteMicrophone: ee,
@@ -28417,20 +28419,20 @@ const elevenLabsErrorLogger = new ElevenLabsErrorLogger(), useElevenLabsManager
28417
28419
  console.log("[useVoiceSessionV2] ✅ Got signed URL from backend");
28418
28420
  let he;
28419
28421
  try {
28420
- const fe = await fetch(buildApiUrl(`api/widget/session/${P}/personalized-prompt`), {
28422
+ const me = await fetch(buildApiUrl(`api/widget/session/${P}/personalized-prompt`), {
28421
28423
  headers: { Authorization: `Bearer ${A}` }
28422
28424
  });
28423
- if (fe.ok) {
28424
- const { prompt: ne } = await fe.json();
28425
+ if (me.ok) {
28426
+ const { prompt: ne } = await me.json();
28425
28427
  he = (ne || "").replace(/^assistant:\s*/i, "").trim(), console.log("[useVoiceSessionV2] ✅ Using personalized prompt from backend");
28426
28428
  } else
28427
28429
  throw new Error("Prompt fetch failed");
28428
- } catch (fe) {
28429
- console.warn("[useVoiceSessionV2] ⚠️ Could not fetch personalized prompt, using agent instructions:", fe), he = (T.agent_instructions || "").replace(/^assistant:\s*/i, "").trim();
28430
+ } catch (me) {
28431
+ console.warn("[useVoiceSessionV2] ⚠️ Could not fetch personalized prompt, using agent instructions:", me), he = (T.agent_instructions || "").replace(/^assistant:\s*/i, "").trim();
28430
28432
  }
28431
28433
  if (!he) {
28432
- const fe = "Agent instructions are missing. The agent may not have been configured correctly.";
28433
- return console.error("[useVoiceSessionV2] ❌", fe), O(fe), !1;
28434
+ const me = "Agent instructions are missing. The agent may not have been configured correctly.";
28435
+ return console.error("[useVoiceSessionV2] ❌", me), O(me), !1;
28434
28436
  }
28435
28437
  console.log("[useVoiceSessionV2] 🎯 Starting ElevenLabs session..."), console.log("[useVoiceSessionV2] 📊 ElevenLabs manager state:", {
28436
28438
  conversation: !!G.conversation,
@@ -28440,17 +28442,17 @@ const elevenLabsErrorLogger = new ElevenLabsErrorLogger(), useElevenLabsManager
28440
28442
  });
28441
28443
  let ve = "";
28442
28444
  if (Z && (ie || se) ? (ve = `${ie ? `Welcome back! We were just discussing: "${ie.substring(0, 100)}${ie.length > 100 ? "..." : ""}"` : se ? `Welcome back! I was just saying: "${se.substring(0, 100)}${se.length > 100 ? "..." : ""}"` : "Welcome back! How can I continue helping you?"}. How can I help you continue?`, console.log("[useVoiceSessionV2] 🔄 Using resume-specific first message:", ve)) : T.agent_first_message && R.length === 0 && (ve = T.agent_first_message, console.log("[useVoiceSessionV2] 👋 Using standard welcome message:", ve)), ve) {
28443
- const fe = {
28445
+ const me = {
28444
28446
  role: "assistant",
28445
28447
  content: ve
28446
28448
  };
28447
- console.log("[useVoiceSessionV2] 🎯 Adding first message to store:", fe), L([fe]), console.log("[useVoiceSessionV2] 🎤 Setting agent as speaking for initial message"), z.setAgentSpeaking && z.setAgentSpeaking(!0);
28449
+ console.log("[useVoiceSessionV2] 🎯 Adding first message to store:", me), L([me]), console.log("[useVoiceSessionV2] 🎤 Setting agent as speaking for initial message"), z.setAgentSpeaking && z.setAgentSpeaking(!0);
28448
28450
  }
28449
- const be = setTimeout(() => {
28451
+ const ke = setTimeout(() => {
28450
28452
  throw console.error("[useVoiceSessionV2] ⏰ Session start timeout - taking too long"), new Error("Session start timeout - taking too long");
28451
28453
  }, 3e4);
28452
28454
  try {
28453
- const fe = (T.agent_first_message || "").replace(/^assistant:\s*/i, "").trim(), ne = ve || fe || "Hello! How can I help you today?", ce = await G.startSession({
28455
+ const me = (T.agent_first_message || "").replace(/^assistant:\s*/i, "").trim(), ne = ve || me || "Hello! How can I help you today?", ce = await G.startSession({
28454
28456
  signedUrl: ue,
28455
28457
  agent: {
28456
28458
  prompt: he,
@@ -28488,11 +28490,11 @@ const elevenLabsErrorLogger = new ElevenLabsErrorLogger(), useElevenLabsManager
28488
28490
  companyToken: V || ""
28489
28491
  }
28490
28492
  });
28491
- if (clearTimeout(be), console.log("[useVoiceSessionV2] 📊 ElevenLabs session result:", ce), ce)
28493
+ if (clearTimeout(ke), console.log("[useVoiceSessionV2] 📊 ElevenLabs session result:", ce), ce)
28492
28494
  return G.startSessionRenewal(), U.current = !0, console.log("[useVoiceSessionV2] 🎯 Session started - ElevenLabs will manage speaking/listening states"), console.log("[useVoiceSessionV2] ✅ Voice session started successfully"), !0;
28493
28495
  throw new Error("Failed to start ElevenLabs session");
28494
- } catch (fe) {
28495
- throw clearTimeout(be), fe;
28496
+ } catch (me) {
28497
+ throw clearTimeout(ke), me;
28496
28498
  }
28497
28499
  } catch (le) {
28498
28500
  return console.error("[useVoiceSessionV2] ❌ Failed to start voice session:", le), B.current && (B.current.getTracks().forEach((pe) => pe.stop()), B.current = null), le instanceof Error && le.name === "NotAllowedError" ? O("Microphone access denied. Please allow microphone access to use voice mode.") : O(`Failed to start voice mode: ${le instanceof Error ? le.message : "Unknown error"}`), !1;
@@ -31209,40 +31211,40 @@ const MAX_RECONNECT_ATTEMPTS = 10, BASE_RECONNECT_DELAY = 1e3, initializeSocket
31209
31211
  }
31210
31212
  console.log("[SocketService] Authenticating..."), socket.emit("authenticate", { token: authToken });
31211
31213
  }, getSocket = () => socket, useWidgetStore = ({ companyToken: T, agentId: n, analyticsService: P, mode: A = "floating", initialExpanded: R = !1 }) => {
31212
- const [L, O] = useState(R), [N, V] = useState(!1), [B, U] = useState(!1), [q, W] = useState(null), [z, H] = useState(null), [$, Q] = useState(null), [j, J] = useState(null), [G, K] = useState(!1), [Y, Z] = useState(!1), [ie, se] = useState("voice"), [le, pe] = useState(0), [ue, he] = useState([]), [ve, be] = useState(""), [fe, ne] = useState(!1), [ce, ee] = useState(null), [te, oe] = useState(null), [ae, de] = useState(null), [ge, ye] = useState(!1), [Ee, Pe] = useState(!1), [Ie, Re] = useState(!1), [Le, Me] = useState(!1), [ke, Ce] = useState(!1), [xe, we] = useState("active"), [Oe, De] = useState(!1), [We, Fe] = useState("idle"), [ze, Ne] = useState(void 0), [Be, Ye] = useState(!1), [Xe, qe] = useState(!1), [Qe, Ge] = useState("form_active"), [et, nt] = useState(!1);
31214
+ const [L, O] = useState(R), [N, V] = useState(!1), [B, U] = useState(!1), [q, W] = useState(null), [z, H] = useState(null), [$, Q] = useState(null), [j, J] = useState(null), [G, K] = useState(!1), [Y, Z] = useState(!1), [ie, se] = useState("voice"), [le, pe] = useState(0), [ue, he] = useState([]), [ve, ke] = useState(""), [me, ne] = useState(!1), [ce, ee] = useState(null), [te, oe] = useState(null), [ae, de] = useState(null), [ge, ye] = useState(!1), [Ee, Pe] = useState(!1), [Ie, Re] = useState(!1), [Le, Me] = useState(!1), [Se, Ce] = useState(!1), [xe, we] = useState("active"), [Oe, De] = useState(!1), [We, Fe] = useState("idle"), [ze, Ne] = useState(void 0), [Be, Ye] = useState(!1), [Xe, qe] = useState(!1), [Qe, Ge] = useState("form_active"), [et, nt] = useState(!1);
31213
31215
  useEffect(() => {
31214
31216
  console.log("[WidgetStoreV2] 📋 hasActiveForm changed to:", Be);
31215
31217
  }, [Be]), useEffect(() => {
31216
- const me = (Se) => {
31217
- const Te = (Se?.detail ?? {}).force_display ?? !1;
31218
+ const fe = (be) => {
31219
+ const Te = (be?.detail ?? {}).force_display ?? !1;
31218
31220
  console.log("[WidgetStoreV2] 📧 show_email_form event received from agent", { force_display: Te }), Me(!0), Ce(Te);
31219
31221
  };
31220
- return window.addEventListener("show_email_form", me), () => window.removeEventListener("show_email_form", me);
31222
+ return window.addEventListener("show_email_form", fe), () => window.removeEventListener("show_email_form", fe);
31221
31223
  }, []);
31222
31224
  const Ze = useRef(null), tt = useRef(null), st = useRef(!1), ht = useRef(!1), pt = useRef(!1), ot = useRef(null), kt = useRef(0), At = 1e3, ft = useRef(!1), Rt = useCallback(() => {
31223
31225
  W(null);
31224
- }, []), ut = useCallback((me) => {
31225
- W(me);
31226
- }, []), at = useCallback((me) => {
31227
- J(me), me && P?.setJwt(me);
31228
- }, [P]), mt = useCallback((me) => {
31229
- he((Se) => [...Se, me]);
31226
+ }, []), ut = useCallback((fe) => {
31227
+ W(fe);
31228
+ }, []), at = useCallback((fe) => {
31229
+ J(fe), fe && P?.setJwt(fe);
31230
+ }, [P]), mt = useCallback((fe) => {
31231
+ he((be) => [...be, fe]);
31230
31232
  }, []), St = useCallback(async () => {
31231
31233
  if (n) {
31232
31234
  U(!0), W(null);
31233
31235
  try {
31234
- const me = await fetch(buildApiUrl(`api/widget/bootstrap?agent_id=${n}`), {
31236
+ const fe = await fetch(buildApiUrl(`api/widget/bootstrap?agent_id=${n}`), {
31235
31237
  method: "GET",
31236
31238
  headers: { "Content-Type": "application/json" }
31237
31239
  });
31238
- if (!me.ok)
31240
+ if (!fe.ok)
31239
31241
  throw new Error("Failed to get bootstrap JWT");
31240
- const { access_token: Se } = await me.json();
31241
- at(Se);
31242
+ const { access_token: be } = await fe.json();
31243
+ at(be);
31242
31244
  const Ae = await fetch(buildApiUrl(`api/widget/session/agent-config/${n}`), {
31243
31245
  method: "GET",
31244
31246
  headers: {
31245
- Authorization: `Bearer ${Se}`,
31247
+ Authorization: `Bearer ${be}`,
31246
31248
  "Content-Type": "application/json"
31247
31249
  }
31248
31250
  });
@@ -31268,15 +31270,15 @@ const MAX_RECONNECT_ATTEMPTS = 10, BASE_RECONNECT_DELAY = 1e3, initializeSocket
31268
31270
  all_agent_keys: Object.keys(Te),
31269
31271
  timestamp: (/* @__PURE__ */ new Date()).toISOString()
31270
31272
  });
31271
- } catch (me) {
31272
- console.error("[WidgetStoreV2] ❌ Failed to load agent:", me);
31273
- const Se = me instanceof Error ? me.message : "Unknown error";
31273
+ } catch (fe) {
31274
+ console.error("[WidgetStoreV2] ❌ Failed to load agent:", fe);
31275
+ const be = fe instanceof Error ? fe.message : "Unknown error";
31274
31276
  console.error("[WidgetStoreV2] ❌ Error details:", {
31275
- message: Se,
31276
- error: me,
31277
+ message: be,
31278
+ error: fe,
31277
31279
  companyToken: T,
31278
31280
  agentId: n
31279
- }), W(`Failed to load agent: ${Se}`);
31281
+ }), W(`Failed to load agent: ${be}`);
31280
31282
  } finally {
31281
31283
  U(!1);
31282
31284
  }
@@ -31293,15 +31295,15 @@ const MAX_RECONNECT_ATTEMPTS = 10, BASE_RECONNECT_DELAY = 1e3, initializeSocket
31293
31295
  console.warn("[WidgetStoreV2] ⚠️ No JWT token available for CTA authentication, skipping...");
31294
31296
  return;
31295
31297
  }
31296
- const me = new AbortController(), Se = setTimeout(() => me.abort(), 5e3), Ae = await fetch(buildApiUrl(`api/widget/custom-cta/${n}`), {
31298
+ const fe = new AbortController(), be = setTimeout(() => fe.abort(), 5e3), Ae = await fetch(buildApiUrl(`api/widget/custom-cta/${n}`), {
31297
31299
  method: "GET",
31298
31300
  headers: {
31299
31301
  Authorization: `Bearer ${j || $}`,
31300
31302
  "Content-Type": "application/json"
31301
31303
  },
31302
- signal: me.signal
31304
+ signal: fe.signal
31303
31305
  });
31304
- if (clearTimeout(Se), console.log("[WidgetStoreV2] 🎨 CTA response status:", Ae.status, Ae.statusText), console.log("[WidgetStoreV2] 🎨 CTA response headers:", Object.fromEntries(Ae.headers.entries())), Ae.ok) {
31306
+ if (clearTimeout(be), console.log("[WidgetStoreV2] 🎨 CTA response status:", Ae.status, Ae.statusText), console.log("[WidgetStoreV2] 🎨 CTA response headers:", Object.fromEntries(Ae.headers.entries())), Ae.ok) {
31305
31307
  const Te = await Ae.json(), Ue = Te.has_cta && Te.cta ? Te.cta : null;
31306
31308
  de(Ue), console.log("[WidgetStoreV2] ✅ Custom CTA loaded:", Ue?.button_text ?? "none");
31307
31309
  } else {
@@ -31313,43 +31315,43 @@ const MAX_RECONNECT_ATTEMPTS = 10, BASE_RECONNECT_DELAY = 1e3, initializeSocket
31313
31315
  console.warn("[WidgetStoreV2] ⚠️ Could not read CTA error response body");
31314
31316
  }
31315
31317
  }
31316
- } catch (me) {
31317
- me instanceof Error && me.name === "AbortError" ? console.warn("[WidgetStoreV2] ⚠️ Custom CTA request timed out (non-blocking)") : console.warn("[WidgetStoreV2] ⚠️ Failed to load custom CTA (non-blocking):", me);
31318
+ } catch (fe) {
31319
+ fe instanceof Error && fe.name === "AbortError" ? console.warn("[WidgetStoreV2] ⚠️ Custom CTA request timed out (non-blocking)") : console.warn("[WidgetStoreV2] ⚠️ Failed to load custom CTA (non-blocking):", fe);
31318
31320
  }
31319
31321
  }, [T, n, j, $]), wt = useCallback(async () => {
31320
31322
  if (!n) return;
31321
- let me = j || $;
31322
- if (!me)
31323
+ let fe = j || $;
31324
+ if (!fe)
31323
31325
  try {
31324
- const Se = await fetch(buildApiUrl(`api/widget/bootstrap?agent_id=${n}`), {
31326
+ const be = await fetch(buildApiUrl(`api/widget/bootstrap?agent_id=${n}`), {
31325
31327
  method: "GET",
31326
31328
  headers: { "Content-Type": "application/json" }
31327
31329
  });
31328
- if (!Se.ok) return;
31329
- me = (await Se.json()).access_token, at(me);
31330
+ if (!be.ok) return;
31331
+ fe = (await be.json()).access_token, at(fe);
31330
31332
  } catch {
31331
31333
  return;
31332
31334
  }
31333
31335
  try {
31334
- const Se = await fetch(buildApiUrl(`api/widget/session/agent-config/${n}`), {
31336
+ const be = await fetch(buildApiUrl(`api/widget/session/agent-config/${n}`), {
31335
31337
  method: "GET",
31336
31338
  headers: {
31337
- Authorization: `Bearer ${me}`,
31339
+ Authorization: `Bearer ${fe}`,
31338
31340
  "Content-Type": "application/json"
31339
31341
  }
31340
31342
  });
31341
- if (!Se.ok) return;
31342
- const Ae = await Se.json();
31343
+ if (!be.ok) return;
31344
+ const Ae = await be.json();
31343
31345
  oe(Ae), Ae.require_email === !1 && (Me(!1), Ce(!1)), console.log("[WidgetStoreV2] ✅ Agent config refreshed (real-time):", { require_email: Ae.require_email });
31344
- } catch (Se) {
31345
- console.warn("[WidgetStoreV2] ⚠️ Failed to refresh agent config:", Se);
31346
+ } catch (be) {
31347
+ console.warn("[WidgetStoreV2] ⚠️ Failed to refresh agent config:", be);
31346
31348
  }
31347
31349
  }, [T, n, j, $]);
31348
31350
  useEffect(() => {
31349
- const me = (Se) => {
31350
- (Se?.detail ?? {}).agentId === n && (wt(), ct());
31351
+ const fe = (be) => {
31352
+ (be?.detail ?? {}).agentId === n && (wt(), ct());
31351
31353
  };
31352
- return window.addEventListener("wysdym-agent-config-updated", me), () => window.removeEventListener("wysdym-agent-config-updated", me);
31354
+ return window.addEventListener("wysdym-agent-config-updated", fe), () => window.removeEventListener("wysdym-agent-config-updated", fe);
31353
31355
  }, [n, wt, ct]);
31354
31356
  const Tt = $ || j || "", _e = useVoiceSessionV2({
31355
31357
  agent: te,
@@ -31377,19 +31379,19 @@ const MAX_RECONNECT_ATTEMPTS = 10, BASE_RECONNECT_DELAY = 1e3, initializeSocket
31377
31379
  console.log("[WidgetStoreV2] ⏳ Starting direct session..."), U(!0);
31378
31380
  try {
31379
31381
  console.log("[WidgetStoreV2] 📡 Fetching bootstrap JWT...");
31380
- const me = await fetch(buildApiUrl(`api/widget/bootstrap?agent_id=${n}`), {
31382
+ const fe = await fetch(buildApiUrl(`api/widget/bootstrap?agent_id=${n}`), {
31381
31383
  method: "GET",
31382
31384
  headers: { "Content-Type": "application/json" }
31383
31385
  });
31384
- if (!me.ok)
31385
- throw console.error("[WidgetStoreV2] ❌ Bootstrap response failed:", me.status, me.statusText), new Error("Failed to get bootstrap JWT");
31386
- const { access_token: Se } = await me.json();
31387
- console.log("[WidgetStoreV2] ✅ Got bootstrap JWT"), at(Se);
31386
+ if (!fe.ok)
31387
+ throw console.error("[WidgetStoreV2] ❌ Bootstrap response failed:", fe.status, fe.statusText), new Error("Failed to get bootstrap JWT");
31388
+ const { access_token: be } = await fe.json();
31389
+ console.log("[WidgetStoreV2] ✅ Got bootstrap JWT"), at(be);
31388
31390
  try {
31389
31391
  const $e = await fetch(buildApiUrl(`api/widget/session/agent-config/${n}`), {
31390
31392
  method: "GET",
31391
31393
  headers: {
31392
- Authorization: `Bearer ${Se}`,
31394
+ Authorization: `Bearer ${be}`,
31393
31395
  "Content-Type": "application/json"
31394
31396
  }
31395
31397
  });
@@ -31405,7 +31407,7 @@ const MAX_RECONNECT_ATTEMPTS = 10, BASE_RECONNECT_DELAY = 1e3, initializeSocket
31405
31407
  const Te = await fetch(buildApiUrl("api/widget/session/intake"), {
31406
31408
  method: "POST",
31407
31409
  headers: {
31408
- Authorization: `Bearer ${Se}`,
31410
+ Authorization: `Bearer ${be}`,
31409
31411
  "Content-Type": "application/json"
31410
31412
  },
31411
31413
  body: JSON.stringify({
@@ -31420,12 +31422,12 @@ const MAX_RECONNECT_ATTEMPTS = 10, BASE_RECONNECT_DELAY = 1e3, initializeSocket
31420
31422
  throw console.error("[WidgetStoreV2] ❌ Intake response failed:", Te.status, Te.statusText), new Error(`Failed to create session: ${Te.statusText}`);
31421
31423
  const Ue = await Te.json(), { session_id: Ve, widget_jwt: je, has_email: Je } = Ue;
31422
31424
  console.log("[WidgetStoreV2] ✅ Got session data:", { session_id: Ve, hasJwt: !!je, has_email: Je }), H(Ve), Q(je), Z(!0), K(!1), Re(!!Je), console.log("[WidgetStoreV2] 🔌 Initializing socket for session:", Ve), initializeSocket(Ve, je), console.log("[WidgetStoreV2] ✅ Direct session started:", Ve), console.log("[WidgetStoreV2] ⏳ Voice session will start automatically...");
31423
- } catch (me) {
31424
- console.error("[WidgetStoreV2] ❌ Failed to start direct session:", me), W(`Failed to start session: ${me instanceof Error ? me.message : "Unknown error"}`), U(!1);
31425
+ } catch (fe) {
31426
+ console.error("[WidgetStoreV2] ❌ Failed to start direct session:", fe), W(`Failed to start session: ${fe instanceof Error ? fe.message : "Unknown error"}`), U(!1);
31425
31427
  }
31426
- }, [T, n, A, P]), It = useCallback(async (me) => {
31427
- const Se = $ || j, Ae = z && $;
31428
- if (console.log("[WidgetStoreV2] 🔍 Email submit attempt:", { email: me, sessionId: z, hasActiveSession: Ae, hasJwt: !!Se }), !Se) {
31428
+ }, [T, n, A, P]), It = useCallback(async (fe) => {
31429
+ const be = $ || j, Ae = z && $;
31430
+ if (console.log("[WidgetStoreV2] 🔍 Email submit attempt:", { email: fe, sessionId: z, hasActiveSession: Ae, hasJwt: !!be }), !be) {
31429
31431
  console.error("[WidgetStoreV2] ❌ Missing JWT for email submission");
31430
31432
  return;
31431
31433
  }
@@ -31441,7 +31443,7 @@ const MAX_RECONNECT_ATTEMPTS = 10, BASE_RECONNECT_DELAY = 1e3, initializeSocket
31441
31443
  "Content-Type": "application/json"
31442
31444
  },
31443
31445
  body: JSON.stringify({
31444
- email: me.trim(),
31446
+ email: fe.trim(),
31445
31447
  anonymous_user_id: Te || void 0
31446
31448
  })
31447
31449
  });
@@ -31459,7 +31461,7 @@ const MAX_RECONNECT_ATTEMPTS = 10, BASE_RECONNECT_DELAY = 1e3, initializeSocket
31459
31461
  "Content-Type": "application/json"
31460
31462
  },
31461
31463
  body: JSON.stringify({
31462
- email: me.trim(),
31464
+ email: fe.trim(),
31463
31465
  role: "Widget User",
31464
31466
  company: "Widget Demo",
31465
31467
  needs: [],
@@ -31482,19 +31484,19 @@ const MAX_RECONNECT_ATTEMPTS = 10, BASE_RECONNECT_DELAY = 1e3, initializeSocket
31482
31484
  } finally {
31483
31485
  ne(!1);
31484
31486
  }
31485
- }, [z, j, $, n, T, P]), Mt = useCallback(async (me) => {
31486
- se(me), console.log(me === "voice" ? "[WidgetStoreV2] 🎤 Voice mode selected" : "[WidgetStoreV2] 📝 Text mode selected");
31487
+ }, [z, j, $, n, T, P]), Mt = useCallback(async (fe) => {
31488
+ se(fe), console.log(fe === "voice" ? "[WidgetStoreV2] 🎤 Voice mode selected" : "[WidgetStoreV2] 📝 Text mode selected");
31487
31489
  }, []), Dt = useCallback(async () => {
31488
31490
  if (!z || !(j || $))
31489
31491
  return console.error("[WidgetStoreV2] ❌ Cannot reconnect: missing session data"), !1;
31490
31492
  try {
31491
31493
  if (console.log("[WidgetStoreV2] 🔄 Manual reconnection initiated by user..."), nt(!0), ie === "voice") {
31492
- const me = ue.filter((Te) => Te.role === "user").slice(-1)[0]?.content || "", Se = ue.filter((Te) => Te.role === "assistant").slice(-1)[0]?.content || "";
31493
- return await _e.startVoiceSession(!0, me, Se) ? (console.log("[WidgetStoreV2] ✅ Voice session reconnected successfully"), qe(!1), !0) : (W("Failed to reconnect voice. Please try again."), !1);
31494
+ const fe = ue.filter((Te) => Te.role === "user").slice(-1)[0]?.content || "", be = ue.filter((Te) => Te.role === "assistant").slice(-1)[0]?.content || "";
31495
+ return await _e.startVoiceSession(!0, fe, be) ? (console.log("[WidgetStoreV2] ✅ Voice session reconnected successfully"), qe(!1), !0) : (W("Failed to reconnect voice. Please try again."), !1);
31494
31496
  } else
31495
31497
  return await rt.startTextSession() ? (console.log("[WidgetStoreV2] ✅ Text session reconnected successfully"), !0) : (W("Failed to reconnect. Please try again."), !1);
31496
- } catch (me) {
31497
- return console.error("[WidgetStoreV2] ❌ Manual reconnection failed:", me), W("Reconnection failed. Please try starting a new conversation."), !1;
31498
+ } catch (fe) {
31499
+ return console.error("[WidgetStoreV2] ❌ Manual reconnection failed:", fe), W("Reconnection failed. Please try starting a new conversation."), !1;
31498
31500
  } finally {
31499
31501
  nt(!1);
31500
31502
  }
@@ -31505,8 +31507,8 @@ const MAX_RECONNECT_ATTEMPTS = 10, BASE_RECONNECT_DELAY = 1e3, initializeSocket
31505
31507
  }, []), _t = useCallback(() => {
31506
31508
  Ze.current = Date.now(), tt.current = setInterval(() => {
31507
31509
  if (Ze.current) {
31508
- const me = Math.floor((Date.now() - Ze.current) / 1e3);
31509
- pe(me);
31510
+ const fe = Math.floor((Date.now() - Ze.current) / 1e3);
31511
+ pe(fe);
31510
31512
  }
31511
31513
  }, 1e3);
31512
31514
  }, []), Ct = useCallback(() => {
@@ -31533,12 +31535,12 @@ const MAX_RECONNECT_ATTEMPTS = 10, BASE_RECONNECT_DELAY = 1e3, initializeSocket
31533
31535
  sessionId: z || "none",
31534
31536
  hasJwt: !!(j || $)
31535
31537
  }), Y && te && !_e.isConnected && !_e.isConnecting && !st.current) {
31536
- const me = te && (z || !te.require_email), Se = j || $;
31538
+ const fe = te && (z || !te.require_email), be = j || $;
31537
31539
  console.log("[WidgetStoreV2] 🎤 Voice session init check:", {
31538
- hasRequiredData: me,
31539
- hasJwt: Se,
31540
+ hasRequiredData: fe,
31541
+ hasJwt: be,
31540
31542
  sessionId: z || "none"
31541
- }), me && Se ? (st.current = !0, console.log("[WidgetStoreV2] 🎤 Starting voice session for", A, "mode..."), (async () => {
31543
+ }), fe && be ? (st.current = !0, console.log("[WidgetStoreV2] 🎤 Starting voice session for", A, "mode..."), (async () => {
31542
31544
  try {
31543
31545
  if (console.log("[WidgetStoreV2] 🎤 About to call startVoiceSession..."), !z || !(j || $) || !te) {
31544
31546
  console.error("[WidgetStoreV2] ❌ Missing data for voice session:", {
@@ -31568,18 +31570,18 @@ const MAX_RECONNECT_ATTEMPTS = 10, BASE_RECONNECT_DELAY = 1e3, initializeSocket
31568
31570
  if (n) {
31569
31571
  V(!0), W(null);
31570
31572
  try {
31571
- const me = await fetch(buildApiUrl(`api/widget/bootstrap?agent_id=${n}`), {
31573
+ const fe = await fetch(buildApiUrl(`api/widget/bootstrap?agent_id=${n}`), {
31572
31574
  method: "GET",
31573
31575
  headers: { "Content-Type": "application/json" }
31574
31576
  });
31575
- if (!me.ok)
31577
+ if (!fe.ok)
31576
31578
  throw new Error("Failed to get bootstrap JWT");
31577
- const { access_token: Se } = await me.json();
31578
- at(Se);
31579
+ const { access_token: be } = await fe.json();
31580
+ at(be);
31579
31581
  const Ae = await fetch(buildApiUrl(`api/widget/session/agent-config/${n}`), {
31580
31582
  method: "GET",
31581
31583
  headers: {
31582
- Authorization: `Bearer ${Se}`,
31584
+ Authorization: `Bearer ${be}`,
31583
31585
  "Content-Type": "application/json"
31584
31586
  }
31585
31587
  });
@@ -31587,8 +31589,8 @@ const MAX_RECONNECT_ATTEMPTS = 10, BASE_RECONNECT_DELAY = 1e3, initializeSocket
31587
31589
  throw new Error(`Failed to load agent: ${Ae.statusText}`);
31588
31590
  const Te = await Ae.json();
31589
31591
  oe(Te), console.log("[WidgetStoreV2] ✅ Agent loaded:", Te.name);
31590
- } catch (me) {
31591
- console.error("[WidgetStoreV2] ❌ Failed to load agent:", me);
31592
+ } catch (fe) {
31593
+ console.error("[WidgetStoreV2] ❌ Failed to load agent:", fe);
31592
31594
  } finally {
31593
31595
  V(!1);
31594
31596
  }
@@ -31607,7 +31609,7 @@ const MAX_RECONNECT_ATTEMPTS = 10, BASE_RECONNECT_DELAY = 1e3, initializeSocket
31607
31609
  try {
31608
31610
  if (z && $)
31609
31611
  try {
31610
- const me = buildApiUrl(`api/widget/session/${z}/end`), Se = await fetch(me, {
31612
+ const fe = buildApiUrl(`api/widget/session/${z}/end`), be = await fetch(fe, {
31611
31613
  method: "POST",
31612
31614
  headers: {
31613
31615
  Authorization: `Bearer ${$}`,
@@ -31615,20 +31617,20 @@ const MAX_RECONNECT_ATTEMPTS = 10, BASE_RECONNECT_DELAY = 1e3, initializeSocket
31615
31617
  "Content-Type": "application/json"
31616
31618
  }
31617
31619
  });
31618
- if (Se.ok)
31620
+ if (be.ok)
31619
31621
  console.log("[WidgetStoreV2] ✅ Session ended on backend successfully");
31620
31622
  else {
31621
- const Ae = await Se.text();
31622
- console.warn("[WidgetStoreV2] ⚠️ Failed to end session on backend:", Se.status, Ae);
31623
+ const Ae = await be.text();
31624
+ console.warn("[WidgetStoreV2] ⚠️ Failed to end session on backend:", be.status, Ae);
31623
31625
  }
31624
- } catch (me) {
31625
- console.error("[WidgetStoreV2] ⚠️ Error calling end endpoint:", me);
31626
+ } catch (fe) {
31627
+ console.error("[WidgetStoreV2] ⚠️ Error calling end endpoint:", fe);
31626
31628
  }
31627
31629
  else
31628
31630
  console.warn("[WidgetStoreV2] ⚠️ No sessionId or widgetJwt available for backend session end");
31629
31631
  _e.isConnected && await _e.endVoiceSession(), rt.isConnected && await rt.endTextSession(), Z(!1), ye(!0), st.current = !1, ht.current = !1, pt.current = !1, A === "inline" && (H(null), Q(null), at(null), he([]), W(null), U(!1)), A === "floating" && vt();
31630
- } catch (me) {
31631
- console.error("[WidgetStoreV2] ❌ Error ending call:", me), ut(`Failed to end call: ${me instanceof Error ? me.message : "Unknown error"}`);
31632
+ } catch (fe) {
31633
+ console.error("[WidgetStoreV2] ❌ Error ending call:", fe), ut(`Failed to end call: ${fe instanceof Error ? fe.message : "Unknown error"}`);
31632
31634
  } finally {
31633
31635
  ft.current = !1;
31634
31636
  }
@@ -31638,12 +31640,12 @@ const MAX_RECONNECT_ATTEMPTS = 10, BASE_RECONNECT_DELAY = 1e3, initializeSocket
31638
31640
  if (_e.isConnected)
31639
31641
  try {
31640
31642
  await _e.endVoiceSession(), console.log("[WidgetStoreV2] Voice session ended due to pause");
31641
- } catch (me) {
31642
- console.error("[WidgetStoreV2] Error ending voice session on pause:", me);
31643
+ } catch (fe) {
31644
+ console.error("[WidgetStoreV2] Error ending voice session on pause:", fe);
31643
31645
  }
31644
31646
  if (z && $)
31645
31647
  try {
31646
- const me = await fetch(buildApiUrl(`api/widget/session/${z}/pause`), {
31648
+ const fe = await fetch(buildApiUrl(`api/widget/session/${z}/pause`), {
31647
31649
  method: "POST",
31648
31650
  headers: {
31649
31651
  Authorization: `Bearer ${$}`,
@@ -31651,12 +31653,12 @@ const MAX_RECONNECT_ATTEMPTS = 10, BASE_RECONNECT_DELAY = 1e3, initializeSocket
31651
31653
  "Content-Type": "application/json"
31652
31654
  }
31653
31655
  });
31654
- if (me.ok) {
31655
- const Se = await me.json();
31656
- console.log("[WidgetStoreV2] Session paused successfully:", Se), we("paused"), updateStatus("paused");
31657
- } else me.status === 401 || me.status === 403 ? (console.warn("[WidgetStoreV2] JWT expired during pause, will need to re-bootstrap on resume"), we("paused")) : console.error("[WidgetStoreV2] Failed to pause session:", me.statusText);
31658
- } catch (me) {
31659
- console.error("[WidgetStoreV2] Error calling pause endpoint:", me), we("paused");
31656
+ if (fe.ok) {
31657
+ const be = await fe.json();
31658
+ console.log("[WidgetStoreV2] Session paused successfully:", be), we("paused"), updateStatus("paused");
31659
+ } else fe.status === 401 || fe.status === 403 ? (console.warn("[WidgetStoreV2] JWT expired during pause, will need to re-bootstrap on resume"), we("paused")) : console.error("[WidgetStoreV2] Failed to pause session:", fe.statusText);
31660
+ } catch (fe) {
31661
+ console.error("[WidgetStoreV2] Error calling pause endpoint:", fe), we("paused");
31660
31662
  }
31661
31663
  if (P)
31662
31664
  try {
@@ -31664,78 +31666,80 @@ const MAX_RECONNECT_ATTEMPTS = 10, BASE_RECONNECT_DELAY = 1e3, initializeSocket
31664
31666
  reason: "user_action",
31665
31667
  sessionId: z
31666
31668
  });
31667
- } catch (me) {
31668
- console.error("[WidgetStoreV2] Error tracking pause event:", me);
31669
+ } catch (fe) {
31670
+ console.error("[WidgetStoreV2] Error tracking pause event:", fe);
31669
31671
  }
31670
- } catch (me) {
31671
- console.error("[WidgetStoreV2] Error in pauseSession:", me);
31672
+ } catch (fe) {
31673
+ console.error("[WidgetStoreV2] Error in pauseSession:", fe);
31672
31674
  }
31673
- }, [z, $, T, _e, P]), Ft = useCallback(async (me) => {
31674
- if (!(!$ || !z)) {
31675
- P && P.trackCTAClick(me.id, me.button_text);
31676
- try {
31677
- const Se = await fetch(buildApiUrl("api/widget/custom-cta/click"), {
31678
- method: "POST",
31679
- headers: {
31680
- Authorization: `Bearer ${$}`,
31681
- "Content-Type": "application/json"
31682
- },
31683
- body: JSON.stringify({
31684
- custom_cta_id: me.id,
31685
- widget_session_id: z
31686
- })
31687
- });
31688
- if (Se.ok) {
31689
- const Te = await Se.json();
31690
- sessionStorage.setItem("lastCtaClickId", Te.id);
31691
- }
31692
- if (me.open_in_new_tab !== !1)
31693
- window.open(me.href, "_blank", "noopener,noreferrer");
31694
- else {
31695
- console.log("[WidgetStoreV2] Same-tab CTA redirect - pausing session for continuity");
31696
- try {
31697
- await lt(), saveSession({
31698
- sessionId: z,
31699
- widgetJwt: $,
31700
- agentId: n,
31701
- companyToken: T,
31702
- status: "paused",
31703
- lastActivityAt: Date.now(),
31704
- pageUrl: window.location.href,
31705
- conversationState: {
31706
- messageCount: ue.length,
31707
- lastMessage: ue.length > 0 ? ue[ue.length - 1].content : void 0
31708
- }
31709
- }), sessionStorage.setItem(CTA_SAME_TAB_REDIRECT_KEY, "1");
31710
- } catch (Te) {
31711
- console.warn("[WidgetStoreV2] Failed to pause before same-tab redirect:", Te), saveSession({
31712
- sessionId: z,
31713
- widgetJwt: $,
31714
- agentId: n,
31715
- companyToken: T,
31716
- status: "paused",
31717
- lastActivityAt: Date.now(),
31718
- pageUrl: window.location.href,
31719
- conversationState: { messageCount: ue.length, lastMessage: void 0 }
31720
- }), sessionStorage.setItem(CTA_SAME_TAB_REDIRECT_KEY, "1");
31721
- }
31722
- window.location.href = me.href;
31723
- }
31724
- } catch (Se) {
31725
- console.error("[WidgetStoreV2] Error handling CTA click:", Se);
31726
- const Ae = me.open_in_new_tab !== !1 ? "_blank" : "_self";
31727
- window.open(me.href, Ae, me.open_in_new_tab !== !1 ? "noopener,noreferrer" : void 0);
31675
+ }, [z, $, T, _e, P]), Ft = useCallback(async (fe) => {
31676
+ if (!$ || !z) {
31677
+ console.warn("[WidgetStoreV2] Skipping CTA tracking: missing credentials", { sessionId: z, hasJwt: !!$ });
31678
+ return;
31679
+ }
31680
+ P && P.trackCTAClick(fe.id, fe.button_text);
31681
+ try {
31682
+ const be = await fetch(buildApiUrl("api/widget/custom-cta/click"), {
31683
+ method: "POST",
31684
+ headers: {
31685
+ Authorization: `Bearer ${$}`,
31686
+ "Content-Type": "application/json"
31687
+ },
31688
+ body: JSON.stringify({
31689
+ custom_cta_id: fe.id,
31690
+ widget_session_id: z
31691
+ })
31692
+ });
31693
+ if (be.ok) {
31694
+ const Te = await be.json();
31695
+ sessionStorage.setItem("lastCtaClickId", Te.id);
31728
31696
  }
31697
+ if (fe.open_in_new_tab !== !1)
31698
+ window.open(fe.href, "_blank", "noopener,noreferrer");
31699
+ else {
31700
+ console.log("[WidgetStoreV2] Same-tab CTA redirect - pausing session for continuity");
31701
+ try {
31702
+ await lt(), saveSession({
31703
+ sessionId: z,
31704
+ widgetJwt: $,
31705
+ agentId: n,
31706
+ companyToken: T,
31707
+ status: "paused",
31708
+ lastActivityAt: Date.now(),
31709
+ pageUrl: window.location.href,
31710
+ conversationState: {
31711
+ messageCount: ue.length,
31712
+ lastMessage: ue.length > 0 ? ue[ue.length - 1].content : void 0
31713
+ }
31714
+ }), sessionStorage.setItem(CTA_SAME_TAB_REDIRECT_KEY, "1");
31715
+ } catch (Te) {
31716
+ console.warn("[WidgetStoreV2] Failed to pause before same-tab redirect:", Te), saveSession({
31717
+ sessionId: z,
31718
+ widgetJwt: $,
31719
+ agentId: n,
31720
+ companyToken: T,
31721
+ status: "paused",
31722
+ lastActivityAt: Date.now(),
31723
+ pageUrl: window.location.href,
31724
+ conversationState: { messageCount: ue.length, lastMessage: void 0 }
31725
+ }), sessionStorage.setItem(CTA_SAME_TAB_REDIRECT_KEY, "1");
31726
+ }
31727
+ window.location.href = fe.href;
31728
+ }
31729
+ } catch (be) {
31730
+ console.error("[WidgetStoreV2] Error handling CTA click:", be);
31731
+ const Ae = fe.open_in_new_tab !== !1 ? "_blank" : "_self";
31732
+ window.open(fe.href, Ae, fe.open_in_new_tab !== !1 ? "noopener,noreferrer" : void 0);
31729
31733
  }
31730
31734
  }, [$, z, n, T, P, lt, ue]);
31731
31735
  useEffect(() => {
31732
31736
  _e.setAgentSpeaking && _e.setAgentSpeaking(_e.isAgentSpeaking);
31733
31737
  }, [_e.isAgentSpeaking, _e.setAgentSpeaking]);
31734
- const Nt = useCallback((me) => {
31735
- Q(me);
31736
- }, []), bt = useCallback(async (me, Se) => {
31738
+ const Nt = useCallback((fe) => {
31739
+ Q(fe);
31740
+ }, []), bt = useCallback(async (fe, be) => {
31737
31741
  console.log("[WidgetStoreV2] Resuming session...");
31738
- const Ae = me ?? z, Te = Se ?? $;
31742
+ const Ae = fe ?? z, Te = be ?? $;
31739
31743
  if (!Ae || !Te)
31740
31744
  return console.error("[WidgetStoreV2] Cannot resume: missing session ID or JWT"), !1;
31741
31745
  try {
@@ -31836,7 +31840,7 @@ const MAX_RECONNECT_ATTEMPTS = 10, BASE_RECONNECT_DELAY = 1e3, initializeSocket
31836
31840
  try {
31837
31841
  if (z && $)
31838
31842
  try {
31839
- const me = await fetch(buildApiUrl(`api/widget/session/${z}/end`), {
31843
+ const fe = await fetch(buildApiUrl(`api/widget/session/${z}/end`), {
31840
31844
  method: "POST",
31841
31845
  headers: {
31842
31846
  Authorization: `Bearer ${$}`,
@@ -31844,80 +31848,80 @@ const MAX_RECONNECT_ATTEMPTS = 10, BASE_RECONNECT_DELAY = 1e3, initializeSocket
31844
31848
  "Content-Type": "application/json"
31845
31849
  }
31846
31850
  });
31847
- me.ok ? console.log("[WidgetStoreV2] Session ended on server") : console.warn("[WidgetStoreV2] Failed to end session on server:", me.statusText);
31848
- } catch (me) {
31849
- console.warn("[WidgetStoreV2] Error calling end endpoint:", me);
31851
+ fe.ok ? console.log("[WidgetStoreV2] Session ended on server") : console.warn("[WidgetStoreV2] Failed to end session on server:", fe.statusText);
31852
+ } catch (fe) {
31853
+ console.warn("[WidgetStoreV2] Error calling end endpoint:", fe);
31850
31854
  }
31851
31855
  await yt(), clearSession(), we("active"), De(!1), Re(!1), Me(!1), console.log("[WidgetStoreV2] Session ended and persistence cleared");
31852
- } catch (me) {
31853
- console.error("[WidgetStoreV2] Error ending session:", me);
31856
+ } catch (fe) {
31857
+ console.error("[WidgetStoreV2] Error ending session:", fe);
31854
31858
  }
31855
31859
  }, [yt, z, $, T]), Et = useCallback(async () => {
31856
31860
  console.log("[WidgetStoreV2] Tab hidden - pausing session"), await lt();
31857
31861
  }, [lt]), xt = useCallback(async () => {
31858
31862
  console.log("[WidgetStoreV2] Tab visible - checking for resumable session");
31859
31863
  try {
31860
- const me = sessionStorage.getItem("lastCtaClickId"), Se = hasValidSession() ? loadSession() : null, Ae = Se?.widgetJwt || $;
31861
- if (me && Ae && me !== "agent-redirect")
31864
+ const fe = sessionStorage.getItem("lastCtaClickId"), be = hasValidSession() ? loadSession() : null, Ae = be?.widgetJwt || $;
31865
+ if (fe && Ae && fe !== "agent-redirect")
31862
31866
  try {
31863
- await fetch(buildApiUrl(`api/widget/custom-cta/return/${me}`), {
31867
+ await fetch(buildApiUrl(`api/widget/custom-cta/return/${fe}`), {
31864
31868
  method: "POST",
31865
31869
  headers: { Authorization: `Bearer ${Ae}` }
31866
31870
  });
31867
31871
  } catch (Te) {
31868
31872
  console.error("[WidgetStoreV2] Error tracking CTA return:", Te);
31869
31873
  }
31870
- if (me && sessionStorage.removeItem("lastCtaClickId"), hasValidSession() && Se && Se && Se.status === "paused") {
31871
- if (me) {
31874
+ if (fe && sessionStorage.removeItem("lastCtaClickId"), hasValidSession() && be && be && be.status === "paused") {
31875
+ if (fe) {
31872
31876
  console.log("[WidgetStoreV2] Returning from CTA - auto-resuming session");
31873
31877
  try {
31874
- await bt(Se.sessionId, Se.widgetJwt);
31878
+ await bt(be.sessionId, be.widgetJwt);
31875
31879
  } catch (Te) {
31876
- console.error("[WidgetStoreV2] Auto-resume failed:", Te), H(Se.sessionId), Q(Se.widgetJwt), we("resumable"), De(!0);
31880
+ console.error("[WidgetStoreV2] Auto-resume failed:", Te), H(be.sessionId), Q(be.widgetJwt), we("resumable"), De(!0);
31877
31881
  }
31878
31882
  return;
31879
31883
  }
31880
- if (console.log("[WidgetStoreV2] Found paused session, marking as resumable"), H(Se.sessionId), Q(Se.widgetJwt), we("resumable"), De(!0), Se.conversationState && console.log("[WidgetStoreV2] Restoring conversation state:", Se.conversationState), P)
31884
+ if (console.log("[WidgetStoreV2] Found paused session, marking as resumable"), H(be.sessionId), Q(be.widgetJwt), we("resumable"), De(!0), be.conversationState && console.log("[WidgetStoreV2] Restoring conversation state:", be.conversationState), P)
31881
31885
  try {
31882
31886
  P.trackEvent("session_resumable", "Session Resumable", {
31883
- sessionId: Se.sessionId,
31884
- messageCount: Se.conversationState?.messageCount || 0
31887
+ sessionId: be.sessionId,
31888
+ messageCount: be.conversationState?.messageCount || 0
31885
31889
  });
31886
31890
  } catch (Te) {
31887
31891
  console.error("[WidgetStoreV2] Error tracking resumable event:", Te);
31888
31892
  }
31889
31893
  }
31890
- } catch (me) {
31891
- console.error("[WidgetStoreV2] Error in handleTabVisible:", me);
31894
+ } catch (fe) {
31895
+ console.error("[WidgetStoreV2] Error in handleTabVisible:", fe);
31892
31896
  }
31893
31897
  }, [z, $, P, bt]), Pt = useCallback(async () => {
31894
31898
  if (!sessionStorage.getItem(CTA_SAME_TAB_REDIRECT_KEY)) return;
31895
31899
  sessionStorage.removeItem(CTA_SAME_TAB_REDIRECT_KEY);
31896
- const Se = hasValidSession() ? loadSession() : null;
31897
- !Se || Se.status !== "paused" || Se.agentId !== n || Se.companyToken !== T || (console.log("[WidgetStoreV2] Same-tab CTA redirect detected - restoring session for resume"), H(Se.sessionId), Q(Se.widgetJwt), we("resumable"), De(!0));
31900
+ const be = hasValidSession() ? loadSession() : null;
31901
+ !be || be.status !== "paused" || be.agentId !== n || be.companyToken !== T || (console.log("[WidgetStoreV2] Same-tab CTA redirect detected - restoring session for resume"), H(be.sessionId), Q(be.widgetJwt), we("resumable"), De(!0));
31898
31902
  }, [n, T]);
31899
31903
  useEffect(() => {
31900
31904
  Pt();
31901
31905
  }, [Pt]), useEffect(() => {
31902
- const me = () => {
31903
- const Se = Date.now();
31904
- if (Se - kt.current < At) {
31906
+ const fe = () => {
31907
+ const be = Date.now();
31908
+ if (be - kt.current < At) {
31905
31909
  console.log("[WidgetStoreV2] Visibility change debounced");
31906
31910
  return;
31907
31911
  }
31908
- kt.current = Se, ot.current && clearTimeout(ot.current), ot.current = setTimeout(() => {
31912
+ kt.current = be, ot.current && clearTimeout(ot.current), ot.current = setTimeout(() => {
31909
31913
  document.visibilityState === "hidden" ? Et() : document.visibilityState === "visible" && xt();
31910
31914
  }, 0);
31911
31915
  };
31912
- return document.addEventListener("visibilitychange", me), () => {
31913
- document.removeEventListener("visibilitychange", me), ot.current && clearTimeout(ot.current);
31916
+ return document.addEventListener("visibilitychange", fe), () => {
31917
+ document.removeEventListener("visibilitychange", fe), ot.current && clearTimeout(ot.current);
31914
31918
  };
31915
31919
  }, [Et, xt]), useEffect(() => {
31916
- const me = () => {
31920
+ const fe = () => {
31917
31921
  if (!(!z || !$) && !sessionStorage.getItem(CTA_SAME_TAB_REDIRECT_KEY))
31918
31922
  try {
31919
- const Se = buildApiUrl(`api/widget/session/${z}/end`), Ae = JSON.stringify({ reason: "beforeunload" });
31920
- fetch(Se, {
31923
+ const be = buildApiUrl(`api/widget/session/${z}/end`), Ae = JSON.stringify({ reason: "beforeunload" });
31924
+ fetch(be, {
31921
31925
  method: "POST",
31922
31926
  headers: {
31923
31927
  Authorization: `Bearer ${$}`,
@@ -31929,11 +31933,11 @@ const MAX_RECONNECT_ATTEMPTS = 10, BASE_RECONNECT_DELAY = 1e3, initializeSocket
31929
31933
  }).catch((Te) => {
31930
31934
  console.warn("[WidgetStoreV2] End session keepalive failed:", Te);
31931
31935
  });
31932
- } catch (Se) {
31933
- console.warn("[WidgetStoreV2] Failed to send endSession beacon on unload:", Se);
31936
+ } catch (be) {
31937
+ console.warn("[WidgetStoreV2] Failed to send endSession beacon on unload:", be);
31934
31938
  }
31935
31939
  };
31936
- return window.addEventListener("beforeunload", me), () => window.removeEventListener("beforeunload", me);
31940
+ return window.addEventListener("beforeunload", fe), () => window.removeEventListener("beforeunload", fe);
31937
31941
  }, [z, $, T]), useEffect(() => {
31938
31942
  z && $ && xe === "active" && saveSession({
31939
31943
  sessionId: z,
@@ -31950,9 +31954,9 @@ const MAX_RECONNECT_ATTEMPTS = 10, BASE_RECONNECT_DELAY = 1e3, initializeSocket
31950
31954
  });
31951
31955
  }, [z, $, n, T, xe, ue]), useEffect(() => {
31952
31956
  if (!z || !$) return;
31953
- const me = getSocket();
31954
- if (!me) return;
31955
- const Se = (Ve) => {
31957
+ const fe = getSocket();
31958
+ if (!fe) return;
31959
+ const be = (Ve) => {
31956
31960
  console.log("[WidgetStoreV2] Tool call event:", Ve), Fe("calling_tool"), Ne(Ve.tool_name), setTimeout(() => {
31957
31961
  Fe("idle"), Ne(void 0);
31958
31962
  }, 5e3);
@@ -31970,8 +31974,8 @@ const MAX_RECONNECT_ATTEMPTS = 10, BASE_RECONNECT_DELAY = 1e3, initializeSocket
31970
31974
  }
31971
31975
  }
31972
31976
  };
31973
- return me.on("tool_call", Se), me.on("agent_speaking", Ae), me.on("agent_idle", Te), me.on("agent_message", Ue), () => {
31974
- me.off("tool_call", Se), me.off("agent_speaking", Ae), me.off("agent_idle", Te), me.off("agent_message", Ue);
31977
+ return fe.on("tool_call", be), fe.on("agent_speaking", Ae), fe.on("agent_idle", Te), fe.on("agent_message", Ue), () => {
31978
+ fe.off("tool_call", be), fe.off("agent_speaking", Ae), fe.off("agent_idle", Te), fe.off("agent_message", Ue);
31975
31979
  };
31976
31980
  }, [z, $, _e, se]), useEffect(() => {
31977
31981
  _e.isAgentSpeaking ? (Fe("speaking"), Ne(void 0)) : _e.isListening && (Fe("idle"), Ne(void 0));
@@ -31997,19 +32001,32 @@ const MAX_RECONNECT_ATTEMPTS = 10, BASE_RECONNECT_DELAY = 1e3, initializeSocket
31997
32001
  Be,
31998
32002
  ge
31999
32003
  ]);
32000
- const Bt = useCallback(async (me) => {
32001
- if (me.trim() && (mt({ role: "user", content: me, source: "text" }), _e.isConnected && _e.conversation))
32004
+ const Bt = useCallback(async (fe) => {
32005
+ if (fe.trim() && (mt({ role: "user", content: fe, source: "text" }), z && $ ? fetch(buildApiUrl("api/widget/session/log-message"), {
32006
+ method: "POST",
32007
+ headers: {
32008
+ Authorization: `Bearer ${$}`,
32009
+ "Content-Type": "application/json"
32010
+ },
32011
+ body: JSON.stringify({
32012
+ session_id: z,
32013
+ role: "user",
32014
+ message: fe.trim()
32015
+ })
32016
+ }).then((be) => {
32017
+ be.ok || console.error("[WidgetStoreV2] log-message failed:", be.status, be.statusText);
32018
+ }).catch((be) => console.error("[WidgetStoreV2] Failed to log text message (network):", be)) : console.warn("[WidgetStoreV2] Skipping log-message: missing sessionId or widgetJwt", { sessionId: z, hasJwt: !!$ }), _e.isConnected && _e.conversation))
32002
32019
  try {
32003
- await _e.conversation.sendUserMessage(me);
32004
- } catch (Se) {
32005
- console.error("[WidgetStoreV2] Failed to send text via voice session:", Se);
32020
+ await _e.conversation.sendUserMessage(fe);
32021
+ } catch (be) {
32022
+ console.error("[WidgetStoreV2] Failed to send text via voice session:", be);
32006
32023
  }
32007
- }, [_e.isConnected, _e.conversation, mt]), Ut = useCallback(() => {
32024
+ }, [_e.isConnected, _e.conversation, mt, z, $]), Ut = useCallback(() => {
32008
32025
  if (!(!_e.isConnected || !_e.conversation))
32009
32026
  try {
32010
32027
  _e.conversation.sendUserActivity?.();
32011
- } catch (me) {
32012
- console.warn("[WidgetStoreV2] sendUserActivity failed:", me);
32028
+ } catch (fe) {
32029
+ console.warn("[WidgetStoreV2] sendUserActivity failed:", fe);
32013
32030
  }
32014
32031
  }, [_e.isConnected, _e.conversation]);
32015
32032
  return {
@@ -32027,7 +32044,7 @@ const MAX_RECONNECT_ATTEMPTS = 10, BASE_RECONNECT_DELAY = 1e3, initializeSocket
32027
32044
  callDuration: le,
32028
32045
  messages: ue,
32029
32046
  textInput: ve,
32030
- isSubmittingEmail: fe,
32047
+ isSubmittingEmail: me,
32031
32048
  emailError: ce,
32032
32049
  agent: te,
32033
32050
  customCta: ae,
@@ -32035,7 +32052,7 @@ const MAX_RECONNECT_ATTEMPTS = 10, BASE_RECONNECT_DELAY = 1e3, initializeSocket
32035
32052
  emailSubmitted: Ee,
32036
32053
  sessionHasEmail: Ie,
32037
32054
  showEmailFormRequestedByAgent: Le,
32038
- forceDisplayEmailForm: ke,
32055
+ forceDisplayEmailForm: Se,
32039
32056
  // Session persistence state
32040
32057
  sessionStatus: xe,
32041
32058
  canResumeSession: Oe,
@@ -32081,7 +32098,7 @@ const MAX_RECONNECT_ATTEMPTS = 10, BASE_RECONNECT_DELAY = 1e3, initializeSocket
32081
32098
  endTextSession: rt.endTextSession,
32082
32099
  handleTextSubmit: rt.handleTextSubmit,
32083
32100
  // Setters
32084
- setTextInput: be,
32101
+ setTextInput: ke,
32085
32102
  setError: ut,
32086
32103
  // Clear error
32087
32104
  clearError: Rt,
@@ -33952,17 +33969,17 @@ const ShowMePanel = ({
33952
33969
  }) => {
33953
33970
  const $ = React.useRef(null);
33954
33971
  if (!$.current) {
33955
- const ke = B || getCurrentApiUrl();
33972
+ const Se = B || getCurrentApiUrl();
33956
33973
  $.current = new AnalyticsService({
33957
- baseUrl: ke,
33974
+ baseUrl: Se,
33958
33975
  companyToken: T,
33959
33976
  agentId: n,
33960
33977
  sessionId: void 0
33961
33978
  });
33962
33979
  }
33963
- const Q = $.current, j = useWidgetStore({ companyToken: T, agentId: n, analyticsService: Q, mode: U, initialExpanded: N }), J = React.useRef(!1), G = j.agent?.widget_trigger_text ?? R, K = j.agent?.widget_trigger_button_text ?? L, Y = j.agent?.widget_trigger_button_icon ?? O, Z = (ke) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(ke.trim()), ie = (j.showEmailFormRequestedByAgent || !!j.agent?.require_email) && !j.emailSubmitted && (!j.sessionHasEmail || j.forceDisplayEmailForm || !!j.agent?.force_display_email), [se, le] = useState(null), [pe, ue] = useState(!1);
33980
+ const Q = $.current, j = useWidgetStore({ companyToken: T, agentId: n, analyticsService: Q, mode: U, initialExpanded: N }), J = React.useRef(!1), G = j.agent?.widget_trigger_text ?? R, K = j.agent?.widget_trigger_button_text ?? L, Y = j.agent?.widget_trigger_button_icon ?? O, Z = (Se) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(Se.trim()), ie = (j.showEmailFormRequestedByAgent || !!j.agent?.require_email) && !j.emailSubmitted && (!j.sessionHasEmail || j.forceDisplayEmailForm || !!j.agent?.force_display_email), [se, le] = useState(null), [pe, ue] = useState(!1);
33964
33981
  useEffect(() => {
33965
- const ke = (xe) => {
33982
+ const Se = (xe) => {
33966
33983
  const Oe = xe.detail?.asset;
33967
33984
  if (!Oe) return;
33968
33985
  const De = (Ne) => {
@@ -33975,25 +33992,25 @@ const ShowMePanel = ({
33975
33992
  }, Ce = () => {
33976
33993
  le(null), ue(!1);
33977
33994
  };
33978
- return window.addEventListener("show_asset", ke), window.addEventListener("close_asset", Ce), () => {
33979
- window.removeEventListener("show_asset", ke), window.removeEventListener("close_asset", Ce);
33995
+ return window.addEventListener("show_asset", Se), window.addEventListener("close_asset", Ce), () => {
33996
+ window.removeEventListener("show_asset", Se), window.removeEventListener("close_asset", Ce);
33980
33997
  };
33981
33998
  }, []);
33982
33999
  const he = useRef([]);
33983
34000
  useEffect(() => {
33984
- const ke = he.current, Ce = j.messages.map((xe, we) => ({
34001
+ const Se = he.current, Ce = j.messages.map((xe, we) => ({
33985
34002
  role: xe.role === "assistant" ? "agent" : "user",
33986
34003
  text: xe.content,
33987
34004
  source: xe.source || "voice",
33988
- timestamp: we < ke.length ? ke[we] : Date.now(),
34005
+ timestamp: we < Se.length ? Se[we] : Date.now(),
33989
34006
  isFinal: !0
33990
34007
  }));
33991
34008
  he.current = Ce.map((xe) => xe.timestamp), useConversationStore.getState().setMessages(Ce);
33992
34009
  }, [j.messages]), useEffect(() => {
33993
- const ke = useVoiceStore.getState();
33994
- ke.setConnectionState(j.connectionState);
34010
+ const Se = useVoiceStore.getState();
34011
+ Se.setConnectionState(j.connectionState);
33995
34012
  let Ce;
33996
- j.aiStatus === "calling_tool" ? Ce = "calling_tool" : j.aiStatus === "thinking" ? Ce = "thinking" : j.isAgentSpeaking ? Ce = "speaking" : j.isListening ? Ce = "listening" : Ce = "idle", ke.setAgentStatus(Ce), j.audioData && ke.setAudioData(j.audioData);
34013
+ j.aiStatus === "calling_tool" ? Ce = "calling_tool" : j.aiStatus === "thinking" ? Ce = "thinking" : j.isAgentSpeaking ? Ce = "speaking" : j.isListening ? Ce = "listening" : Ce = "idle", Se.setAgentStatus(Ce), j.audioData && Se.setAudioData(j.audioData);
33997
34014
  }, [j.connectionState, j.aiStatus, j.isAgentSpeaking, j.isListening, j.audioData]), useEffect(() => {
33998
34015
  j.agent && useAgentConfigStore.getState().setConfig({
33999
34016
  id: j.agent.id,
@@ -34021,11 +34038,11 @@ const ShowMePanel = ({
34021
34038
  J.current = !0, Q.trackWidgetOpen();
34022
34039
  else if (J.current) {
34023
34040
  Q.trackWidgetClose();
34024
- const ke = j.widgetJwt || j.bootstrapJwt;
34025
- j.sessionId && ke && fetch(`${getCurrentApiUrl()}/api/widget/session/${j.sessionId}/end`, {
34041
+ const Se = j.widgetJwt || j.bootstrapJwt;
34042
+ j.sessionId && Se && fetch(`${getCurrentApiUrl()}/api/widget/session/${j.sessionId}/end`, {
34026
34043
  method: "POST",
34027
34044
  headers: {
34028
- Authorization: `Bearer ${ke}`,
34045
+ Authorization: `Bearer ${Se}`,
34029
34046
  "Content-Type": "application/json"
34030
34047
  },
34031
34048
  keepalive: !0
@@ -34039,16 +34056,16 @@ const ShowMePanel = ({
34039
34056
  }, [j.isLoading, j.agent]), useEffect(() => {
34040
34057
  j.error && Q.trackError("Widget Error", "WIDGET_ERROR", j.error);
34041
34058
  }, [j.error]), useEffect(() => {
34042
- const ke = () => {
34059
+ const Se = () => {
34043
34060
  Q?.trackPageVisibilityChange(document.visibilityState === "visible");
34044
34061
  };
34045
- return document.addEventListener("visibilitychange", ke), () => document.removeEventListener("visibilitychange", ke);
34062
+ return document.addEventListener("visibilitychange", Se), () => document.removeEventListener("visibilitychange", Se);
34046
34063
  }, []), useEffect(() => {
34047
34064
  N && !j.isExpanded && j.expandWidget();
34048
34065
  }, []), useEffect(() => {
34049
34066
  j.isExpanded !== N && V && V(j.isExpanded);
34050
34067
  }, [j.isExpanded, N, V]), useEffect(() => {
34051
- const ke = (Ce) => {
34068
+ const Se = (Ce) => {
34052
34069
  const xe = Ce.detail;
34053
34070
  xe.session_id === j.sessionId && xe.message && setTimeout(() => {
34054
34071
  j.addMessage({
@@ -34057,11 +34074,11 @@ const ShowMePanel = ({
34057
34074
  });
34058
34075
  }, 0);
34059
34076
  };
34060
- return window.addEventListener("agent_response", ke), () => window.removeEventListener("agent_response", ke);
34077
+ return window.addEventListener("agent_response", Se), () => window.removeEventListener("agent_response", Se);
34061
34078
  }, [j.sessionId, j.addMessage]), useEffect(() => {
34062
- let ke;
34079
+ let Se;
34063
34080
  const Ce = () => {
34064
- ke = setInterval(async () => {
34081
+ Se = setInterval(async () => {
34065
34082
  if (j.bootstrapJwt && j.sessionId)
34066
34083
  try {
34067
34084
  const xe = await fetch(`${getCurrentApiUrl()}/api/widget/session/refresh`, {
@@ -34082,12 +34099,12 @@ const ShowMePanel = ({
34082
34099
  }, 24e4);
34083
34100
  };
34084
34101
  return j.bootstrapJwt && j.sessionId && Ce(), () => {
34085
- ke && clearInterval(ke);
34102
+ Se && clearInterval(Se);
34086
34103
  };
34087
34104
  }, [j.bootstrapJwt, j.sessionId]);
34088
34105
  const ve = useCallback(
34089
- (ke) => {
34090
- const Ce = ke.trim();
34106
+ (Se) => {
34107
+ const Ce = Se.trim();
34091
34108
  if (!Ce) return;
34092
34109
  if ((j.showEmailFormRequestedByAgent || !!j.agent?.require_email) && !j.emailSubmitted && (!j.sessionHasEmail || j.forceDisplayEmailForm || !!j.agent?.force_display_email) && Z(Ce)) {
34093
34110
  j.handleEmailSubmit(Ce);
@@ -34096,17 +34113,17 @@ const ShowMePanel = ({
34096
34113
  j.sendTextDuringVoice(Ce);
34097
34114
  },
34098
34115
  [j.sendTextDuringVoice, j.handleEmailSubmit, j.showEmailFormRequestedByAgent, j.agent?.require_email, j.emailSubmitted, j.sessionHasEmail, j.forceDisplayEmailForm, j.agent?.force_display_email]
34099
- ), be = useCallback(() => {
34100
- const ke = useVoiceStore.getState(), Ce = !ke.isMicMuted;
34101
- ke.toggleMic(), j.muteMicrophone(Ce);
34102
- }, [j.muteMicrophone]), fe = useCallback(() => {
34103
- const ke = useVoiceStore.getState(), Ce = !ke.isAgentMuted;
34104
- ke.toggleAgentAudio(), j.muteAgentAudio(Ce);
34105
- }, [j.muteAgentAudio]), ne = useCallback((ke) => {
34106
- j.sendTextDuringVoice(ke);
34116
+ ), ke = useCallback(() => {
34117
+ const Se = useVoiceStore.getState(), Ce = !Se.isMicMuted;
34118
+ Se.toggleMic(), j.muteMicrophone(Ce);
34119
+ }, [j.muteMicrophone]), me = useCallback(() => {
34120
+ const Se = useVoiceStore.getState(), Ce = !Se.isAgentMuted;
34121
+ Se.toggleAgentAudio(), j.muteAgentAudio(Ce);
34122
+ }, [j.muteAgentAudio]), ne = useCallback((Se) => {
34123
+ console.log("[ChatWidget] handleNudgeSelect:", Se), j.sendTextDuringVoice(Se);
34107
34124
  }, [j.sendTextDuringVoice]), ce = React.useRef(!1), ee = React.useRef(null), te = React.useRef(null);
34108
34125
  te.current = j.sessionId && j.widgetJwt ? { sessionId: j.sessionId, widgetJwt: j.widgetJwt } : null;
34109
- const oe = React.useCallback((ke) => {
34126
+ const oe = React.useCallback((Se) => {
34110
34127
  const Ce = te.current;
34111
34128
  Ce && fetch(buildApiUrl(`api/widget/session/${Ce.sessionId}/typing`), {
34112
34129
  method: "POST",
@@ -34114,13 +34131,13 @@ const ShowMePanel = ({
34114
34131
  Authorization: `Bearer ${Ce.widgetJwt}`,
34115
34132
  "Content-Type": "application/json"
34116
34133
  },
34117
- body: JSON.stringify({ is_typing: ke })
34134
+ body: JSON.stringify({ is_typing: Se })
34118
34135
  }).catch(() => {
34119
34136
  });
34120
34137
  }, []), ae = useCallback(
34121
- (ke) => {
34138
+ (Se) => {
34122
34139
  const Ce = useVoiceStore.getState();
34123
- ke && !Ce.isAgentMuted ? (ce.current = !1, Ce.toggleAgentAudio(), j.muteAgentAudio(!0)) : !ke && !ce.current && Ce.isAgentMuted && (Ce.toggleAgentAudio(), j.muteAgentAudio(!1)), ke && j.sendUserActivity && j.sendUserActivity(), oe(ke), ee.current && (clearInterval(ee.current), ee.current = null), ke && (ee.current = setInterval(() => {
34140
+ Se && !Ce.isAgentMuted ? (ce.current = !1, Ce.toggleAgentAudio(), j.muteAgentAudio(!0)) : !Se && !ce.current && Ce.isAgentMuted && (Ce.toggleAgentAudio(), j.muteAgentAudio(!1)), Se && j.sendUserActivity && j.sendUserActivity(), oe(Se), ee.current && (clearInterval(ee.current), ee.current = null), Se && (ee.current = setInterval(() => {
34124
34141
  j.sendUserActivity && j.sendUserActivity(), oe(!0);
34125
34142
  }, 2e3));
34126
34143
  },
@@ -34139,15 +34156,15 @@ const ShowMePanel = ({
34139
34156
  ), ye = useSyncExternalStore(
34140
34157
  useVoiceStore.subscribe,
34141
34158
  () => useVoiceStore.getState().isAgentMuted
34142
- ), Ee = useMemo(() => j.aiStatus === "calling_tool" ? "calling_tool" : j.aiStatus === "thinking" ? "thinking" : j.isAgentSpeaking ? "speaking" : j.isListening ? "listening" : "idle", [j.aiStatus, j.isAgentSpeaking, j.isListening]), Pe = useStore(useConversationStore, (ke) => ke.messages), [Ie, Re] = useState([]), Le = useRef(0), Me = useRef(0);
34159
+ ), Ee = useMemo(() => j.aiStatus === "calling_tool" ? "calling_tool" : j.aiStatus === "thinking" ? "thinking" : j.isAgentSpeaking ? "speaking" : j.isListening ? "listening" : "idle", [j.aiStatus, j.isAgentSpeaking, j.isListening]), Pe = useStore(useConversationStore, (Se) => Se.messages), [Ie, Re] = useState([]), Le = useRef(0), Me = useRef(0);
34143
34160
  if (useEffect(() => {
34144
34161
  if (!j.agent) {
34145
34162
  Re([]);
34146
34163
  return;
34147
34164
  }
34148
- const ke = Pe.length;
34149
- if (ke === Me.current && Ie.length > 0 || ke > 0 && ke - Me.current < 2 && Me.current > 0) return;
34150
- Me.current = ke;
34165
+ const Se = Pe.length;
34166
+ if (Se === Me.current && Ie.length > 0 || Se > 0 && Se - Me.current < 2 && Me.current > 0) return;
34167
+ Me.current = Se;
34151
34168
  const Ce = ++Le.current, xe = j.widgetJwt || j.bootstrapJwt;
34152
34169
  if (!xe) return;
34153
34170
  const we = B || getCurrentApiUrl(), Oe = {
@@ -34198,7 +34215,7 @@ const ShowMePanel = ({
34198
34215
  }
34199
34216
  );
34200
34217
  if (j.isExpanded) {
34201
- const ke = !!se;
34218
+ const Se = !!se;
34202
34219
  return /* @__PURE__ */ jsxs(
34203
34220
  "div",
34204
34221
  {
@@ -34213,7 +34230,7 @@ const ShowMePanel = ({
34213
34230
  },
34214
34231
  "data-wysdym-widget": !0,
34215
34232
  children: [
34216
- ke && /* @__PURE__ */ jsx(
34233
+ Se && /* @__PURE__ */ jsx(
34217
34234
  ShowMePanel,
34218
34235
  {
34219
34236
  content: se,
@@ -34229,17 +34246,17 @@ const ShowMePanel = ({
34229
34246
  {
34230
34247
  style: {
34231
34248
  height: "650px",
34232
- maxHeight: ke ? "55vh" : "85vh",
34249
+ maxHeight: Se ? "55vh" : "85vh",
34233
34250
  overflow: "hidden",
34234
34251
  display: "flex",
34235
34252
  flexDirection: "column",
34236
34253
  background: "#fff",
34237
- borderRadius: ke ? "0 0 16px 16px" : "16px",
34254
+ borderRadius: Se ? "0 0 16px 16px" : "16px",
34238
34255
  boxShadow: "0 25px 50px -12px rgba(0, 0, 0, 0.25)",
34239
34256
  border: "1px solid #e5e7eb"
34240
34257
  },
34241
34258
  children: [
34242
- !ke && /* @__PURE__ */ jsx(
34259
+ !Se && /* @__PURE__ */ jsx(
34243
34260
  WidgetHeader,
34244
34261
  {
34245
34262
  primaryColor: P,
@@ -34338,8 +34355,8 @@ const ShowMePanel = ({
34338
34355
  onSend: ve,
34339
34356
  isMicMuted: ge,
34340
34357
  isAgentMuted: ye,
34341
- onToggleMic: be,
34342
- onToggleAgentAudio: fe,
34358
+ onToggleMic: ke,
34359
+ onToggleAgentAudio: me,
34343
34360
  isConnected: j.isConnected,
34344
34361
  onEndCall: j.endCall,
34345
34362
  cta: de ? {