@yourgoods/ui-smart 0.53.5 → 0.53.7
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/{ProfileEmailDialog-DBco4ykK.js → ProfileEmailDialog-fkiqQ4WV.js} +2 -2
- package/dist/{ProfilePasswordDialog-DL5TL8_D.js → ProfilePasswordDialog-DYK3bH4Y.js} +1 -1
- package/dist/{ProfilePhoneDialog-DmojluDM.js → ProfilePhoneDialog-C2iDBDNA.js} +2 -2
- package/dist/{index-DveIlB6k.js → index-CEiwFzrU.js} +33 -35
- package/dist/index.js +2 -2
- package/dist/{useRateLimitToast-CurQcd5U.js → useRateLimitToast-Bfna_sAM.js} +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent as oe, ref as T, reactive as Z, watch as Y, computed as b, toRefs as ce, createElementBlock as I, openBlock as y, createElementVNode as x, createCommentVNode as D, toDisplayString as _, createVNode as $, unref as u, isRef as ee, withCtx as G, createTextVNode as ie, Fragment as Ae, createBlock as H, resolveDynamicComponent as he, onMounted as Fe } from "vue";
|
|
2
|
-
import { _ as ve, c as ke, u as Re, a as ze, P as Me, b as We } from "./useRateLimitToast-
|
|
3
|
-
import { C as F, _ as He, B as qe, p as W, g as je } from "./index-
|
|
2
|
+
import { _ as ve, c as ke, u as Re, a as ze, P as Me, b as We } from "./useRateLimitToast-Bfna_sAM.js";
|
|
3
|
+
import { C as F, _ as He, B as qe, p as W, g as je } from "./index-CEiwFzrU.js";
|
|
4
4
|
import { PInput as J, IconMailMd as pe, PButton as ne, IconEyeMd as Ve, IconEyeClosedMd as be, PDialog as Ge, PTopBar as Ye, IconCrossMd as Je } from "@profeat/ui-kit";
|
|
5
5
|
const Ke = { class: "dialogDefaultContainerInsideContent" }, Qe = { class: "dialogDefaultContainerTextHint" }, Xe = {
|
|
6
6
|
key: 0,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent as ye, ref as a, reactive as _, computed as u, watch as Z, onMounted as Ce, createElementBlock as S, openBlock as g, Fragment as ge, createVNode as n, unref as o, withCtx as m, createCommentVNode as ee, createElementVNode as r, toDisplayString as V, createBlock as B, resolveDynamicComponent as $, createTextVNode as z } from "vue";
|
|
2
|
-
import { C as I, p as D, g as Ve } from "./index-
|
|
2
|
+
import { C as I, p as D, g as Ve } from "./index-CEiwFzrU.js";
|
|
3
3
|
import { PDialog as be, PInput as M, IconEyeMd as O, IconEyeClosedMd as U, PButton as F, PTopBar as Te, IconCrossMd as Ie, PTeleportContainer as xe } from "@profeat/ui-kit";
|
|
4
4
|
function ke(b) {
|
|
5
5
|
return { showPasswordRateLimitToast: (P) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createElementBlock as S, openBlock as v, createElementVNode as H, defineComponent as he, reactive as ve, watch as _, ref as O, toRefs as Ce, computed as I, createCommentVNode as B, createVNode as b, toDisplayString as G, createBlock as J, createTextVNode as Z, unref as r, isRef as le, withCtx as X, onMounted as We, Fragment as je } from "vue";
|
|
2
|
-
import { _ as we, c as Ne, a as He, u as Ge, P as Oe, b as Je } from "./useRateLimitToast-
|
|
2
|
+
import { _ as we, c as Ne, a as He, u as Ge, P as Oe, b as Je } from "./useRateLimitToast-Bfna_sAM.js";
|
|
3
3
|
import { IconTelegramSm as Pe, PInput as se, IconPhoneMd as Re, IconMailMd as Ke, PButton as ze, PDialog as Qe, PTopBar as Xe, IconCrossMd as Ye, PTeleportContainer as Ze } from "@profeat/ui-kit";
|
|
4
|
-
import { C as j, t as De, p as te, g as Ae } from "./index-
|
|
4
|
+
import { C as j, t as De, p as te, g as Ae } from "./index-CEiwFzrU.js";
|
|
5
5
|
const _e = {
|
|
6
6
|
xmlns: "http://www.w3.org/2000/svg",
|
|
7
7
|
width: "12",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ref as w, shallowRef as Oe, defineComponent as j, defineAsyncComponent as q, watch as me, createBlock as
|
|
1
|
+
import { ref as w, shallowRef as Oe, defineComponent as j, defineAsyncComponent as q, watch as me, createBlock as A, createCommentVNode as T, unref as g, openBlock as b, resolveDynamicComponent as Re, mergeProps as _e, computed as D, reactive as W, onMounted as Ge, createElementBlock as U, Fragment as pe, createVNode as h, createElementVNode as Y, withCtx as x, toDisplayString as $, createTextVNode as X, Teleport as ue, Transition as je, withDirectives as Je, vShow as qe } from "vue";
|
|
2
2
|
import We from "axios";
|
|
3
3
|
import { PInputFileUploader as Ye, PInput as M, IconFilledEditMd as _, PButton as de, PImageCropper as Xe, PToast as Ke, PTeleportContainer as ce, PToastContainer as Ze, IconPhoneMd as He, IconMailMd as Qe } from "@profeat/ui-kit";
|
|
4
4
|
function ea(l, i = 2) {
|
|
@@ -218,9 +218,9 @@ const sa = {
|
|
|
218
218
|
emits: ["clean-input-errors", "on-update-jwt", "update-phone-field", "update-email-field", "on-password-error", "on-toast"],
|
|
219
219
|
setup(l, { emit: i }) {
|
|
220
220
|
const t = i, n = w(!0), { currentDialog: p, dialogPayload: v, closeDialog: B } = ee(), d = {
|
|
221
|
-
email: q(() => import("./ProfileEmailDialog-
|
|
222
|
-
phone: q(() => import("./ProfilePhoneDialog-
|
|
223
|
-
password: q(() => import("./ProfilePasswordDialog-
|
|
221
|
+
email: q(() => import("./ProfileEmailDialog-fkiqQ4WV.js")),
|
|
222
|
+
phone: q(() => import("./ProfilePhoneDialog-C2iDBDNA.js")),
|
|
223
|
+
password: q(() => import("./ProfilePasswordDialog-DYK3bH4Y.js"))
|
|
224
224
|
}, c = ({ email: f }) => {
|
|
225
225
|
t("update-email-field", f);
|
|
226
226
|
}, s = ({ phone: f }) => {
|
|
@@ -228,7 +228,7 @@ const sa = {
|
|
|
228
228
|
};
|
|
229
229
|
return me(p, (f) => {
|
|
230
230
|
n.value = !!f;
|
|
231
|
-
}), (f, u) => g(p) ? (b(),
|
|
231
|
+
}), (f, u) => g(p) ? (b(), A(Re(d[g(p)]), _e({
|
|
232
232
|
key: 0,
|
|
233
233
|
modelValue: n.value,
|
|
234
234
|
"onUpdate:modelValue": u[0] || (u[0] = (m) => n.value = m),
|
|
@@ -286,7 +286,7 @@ const sa = {
|
|
|
286
286
|
// 10 MB
|
|
287
287
|
imageBinary: null,
|
|
288
288
|
imageContent: ""
|
|
289
|
-
}), N = w(""), C = w(!1), I = w(!0),
|
|
289
|
+
}), N = w(""), C = w(!1), I = w(!0), F = w(!0), V = w(void 0), ae = w(""), ge = D(() => oe(d.firstName, s.firstName)), ve = D(() => oe(d.lastName, s.lastName)), he = D(() => s.email && !u.value.trim() ? "Введите e-mail" : ""), ye = D(() => s.phone && !m.value.trim() ? "Введите номер телефона" : ""), S = (e) => t.fields.some((a) => a.key === e), te = (e) => e && e.trim() ? "edit" : "bind", J = () => setTimeout(() => {
|
|
290
290
|
var e;
|
|
291
291
|
return (e = document.activeElement) == null ? void 0 : e.blur();
|
|
292
292
|
}, 0), we = D(() => !!(u.value && u.value.trim() !== "")), be = D(() => r.imageContent ? v("Загрузить другое фото") : v("Загрузить фото")), oe = (e, a) => {
|
|
@@ -294,7 +294,7 @@ const sa = {
|
|
|
294
294
|
const o = e.trim();
|
|
295
295
|
return o ? o.length < 2 ? "Поле должно содержать минимум 2 символа" : "" : "Введите значение";
|
|
296
296
|
}, Ee = (e) => B("email", { mode: e ? "edit" : "bind", initialEmail: e }), Pe = () => {
|
|
297
|
-
J(), s.email = !1,
|
|
297
|
+
J(), s.email = !1, F.value = !1, n("open-email-dialog", u.value, te(u.value)), Ee(u.value);
|
|
298
298
|
}, Ne = () => {
|
|
299
299
|
J(), s.phone = !1, I.value = !1, n("open-phone-dialog", m.value, te(m.value));
|
|
300
300
|
}, Ce = async (e, a, o) => {
|
|
@@ -306,9 +306,9 @@ const sa = {
|
|
|
306
306
|
}, Ue = (e, a) => {
|
|
307
307
|
C.value = !0, n("on-password-error", e, a);
|
|
308
308
|
}, Be = () => {
|
|
309
|
-
I.value = !1,
|
|
309
|
+
I.value = !1, F.value = !1;
|
|
310
310
|
}, z = (e) => {
|
|
311
|
-
C.value = !0,
|
|
311
|
+
C.value = !0, V.value = e.color ?? "", ae.value = e.text ?? "";
|
|
312
312
|
}, L = (e) => {
|
|
313
313
|
if (s[e] = !0, e === "firstName" || e === "lastName") {
|
|
314
314
|
const a = d[e];
|
|
@@ -335,15 +335,15 @@ const sa = {
|
|
|
335
335
|
} catch (e) {
|
|
336
336
|
return console.error("Ошибка при удалении аватара:", e), !1;
|
|
337
337
|
}
|
|
338
|
-
},
|
|
338
|
+
}, Ae = () => {
|
|
339
339
|
N.value = "Файл не подходит. Пожалуйста, загрузите PNG или JPEG размером до 10 МБ", r.value = null, r.imageBinary = null, r.imageContent = "", y.value = !1;
|
|
340
340
|
}, re = async (e, a, o = "image/png") => {
|
|
341
341
|
if (!e) return null;
|
|
342
342
|
const k = await (await fetch(e)).blob();
|
|
343
343
|
return new File([k], a, { type: o });
|
|
344
|
-
},
|
|
344
|
+
}, Fe = () => {
|
|
345
345
|
r.value = null, r.imageBinary = null, r.imageContent = "", y.value = !1;
|
|
346
|
-
},
|
|
346
|
+
}, Ve = async (e) => {
|
|
347
347
|
y.value = !1;
|
|
348
348
|
const a = r.imageContent;
|
|
349
349
|
if (r.imageContent = e, !r.imageBinary) return;
|
|
@@ -469,7 +469,7 @@ const sa = {
|
|
|
469
469
|
onOnToast: z
|
|
470
470
|
}, null, 8, ["language", "provider", "disable-add-phone"]),
|
|
471
471
|
Y("div", ua, [
|
|
472
|
-
S("avatar") ? (b(),
|
|
472
|
+
S("avatar") ? (b(), A(g(Ye), {
|
|
473
473
|
key: 0,
|
|
474
474
|
modelValue: r.value,
|
|
475
475
|
"onUpdate:modelValue": [
|
|
@@ -484,7 +484,7 @@ const sa = {
|
|
|
484
484
|
"upload-limit": r.uploadLimit,
|
|
485
485
|
accept: "image/jpeg, image/png",
|
|
486
486
|
onDelete: Ie,
|
|
487
|
-
"onChange:error":
|
|
487
|
+
"onChange:error": Ae
|
|
488
488
|
}, {
|
|
489
489
|
afterLoadLabel: x(() => [
|
|
490
490
|
X($(be.value), 1)
|
|
@@ -528,7 +528,7 @@ const sa = {
|
|
|
528
528
|
type: "email",
|
|
529
529
|
readonly: "",
|
|
530
530
|
style: { cursor: "pointer" },
|
|
531
|
-
error: he.value &&
|
|
531
|
+
error: he.value && F.value,
|
|
532
532
|
onBlur: a[9] || (a[9] = (o) => s.email = !0),
|
|
533
533
|
onInput: a[10] || (a[10] = (o) => L("email")),
|
|
534
534
|
onClick: Pe
|
|
@@ -553,7 +553,7 @@ const sa = {
|
|
|
553
553
|
h(g(_), { class: "icon-locked" })
|
|
554
554
|
])) : T("", !0),
|
|
555
555
|
Y("div", va, [
|
|
556
|
-
we.value ? (b(),
|
|
556
|
+
we.value ? (b(), A(g(de), {
|
|
557
557
|
key: 0,
|
|
558
558
|
color: "secondary",
|
|
559
559
|
onClick: Le
|
|
@@ -574,7 +574,7 @@ const sa = {
|
|
|
574
574
|
}, 8, ["disabled"])
|
|
575
575
|
])
|
|
576
576
|
]),
|
|
577
|
-
y.value ? (b(),
|
|
577
|
+
y.value ? (b(), A(ue, {
|
|
578
578
|
key: 0,
|
|
579
579
|
to: "body"
|
|
580
580
|
}, [
|
|
@@ -582,19 +582,19 @@ const sa = {
|
|
|
582
582
|
h(g(Xe), {
|
|
583
583
|
"circle-mode": !0,
|
|
584
584
|
"model-value": r.imageContent,
|
|
585
|
-
onClose:
|
|
586
|
-
onSave: a[14] || (a[14] = (o) =>
|
|
585
|
+
onClose: Fe,
|
|
586
|
+
onSave: a[14] || (a[14] = (o) => Ve(o)),
|
|
587
587
|
"onUpdate:modelValue": a[15] || (a[15] = (o) => Se(o))
|
|
588
588
|
}, null, 8, ["model-value"])
|
|
589
589
|
])) : T("", !0)
|
|
590
590
|
])) : T("", !0),
|
|
591
|
-
(b(),
|
|
591
|
+
(b(), A(ue, { to: "#toast-root" }, [
|
|
592
592
|
Y("div", ya, [
|
|
593
593
|
h(je, { name: "list" }, {
|
|
594
594
|
default: x(() => [
|
|
595
595
|
Je(h(g(Ke), {
|
|
596
596
|
class: "toast",
|
|
597
|
-
color:
|
|
597
|
+
color: V.value,
|
|
598
598
|
text: ae.value,
|
|
599
599
|
onClose: a[16] || (a[16] = (o) => C.value = !1)
|
|
600
600
|
}, null, 8, ["color", "text"]), [
|
|
@@ -683,7 +683,7 @@ function Da(l, i) {
|
|
|
683
683
|
const t = l.trim();
|
|
684
684
|
return (n = i.phone) != null && n.enabled && (t.startsWith("+") || /^\d+$/.test(t)) ? "phone" : (p = i.email) != null && p.enabled ? "email" : null;
|
|
685
685
|
}
|
|
686
|
-
const Ia = { class: "smart-input" },
|
|
686
|
+
const Ia = { class: "smart-input" }, Aa = /* @__PURE__ */ j({
|
|
687
687
|
__name: "index",
|
|
688
688
|
props: {
|
|
689
689
|
modelValue: {},
|
|
@@ -698,7 +698,7 @@ const Ia = { class: "smart-input" }, Va = /* @__PURE__ */ j({
|
|
|
698
698
|
emits: ["update:modelValue", "validity-change", "type-change"],
|
|
699
699
|
setup(l, { emit: i }) {
|
|
700
700
|
const t = l, n = i, p = D(() => {
|
|
701
|
-
var s, f, u, m, y, r, N, C, I,
|
|
701
|
+
var s, f, u, m, y, r, N, C, I, F, V;
|
|
702
702
|
return {
|
|
703
703
|
mode: ((s = t.config) == null ? void 0 : s.mode) ?? "auto",
|
|
704
704
|
phone: {
|
|
@@ -708,7 +708,7 @@ const Ia = { class: "smart-input" }, Va = /* @__PURE__ */ j({
|
|
|
708
708
|
autoPlus: ((I = (C = t.config) == null ? void 0 : C.phone) == null ? void 0 : I.autoPlus) ?? !0
|
|
709
709
|
},
|
|
710
710
|
email: {
|
|
711
|
-
enabled: ((
|
|
711
|
+
enabled: ((V = (F = t.config) == null ? void 0 : F.email) == null ? void 0 : V.enabled) ?? !0
|
|
712
712
|
}
|
|
713
713
|
};
|
|
714
714
|
}), v = w(t.modelValue ?? ""), B = w(null), d = w("");
|
|
@@ -728,7 +728,7 @@ const Ia = { class: "smart-input" }, Va = /* @__PURE__ */ j({
|
|
|
728
728
|
t.locale
|
|
729
729
|
);
|
|
730
730
|
if (Ca(C).length > p.value.phone.maxDigits) {
|
|
731
|
-
n("
|
|
731
|
+
n("validity-change", !1);
|
|
732
732
|
return;
|
|
733
733
|
}
|
|
734
734
|
Ta(s) && (d.value = ((y = t.errorMessages) == null ? void 0 : y.invalidPhoneChars) ?? "Допустимы только цифры и знак +", m = !1), ka(
|
|
@@ -741,28 +741,26 @@ const Ia = { class: "smart-input" }, Va = /* @__PURE__ */ j({
|
|
|
741
741
|
}
|
|
742
742
|
return (s, f) => (b(), U("div", Ia, [
|
|
743
743
|
h(g(M), {
|
|
744
|
-
|
|
745
|
-
"onUpdate:modelValue": [
|
|
746
|
-
f[0] || (f[0] = (u) => v.value = u),
|
|
747
|
-
c
|
|
748
|
-
],
|
|
744
|
+
"model-value": v.value,
|
|
749
745
|
readonly: s.disabled,
|
|
750
746
|
error: d.value,
|
|
751
747
|
type: s.type ?? "text",
|
|
752
748
|
size: s.size ?? "large",
|
|
753
|
-
label: s.label ?? "Email или телефон"
|
|
754
|
-
|
|
755
|
-
|
|
749
|
+
label: s.label ?? "Email или телефон",
|
|
750
|
+
onBeforeInput: f[0] || (f[0] = (u) => console.log("beforeinput", u)),
|
|
751
|
+
"onUpdate:modelValue": c
|
|
752
|
+
}, null, 8, ["model-value", "readonly", "error", "type", "size", "label"]),
|
|
753
|
+
B.value === "phone" ? (b(), A(g(He), {
|
|
756
754
|
key: 0,
|
|
757
755
|
class: "smart-input__icon"
|
|
758
756
|
})) : T("", !0),
|
|
759
|
-
B.value === "email" ? (b(),
|
|
757
|
+
B.value === "email" ? (b(), A(g(Qe), {
|
|
760
758
|
key: 1,
|
|
761
759
|
class: "smart-input__icon"
|
|
762
760
|
})) : T("", !0)
|
|
763
761
|
]));
|
|
764
762
|
}
|
|
765
|
-
}), za = /* @__PURE__ */ fe(
|
|
763
|
+
}), za = /* @__PURE__ */ fe(Aa, [["__scopeId", "data-v-01dc0d3f"]]);
|
|
766
764
|
export {
|
|
767
765
|
$a as B,
|
|
768
766
|
xa as C,
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
(function(){"use strict";try{if(typeof document<"u"){var t=document.createElement("style");t.appendChild(document.createTextNode(".avatar-input[data-v-a56fcdbb] .p-input-file .overlay{visibility:hidden}.avatar-input[data-v-a56fcdbb] .p-input-file:hover .overlay{visibility:visible}.smart-input[data-v-
|
|
2
|
-
import { a as o, i as r } from "./index-
|
|
1
|
+
(function(){"use strict";try{if(typeof document<"u"){var t=document.createElement("style");t.appendChild(document.createTextNode(".avatar-input[data-v-a56fcdbb] .p-input-file .overlay{visibility:hidden}.avatar-input[data-v-a56fcdbb] .p-input-file:hover .overlay{visibility:visible}.smart-input[data-v-01dc0d3f]{position:relative;width:100%}.smart-input__icon[data-v-01dc0d3f]{position:absolute;top:16px;right:16px;pointer-events:none;opacity:.5}.icon-locked{pointer-events:auto;position:absolute;right:1rem;top:1rem;color:#b6c7d6}.input-wrapper{position:relative;width:100%}.dialogTitle{z-index:10;width:100%;font-size:16px;font-weight:600;line-height:24px;text-align:center;color:#2b3238}.dialogDefaultContainer{display:flex;align-items:flex-start;flex-direction:column;width:100%;gap:32px;margin-top:16px;padding:10px 16px}.dialogDefaultContainerTextHint{font-weight:400;font-size:14px;line-height:20px;text-align:center;color:#1b1b1b}.dialogDefaultContainerRateLimitText{font-weight:600;font-size:14px;line-height:20px;color:#d0dbe4}.dialogDefaultContainerInsideContent{width:100%;display:flex;flex-direction:column;gap:24px}.dialogDefaultContainerRateLimitTextActive{color:#1c7ef1;cursor:pointer}.dialogDefaultContainerSendCodeBySmsText{color:#1c7ef1;cursor:pointer;font-size:14px;font-weight:600;display:flex;align-items:center;text-align:center}.chip{display:flex;align-items:center;justify-content:center;flex-direction:row;gap:4px;height:24px;font-size:12px;font-weight:600;color:#1b1b1b;padding:4px;line-height:16px;background-color:#b6d7ff4d;border-radius:4px;text-align:center;margin-left:5px}.cross{cursor:pointer;text-align:end}.finalLimitWrapper{display:flex;flex-direction:column;align-items:center;padding:12px 0;gap:12px;width:100%;min-height:94px;background:#e4606026;border-radius:8px}.finalLimitText{text-align:center;max-width:100%;word-wrap:break-word;font-family:Inter,sans-serif;font-size:14px;line-height:20px;color:#5d7285}.finalLimitLink{font-family:Inter,sans-serif;font-weight:600;font-size:14px;line-height:20px;color:#1c7ef1;text-align:center;cursor:pointer;text-decoration:none}.finalLimitLink:hover{text-decoration:underline}.toastWrapper{position:fixed;bottom:1rem;right:1rem;z-index:9999}.toast{width:100%}.base-container{margin-top:1.5rem;display:flex;flex-direction:column;gap:1.25rem;width:490px;height:428px}.icon-disabled{pointer-events:none;position:absolute;right:1rem;top:1rem;color:#b6c7d6}.centered-overlay{position:absolute;left:50%;top:50%;z-index:1000;height:100%;width:100%;transform:translate(-50%,-50%)}.buttons-container{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-start}.buttons-container PButton{flex:1 1 100%}._loaderOverlay_cpu73_1[data-v-9e697525]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:center;background:#ffffffb3;border-radius:16px;z-index:99}")),document.head.appendChild(t)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
|
|
2
|
+
import { a as o, i as r } from "./index-CEiwFzrU.js";
|
|
3
3
|
export {
|
|
4
4
|
o as PEditUserContact,
|
|
5
5
|
r as PEmailOrPhoneInput
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ref as n, defineComponent as L, createElementBlock as p, openBlock as v, normalizeClass as c, createVNode as w, unref as _, computed as T, renderSlot as d, createCommentVNode as h, createElementVNode as i, toDisplayString as y, createTextVNode as f } from "vue";
|
|
2
2
|
import { PLoader as $ } from "@profeat/ui-kit";
|
|
3
|
-
import { _ as b, g as C, p as R } from "./index-
|
|
3
|
+
import { _ as b, g as C, p as R } from "./index-CEiwFzrU.js";
|
|
4
4
|
function g(s) {
|
|
5
5
|
const e = Math.floor(s / 60), a = s % 60;
|
|
6
6
|
return `${String(e).padStart(2, "0")}:${String(a).padStart(2, "0")}`;
|