@webitel/ui-sdk 25.12.18 → 25.12.20
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/img/sprite/index.js +1 -1
- package/dist/{install-C2KuD-Ju.js → install-BP2NAmPh.js} +10551 -10354
- package/dist/ui-sdk.css +1 -1
- package/dist/ui-sdk.js +1 -1
- package/dist/ui-sdk.umd.cjs +289 -202
- package/dist/{vidstack-Bq6c3Bam-D0_vMVk3.js → vidstack-Bq6c3Bam-By-h4pxt.js} +2 -2
- package/dist/{vidstack-D2pY00kU-Cj-oWuMs.js → vidstack-D2pY00kU-Bml6Onhh.js} +2 -2
- package/dist/{vidstack-DDXt6fpN-DtxbXJ1d.js → vidstack-DDXt6fpN-wE95AmjG.js} +1 -1
- package/dist/{vidstack-D_-9AA6_-2RK8pK0l.js → vidstack-D_-9AA6_-DUm8Om9e.js} +1 -1
- package/dist/{vidstack-DqAw8m9J-C_yO4Cr1.js → vidstack-DqAw8m9J-8srXyTV9.js} +1 -1
- package/dist/{vidstack-audio-x_O2AIXV.js → vidstack-audio-D5ANgRcP.js} +2 -2
- package/dist/{vidstack-dash-CpZTFlFb.js → vidstack-dash-BMiYKP1Z.js} +3 -3
- package/dist/{vidstack-google-cast-B_GLL5iJ.js → vidstack-google-cast-B3NCt1Ok.js} +3 -3
- package/dist/{vidstack-hls-CtdEJskL.js → vidstack-hls-C8jJrINk.js} +3 -3
- package/dist/{vidstack-video-CGOgyd6M.js → vidstack-video-DLp9G-KP.js} +2 -2
- package/dist/{vidstack-vimeo-Bxcv38Va.js → vidstack-vimeo-W-AYa33h.js} +3 -3
- package/dist/{vidstack-youtube-B1oVxXZD.js → vidstack-youtube-nAAnRjgH.js} +2 -2
- package/package.json +2 -2
- package/src/components/wt-textarea/wt-textarea.vue +109 -198
- package/src/modules/AgentStatusSelect/components/_internals/wt-cc-pause-cause-popup.vue +1 -2
- package/src/modules/AuditForm/components/audit-form.vue +2 -2
- package/src/modules/Userinfo/v2/stores/settingsStore.ts +9 -4
- package/src/plugins/primevue/primevue.plugin.js +3 -1
- package/src/plugins/primevue/theme/components/components.js +2 -0
- package/src/plugins/primevue/theme/components/textarea/textarea.js +14 -0
- package/types/components/wt-textarea/wt-textarea.vue.d.ts +96 -185
- package/types/plugins/primevue/theme/components/components.d.ts +2 -0
- package/types/plugins/primevue/theme/components/textarea/textarea.d.ts +74 -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 M = (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 { y as Yt, x as ut, z as j, A as Zt, b as ti, E as nt, e as lt, B as _, C as ii, F as ei, d as si, G as ai, l as rt, H as dt, D as ni, L as Y, J as Z } from "./install-
|
|
9
|
-
import { R as ri } from "./vidstack-DqAw8m9J-
|
|
8
|
+
import { y as Yt, x as ut, z as j, A as Zt, b as ti, E as nt, e as lt, B as _, C as ii, F as ei, d as si, G as ai, l as rt, H as dt, D as ni, L as Y, J as Z } from "./install-BP2NAmPh.js";
|
|
9
|
+
import { R as ri } from "./vidstack-DqAw8m9J-8srXyTV9.js";
|
|
10
10
|
let q = null, z = [], J = [];
|
|
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, h as A, S as O, C as D, d as R, m as M } from "./install-
|
|
8
|
+
import { l as b, h as A, S as O, C as D, d as R, m as M } from "./install-BP2NAmPh.js";
|
|
9
9
|
function G() {
|
|
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-
|
|
97
|
+
return new (await import("./vidstack-google-cast-B3NCt1Ok.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 w = (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) => w(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 { J as M, l as f, e as A, d as P, R as O, b as S } from "./install-
|
|
8
|
+
import { J as M, l as f, e as A, d as P, R as O, b as S } from "./install-BP2NAmPh.js";
|
|
9
9
|
var r, o, b, m;
|
|
10
10
|
class W {
|
|
11
11
|
constructor(t) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as d, a as i, I as l, e as m } from "./install-
|
|
1
|
+
import { c as d, a as i, I as l, e as m } from "./install-BP2NAmPh.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 c = (i, t, s) => t.has(i) || l("Cannot " + s);
|
|
5
5
|
var r = (i, t, s) => (c(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) => (c(i, t, "write to private field"), f ? f.call(i, s) : t.set(i, s), s), m = (i, t, s) => (c(i, t, "access private method"), s);
|
|
6
|
-
import { j as p, t as u } from "./install-
|
|
6
|
+
import { j as p, t as u } from "./install-BP2NAmPh.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-
|
|
5
|
-
import { H as d, a as u } from "./vidstack-Bq6c3Bam-
|
|
4
|
+
import { s as p } from "./install-BP2NAmPh.js";
|
|
5
|
+
import { H as d, a as u } from "./vidstack-Bq6c3Bam-By-h4pxt.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 { o as Et, b as _, p as Lt, d as At, Q as z, l as J, e as Dt, D as N, f as xt, g as O, T as Mt, L as q, q as Ct, r as Nt, t as Rt, h as Ft, j as Z, k as Pt, m as qt, n as _t } from "./install-
|
|
9
|
-
import { VideoProvider as $t } from "./vidstack-video-
|
|
10
|
-
import { R as jt } from "./vidstack-DqAw8m9J-
|
|
8
|
+
import { o as Et, b as _, p as Lt, d as At, Q as z, l as J, e as Dt, D as N, f as xt, g as O, T as Mt, L as q, q as Ct, r as Nt, t as Rt, h as Ft, j as Z, k as Pt, m as qt, n as _t } from "./install-BP2NAmPh.js";
|
|
9
|
+
import { VideoProvider as $t } from "./vidstack-video-DLp9G-KP.js";
|
|
10
|
+
import { R as jt } from "./vidstack-DqAw8m9J-8srXyTV9.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 W = (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) || W("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) ? W("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 { y as St, K as L, U as Z, x as At, D as tt, d as V, l as et, e as It, V as bt, L as Rt } from "./install-
|
|
9
|
-
import { R as wt } from "./vidstack-DqAw8m9J-
|
|
10
|
-
import { g as Mt, a as Dt, b as it, h as st, l as Nt, c as Pt } from "./vidstack-D2pY00kU-
|
|
8
|
+
import { y as St, K as L, U as Z, x as At, D as tt, d as V, l as et, e as It, V as bt, L as Rt } from "./install-BP2NAmPh.js";
|
|
9
|
+
import { R as wt } from "./vidstack-DqAw8m9J-8srXyTV9.js";
|
|
10
|
+
import { g as Mt, a as Dt, b as it, h as st, l as Nt, c as Pt } from "./vidstack-D2pY00kU-Bml6Onhh.js";
|
|
11
11
|
var g, _, at;
|
|
12
12
|
class _t {
|
|
13
13
|
constructor(t) {
|
|
@@ -5,9 +5,9 @@ var N = (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) || N("Cannot " + i);
|
|
7
7
|
var e = (n, t, i) => (R(n, t, "read from private field"), i ? i.call(n) : t.get(n)), p = (n, t, i) => t.has(n) ? N("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(n) : t.set(n, i), f = (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, p as at, d as O, Q as V, l as j, e as dt, D as x, f as ut, T as ct, g as k, L as $, h as lt, j as q, k as pt, m as ft, n as vt } from "./install-
|
|
9
|
-
import { VideoProvider as yt } from "./vidstack-video-
|
|
10
|
-
import { R as gt } from "./vidstack-DqAw8m9J-
|
|
8
|
+
import { i as ht, b as C, p as at, d as O, Q as V, l as j, e as dt, D as x, f as ut, T as ct, g as k, L as $, h as lt, j as q, k as pt, m as ft, n as vt } from "./install-BP2NAmPh.js";
|
|
9
|
+
import { VideoProvider as yt } from "./vidstack-video-DLp9G-KP.js";
|
|
10
|
+
import { R as gt } from "./vidstack-DqAw8m9J-8srXyTV9.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 m = (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, u as V, v as A, w as q, x as C, l as F, D as Y, E as _, T as j, g as v } from "./install-
|
|
9
|
-
import { H as z, a as B } from "./vidstack-Bq6c3Bam-
|
|
8
|
+
import { s as U, u as V, v as A, w as q, x as C, l as F, D as Y, E as _, T as j, g as v } from "./install-BP2NAmPh.js";
|
|
9
|
+
import { H as z, a as B } from "./vidstack-Bq6c3Bam-By-h4pxt.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 { y as fe, J as U, K as C, p as pe, e as q, d as Q, b as ye, M as _, L as R, l as be, N as ke, T as ve, Q as J } from "./install-
|
|
9
|
-
import { R as me } from "./vidstack-DqAw8m9J-
|
|
10
|
-
import { E as we } from "./vidstack-DDXt6fpN-
|
|
8
|
+
import { y as fe, J as U, K as C, p as pe, e as q, d as Q, b as ye, M as _, L as R, l as be, N as ke, T as ve, Q as J } from "./install-BP2NAmPh.js";
|
|
9
|
+
import { R as me } from "./vidstack-DqAw8m9J-8srXyTV9.js";
|
|
10
|
+
import { E as we } from "./vidstack-DDXt6fpN-wE95AmjG.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 N = (r, n, e) => n in r ? K(r, n, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[n] = e;
|
|
6
6
|
var T = (r, n, e) => N(r, typeof n != "symbol" ? n + "" : n, e), R = (r, n, e) => n.has(r) || B("Cannot " + e);
|
|
7
7
|
var s = (r, n, e) => (R(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) => (R(r, n, "write to private field"), t ? t.call(r, e) : n.set(r, e), e), o = (r, n, e) => (R(r, n, "access private method"), e);
|
|
8
|
-
import { y as q, J as z, p as A, e as G, b as H, M as Q, K as C, O as W, t as $, P as X } from "./install-
|
|
9
|
-
import { E as Z } from "./vidstack-DDXt6fpN-
|
|
8
|
+
import { y as q, J as z, p as A, e as G, b as H, M as Q, K as C, O as W, t as $, P as X } from "./install-BP2NAmPh.js";
|
|
9
|
+
import { E as Z } from "./vidstack-DDXt6fpN-wE95AmjG.js";
|
|
10
10
|
import { resolveYouTubeVideoId as ee } from "./vidstack-Dm1xEU9Q-qSXq3AI-.js";
|
|
11
11
|
const b = {
|
|
12
12
|
Ended: 0,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webitel/ui-sdk",
|
|
3
|
-
"version": "25.12.
|
|
3
|
+
"version": "25.12.20",
|
|
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.74",
|
|
59
|
-
"@webitel/styleguide": "^24.12.
|
|
59
|
+
"@webitel/styleguide": "^24.12.83",
|
|
60
60
|
"autosize": "^6.0.1",
|
|
61
61
|
"axios": "^1.8.3",
|
|
62
62
|
"clipboard-copy": "^4.0.1",
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div
|
|
3
|
+
class="wt-textarea"
|
|
3
4
|
:class="{
|
|
4
|
-
'wt-textarea--
|
|
5
|
-
'wt-textarea--invalid': invalid,
|
|
6
|
-
'wt-textarea--autoresize': autoresize,
|
|
5
|
+
'wt-textarea--hidden-scrollbar': isScrollHidden,
|
|
7
6
|
}"
|
|
8
|
-
class="wt-textarea"
|
|
9
7
|
>
|
|
10
8
|
<wt-label
|
|
11
9
|
:disabled="disabled"
|
|
@@ -23,32 +21,22 @@
|
|
|
23
21
|
</slot>
|
|
24
22
|
</wt-label>
|
|
25
23
|
<div class="wt-textarea__wrapper">
|
|
26
|
-
<textarea
|
|
24
|
+
<p-textarea
|
|
27
25
|
:id="name"
|
|
28
|
-
ref="
|
|
29
|
-
|
|
26
|
+
ref="textarea-wrapper"
|
|
27
|
+
v-model="model"
|
|
30
28
|
:placeholder="placeholder || label"
|
|
31
|
-
:
|
|
29
|
+
:invalid="invalid"
|
|
30
|
+
:disabled="disabled"
|
|
32
31
|
:rows="rows"
|
|
32
|
+
:auto-resize="autoresize"
|
|
33
33
|
:readonly="readonly"
|
|
34
34
|
class="wt-textarea__textarea"
|
|
35
|
-
|
|
36
|
-
@
|
|
35
|
+
@paste="emit('paste', $event)"
|
|
36
|
+
@keydown="handleKeypress"
|
|
37
|
+
@input="handleInput"
|
|
38
|
+
@blur="emit('blur')"
|
|
37
39
|
/>
|
|
38
|
-
<div
|
|
39
|
-
ref="after-wrapper"
|
|
40
|
-
class="wt-textarea__after-wrapper"
|
|
41
|
-
>
|
|
42
|
-
<slot name="after-input" />
|
|
43
|
-
<wt-icon-btn
|
|
44
|
-
:class="{ hidden: !value }"
|
|
45
|
-
:disabled="disabled"
|
|
46
|
-
class="wt-textarea__reset-icon-btn"
|
|
47
|
-
icon="close--filled"
|
|
48
|
-
size="sm"
|
|
49
|
-
@click="$emit('input', '')"
|
|
50
|
-
/>
|
|
51
|
-
</div>
|
|
52
40
|
</div>
|
|
53
41
|
<wt-input-info
|
|
54
42
|
v-if="isValidation"
|
|
@@ -59,134 +47,108 @@
|
|
|
59
47
|
</div>
|
|
60
48
|
</template>
|
|
61
49
|
|
|
62
|
-
<script>
|
|
63
|
-
import
|
|
64
|
-
import
|
|
50
|
+
<script setup lang="ts">
|
|
51
|
+
import type { TextareaProps } from 'primevue/textarea';
|
|
52
|
+
import { defineModel, onMounted, ref,useTemplateRef } from 'vue';
|
|
53
|
+
|
|
54
|
+
import { useValidation } from '../../mixins/validationMixin/useValidation';
|
|
55
|
+
|
|
56
|
+
interface Props extends /* @vue-ignore */ TextareaProps {
|
|
57
|
+
/**
|
|
58
|
+
* textarea label
|
|
59
|
+
*/
|
|
60
|
+
label?: string;
|
|
61
|
+
/**
|
|
62
|
+
* textarea placeholder
|
|
63
|
+
*/
|
|
64
|
+
placeholder?: string;
|
|
65
|
+
/**
|
|
66
|
+
* Native textarea readonly attribute
|
|
67
|
+
*/
|
|
68
|
+
readonly?: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Native textarea disabled attribute
|
|
71
|
+
*/
|
|
72
|
+
disabled?: boolean;
|
|
73
|
+
required?: boolean;
|
|
74
|
+
/**
|
|
75
|
+
* textarea name
|
|
76
|
+
*/
|
|
77
|
+
name?: string;
|
|
78
|
+
/**
|
|
79
|
+
* Number of rows in textarea
|
|
80
|
+
*/
|
|
81
|
+
rows?: number;
|
|
82
|
+
labelProps?: Record<string, any>;
|
|
83
|
+
autoresize?: boolean;
|
|
84
|
+
// validation rules
|
|
85
|
+
v?: any;
|
|
86
|
+
customValidators?: Array<{ name: string; text: string }>;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
const props = withDefaults(defineProps<Props>(), {
|
|
90
|
+
label: '',
|
|
91
|
+
placeholder: undefined,
|
|
92
|
+
readonly: false,
|
|
93
|
+
disabled: false,
|
|
94
|
+
required: false,
|
|
95
|
+
name: '',
|
|
96
|
+
rows: 1,
|
|
97
|
+
labelProps: undefined,
|
|
98
|
+
autoresize: false,
|
|
99
|
+
v: undefined,
|
|
100
|
+
customValidators: () => [],
|
|
101
|
+
});
|
|
65
102
|
|
|
66
|
-
|
|
67
|
-
name: 'WtTextarea',
|
|
68
|
-
components: {
|
|
69
|
-
WtLabel,
|
|
70
|
-
},
|
|
71
|
-
mixins: [validationMixin],
|
|
72
|
-
props: {
|
|
73
|
-
/**
|
|
74
|
-
* Current textarea value (`v-model`)
|
|
75
|
-
*/
|
|
76
|
-
value: {
|
|
77
|
-
type: String,
|
|
78
|
-
default: '',
|
|
79
|
-
},
|
|
80
|
-
/**
|
|
81
|
-
* textarea label
|
|
82
|
-
*/
|
|
83
|
-
label: {
|
|
84
|
-
type: String,
|
|
85
|
-
default: '',
|
|
86
|
-
},
|
|
87
|
-
/**
|
|
88
|
-
* textarea placeholder
|
|
89
|
-
*/
|
|
90
|
-
placeholder: {
|
|
91
|
-
type: String,
|
|
92
|
-
},
|
|
93
|
-
/**
|
|
94
|
-
* Native textarea disabled attribute
|
|
95
|
-
*/
|
|
96
|
-
readonly: {
|
|
97
|
-
type: Boolean,
|
|
98
|
-
default: false,
|
|
99
|
-
description: 'Native textarea readonly attribute',
|
|
100
|
-
},
|
|
101
|
-
/**
|
|
102
|
-
* Native textarea disabled attribute
|
|
103
|
-
*/
|
|
104
|
-
disabled: {
|
|
105
|
-
type: Boolean,
|
|
106
|
-
default: false,
|
|
107
|
-
description: 'Native textarea disabled attribute',
|
|
108
|
-
},
|
|
109
|
-
required: {
|
|
110
|
-
type: Boolean,
|
|
111
|
-
default: false,
|
|
112
|
-
},
|
|
113
|
-
/**
|
|
114
|
-
* textarea name
|
|
115
|
-
*/
|
|
116
|
-
name: {
|
|
117
|
-
type: String,
|
|
118
|
-
default: '',
|
|
119
|
-
},
|
|
120
|
-
/**
|
|
121
|
-
* Number of rows in textarea
|
|
122
|
-
*/
|
|
123
|
-
rows: {
|
|
124
|
-
type: Number,
|
|
125
|
-
default: 1,
|
|
126
|
-
description: 'Number of rows for textarea',
|
|
127
|
-
},
|
|
128
|
-
labelProps: {
|
|
129
|
-
type: Object,
|
|
130
|
-
description: 'Object with props, passed down to wt-label as props',
|
|
131
|
-
},
|
|
132
|
-
autoresize: {
|
|
133
|
-
type: Boolean,
|
|
134
|
-
default: false,
|
|
135
|
-
description: 'enables auto-grow for text-area',
|
|
136
|
-
},
|
|
137
|
-
},
|
|
138
|
-
emits: ['input', 'enter'],
|
|
139
|
-
computed: {
|
|
140
|
-
listeners() {
|
|
141
|
-
return {
|
|
142
|
-
...this.$listeners,
|
|
143
|
-
input: (event) => this.$emit('input', event.target.value),
|
|
144
|
-
keypress: (event) => this.handleKeypress(event),
|
|
145
|
-
};
|
|
146
|
-
},
|
|
147
|
-
},
|
|
148
|
-
mounted() {
|
|
149
|
-
this.updateInputPaddings();
|
|
150
|
-
},
|
|
151
|
-
updated() {
|
|
152
|
-
if (this.autoresize && !this.value) this.resetGrow();
|
|
153
|
-
},
|
|
103
|
+
const model = defineModel<string>();
|
|
154
104
|
|
|
155
|
-
|
|
156
|
-
handleKeypress(event) {
|
|
157
|
-
if (!this.autoresize) return;
|
|
105
|
+
const textareaWrapperRef = useTemplateRef('textarea-wrapper');
|
|
158
106
|
|
|
159
|
-
|
|
160
|
-
this.$emit('enter');
|
|
161
|
-
event.preventDefault();
|
|
162
|
-
}
|
|
163
|
-
},
|
|
107
|
+
const emit = defineEmits(['enter', 'paste', 'blur', 'keydown']);
|
|
164
108
|
|
|
165
|
-
|
|
166
|
-
if (!this.autoresize) return;
|
|
167
|
-
const inputEl = this.$refs['wt-textarea'];
|
|
168
|
-
const bordersSize = 2; // + 2px for height because of --rounded-action-border-size
|
|
109
|
+
const isScrollHidden = ref(false);
|
|
169
110
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
111
|
+
const { isValidation, invalid, validationText } = useValidation({
|
|
112
|
+
v: props.v,
|
|
113
|
+
customValidators: props.customValidators,
|
|
114
|
+
} as any);
|
|
173
115
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
},
|
|
116
|
+
const handleKeypress = (event: KeyboardEvent) => {
|
|
117
|
+
emit('keydown', event);
|
|
118
|
+
if (!props.autoresize) return;
|
|
178
119
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
120
|
+
if (event.key === 'Enter' && !event.shiftKey) {
|
|
121
|
+
emit('enter');
|
|
122
|
+
event.preventDefault();
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
const handleInput = () => {
|
|
127
|
+
checkTextareaHeight();
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* @author YeHlukhov
|
|
132
|
+
*
|
|
133
|
+
* Primevue by default shows scrollbar for autoresize textarea with overflow: auto,
|
|
134
|
+
* so this function checks textarea height and adds/removes wt-hidden-scrollbar class
|
|
135
|
+
*/
|
|
136
|
+
const checkTextareaHeight = async () => {
|
|
137
|
+
if (!props.autoresize) return;
|
|
138
|
+
|
|
139
|
+
const textareaEl = textareaWrapperRef.value?.$el;
|
|
140
|
+
|
|
141
|
+
// firstly textarea renders widths are equal, then clientHeight changes for 2px by primevue extra space
|
|
142
|
+
if (textareaEl?.scrollHeight === textareaEl?.clientHeight || textareaEl?.scrollHeight === (textareaEl?.clientHeight + 2)) {
|
|
143
|
+
isScrollHidden.value = true;
|
|
144
|
+
} else {
|
|
145
|
+
isScrollHidden.value = false;
|
|
146
|
+
}
|
|
189
147
|
};
|
|
148
|
+
|
|
149
|
+
onMounted(() => {
|
|
150
|
+
checkTextareaHeight()
|
|
151
|
+
})
|
|
190
152
|
</script>
|
|
191
153
|
|
|
192
154
|
<style lang="scss">
|
|
@@ -196,29 +158,8 @@ export default {
|
|
|
196
158
|
<style lang="scss" scoped>
|
|
197
159
|
@use '../../css/styleguide/styleguide' as *;
|
|
198
160
|
|
|
199
|
-
.wt-textarea {
|
|
200
|
-
cursor: text;
|
|
201
|
-
max-height: 100%;
|
|
202
|
-
|
|
203
|
-
&--disabled {
|
|
204
|
-
pointer-events: none;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
&--autoresize {
|
|
208
|
-
.wt-textarea__textarea {
|
|
209
|
-
transition: none;
|
|
210
|
-
min-height: auto;
|
|
211
|
-
max-height: 100%;
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
.wt-textarea__wrapper {
|
|
215
|
-
height: 100%;
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
|
|
220
161
|
.wt-textarea__wrapper {
|
|
221
|
-
|
|
162
|
+
height: 100%;
|
|
222
163
|
}
|
|
223
164
|
|
|
224
165
|
.wt-textarea__textarea {
|
|
@@ -226,42 +167,12 @@ export default {
|
|
|
226
167
|
@extend %wt-scrollbar;
|
|
227
168
|
@include wt-placeholder;
|
|
228
169
|
|
|
229
|
-
display: block;
|
|
230
|
-
transition: var(--transition);
|
|
231
170
|
box-sizing: border-box;
|
|
232
|
-
border: var(--input-border);
|
|
233
|
-
border-color: var(--wt-text-field-input-border-color);
|
|
234
|
-
border-radius: var(--border-radius);
|
|
235
|
-
background: transparent;
|
|
236
|
-
padding: var(--textarea-padding);
|
|
237
171
|
width: 100%;
|
|
238
|
-
min-height: var(--textarea-min-height);
|
|
239
172
|
resize: none;
|
|
240
|
-
color: var(--wt-text-field-text-color);
|
|
241
|
-
|
|
242
|
-
.wt-textarea--disabled & {
|
|
243
|
-
@include wt-placeholder('disabled');
|
|
244
|
-
|
|
245
|
-
border-color: var(--wt-text-field-input-border-disabled-color);
|
|
246
|
-
background: var(--wt-text-field-input-background-disabled-color);
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
.wt-textarea--invalid &,
|
|
250
|
-
.wt-textarea--invalid:hover & {
|
|
251
|
-
outline: none; // prevent outline overlapping false color
|
|
252
|
-
border-color: var(--wt-text-field-input-border-error-color);
|
|
253
|
-
color: var(--wt-text-field-error-text-color);
|
|
254
|
-
@include wt-placeholder('error');
|
|
255
|
-
}
|
|
256
173
|
}
|
|
257
174
|
|
|
258
|
-
.wt-
|
|
259
|
-
display:
|
|
260
|
-
position: absolute;
|
|
261
|
-
top: var(--input-icon-margin);
|
|
262
|
-
right: var(--input-icon-margin);
|
|
263
|
-
align-items: center;
|
|
264
|
-
gap: var(--input-after-wrapper-gap);
|
|
265
|
-
pointer-events: auto; // override --disabled p-events none
|
|
175
|
+
.wt-textarea--hidden-scrollbar textarea::-webkit-scrollbar {
|
|
176
|
+
display: none;
|
|
266
177
|
}
|
|
267
178
|
</style>
|
|
@@ -39,8 +39,7 @@
|
|
|
39
39
|
<div v-if="selected && option.id === selected?.id" class="wt-cc-pause-cause-popup-option__comment">
|
|
40
40
|
<wt-textarea
|
|
41
41
|
:label="$t('reusable.comment')"
|
|
42
|
-
:
|
|
43
|
-
@input="selected.statusComment = $event"
|
|
42
|
+
:v-model="selected.statusComment"
|
|
44
43
|
/>
|
|
45
44
|
</div>
|
|
46
45
|
</li>
|
|
@@ -21,10 +21,10 @@
|
|
|
21
21
|
|
|
22
22
|
<wt-textarea
|
|
23
23
|
v-if="mode === AuditFormMode.Fill"
|
|
24
|
-
:value="resultCommentModel"
|
|
24
|
+
:model-value="resultCommentModel"
|
|
25
25
|
class="call-evaluation-form__comment"
|
|
26
26
|
:label="$t('reusable.comment')"
|
|
27
|
-
@
|
|
27
|
+
@update:model-value="handleResultCommentUpdate"
|
|
28
28
|
/>
|
|
29
29
|
|
|
30
30
|
<audit-form-footer
|
|
@@ -13,10 +13,15 @@ export const createSettingsStore = ({ namespace = 'userinfo' } = {}) => {
|
|
|
13
13
|
if (storedTimezone) {
|
|
14
14
|
timezone.value = storedTimezone;
|
|
15
15
|
} else {
|
|
16
|
-
|
|
17
|
-
await UserSettingsAPI.getUserTimezone();
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
try {
|
|
17
|
+
const { timezone: userTimezone } = await UserSettingsAPI.getUserTimezone();
|
|
18
|
+
timezone.value = userTimezone;
|
|
19
|
+
localStorage.setItem(TIMEZONE_STORAGE_KEY, userTimezone);
|
|
20
|
+
} catch {
|
|
21
|
+
const systemTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
22
|
+
timezone.value = systemTimezone;
|
|
23
|
+
localStorage.setItem(TIMEZONE_STORAGE_KEY, systemTimezone);
|
|
24
|
+
}
|
|
20
25
|
}
|
|
21
26
|
};
|
|
22
27
|
|
|
@@ -14,7 +14,8 @@ import PInputText from 'primevue/inputtext';
|
|
|
14
14
|
import PMenubar from 'primevue/menubar';
|
|
15
15
|
import PPopover from 'primevue/popover';
|
|
16
16
|
import PRadio from 'primevue/radiobutton';
|
|
17
|
-
import PSlider from 'primevue/slider'
|
|
17
|
+
import PSlider from 'primevue/slider';
|
|
18
|
+
import PTextarea from 'primevue/textarea';
|
|
18
19
|
import PToggleSwitch from 'primevue/toggleswitch';
|
|
19
20
|
import PToolbar from 'primevue/toolbar';
|
|
20
21
|
import Tooltip from 'primevue/tooltip';
|
|
@@ -49,6 +50,7 @@ const initPrimevue = (app) => {
|
|
|
49
50
|
app.component('PColumn', changeComponentCompatMode(PColumn));
|
|
50
51
|
app.component('PRadio', changeComponentCompatMode(PRadio));
|
|
51
52
|
app.component('PChip', changeComponentCompatMode(PChip));
|
|
53
|
+
app.component('PTextarea', changeComponentCompatMode(PTextarea));
|
|
52
54
|
app.component('PToggleSwitch', changeComponentCompatMode(PToggleSwitch));
|
|
53
55
|
app.component('PBreadcrumb', changeComponentCompatMode(PBreadcrumb));
|
|
54
56
|
app.component('PSlider', changeComponentCompatMode(PSlider));
|
|
@@ -13,6 +13,7 @@ import radio from './radio/radio.js';
|
|
|
13
13
|
import slider from './slider/slider.js';
|
|
14
14
|
import switcher from './switcher/switcher.js';
|
|
15
15
|
import table from './table/table.js';
|
|
16
|
+
import textarea from './textarea/textarea.js';
|
|
16
17
|
import toolbar from './toolbar/toolbar.js';
|
|
17
18
|
import tooltip from './tooltip/tooltip.js';
|
|
18
19
|
|
|
@@ -23,6 +24,7 @@ const components = {
|
|
|
23
24
|
button,
|
|
24
25
|
chip,
|
|
25
26
|
checkbox,
|
|
27
|
+
textarea,
|
|
26
28
|
toggleswitch: switcher,
|
|
27
29
|
divider,
|
|
28
30
|
image,
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TextareaScheme } from '@webitel/styleguide/component-schemes';
|
|
2
|
+
|
|
3
|
+
const textarea = {
|
|
4
|
+
...TextareaScheme.sizes,
|
|
5
|
+
colorScheme: TextareaScheme.colorScheme,
|
|
6
|
+
|
|
7
|
+
css: ({ dt }) => `
|
|
8
|
+
.wt-textarea__textarea {
|
|
9
|
+
min-height: ${dt('textarea.minHeight')};
|
|
10
|
+
}
|
|
11
|
+
`,
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export default textarea;
|