@44-audio/components 0.1.0-dev.1 → 0.1.0-dev.13
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/AudioPlayer-DW6UJXCt.mjs +2632 -0
- package/dist/player.es.js +126 -118
- package/dist/recorder.es.js +506 -525
- package/package.json +1 -1
- package/dist/AudioPlayer-bUgQMAfs.mjs +0 -2595
package/dist/recorder.es.js
CHANGED
|
@@ -1,375 +1,367 @@
|
|
|
1
|
-
import {
|
|
2
|
-
function
|
|
3
|
-
|
|
4
|
-
var
|
|
5
|
-
|
|
1
|
+
import { B as Pr, C as Or, D as Ur, E as Br, F as Hr, G as jr, H as Gr, I as Vr, J as Wr, T as Jr, K as Er, L as Kr, M as Xr, N as Z, O as Qr, P as Yr, d as Lr, c as lr, p as fr, a as vr, b as B, h as P, Q as Sr, w as Tr, f as T, k as C, m as O, i as F, x as Zr, t as G, e as m, g as ur, s as b, l as t, j as H, r as $, z as re, R as ee, S as te, U as tr, u as nr, V as cr, o as _r, W as oe, n as X, q as dr, v as rr, X as ae, Y as xr, A as se, Z as ie } from "./AudioPlayer-DW6UJXCt.mjs";
|
|
2
|
+
function ne(o, r, a, s, d) {
|
|
3
|
+
Pr && Or();
|
|
4
|
+
var e = r.$$slots?.[a], v = !1;
|
|
5
|
+
e === !0 && (e = r.children, v = !0), e === void 0 || e(o, v ? () => s : s);
|
|
6
6
|
}
|
|
7
|
-
const
|
|
7
|
+
const ce = () => performance.now(), U = {
|
|
8
8
|
// don't access requestAnimationFrame eagerly outside method
|
|
9
9
|
// this allows basic testing of user code without JSDOM
|
|
10
10
|
// bunder will eval and remove ternary when the user's app is built
|
|
11
11
|
tick: (
|
|
12
12
|
/** @param {any} _ */
|
|
13
|
-
(
|
|
13
|
+
(o) => requestAnimationFrame(o)
|
|
14
14
|
),
|
|
15
|
-
now: () =>
|
|
15
|
+
now: () => ce(),
|
|
16
16
|
tasks: /* @__PURE__ */ new Set()
|
|
17
17
|
};
|
|
18
|
-
function
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
r.c(
|
|
22
|
-
}),
|
|
18
|
+
function Cr() {
|
|
19
|
+
const o = U.now();
|
|
20
|
+
U.tasks.forEach((r) => {
|
|
21
|
+
r.c(o) || (U.tasks.delete(r), r.f());
|
|
22
|
+
}), U.tasks.size !== 0 && U.tick(Cr);
|
|
23
23
|
}
|
|
24
|
-
function
|
|
24
|
+
function de(o) {
|
|
25
25
|
let r;
|
|
26
|
-
return
|
|
27
|
-
promise: new Promise((
|
|
28
|
-
|
|
26
|
+
return U.tasks.size === 0 && U.tick(Cr), {
|
|
27
|
+
promise: new Promise((a) => {
|
|
28
|
+
U.tasks.add(r = { c: o, f: a });
|
|
29
29
|
}),
|
|
30
30
|
abort() {
|
|
31
|
-
|
|
31
|
+
U.tasks.delete(r);
|
|
32
32
|
}
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
|
-
function
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
function ir(o, r) {
|
|
36
|
+
Er(() => {
|
|
37
|
+
o.dispatchEvent(new CustomEvent(r));
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
|
-
function
|
|
41
|
-
if (
|
|
42
|
-
if (
|
|
43
|
-
if (
|
|
44
|
-
const r =
|
|
40
|
+
function le(o) {
|
|
41
|
+
if (o === "float") return "cssFloat";
|
|
42
|
+
if (o === "offset") return "cssOffset";
|
|
43
|
+
if (o.startsWith("--")) return o;
|
|
44
|
+
const r = o.split("-");
|
|
45
45
|
return r.length === 1 ? r[0] : r[0] + r.slice(1).map(
|
|
46
46
|
/** @param {any} word */
|
|
47
|
-
(
|
|
47
|
+
(a) => a[0].toUpperCase() + a.slice(1)
|
|
48
48
|
).join("");
|
|
49
49
|
}
|
|
50
|
-
function
|
|
51
|
-
const r = {},
|
|
52
|
-
for (const s of
|
|
53
|
-
const [
|
|
54
|
-
if (!
|
|
55
|
-
const
|
|
56
|
-
r[
|
|
50
|
+
function kr(o) {
|
|
51
|
+
const r = {}, a = o.split(";");
|
|
52
|
+
for (const s of a) {
|
|
53
|
+
const [d, e] = s.split(":");
|
|
54
|
+
if (!d || e === void 0) break;
|
|
55
|
+
const v = le(d.trim());
|
|
56
|
+
r[v] = e.trim();
|
|
57
57
|
}
|
|
58
58
|
return r;
|
|
59
59
|
}
|
|
60
|
-
const
|
|
61
|
-
function
|
|
62
|
-
var
|
|
63
|
-
function
|
|
64
|
-
return
|
|
60
|
+
const fe = (o) => o;
|
|
61
|
+
function br(o, r, a, s) {
|
|
62
|
+
var d = (o & Qr) !== 0, e = (o & Yr) !== 0, v = d && e, g = (o & Jr) !== 0, D = v ? "both" : d ? "in" : "out", u, _ = r.inert, w = r.style.overflow, y, q;
|
|
63
|
+
function I() {
|
|
64
|
+
return Er(() => u ??= a()(r, s?.() ?? /** @type {P} */
|
|
65
65
|
{}, {
|
|
66
|
-
direction:
|
|
66
|
+
direction: D
|
|
67
67
|
}));
|
|
68
68
|
}
|
|
69
|
-
var
|
|
70
|
-
is_global:
|
|
69
|
+
var n = {
|
|
70
|
+
is_global: g,
|
|
71
71
|
in() {
|
|
72
|
-
if (r.inert = _, !
|
|
73
|
-
|
|
72
|
+
if (r.inert = _, !d) {
|
|
73
|
+
q?.abort(), q?.reset?.();
|
|
74
74
|
return;
|
|
75
75
|
}
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
e || y?.abort(), ir(r, "introstart"), y = hr(r, I(), q, 1, () => {
|
|
77
|
+
ir(r, "introend"), y?.abort(), y = u = void 0, r.style.overflow = w;
|
|
78
78
|
});
|
|
79
79
|
},
|
|
80
|
-
out(
|
|
81
|
-
if (!
|
|
82
|
-
|
|
80
|
+
out(x) {
|
|
81
|
+
if (!e) {
|
|
82
|
+
x?.(), u = void 0;
|
|
83
83
|
return;
|
|
84
84
|
}
|
|
85
|
-
r.inert = !0,
|
|
86
|
-
|
|
85
|
+
r.inert = !0, ir(r, "outrostart"), q = hr(r, I(), y, 0, () => {
|
|
86
|
+
ir(r, "outroend"), x?.();
|
|
87
87
|
});
|
|
88
88
|
},
|
|
89
89
|
stop: () => {
|
|
90
|
-
|
|
90
|
+
y?.abort(), q?.abort();
|
|
91
91
|
}
|
|
92
|
-
},
|
|
92
|
+
}, f = (
|
|
93
93
|
/** @type {Effect} */
|
|
94
|
-
|
|
94
|
+
Ur
|
|
95
95
|
);
|
|
96
|
-
if ((
|
|
97
|
-
var
|
|
98
|
-
if (!
|
|
99
|
-
for (var
|
|
96
|
+
if ((f.transitions ??= []).push(n), d && Br) {
|
|
97
|
+
var l = g;
|
|
98
|
+
if (!l) {
|
|
99
|
+
for (var p = (
|
|
100
100
|
/** @type {Effect | null} */
|
|
101
|
-
|
|
102
|
-
);
|
|
103
|
-
for (; (
|
|
101
|
+
f.parent
|
|
102
|
+
); p && (p.f & Hr) !== 0; )
|
|
103
|
+
for (; (p = p.parent) && (p.f & jr) === 0; )
|
|
104
104
|
;
|
|
105
|
-
|
|
105
|
+
l = !p || (p.f & Gr) !== 0;
|
|
106
106
|
}
|
|
107
|
-
|
|
108
|
-
|
|
107
|
+
l && Vr(() => {
|
|
108
|
+
Wr(() => n.in());
|
|
109
109
|
});
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
|
-
function
|
|
113
|
-
var
|
|
114
|
-
if (
|
|
115
|
-
var
|
|
116
|
-
return
|
|
117
|
-
if (!
|
|
118
|
-
var
|
|
119
|
-
|
|
112
|
+
function hr(o, r, a, s, d) {
|
|
113
|
+
var e = s === 1;
|
|
114
|
+
if (Kr(r)) {
|
|
115
|
+
var v, g = !1;
|
|
116
|
+
return Xr(() => {
|
|
117
|
+
if (!g) {
|
|
118
|
+
var f = r({ direction: e ? "in" : "out" });
|
|
119
|
+
v = hr(o, f, a, s, d);
|
|
120
120
|
}
|
|
121
121
|
}), {
|
|
122
122
|
abort: () => {
|
|
123
|
-
|
|
123
|
+
g = !0, v?.abort();
|
|
124
124
|
},
|
|
125
|
-
deactivate: () =>
|
|
126
|
-
reset: () =>
|
|
127
|
-
t: () =>
|
|
125
|
+
deactivate: () => v.deactivate(),
|
|
126
|
+
reset: () => v.reset(),
|
|
127
|
+
t: () => v.t()
|
|
128
128
|
};
|
|
129
129
|
}
|
|
130
|
-
if (
|
|
131
|
-
return
|
|
132
|
-
abort:
|
|
133
|
-
deactivate:
|
|
134
|
-
reset:
|
|
130
|
+
if (a?.deactivate(), !r?.duration)
|
|
131
|
+
return d(), {
|
|
132
|
+
abort: Z,
|
|
133
|
+
deactivate: Z,
|
|
134
|
+
reset: Z,
|
|
135
135
|
t: () => s
|
|
136
136
|
};
|
|
137
|
-
const { delay:
|
|
138
|
-
var
|
|
139
|
-
if (
|
|
140
|
-
var
|
|
141
|
-
|
|
137
|
+
const { delay: D = 0, css: u, tick: _, easing: w = fe } = r;
|
|
138
|
+
var y = [];
|
|
139
|
+
if (e && a === void 0 && (_ && _(0, 1), u)) {
|
|
140
|
+
var q = kr(u(0, 1));
|
|
141
|
+
y.push(q, q);
|
|
142
142
|
}
|
|
143
|
-
var
|
|
144
|
-
return
|
|
145
|
-
|
|
146
|
-
var
|
|
147
|
-
|
|
148
|
-
var
|
|
143
|
+
var I = () => 1 - s, n = o.animate(y, { duration: D, fill: "forwards" });
|
|
144
|
+
return n.onfinish = () => {
|
|
145
|
+
n.cancel();
|
|
146
|
+
var f = a?.t() ?? 1 - s;
|
|
147
|
+
a?.abort();
|
|
148
|
+
var l = s - f, p = (
|
|
149
149
|
/** @type {number} */
|
|
150
|
-
r.duration * Math.abs(
|
|
151
|
-
),
|
|
152
|
-
if (
|
|
153
|
-
var
|
|
154
|
-
if (
|
|
155
|
-
for (var
|
|
156
|
-
var
|
|
157
|
-
|
|
150
|
+
r.duration * Math.abs(l)
|
|
151
|
+
), x = [];
|
|
152
|
+
if (p > 0) {
|
|
153
|
+
var A = !1;
|
|
154
|
+
if (u)
|
|
155
|
+
for (var E = Math.ceil(p / 16.666666666666668), h = 0; h <= E; h += 1) {
|
|
156
|
+
var k = f + l * w(h / E), i = kr(u(k, 1 - k));
|
|
157
|
+
x.push(i), A ||= i.overflow === "hidden";
|
|
158
158
|
}
|
|
159
|
-
|
|
160
|
-
var
|
|
159
|
+
A && (o.style.overflow = "hidden"), I = () => {
|
|
160
|
+
var c = (
|
|
161
161
|
/** @type {number} */
|
|
162
162
|
/** @type {globalThis.Animation} */
|
|
163
|
-
|
|
163
|
+
n.currentTime
|
|
164
164
|
);
|
|
165
|
-
return
|
|
166
|
-
}, _ &&
|
|
167
|
-
if (
|
|
168
|
-
var
|
|
169
|
-
return _(
|
|
165
|
+
return f + l * w(c / p);
|
|
166
|
+
}, _ && de(() => {
|
|
167
|
+
if (n.playState !== "running") return !1;
|
|
168
|
+
var c = I();
|
|
169
|
+
return _(c, 1 - c), !0;
|
|
170
170
|
});
|
|
171
171
|
}
|
|
172
|
-
|
|
173
|
-
|
|
172
|
+
n = o.animate(x, { duration: p, fill: "forwards" }), n.onfinish = () => {
|
|
173
|
+
I = () => s, _?.(s, 1 - s), d();
|
|
174
174
|
};
|
|
175
175
|
}, {
|
|
176
176
|
abort: () => {
|
|
177
|
-
|
|
177
|
+
n && (n.cancel(), n.effect = null, n.onfinish = Z);
|
|
178
178
|
},
|
|
179
179
|
deactivate: () => {
|
|
180
|
-
|
|
180
|
+
d = Z;
|
|
181
181
|
},
|
|
182
182
|
reset: () => {
|
|
183
183
|
s === 0 && _?.(1, 0);
|
|
184
184
|
},
|
|
185
|
-
t: () =>
|
|
185
|
+
t: () => I()
|
|
186
186
|
};
|
|
187
187
|
}
|
|
188
|
-
const
|
|
189
|
-
function
|
|
190
|
-
const r =
|
|
188
|
+
const ve = (o) => o;
|
|
189
|
+
function ue(o) {
|
|
190
|
+
const r = o - 1;
|
|
191
191
|
return r * r * r + 1;
|
|
192
192
|
}
|
|
193
|
-
function
|
|
194
|
-
const r = typeof
|
|
193
|
+
function qr(o) {
|
|
194
|
+
const r = typeof o == "string" && o.match(/^\s*(-?[\d.]+)([^\s]*)\s*$/);
|
|
195
195
|
return r ? [parseFloat(r[1]), r[2] || "px"] : [
|
|
196
196
|
/** @type {number} */
|
|
197
|
-
|
|
197
|
+
o,
|
|
198
198
|
"px"
|
|
199
199
|
];
|
|
200
200
|
}
|
|
201
|
-
function
|
|
202
|
-
const
|
|
201
|
+
function pe(o, { delay: r = 0, duration: a = 400, easing: s = ve } = {}) {
|
|
202
|
+
const d = +getComputedStyle(o).opacity;
|
|
203
203
|
return {
|
|
204
204
|
delay: r,
|
|
205
|
-
duration:
|
|
205
|
+
duration: a,
|
|
206
206
|
easing: s,
|
|
207
|
-
css: (
|
|
207
|
+
css: (e) => `opacity: ${e * d}`
|
|
208
208
|
};
|
|
209
209
|
}
|
|
210
|
-
function
|
|
211
|
-
const
|
|
210
|
+
function Ir(o, { delay: r = 0, duration: a = 400, easing: s = ue, x: d = 0, y: e = 0, opacity: v = 0 } = {}) {
|
|
211
|
+
const g = getComputedStyle(o), D = +g.opacity, u = g.transform === "none" ? "" : g.transform, _ = D * (1 - v), [w, y] = qr(d), [q, I] = qr(e);
|
|
212
212
|
return {
|
|
213
213
|
delay: r,
|
|
214
|
-
duration:
|
|
214
|
+
duration: a,
|
|
215
215
|
easing: s,
|
|
216
|
-
css: (
|
|
217
|
-
transform: ${
|
|
218
|
-
opacity: ${
|
|
216
|
+
css: (n, f) => `
|
|
217
|
+
transform: ${u} translate(${(1 - n) * w}${y}, ${(1 - n) * q}${I});
|
|
218
|
+
opacity: ${D - _ * f}`
|
|
219
219
|
};
|
|
220
220
|
}
|
|
221
|
-
async function
|
|
222
|
-
|
|
223
|
-
const r = await navigator.mediaDevices.enumerateDevices(), i = r.filter((s) => s.deviceId).filter((s) => s.kind === "audioinput").map((s) => ({
|
|
224
|
-
id: s.deviceId,
|
|
225
|
-
label: s.label || `Microphone ${r.indexOf(s) + 1}`
|
|
226
|
-
}));
|
|
227
|
-
return i.length === 0 ? Mr(!0) : i;
|
|
221
|
+
async function ge(o, r, a, s) {
|
|
222
|
+
b(r, !t(r)), t(a).length || await s();
|
|
228
223
|
}
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
}
|
|
232
|
-
var ee = $("<li><button> </button></li>"), te = $('<li><button class="devices-select__option svelte-q87ygv" disabled>No microphones found</button></li>'), oe = $('<li><button class="devices-select__option svelte-q87ygv" disabled>Loading Microphones...</button></li>'), ae = $('<ul role="listbox" aria-label="Select microphone"><!> <!> <!></ul>'), ie = $('<div class="container" role="group" aria-label="Audio recorder"><button class="devices-btn svelte-q87ygv" aria-haspopup="listbox"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" class="devices-btn__icon svelte-q87ygv"><path d="M201.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 338.7 54.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"></path></svg></button> <!></div>');
|
|
233
|
-
const se = {
|
|
224
|
+
var ye = T("<li><button> </button></li>"), me = T('<li><button class="devices-select__option svelte-q87ygv" disabled>No microphones found</button></li>'), be = T('<li><button class="devices-select__option svelte-q87ygv" disabled>Loading Microphones...</button></li>'), he = T('<ul role="listbox" aria-label="Select microphone"><!> <!> <!></ul>'), _e = T('<div class="container" role="group" aria-label="Audio recorder"><button class="devices-btn svelte-q87ygv" aria-haspopup="listbox"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" class="devices-btn__icon svelte-q87ygv"><path d="M201.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 338.7 54.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"></path></svg></button> <!></div>');
|
|
225
|
+
const we = {
|
|
234
226
|
hash: "svelte-q87ygv",
|
|
235
227
|
code: '.devices-btn.svelte-q87ygv {background:none;border:none;font-size:inherit;cursor:pointer;color:inherit;}.devices-btn__icon.svelte-q87ygv {width:0.75rem;height:0.75rem;fill:var(--fortyfour-recorder-btn-color);}.devices-select.svelte-q87ygv {display:none;flex-direction:column;list-style:none;margin:0;padding:0;border:var(--fortyfour-recorder-select-border);box-shadow:var(--fortyfour-recorder-select-shadow);border-radius:var(--fortyfour-recorder-select-radius);background:var(--fortyfour-recorder-select-bg);position:absolute;z-index:2147483647;overflow-y:auto;width:11rem;max-height:12rem;}.devices-select--is-open.svelte-q87ygv {display:flex;}.devices-select__option.svelte-q87ygv {padding:0.5rem 1rem;padding-left:0;background:none;border:none;text-align:left;cursor:pointer;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background 0.1s;font:inherit;font-size:var(--fortyfour-recorder-select-font-size);color:var(--fortyfour-recorder-select-color);}.devices-select__option.svelte-q87ygv:hover {background:var(--fortyfour-recorder-select-bg-hover);}.devices-select__option.svelte-q87ygv::before {content:"";display:inline-block;width:2ch;text-align:center;padding:0 0.25rem;}.devices-select__option--is-selected.svelte-q87ygv::before {content:"✓";}.devices-select__option.svelte-q87ygv:disabled {opacity:0.5;cursor:inherit;}.devices-select__option.svelte-q87ygv:disabled:hover {background:inherit;}'
|
|
236
228
|
};
|
|
237
|
-
function
|
|
238
|
-
|
|
239
|
-
let
|
|
240
|
-
|
|
241
|
-
function
|
|
242
|
-
|
|
229
|
+
function $r(o, r) {
|
|
230
|
+
fr(r, !0), vr(o, we);
|
|
231
|
+
let a = B(r, "deviceId", 15, ""), s = B(r, "disabled", 7, !1), d = P(Sr([])), e = P(!1), v = P(!1), g;
|
|
232
|
+
Tr(() => {
|
|
233
|
+
function n(f) {
|
|
234
|
+
f.composedPath().includes(g) || t(e) && b(e, !1);
|
|
243
235
|
}
|
|
244
|
-
return document.addEventListener("pointerdown",
|
|
245
|
-
document.removeEventListener("pointerdown",
|
|
236
|
+
return document.addEventListener("pointerdown", n), () => {
|
|
237
|
+
document.removeEventListener("pointerdown", n);
|
|
246
238
|
};
|
|
247
239
|
});
|
|
248
|
-
async function
|
|
240
|
+
async function D() {
|
|
249
241
|
try {
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
t(
|
|
253
|
-
deviceId:
|
|
254
|
-
label:
|
|
242
|
+
b(v, !0), (await navigator.mediaDevices.getUserMedia({ audio: !0 })).getTracks().forEach((f) => f.stop()), b(d, await navigator.mediaDevices.enumerateDevices(), !0), b(
|
|
243
|
+
d,
|
|
244
|
+
t(d).filter((f) => f.deviceId).filter((f) => f.kind === "audioinput").map((f, l) => ({
|
|
245
|
+
deviceId: f.deviceId,
|
|
246
|
+
label: f.label || `Microphone ${l + 1}`
|
|
255
247
|
})),
|
|
256
248
|
!0
|
|
257
|
-
), !
|
|
258
|
-
} catch (
|
|
259
|
-
console.error("Error accessing microphones:",
|
|
249
|
+
), !a() && t(d).length && a(t(d)[0].deviceId), t(d).sort((f, l) => f.label.localeCompare(l.label)), b(v, !1);
|
|
250
|
+
} catch (n) {
|
|
251
|
+
console.error("Error accessing microphones:", n);
|
|
260
252
|
}
|
|
261
253
|
}
|
|
262
|
-
function
|
|
254
|
+
function u(n) {
|
|
263
255
|
return () => {
|
|
264
|
-
|
|
256
|
+
a(n), b(e, !1);
|
|
265
257
|
};
|
|
266
258
|
}
|
|
267
259
|
var _ = {
|
|
268
260
|
get deviceId() {
|
|
269
|
-
return
|
|
261
|
+
return a();
|
|
270
262
|
},
|
|
271
|
-
set deviceId(
|
|
272
|
-
|
|
263
|
+
set deviceId(n = "") {
|
|
264
|
+
a(n), H();
|
|
273
265
|
},
|
|
274
266
|
get disabled() {
|
|
275
267
|
return s();
|
|
276
268
|
},
|
|
277
|
-
set disabled(
|
|
278
|
-
s(
|
|
269
|
+
set disabled(n = !1) {
|
|
270
|
+
s(n), H();
|
|
279
271
|
}
|
|
280
|
-
},
|
|
281
|
-
|
|
282
|
-
var
|
|
272
|
+
}, w = _e(), y = C(w);
|
|
273
|
+
y.__click = [ge, e, d, D];
|
|
274
|
+
var q = O(y, 2);
|
|
283
275
|
{
|
|
284
|
-
var
|
|
285
|
-
var
|
|
286
|
-
|
|
287
|
-
var
|
|
288
|
-
|
|
289
|
-
t(
|
|
276
|
+
var I = (n) => {
|
|
277
|
+
var f = he(), l = C(f);
|
|
278
|
+
ee(l, 17, () => t(d), te, (h, k) => {
|
|
279
|
+
var i = ye(), c = C(i), L = nr(() => u(t(k).deviceId));
|
|
280
|
+
c.__click = function(...z) {
|
|
281
|
+
t(L)?.apply(this, z);
|
|
290
282
|
};
|
|
291
|
-
var
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
283
|
+
var R = C(c, !0);
|
|
284
|
+
$(c), $(i), G(() => {
|
|
285
|
+
tr(
|
|
286
|
+
c,
|
|
295
287
|
1,
|
|
296
|
-
|
|
288
|
+
cr([
|
|
297
289
|
"devices-select__option",
|
|
298
|
-
t(
|
|
290
|
+
t(k).deviceId === a() && "devices-select__option--is-selected"
|
|
299
291
|
]),
|
|
300
292
|
"svelte-q87ygv"
|
|
301
|
-
),
|
|
302
|
-
}),
|
|
293
|
+
), c.disabled = s(), _r(R, t(k).label);
|
|
294
|
+
}), m(h, i);
|
|
303
295
|
});
|
|
304
|
-
var
|
|
296
|
+
var p = O(l, 2);
|
|
305
297
|
{
|
|
306
|
-
var
|
|
307
|
-
var
|
|
308
|
-
|
|
298
|
+
var x = (h) => {
|
|
299
|
+
var k = me();
|
|
300
|
+
m(h, k);
|
|
309
301
|
};
|
|
310
|
-
|
|
311
|
-
!t(
|
|
302
|
+
F(p, (h) => {
|
|
303
|
+
!t(d).length && !t(v) && h(x);
|
|
312
304
|
});
|
|
313
305
|
}
|
|
314
|
-
var
|
|
306
|
+
var A = O(p, 2);
|
|
315
307
|
{
|
|
316
|
-
var
|
|
317
|
-
var
|
|
318
|
-
|
|
308
|
+
var E = (h) => {
|
|
309
|
+
var k = be();
|
|
310
|
+
m(h, k);
|
|
319
311
|
};
|
|
320
|
-
|
|
321
|
-
t(
|
|
312
|
+
F(A, (h) => {
|
|
313
|
+
t(v) && h(E);
|
|
322
314
|
});
|
|
323
315
|
}
|
|
324
|
-
|
|
316
|
+
$(f), G(() => tr(f, 1, `devices-select ${t(e) ? "devices-select--is-open" : ""}`, "svelte-q87ygv")), br(3, f, () => pe, () => ({ duration: 100 })), m(n, f);
|
|
325
317
|
};
|
|
326
|
-
|
|
327
|
-
t(
|
|
318
|
+
F(q, (n) => {
|
|
319
|
+
t(e) && n(I);
|
|
328
320
|
});
|
|
329
321
|
}
|
|
330
|
-
return
|
|
322
|
+
return $(w), Zr(w, (n) => g = n, () => g), G(() => re(y, "aria-expanded", t(e))), m(o, w), ur(_);
|
|
331
323
|
}
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
var
|
|
335
|
-
const
|
|
324
|
+
Lr(["click"]);
|
|
325
|
+
lr($r, { deviceId: {}, disabled: {} }, [], [], !0);
|
|
326
|
+
var xe = T("<button><!></button>");
|
|
327
|
+
const ke = {
|
|
336
328
|
hash: "svelte-f3ispq",
|
|
337
329
|
code: ".btn.svelte-f3ispq {display:flex;align-items:center;gap:var(--fortyfour-recorder-btn-gap);font:inherit;border:none;padding:var(--fortyfour-recorder-btn-padding);border-radius:var(--fortyfour-recorder-btn-radius);background:var(--fortyfour-recorder-btn-bg);color:var(--fortyfour-recorder-btn-color);cursor:pointer;}.btn.svelte-f3ispq:hover {background:var(--fortyfour-recorder-btn-bg-hover);color:var(--fortyfour-recorder-btn-color-hover);}.btn.btn--recording.svelte-f3ispq {background:var(--fortyfour-recorder-red-bg);color:var(--fortyfour-recorder-red-color);}.btn.btn--primary.svelte-f3ispq {background:var(--fortyfour-recorder-btn-primary-bg);color:var(--fortyfour-recorder-btn-primary-color);}.btn.btn--primary.svelte-f3ispq:hover {background:var(--fortyfour-recorder-btn-primary-bg-hover);color:var(--fortyfour-recorder-btn-primary-color-hover);}"
|
|
338
330
|
};
|
|
339
|
-
function
|
|
340
|
-
|
|
341
|
-
const
|
|
331
|
+
function er(o, r) {
|
|
332
|
+
fr(r, !0), vr(o, ke);
|
|
333
|
+
const a = B(r, "type", 7), s = B(r, "onclick", 7, () => {
|
|
342
334
|
});
|
|
343
|
-
var
|
|
335
|
+
var d = {
|
|
344
336
|
get type() {
|
|
345
|
-
return
|
|
337
|
+
return a();
|
|
346
338
|
},
|
|
347
|
-
set type(
|
|
348
|
-
|
|
339
|
+
set type(g) {
|
|
340
|
+
a(g), H();
|
|
349
341
|
},
|
|
350
342
|
get onclick() {
|
|
351
343
|
return s();
|
|
352
344
|
},
|
|
353
|
-
set onclick(
|
|
345
|
+
set onclick(g = () => {
|
|
354
346
|
}) {
|
|
355
|
-
s(
|
|
347
|
+
s(g), H();
|
|
356
348
|
}
|
|
357
|
-
},
|
|
358
|
-
|
|
359
|
-
s()?.apply(this,
|
|
349
|
+
}, e = xe();
|
|
350
|
+
e.__click = function(...g) {
|
|
351
|
+
s()?.apply(this, g);
|
|
360
352
|
};
|
|
361
|
-
var
|
|
362
|
-
return
|
|
353
|
+
var v = C(e);
|
|
354
|
+
return ne(v, r, "default", {}), $(e), G(() => tr(e, 1, cr(["btn", a() && `btn--${a()}`]), "svelte-f3ispq")), m(o, e), ur(d);
|
|
363
355
|
}
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
var
|
|
367
|
-
const
|
|
368
|
-
hash: "svelte-
|
|
369
|
-
code: `.container.svelte-
|
|
370
|
-
animation: svelte-
|
|
356
|
+
Lr(["click"]);
|
|
357
|
+
lr(er, { type: {}, onclick: {} }, ["default"], [], !0);
|
|
358
|
+
var qe = T("<div></div> <!>", 1), Ie = T('<div class="recording-info svelte-fc16qh"><div class="live-waveform svelte-fc16qh"><!></div> <div class="time-elapsed svelte-fc16qh"> </div></div>'), Ee = T('<div role="group" aria-label="Audio recorder"><!> <!> <!></div>');
|
|
359
|
+
const Le = {
|
|
360
|
+
hash: "svelte-fc16qh",
|
|
361
|
+
code: `.container.svelte-fc16qh {display:flex;align-items:center;gap:1rem;min-height:56px;}.record-icon.svelte-fc16qh {width:1.25rem;height:1.25rem;background:var(--fortyfour-recorder-red-bg);border-radius:50%;}.record-icon--is-recording.svelte-fc16qh {background:var(--fortyfour-recorder-red-color);
|
|
362
|
+
animation: svelte-fc16qh-pulse 2s infinite ease-out;}.recording-info.svelte-fc16qh {display:flex;align-items:center;gap:0.5rem;flex:1;min-width:0;}.live-waveform.svelte-fc16qh {flex:1;min-width:0;}.time-elapsed.svelte-fc16qh {font-variant-numeric:tabular-nums;flex-shrink:0;}
|
|
371
363
|
|
|
372
|
-
@keyframes svelte-
|
|
364
|
+
@keyframes svelte-fc16qh-pulse {
|
|
373
365
|
0% {
|
|
374
366
|
transform: scale(1);
|
|
375
367
|
box-shadow: 0 0 0 0 hsla(0, 100%, 100%, 0.7);
|
|
@@ -383,396 +375,385 @@ const ue = {
|
|
|
383
375
|
}
|
|
384
376
|
}`
|
|
385
377
|
};
|
|
386
|
-
function
|
|
387
|
-
|
|
388
|
-
let
|
|
378
|
+
function Ar(o, r) {
|
|
379
|
+
fr(r, !0), vr(o, Le);
|
|
380
|
+
let a = B(r, "deviceId", 15, ""), s = B(r, "onDone", 7);
|
|
381
|
+
const d = 100;
|
|
382
|
+
let e = P(Sr({
|
|
389
383
|
state: "ready",
|
|
390
384
|
// "ready", "recording"
|
|
391
385
|
timeElapsed: 0,
|
|
392
|
-
error: null
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
386
|
+
error: null,
|
|
387
|
+
waveformSamples: []
|
|
388
|
+
})), v, g;
|
|
389
|
+
oe(() => {
|
|
390
|
+
v?.stop();
|
|
391
|
+
}), Tr(() => {
|
|
392
|
+
function l() {
|
|
393
|
+
document.hidden && t(e).state === "recording" && _();
|
|
394
|
+
}
|
|
395
|
+
return document.addEventListener("visibilitychange", l), () => {
|
|
396
|
+
document.removeEventListener("visibilitychange", l);
|
|
397
|
+
};
|
|
396
398
|
});
|
|
397
|
-
function
|
|
398
|
-
t(
|
|
399
|
+
function D() {
|
|
400
|
+
t(e).state === "ready" ? u() : t(e).state === "recording" && _();
|
|
399
401
|
}
|
|
400
|
-
async function
|
|
401
|
-
const
|
|
402
|
-
audio: {
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
402
|
+
async function u() {
|
|
403
|
+
const l = await navigator.mediaDevices.getUserMedia({
|
|
404
|
+
audio: {
|
|
405
|
+
deviceId: a() ? { exact: a() } : void 0,
|
|
406
|
+
autoGainControl: !0,
|
|
407
|
+
noiseSuppression: !0
|
|
408
|
+
}
|
|
409
|
+
}), p = [];
|
|
410
|
+
v = new MediaRecorder(l), v.ondataavailable = (c) => p.push(c.data), g = new AudioContext();
|
|
411
|
+
const x = g.createAnalyser();
|
|
412
|
+
x.fftSize = 256, g.createMediaStreamSource(l).connect(x);
|
|
413
|
+
const E = new Uint8Array(x.frequencyBinCount);
|
|
414
|
+
let h = 0;
|
|
415
|
+
function k(c) {
|
|
416
|
+
if (t(e).state !== "recording") return;
|
|
417
|
+
x.getByteTimeDomainData(E);
|
|
418
|
+
let L = 0;
|
|
419
|
+
for (let S = 0; S < E.length; S++) {
|
|
420
|
+
const M = (E[S] - 128) / 128;
|
|
421
|
+
L += M * M;
|
|
422
|
+
}
|
|
423
|
+
const R = Math.sqrt(L / E.length), z = Math.min(1, R * 4);
|
|
424
|
+
c - h >= d && (t(e).waveformSamples = [...t(e).waveformSamples, Math.round(z * 100)], h = c), requestAnimationFrame(k);
|
|
425
|
+
}
|
|
426
|
+
v.onstop = () => {
|
|
427
|
+
if (t(e).state !== "recording")
|
|
428
|
+
return;
|
|
429
|
+
l.getTracks().forEach((L) => L.stop()), g?.close();
|
|
430
|
+
const c = t(e).waveformSamples;
|
|
431
|
+
t(e).waveformSamples = [], s()({
|
|
432
|
+
url: URL.createObjectURL(new Blob(p, { type: v.mimeType })),
|
|
433
|
+
waveform: c
|
|
434
|
+
}), t(e).state = "ready";
|
|
435
|
+
}, v.start();
|
|
436
|
+
const i = () => {
|
|
437
|
+
t(e).state === "recording" && (t(e).timeElapsed += 1, setTimeout(i, 1e3));
|
|
409
438
|
};
|
|
410
|
-
setTimeout(
|
|
439
|
+
setTimeout(i, 1e3), t(e).state = "recording", k();
|
|
411
440
|
}
|
|
412
|
-
function
|
|
413
|
-
|
|
441
|
+
function _() {
|
|
442
|
+
v?.stop();
|
|
414
443
|
}
|
|
415
|
-
var
|
|
444
|
+
var w = {
|
|
416
445
|
get deviceId() {
|
|
417
|
-
return
|
|
446
|
+
return a();
|
|
418
447
|
},
|
|
419
|
-
set deviceId(
|
|
420
|
-
|
|
448
|
+
set deviceId(l = "") {
|
|
449
|
+
a(l), H();
|
|
421
450
|
},
|
|
422
451
|
get onDone() {
|
|
423
452
|
return s();
|
|
424
453
|
},
|
|
425
|
-
set onDone(
|
|
426
|
-
s(
|
|
454
|
+
set onDone(l) {
|
|
455
|
+
s(l), H();
|
|
427
456
|
}
|
|
428
|
-
},
|
|
457
|
+
}, y = Ee(), q = C(y);
|
|
429
458
|
{
|
|
430
|
-
let
|
|
431
|
-
|
|
432
|
-
onclick:
|
|
459
|
+
let l = nr(() => t(e).state === "recording" && "recording");
|
|
460
|
+
er(q, {
|
|
461
|
+
onclick: D,
|
|
433
462
|
get type() {
|
|
434
|
-
return t(
|
|
463
|
+
return t(l);
|
|
435
464
|
},
|
|
436
|
-
children: (
|
|
437
|
-
var
|
|
465
|
+
children: (p, x) => {
|
|
466
|
+
var A = qe(), E = X(A), h = O(E, 2);
|
|
438
467
|
{
|
|
439
|
-
var
|
|
440
|
-
var
|
|
441
|
-
|
|
442
|
-
},
|
|
443
|
-
var
|
|
468
|
+
var k = (c) => {
|
|
469
|
+
var L = dr("Record");
|
|
470
|
+
m(c, L);
|
|
471
|
+
}, i = (c) => {
|
|
472
|
+
var L = rr(), R = X(L);
|
|
444
473
|
{
|
|
445
|
-
var
|
|
446
|
-
var
|
|
447
|
-
|
|
474
|
+
var z = (S) => {
|
|
475
|
+
var M = dr("Recording");
|
|
476
|
+
m(S, M);
|
|
448
477
|
};
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
(
|
|
452
|
-
t(
|
|
478
|
+
F(
|
|
479
|
+
R,
|
|
480
|
+
(S) => {
|
|
481
|
+
t(e).state === "recording" && S(z);
|
|
453
482
|
},
|
|
454
483
|
!0
|
|
455
484
|
);
|
|
456
485
|
}
|
|
457
|
-
|
|
486
|
+
m(c, L);
|
|
458
487
|
};
|
|
459
|
-
|
|
460
|
-
t(
|
|
488
|
+
F(h, (c) => {
|
|
489
|
+
t(e).state === "ready" ? c(k) : c(i, !1);
|
|
461
490
|
});
|
|
462
491
|
}
|
|
463
|
-
|
|
464
|
-
|
|
492
|
+
G(() => tr(
|
|
493
|
+
E,
|
|
465
494
|
1,
|
|
466
|
-
|
|
495
|
+
cr([
|
|
467
496
|
"record-icon",
|
|
468
|
-
t(
|
|
497
|
+
t(e).state === "recording" && "record-icon--is-recording"
|
|
469
498
|
]),
|
|
470
|
-
"svelte-
|
|
471
|
-
)),
|
|
499
|
+
"svelte-fc16qh"
|
|
500
|
+
)), m(p, A);
|
|
472
501
|
},
|
|
473
502
|
$$slots: { default: !0 }
|
|
474
503
|
});
|
|
475
504
|
}
|
|
476
|
-
var
|
|
505
|
+
var I = O(q, 2);
|
|
477
506
|
{
|
|
478
|
-
let
|
|
479
|
-
|
|
507
|
+
let l = nr(() => t(e).state === "recording");
|
|
508
|
+
$r(I, {
|
|
480
509
|
get disabled() {
|
|
481
|
-
return t(
|
|
510
|
+
return t(l);
|
|
482
511
|
},
|
|
483
512
|
get deviceId() {
|
|
484
|
-
return
|
|
513
|
+
return a();
|
|
485
514
|
},
|
|
486
|
-
set deviceId(
|
|
487
|
-
|
|
515
|
+
set deviceId(p) {
|
|
516
|
+
a(p);
|
|
488
517
|
}
|
|
489
518
|
});
|
|
490
519
|
}
|
|
491
|
-
var
|
|
520
|
+
var n = O(I, 2);
|
|
492
521
|
{
|
|
493
|
-
var
|
|
494
|
-
var
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
522
|
+
var f = (l) => {
|
|
523
|
+
var p = Ie(), x = C(p), A = C(x);
|
|
524
|
+
ae(A, {
|
|
525
|
+
get data() {
|
|
526
|
+
return t(e).waveformSamples;
|
|
527
|
+
}
|
|
528
|
+
}), $(x);
|
|
529
|
+
var E = O(x, 2), h = C(E);
|
|
530
|
+
$(E), $(p), G((k, i) => _r(h, `${k ?? ""}:${i ?? ""}`), [
|
|
531
|
+
() => Math.floor(t(e).timeElapsed / 60).toString(),
|
|
532
|
+
() => (t(e).timeElapsed % 60).toString().padStart(2, "0")
|
|
533
|
+
]), m(l, p);
|
|
499
534
|
};
|
|
500
|
-
|
|
501
|
-
t(
|
|
535
|
+
F(n, (l) => {
|
|
536
|
+
t(e).state === "recording" && l(f);
|
|
502
537
|
});
|
|
503
538
|
}
|
|
504
|
-
return
|
|
505
|
-
|
|
539
|
+
return $(y), G(() => tr(
|
|
540
|
+
y,
|
|
506
541
|
1,
|
|
507
|
-
|
|
542
|
+
cr([
|
|
508
543
|
"container",
|
|
509
|
-
t(
|
|
544
|
+
t(e).state === "recording" && "is-recording"
|
|
510
545
|
]),
|
|
511
|
-
"svelte-
|
|
512
|
-
)),
|
|
513
|
-
}
|
|
514
|
-
Z(Er, { deviceId: {}, onDone: {} }, [], [], !0);
|
|
515
|
-
function ve(e, r, i) {
|
|
516
|
-
I(r, e.target.value, !0), i()(e.target.value);
|
|
546
|
+
"svelte-fc16qh"
|
|
547
|
+
)), m(o, y), ur(w);
|
|
517
548
|
}
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
const
|
|
521
|
-
hash: "svelte-
|
|
522
|
-
code: "label.svelte-zkiuts {display:block;margin-bottom:0.5em;}select.svelte-zkiuts {display:block;font-size:inherit;}"
|
|
523
|
-
};
|
|
524
|
-
function me(e, r) {
|
|
525
|
-
rr(r, !0), er(e, be);
|
|
526
|
-
const i = P(r, "onSelectMic", 7);
|
|
527
|
-
let s = j(ir([])), o = j(null), n = null, u = j(!1), f = j(ir(Array(15).fill(1)));
|
|
528
|
-
wr(() => {
|
|
529
|
-
const d = async () => I(s, await Mr(), !0);
|
|
530
|
-
navigator.mediaDevices.ondevicechange = d, d();
|
|
531
|
-
});
|
|
532
|
-
async function q() {
|
|
533
|
-
if (n) {
|
|
534
|
-
if (t(u)) {
|
|
535
|
-
n.srcObject.getTracks().forEach((d) => d.stop()), I(u, !1);
|
|
536
|
-
return;
|
|
537
|
-
}
|
|
538
|
-
I(f, Array(15).fill(1), !0), I(u, !0);
|
|
539
|
-
try {
|
|
540
|
-
let A = function(F) {
|
|
541
|
-
if (!t(u)) {
|
|
542
|
-
v.close();
|
|
543
|
-
return;
|
|
544
|
-
}
|
|
545
|
-
const R = new Uint8Array(b.fftSize);
|
|
546
|
-
b.getByteTimeDomainData(R);
|
|
547
|
-
let z = 0;
|
|
548
|
-
for (let U = 0; U < R.length; U++) {
|
|
549
|
-
const V = (R[U] - 128) / 128;
|
|
550
|
-
z += V * V;
|
|
551
|
-
}
|
|
552
|
-
const O = Math.sqrt(z / R.length);
|
|
553
|
-
D.push(O), requestAnimationFrame(A);
|
|
554
|
-
};
|
|
555
|
-
const d = await navigator.mediaDevices.getUserMedia({
|
|
556
|
-
audio: {
|
|
557
|
-
deviceId: t(o) ? { exact: t(o) } : void 0
|
|
558
|
-
}
|
|
559
|
-
}), g = new MediaRecorder(d), l = [];
|
|
560
|
-
let p;
|
|
561
|
-
g.ondataavailable = (F) => F.data.size && l.push(F.data), g.onstop = () => {
|
|
562
|
-
const F = new Blob(l, { type: g.mimeType }), R = URL.createObjectURL(F);
|
|
563
|
-
n.src = R, n.play(), d.getTracks().forEach((z) => z.stop()), I(u, !1), clearInterval(p);
|
|
564
|
-
}, g.start(), setTimeout(() => g.stop(), 5e3);
|
|
565
|
-
const v = new (window.AudioContext || window.webkitAudioContext)(), y = v.createMediaStreamSource(d), b = v.createAnalyser();
|
|
566
|
-
y.connect(b), b.fftSize = 2048;
|
|
567
|
-
const h = (F, R) => {
|
|
568
|
-
if (F <= 0) return 0;
|
|
569
|
-
const z = 20 * Math.log10(F), O = -50, U = -10, W = (Math.min(U, Math.max(O, z)) - O) / (U - O);
|
|
570
|
-
return Math.round(W * R);
|
|
571
|
-
};
|
|
572
|
-
let D = [];
|
|
573
|
-
A(0);
|
|
574
|
-
let K = 0;
|
|
575
|
-
p = setInterval(
|
|
576
|
-
() => {
|
|
577
|
-
const F = D.reduce((z, O) => z + O, 0) / D.length, R = h(F, 100);
|
|
578
|
-
t(f)[K++] = R, D = [];
|
|
579
|
-
},
|
|
580
|
-
300
|
|
581
|
-
);
|
|
582
|
-
} catch (d) {
|
|
583
|
-
console.error("Error during mic check:", d);
|
|
584
|
-
}
|
|
585
|
-
}
|
|
586
|
-
}
|
|
587
|
-
var x = {
|
|
588
|
-
get onSelectMic() {
|
|
589
|
-
return i();
|
|
590
|
-
},
|
|
591
|
-
set onSelectMic(d) {
|
|
592
|
-
i(d), B();
|
|
593
|
-
}
|
|
594
|
-
}, _ = ye(), M = L(T(_), 2);
|
|
595
|
-
M.__change = [ve, o, i], lr(M, 21, () => t(s), ur, (d, g) => {
|
|
596
|
-
var l = pe(), p = T(l, !0);
|
|
597
|
-
S(l);
|
|
598
|
-
var v = {};
|
|
599
|
-
N(() => {
|
|
600
|
-
Y(p, t(g).label), v !== (v = t(g).id) && (l.value = (l.__value = t(g).id) ?? "");
|
|
601
|
-
}), k(d, l);
|
|
602
|
-
}), S(M);
|
|
603
|
-
var w = L(M, 2), C = L(T(w), 4), E = T(C);
|
|
604
|
-
E.__click = q;
|
|
605
|
-
var a = T(E, !0);
|
|
606
|
-
S(E);
|
|
607
|
-
var c = L(E, 2);
|
|
608
|
-
kr(c, (d) => n = d, () => n);
|
|
609
|
-
var m = L(c, 2);
|
|
610
|
-
return lr(m, 21, () => t(f), ur, (d, g, l) => {
|
|
611
|
-
var p = ge();
|
|
612
|
-
ar(p, "x", l * 12), N(() => {
|
|
613
|
-
ar(p, "y", 100 - t(g)), ar(p, "height", t(g));
|
|
614
|
-
}), k(d, p);
|
|
615
|
-
}), S(m), S(C), S(w), S(_), N(() => Y(a, t(u) ? "Stop Testing" : "Let's Check")), k(e, _), tr(x);
|
|
616
|
-
}
|
|
617
|
-
cr(["change", "click"]);
|
|
618
|
-
Z(me, { onSelectMic: {} }, [], [], !0);
|
|
619
|
-
var he = $('<div><p>Recording saved! ID:</p> <code><pre> </pre></code></div> <p><button class="primary">Record Again</button></p>', 1), _e = $("<p>Processing your recording…</p>"), we = xr('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640" style="fill: currentColor; width: 1em; height: 1em;"><path d="M232.7 69.9L224 96L128 96C110.3 96 96 110.3 96 128C96 145.7 110.3 160 128 160L512 160C529.7 160 544 145.7 544 128C544 110.3 529.7 96 512 96L416 96L407.3 69.9C402.9 56.8 390.7 48 376.9 48L263.1 48C249.3 48 237.1 56.8 232.7 69.9zM512 208L128 208L149.1 531.1C150.7 556.4 171.7 576 197 576L443 576C468.3 576 489.3 556.4 490.9 531.1L512 208z"></path></svg>'), ke = $('<div class="confirm svelte-1i5eb1b"><!> <!> <!></div>'), xe = $('<div class="row"><!></div>'), Ie = $('<div class="recorder svelte-1i5eb1b" role="group" aria-label="44 audio recorder"><!></div>');
|
|
620
|
-
const Me = {
|
|
621
|
-
hash: "svelte-1i5eb1b",
|
|
549
|
+
lr(Ar, { deviceId: {}, onDone: {} }, [], [], !0);
|
|
550
|
+
var Se = T('<p class="status-message svelte-14spe77">Recording saved successfully!</p>'), Te = T('<p class="status-message svelte-14spe77">Uploading...</p>'), Ce = T('<p class="status-message svelte-14spe77">Processing...</p>'), $e = T('<div class="error svelte-14spe77"><p class="svelte-14spe77"> </p> <!></div>'), Ae = ie('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640" style="fill: currentColor; width: 1em; height: 1em;"><path d="M232.7 69.9L224 96L128 96C110.3 96 96 110.3 96 128C96 145.7 110.3 160 128 160L512 160C529.7 160 544 145.7 544 128C544 110.3 529.7 96 512 96L416 96L407.3 69.9C402.9 56.8 390.7 48 376.9 48L263.1 48C249.3 48 237.1 56.8 232.7 69.9zM512 208L128 208L149.1 531.1C150.7 556.4 171.7 576 197 576L443 576C468.3 576 489.3 556.4 490.9 531.1L512 208z"></path></svg>'), Re = T('<div class="confirm svelte-14spe77"><!> <div class="confirm-actions svelte-14spe77"><!> <!></div></div>'), Me = T('<div class="row"><!></div>'), De = T('<div class="recorder svelte-14spe77" role="group" aria-label="44 audio recorder"><!></div>');
|
|
551
|
+
const ze = {
|
|
552
|
+
hash: "svelte-14spe77",
|
|
622
553
|
code: `:host {--fortyfour-recorder-bg-0: #2d2d2d;--fortyfour-recorder-bg-1: #393939;--fortyfour-recorder-bg-2: #515151;--fortyfour-recorder-bg-primary: hsla(210, 50%, 60%, 1);--fortyfour-recorder-bg-primary-light: hsla(210, 55%, 64%, 1);--fortyfour-recorder-color-0: #d3d0c8;--fortyfour-recorder-color-primary: hsla(0, 0%, 100%, 0.9);--fortyfour-recorder-red-bg: #f2777a;--fortyfour-recorder-red-color: #ffffff;--fortyfour-recorder-font-size-lg: 1.25rem;--fortyfour-recorder-font-size-md: 1rem;--fortyfour-recorder-font-size-sm: 0.875rem;--fortyfour-recorder-font-size-xs: 0.6825rem;--fortyfour-recorder-radius-xl: 3rem;--fortyfour-recorder-radius-lg: 1rem;--fortyfour-recorder-radius-md: 0.5rem;--fortyfour-recorder-spacing-md: 1rem;--fortyfour-recorder-spacing-sm-1: 0.85rem;--fortyfour-recorder-spacing-sm: 0.5rem;--fortyfour-recorder-radius: var(--fortyfour-recorder-radius-lg);--fortyfour-recorder-bg: var(--fortyfour-recorder-bg-0);--fortyfour-recorder-color: var(--fortyfour-recorder-color-0);--fortyfour-recorder-btn-radius: var(--fortyfour-recorder-radius-xl);--fortyfour-recorder-btn-padding: var(--fortyfour-recorder-spacing-sm)
|
|
623
|
-
var(--fortyfour-recorder-spacing-sm-1);--fortyfour-recorder-btn-gap: var(--fortyfour-recorder-spacing-sm);--fortyfour-recorder-btn-bg: var(--fortyfour-recorder-bg-1);--fortyfour-recorder-btn-bg-hover: var(--fortyfour-recorder-bg-2);--fortyfour-recorder-btn-color: var(--fortyfour-recorder-color-0);--fortyfour-recorder-btn-color-hover: var(--fortyfour-recorder-color-0);--fortyfour-recorder-btn-primary-bg: var(--fortyfour-recorder-bg-primary);--fortyfour-recorder-btn-primary-bg-hover: var(--fortyfour-recorder-bg-primary-light);--fortyfour-recorder-btn-primary-color: var(--fortyfour-recorder-color-primary);--fortyfour-recorder-btn-primary-color-hover: var(--fortyfour-recorder-color-primary);--fortyfour-recorder-select-bg: var(--fortyfour-recorder-bg-0);--fortyfour-recorder-select-bg-hover: var(--fortyfour-recorder-bg-1);--fortyfour-recorder-select-border: 1px solid var(--fortyfour-recorder-bg-1);--fortyfour-recorder-select-radius: var(--fortyfour-recorder-radius-md);--fortyfour-recorder-select-shadow: 0 4px 8px hsla(0, 0%, 0%, 0.1);--fortyfour-recorder-select-color: var(--fortyfour-recorder-color-0);--fortyfour-recorder-select-font-size: var(--fortyfour-recorder-font-size-xs);}.recorder.svelte-
|
|
554
|
+
var(--fortyfour-recorder-spacing-sm-1);--fortyfour-recorder-btn-gap: var(--fortyfour-recorder-spacing-sm);--fortyfour-recorder-btn-bg: var(--fortyfour-recorder-bg-1);--fortyfour-recorder-btn-bg-hover: var(--fortyfour-recorder-bg-2);--fortyfour-recorder-btn-color: var(--fortyfour-recorder-color-0);--fortyfour-recorder-btn-color-hover: var(--fortyfour-recorder-color-0);--fortyfour-recorder-btn-primary-bg: var(--fortyfour-recorder-bg-primary);--fortyfour-recorder-btn-primary-bg-hover: var(--fortyfour-recorder-bg-primary-light);--fortyfour-recorder-btn-primary-color: var(--fortyfour-recorder-color-primary);--fortyfour-recorder-btn-primary-color-hover: var(--fortyfour-recorder-color-primary);--fortyfour-recorder-select-bg: var(--fortyfour-recorder-bg-0);--fortyfour-recorder-select-bg-hover: var(--fortyfour-recorder-bg-1);--fortyfour-recorder-select-border: 1px solid var(--fortyfour-recorder-bg-1);--fortyfour-recorder-select-radius: var(--fortyfour-recorder-radius-md);--fortyfour-recorder-select-shadow: 0 4px 8px hsla(0, 0%, 0%, 0.1);--fortyfour-recorder-select-color: var(--fortyfour-recorder-color-0);--fortyfour-recorder-select-font-size: var(--fortyfour-recorder-font-size-xs);}.recorder.svelte-14spe77 {padding:var(--fortyfour-recorder-spacing-md);border-radius:var(--fortyfour-recorder-radius);background:var(--fortyfour-recorder-bg);color:var(--fortyfour-recorder-color);}.confirm.svelte-14spe77 {display:flex;align-items:center;gap:var(--fortyfour-recorder-spacing-sm);}.confirm-actions.svelte-14spe77 {display:flex;gap:var(--fortyfour-recorder-spacing-sm);flex-shrink:0;}.error.svelte-14spe77 {display:flex;flex-direction:column;gap:var(--fortyfour-recorder-spacing-sm);}.error.svelte-14spe77 p:where(.svelte-14spe77) {color:var(--fortyfour-recorder-red-bg);margin:0;}.status-message.svelte-14spe77 {margin:0;text-align:center;}`
|
|
624
555
|
};
|
|
625
|
-
function
|
|
626
|
-
|
|
627
|
-
const
|
|
628
|
-
let s =
|
|
629
|
-
const
|
|
630
|
-
let
|
|
556
|
+
function Fe(o, r) {
|
|
557
|
+
fr(r, !0), vr(o, ze);
|
|
558
|
+
const a = r.$$host;
|
|
559
|
+
let s = B(r, "sessionId", 7), d = B(r, "labels", 7, ""), e = B(r, "apiHost", 7, "api.44.audio");
|
|
560
|
+
const v = nr(() => d() ? d().split(",").map((i) => i.trim()).filter(Boolean) : []), g = 2e3, D = 30;
|
|
561
|
+
let u = P(
|
|
631
562
|
"ready"
|
|
632
|
-
// "ready", "recording", "confirm", "processing", "done"
|
|
633
|
-
),
|
|
634
|
-
async function
|
|
635
|
-
if (t(
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
563
|
+
// "ready", "recording", "confirm", "uploading", "processing", "done", "error"
|
|
564
|
+
), _ = P(null), w = P(null), y = P(null), q = P(""), I = P(null);
|
|
565
|
+
async function n() {
|
|
566
|
+
if (!(t(u) !== "confirm" || !t(w))) {
|
|
567
|
+
b(u, "uploading");
|
|
568
|
+
try {
|
|
569
|
+
const i = await fetch(t(w));
|
|
570
|
+
if (!i.ok)
|
|
571
|
+
throw new Error("Failed to load audio data");
|
|
572
|
+
const c = await i.blob(), L = new File([c], "recording.audio", { type: c.type }), R = new FormData();
|
|
573
|
+
R.append("sessionId", s()), t(v).forEach((Q) => R.append("labels", Q)), R.append("audioFile", L), t(y) && R.append("waveform", JSON.stringify(t(y)));
|
|
574
|
+
const z = await fetch(`https://${e()}/v1/recordings`, { method: "POST", body: R });
|
|
575
|
+
if (!z.ok)
|
|
576
|
+
throw new Error(`Upload failed: ${z.status}`);
|
|
577
|
+
const S = await z.json();
|
|
578
|
+
b(_, S.recordingId, !0), b(u, "processing");
|
|
579
|
+
let M = !1, or = 0;
|
|
580
|
+
for (; !M && or < D; )
|
|
581
|
+
await new Promise((Q) => setTimeout(Q, g)), M = await l(t(_)), or++;
|
|
582
|
+
if (!M) {
|
|
583
|
+
b(I, "Recording processing timeout. Please try again."), b(u, "error");
|
|
584
|
+
return;
|
|
585
|
+
}
|
|
586
|
+
a.dispatchEvent(new CustomEvent("recording-complete", { detail: { recordingId: t(_) } })), b(u, "done");
|
|
587
|
+
} catch (i) {
|
|
588
|
+
console.error("Error saving recording:", i), b(I, i.message || "Failed to save recording", !0), b(u, "error");
|
|
589
|
+
}
|
|
650
590
|
}
|
|
651
591
|
}
|
|
652
|
-
function
|
|
653
|
-
|
|
592
|
+
function f() {
|
|
593
|
+
b(w, null), b(y, null), b(u, "ready");
|
|
654
594
|
}
|
|
655
|
-
async function
|
|
595
|
+
async function l(i) {
|
|
656
596
|
try {
|
|
657
|
-
const
|
|
658
|
-
if (!
|
|
597
|
+
const c = await fetch(`https://${e()}/v1/recordings/${i}/status`);
|
|
598
|
+
if (!c.ok)
|
|
659
599
|
throw new Error("Failed to fetch data");
|
|
660
|
-
return (await
|
|
661
|
-
} catch (
|
|
662
|
-
return console.error(
|
|
600
|
+
return (await c.json()).status === "ready";
|
|
601
|
+
} catch (c) {
|
|
602
|
+
return console.error(c), !1;
|
|
663
603
|
}
|
|
664
604
|
}
|
|
665
|
-
function
|
|
666
|
-
|
|
605
|
+
function p(i) {
|
|
606
|
+
b(w, i.url, !0), b(y, i.waveform, !0), b(u, "confirm");
|
|
667
607
|
}
|
|
668
|
-
var
|
|
669
|
-
get
|
|
608
|
+
var x = {
|
|
609
|
+
get sessionId() {
|
|
670
610
|
return s();
|
|
671
611
|
},
|
|
672
|
-
set
|
|
673
|
-
s(
|
|
612
|
+
set sessionId(i) {
|
|
613
|
+
s(i), H();
|
|
674
614
|
},
|
|
675
|
-
get
|
|
676
|
-
return
|
|
615
|
+
get labels() {
|
|
616
|
+
return d();
|
|
677
617
|
},
|
|
678
|
-
set
|
|
679
|
-
|
|
618
|
+
set labels(i = "") {
|
|
619
|
+
d(i), H();
|
|
680
620
|
},
|
|
681
621
|
get apiHost() {
|
|
682
|
-
return
|
|
622
|
+
return e();
|
|
683
623
|
},
|
|
684
|
-
set apiHost(
|
|
685
|
-
|
|
624
|
+
set apiHost(i = "api.44.audio") {
|
|
625
|
+
e(i), H();
|
|
686
626
|
}
|
|
687
|
-
},
|
|
627
|
+
}, A = De(), E = C(A);
|
|
688
628
|
{
|
|
689
|
-
var
|
|
690
|
-
var
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
}, g = (l) => {
|
|
695
|
-
var p = pr(), v = Q(p);
|
|
629
|
+
var h = (i) => {
|
|
630
|
+
var c = Se();
|
|
631
|
+
m(i, c);
|
|
632
|
+
}, k = (i) => {
|
|
633
|
+
var c = rr(), L = X(c);
|
|
696
634
|
{
|
|
697
|
-
var
|
|
698
|
-
var
|
|
699
|
-
|
|
700
|
-
},
|
|
701
|
-
var
|
|
635
|
+
var R = (S) => {
|
|
636
|
+
var M = Te();
|
|
637
|
+
m(S, M);
|
|
638
|
+
}, z = (S) => {
|
|
639
|
+
var M = rr(), or = X(M);
|
|
702
640
|
{
|
|
703
|
-
var
|
|
704
|
-
var
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
641
|
+
var Q = (V) => {
|
|
642
|
+
var ar = Ce();
|
|
643
|
+
m(V, ar);
|
|
644
|
+
}, Rr = (V) => {
|
|
645
|
+
var ar = rr(), Mr = X(ar);
|
|
646
|
+
{
|
|
647
|
+
var Dr = (W) => {
|
|
648
|
+
var J = $e(), Y = C(J), pr = C(Y);
|
|
649
|
+
$(Y);
|
|
650
|
+
var gr = O(Y, 2);
|
|
651
|
+
er(gr, {
|
|
652
|
+
onclick: () => b(u, "confirm"),
|
|
653
|
+
children: (j, N) => {
|
|
654
|
+
xr();
|
|
655
|
+
var K = dr("Try Again");
|
|
656
|
+
m(j, K);
|
|
657
|
+
},
|
|
658
|
+
$$slots: { default: !0 }
|
|
659
|
+
}), $(J), G(() => _r(pr, `Error: ${t(I) ?? ""}`)), m(W, J);
|
|
660
|
+
}, zr = (W) => {
|
|
661
|
+
var J = rr(), Y = X(J);
|
|
662
|
+
{
|
|
663
|
+
var pr = (j) => {
|
|
664
|
+
var N = Re(), K = C(N);
|
|
665
|
+
se(K, {
|
|
666
|
+
get audioURL() {
|
|
667
|
+
return t(w);
|
|
668
|
+
},
|
|
669
|
+
get waveform() {
|
|
670
|
+
return t(y);
|
|
671
|
+
}
|
|
672
|
+
});
|
|
673
|
+
var sr = O(K, 2), wr = C(sr);
|
|
674
|
+
er(wr, {
|
|
675
|
+
onclick: f,
|
|
676
|
+
children: (yr, Nr) => {
|
|
677
|
+
var mr = Ae();
|
|
678
|
+
m(yr, mr);
|
|
679
|
+
},
|
|
680
|
+
$$slots: { default: !0 }
|
|
681
|
+
});
|
|
682
|
+
var Fr = O(wr, 2);
|
|
683
|
+
er(Fr, {
|
|
684
|
+
type: "primary",
|
|
685
|
+
onclick: n,
|
|
686
|
+
children: (yr, Nr) => {
|
|
687
|
+
xr();
|
|
688
|
+
var mr = dr("Save");
|
|
689
|
+
m(yr, mr);
|
|
690
|
+
},
|
|
691
|
+
$$slots: { default: !0 }
|
|
692
|
+
}), $(sr), $(N), br(1, N, () => Ir, () => ({ y: 20, duration: 700 })), m(j, N);
|
|
693
|
+
}, gr = (j) => {
|
|
694
|
+
var N = Me(), K = C(N);
|
|
695
|
+
Ar(K, {
|
|
696
|
+
onDone: p,
|
|
697
|
+
get deviceId() {
|
|
698
|
+
return t(q);
|
|
699
|
+
},
|
|
700
|
+
set deviceId(sr) {
|
|
701
|
+
b(q, sr, !0);
|
|
702
|
+
}
|
|
703
|
+
}), $(N), br(1, N, () => Ir, () => ({ y: -20, duration: 700 })), m(j, N);
|
|
704
|
+
};
|
|
705
|
+
F(
|
|
706
|
+
Y,
|
|
707
|
+
(j) => {
|
|
708
|
+
t(u) === "confirm" ? j(pr) : j(gr, !1);
|
|
709
|
+
},
|
|
710
|
+
!0
|
|
711
|
+
);
|
|
712
|
+
}
|
|
713
|
+
m(W, J);
|
|
714
|
+
};
|
|
715
|
+
F(
|
|
716
|
+
Mr,
|
|
717
|
+
(W) => {
|
|
718
|
+
t(u) === "error" ? W(Dr) : W(zr, !1);
|
|
719
|
+
},
|
|
720
|
+
!0
|
|
721
|
+
);
|
|
722
|
+
}
|
|
723
|
+
m(V, ar);
|
|
741
724
|
};
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
(
|
|
745
|
-
t(
|
|
725
|
+
F(
|
|
726
|
+
or,
|
|
727
|
+
(V) => {
|
|
728
|
+
t(u) === "processing" ? V(Q) : V(Rr, !1);
|
|
746
729
|
},
|
|
747
730
|
!0
|
|
748
731
|
);
|
|
749
732
|
}
|
|
750
|
-
|
|
733
|
+
m(S, M);
|
|
751
734
|
};
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
(
|
|
755
|
-
t(
|
|
735
|
+
F(
|
|
736
|
+
L,
|
|
737
|
+
(S) => {
|
|
738
|
+
t(u) === "uploading" ? S(R) : S(z, !1);
|
|
756
739
|
},
|
|
757
740
|
!0
|
|
758
741
|
);
|
|
759
742
|
}
|
|
760
|
-
|
|
743
|
+
m(i, c);
|
|
761
744
|
};
|
|
762
|
-
|
|
763
|
-
t(
|
|
745
|
+
F(E, (i) => {
|
|
746
|
+
t(u) === "done" ? i(h) : i(k, !1);
|
|
764
747
|
});
|
|
765
748
|
}
|
|
766
|
-
return
|
|
749
|
+
return $(A), m(o, A), ur(x);
|
|
767
750
|
}
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
Se,
|
|
751
|
+
customElements.define("fortyfour-audio-recorder", lr(
|
|
752
|
+
Fe,
|
|
771
753
|
{
|
|
772
754
|
apiHost: { attribute: "api-host" },
|
|
773
|
-
|
|
774
|
-
labels: { attribute: "labels" }
|
|
775
|
-
labelsStr: {}
|
|
755
|
+
sessionId: { attribute: "session-id" },
|
|
756
|
+
labels: { attribute: "labels" }
|
|
776
757
|
},
|
|
777
758
|
[],
|
|
778
759
|
[],
|