@tmsoft/webphone 3.0.25 → 5.0.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.
@@ -7124,11 +7124,11 @@ var concatArrays = (e, t) => {
7124
7124
  isNumber,
7125
7125
  isArbitraryVariable,
7126
7126
  isArbitraryValue
7127
- ], J = () => [
7127
+ ], Jp = () => [
7128
7128
  isNumber,
7129
7129
  isArbitraryVariable,
7130
7130
  isArbitraryValue
7131
- ], Y = () => [
7131
+ ], J = () => [
7132
7132
  isFraction,
7133
7133
  "full",
7134
7134
  ...O()
@@ -8020,9 +8020,9 @@ var concatArrays = (e, t) => {
8020
8020
  "scale-y": [{ "scale-y": q() }],
8021
8021
  "scale-z": [{ "scale-z": q() }],
8022
8022
  "scale-3d": ["scale-3d"],
8023
- skew: [{ skew: J() }],
8024
- "skew-x": [{ "skew-x": J() }],
8025
- "skew-y": [{ "skew-y": J() }],
8023
+ skew: [{ skew: Jp() }],
8024
+ "skew-x": [{ "skew-x": Jp() }],
8025
+ "skew-y": [{ "skew-y": Jp() }],
8026
8026
  transform: [{ transform: [
8027
8027
  isArbitraryVariable,
8028
8028
  isArbitraryValue,
@@ -8033,10 +8033,10 @@ var concatArrays = (e, t) => {
8033
8033
  ] }],
8034
8034
  "transform-origin": [{ origin: T() }],
8035
8035
  "transform-style": [{ transform: ["3d", "flat"] }],
8036
- translate: [{ translate: Y() }],
8037
- "translate-x": [{ "translate-x": Y() }],
8038
- "translate-y": [{ "translate-y": Y() }],
8039
- "translate-z": [{ "translate-z": Y() }],
8036
+ translate: [{ translate: J() }],
8037
+ "translate-x": [{ "translate-x": J() }],
8038
+ "translate-y": [{ "translate-y": J() }],
8039
+ "translate-z": [{ "translate-z": J() }],
8040
8040
  "translate-none": ["translate-none"],
8041
8041
  accent: [{ accent: B() }],
8042
8042
  appearance: [{ appearance: ["none", "auto"] }],
@@ -8613,14 +8613,14 @@ const createSipService = (e, t = {}) => {
8613
8613
  isHeld: !1,
8614
8614
  hasVideo: !1,
8615
8615
  hasEarlyMedia: !1
8616
- }), a.value.delete(i), e.activeChannelId.value === i && nm(), F();
8616
+ }), a.value.delete(i), e.activeChannelId.value === i && rm(), F();
8617
8617
  break;
8618
8618
  }
8619
8619
  case SessionState.Established:
8620
8620
  m.add(i), e.updateChannelState(i, {
8621
8621
  status: "connected",
8622
8622
  startTime: Date.now()
8623
- }), M(i, "connected"), e.activeChannelId.value === i && ($(t), H(t).then(() => N(t, i))), F();
8623
+ }), M(i, "connected"), e.activeChannelId.value === i && (Q(t), H(t).then(() => N(t, i))), F();
8624
8624
  break;
8625
8625
  }
8626
8626
  });
@@ -8645,7 +8645,7 @@ const createSipService = (e, t = {}) => {
8645
8645
  m.add(o), e.channels.value.find((e) => e.id === o)?.status !== "connected" && (e.updateChannelState(o, {
8646
8646
  status: "connected",
8647
8647
  startTime: Date.now()
8648
- }), M(o, "connected"), $(l), H(l).then(() => N(l, o)), F());
8648
+ }), M(o, "connected"), Q(l), H(l).then(() => N(l, o)), F());
8649
8649
  break;
8650
8650
  case SessionState.Terminated: {
8651
8651
  let n = e.channels.value.find((e) => e.id === o);
@@ -8673,7 +8673,7 @@ const createSipService = (e, t = {}) => {
8673
8673
  startTime: void 0,
8674
8674
  keypadValue: "",
8675
8675
  hasVideo: !1
8676
- }), a.value.delete(o), e.activeChannelId.value === o && nm(), F();
8676
+ }), a.value.delete(o), e.activeChannelId.value === o && rm(), F();
8677
8677
  break;
8678
8678
  }
8679
8679
  }
@@ -8682,22 +8682,22 @@ const createSipService = (e, t = {}) => {
8682
8682
  sessionDescriptionHandlerOptions: { constraints: U(i) },
8683
8683
  requestDelegate: {
8684
8684
  onProgress: (t) => {
8685
- (t.message.statusCode === 180 || t.message.statusCode === 183) && (t.message.body && (e.updateChannelState(o, { hasEarlyMedia: !0 }), $(l)), F());
8685
+ (t.message.statusCode === 180 || t.message.statusCode === 183) && (t.message.body && (e.updateChannelState(o, { hasEarlyMedia: !0 }), Q(l)), F());
8686
8686
  },
8687
8687
  onAccept: (t) => {
8688
8688
  e.channels.value.find((e) => e.id === o)?.status !== "connected" && (m.add(o), e.updateChannelState(o, {
8689
8689
  status: "connected",
8690
8690
  startTime: Date.now()
8691
- }), M(o, "connected"), $(l), H(l).then(() => N(l, o)), F());
8691
+ }), M(o, "connected"), Q(l), H(l).then(() => N(l, o)), F());
8692
8692
  }
