@44-audio/components 0.1.0-dev.11 → 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 +109 -117
- package/dist/recorder.es.js +498 -434
- package/package.json +1 -1
- package/dist/AudioPlayer-Bha1JWsp.mjs +0 -2595
package/dist/recorder.es.js
CHANGED
|
@@ -1,367 +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
|
|
53
|
-
const [
|
|
54
|
-
if (!
|
|
55
|
-
const v =
|
|
56
|
-
r[v] =
|
|
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 v,
|
|
116
|
-
return
|
|
117
|
-
if (!
|
|
118
|
-
var
|
|
119
|
-
v =
|
|
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
125
|
deactivate: () => v.deactivate(),
|
|
126
126
|
reset: () => v.reset(),
|
|
127
127
|
t: () => v.t()
|
|
128
128
|
};
|
|
129
129
|
}
|
|
130
|
-
if (
|
|
131
|
-
return
|
|
132
|
-
abort:
|
|
133
|
-
deactivate:
|
|
134
|
-
reset:
|
|
135
|
-
t: () =>
|
|
130
|
+
if (a?.deactivate(), !r?.duration)
|
|
131
|
+
return d(), {
|
|
132
|
+
abort: Z,
|
|
133
|
+
deactivate: Z,
|
|
134
|
+
reset: Z,
|
|
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:
|
|
206
|
-
easing:
|
|
207
|
-
css: (
|
|
205
|
+
duration: a,
|
|
206
|
+
easing: s,
|
|
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:
|
|
215
|
-
easing:
|
|
216
|
-
css: (
|
|
217
|
-
transform: ${
|
|
218
|
-
opacity: ${
|
|
214
|
+
duration: a,
|
|
215
|
+
easing: s,
|
|
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
|
-
|
|
221
|
+
async function ge(o, r, a, s) {
|
|
222
|
+
b(r, !t(r)), t(a).length || await s();
|
|
223
223
|
}
|
|
224
|
-
var
|
|
225
|
-
const
|
|
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 = {
|
|
226
226
|
hash: "svelte-q87ygv",
|
|
227
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;}'
|
|
228
228
|
};
|
|
229
|
-
function
|
|
230
|
-
|
|
231
|
-
let
|
|
232
|
-
|
|
233
|
-
function
|
|
234
|
-
|
|
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);
|
|
235
235
|
}
|
|
236
|
-
return document.addEventListener("pointerdown",
|
|
237
|
-
document.removeEventListener("pointerdown",
|
|
236
|
+
return document.addEventListener("pointerdown", n), () => {
|
|
237
|
+
document.removeEventListener("pointerdown", n);
|
|
238
238
|
};
|
|
239
239
|
});
|
|
240
|
-
async function
|
|
240
|
+
async function D() {
|
|
241
241
|
try {
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
deviceId:
|
|
246
|
-
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}`
|
|
247
247
|
})),
|
|
248
248
|
!0
|
|
249
|
-
), !
|
|
250
|
-
} catch (
|
|
251
|
-
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);
|
|
252
252
|
}
|
|
253
253
|
}
|
|
254
|
-
function
|
|
254
|
+
function u(n) {
|
|
255
255
|
return () => {
|
|
256
|
-
|
|
256
|
+
a(n), b(e, !1);
|
|
257
257
|
};
|
|
258
258
|
}
|
|
259
|
-
var
|
|
259
|
+
var _ = {
|
|
260
260
|
get deviceId() {
|
|
261
|
-
return
|
|
261
|
+
return a();
|
|
262
262
|
},
|
|
263
|
-
set deviceId(
|
|
264
|
-
|
|
263
|
+
set deviceId(n = "") {
|
|
264
|
+
a(n), H();
|
|
265
265
|
},
|
|
266
266
|
get disabled() {
|
|
267
|
-
return
|
|
267
|
+
return s();
|
|
268
268
|
},
|
|
269
|
-
set disabled(
|
|
270
|
-
|
|
269
|
+
set disabled(n = !1) {
|
|
270
|
+
s(n), H();
|
|
271
271
|
}
|
|
272
|
-
},
|
|
273
|
-
|
|
274
|
-
var
|
|
272
|
+
}, w = _e(), y = C(w);
|
|
273
|
+
y.__click = [ge, e, d, D];
|
|
274
|
+
var q = O(y, 2);
|
|
275
275
|
{
|
|
276
|
-
var
|
|
277
|
-
var
|
|
278
|
-
|
|
279
|
-
var
|
|
280
|
-
|
|
281
|
-
|
|
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);
|
|
282
282
|
};
|
|
283
|
-
var
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
283
|
+
var R = C(c, !0);
|
|
284
|
+
$(c), $(i), G(() => {
|
|
285
|
+
tr(
|
|
286
|
+
c,
|
|
287
287
|
1,
|
|
288
|
-
|
|
288
|
+
cr([
|
|
289
289
|
"devices-select__option",
|
|
290
|
-
|
|
290
|
+
t(k).deviceId === a() && "devices-select__option--is-selected"
|
|
291
291
|
]),
|
|
292
292
|
"svelte-q87ygv"
|
|
293
|
-
),
|
|
294
|
-
}),
|
|
293
|
+
), c.disabled = s(), _r(R, t(k).label);
|
|
294
|
+
}), m(h, i);
|
|
295
295
|
});
|
|
296
|
-
var
|
|
296
|
+
var p = O(l, 2);
|
|
297
297
|
{
|
|
298
|
-
var
|
|
299
|
-
var
|
|
300
|
-
|
|
298
|
+
var x = (h) => {
|
|
299
|
+
var k = me();
|
|
300
|
+
m(h, k);
|
|
301
301
|
};
|
|
302
|
-
|
|
303
|
-
!
|
|
302
|
+
F(p, (h) => {
|
|
303
|
+
!t(d).length && !t(v) && h(x);
|
|
304
304
|
});
|
|
305
305
|
}
|
|
306
|
-
var
|
|
306
|
+
var A = O(p, 2);
|
|
307
307
|
{
|
|
308
|
-
var
|
|
309
|
-
var
|
|
310
|
-
|
|
308
|
+
var E = (h) => {
|
|
309
|
+
var k = be();
|
|
310
|
+
m(h, k);
|
|
311
311
|
};
|
|
312
|
-
|
|
313
|
-
|
|
312
|
+
F(A, (h) => {
|
|
313
|
+
t(v) && h(E);
|
|
314
314
|
});
|
|
315
315
|
}
|
|
316
|
-
|
|
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);
|
|
317
317
|
};
|
|
318
|
-
|
|
319
|
-
|
|
318
|
+
F(q, (n) => {
|
|
319
|
+
t(e) && n(I);
|
|
320
320
|
});
|
|
321
321
|
}
|
|
322
|
-
return
|
|
322
|
+
return $(w), Zr(w, (n) => g = n, () => g), G(() => re(y, "aria-expanded", t(e))), m(o, w), ur(_);
|
|
323
323
|
}
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
var
|
|
327
|
-
const
|
|
324
|
+
Lr(["click"]);
|
|
325
|
+
lr($r, { deviceId: {}, disabled: {} }, [], [], !0);
|
|
326
|
+
var xe = T("<button><!></button>");
|
|
327
|
+
const ke = {
|
|
328
328
|
hash: "svelte-f3ispq",
|
|
329
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);}"
|
|
330
330
|
};
|
|
331
|
-
function
|
|
332
|
-
|
|
333
|
-
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, () => {
|
|
334
334
|
});
|
|
335
|
-
var
|
|
335
|
+
var d = {
|
|
336
336
|
get type() {
|
|
337
|
-
return
|
|
337
|
+
return a();
|
|
338
338
|
},
|
|
339
|
-
set type(
|
|
340
|
-
|
|
339
|
+
set type(g) {
|
|
340
|
+
a(g), H();
|
|
341
341
|
},
|
|
342
342
|
get onclick() {
|
|
343
|
-
return
|
|
343
|
+
return s();
|
|
344
344
|
},
|
|
345
|
-
set onclick(
|
|
345
|
+
set onclick(g = () => {
|
|
346
346
|
}) {
|
|
347
|
-
|
|
347
|
+
s(g), H();
|
|
348
348
|
}
|
|
349
|
-
},
|
|
350
|
-
|
|
351
|
-
|
|
349
|
+
}, e = xe();
|
|
350
|
+
e.__click = function(...g) {
|
|
351
|
+
s()?.apply(this, g);
|
|
352
352
|
};
|
|
353
|
-
var v =
|
|
354
|
-
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);
|
|
355
355
|
}
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
var
|
|
359
|
-
const
|
|
360
|
-
hash: "svelte-
|
|
361
|
-
code: `.container.svelte-
|
|
362
|
-
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;}
|
|
363
363
|
|
|
364
|
-
@keyframes svelte-
|
|
364
|
+
@keyframes svelte-fc16qh-pulse {
|
|
365
365
|
0% {
|
|
366
366
|
transform: scale(1);
|
|
367
367
|
box-shadow: 0 0 0 0 hsla(0, 100%, 100%, 0.7);
|
|
@@ -375,317 +375,381 @@ const he = {
|
|
|
375
375
|
}
|
|
376
376
|
}`
|
|
377
377
|
};
|
|
378
|
-
function
|
|
379
|
-
|
|
380
|
-
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({
|
|
381
383
|
state: "ready",
|
|
382
384
|
// "ready", "recording"
|
|
383
385
|
timeElapsed: 0,
|
|
384
|
-
error: null
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
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
|
+
};
|
|
388
398
|
});
|
|
389
|
-
function
|
|
390
|
-
|
|
399
|
+
function D() {
|
|
400
|
+
t(e).state === "ready" ? u() : t(e).state === "recording" && _();
|
|
391
401
|
}
|
|
392
|
-
async function
|
|
393
|
-
const
|
|
394
|
-
audio: {
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
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));
|
|
401
438
|
};
|
|
402
|
-
setTimeout(
|
|
439
|
+
setTimeout(i, 1e3), t(e).state = "recording", k();
|
|
403
440
|
}
|
|
404
|
-
function
|
|
405
|
-
|
|
441
|
+
function _() {
|
|
442
|
+
v?.stop();
|
|
406
443
|
}
|
|
407
|
-
var
|
|
444
|
+
var w = {
|
|
408
445
|
get deviceId() {
|
|
409
|
-
return
|
|
446
|
+
return a();
|
|
410
447
|
},
|
|
411
|
-
set deviceId(
|
|
412
|
-
|
|
448
|
+
set deviceId(l = "") {
|
|
449
|
+
a(l), H();
|
|
413
450
|
},
|
|
414
451
|
get onDone() {
|
|
415
|
-
return
|
|
452
|
+
return s();
|
|
416
453
|
},
|
|
417
|
-
set onDone(
|
|
418
|
-
|
|
454
|
+
set onDone(l) {
|
|
455
|
+
s(l), H();
|
|
419
456
|
}
|
|
420
|
-
}, y =
|
|
457
|
+
}, y = Ee(), q = C(y);
|
|
421
458
|
{
|
|
422
|
-
let
|
|
423
|
-
|
|
424
|
-
onclick:
|
|
459
|
+
let l = nr(() => t(e).state === "recording" && "recording");
|
|
460
|
+
er(q, {
|
|
461
|
+
onclick: D,
|
|
425
462
|
get type() {
|
|
426
|
-
return
|
|
463
|
+
return t(l);
|
|
427
464
|
},
|
|
428
|
-
children: (
|
|
429
|
-
var
|
|
465
|
+
children: (p, x) => {
|
|
466
|
+
var A = qe(), E = X(A), h = O(E, 2);
|
|
430
467
|
{
|
|
431
|
-
var
|
|
432
|
-
var
|
|
433
|
-
|
|
434
|
-
},
|
|
435
|
-
var
|
|
468
|
+
var k = (c) => {
|
|
469
|
+
var L = dr("Record");
|
|
470
|
+
m(c, L);
|
|
471
|
+
}, i = (c) => {
|
|
472
|
+
var L = rr(), R = X(L);
|
|
436
473
|
{
|
|
437
|
-
var
|
|
438
|
-
var
|
|
439
|
-
|
|
474
|
+
var z = (S) => {
|
|
475
|
+
var M = dr("Recording");
|
|
476
|
+
m(S, M);
|
|
440
477
|
};
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
(
|
|
444
|
-
|
|
478
|
+
F(
|
|
479
|
+
R,
|
|
480
|
+
(S) => {
|
|
481
|
+
t(e).state === "recording" && S(z);
|
|
445
482
|
},
|
|
446
483
|
!0
|
|
447
484
|
);
|
|
448
485
|
}
|
|
449
|
-
|
|
486
|
+
m(c, L);
|
|
450
487
|
};
|
|
451
|
-
|
|
452
|
-
|
|
488
|
+
F(h, (c) => {
|
|
489
|
+
t(e).state === "ready" ? c(k) : c(i, !1);
|
|
453
490
|
});
|
|
454
491
|
}
|
|
455
|
-
|
|
456
|
-
|
|
492
|
+
G(() => tr(
|
|
493
|
+
E,
|
|
457
494
|
1,
|
|
458
|
-
|
|
495
|
+
cr([
|
|
459
496
|
"record-icon",
|
|
460
|
-
|
|
497
|
+
t(e).state === "recording" && "record-icon--is-recording"
|
|
461
498
|
]),
|
|
462
|
-
"svelte-
|
|
463
|
-
)),
|
|
499
|
+
"svelte-fc16qh"
|
|
500
|
+
)), m(p, A);
|
|
464
501
|
},
|
|
465
502
|
$$slots: { default: !0 }
|
|
466
503
|
});
|
|
467
504
|
}
|
|
468
|
-
var
|
|
505
|
+
var I = O(q, 2);
|
|
469
506
|
{
|
|
470
|
-
let
|
|
471
|
-
|
|
507
|
+
let l = nr(() => t(e).state === "recording");
|
|
508
|
+
$r(I, {
|
|
472
509
|
get disabled() {
|
|
473
|
-
return
|
|
510
|
+
return t(l);
|
|
474
511
|
},
|
|
475
512
|
get deviceId() {
|
|
476
|
-
return
|
|
513
|
+
return a();
|
|
477
514
|
},
|
|
478
|
-
set deviceId(
|
|
479
|
-
|
|
515
|
+
set deviceId(p) {
|
|
516
|
+
a(p);
|
|
480
517
|
}
|
|
481
518
|
});
|
|
482
519
|
}
|
|
483
|
-
var
|
|
520
|
+
var n = O(I, 2);
|
|
484
521
|
{
|
|
485
|
-
var
|
|
486
|
-
var
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
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);
|
|
491
534
|
};
|
|
492
|
-
|
|
493
|
-
|
|
535
|
+
F(n, (l) => {
|
|
536
|
+
t(e).state === "recording" && l(f);
|
|
494
537
|
});
|
|
495
538
|
}
|
|
496
|
-
return
|
|
539
|
+
return $(y), G(() => tr(
|
|
497
540
|
y,
|
|
498
541
|
1,
|
|
499
|
-
|
|
542
|
+
cr([
|
|
500
543
|
"container",
|
|
501
|
-
|
|
544
|
+
t(e).state === "recording" && "is-recording"
|
|
502
545
|
]),
|
|
503
|
-
"svelte-
|
|
504
|
-
)),
|
|
546
|
+
"svelte-fc16qh"
|
|
547
|
+
)), m(o, y), ur(w);
|
|
505
548
|
}
|
|
506
|
-
|
|
507
|
-
var
|
|
508
|
-
const
|
|
509
|
-
hash: "svelte-
|
|
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",
|
|
510
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)
|
|
511
|
-
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;}`
|
|
512
555
|
};
|
|
513
|
-
function
|
|
514
|
-
|
|
515
|
-
const
|
|
516
|
-
let
|
|
517
|
-
const v =
|
|
518
|
-
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(
|
|
519
562
|
"ready"
|
|
520
|
-
// "ready", "recording", "confirm", "processing", "done", "error"
|
|
521
|
-
),
|
|
522
|
-
async function
|
|
523
|
-
if (
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
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");
|
|
538
589
|
}
|
|
539
|
-
i.dispatchEvent(new CustomEvent("recording-complete", { detail: { recordingId: a(y) } })), w(l, "done");
|
|
540
|
-
} catch (q) {
|
|
541
|
-
console.error("Error saving recording:", q), w(x, q.message || "Failed to save recording", !0), w(l, "error");
|
|
542
590
|
}
|
|
543
591
|
}
|
|
544
|
-
function
|
|
545
|
-
w(
|
|
592
|
+
function f() {
|
|
593
|
+
b(w, null), b(y, null), b(u, "ready");
|
|
546
594
|
}
|
|
547
|
-
async function
|
|
595
|
+
async function l(i) {
|
|
548
596
|
try {
|
|
549
|
-
const
|
|
550
|
-
if (!
|
|
597
|
+
const c = await fetch(`https://${e()}/v1/recordings/${i}/status`);
|
|
598
|
+
if (!c.ok)
|
|
551
599
|
throw new Error("Failed to fetch data");
|
|
552
|
-
return (await
|
|
553
|
-
} catch (
|
|
554
|
-
return console.error(
|
|
600
|
+
return (await c.json()).status === "ready";
|
|
601
|
+
} catch (c) {
|
|
602
|
+
return console.error(c), !1;
|
|
555
603
|
}
|
|
556
604
|
}
|
|
557
|
-
function
|
|
558
|
-
w(
|
|
605
|
+
function p(i) {
|
|
606
|
+
b(w, i.url, !0), b(y, i.waveform, !0), b(u, "confirm");
|
|
559
607
|
}
|
|
560
|
-
var
|
|
608
|
+
var x = {
|
|
561
609
|
get sessionId() {
|
|
562
|
-
return
|
|
610
|
+
return s();
|
|
563
611
|
},
|
|
564
|
-
set sessionId(
|
|
565
|
-
|
|
612
|
+
set sessionId(i) {
|
|
613
|
+
s(i), H();
|
|
566
614
|
},
|
|
567
615
|
get labels() {
|
|
568
|
-
return
|
|
616
|
+
return d();
|
|
569
617
|
},
|
|
570
|
-
set labels(
|
|
571
|
-
|
|
618
|
+
set labels(i = "") {
|
|
619
|
+
d(i), H();
|
|
572
620
|
},
|
|
573
621
|
get apiHost() {
|
|
574
|
-
return
|
|
622
|
+
return e();
|
|
575
623
|
},
|
|
576
|
-
set apiHost(
|
|
577
|
-
|
|
624
|
+
set apiHost(i = "api.44.audio") {
|
|
625
|
+
e(i), H();
|
|
578
626
|
}
|
|
579
|
-
},
|
|
627
|
+
}, A = De(), E = C(A);
|
|
580
628
|
{
|
|
581
|
-
var
|
|
582
|
-
var
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
}, k = (c) => {
|
|
587
|
-
var g = tr(), m = X(g);
|
|
629
|
+
var h = (i) => {
|
|
630
|
+
var c = Se();
|
|
631
|
+
m(i, c);
|
|
632
|
+
}, k = (i) => {
|
|
633
|
+
var c = rr(), L = X(c);
|
|
588
634
|
{
|
|
589
|
-
var
|
|
590
|
-
var
|
|
591
|
-
|
|
592
|
-
},
|
|
593
|
-
var
|
|
635
|
+
var R = (S) => {
|
|
636
|
+
var M = Te();
|
|
637
|
+
m(S, M);
|
|
638
|
+
}, z = (S) => {
|
|
639
|
+
var M = rr(), or = X(M);
|
|
594
640
|
{
|
|
595
|
-
var
|
|
596
|
-
var
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
onclick: () => w(l, "confirm"),
|
|
601
|
-
children: (j, M) => {
|
|
602
|
-
hr();
|
|
603
|
-
var W = ir("Try Again");
|
|
604
|
-
u(j, W);
|
|
605
|
-
},
|
|
606
|
-
$$slots: { default: !0 }
|
|
607
|
-
}), L(V), O(() => sr(vr, `Error: ${a(x) ?? ""}`)), u(K, V);
|
|
608
|
-
}, Tr = (K) => {
|
|
609
|
-
var V = tr(), J = X(V);
|
|
641
|
+
var Q = (V) => {
|
|
642
|
+
var ar = Ce();
|
|
643
|
+
m(V, ar);
|
|
644
|
+
}, Rr = (V) => {
|
|
645
|
+
var ar = rr(), Mr = X(ar);
|
|
610
646
|
{
|
|
611
|
-
var
|
|
612
|
-
var
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
children: (pr, Rr) => {
|
|
622
|
-
var yr = ke();
|
|
623
|
-
u(pr, yr);
|
|
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);
|
|
624
657
|
},
|
|
625
658
|
$$slots: { default: !0 }
|
|
626
|
-
});
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
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);
|
|
649
714
|
};
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
(
|
|
653
|
-
|
|
715
|
+
F(
|
|
716
|
+
Mr,
|
|
717
|
+
(W) => {
|
|
718
|
+
t(u) === "error" ? W(Dr) : W(zr, !1);
|
|
654
719
|
},
|
|
655
720
|
!0
|
|
656
721
|
);
|
|
657
722
|
}
|
|
658
|
-
|
|
723
|
+
m(V, ar);
|
|
659
724
|
};
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
(
|
|
663
|
-
|
|
725
|
+
F(
|
|
726
|
+
or,
|
|
727
|
+
(V) => {
|
|
728
|
+
t(u) === "processing" ? V(Q) : V(Rr, !1);
|
|
664
729
|
},
|
|
665
730
|
!0
|
|
666
731
|
);
|
|
667
732
|
}
|
|
668
|
-
|
|
733
|
+
m(S, M);
|
|
669
734
|
};
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
(
|
|
673
|
-
|
|
735
|
+
F(
|
|
736
|
+
L,
|
|
737
|
+
(S) => {
|
|
738
|
+
t(u) === "uploading" ? S(R) : S(z, !1);
|
|
674
739
|
},
|
|
675
740
|
!0
|
|
676
741
|
);
|
|
677
742
|
}
|
|
678
|
-
|
|
743
|
+
m(i, c);
|
|
679
744
|
};
|
|
680
|
-
|
|
681
|
-
|
|
745
|
+
F(E, (i) => {
|
|
746
|
+
t(u) === "done" ? i(h) : i(k, !1);
|
|
682
747
|
});
|
|
683
748
|
}
|
|
684
|
-
return
|
|
749
|
+
return $(A), m(o, A), ur(x);
|
|
685
750
|
}
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
Te,
|
|
751
|
+
customElements.define("fortyfour-audio-recorder", lr(
|
|
752
|
+
Fe,
|
|
689
753
|
{
|
|
690
754
|
apiHost: { attribute: "api-host" },
|
|
691
755
|
sessionId: { attribute: "session-id" },
|