@webitel/ui-sdk 25.12.48 → 25.12.50

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.
Files changed (36) hide show
  1. package/dist/{install-B4EtpXXD.js → install-DM_Q0dji.js} +13070 -12889
  2. package/dist/{plyr-DAfyG_iO.js → plyr-OnhA4rf4.js} +1 -1
  3. package/dist/ui-sdk.css +1 -1
  4. package/dist/ui-sdk.js +1 -1
  5. package/dist/ui-sdk.umd.cjs +723 -707
  6. package/dist/{vidstack-Bq6c3Bam-DEJ-5jcv.js → vidstack-Bq6c3Bam-DbaqiW-G.js} +2 -2
  7. package/dist/{vidstack-D2pY00kU-DWEQ9_N8.js → vidstack-D2pY00kU-Ilyikvhr.js} +2 -2
  8. package/dist/{vidstack-DDXt6fpN-DHo4CIYR.js → vidstack-DDXt6fpN-CHfTn9BX.js} +1 -1
  9. package/dist/{vidstack-D_-9AA6_-ad2HIxVI.js → vidstack-D_-9AA6_-3vwSP2uy.js} +1 -1
  10. package/dist/{vidstack-DqAw8m9J-ReUPOFHP.js → vidstack-DqAw8m9J-DhoY5QSY.js} +1 -1
  11. package/dist/{vidstack-audio-CAikPdW6.js → vidstack-audio-DWe9RnDc.js} +2 -2
  12. package/dist/{vidstack-dash-CebXK5VO.js → vidstack-dash-B0eNUc8l.js} +3 -3
  13. package/dist/{vidstack-google-cast-Bb5-TcI4.js → vidstack-google-cast-ChRMiIAe.js} +3 -3
  14. package/dist/{vidstack-hls-CFWw21PX.js → vidstack-hls-DAdAA7tQ.js} +3 -3
  15. package/dist/{vidstack-video-BTCFVA94.js → vidstack-video-BGBwzabO.js} +2 -2
  16. package/dist/{vidstack-vimeo-D1nXJdHs.js → vidstack-vimeo-CGKxoSCH.js} +3 -3
  17. package/dist/{vidstack-youtube-MtnoA4Ft.js → vidstack-youtube-B9wXZ50D.js} +2 -2
  18. package/dist/{vuex.esm-bundler-yJVenwQK.js → vuex.esm-bundler-C6nPH718.js} +1 -1
  19. package/package.json +2 -2
  20. package/src/components/index.js +3 -0
  21. package/src/components/wt-badge-new/wt-badge.vue +49 -0
  22. package/src/components/wt-button/wt-button.vue +48 -4
  23. package/src/components/wt-table-actions/wt-table-actions.vue +36 -41
  24. package/src/components/wt-vidstack-player/components/panels/video-call-controls-panel/video-call-controls-panel.vue +11 -0
  25. package/src/components/wt-vidstack-player/wt-vidstack-player.vue +1 -1
  26. package/src/modules/CallSession/modules/ScreenSharing/screen-sharing.vue +2 -4
  27. package/src/modules/CallSession/modules/VideoCall/video-call.vue +8 -8
  28. package/src/plugins/primevue/primevue.plugin.js +2 -0
  29. package/src/plugins/primevue/theme/components/badge/badge.js +44 -0
  30. package/src/plugins/primevue/theme/components/components.js +2 -0
  31. package/types/components/index.d.ts +3 -1
  32. package/types/components/wt-badge-new/wt-badge.vue.d.ts +22 -0
  33. package/types/components/wt-button/wt-button.vue.d.ts +7 -2
  34. package/types/components/wt-table-actions/wt-table-actions.vue.d.ts +22 -27
  35. package/types/plugins/primevue/theme/components/badge/badge.d.ts +121 -0
  36. package/types/plugins/primevue/theme/components/components.d.ts +2 -0