8693
8693
  }
8694
8694
  };
8695
8695
  await l.invite(u);
8696
- }, J = async (t = !1) => {
8696
+ }, Jp = async (t = !1) => {
8697
8697
  let n = e.activeChannelId.value, i = a.value.get(n);
8698
8698
  if (i instanceof Invitation && i.state === SessionState.Initial) {
8699
8699
  for (let [t, n] of a.value.entries()) if (t !== e.activeChannelId.value && n.state === SessionState.Established && !e.channels.value.find((e) => e.id === t)?.isHeld) try {
8700
- await Z(n, !0), e.updateChannelState(t, { isHeld: !0 });
8700
+ await Y(n, !0), e.updateChannelState(t, { isHeld: !0 });
8701
8701
  } catch (e) {
8702
8702
  console.error(`[SipJs] Failed to hold channel ${t}:`, e);
8703
8703
  }
@@ -8716,7 +8716,7 @@ const createSipService = (e, t = {}) => {
8716
8716
  }), t;
8717
8717
  }
8718
8718
  }
8719
- }, Y = async () => {
8719
+ }, J = async () => {
8720
8720
  let t = a.value.get(e.activeChannelId.value);
8721
8721
  if (t) switch (t.state) {
8722
8722
  case SessionState.Initial:
@@ -8727,35 +8727,35 @@ const createSipService = (e, t = {}) => {
8727
8727
  await t.bye();
8728
8728
  break;
8729
8729
  }
8730
- }, Jp = () => {
8730
+ }, Yp = () => {
8731
8731
  let t = a.value.get(e.activeChannelId.value);
8732
8732
  if (!t) return;
8733
8733
  let n = !e.isMuted.value;
8734
8734
  e.setMuted(n), V(t, e.channels.value.find((t) => t.id === e.activeChannelId.value));
8735
- }, Z = async (e, t) => {
8735
+ }, Y = async (e, t) => {
8736
8736
  let n = { sessionDescriptionHandlerOptions: { hold: t } };
8737
8737
  await e.invite(n);
8738
- }, Yp = async () => {
8738
+ }, Xp = async () => {
8739
8739
  let t = a.value.get(e.activeChannelId.value);
8740
8740
  if (t?.state !== SessionState.Established) return;
8741
8741
  let n = !e.isHeld.value;
8742
8742
  try {
8743
- await Z(t, n), e.setHeld(n), V(t, e.channels.value.find((t) => t.id === e.activeChannelId.value));
8743
+ await Y(t, n), e.setHeld(n), V(t, e.channels.value.find((t) => t.id === e.activeChannelId.value));
8744
8744
  } catch {}
8745
- }, Xp = async (t) => {
8745
+ }, Zp = async (t) => {
8746
8746
  let n = e.activeChannelId.value;
8747
8747
  if (n === t) return;
8748
8748
  let i = a.value.get(n), o = a.value.get(t), s = e.channels.value.find((e) => e.id === n), l = e.channels.value.find((e) => e.id === t);
8749
8749
  if (i && i.state === SessionState.Established && !s?.isHeld) try {
8750
- await Z(i, !0), e.updateChannelState(n, { isHeld: !0 }), V(i, e.channels.value.find((e) => e.id === n));
8750
+ await Y(i, !0), e.updateChannelState(n, { isHeld: !0 }), V(i, e.channels.value.find((e) => e.id === n));
8751
8751
  } catch {}
8752
8752
  if (e.setActiveChannelId(t), F(), o && o.state === SessionState.Established) {
8753
8753
  if (l?.isHeld) try {
8754
- await Z(o, !1), e.updateChannelState(t, { isHeld: !1 });
8754
+ await Y(o, !1), e.updateChannelState(t, { isHeld: !1 });
8755
8755
  } catch {}
8756
- V(o, e.channels.value.find((e) => e.id === t)), $(o);
8757
- } else nm();
8758
- }, Zp = (t) => {
8756
+ V(o, e.channels.value.find((e) => e.id === t)), Q(o);
8757
+ } else rm();
8758
+ }, Qp = (t) => {
8759
8759
  if (!/^[0-9*#]$/.test(t)) return;
8760
8760
  let n = a.value.get(e.activeChannelId.value);
8761
8761
  if (n?.state !== SessionState.Established) return;
@@ -8770,10 +8770,10 @@ const createSipService = (e, t = {}) => {
8770
8770
  contentDisposition: "signal"
8771
8771
  } } };
8772
8772
  n.info(o);
8773
- }, Q = (t, n) => {
8773
+ }, Z = (t, n) => {
8774
8774
  let i = e.channels.value.find((e) => e.id === t);
8775
- !i || i.status !== "connected" || ($(n), V(n, i), H(n), o.play().catch(() => {}));
8776
- }, Qp = async (t) => {
8775
+ !i || i.status !== "connected" || (Q(n), V(n, i), H(n), o.play().catch(() => {}));
8776
+ }, $p = async (t) => {
8777
8777
  console.log("[SipJs] 🔄 transferCall iniciado"), console.log("[SipJs] Target:", t);
8778
8778
  let i = e.activeChannelId.value, o = a.value.get(i);
8779
8779
  if (!o) throw console.error("[SipJs] ❌ No hay sesión activa en el canal", i), Error("No active session to transfer");
@@ -8793,7 +8793,7 @@ const createSipService = (e, t = {}) => {
8793
8793
  },
8794
8794
  onReject: (e) => {
8795
8795
  let t = e.message.statusCode;
8796
- console.error("[SipJs] ❌ Transfer REFER rechazado:", t), console.error("[SipJs] Response completo:", e.message), Q(i, o);
8796
+ console.error("[SipJs] ❌ Transfer REFER rechazado:", t), console.error("[SipJs] Response completo:", e.message), Z(i, o);
8797
8797
  }
8798
8798
  },