@@ -5,8 +5,8 @@ var ot = (n) => {
5
5
  var Xt = (n, t, s) => t in n ? Qt(n, t, { enumerable: !0, configurable: !0, writable: !0, value: s }) : n[t] = s;
6
6
  var N = (n, t, s) => Xt(n, typeof t != "symbol" ? t + "" : t, s), X = (n, t, s) => t.has(n) || ot("Cannot " + s);
7
7
  var i = (n, t, s) => (X(n, t, "read from private field"), s ? s.call(n) : t.get(n)), d = (n, t, s) => t.has(n) ? ot("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(n) : t.set(n, s), c = (n, t, s, r) => (X(n, t, "write to private field"), r ? r.call(n, s) : t.set(n, s), s), a = (n, t, s) => (X(n, t, "access private method"), s);
8
- import { A as Yt, z as ut, B as j, C as Zt, b as ti, E as nt, e as lt, F as _, G as ii, H as ei, f as si, J as ai, l as rt, K as dt, D as ni, L as Y, M as Z } from "./install-B4EtpXXD.js";
9
- import { R as ri } from "./vidstack-DqAw8m9J-ReUPOFHP.js";
8
+ import { A as Yt, z as ut, B as j, C as Zt, b as ti, E as nt, e as lt, F as _, G as ii, H as ei, f as si, J as ai, l as rt, K as dt, D as ni, L as Y, M as Z } from "./install-DM_Q0dji.js";
9
+ import { R as ri } from "./vidstack-DqAw8m9J-DhoY5QSY.js";
10
10
  let q = null, K = [], z = [];
11
11
  function ht() {
12
12
  return q ?? (q = new AudioContext());
@@ -5,7 +5,7 @@ var w = (t) => {
5
5
  var P = (t, e, a) => e in t ? _(t, e, { enumerable: !0, configurable: !0, writable: !0, value: a }) : t[e] = a;
6
6
  var u = (t, e, a) => P(t, typeof e != "symbol" ? e + "" : e, a), C = (t, e, a) => e.has(t) || w("Cannot " + a);
7
7
  var c = (t, e, a) => (C(t, e, "read from private field"), a ? a.call(t) : e.get(t)), m = (t, e, a) => e.has(t) ? w("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, a), y = (t, e, a, o) => (C(t, e, "write to private field"), o ? o.call(t, a) : e.set(t, a), a), s = (t, e, a) => (C(t, e, "access private method"), a);
8
- import { l as b, k as A, V as O, G as D, f as R, o as G } from "./install-B4EtpXXD.js";
8
+ import { l as b, k as A, V as O, G as D, f as R, o as G } from "./install-DM_Q0dji.js";
9
9
  function M() {
10
10
  return "https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1";
11
11
  }
@@ -94,7 +94,7 @@ class F {
94
94
  async load(e) {
95
95
  if (!c(this, n))
96
96
  throw Error("[vidstack] google cast player was not initialized");
97
- return new (await import("./vidstack-google-cast-Bb5-TcI4.js")).GoogleCastProvider(c(this, n), e);
97
+ return new (await import("./vidstack-google-cast-ChRMiIAe.js")).GoogleCastProvider(c(this, n), e);
98
98
  }
99
99
  }
100
100
  n = new WeakMap(), r = new WeakSet(), S = async function(e) {
@@ -5,7 +5,7 @@ var g = (s) => {
5
5
  var M = (s, t, i) => t in s ? y(s, t, { enumerable: !0, configurable: !0, writable: !0, value: i }) : s[t] = i;
6
6
  var c = (s, t, i) => M(s, typeof t != "symbol" ? t + "" : t, i), h = (s, t, i) => t.has(s) || g("Cannot " + i);
7
7
  var e = (s, t, i) => (h(s, t, "read from private field"), i ? i.call(s) : t.get(s)), l = (s, t, i) => t.has(s) ? g("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(s) : t.set(s, i), p = (s, t, i, a) => (h(s, t, "write to private field"), a ? a.call(s, i) : t.set(s, i), i), u = (s, t, i) => (h(s, t, "access private method"), i);
8
- import { M as w, l as f, e as A, f as P, U as O, b as S } from "./install-B4EtpXXD.js";
8
+ import { M as w, l as f, e as A, f as P, U as O, b as S } from "./install-DM_Q0dji.js";
9
9
  var r, o, b, m;
10
10
  class J {
11
11
  constructor(t) {
@@ -1,4 +1,4 @@
1
- import { c as d, a as i, I as l, e as m } from "./install-B4EtpXXD.js";
1
+ import { c as d, a as i, I as l, e as m } from "./install-DM_Q0dji.js";
2
2
  const p = /* @__PURE__ */ i(
3
3
  '<svg viewBox="0 0 32 32" fill="none" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"></svg>'
4
4
  );
@@ -3,7 +3,7 @@ var l = (i) => {
3
3
  };
4
4
  var m = (i, t, s) => t.has(i) || l("Cannot " + s);
5
5
  var r = (i, t, s) => (m(i, t, "read from private field"), s ? s.call(i) : t.get(i)), e = (i, t, s) => t.has(i) ? l("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(i) : t.set(i, s), h = (i, t, s, f) => (m(i, t, "write to private field"), f ? f.call(i, s) : t.set(i, s), s), c = (i, t, s) => (m(i, t, "access private method"), s);
6
- import { m as p, v as u } from "./install-B4EtpXXD.js";
6
+ import { m as p, v as u } from "./install-DM_Q0dji.js";
7
7
  var o, a, n, d;
8
8
  class F {
9
9
  constructor(t) {
@@ -1,8 +1,8 @@
1
1
  var a = Object.defineProperty;
2
2
  var o = (i, e, t) => e in i ? a(i, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[e] = t;
3
3
  var r = (i, e, t) => o(i, typeof e != "symbol" ? e + "" : e, t);
4
- import { s as p } from "./install-B4EtpXXD.js";
5
- import { H as d, a as u } from "./vidstack-Bq6c3Bam-DEJ-5jcv.js";
4
+ import { s as p } from "./install-DM_Q0dji.js";
5
+ import { H as d, a as u } from "./vidstack-Bq6c3Bam-DbaqiW-G.js";
6
6
  class n extends d {
7
7
  constructor(t, s) {
8
8
  super(t, s);
@@ -5,9 +5,9 @@ var Y = (n) => {
5
5
  var wt = (n, t, e) => t in n ? vt(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e;
6
6
  var I = (n, t, e) => wt(n, typeof t != "symbol" ? t + "" : t, e), b = (n, t, e) => t.has(n) || Y("Cannot " + e);
7
7
  var i = (n, t, e) => (b(n, t, "read from private field"), e ? e.call(n) : t.get(n)), f = (n, t, e) => t.has(n) ? Y("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(n) : t.set(n, e), p = (n, t, e, r) => (b(n, t, "write to private field"), r ? r.call(n, e) : t.set(n, e), e), h = (n, t, e) => (b(n, t, "access private method"), e);
8
- import { r as Et, b as _, d as Lt, f as At, Q as z, l as J, e as Dt, D as N, h as xt, j as O, T as Mt, L as q, t as Ct, u as Nt, v as Rt, k as Ft, m as Z, n as Pt, o as qt, q as _t } from "./install-B4EtpXXD.js";
9
- import { VideoProvider as $t } from "./vidstack-video-BTCFVA94.js";
10
- import { R as jt } from "./vidstack-DqAw8m9J-ReUPOFHP.js";
8
+ import { r as Et, b as _, d as Lt, f as At, Q as z, l as J, e as Dt, D as N, h as xt, j as O, T as Mt, L as q, t as Ct, u as Nt, v as Rt, k as Ft, m as Z, n as Pt, o as qt, q as _t } from "./install-DM_Q0dji.js";
9
+ import { VideoProvider as $t } from "./vidstack-video-BGBwzabO.js";
10
+ import { R as jt } from "./vidstack-DqAw8m9J-DhoY5QSY.js";
11
11
  function W(n) {
12
12
  try {
13
13
  return new Intl.DisplayNames(navigator.languages, { type: "language" }).of(n) ?? null;
@@ -5,9 +5,9 @@ var Q = (d) => {
5
5
  var vt = (d, t, s) => t in d ? Lt(d, t, { enumerable: !0, configurable: !0, writable: !0, value: s }) : d[t] = s;
6
6
  var G = (d, t, s) => vt(d, typeof t != "symbol" ? t + "" : t, s), O = (d, t, s) => t.has(d) || Q("Cannot " + s);
7
7
  var e = (d, t, s) => (O(d, t, "read from private field"), s ? s.call(d) : t.get(d)), T = (d, t, s) => t.has(d) ? Q("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(d) : t.set(d, s), l = (d, t, s, i) => (O(d, t, "write to private field"), i ? i.call(d, s) : t.set(d, s), s), r = (d, t, s) => (O(d, t, "access private method"), s);
8
- import { A as St, N as L, W as Z, z as At, D as tt, f as V, l as et, e as It, X as bt, L as Rt } from "./install-B4EtpXXD.js";
9
- import { R as wt } from "./vidstack-DqAw8m9J-ReUPOFHP.js";
10
- import { g as Mt, a as Dt, b as it, h as st, l as Nt, c as Pt } from "./vidstack-D2pY00kU-DWEQ9_N8.js";
8
+ import { A as St, N as L, W as Z, z as At, D as tt, f as V, l as et, e as It, X as bt, L as Rt } from "./install-DM_Q0dji.js";
9
+ import { R as wt } from "./vidstack-DqAw8m9J-DhoY5QSY.js";
10
+ import { g as Mt, a as Dt, b as it, h as st, l as Nt, c as Pt } from "./vidstack-D2pY00kU-Ilyikvhr.js";
11
11
  var g, _, at;
12
12
  class _t {
13
13
  constructor(t) {
@@ -5,9 +5,9 @@ var q = (n) => {
5
5
  var ot = (n, t, i) => t in n ? rt(n, t, { enumerable: !0, configurable: !0, writable: !0, value: i }) : n[t] = i;
6
6
  var _ = (n, t, i) => ot(n, typeof t != "symbol" ? t + "" : t, i), R = (n, t, i) => t.has(n) || q("Cannot " + i);
7
7
  var e = (n, t, i) => (R(n, t, "read from private field"), i ? i.call(n) : t.get(n)), f = (n, t, i) => t.has(n) ? q("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(n) : t.set(n, i), p = (n, t, i, s) => (R(n, t, "write to private field"), s ? s.call(n, i) : t.set(n, i), i), a = (n, t, i) => (R(n, t, "access private method"), i);
8
- import { i as ht, b as C, d as at, f as O, Q as N, l as V, e as dt, D as x, h as ut, T as ct, j, L as $, k as lt, m as k, n as ft, o as pt, q as vt } from "./install-B4EtpXXD.js";
9
- import { VideoProvider as yt } from "./vidstack-video-BTCFVA94.js";
10
- import { R as gt } from "./vidstack-DqAw8m9J-ReUPOFHP.js";
8
+ import { i as ht, b as C, d as at, f as O, Q as N, l as V, e as dt, D as x, h as ut, T as ct, j, L as $, k as lt, m as k, n as ft, o as pt, q as vt } from "./install-DM_Q0dji.js";
9
+ import { VideoProvider as yt } from "./vidstack-video-BGBwzabO.js";
10
+ import { R as gt } from "./vidstack-DqAw8m9J-DhoY5QSY.js";
11
11
  const Lt = (n) => ut(n);
12
12
  var T, h, o, D, b, r, E, M, U, F, Q, K, W, B, J, X, Y, z, G, Z, tt;
13
13
  class St {
@@ -5,8 +5,8 @@ var b = (i) => {
5
5
  var N = (i, t, e) => t in i ? $(i, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : i[t] = e;
6
6
  var y = (i, t, e) => N(i, typeof t != "symbol" ? t + "" : t, e), E = (i, t, e) => t.has(i) || b("Cannot " + e);
7
7
  var s = (i, t, e) => (E(i, t, "read from private field"), e ? e.call(i) : t.get(i)), r = (i, t, e) => t.has(i) ? b("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(i) : t.set(i, e), c = (i, t, e, n) => (E(i, t, "write to private field"), n ? n.call(i, e) : t.set(i, e), e), p = (i, t, e) => (E(i, t, "access private method"), e);
8
- import { s as U, w as V, x as A, y as j, z as C, l as q, D as z, E as F, T as Y, j as v } from "./install-B4EtpXXD.js";
9
- import { H as _, a as B } from "./vidstack-Bq6c3Bam-DEJ-5jcv.js";
8
+ import { s as U, w as V, x as A, y as j, z as C, l as q, D as z, E as F, T as Y, j as v } from "./install-DM_Q0dji.js";
9
+ import { H as _, a as B } from "./vidstack-Bq6c3Bam-DbaqiW-G.js";
10
10
  var P, f, k, D, H;
11
11
  class G {
12
12
  constructor(t, e) {
@@ -5,9 +5,9 @@ var N = (r) => {
5
5
  var de = (r, c, e) => c in r ? ue(r, c, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[c] = e;
6
6
  var b = (r, c, e) => de(r, typeof c != "symbol" ? c + "" : c, e), S = (r, c, e) => c.has(r) || N("Cannot " + e);
7
7
  var t = (r, c, e) => (S(r, c, "read from private field"), e ? e.call(r) : c.get(r)), f = (r, c, e) => c.has(r) ? N("Cannot add the same private member more than once") : c instanceof WeakSet ? c.add(r) : c.set(r, e), u = (r, c, e, i) => (S(r, c, "write to private field"), i ? i.call(r, e) : c.set(r, e), e), o = (r, c, e) => (S(r, c, "access private method"), e);
8
- import { A as fe, M as U, N as C, d as pe, e as q, f as Q, b as ye, O as _, L as R, l as be, P as ke, T as ve, Q as W } from "./install-B4EtpXXD.js";
9
- import { R as me } from "./vidstack-DqAw8m9J-ReUPOFHP.js";
10
- import { E as we } from "./vidstack-DDXt6fpN-DHo4CIYR.js";
8
+ import { A as fe, M as U, N as C, d as pe, e as q, f as Q, b as ye, O as _, L as R, l as be, P as ke, T as ve, Q as W } from "./install-DM_Q0dji.js";
9
+ import { R as me } from "./vidstack-DqAw8m9J-DhoY5QSY.js";
10
+ import { E as we } from "./vidstack-DDXt6fpN-CHfTn9BX.js";
11
11
  import { resolveVimeoVideoId as Pe, getVimeoVideoInfo as Te } from "./vidstack-krOAtKMi-B4IZWKdc.js";
12
12
  const Ce = [
13
13
  "bufferend",
@@ -5,8 +5,8 @@ var B = (r) => {
5
5
  var q = (r, n, e) => n in r ? A(r, n, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[n] = e;
6
6
  var T = (r, n, e) => q(r, typeof n != "symbol" ? n + "" : n, e), M = (r, n, e) => n.has(r) || B("Cannot " + e);
7
7
  var s = (r, n, e) => (M(r, n, "read from private field"), e ? e.call(r) : n.get(r)), p = (r, n, e) => n.has(r) ? B("Cannot add the same private member more than once") : n instanceof WeakSet ? n.add(r) : n.set(r, e), l = (r, n, e, t) => (M(r, n, "write to private field"), t ? t.call(r, e) : n.set(r, e), e), o = (r, n, e) => (M(r, n, "access private method"), e);
8
- import { A as z, M as G, d as H, e as J, b as K, O as Q, N as C, R as W, v as $, S as X } from "./install-B4EtpXXD.js";
9
- import { E as Z } from "./vidstack-DDXt6fpN-DHo4CIYR.js";
8
+ import { A as z, M as G, d as H, e as J, b as K, O as Q, N as C, R as W, v as $, S as X } from "./install-DM_Q0dji.js";
9
+ import { E as Z } from "./vidstack-DDXt6fpN-CHfTn9BX.js";
10
10
  import { resolveYouTubeVideoId as ee } from "./vidstack-Dm1xEU9Q-qSXq3AI-.js";
11
11
  const b = {
12
12
  Ended: 0,
@@ -1,4 +1,4 @@
1
- import { p as d } from "./install-B4EtpXXD.js";
1
+ import { p as d } from "./install-DM_Q0dji.js";
2
2
  import { inject as lt, effectScope as dt, reactive as vt, watch as J, computed as pt } from "vue";
3
3
  function ht() {
4
4
  return W().__VUE_DEVTOOLS_GLOBAL_HOOK__;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webitel/ui-sdk",
3
- "version": "25.12.48",
3
+ "version": "25.12.50",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "make-all": "npm version patch --git-tag-version false && npm run build && (npm run build:types || true) && (npm run lint:fix || true) && npm run publish-lib",
@@ -56,7 +56,7 @@
56
56
  "@vuepic/vue-datepicker": "^4.5.1",
57
57
  "@vueuse/components": "^13.0.0",
58
58
  "@webitel/api-services": "^0.0.90",
59
- "@webitel/styleguide": "^24.12.89",
59
+ "@webitel/styleguide": "^24.12.90",
60
60
  "autosize": "^6.0.1",
61
61
  "axios": "^1.8.3",
62
62
  "clipboard-copy": "^4.0.1",
@@ -11,6 +11,7 @@ import WtAppNavigator from './wt-app-header/wt-app-navigator.vue';
11
11
  import WtHeaderActions from './wt-app-header/wt-header-actions.vue';
12
12
  import WtAvatar from './wt-avatar/wt-avatar.vue';
13
13
  import WtBadge from './wt-badge/wt-badge.vue';
14
+ import WtBadgeNew from './wt-badge-new/wt-badge.vue';
14
15
  import WtBreadcrumb from './wt-breadcrumb/wt-breadcrumb.vue';
15
16
  import WtButton from './wt-button/wt-button.vue';
16
17
  import WtButtonSelect from './wt-button-select/wt-button-select.vue';
@@ -81,6 +82,7 @@ const Components = {
81
82
  WtLogo,
82
83
  WtAvatar,
83
84
  WtBadge,
85
+ WtBadgeNew,
84
86
  WtIcon,
85
87
  WtIndicator,
86
88
  WtInputInfo,
@@ -157,6 +159,7 @@ export {
157
159
  WtAppNavigator,
158
160
  WtAvatar,
159
161
  WtBadge,
162
+ WtBadgeNew,
160
163
  WtBreadcrumb,
161
164
  WtButton,
162
165
  WtButtonSelect,
@@ -0,0 +1,49 @@
1
+ <template>
2
+ <p-badge
3
+ :value="props.value"
4
+ :class="[
5
+ props.size && `p-badge--${props.size}`,
6
+ props.severity && `p-badge--${props.severity}`
7
+ ]"
8
+ class="wt-badge"
9
+ >
10
+ <slot />
11
+ </p-badge>
12
+ </template>
13
+
14
+ <script setup lang="ts">
15
+ import { defineProps, withDefaults } from 'vue';
16
+
17
+ import {ComponentSize} from "../../enums";
18
+
19
+ interface Props {
20
+ value: string | number
21
+ severity?:
22
+ "secondary" |
23
+ "info" |
24
+ "success" |
25
+ "warn" |
26
+ "error" |
27
+ "online" |
28
+ "dnd" |
29
+ "busy" |
30
+ "pause" |
31
+ "onlineCc" |
32
+ "offline"
33
+ size?: ComponentSize
34
+ }
35
+
36
+ const props = withDefaults(defineProps<Props>(), {
37
+ value: '',
38
+ severity: null,
39
+ size: ComponentSize.MD,
40
+ })
41
+ </script>
42
+
43
+ <style lang="scss" scoped>
44
+ @use '@webitel/styleguide/typography' as *;
45
+
46
+ .wt-badge {
47
+ @extend %typo-caption;
48
+ }
49
+ </style>
@@ -3,6 +3,7 @@
3
3
  :class="{
4
4
  'p-button--width-by-content': widthByContent || icon,
5
5
  'p-button--wide': wide,
6
+ 'p-button--with-badge': props.badge,
6
7
  'p-button--loading': showLoader,
7
8
  'p-button--icon': icon,
8
9
  [ `p-button--icon-${variant} p-button--icon-${size}` ]: icon,
@@ -23,8 +24,23 @@
23
24
  />
24
25
  <div class="wt-button__contents">
25
26
  <slot v-if="!icon"> no content provided</slot>
27
+
28
+ <wt-badge
29
+ v-if="props.badge"
30
+ :value="props.badge"
31
+ :severity="props.badgeSeverity"
32
+ :class="badgeClass"
33
+ :size="ComponentSize.MD"
34
+ >
35
+ <template #default>
36
+ <slot name="badge">
37
+ {{ props.badge }}
38
+ </slot>
39
+ </template>
40
+ </wt-badge>
41
+
26
42
  <wt-icon
27
- v-else
43
+ v-if="icon"
28
44
  :icon="icon"
29
45
  :icon-prefix="iconPrefix"
30
46
  :size="iconButtonSizeMap[size]"
@@ -37,7 +53,9 @@
37
53
  import type { ButtonProps } from 'primevue';
38
54
  import { computed, defineEmits, defineProps, inject,ref, useAttrs, watch } from 'vue';
39
55
 
40
- import { ButtonColor, ButtonVariant, ComponentSize, } from '../../enums';
56
+ import { ButtonColor, ButtonVariant, ComponentSize } from '../../enums';
57
+ import WtBadge from "../wt-badge-new/wt-badge.vue";
58
+ import WtIcon from "../wt-icon/wt-icon.vue";
41
59
 
42
60
  const primevueSizeMap = {
43
61
  [ComponentSize.XS]: 'extra-small',
@@ -60,6 +78,9 @@ interface WtButtonProps extends /* @vue-ignore */ ButtonProps {
60
78
  widthByContent?: boolean;
61
79
  icon?: string;
62
80
  iconPrefix?: string;
81
+ badge?: string;
82
+ badgeSeverity?: string;
83
+ badgeAbsolutePosition?: boolean;
63
84
  variant?: ButtonVariant;
64
85
  }
65
86
 
@@ -81,6 +102,10 @@ const attrs = useAttrs();
81
102
 
82
103
  const showLoader = ref(false);
83
104
 
105
+ const badgeClass = computed(() => ({
106
+ 'wt-badge--absolute': props.badgeAbsolutePosition
107
+ }));
108
+
84
109
  // @Ler24
85
110
  // Compatibility mode for Vuex (old mode) and when there is no Vuex in project (new mode)
86
111
  const store = ref(null);
@@ -139,7 +164,26 @@ watch(
139
164
  </script>
140
165
 
141
166
  <style lang="scss">
142
- .wt-button__contents {
143
- display: contents;
167
+ .wt-button {
168
+ position: relative;
169
+
170
+ &.p-button {
171
+ &--with-badge {
172
+ overflow: visible;
173
+ }
174
+ }
175
+
176
+ &__contents {
177
+ display: contents;
178
+ }
179
+
180
+ .wt-badge {
181
+ &--absolute {
182
+ position: absolute;
183
+ top: 0;
184
+ right: 0;
185
+ }
186
+ }
144
187
  }
188
+
145
189
  </style>
@@ -37,50 +37,45 @@
37
37
  @click="$emit('input', 'refresh')"
38
38
  />
39
39
 
40
- <wt-icon-btn
41
- v-if="isSettings"
42
- v-tooltip="$t('webitelUI.tableActions.expandFilters')"
43
- :class="{ active: isSettingsActive }"
44
- icon="filter"
45
- @click="$emit('input', 'settings')"
46
- />
40
+ <wt-badge
41
+ :hidden="!isSettingsBadge"
42
+ >
43
+ <wt-icon-btn
44
+ v-if="isSettings"
45
+ v-tooltip="$t('webitelUI.tableActions.expandFilters')"
46
+ :class="{ active: isSettingsActive }"
47
+ icon="filter"
48
+ @click="$emit('input', 'settings')"
49
+ />
50
+ </wt-badge>
47
51
  </aside>
48
52
  </template>
49
53
 
50
- <script>
51
- export default {
52
- name: 'WtTableActions',
53
- props: {
54
- icons: {
55
- type: Array,
56
- default: () => ['refresh'],
57
- },
58
- isSettingsActive: {
59
- type: Boolean,
60
- default: false,
61
- },
62
- },
63
- computed: {
64
- isImport() {
65
- return this.icons.indexOf('import') !== -1;
66
- },
67
- isExport() {
68
- return this.icons.indexOf('export') !== -1;
69
- },
70
- isFilterReset() {
71
- return this.icons.indexOf('filter-reset') !== -1;
72
- },
73
- isColumnSelect() {
74
- return this.icons.indexOf('column-select') !== -1;
75
- },
76
- isRefresh() {
77
- return this.icons.indexOf('refresh') !== -1;
78
- },
79
- isSettings() {
80
- return this.icons.indexOf('settings') !== -1;
81
- },
82
- },
83
- };
54
+ <script setup lang="ts">
55
+ import { computed } from 'vue';
56
+
57
+ interface Props {
58
+ icons?: string[];
59
+ isSettingsActive?: boolean;
60
+ isSettingsBadge?: boolean;
61
+ }
62
+
63
+ const props = withDefaults(defineProps<Props>(), {
64
+ icons: () => ['refresh'],
65
+ isSettingsActive: false,
66
+ isSettingsBadge: false,
67
+ });
68
+
69
+ defineEmits<{
70
+ input: [value: string];
71
+ }>();
72
+
73
+ const isImport = computed(() => props.icons.indexOf('import') !== -1);
74
+ const isExport = computed(() => props.icons.indexOf('export') !== -1);
75
+ const isFilterReset = computed(() => props.icons.indexOf('filter-reset') !== -1);
76
+ const isColumnSelect = computed(() => props.icons.indexOf('column-select') !== -1);
77
+ const isRefresh = computed(() => props.icons.indexOf('refresh') !== -1);
78
+ const isSettings = computed(() => props.icons.indexOf('settings') !== -1);
84
79
  </script>
85
80
 
86
81
  <style lang="scss">
@@ -28,8 +28,11 @@
28
28
  :disabled="!props['mic:accessed']"
29
29
  :size="buttonSizeMap[size]"
30
30
  :icon="microphoneIcon"
31
+ :badge="micBadge"
32
+ badge-severity="error"
31
33
  variant="outlined"
32
34
  color="secondary"
35
+ badge-absolute-position
33
36
  rounded
34
37
  contains-icon
35
38
  @click="emit(VideoCallAction.Mic)"
@@ -40,8 +43,11 @@
40
43
  :disabled="!props['video:accessed']"
41
44
  :size="buttonSizeMap[size]"
42
45
  :icon="videoCamIcon"
46
+ :badge="videoBadge"
47
+ badge-severity="error"
43
48
  variant="outlined"
44
49
  color="secondary"
50
+ badge-absolute-position
45
51
  rounded
46
52
  contains-icon
47
53
  @click="emit(VideoCallAction.Video)"
@@ -136,6 +142,8 @@ const microphoneIcon = computed(() => {
136
142
  return 'mic';
137
143
  });
138
144
 
145
+ const micBadge = computed(() => !props['mic:accessed'] ? '!' : null)
146
+
139
147
  const videoCamIcon = computed(() => {
140
148
  if (!props['video:accessed']) {
141
149
  return 'video-cam'; // todo
@@ -148,6 +156,8 @@ const videoCamIcon = computed(() => {
148
156
  return 'video-cam';
149
157
  });
150
158
 
159
+ const videoBadge = computed(() => !props['video:accessed'] ? '!' : null)
160
+
151
161
  const recordIcon = computed(() => (props.recordings ? 'record-stop' : 'record-start'));
152
162
 
153
163
  const screenShotIcon = computed(() => {
@@ -182,6 +192,7 @@ const buttonSizeMap = {
182
192
  <style scoped lang="scss">
183
193
  .video-call-controls-panel {
184
194
  position: relative;
195
+ z-index: 1;
185
196
  display: flex;
186
197
  justify-content: center;
187
198
  }
@@ -125,7 +125,7 @@ const normalizedSrc = computed(() => {
125
125
  }
126
126
 
127
127
  return {
128
- src: props.src?.src || '',
128
+ src: props.src?.src || null,
129
129
  type: props.src?.type || normalizedType.value
130
130
  };
131
131
  });
@@ -60,15 +60,13 @@ const attrs = useAttrs();
60
60
 
61
61
  &__indicator {
62
62
  position: absolute;
63
- width: 100%;
64
- height: 100%;
65
63
  display: flex;
66
64
  align-items: end;
67
65
  justify-content: flex-end;
68
- padding: var(--p-player-counter-position-padding-sm);
69
66
 
70
67
  &--sm {
71
- position: relative;
68
+ right: var(--p-player-counter-position-padding-sm);
69
+ bottom: calc(var(--p-player-counter-position-padding-sm) + var(--p-player-control-bar-sm-height));
72
70
  }
73
71
 
74
72
  &--md {
@@ -76,13 +76,13 @@
76
76
  :actions="props.actions"
77
77
  :actions:settings:pressed="props['actions:settings:pressed']"
78
78
  :actions:chat:pressed="props['actions:chat:pressed']"
79
- @[VideoCallAction.Screenshot]="([payload, options] = []) => emit(`action:${VideoCallAction.Screenshot}`, payload, options)"
80
- @[VideoCallAction.Recordings]="([payload, options] = []) => emit(`action:${VideoCallAction.Recordings}`, payload, options)"
81
- @[VideoCallAction.Mic]="([payload, options] = []) => emit(`action:${VideoCallAction.Mic}`, payload, options)"
82
- @[VideoCallAction.Video]="([payload, options] = []) => emit(`action:${VideoCallAction.Video}`, payload, options)"
83
- @[VideoCallAction.Settings]="([payload, options] = []) => emit(`action:${VideoCallAction.Settings}`, payload, options)"
84
- @[VideoCallAction.Chat]="([payload, options] = []) => emit(`action:${VideoCallAction.Chat}`, payload, options)"
85
- @[VideoCallAction.Hangup]="([payload, options] = []) => emit(`action:${VideoCallAction.Hangup}`, payload, options)"
79
+ @[VideoCallAction.Screenshot]="(payload, options) => emit(`action:${VideoCallAction.Screenshot}`, payload, options)"
80
+ @[VideoCallAction.Recordings]="(payload, options) => emit(`action:${VideoCallAction.Recordings}`, payload, options)"
81
+ @[VideoCallAction.Mic]="(payload, options) => emit(`action:${VideoCallAction.Mic}`, payload, options)"
82
+ @[VideoCallAction.Video]="(payload, options) => emit(`action:${VideoCallAction.Video}`, payload, options)"
83
+ @[VideoCallAction.Settings]="(payload, options) => emit(`action:${VideoCallAction.Settings}`, payload, options)"
84
+ @[VideoCallAction.Chat]="(payload, options) => emit(`action:${VideoCallAction.Chat}`, payload, options)"
85
+ @[VideoCallAction.Hangup]="(payload, options) => emit(`action:${VideoCallAction.Hangup}`, payload, options)"
86
86
  />
87
87
  </template>
88
88
  </wt-vidstack-player>
@@ -153,7 +153,7 @@ const emit = defineEmits<{
153
153
  const mainStream = computed(() => {
154
154
  if (!props['sender:video:enabled']) return null;
155
155
 
156
- return props['receiver:stream'] || props['sender:stream'];
156
+ return props['sender:stream'] || props['receiver:stream'];
157
157
  })
158
158
 
159
159
  const senderVideoMutedIconSizes = {
@@ -1,5 +1,6 @@
1
1
  import PAutoComplete from 'primevue/autocomplete';
2
2
  import PAvatar from 'primevue/avatar';
3
+ import PBadge from 'primevue/badge';
3
4
  import PBreadcrumb from 'primevue/breadcrumb';
4
5
  import PButton from 'primevue/button';
5
6
  import PCheckbox from 'primevue/checkbox';
@@ -57,6 +58,7 @@ const initPrimevue = (app) => {
57
58
  app.component('PDivider', changeComponentCompatMode(PDivider));
58
59
  app.component('PImage', changeComponentCompatMode(PImage));
59
60
  app.component('PGalleria', changeComponentCompatMode(PGalleria));
61
+ app.component('PBadge', changeComponentCompatMode(PBadge));
60
62
 
61
63
  app.directive('tooltip', Tooltip);
62
64
  };
@@ -0,0 +1,44 @@
1
+ import { BadgeScheme } from '@webitel/styleguide/component-schemes';
2
+
3
+ const colors = [
4
+ 'secondary',
5
+ 'info',
6
+ 'success',
7
+ 'warn',
8
+ 'error',
9
+ 'online',
10
+ 'dnd',
11
+ 'busy',
12
+ 'pause',
13
+ 'onlineCc',
14
+ 'offline',
15
+ ];
16
+
17
+ const generateCustomColorCss = ({ colorName, dt }) => `
18
+ .p-badge--${colorName} {
19
+ background: ${dt(`badge.${colorName}.background`)};
20
+ color: ${dt(`badge.${colorName}.color`)};
21
+ }
22
+ `;
23
+
24
+ const generateCustomSizeCss = ({ size, dt }) => `
25
+ .p-badge--${size} {
26
+ width: ${dt(`badge.${size}.width`)};
27
+ height: ${dt(`badge.${size}.height`)};
28
+ }
29
+ `;
30
+
31
+ const badge = {
32
+ root: BadgeScheme.sizes,
33
+ colorScheme: BadgeScheme.colorScheme,
34
+
35
+ css: ({ dt }) => `
36
+ ${generateCustomSizeCss({ size: 'sm', dt })}
37
+ ${generateCustomSizeCss({ size: 'md', dt })}
38
+ ${generateCustomSizeCss({ size: 'lg', dt })}
39
+
40
+ ${colors.map((color) => generateCustomColorCss({ colorName: color, dt })).join('')}
41
+ `,
42
+ };
43
+
44
+ export default badge;
@@ -1,5 +1,6 @@
1
1
  import autocomplete from './autocomplete/autocomplete.js';
2
2
  import avatar from './avatar/avatar.js';
3
+ import badge from './badge/badge.js';
3
4
  import breadcrumb from './breadcrumb/breadcrumb.js';
4
5
  import button from './button/button.js';
5
6
  import checkbox from './checkbox/checkbox.js';
@@ -22,6 +23,7 @@ const components = {
22
23
  avatar,
23
24
  breadcrumb,
24
25
  button,
26
+ badge,
25
27
  chip,
26
28
  checkbox,
27
29
  textarea,
@@ -4,6 +4,7 @@ import WtAppHeader from './wt-app-header/wt-app-header.vue';
4
4
  import WtAppNavigator from './wt-app-header/wt-app-navigator.vue';
5
5
  import WtAvatar from './wt-avatar/wt-avatar.vue';
6
6
  import WtBadge from './wt-badge/wt-badge.vue';
7
+ import WtBadgeNew from './wt-badge-new/wt-badge.vue';
7
8
  import WtBreadcrumb from './wt-breadcrumb/wt-breadcrumb.vue';
8
9
  import WtButton from './wt-button/wt-button.vue';
9
10
  import WtButtonSelect from './wt-button-select/wt-button-select.vue';
@@ -81,6 +82,7 @@ declare namespace Components {
81
82
  export { WtLogo };
82
83
  export { WtAvatar };
83
84
  export { WtBadge };
85
+ export { WtBadgeNew };
84
86
  export { WtIcon };
85
87
  export { WtIndicator };
86
88
  export { WtInputInfo };
@@ -150,4 +152,4 @@ declare namespace Components {
150
152
  export { WtVidstackPlayer };
151
153
  export { WtChatEmoji };
152
154
  }
153
- export { WtActionBar, WtAppHeader, WtAppNavigator, WtAvatar, WtBadge, WtBreadcrumb, WtButton, WtButtonSelect, WtChatEmoji, WtCheckbox, WtChip, WtConfirmDialog, WtContextMenu, WtCopyAction, WtDatepicker, WtDisplayChipItems, WtDivider, WtDualPanel, WtDummy, WtEmpty, WtErrorPage, WtExpansionPanel, WtFiltersPanelWrapper, WtGalleria, WtHeaderActions, WtHeadline, WtHint, WtIcon, WtIconAction, WtIconBtn, WtImage, WtIndicator, WtInput, WtInputInfo, WtIntersectionObserver, WtItemLink, WtLabel, WtLoadBar, WtLoader, WtLogo, WtNavigationBar, WtNavigationMenu, WtNotification, WtNotificationsBar, WtPageHeader, WtPageWrapper, WtPagination, WtPlayer, WtPopover, WtPopup, WtProgressBar, WtRadio, WtReplaceTransition, WtRoundedAction, WtSearchBar, WtSelect, WtSelectionPopup, WtSlider, WtStartPage, WtStatusSelect, WtStepper, WtSwitcher, WtTable, WtTableActions, WtTableColumnSelect, WtTabs, WtTagsInput, WtTextarea, WtTimeInput, WtTimepicker, WtTooltip, WtTree, WtTreeTable, WtTypeExtensionValueInput, WtVidstackPlayer };
155
+ export { WtActionBar, WtAppHeader, WtAppNavigator, WtAvatar, WtBadge, WtBadgeNew, WtBreadcrumb, WtButton, WtButtonSelect, WtChatEmoji, WtCheckbox, WtChip, WtConfirmDialog, WtContextMenu, WtCopyAction, WtDatepicker, WtDisplayChipItems, WtDivider, WtDualPanel, WtDummy, WtEmpty, WtErrorPage, WtExpansionPanel, WtFiltersPanelWrapper, WtGalleria, WtHeaderActions, WtHeadline, WtHint, WtIcon, WtIconAction, WtIconBtn, WtImage, WtIndicator, WtInput, WtInputInfo, WtIntersectionObserver, WtItemLink, WtLabel, WtLoadBar, WtLoader, WtLogo, WtNavigationBar, WtNavigationMenu, WtNotification, WtNotificationsBar, WtPageHeader, WtPageWrapper, WtPagination, WtPlayer, WtPopover, WtPopup, WtProgressBar, WtRadio, WtReplaceTransition, WtRoundedAction, WtSearchBar, WtSelect, WtSelectionPopup, WtSlider, WtStartPage, WtStatusSelect, WtStepper, WtSwitcher, WtTable, WtTableActions, WtTableColumnSelect, WtTabs, WtTagsInput, WtTextarea, WtTimeInput, WtTimepicker, WtTooltip, WtTree, WtTreeTable, WtTypeExtensionValueInput, WtVidstackPlayer };