8799
8799
  onNotify: (e) => {
@@ -8816,7 +8816,7 @@ const createSipService = (e, t = {}) => {
8816
8816
  487: "Transferencia cancelada",
8817
8817
  503: "Servicio no disponible - el destino puede estar fuera de línea"
8818
8818
  }[t] || `Error en transferencia (código ${t})`;
8819
- console.warn("[SipJs] 💬", e), Q(i, o);
8819
+ console.warn("[SipJs] 💬", e), Z(i, o);
8820
8820
  } else t >= 100 && t < 200 && console.log("[SipJs] 📞 Transferencia en progreso:", t, n);
8821
8821
  } else console.warn("[SipJs] ⚠️ No se pudo extraer el código de estado del NOTIFY body");
8822
8822
  } else console.warn("[SipJs] ⚠️ NOTIFY sin body");
@@ -8825,14 +8825,14 @@ const createSipService = (e, t = {}) => {
8825
8825
  } catch (e) {
8826
8826
  throw console.error("[SipJs] ❌ Error en transferCall:", e), console.error("[SipJs] Error type:", e?.constructor?.name), console.error("[SipJs] Error message:", e instanceof Error ? e.message : String(e)), console.error("[SipJs] Error stack:", e instanceof Error ? e.stack : "N/A"), e;
8827
8827
  }
8828
- }, $p = async (t) => {
8828
+ }, em = async (t) => {
8829
8829
  console.log("[SipJs] 🔄 startAttendedTransfer iniciado"), console.log("[SipJs] Target:", t);
8830
8830
  let n = e.activeChannelId.value, i = a.value.get(n);
8831
8831
  if (console.log("[SipJs] Canal original:", n), console.log("[SipJs] Sesión original:", i?.state), !i || i.state !== SessionState.Established) throw console.error("[SipJs] ❌ No hay llamada establecida para transferir"), Error("No established call to transfer");
8832
8832
  let o = e.channels.value.find((e) => e.status === "idle");
8833
8833
  if (console.log("[SipJs] Canal de consulta encontrado:", o?.id), !o) throw console.error("[SipJs] ❌ No hay canales disponibles para llamada de consulta"), Error("No available channel for consultation call");
8834
8834
  try {
8835
- console.log("[SipJs] 🔇 Poniendo llamada original en hold..."), await Z(i, !0), e.updateChannelState(n, { isHeld: !0 }), console.log("[SipJs] ✅ Llamada original en hold");
8835
+ console.log("[SipJs] 🔇 Poniendo llamada original en hold..."), await Y(i, !0), e.updateChannelState(n, { isHeld: !0 }), console.log("[SipJs] ✅ Llamada original en hold");
8836
8836
  } catch (e) {
8837
8837
  throw console.error("[SipJs] ❌ Failed to hold original call:", e), Error("Failed to put call on hold");
8838
8838
  }
@@ -8844,9 +8844,9 @@ const createSipService = (e, t = {}) => {
8844
8844
  targetNumber: t
8845
8845
  }), console.log("[SipJs] 📋 Transferencia en progreso registrada");
8846
8846
  } catch (t) {
8847
- throw console.error("[SipJs] ❌ Failed to start consultation call:", t), console.log("[SipJs] 🔄 Volviendo al canal original y quitando hold..."), e.setActiveChannelId(n), await Z(i, !1).catch(() => {}), e.updateChannelState(n, { isHeld: !1 }), Error("Failed to initiate consultation call");
8847
+ throw console.error("[SipJs] ❌ Failed to start consultation call:", t), console.log("[SipJs] 🔄 Volviendo al canal original y quitando hold..."), e.setActiveChannelId(n), await Y(i, !1).catch(() => {}), e.updateChannelState(n, { isHeld: !1 }), Error("Failed to initiate consultation call");
8848
8848
  }
8849
- }, em = async () => {
8849
+ }, tm = async () => {
8850
8850
  console.log("[SipJs] 🔄 completeAttendedTransfer iniciado");
8851
8851
  let t = e.transferInProgress.value;
8852
8852
  if (!t) throw console.error("[SipJs] ❌ No hay transferencia en progreso"), Error("No transfer in progress");
@@ -8889,7 +8889,7 @@ const createSipService = (e, t = {}) => {
8889
8889
  } catch (e) {
8890
8890
  throw console.error("[SipJs] Attended transfer failed:", e), e;
8891
8891
  }
8892
- }, tm = async () => {
8892
+ }, nm = async () => {
8893
8893
  let t = e.transferInProgress.value;
8894
8894
  if (!t) throw Error("No transfer in progress");
8895
8895
  console.log("[SipJs] Canceling attended transfer...");
@@ -8900,12 +8900,12 @@ const createSipService = (e, t = {}) => {
8900
8900
  console.warn("[SipJs] Error ending consultation:", e);
8901
8901
  }
8902
8902
  if (n) try {
8903
- e.setActiveChannelId(t.originalChannelId), await Z(n, !1), e.updateChannelState(t.originalChannelId, { isHeld: !1 }), console.log("[SipJs] Returned to original call");
8903
+ e.setActiveChannelId(t.originalChannelId), await Y(n, !1), e.updateChannelState(t.originalChannelId, { isHeld: !1 }), console.log("[SipJs] Returned to original call");
8904
8904
  } catch (e) {
8905
8905
  console.warn("[SipJs] Error resuming original call:", e);
8906
8906
  }
8907
8907
  e.setTransferInProgress(null);
8908
- }, $ = (e) => {
8908
+ }, Q = (e) => {
8909
8909
  let t = e.sessionDescriptionHandler;
8910
8910
  if (!t) {
8911
8911
  console.error("[SipJs] setupRemoteMedia: no sessionDescriptionHandler");
@@ -8936,23 +8936,23 @@ const createSipService = (e, t = {}) => {
8936
8936
  }, { signal: _.signal });
8937
8937
  let [s] = n.getTracks();
8938
8938
  s && (o.srcObject = n, a(s), i && N(e, i.id));
8939
- }, nm = () => {
8939
+ }, rm = () => {
8940
8940
  v?.abort(), v = null, _?.abort(), _ = null, o.pause(), o.srcObject = null, u.value = null, d.value = null;
8941
8941
  };
8942
8942
  return {
8943
8943
  initUserAgent: Wp,
8944
8944
  stop: Kp,
8945
8945
  makeCall: q,
8946
- answerCall: J,
8947
- hangupCall: Y,
8948
- toggleMute: Jp,
8949
- toggleHold: Yp,
8950
- sendDTMF: Zp,
8951
- transferCall: Qp,
8952
- startAttendedTransfer: $p,
8953
- completeAttendedTransfer: em,
8954
- cancelAttendedTransfer: tm,
8955
- switchChannel: Xp,
8946
+ answerCall: Jp,
8947
+ hangupCall: J,
8948
+ toggleMute: Yp,
8949
+ toggleHold: Xp,
8950
+ sendDTMF: Qp,
8951
+ transferCall: $p,
8952
+ startAttendedTransfer: em,
8953
+ completeAttendedTransfer: tm,
8954
+ cancelAttendedTransfer: nm,
8955
+ switchChannel: Zp,
8956
8956
  extension: S,
8957
8957
  setVolume: I,
8958
8958
  setNotificationVolume: O,
@@ -16371,12 +16371,12 @@ var icon_phone_default = { render }, Tooltip_default = /* @__PURE__ */ defineCom
16371
16371
  if (!e) return "";
16372
16372
  let t = e.trim(), n = t.startsWith("+"), i = t.replace(/[^\d]/g, "");
16373
16373
  return n ? `+${i}` : i;
16374
- }, H = computed(() => {
16374
+ }, H = (e) => /\d/.test(e) && /^[+\d\s().*#-]+$/.test(e.trim()), U = computed(() => {
16375
16375
  let e = p.value, t = e?.remoteNumber || e?.keypadValue, n = e?.remoteDisplayName;
16376
16376
  if (!t) return "Unknown";
16377
16377
  let i = B(t), a = o.contacts?.find((e) => B(e.number) === i);
16378
- return a ? a.name : n && n !== t ? n : o.maskNumber ? maskPhoneNumber(t) : t;
16379
- }), U = computed(() => {
16378
+ return a ? a.name : n && n !== t ? o.maskNumber && H(n) ? B(n) === i ? maskPhoneNumber(t) : maskPhoneNumber(n) : n : o.maskNumber ? maskPhoneNumber(t) : t;
16379
+ }), W = computed(() => {
16380
16380
  let e = p.value, t = e?.remoteNumber || e?.keypadValue || "";
16381
16381
  return o.maskNumber ? maskPhoneNumber(t) : t;
16382
16382
  });
@@ -16473,7 +16473,7 @@ var icon_phone_default = { render }, Tooltip_default = /* @__PURE__ */ defineCom
16473
16473
  })) : (openBlock(), createBlock(unref(CircleUser), {
16474
16474
  key: 4,
16475
16475
  class: "wp:w-3 wp:h-3"
16476
- }))], 2), createElementVNode("div", _hoisted_9$4, [createElementVNode("span", _hoisted_10$3, toDisplayString(e.name), 1), createElementVNode("span", _hoisted_11$3, toDisplayString(e.number), 1)])], 40, _hoisted_8$4))), 128))], 512), [[vShow, v.value && E.value && (O.value.length > 0 || D.value)]])], 512)])) : (p.value?.status || "idle") === "connected" ? (openBlock(), createElementBlock("div", _hoisted_12$3, [createElementVNode("div", _hoisted_13$1, [createElementVNode("div", _hoisted_14$1, " En llamada con " + toDisplayString(H.value), 1), H.value === U.value ? createCommentVNode("", !0) : (openBlock(), createElementBlock("div", _hoisted_15$1, toDisplayString(U.value), 1))])])) : (p.value?.status || "idle") === "idle" ? createCommentVNode("", !0) : (openBlock(), createElementBlock("div", _hoisted_16$1, [createElementVNode("div", _hoisted_17$1, [createElementVNode("div", _hoisted_18, [createElementVNode("div", _hoisted_19, toDisplayString(H.value), 1), H.value === U.value ? createCommentVNode("", !0) : (openBlock(), createElementBlock("div", _hoisted_20, toDisplayString(U.value), 1))]), createVNode(unref(TooltipProvider_default), null, {
16476
+ }))], 2), createElementVNode("div", _hoisted_9$4, [createElementVNode("span", _hoisted_10$3, toDisplayString(e.name), 1), createElementVNode("span", _hoisted_11$3, toDisplayString(e.number), 1)])], 40, _hoisted_8$4))), 128))], 512), [[vShow, v.value && E.value && (O.value.length > 0 || D.value)]])], 512)])) : (p.value?.status || "idle") === "connected" ? (openBlock(), createElementBlock("div", _hoisted_12$3, [createElementVNode("div", _hoisted_13$1, [createElementVNode("div", _hoisted_14$1, " En llamada con " + toDisplayString(U.value), 1), U.value === W.value ? createCommentVNode("", !0) : (openBlock(), createElementBlock("div", _hoisted_15$1, toDisplayString(W.value), 1))])])) : (p.value?.status || "idle") === "idle" ? createCommentVNode("", !0) : (openBlock(), createElementBlock("div", _hoisted_16$1, [createElementVNode("div", _hoisted_17$1, [createElementVNode("div", _hoisted_18, [createElementVNode("div", _hoisted_19, toDisplayString(U.value), 1), U.value === W.value ? createCommentVNode("", !0) : (openBlock(), createElementBlock("div", _hoisted_20, toDisplayString(W.value), 1))]), createVNode(unref(TooltipProvider_default), null, {
16477
16477
  default: withCtx(() => [createVNode(unref(Tooltip_default), null, {
16478
16478
  default: withCtx(() => [createVNode(unref(TooltipTrigger_default), { "as-child": "" }), createVNode(unref(TooltipContent_default), { class: "wp:flex wp:items-center wp:gap-2" }, {
16479
16479
  default: withCtx(() => [createElementVNode("span", null, toDisplayString(unref(t).isKeypadVisible ? "Ocultar" : "Mostrar") + " teclado", 1), createVNode(unref(Kbd_default), null, {
@@ -17656,59 +17656,59 @@ var icon_phone_default = { render }, Tooltip_default = /* @__PURE__ */ defineCom
17656
17656
  }), qp = computed(() => {
17657
17657
  let e = Gp.value?.remoteNumber || x.remoteNumber;
17658
17658
  return o.maskNumber ? maskPhoneNumber(e) : e;
17659
- }), q = computed(() => (W.value, !!Gp.value?.hasVideo || G(E.value) || G(D.value))), { isOnline: J } = useNetwork(), Y = computed(() => !J.value), Z = ref(null), Q = ref(!1), em = computed(() => o.enablePictureInPicture), tm = () => {
17660
- em.value && Z.value?.toggle();
17661
- }, $ = async (e, t) => {
17659
+ }), q = computed(() => (W.value, !!Gp.value?.hasVideo || G(E.value) || G(D.value))), { isOnline: Jp } = useNetwork(), J = computed(() => !Jp.value), Y = ref(null), Z = ref(!1), tm = computed(() => o.enablePictureInPicture), nm = () => {
17660
+ tm.value && Y.value?.toggle();
17661
+ }, Q = async (e, t) => {
17662
17662
  try {
17663
17663
  t === "blind" ? await S.transferCall(e) : await S.startAttendedTransfer(e);
17664
17664
  } catch (e) {
17665
17665
  console.error("[WebPhone] Transfer error:", e), alert(e instanceof Error ? e.message : "Transfer failed. Please try again.");
17666
17666
  }
17667
- }, nm = async () => {
17667
+ }, rm = async () => {
17668
17668
  try {
17669
17669
  await S.completeAttendedTransfer();
17670
17670
  } catch (e) {
17671
17671
  console.error("[WebPhone] Complete transfer error:", e), alert(e instanceof Error ? e.message : "Failed to complete transfer.");
17672
17672
  }
17673
- }, rm = async () => {
17673
+ }, im = async () => {
17674
17674
  try {
17675
17675
  await S.cancelAttendedTransfer();
17676
17676
  } catch (e) {
17677
17677
  console.error("[WebPhone] Cancel transfer error:", e), alert(e instanceof Error ? e.message : "Failed to cancel transfer.");
17678
17678
  }
17679
- }, im = (e) => {
17680
- x.keypadValue = e, S.makeCall(e);
17681
17679
  }, am = (e) => {
17680
+ x.keypadValue = e, S.makeCall(e);
17681
+ }, om = (e) => {
17682
17682
  if (o.onAnswer) {
17683
17683
  o.onAnswer(e);
17684
17684
  return;
17685
17685
  }
17686
17686
  S.answerCall(e);
17687
- }, om = () => {
17687
+ }, sm = () => {
17688
17688
  if (o.onHangup) {
17689
17689
  o.onHangup();
17690
17690
  return;
17691
17691
  }
17692
17692
  S.hangupCall();
17693
- }, sm = () => {
17693
+ }, cm = () => {
17694
17694
  if (o.onReject) {
17695
17695
  o.onReject();
17696
17696
  return;
17697
17697
  }
17698
17698
  S.hangupCall();
17699
- }, cm = () => {
17700
- j.value = !0, Z.value?.close(), window.focus();
17701
17699
  }, lm = () => {
17702
- if (!em.value) return !1;
17703
- let e = x.callStatus !== "idle", t = document.hidden || !document.hasFocus();
17704
- return e && t && !Q.value;
17700
+ j.value = !0, Y.value?.close(), window.focus();
17705
17701
  }, um = () => {
17702
+ if (!tm.value) return !1;
17703
+ let e = x.callStatus !== "idle", t = document.hidden || !document.hasFocus();
17704
+ return e && t && !Z.value;
17705
+ }, $ = () => {
17706
17706
  window.setTimeout(() => {
17707
- lm() && Z.value?.open();
17707
+ um() && Y.value?.open();
17708
17708
  }, 150);
17709
17709
  };
17710
17710
  watchEffect(() => {
17711
- F.value && (Q.value || !E.value ? F.value.srcObject = null : F.value.srcObject = E.value), L.value && (Q.value || !D.value ? L.value.srcObject = null : L.value.srcObject = D.value);
17711
+ F.value && (Z.value || !E.value ? F.value.srcObject = null : F.value.srcObject = E.value), L.value && (Z.value || !D.value ? L.value.srcObject = null : L.value.srcObject = D.value);
17712
17712
  });
17713
17713
  let dm = (e) => {
17714
17714
  if (!e || typeof e.addEventListener != "function" || typeof e.removeEventListener != "function") return () => {};
@@ -17775,7 +17775,7 @@ var icon_phone_default = { render }, Tooltip_default = /* @__PURE__ */ defineCom
17775
17775
  ], vm = ref(!1), ym = computed({
17776
17776
  get: () => x.activeChannelId.toString(),
17777
17777
  set: async (e) => {
17778
- if (!Y.value && e && !vm.value) {
17778
+ if (!J.value && e && !vm.value) {
17779
17779
  vm.value = !0;
17780
17780
  try {
17781
17781
  await T(parseInt(e));
@@ -17791,9 +17791,9 @@ var icon_phone_default = { render }, Tooltip_default = /* @__PURE__ */ defineCom
17791
17791
  let t = x.channels.find((t) => t.id === e);
17792
17792
  return t ? t.isHeld || t.status === "held" : !1;
17793
17793
  }, Sm = (e) => {
17794
- Y.value || (ym.value = e.toString());
17794
+ J.value || (ym.value = e.toString());
17795
17795
  }, Cm = (e) => {
17796
- if (!Y.value && ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === "h" && (e.preventDefault(), k.value = !0), (e.metaKey || e.ctrlKey) && e.key === "," && (e.preventDefault(), O.value = !0), (e.metaKey || e.ctrlKey) && e.key.toLowerCase() === "k" && (e.preventDefault(), x.toggleKeypad()), (e.metaKey || e.ctrlKey) && [
17796
+ if (!J.value && ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === "h" && (e.preventDefault(), k.value = !0), (e.metaKey || e.ctrlKey) && e.key === "," && (e.preventDefault(), O.value = !0), (e.metaKey || e.ctrlKey) && e.key.toLowerCase() === "k" && (e.preventDefault(), x.toggleKeypad()), (e.metaKey || e.ctrlKey) && [
17797
17797
  "1",
17798
17798
  "2",
17799
17799
  "3"
@@ -17806,14 +17806,14 @@ var icon_phone_default = { render }, Tooltip_default = /* @__PURE__ */ defineCom
17806
17806
  }
17807
17807
  };
17808
17808
  watch(() => x.callStatus, () => {
17809
- lm() && um();
17809
+ um() && $();
17810
17810
  }), watch(() => x.isConnected, (e) => {
17811
17811
  v.value && a.set(v.value, e);
17812
- }, { immediate: !0 }), watch(em, (e) => {
17813
- !e && Q.value && Z.value?.close();
17812
+ }, { immediate: !0 }), watch(tm, (e) => {
17813
+ !e && Z.value && Y.value?.close();
17814
17814
  });
17815
17815
  let wm = ref(!1), Tm = async () => {
17816
- wm.value || Y.value || !o.host || !o.extension || !o.password || (await w({
17816
+ wm.value || J.value || !o.host || !o.extension || !o.password || (await w({
17817
17817
  uri: `sip:${o.extension}@${o.host}`,
17818
17818
  transportOptions: { server: _.value },
17819
17819
  authorizationUsername: o.extension,
@@ -17828,22 +17828,22 @@ var icon_phone_default = { render }, Tooltip_default = /* @__PURE__ */ defineCom
17828
17828
  await S.stop(), wm.value = !1;
17829
17829
  }
17830
17830
  }), onMounted(async () => {
17831
- window.addEventListener("keydown", Cm), document.addEventListener("visibilitychange", um), window.addEventListener("blur", um), window.addEventListener("pagehide", um), !(o.mode === "webcall" && (!o.to || !o.logo)) && await Tm();
17832
- }), watch(() => J.value, async (e) => {
17831
+ window.addEventListener("keydown", Cm), document.addEventListener("visibilitychange", $), window.addEventListener("blur", $), window.addEventListener("pagehide", $), !(o.mode === "webcall" && (!o.to || !o.logo)) && await Tm();
17832
+ }), watch(() => Jp.value, async (e) => {
17833
17833
  e && await Tm();
17834
17834
  }), onUnmounted(() => {
17835
- S.stop(), window.removeEventListener("keydown", Cm), document.removeEventListener("visibilitychange", um), window.removeEventListener("blur", um), window.removeEventListener("pagehide", um);
17835
+ S.stop(), window.removeEventListener("keydown", Cm), document.removeEventListener("visibilitychange", $), window.removeEventListener("blur", $), window.removeEventListener("pagehide", $);
17836
17836
  }), (e, t) => (openBlock(), createElementBlock(Fragment, null, [
17837
17837
  createElementVNode("div", {
17838
17838
  ref_key: "phoneRef",
17839
17839
  ref: N,
17840
17840
  style: normalizeStyle(unref(gm)),
17841
- class: normalizeClass(["webphone webphone-container wp:bg-white wp:dark:bg-neutral-800 wp:rounded-lg wp:shadow-sm wp:inset-shadow-2xs wp:w-[min(92vw,330px)] wp:fixed wp:z-50 wp:select-none wp:[&_button]:cursor-pointer wp:**:[[role=button]]:cursor-pointer", Y.value ? "wp:opacity-70" : ""]),
17841
+ class: normalizeClass(["webphone webphone-container wp:bg-white wp:dark:bg-neutral-800 wp:rounded-lg wp:shadow-sm wp:inset-shadow-2xs wp:w-[min(92vw,330px)] wp:fixed wp:z-50 wp:select-none wp:[&_button]:cursor-pointer wp:**:[[role=button]]:cursor-pointer", J.value ? "wp:opacity-70" : ""]),
17842
17842
  "data-mode": o.mode,
17843
17843
  "data-call-status": x.callStatus,
17844
- "data-network-status": Y.value ? "offline" : "online"
17844
+ "data-network-status": J.value ? "offline" : "online"
17845
17845
  }, [
17846
- q.value && !Q.value ? (openBlock(), createElementBlock("div", _hoisted_2, [createElementVNode("video", {
17846
+ q.value && !Z.value ? (openBlock(), createElementBlock("div", _hoisted_2, [createElementVNode("video", {
17847
17847
  ref_key: "remoteVideoRef",
17848
17848
  ref: F,
17849
17849
  autoplay: "",
@@ -17864,7 +17864,7 @@ var icon_phone_default = { render }, Tooltip_default = /* @__PURE__ */ defineCom
17864
17864
  type: "button",
17865
17865
  role: "radio",
17866
17866
  "aria-checked": ym.value === e.value.toString(),
17867
- disabled: Y.value,
17867
+ disabled: J.value,
17868
17868
  title: `${e.label} (${unref(H)}${e.value + 1})`,
17869
17869
  class: normalizeClass(["webphone__channel-button wp:flex wp:items-center wp:gap-1 wp:px-2 wp:py-2 wp:rounded-lg wp:transition-colors wp:duration-200 wp:outline-none wp:focus-visible:ring-2 wp:focus-visible:ring-[var(--p-primary-color)] wp:focus-visible:ring-offset-2 wp:focus-visible:ring-offset-white wp:dark:focus-visible:ring-offset-neutral-900", xm(e.value) ? "wp:bg-status-hold/12 hover:wp:bg-status-hold/18" : bm(e.value) ? "wp:bg-[var(--color-red)]/12 hover:wp:bg-[var(--color-red)]/18" : ym.value === e.value.toString() ? "wp:bg-[var(--p-primary-color)]/12" : "wp:hover:bg-neutral-100 wp:dark:hover:bg-neutral-800/80"]),
17870
17870
  "data-channel-id": e.value,
@@ -17881,9 +17881,9 @@ var icon_phone_default = { render }, Tooltip_default = /* @__PURE__ */ defineCom
17881
17881
  default: withCtx(() => [createVNode(unref(Button_default), {
17882
17882
  variant: "ghost",
17883
17883
  size: "icon",
17884
- class: normalizeClass(["wp:h-8 wp:w-8 wp:rounded-full", Q.value ? "wp:text-primary" : ""]),
17884
+ class: normalizeClass(["wp:h-8 wp:w-8 wp:rounded-full", Z.value ? "wp:text-primary" : ""]),
17885
17885
  title: "Picture-in-Picture",
17886
- onClick: tm
17886
+ onClick: nm
17887
17887
  }, {
17888
17888
  default: withCtx(() => [createVNode(unref(PictureInPicture2), { class: "wp:w-4 wp:h-4 wp:text-[var(--color-settings)]" })]),
17889
17889
  _: 1
@@ -17927,7 +17927,7 @@ var icon_phone_default = { render }, Tooltip_default = /* @__PURE__ */ defineCom
17927
17927
  "channel-id": e.id,
17928
17928
  "allow-input": !U.value,
17929
17929
  "is-web-call": U.value,
17930
- "is-online": unref(J),
17930
+ "is-online": unref(Jp),
17931
17931
  contacts: o.contacts,
17932
17932
  user: o.extension,
17933
17933
  "mask-number": o.maskNumber
@@ -17946,15 +17946,15 @@ var icon_phone_default = { render }, Tooltip_default = /* @__PURE__ */ defineCom
17946
17946
  }, [createVNode(KeyPad_default)], 10, _hoisted_10),
17947
17947
  createVNode(CallActions_default, {
17948
17948
  class: "webphone__actions",
17949
- style: normalizeStyle(Y.value ? "pointer-events: none;" : void 0),
17949
+ style: normalizeStyle(J.value ? "pointer-events: none;" : void 0),
17950
17950
  destination: U.value ? o.to : void 0,
17951
17951
  "is-video": o.mode === "video",
17952
17952
  "on-answer": o.onAnswer,
17953
17953
  "on-hangup": o.onHangup,
17954
17954
  "on-reject": o.onReject,
17955
17955
  onTransfer: t[1] ||= (e) => j.value = !0,
17956
- onCompleteTransfer: nm,
17957
- onCancelTransfer: rm
17956
+ onCompleteTransfer: rm,
17957
+ onCancelTransfer: im
17958
17958
  }, null, 8, [
17959
17959
  "style",
17960
17960
  "destination",
@@ -17964,7 +17964,7 @@ var icon_phone_default = { render }, Tooltip_default = /* @__PURE__ */ defineCom
17964
17964
  "on-reject"
17965
17965
  ])
17966
17966
  ]),
17967
- Y.value ? (openBlock(), createElementBlock("div", _hoisted_11, [...t[10] ||= [createElementVNode("span", { class: "wp:text-sm wp:font-semibold wp:text-status-disconnected" }, "Sin internet", -1)]])) : createCommentVNode("", !0),
17967
+ J.value ? (openBlock(), createElementBlock("div", _hoisted_11, [...t[10] ||= [createElementVNode("span", { class: "wp:text-sm wp:font-semibold wp:text-status-disconnected" }, "Sin internet", -1)]])) : createCommentVNode("", !0),
17968
17968
  U.value ? (openBlock(), createElementBlock("div", _hoisted_12, [...t[11] ||= [createElementVNode("div", { class: "webphone__footer-label wp:text-[10px] wp:text-primary" }, "Powered By", -1), createElementVNode("div", { class: "webphone__footer-content wp:flex wp:items-center wp:gap-2" }, [createElementVNode("a", {
17969
17969
  href: "https://www.nebula123.com",
17970
17970
  target: "_blank",
@@ -17979,20 +17979,20 @@ var icon_phone_default = { render }, Tooltip_default = /* @__PURE__ */ defineCom
17979
17979
  visible: k.value,
17980
17980
  "onUpdate:visible": t[3] ||= (e) => k.value = e,
17981
17981
  contacts: o.contacts,
17982
- onCall: im
17982
+ onCall: am
17983
17983
  }, null, 8, ["visible", "contacts"]),
17984
17984
  createVNode(TransferDialog_default, {
17985
17985
  visible: j.value,
17986
17986
  "onUpdate:visible": t[4] ||= (e) => j.value = e,
17987
17987
  contacts: o.contacts,
17988
- onTransfer: $
17988
+ onTransfer: Q
17989
17989
  }, null, 8, ["visible", "contacts"]),
17990
17990
  createVNode(DocumentPip_default, {
17991
17991
  ref_key: "documentPipRef",
17992
- ref: Z,
17993
- active: Q.value,
17994
- "onUpdate:active": t[5] ||= (e) => Q.value = e,
17995
- "auto-open-on-blur": em.value,
17992
+ ref: Y,
17993
+ active: Z.value,
17994
+ "onUpdate:active": t[5] ||= (e) => Z.value = e,
17995
+ "auto-open-on-blur": tm.value,
17996
17996
  "is-connected": x.isConnected,
17997
17997
  "remote-number": qp.value,
17998
17998
  "caller-name": Kp.value,
@@ -18004,11 +18004,11 @@ var icon_phone_default = { render }, Tooltip_default = /* @__PURE__ */ defineCom
18004
18004
  "call-status": x.callStatus,
18005
18005
  "is-muted": x.isMuted,
18006
18006
  "is-held": x.isHeld,
18007
- onTransfer: cm,
18008
- onTransferRequest: $,
18009
- onHangup: om,
18010
- onReject: sm,
18011
- onAnswer: am,
18007
+ onTransfer: lm,
18008
+ onTransferRequest: Q,
18009
+ onHangup: sm,
18010
+ onReject: cm,
18011
+ onAnswer: om,
18012
18012
  onToggleMute: t[6] ||= (e) => unref(S).toggleMute(),
18013
18013
  onToggleHold: t[7] ||= (e) => unref(S).toggleHold()
18014
18014
  }, null, 8, [