zds-pickers 4.3.0 → 4.5.0
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/index.cjs.js +5 -5
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +696 -2452
- package/dist/index.es.js.map +1 -1
- package/dist/other/SoundFontProvider.js +38 -6
- package/dist/pickers/KeyPicker.js +2 -2
- package/dist/types/pickers/KeyPicker.d.ts +2 -0
- package/package.json +4 -3
package/dist/index.es.js
CHANGED
|
@@ -1,41 +1,35 @@
|
|
|
1
1
|
import e, { Children as t, Fragment as n, createElement as r, forwardRef as i, isValidElement as a, useCallback as o, useEffect as s, useLayoutEffect as c, useMemo as l, useRef as u, useState as d } from "react";
|
|
2
|
-
import f from "
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import _,
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import w from "react-
|
|
11
|
-
import
|
|
2
|
+
import { Midi as f, Note as p } from "tonal";
|
|
3
|
+
import m from "classnames";
|
|
4
|
+
import h from "soundfont-player";
|
|
5
|
+
import { Fragment as g, jsx as _, jsxs as v } from "react/jsx-runtime";
|
|
6
|
+
import y, { components as b } from "react-select";
|
|
7
|
+
import { drag as x } from "d3-drag";
|
|
8
|
+
import { scaleLinear as S } from "d3-scale";
|
|
9
|
+
import { select as C } from "d3-selection";
|
|
10
|
+
import { SvgLoader as w, SvgProxy as T } from "react-svgmt";
|
|
11
|
+
import E from "react-dom";
|
|
12
|
+
import { emptyMapping as D, getStockNames as O, getUserMappingNames as k } from "zds-mappings";
|
|
12
13
|
//#region \0rolldown/runtime.js
|
|
13
|
-
var
|
|
14
|
-
|
|
15
|
-
for (var r in e) O(n, r, {
|
|
16
|
-
get: e[r],
|
|
17
|
-
enumerable: !0
|
|
18
|
-
});
|
|
19
|
-
return t || O(n, Symbol.toStringTag, { value: "Module" }), n;
|
|
20
|
-
}, P = (e, t, n, r) => {
|
|
21
|
-
if (t && typeof t == "object" || typeof t == "function") for (var i = te(t), a = 0, o = i.length, s; a < o; a++) s = i[a], !j.call(e, s) && s !== n && O(e, s, {
|
|
14
|
+
var A = Object.create, j = Object.defineProperty, M = Object.getOwnPropertyDescriptor, N = Object.getOwnPropertyNames, P = Object.getPrototypeOf, F = Object.prototype.hasOwnProperty, I = (e, t) => () => (t || (e((t = { exports: {} }).exports, t), e = null), t.exports), L = (e, t, n, r) => {
|
|
15
|
+
if (t && typeof t == "object" || typeof t == "function") for (var i = N(t), a = 0, o = i.length, s; a < o; a++) s = i[a], !F.call(e, s) && s !== n && j(e, s, {
|
|
22
16
|
get: ((e) => t[e]).bind(null, s),
|
|
23
|
-
enumerable: !(r =
|
|
17
|
+
enumerable: !(r = M(t, s)) || r.enumerable
|
|
24
18
|
});
|
|
25
19
|
return e;
|
|
26
|
-
},
|
|
20
|
+
}, R = (e, t, n) => (n = e == null ? {} : A(P(e)), L(t || !e || !e.__esModule || !F.call(e, "default") ? j(n, "default", {
|
|
27
21
|
value: e,
|
|
28
22
|
enumerable: !0
|
|
29
|
-
}) : n, e)),
|
|
23
|
+
}) : n, e)), z = (e) => Array.from(Array(e).keys()), B = (e, t = 127, n = 0) => {
|
|
30
24
|
let r = typeof e == "string" ? Number.parseInt(e, 10) : e;
|
|
31
25
|
return (Number.isNaN(r) || r === null) && (r = n), r >= n ? r <= t ? r : t : n;
|
|
32
|
-
},
|
|
26
|
+
}, ee = (e, t) => (n) => n?.find((n) => n?.[e] === t), V = (...e) => (t) => Object.entries(t).filter(([t]) => !e.flat().map(String).includes(t)).reduce((e, [t, n]) => Object.assign(e, { [t]: n }), {}), te = (...e) => (t) => Object.entries(t).filter(([t]) => e.flat().map(String).includes(t)).reduce((e, [t, n]) => Object.assign(e, { [t]: n }), {}), ne = (e, t) => (n) => ({
|
|
33
27
|
...n,
|
|
34
28
|
[e]: t
|
|
35
|
-
}),
|
|
29
|
+
}), H = (/* @__PURE__ */ "Bank Select.Modulation Wheel.Breath Controller..Foot Control.Portamento Time.Data Entry Slider.Volume.Balance..Pan.Expression.Effect Control 1.Effect Control 2...................Controller 0.Controller 1.Controller 2.Controller 3.Controller 4.Controller 5.Controller 6.Controller 7.Controller 8.Controller 9.Controller 10.Controller 11.Controller 12.Controller 13.Controller 14.Controller 15.Controller 16.Controller 17.Controller 18.Controller 19.Controller 20.Controller 21.Controller 22.Controller 23.Controller 24.Controller 25.Controller 26.Controller 27.Controller 28.Controller 29.Controller 30.Controller 31.Sustain.Portamento.Sostenuto.Soft Pedal.Legato Pedal.Sustain 2.Sound Variation.Resonance/Timbre.Sound Release Time.Sound Attack Time.Frequency Cutoff.Sound Control 6.Sound Control 7.Sound Control 8.Sound Control 9.Sound Control 10.Decay or General 1.Hi-Pass or General 2.General 3.General 4.Portamento Amount.......Reverb Level.Tremolo Depth.Chorus Level.Detune.Phaser Depth.Data Entry +1.Data Entry -1.Non-registered LSB.Non-registered MSB.Registered msb.Registered lsb.........Shift 1.Shift 2.Shift 3.Shift 4.Shift 5.Shift 6.....All Sound Off.All Controllers Off.Local Mode.All Notes Off.Omni Mode Off.Omni Mode On.Mono Mode On.Poly Mode".split(".")).map((e, t) => ({
|
|
36
30
|
label: String(e).length ? `${t} - ${e}` : String(t),
|
|
37
31
|
value: t
|
|
38
|
-
})),
|
|
32
|
+
})), U = {
|
|
39
33
|
noteOff: 8,
|
|
40
34
|
noteOn: 9,
|
|
41
35
|
aftertouch: 10,
|
|
@@ -43,1815 +37,51 @@ var ee = Object.create, O = Object.defineProperty, k = Object.getOwnPropertyDesc
|
|
|
43
37
|
programChange: 12,
|
|
44
38
|
channelPressure: 13,
|
|
45
39
|
pitchWheel: 14
|
|
46
|
-
},
|
|
40
|
+
}, re = 15, W = 240, ie = [
|
|
47
41
|
{
|
|
48
|
-
value:
|
|
42
|
+
value: U.noteOn,
|
|
49
43
|
label: "Note On"
|
|
50
44
|
},
|
|
51
45
|
{
|
|
52
|
-
value:
|
|
46
|
+
value: U.noteOff,
|
|
53
47
|
label: "Note Stack"
|
|
54
48
|
},
|
|
55
49
|
{
|
|
56
|
-
value:
|
|
50
|
+
value: U.controlChange,
|
|
57
51
|
label: "Control Change"
|
|
58
52
|
},
|
|
59
53
|
{
|
|
60
|
-
value:
|
|
54
|
+
value: U.programChange,
|
|
61
55
|
label: "Program Change"
|
|
62
56
|
},
|
|
63
57
|
{
|
|
64
|
-
value:
|
|
58
|
+
value: U.aftertouch,
|
|
65
59
|
label: "Aftertouch"
|
|
66
60
|
},
|
|
67
61
|
{
|
|
68
|
-
value:
|
|
62
|
+
value: U.channelPressure,
|
|
69
63
|
label: "Channel Pressure"
|
|
70
64
|
},
|
|
71
65
|
{
|
|
72
|
-
value:
|
|
66
|
+
value: U.pitchWheel,
|
|
73
67
|
label: "Pitch Wheel"
|
|
74
68
|
}
|
|
75
|
-
],
|
|
69
|
+
], ae = (e) => ie.filter(({ value: t }) => t === e)[0]?.label || "???", oe = (e, t) => e | t << 4, se = (e) => ({
|
|
76
70
|
status: (e & 240) >> 4 | 8,
|
|
77
71
|
channel: e & 15
|
|
78
|
-
}),
|
|
79
|
-
[
|
|
80
|
-
[
|
|
81
|
-
[
|
|
82
|
-
[
|
|
83
|
-
[
|
|
84
|
-
[
|
|
85
|
-
[
|
|
86
|
-
[
|
|
87
|
-
},
|
|
72
|
+
}), ce = 0, G = 1, le = 2, ue = 3, de = 4, fe = 5, pe = 6, me = 7, he = {
|
|
73
|
+
[ce]: "Linear, no change",
|
|
74
|
+
[G]: "A little less sensitive",
|
|
75
|
+
[le]: "Even less sensitive",
|
|
76
|
+
[ue]: "Least sensitive",
|
|
77
|
+
[de]: "A little sensitive",
|
|
78
|
+
[fe]: "Moderately sensitive",
|
|
79
|
+
[pe]: "Most sensitive",
|
|
80
|
+
[me]: "Always maxed out"
|
|
81
|
+
}, K = Object.keys(he).map(Number).map((e) => ({
|
|
88
82
|
value: e,
|
|
89
|
-
label:
|
|
90
|
-
})),
|
|
91
|
-
//#endregion
|
|
92
|
-
//#region node_modules/@tonaljs/pitch/dist/index.mjs
|
|
93
|
-
function Se(e) {
|
|
94
|
-
return !!(typeof e == "object" && e && "name" in e && typeof e.name == "string");
|
|
95
|
-
}
|
|
96
|
-
function Ce(e) {
|
|
97
|
-
return !!(typeof e == "object" && e && "step" in e && typeof e.step == "number" && "alt" in e && typeof e.alt == "number" && !isNaN(e.step) && !isNaN(e.alt));
|
|
98
|
-
}
|
|
99
|
-
var we = [
|
|
100
|
-
0,
|
|
101
|
-
2,
|
|
102
|
-
4,
|
|
103
|
-
-1,
|
|
104
|
-
1,
|
|
105
|
-
3,
|
|
106
|
-
5
|
|
107
|
-
], Te = we.map((e) => Math.floor(e * 7 / 12));
|
|
108
|
-
function Ee(e) {
|
|
109
|
-
let { step: t, alt: n, oct: r, dir: i = 1 } = e, a = we[t] + 7 * n;
|
|
110
|
-
if (r === void 0) return [i * a];
|
|
111
|
-
let o = r - Te[t] - 4 * n;
|
|
112
|
-
return [i * a, i * o];
|
|
113
|
-
}
|
|
114
|
-
var De = [
|
|
115
|
-
3,
|
|
116
|
-
0,
|
|
117
|
-
4,
|
|
118
|
-
1,
|
|
119
|
-
5,
|
|
120
|
-
2,
|
|
121
|
-
6
|
|
122
|
-
];
|
|
123
|
-
function Oe(e) {
|
|
124
|
-
let [t, n, r] = e, i = De[ke(t)], a = Math.floor((t + 1) / 7);
|
|
125
|
-
return n === void 0 ? {
|
|
126
|
-
step: i,
|
|
127
|
-
alt: a,
|
|
128
|
-
dir: r
|
|
129
|
-
} : {
|
|
130
|
-
step: i,
|
|
131
|
-
alt: a,
|
|
132
|
-
oct: n + 4 * a + Te[i],
|
|
133
|
-
dir: r
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
function ke(e) {
|
|
137
|
-
let t = (e + 1) % 7;
|
|
138
|
-
return t < 0 ? 7 + t : t;
|
|
139
|
-
}
|
|
140
|
-
//#endregion
|
|
141
|
-
//#region node_modules/@tonaljs/pitch-interval/dist/index.mjs
|
|
142
|
-
var Ae = (e, t) => Array(Math.abs(t) + 1).join(e), je = Object.freeze({
|
|
143
|
-
empty: !0,
|
|
144
|
-
name: "",
|
|
145
|
-
num: NaN,
|
|
146
|
-
q: "",
|
|
147
|
-
type: "",
|
|
148
|
-
step: NaN,
|
|
149
|
-
alt: NaN,
|
|
150
|
-
dir: NaN,
|
|
151
|
-
simple: NaN,
|
|
152
|
-
semitones: NaN,
|
|
153
|
-
chroma: NaN,
|
|
154
|
-
coord: [],
|
|
155
|
-
oct: NaN
|
|
156
|
-
}), Me = /* @__PURE__ */ RegExp("^([-+]?\\d+)(d{1,4}|m|M|P|A{1,4})|(AA|A|P|M|m|d|dd)([-+]?\\d+)$");
|
|
157
|
-
function Ne(e) {
|
|
158
|
-
let t = Me.exec(`${e}`);
|
|
159
|
-
return t === null ? ["", ""] : t[1] ? [t[1], t[2]] : [t[4], t[3]];
|
|
160
|
-
}
|
|
161
|
-
var Pe = {};
|
|
162
|
-
function V(e) {
|
|
163
|
-
return typeof e == "string" ? Pe[e] || (Pe[e] = Le(e)) : Ce(e) ? V(Be(e)) : Se(e) ? V(e.name) : je;
|
|
164
|
-
}
|
|
165
|
-
var Fe = [
|
|
166
|
-
0,
|
|
167
|
-
2,
|
|
168
|
-
4,
|
|
169
|
-
5,
|
|
170
|
-
7,
|
|
171
|
-
9,
|
|
172
|
-
11
|
|
173
|
-
], Ie = "PMMPPMM";
|
|
174
|
-
function Le(e) {
|
|
175
|
-
let t = Ne(e);
|
|
176
|
-
if (t[0] === "") return je;
|
|
177
|
-
let n = +t[0], r = t[1], i = (Math.abs(n) - 1) % 7, a = Ie[i];
|
|
178
|
-
if (a === "M" && r === "P") return je;
|
|
179
|
-
let o = a === "M" ? "majorable" : "perfectable", s = "" + n + r, c = n < 0 ? -1 : 1, l = n === 8 || n === -8 ? n : c * (i + 1), u = ze(o, r), d = Math.floor((Math.abs(n) - 1) / 7);
|
|
180
|
-
return {
|
|
181
|
-
empty: !1,
|
|
182
|
-
name: s,
|
|
183
|
-
num: n,
|
|
184
|
-
q: r,
|
|
185
|
-
step: i,
|
|
186
|
-
alt: u,
|
|
187
|
-
dir: c,
|
|
188
|
-
type: o,
|
|
189
|
-
simple: l,
|
|
190
|
-
semitones: c * (Fe[i] + u + 12 * d),
|
|
191
|
-
chroma: (c * (Fe[i] + u) % 12 + 12) % 12,
|
|
192
|
-
coord: Ee({
|
|
193
|
-
step: i,
|
|
194
|
-
alt: u,
|
|
195
|
-
oct: d,
|
|
196
|
-
dir: c
|
|
197
|
-
}),
|
|
198
|
-
oct: d
|
|
199
|
-
};
|
|
200
|
-
}
|
|
201
|
-
function Re(e, t) {
|
|
202
|
-
let [n, r = 0] = e, i = n * 7 + r * 12 < 0;
|
|
203
|
-
return V(Oe(t || i ? [
|
|
204
|
-
-n,
|
|
205
|
-
-r,
|
|
206
|
-
-1
|
|
207
|
-
] : [
|
|
208
|
-
n,
|
|
209
|
-
r,
|
|
210
|
-
1
|
|
211
|
-
]));
|
|
212
|
-
}
|
|
213
|
-
function ze(e, t) {
|
|
214
|
-
return t === "M" && e === "majorable" || t === "P" && e === "perfectable" ? 0 : t === "m" && e === "majorable" ? -1 : /^A+$/.test(t) ? t.length : /^d+$/.test(t) ? -1 * (e === "perfectable" ? t.length : t.length + 1) : 0;
|
|
215
|
-
}
|
|
216
|
-
function Be(e) {
|
|
217
|
-
let { step: t, alt: n, oct: r = 0, dir: i } = e;
|
|
218
|
-
if (!i) return "";
|
|
219
|
-
let a = t + 1 + 7 * r, o = a === 0 ? t + 1 : a, s = i < 0 ? "-" : "", c = Ie[t] === "M" ? "majorable" : "perfectable";
|
|
220
|
-
return s + o + Ve(c, n);
|
|
221
|
-
}
|
|
222
|
-
function Ve(e, t) {
|
|
223
|
-
return t === 0 ? e === "majorable" ? "M" : "P" : t === -1 && e === "majorable" ? "m" : t > 0 ? Ae("A", t) : Ae("d", e === "perfectable" ? t : t + 1);
|
|
224
|
-
}
|
|
225
|
-
//#endregion
|
|
226
|
-
//#region node_modules/@tonaljs/pitch-note/dist/index.mjs
|
|
227
|
-
var He = (e, t) => Array(Math.abs(t) + 1).join(e), Ue = Object.freeze({
|
|
228
|
-
empty: !0,
|
|
229
|
-
name: "",
|
|
230
|
-
letter: "",
|
|
231
|
-
acc: "",
|
|
232
|
-
pc: "",
|
|
233
|
-
step: NaN,
|
|
234
|
-
alt: NaN,
|
|
235
|
-
chroma: NaN,
|
|
236
|
-
height: NaN,
|
|
237
|
-
coord: [],
|
|
238
|
-
midi: null,
|
|
239
|
-
freq: null
|
|
240
|
-
}), We = /* @__PURE__ */ new Map(), Ge = (e) => "CDEFGAB".charAt(e), Ke = (e) => e < 0 ? He("b", -e) : He("#", e), qe = (e) => e[0] === "b" ? -e.length : e.length;
|
|
241
|
-
function H(e) {
|
|
242
|
-
let t = JSON.stringify(e), n = We.get(t);
|
|
243
|
-
if (n) return n;
|
|
244
|
-
let r = typeof e == "string" ? $e(e) : Ce(e) ? H(et(e)) : Se(e) ? H(e.name) : Ue;
|
|
245
|
-
return We.set(t, r), r;
|
|
246
|
-
}
|
|
247
|
-
var Je = /^([a-gA-G]?)(#{1,}|b{1,}|x{1,}|)(-?\d*)\s*(.*)$/;
|
|
248
|
-
function Ye(e) {
|
|
249
|
-
let t = Je.exec(e);
|
|
250
|
-
return t ? [
|
|
251
|
-
t[1].toUpperCase(),
|
|
252
|
-
t[2].replace(/x/g, "##"),
|
|
253
|
-
t[3],
|
|
254
|
-
t[4]
|
|
255
|
-
] : [
|
|
256
|
-
"",
|
|
257
|
-
"",
|
|
258
|
-
"",
|
|
259
|
-
""
|
|
260
|
-
];
|
|
261
|
-
}
|
|
262
|
-
function Xe(e) {
|
|
263
|
-
return H(Oe(e));
|
|
264
|
-
}
|
|
265
|
-
var Ze = (e, t) => (e % t + t) % t, Qe = [
|
|
266
|
-
0,
|
|
267
|
-
2,
|
|
268
|
-
4,
|
|
269
|
-
5,
|
|
270
|
-
7,
|
|
271
|
-
9,
|
|
272
|
-
11
|
|
273
|
-
];
|
|
274
|
-
function $e(e) {
|
|
275
|
-
let t = Ye(e);
|
|
276
|
-
if (t[0] === "" || t[3] !== "") return Ue;
|
|
277
|
-
let n = t[0], r = t[1], i = t[2], a = (n.charCodeAt(0) + 3) % 7, o = qe(r), s = i.length ? +i : void 0, c = Ee({
|
|
278
|
-
step: a,
|
|
279
|
-
alt: o,
|
|
280
|
-
oct: s
|
|
281
|
-
}), l = n + r + i, u = n + r, d = (Qe[a] + o + 120) % 12, f = s === void 0 ? Ze(Qe[a] + o, 12) - 1188 : Qe[a] + o + 12 * (s + 1), p = f >= 0 && f <= 127 ? f : null;
|
|
282
|
-
return {
|
|
283
|
-
empty: !1,
|
|
284
|
-
acc: r,
|
|
285
|
-
alt: o,
|
|
286
|
-
chroma: d,
|
|
287
|
-
coord: c,
|
|
288
|
-
freq: s === void 0 ? null : 2 ** ((f - 69) / 12) * 440,
|
|
289
|
-
height: f,
|
|
290
|
-
letter: n,
|
|
291
|
-
midi: p,
|
|
292
|
-
name: l,
|
|
293
|
-
oct: s,
|
|
294
|
-
pc: u,
|
|
295
|
-
step: a
|
|
296
|
-
};
|
|
297
|
-
}
|
|
298
|
-
function et(e) {
|
|
299
|
-
let { step: t, alt: n, oct: r } = e, i = Ge(t);
|
|
300
|
-
if (!i) return "";
|
|
301
|
-
let a = i + Ke(n);
|
|
302
|
-
return r || r === 0 ? a + r : a;
|
|
303
|
-
}
|
|
304
|
-
//#endregion
|
|
305
|
-
//#region node_modules/@tonaljs/pitch-distance/dist/index.mjs
|
|
306
|
-
function U(e, t) {
|
|
307
|
-
let n = H(e), r = Array.isArray(t) ? t : V(t).coord;
|
|
308
|
-
if (n.empty || !r || r.length < 2) return "";
|
|
309
|
-
let i = n.coord;
|
|
310
|
-
return Xe(i.length === 1 ? [i[0] + r[0]] : [i[0] + r[0], i[1] + r[1]]).name;
|
|
311
|
-
}
|
|
312
|
-
function tt(e, t) {
|
|
313
|
-
let n = e.length;
|
|
314
|
-
return (r) => {
|
|
315
|
-
if (!t) return "";
|
|
316
|
-
let i = r < 0 ? (n - -r % n) % n : r % n;
|
|
317
|
-
return U(U(t, [0, Math.floor(r / n)]), e[i]);
|
|
318
|
-
};
|
|
319
|
-
}
|
|
320
|
-
function nt(e, t) {
|
|
321
|
-
let n = H(e), r = H(t);
|
|
322
|
-
if (n.empty || r.empty) return "";
|
|
323
|
-
let i = n.coord, a = r.coord, o = a[0] - i[0], s = i.length === 2 && a.length === 2 ? a[1] - i[1] : -Math.floor(o * 7 / 12), c = r.height === n.height && r.midi !== null && n.oct === r.oct && n.step > r.step;
|
|
324
|
-
return Re([o, s], c).name;
|
|
325
|
-
}
|
|
326
|
-
//#endregion
|
|
327
|
-
//#region node_modules/@tonaljs/collection/dist/index.mjs
|
|
328
|
-
function rt(e, t) {
|
|
329
|
-
let n = t.length, r = (e % n + n) % n;
|
|
330
|
-
return t.slice(r, n).concat(t.slice(0, r));
|
|
331
|
-
}
|
|
332
|
-
function it(e) {
|
|
333
|
-
return e.filter((e) => e === 0 || e);
|
|
334
|
-
}
|
|
335
|
-
//#endregion
|
|
336
|
-
//#region node_modules/@tonaljs/pcset/dist/index.mjs
|
|
337
|
-
var W = {
|
|
338
|
-
empty: !0,
|
|
339
|
-
name: "",
|
|
340
|
-
setNum: 0,
|
|
341
|
-
chroma: "000000000000",
|
|
342
|
-
normalized: "000000000000",
|
|
343
|
-
intervals: []
|
|
344
|
-
}, at = (e) => Number(e).toString(2).padStart(12, "0"), ot = (e) => parseInt(e, 2), st = /^[01]{12}$/;
|
|
345
|
-
function ct(e) {
|
|
346
|
-
return st.test(e);
|
|
347
|
-
}
|
|
348
|
-
var lt = (e) => typeof e == "number" && e >= 0 && e <= 4095, ut = (e) => e && ct(e.chroma), dt = { [W.chroma]: W };
|
|
349
|
-
function G(e) {
|
|
350
|
-
let t = ct(e) ? e : lt(e) ? at(e) : Array.isArray(e) ? yt(e) : ut(e) ? e.chroma : W.chroma;
|
|
351
|
-
return dt[t] = dt[t] || vt(t);
|
|
352
|
-
}
|
|
353
|
-
var ft = [
|
|
354
|
-
"1P",
|
|
355
|
-
"2m",
|
|
356
|
-
"2M",
|
|
357
|
-
"3m",
|
|
358
|
-
"3M",
|
|
359
|
-
"4P",
|
|
360
|
-
"5d",
|
|
361
|
-
"5P",
|
|
362
|
-
"6m",
|
|
363
|
-
"6M",
|
|
364
|
-
"7m",
|
|
365
|
-
"7M"
|
|
366
|
-
];
|
|
367
|
-
function pt(e) {
|
|
368
|
-
let t = [];
|
|
369
|
-
for (let n = 0; n < 12; n++) e.charAt(n) === "1" && t.push(ft[n]);
|
|
370
|
-
return t;
|
|
371
|
-
}
|
|
372
|
-
function mt(e, t = !0) {
|
|
373
|
-
let n = G(e).chroma.split("");
|
|
374
|
-
return it(n.map((e, r) => {
|
|
375
|
-
let i = rt(r, n);
|
|
376
|
-
return t && i[0] === "0" ? null : i.join("");
|
|
377
|
-
}));
|
|
378
|
-
}
|
|
379
|
-
function ht(e) {
|
|
380
|
-
let t = G(e).setNum;
|
|
381
|
-
return (e) => {
|
|
382
|
-
let n = G(e).setNum;
|
|
383
|
-
return t && t !== n && (n & t) === n;
|
|
384
|
-
};
|
|
385
|
-
}
|
|
386
|
-
function gt(e) {
|
|
387
|
-
let t = G(e).setNum;
|
|
388
|
-
return (e) => {
|
|
389
|
-
let n = G(e).setNum;
|
|
390
|
-
return t && t !== n && (n | t) === n;
|
|
391
|
-
};
|
|
392
|
-
}
|
|
393
|
-
function _t(e) {
|
|
394
|
-
let t = e.split("");
|
|
395
|
-
return t.map((e, n) => rt(n, t).join(""));
|
|
396
|
-
}
|
|
397
|
-
function vt(e) {
|
|
398
|
-
let t = ot(e), n = _t(e).map(ot).filter((e) => e >= 2048).sort()[0];
|
|
399
|
-
return {
|
|
400
|
-
empty: !1,
|
|
401
|
-
name: "",
|
|
402
|
-
setNum: t,
|
|
403
|
-
chroma: e,
|
|
404
|
-
normalized: at(n),
|
|
405
|
-
intervals: pt(e)
|
|
406
|
-
};
|
|
407
|
-
}
|
|
408
|
-
function yt(e) {
|
|
409
|
-
if (e.length === 0) return W.chroma;
|
|
410
|
-
let t, n = [
|
|
411
|
-
0,
|
|
412
|
-
0,
|
|
413
|
-
0,
|
|
414
|
-
0,
|
|
415
|
-
0,
|
|
416
|
-
0,
|
|
417
|
-
0,
|
|
418
|
-
0,
|
|
419
|
-
0,
|
|
420
|
-
0,
|
|
421
|
-
0,
|
|
422
|
-
0
|
|
423
|
-
];
|
|
424
|
-
for (let r = 0; r < e.length; r++) t = H(e[r]), t.empty && (t = V(e[r])), t.empty || (n[t.chroma] = 1);
|
|
425
|
-
return n.join("");
|
|
426
|
-
}
|
|
427
|
-
//#endregion
|
|
428
|
-
//#region node_modules/@tonaljs/chord-type/dist/index.mjs
|
|
429
|
-
var bt = [
|
|
430
|
-
[
|
|
431
|
-
"1P 3M 5P",
|
|
432
|
-
"major",
|
|
433
|
-
"M ^ maj"
|
|
434
|
-
],
|
|
435
|
-
[
|
|
436
|
-
"1P 3M 5P 7M",
|
|
437
|
-
"major seventh",
|
|
438
|
-
"maj7 Δ ma7 M7 Maj7 ^7"
|
|
439
|
-
],
|
|
440
|
-
[
|
|
441
|
-
"1P 3M 5P 7M 9M",
|
|
442
|
-
"major ninth",
|
|
443
|
-
"maj9 Δ9 ^9"
|
|
444
|
-
],
|
|
445
|
-
[
|
|
446
|
-
"1P 3M 5P 7M 9M 13M",
|
|
447
|
-
"major thirteenth",
|
|
448
|
-
"maj13 Maj13 ^13"
|
|
449
|
-
],
|
|
450
|
-
[
|
|
451
|
-
"1P 3M 5P 6M",
|
|
452
|
-
"sixth",
|
|
453
|
-
"6 add6 add13 M6"
|
|
454
|
-
],
|
|
455
|
-
[
|
|
456
|
-
"1P 3M 5P 6M 9M",
|
|
457
|
-
"sixth added ninth",
|
|
458
|
-
"6add9 6/9 69 M69"
|
|
459
|
-
],
|
|
460
|
-
[
|
|
461
|
-
"1P 3M 6m 7M",
|
|
462
|
-
"major seventh flat sixth",
|
|
463
|
-
"M7b6 ^7b6"
|
|
464
|
-
],
|
|
465
|
-
[
|
|
466
|
-
"1P 3M 5P 7M 11A",
|
|
467
|
-
"major seventh sharp eleventh",
|
|
468
|
-
"maj#4 Δ#4 Δ#11 M7#11 ^7#11 maj7#11"
|
|
469
|
-
],
|
|
470
|
-
[
|
|
471
|
-
"1P 3m 5P",
|
|
472
|
-
"minor",
|
|
473
|
-
"m min -"
|
|
474
|
-
],
|
|
475
|
-
[
|
|
476
|
-
"1P 3m 5P 7m",
|
|
477
|
-
"minor seventh",
|
|
478
|
-
"m7 min7 mi7 -7"
|
|
479
|
-
],
|
|
480
|
-
[
|
|
481
|
-
"1P 3m 5P 7M",
|
|
482
|
-
"minor/major seventh",
|
|
483
|
-
"m/ma7 m/maj7 mM7 mMaj7 m/M7 -Δ7 mΔ -^7 -maj7"
|
|
484
|
-
],
|
|
485
|
-
[
|
|
486
|
-
"1P 3m 5P 6M",
|
|
487
|
-
"minor sixth",
|
|
488
|
-
"m6 -6"
|
|
489
|
-
],
|
|
490
|
-
[
|
|
491
|
-
"1P 3m 5P 7m 9M",
|
|
492
|
-
"minor ninth",
|
|
493
|
-
"m9 -9"
|
|
494
|
-
],
|
|
495
|
-
[
|
|
496
|
-
"1P 3m 5P 7M 9M",
|
|
497
|
-
"minor/major ninth",
|
|
498
|
-
"mM9 mMaj9 -^9"
|
|
499
|
-
],
|
|
500
|
-
[
|
|
501
|
-
"1P 3m 5P 7m 9M 11P",
|
|
502
|
-
"minor eleventh",
|
|
503
|
-
"m11 -11"
|
|
504
|
-
],
|
|
505
|
-
[
|
|
506
|
-
"1P 3m 5P 7m 9M 13M",
|
|
507
|
-
"minor thirteenth",
|
|
508
|
-
"m13 -13"
|
|
509
|
-
],
|
|
510
|
-
[
|
|
511
|
-
"1P 3m 5d",
|
|
512
|
-
"diminished",
|
|
513
|
-
"dim ° o"
|
|
514
|
-
],
|
|
515
|
-
[
|
|
516
|
-
"1P 3m 5d 7d",
|
|
517
|
-
"diminished seventh",
|
|
518
|
-
"dim7 °7 o7"
|
|
519
|
-
],
|
|
520
|
-
[
|
|
521
|
-
"1P 3m 5d 7m",
|
|
522
|
-
"half-diminished",
|
|
523
|
-
"m7b5 ø -7b5 h7 h"
|
|
524
|
-
],
|
|
525
|
-
[
|
|
526
|
-
"1P 3M 5P 7m",
|
|
527
|
-
"dominant seventh",
|
|
528
|
-
"7 dom"
|
|
529
|
-
],
|
|
530
|
-
[
|
|
531
|
-
"1P 3M 5P 7m 9M",
|
|
532
|
-
"dominant ninth",
|
|
533
|
-
"9"
|
|
534
|
-
],
|
|
535
|
-
[
|
|
536
|
-
"1P 3M 5P 7m 9M 13M",
|
|
537
|
-
"dominant thirteenth",
|
|
538
|
-
"13"
|
|
539
|
-
],
|
|
540
|
-
[
|
|
541
|
-
"1P 3M 5P 7m 11A",
|
|
542
|
-
"lydian dominant seventh",
|
|
543
|
-
"7#11 7#4"
|
|
544
|
-
],
|
|
545
|
-
[
|
|
546
|
-
"1P 3M 5P 7m 9m",
|
|
547
|
-
"dominant flat ninth",
|
|
548
|
-
"7b9"
|
|
549
|
-
],
|
|
550
|
-
[
|
|
551
|
-
"1P 3M 5P 7m 9A",
|
|
552
|
-
"dominant sharp ninth",
|
|
553
|
-
"7#9"
|
|
554
|
-
],
|
|
555
|
-
[
|
|
556
|
-
"1P 3M 7m 9m",
|
|
557
|
-
"altered",
|
|
558
|
-
"alt7"
|
|
559
|
-
],
|
|
560
|
-
[
|
|
561
|
-
"1P 4P 5P",
|
|
562
|
-
"suspended fourth",
|
|
563
|
-
"sus4 sus"
|
|
564
|
-
],
|
|
565
|
-
[
|
|
566
|
-
"1P 2M 5P",
|
|
567
|
-
"suspended second",
|
|
568
|
-
"sus2"
|
|
569
|
-
],
|
|
570
|
-
[
|
|
571
|
-
"1P 4P 5P 7m",
|
|
572
|
-
"suspended fourth seventh",
|
|
573
|
-
"7sus4 7sus"
|
|
574
|
-
],
|
|
575
|
-
[
|
|
576
|
-
"1P 5P 7m 9M 11P",
|
|
577
|
-
"eleventh",
|
|
578
|
-
"11"
|
|
579
|
-
],
|
|
580
|
-
[
|
|
581
|
-
"1P 4P 5P 7m 9m",
|
|
582
|
-
"suspended fourth flat ninth",
|
|
583
|
-
"b9sus phryg 7b9sus 7b9sus4"
|
|
584
|
-
],
|
|
585
|
-
[
|
|
586
|
-
"1P 5P",
|
|
587
|
-
"fifth",
|
|
588
|
-
"5"
|
|
589
|
-
],
|
|
590
|
-
[
|
|
591
|
-
"1P 3M 5A",
|
|
592
|
-
"augmented",
|
|
593
|
-
"aug + +5 ^#5"
|
|
594
|
-
],
|
|
595
|
-
[
|
|
596
|
-
"1P 3m 5A",
|
|
597
|
-
"minor augmented",
|
|
598
|
-
"m#5 -#5 m+"
|
|
599
|
-
],
|
|
600
|
-
[
|
|
601
|
-
"1P 3M 5A 7M",
|
|
602
|
-
"augmented seventh",
|
|
603
|
-
"maj7#5 maj7+5 +maj7 ^7#5"
|
|
604
|
-
],
|
|
605
|
-
[
|
|
606
|
-
"1P 3M 5P 7M 9M 11A",
|
|
607
|
-
"major sharp eleventh (lydian)",
|
|
608
|
-
"maj9#11 Δ9#11 ^9#11"
|
|
609
|
-
],
|
|
610
|
-
[
|
|
611
|
-
"1P 2M 4P 5P",
|
|
612
|
-
"",
|
|
613
|
-
"sus24 sus4add9"
|
|
614
|
-
],
|
|
615
|
-
[
|
|
616
|
-
"1P 3M 5A 7M 9M",
|
|
617
|
-
"",
|
|
618
|
-
"maj9#5 Maj9#5"
|
|
619
|
-
],
|
|
620
|
-
[
|
|
621
|
-
"1P 3M 5A 7m",
|
|
622
|
-
"",
|
|
623
|
-
"7#5 +7 7+ 7aug aug7"
|
|
624
|
-
],
|
|
625
|
-
[
|
|
626
|
-
"1P 3M 5A 7m 9A",
|
|
627
|
-
"",
|
|
628
|
-
"7#5#9 7#9#5 7alt"
|
|
629
|
-
],
|
|
630
|
-
[
|
|
631
|
-
"1P 3M 5A 7m 9M",
|
|
632
|
-
"",
|
|
633
|
-
"9#5 9+"
|
|
634
|
-
],
|
|
635
|
-
[
|
|
636
|
-
"1P 3M 5A 7m 9M 11A",
|
|
637
|
-
"",
|
|
638
|
-
"9#5#11"
|
|
639
|
-
],
|
|
640
|
-
[
|
|
641
|
-
"1P 3M 5A 7m 9m",
|
|
642
|
-
"",
|
|
643
|
-
"7#5b9 7b9#5"
|
|
644
|
-
],
|
|
645
|
-
[
|
|
646
|
-
"1P 3M 5A 7m 9m 11A",
|
|
647
|
-
"",
|
|
648
|
-
"7#5b9#11"
|
|
649
|
-
],
|
|
650
|
-
[
|
|
651
|
-
"1P 3M 5A 9A",
|
|
652
|
-
"",
|
|
653
|
-
"+add#9"
|
|
654
|
-
],
|
|
655
|
-
[
|
|
656
|
-
"1P 3M 5A 9M",
|
|
657
|
-
"",
|
|
658
|
-
"M#5add9 +add9"
|
|
659
|
-
],
|
|
660
|
-
[
|
|
661
|
-
"1P 3M 5P 6M 11A",
|
|
662
|
-
"",
|
|
663
|
-
"M6#11 M6b5 6#11 6b5"
|
|
664
|
-
],
|
|
665
|
-
[
|
|
666
|
-
"1P 3M 5P 6M 7M 9M",
|
|
667
|
-
"",
|
|
668
|
-
"M7add13"
|
|
669
|
-
],
|
|
670
|
-
[
|
|
671
|
-
"1P 3M 5P 6M 9M 11A",
|
|
672
|
-
"",
|
|
673
|
-
"69#11"
|
|
674
|
-
],
|
|
675
|
-
[
|
|
676
|
-
"1P 3m 5P 6M 9M",
|
|
677
|
-
"",
|
|
678
|
-
"m69 -69"
|
|
679
|
-
],
|
|
680
|
-
[
|
|
681
|
-
"1P 3M 5P 6m 7m",
|
|
682
|
-
"",
|
|
683
|
-
"7b6"
|
|
684
|
-
],
|
|
685
|
-
[
|
|
686
|
-
"1P 3M 5P 7M 9A 11A",
|
|
687
|
-
"",
|
|
688
|
-
"maj7#9#11"
|
|
689
|
-
],
|
|
690
|
-
[
|
|
691
|
-
"1P 3M 5P 7M 9M 11A 13M",
|
|
692
|
-
"",
|
|
693
|
-
"M13#11 maj13#11 M13+4 M13#4"
|
|
694
|
-
],
|
|
695
|
-
[
|
|
696
|
-
"1P 3M 5P 7M 9m",
|
|
697
|
-
"",
|
|
698
|
-
"M7b9"
|
|
699
|
-
],
|
|
700
|
-
[
|
|
701
|
-
"1P 3M 5P 7m 11A 13m",
|
|
702
|
-
"",
|
|
703
|
-
"7#11b13 7b5b13"
|
|
704
|
-
],
|
|
705
|
-
[
|
|
706
|
-
"1P 3M 5P 7m 13M",
|
|
707
|
-
"",
|
|
708
|
-
"7add6 67 7add13"
|
|
709
|
-
],
|
|
710
|
-
[
|
|
711
|
-
"1P 3M 5P 7m 9A 11A",
|
|
712
|
-
"",
|
|
713
|
-
"7#9#11 7b5#9 7#9b5"
|
|
714
|
-
],
|
|
715
|
-
[
|
|
716
|
-
"1P 3M 5P 7m 9A 11A 13M",
|
|
717
|
-
"",
|
|
718
|
-
"13#9#11"
|
|
719
|
-
],
|
|
720
|
-
[
|
|
721
|
-
"1P 3M 5P 7m 9A 11A 13m",
|
|
722
|
-
"",
|
|
723
|
-
"7#9#11b13"
|
|
724
|
-
],
|
|
725
|
-
[
|
|
726
|
-
"1P 3M 5P 7m 9A 13M",
|
|
727
|
-
"",
|
|
728
|
-
"13#9"
|
|
729
|
-
],
|
|
730
|
-
[
|
|
731
|
-
"1P 3M 5P 7m 9A 13m",
|
|
732
|
-
"",
|
|
733
|
-
"7#9b13"
|
|
734
|
-
],
|
|
735
|
-
[
|
|
736
|
-
"1P 3M 5P 7m 9M 11A",
|
|
737
|
-
"",
|
|
738
|
-
"9#11 9+4 9#4"
|
|
739
|
-
],
|
|
740
|
-
[
|
|
741
|
-
"1P 3M 5P 7m 9M 11A 13M",
|
|
742
|
-
"",
|
|
743
|
-
"13#11 13+4 13#4"
|
|
744
|
-
],
|
|
745
|
-
[
|
|
746
|
-
"1P 3M 5P 7m 9M 11A 13m",
|
|
747
|
-
"",
|
|
748
|
-
"9#11b13 9b5b13"
|
|
749
|
-
],
|
|
750
|
-
[
|
|
751
|
-
"1P 3M 5P 7m 9m 11A",
|
|
752
|
-
"",
|
|
753
|
-
"7b9#11 7b5b9 7b9b5"
|
|
754
|
-
],
|
|
755
|
-
[
|
|
756
|
-
"1P 3M 5P 7m 9m 11A 13M",
|
|
757
|
-
"",
|
|
758
|
-
"13b9#11"
|
|
759
|
-
],
|
|
760
|
-
[
|
|
761
|
-
"1P 3M 5P 7m 9m 11A 13m",
|
|
762
|
-
"",
|
|
763
|
-
"7b9b13#11 7b9#11b13 7b5b9b13"
|
|
764
|
-
],
|
|
765
|
-
[
|
|
766
|
-
"1P 3M 5P 7m 9m 13M",
|
|
767
|
-
"",
|
|
768
|
-
"13b9"
|
|
769
|
-
],
|
|
770
|
-
[
|
|
771
|
-
"1P 3M 5P 7m 9m 13m",
|
|
772
|
-
"",
|
|
773
|
-
"7b9b13"
|
|
774
|
-
],
|
|
775
|
-
[
|
|
776
|
-
"1P 3M 5P 7m 9m 9A",
|
|
777
|
-
"",
|
|
778
|
-
"7b9#9"
|
|
779
|
-
],
|
|
780
|
-
[
|
|
781
|
-
"1P 3M 5P 9M",
|
|
782
|
-
"",
|
|
783
|
-
"Madd9 2 add9 add2"
|
|
784
|
-
],
|
|
785
|
-
[
|
|
786
|
-
"1P 3M 5P 9m",
|
|
787
|
-
"",
|
|
788
|
-
"Maddb9"
|
|
789
|
-
],
|
|
790
|
-
[
|
|
791
|
-
"1P 3M 5d",
|
|
792
|
-
"",
|
|
793
|
-
"Mb5"
|
|
794
|
-
],
|
|
795
|
-
[
|
|
796
|
-
"1P 3M 5d 6M 7m 9M",
|
|
797
|
-
"",
|
|
798
|
-
"13b5"
|
|
799
|
-
],
|
|
800
|
-
[
|
|
801
|
-
"1P 3M 5d 7M",
|
|
802
|
-
"",
|
|
803
|
-
"M7b5"
|
|
804
|
-
],
|
|
805
|
-
[
|
|
806
|
-
"1P 3M 5d 7M 9M",
|
|
807
|
-
"",
|
|
808
|
-
"M9b5"
|
|
809
|
-
],
|
|
810
|
-
[
|
|
811
|
-
"1P 3M 5d 7m",
|
|
812
|
-
"",
|
|
813
|
-
"7b5"
|
|
814
|
-
],
|
|
815
|
-
[
|
|
816
|
-
"1P 3M 5d 7m 9M",
|
|
817
|
-
"",
|
|
818
|
-
"9b5"
|
|
819
|
-
],
|
|
820
|
-
[
|
|
821
|
-
"1P 3M 7m",
|
|
822
|
-
"",
|
|
823
|
-
"7no5"
|
|
824
|
-
],
|
|
825
|
-
[
|
|
826
|
-
"1P 3M 7m 13m",
|
|
827
|
-
"",
|
|
828
|
-
"7b13"
|
|
829
|
-
],
|
|
830
|
-
[
|
|
831
|
-
"1P 3M 7m 9M",
|
|
832
|
-
"",
|
|
833
|
-
"9no5"
|
|
834
|
-
],
|
|
835
|
-
[
|
|
836
|
-
"1P 3M 7m 9M 13M",
|
|
837
|
-
"",
|
|
838
|
-
"13no5"
|
|
839
|
-
],
|
|
840
|
-
[
|
|
841
|
-
"1P 3M 7m 9M 13m",
|
|
842
|
-
"",
|
|
843
|
-
"9b13"
|
|
844
|
-
],
|
|
845
|
-
[
|
|
846
|
-
"1P 3m 4P 5P",
|
|
847
|
-
"",
|
|
848
|
-
"madd4"
|
|
849
|
-
],
|
|
850
|
-
[
|
|
851
|
-
"1P 3m 5P 6m 7M",
|
|
852
|
-
"",
|
|
853
|
-
"mMaj7b6"
|
|
854
|
-
],
|
|
855
|
-
[
|
|
856
|
-
"1P 3m 5P 6m 7M 9M",
|
|
857
|
-
"",
|
|
858
|
-
"mMaj9b6"
|
|
859
|
-
],
|
|
860
|
-
[
|
|
861
|
-
"1P 3m 5P 7m 11P",
|
|
862
|
-
"",
|
|
863
|
-
"m7add11 m7add4"
|
|
864
|
-
],
|
|
865
|
-
[
|
|
866
|
-
"1P 3m 5P 9M",
|
|
867
|
-
"",
|
|
868
|
-
"madd9"
|
|
869
|
-
],
|
|
870
|
-
[
|
|
871
|
-
"1P 3m 5d 6M 7M",
|
|
872
|
-
"",
|
|
873
|
-
"o7M7"
|
|
874
|
-
],
|
|
875
|
-
[
|
|
876
|
-
"1P 3m 5d 7M",
|
|
877
|
-
"",
|
|
878
|
-
"oM7"
|
|
879
|
-
],
|
|
880
|
-
[
|
|
881
|
-
"1P 3m 6m 7M",
|
|
882
|
-
"",
|
|
883
|
-
"mb6M7"
|
|
884
|
-
],
|
|
885
|
-
[
|
|
886
|
-
"1P 3m 6m 7m",
|
|
887
|
-
"",
|
|
888
|
-
"m7#5"
|
|
889
|
-
],
|
|
890
|
-
[
|
|
891
|
-
"1P 3m 6m 7m 9M",
|
|
892
|
-
"",
|
|
893
|
-
"m9#5"
|
|
894
|
-
],
|
|
895
|
-
[
|
|
896
|
-
"1P 3m 5A 7m 9M 11P",
|
|
897
|
-
"",
|
|
898
|
-
"m11A"
|
|
899
|
-
],
|
|
900
|
-
[
|
|
901
|
-
"1P 3m 6m 9m",
|
|
902
|
-
"",
|
|
903
|
-
"mb6b9"
|
|
904
|
-
],
|
|
905
|
-
[
|
|
906
|
-
"1P 2M 3m 5d 7m",
|
|
907
|
-
"",
|
|
908
|
-
"m9b5"
|
|
909
|
-
],
|
|
910
|
-
[
|
|
911
|
-
"1P 4P 5A 7M",
|
|
912
|
-
"",
|
|
913
|
-
"M7#5sus4"
|
|
914
|
-
],
|
|
915
|
-
[
|
|
916
|
-
"1P 4P 5A 7M 9M",
|
|
917
|
-
"",
|
|
918
|
-
"M9#5sus4"
|
|
919
|
-
],
|
|
920
|
-
[
|
|
921
|
-
"1P 4P 5A 7m",
|
|
922
|
-
"",
|
|
923
|
-
"7#5sus4"
|
|
924
|
-
],
|
|
925
|
-
[
|
|
926
|
-
"1P 4P 5P 7M",
|
|
927
|
-
"",
|
|
928
|
-
"M7sus4"
|
|
929
|
-
],
|
|
930
|
-
[
|
|
931
|
-
"1P 4P 5P 7M 9M",
|
|
932
|
-
"",
|
|
933
|
-
"M9sus4"
|
|
934
|
-
],
|
|
935
|
-
[
|
|
936
|
-
"1P 4P 5P 7m 9M",
|
|
937
|
-
"",
|
|
938
|
-
"9sus4 9sus"
|
|
939
|
-
],
|
|
940
|
-
[
|
|
941
|
-
"1P 4P 5P 7m 9M 13M",
|
|
942
|
-
"",
|
|
943
|
-
"13sus4 13sus"
|
|
944
|
-
],
|
|
945
|
-
[
|
|
946
|
-
"1P 4P 5P 7m 9m 13m",
|
|
947
|
-
"",
|
|
948
|
-
"7sus4b9b13 7b9b13sus4"
|
|
949
|
-
],
|
|
950
|
-
[
|
|
951
|
-
"1P 4P 7m 10m",
|
|
952
|
-
"",
|
|
953
|
-
"4 quartal"
|
|
954
|
-
],
|
|
955
|
-
[
|
|
956
|
-
"1P 5P 7m 9m 11P",
|
|
957
|
-
"",
|
|
958
|
-
"11b9"
|
|
959
|
-
]
|
|
960
|
-
], xt = {
|
|
961
|
-
...W,
|
|
962
|
-
name: "",
|
|
963
|
-
quality: "Unknown",
|
|
964
|
-
intervals: [],
|
|
965
|
-
aliases: []
|
|
966
|
-
}, St = [], Ct = {};
|
|
967
|
-
function wt(e) {
|
|
968
|
-
return Ct[e] || xt;
|
|
969
|
-
}
|
|
970
|
-
function Tt() {
|
|
971
|
-
return St.slice();
|
|
972
|
-
}
|
|
973
|
-
function Et(e, t, n) {
|
|
974
|
-
let r = Ot(e), i = {
|
|
975
|
-
...G(e),
|
|
976
|
-
name: n || "",
|
|
977
|
-
quality: r,
|
|
978
|
-
intervals: e,
|
|
979
|
-
aliases: t
|
|
980
|
-
};
|
|
981
|
-
St.push(i), i.name && (Ct[i.name] = i), Ct[i.setNum] = i, Ct[i.chroma] = i, i.aliases.forEach((e) => Dt(i, e));
|
|
982
|
-
}
|
|
983
|
-
function Dt(e, t) {
|
|
984
|
-
Ct[t] = e;
|
|
985
|
-
}
|
|
986
|
-
function Ot(e) {
|
|
987
|
-
let t = (t) => e.indexOf(t) !== -1;
|
|
988
|
-
return t("5A") ? "Augmented" : t("3M") ? "Major" : t("5d") ? "Diminished" : t("3m") ? "Minor" : "Unknown";
|
|
989
|
-
}
|
|
990
|
-
bt.forEach(([e, t, n]) => Et(e.split(" "), n.split(" "), t)), St.sort((e, t) => e.setNum - t.setNum);
|
|
991
|
-
//#endregion
|
|
992
|
-
//#region node_modules/@tonaljs/chord-detect/dist/index.mjs
|
|
993
|
-
var kt = (e) => {
|
|
994
|
-
let t = e.reduce((e, t) => {
|
|
995
|
-
let n = H(t).chroma;
|
|
996
|
-
return n !== void 0 && (e[n] = e[n] || H(t).name), e;
|
|
997
|
-
}, {});
|
|
998
|
-
return (e) => t[e];
|
|
999
|
-
};
|
|
1000
|
-
function At(e, t = {}) {
|
|
1001
|
-
let n = e.map((e) => H(e).pc).filter((e) => e);
|
|
1002
|
-
return H.length === 0 ? [] : zt(n, 1, t).filter((e) => e.weight).sort((e, t) => t.weight - e.weight).map((e) => e.name);
|
|
1003
|
-
}
|
|
1004
|
-
var jt = {
|
|
1005
|
-
anyThirds: 384,
|
|
1006
|
-
perfectFifth: 16,
|
|
1007
|
-
nonPerfectFifths: 40,
|
|
1008
|
-
anySeventh: 3
|
|
1009
|
-
}, Mt = (e) => (t) => !!(t & e), Nt = Mt(jt.anyThirds), Pt = Mt(jt.perfectFifth), Ft = Mt(jt.anySeventh), It = Mt(jt.nonPerfectFifths);
|
|
1010
|
-
function Lt(e) {
|
|
1011
|
-
let t = parseInt(e.chroma, 2);
|
|
1012
|
-
return Nt(t) && Pt(t) && Ft(t);
|
|
1013
|
-
}
|
|
1014
|
-
function Rt(e) {
|
|
1015
|
-
let t = parseInt(e, 2);
|
|
1016
|
-
return It(t) ? e : (t | 16).toString(2);
|
|
1017
|
-
}
|
|
1018
|
-
function zt(e, t, n) {
|
|
1019
|
-
let r = e[0], i = H(r).chroma, a = kt(e), o = mt(e, !1), s = [];
|
|
1020
|
-
return o.forEach((e, o) => {
|
|
1021
|
-
let c = n.assumePerfectFifth && Rt(e);
|
|
1022
|
-
Tt().filter((t) => n.assumePerfectFifth && Lt(t) ? t.chroma === c : t.chroma === e).forEach((e) => {
|
|
1023
|
-
let n = e.aliases[0], c = a(o);
|
|
1024
|
-
o === i ? s.push({
|
|
1025
|
-
weight: 1 * t,
|
|
1026
|
-
name: `${c}${n}`
|
|
1027
|
-
}) : s.push({
|
|
1028
|
-
weight: .5 * t,
|
|
1029
|
-
name: `${c}${n}/${r}`
|
|
1030
|
-
});
|
|
1031
|
-
});
|
|
1032
|
-
}), s;
|
|
1033
|
-
}
|
|
1034
|
-
"P m M m M P d P m M m M".split(" ");
|
|
1035
|
-
var Bt = Vt((e, t) => [e[0] - t[0], e[1] - t[1]]);
|
|
1036
|
-
function Vt(e) {
|
|
1037
|
-
return (t, n) => {
|
|
1038
|
-
let r = V(t).coord, i = V(n).coord;
|
|
1039
|
-
if (r && i) return Re(e(r, i)).name;
|
|
1040
|
-
};
|
|
1041
|
-
}
|
|
1042
|
-
//#endregion
|
|
1043
|
-
//#region node_modules/@tonaljs/scale-type/dist/index.mjs
|
|
1044
|
-
var Ht = [
|
|
1045
|
-
[
|
|
1046
|
-
"1P 2M 3M 5P 6M",
|
|
1047
|
-
"major pentatonic",
|
|
1048
|
-
"pentatonic"
|
|
1049
|
-
],
|
|
1050
|
-
[
|
|
1051
|
-
"1P 2M 3M 4P 5P 6M 7M",
|
|
1052
|
-
"major",
|
|
1053
|
-
"ionian"
|
|
1054
|
-
],
|
|
1055
|
-
[
|
|
1056
|
-
"1P 2M 3m 4P 5P 6m 7m",
|
|
1057
|
-
"minor",
|
|
1058
|
-
"aeolian"
|
|
1059
|
-
],
|
|
1060
|
-
["1P 2M 3m 3M 5P 6M", "major blues"],
|
|
1061
|
-
[
|
|
1062
|
-
"1P 3m 4P 5d 5P 7m",
|
|
1063
|
-
"minor blues",
|
|
1064
|
-
"blues"
|
|
1065
|
-
],
|
|
1066
|
-
["1P 2M 3m 4P 5P 6M 7M", "melodic minor"],
|
|
1067
|
-
["1P 2M 3m 4P 5P 6m 7M", "harmonic minor"],
|
|
1068
|
-
["1P 2M 3M 4P 5P 6M 7m 7M", "bebop"],
|
|
1069
|
-
[
|
|
1070
|
-
"1P 2M 3m 4P 5d 6m 6M 7M",
|
|
1071
|
-
"diminished",
|
|
1072
|
-
"whole-half diminished"
|
|
1073
|
-
],
|
|
1074
|
-
["1P 2M 3m 4P 5P 6M 7m", "dorian"],
|
|
1075
|
-
["1P 2M 3M 4A 5P 6M 7M", "lydian"],
|
|
1076
|
-
[
|
|
1077
|
-
"1P 2M 3M 4P 5P 6M 7m",
|
|
1078
|
-
"mixolydian",
|
|
1079
|
-
"dominant"
|
|
1080
|
-
],
|
|
1081
|
-
["1P 2m 3m 4P 5P 6m 7m", "phrygian"],
|
|
1082
|
-
["1P 2m 3m 4P 5d 6m 7m", "locrian"],
|
|
1083
|
-
["1P 3M 4P 5P 7M", "ionian pentatonic"],
|
|
1084
|
-
[
|
|
1085
|
-
"1P 3M 4P 5P 7m",
|
|
1086
|
-
"mixolydian pentatonic",
|
|
1087
|
-
"indian"
|
|
1088
|
-
],
|
|
1089
|
-
["1P 2M 4P 5P 6M", "ritusen"],
|
|
1090
|
-
["1P 2M 4P 5P 7m", "egyptian"],
|
|
1091
|
-
["1P 3M 4P 5d 7m", "neopolitan major pentatonic"],
|
|
1092
|
-
["1P 3m 4P 5P 6m", "vietnamese 1"],
|
|
1093
|
-
["1P 2m 3m 5P 6m", "pelog"],
|
|
1094
|
-
["1P 2m 4P 5P 6m", "kumoijoshi"],
|
|
1095
|
-
["1P 2M 3m 5P 6m", "hirajoshi"],
|
|
1096
|
-
["1P 2m 4P 5d 7m", "iwato"],
|
|
1097
|
-
["1P 2m 4P 5P 7m", "in-sen"],
|
|
1098
|
-
[
|
|
1099
|
-
"1P 3M 4A 5P 7M",
|
|
1100
|
-
"lydian pentatonic",
|
|
1101
|
-
"chinese"
|
|
1102
|
-
],
|
|
1103
|
-
["1P 3m 4P 6m 7m", "malkos raga"],
|
|
1104
|
-
[
|
|
1105
|
-
"1P 3m 4P 5d 7m",
|
|
1106
|
-
"locrian pentatonic",
|
|
1107
|
-
"minor seven flat five pentatonic"
|
|
1108
|
-
],
|
|
1109
|
-
[
|
|
1110
|
-
"1P 3m 4P 5P 7m",
|
|
1111
|
-
"minor pentatonic",
|
|
1112
|
-
"vietnamese 2"
|
|
1113
|
-
],
|
|
1114
|
-
["1P 3m 4P 5P 6M", "minor six pentatonic"],
|
|
1115
|
-
[
|
|
1116
|
-
"1P 2M 3m 5P 6M",
|
|
1117
|
-
"flat three pentatonic",
|
|
1118
|
-
"kumoi"
|
|
1119
|
-
],
|
|
1120
|
-
["1P 2M 3M 5P 6m", "flat six pentatonic"],
|
|
1121
|
-
["1P 2m 3M 5P 6M", "scriabin"],
|
|
1122
|
-
["1P 3M 5d 6m 7m", "whole tone pentatonic"],
|
|
1123
|
-
["1P 3M 4A 5A 7M", "lydian #5P pentatonic"],
|
|
1124
|
-
["1P 3M 4A 5P 7m", "lydian dominant pentatonic"],
|
|
1125
|
-
["1P 3m 4P 5P 7M", "minor #7M pentatonic"],
|
|
1126
|
-
["1P 3m 4d 5d 7m", "super locrian pentatonic"],
|
|
1127
|
-
["1P 2M 3m 4P 5P 7M", "minor hexatonic"],
|
|
1128
|
-
["1P 2A 3M 5P 5A 7M", "augmented"],
|
|
1129
|
-
["1P 2M 4P 5P 6M 7m", "piongio"],
|
|
1130
|
-
["1P 2m 3M 4A 6M 7m", "prometheus neopolitan"],
|
|
1131
|
-
["1P 2M 3M 4A 6M 7m", "prometheus"],
|
|
1132
|
-
["1P 2m 3M 5d 6m 7m", "mystery #1"],
|
|
1133
|
-
["1P 2m 3M 4P 5A 6M", "six tone symmetric"],
|
|
1134
|
-
[
|
|
1135
|
-
"1P 2M 3M 4A 5A 6A",
|
|
1136
|
-
"whole tone",
|
|
1137
|
-
"messiaen's mode #1"
|
|
1138
|
-
],
|
|
1139
|
-
["1P 2m 4P 4A 5P 7M", "messiaen's mode #5"],
|
|
1140
|
-
[
|
|
1141
|
-
"1P 2M 3M 4P 5d 6m 7m",
|
|
1142
|
-
"locrian major",
|
|
1143
|
-
"arabian"
|
|
1144
|
-
],
|
|
1145
|
-
["1P 2m 3M 4A 5P 6m 7M", "double harmonic lydian"],
|
|
1146
|
-
[
|
|
1147
|
-
"1P 2m 2A 3M 4A 6m 7m",
|
|
1148
|
-
"altered",
|
|
1149
|
-
"super locrian",
|
|
1150
|
-
"diminished whole tone",
|
|
1151
|
-
"pomeroy"
|
|
1152
|
-
],
|
|
1153
|
-
[
|
|
1154
|
-
"1P 2M 3m 4P 5d 6m 7m",
|
|
1155
|
-
"locrian #2",
|
|
1156
|
-
"half-diminished",
|
|
1157
|
-
"aeolian b5"
|
|
1158
|
-
],
|
|
1159
|
-
[
|
|
1160
|
-
"1P 2M 3M 4P 5P 6m 7m",
|
|
1161
|
-
"mixolydian b6",
|
|
1162
|
-
"melodic minor fifth mode",
|
|
1163
|
-
"hindu"
|
|
1164
|
-
],
|
|
1165
|
-
[
|
|
1166
|
-
"1P 2M 3M 4A 5P 6M 7m",
|
|
1167
|
-
"lydian dominant",
|
|
1168
|
-
"lydian b7",
|
|
1169
|
-
"overtone"
|
|
1170
|
-
],
|
|
1171
|
-
["1P 2M 3M 4A 5A 6M 7M", "lydian augmented"],
|
|
1172
|
-
[
|
|
1173
|
-
"1P 2m 3m 4P 5P 6M 7m",
|
|
1174
|
-
"dorian b2",
|
|
1175
|
-
"phrygian #6",
|
|
1176
|
-
"melodic minor second mode"
|
|
1177
|
-
],
|
|
1178
|
-
[
|
|
1179
|
-
"1P 2m 3m 4d 5d 6m 7d",
|
|
1180
|
-
"ultralocrian",
|
|
1181
|
-
"superlocrian bb7",
|
|
1182
|
-
"superlocrian diminished"
|
|
1183
|
-
],
|
|
1184
|
-
[
|
|
1185
|
-
"1P 2m 3m 4P 5d 6M 7m",
|
|
1186
|
-
"locrian 6",
|
|
1187
|
-
"locrian natural 6",
|
|
1188
|
-
"locrian sharp 6"
|
|
1189
|
-
],
|
|
1190
|
-
["1P 2A 3M 4P 5P 5A 7M", "augmented heptatonic"],
|
|
1191
|
-
[
|
|
1192
|
-
"1P 2M 3m 4A 5P 6M 7m",
|
|
1193
|
-
"dorian #4",
|
|
1194
|
-
"ukrainian dorian",
|
|
1195
|
-
"romanian minor",
|
|
1196
|
-
"altered dorian"
|
|
1197
|
-
],
|
|
1198
|
-
["1P 2M 3m 4A 5P 6M 7M", "lydian diminished"],
|
|
1199
|
-
["1P 2M 3M 4A 5A 7m 7M", "leading whole tone"],
|
|
1200
|
-
["1P 2M 3M 4A 5P 6m 7m", "lydian minor"],
|
|
1201
|
-
[
|
|
1202
|
-
"1P 2m 3M 4P 5P 6m 7m",
|
|
1203
|
-
"phrygian dominant",
|
|
1204
|
-
"spanish",
|
|
1205
|
-
"phrygian major"
|
|
1206
|
-
],
|
|
1207
|
-
["1P 2m 3m 4P 5P 6m 7M", "balinese"],
|
|
1208
|
-
["1P 2m 3m 4P 5P 6M 7M", "neopolitan major"],
|
|
1209
|
-
["1P 2M 3M 4P 5P 6m 7M", "harmonic major"],
|
|
1210
|
-
[
|
|
1211
|
-
"1P 2m 3M 4P 5P 6m 7M",
|
|
1212
|
-
"double harmonic major",
|
|
1213
|
-
"gypsy"
|
|
1214
|
-
],
|
|
1215
|
-
["1P 2M 3m 4A 5P 6m 7M", "hungarian minor"],
|
|
1216
|
-
["1P 2A 3M 4A 5P 6M 7m", "hungarian major"],
|
|
1217
|
-
["1P 2m 3M 4P 5d 6M 7m", "oriental"],
|
|
1218
|
-
["1P 2m 3m 3M 4A 5P 7m", "flamenco"],
|
|
1219
|
-
["1P 2m 3m 4A 5P 6m 7M", "todi raga"],
|
|
1220
|
-
["1P 2m 3M 4P 5d 6m 7M", "persian"],
|
|
1221
|
-
["1P 2m 3M 5d 6m 7m 7M", "enigmatic"],
|
|
1222
|
-
[
|
|
1223
|
-
"1P 2M 3M 4P 5A 6M 7M",
|
|
1224
|
-
"major augmented",
|
|
1225
|
-
"major #5",
|
|
1226
|
-
"ionian augmented",
|
|
1227
|
-
"ionian #5"
|
|
1228
|
-
],
|
|
1229
|
-
["1P 2A 3M 4A 5P 6M 7M", "lydian #9"],
|
|
1230
|
-
["1P 2m 2M 4P 4A 5P 6m 7M", "messiaen's mode #4"],
|
|
1231
|
-
["1P 2m 3M 4P 4A 5P 6m 7M", "purvi raga"],
|
|
1232
|
-
["1P 2m 3m 3M 4P 5P 6m 7m", "spanish heptatonic"],
|
|
1233
|
-
["1P 2M 3m 3M 4P 5P 6M 7m", "bebop minor"],
|
|
1234
|
-
["1P 2M 3M 4P 5P 5A 6M 7M", "bebop major"],
|
|
1235
|
-
["1P 2m 3m 4P 5d 5P 6m 7m", "bebop locrian"],
|
|
1236
|
-
["1P 2M 3m 4P 5P 6m 7m 7M", "minor bebop"],
|
|
1237
|
-
["1P 2M 3M 4P 5d 5P 6M 7M", "ichikosucho"],
|
|
1238
|
-
["1P 2M 3m 4P 5P 6m 6M 7M", "minor six diminished"],
|
|
1239
|
-
[
|
|
1240
|
-
"1P 2m 3m 3M 4A 5P 6M 7m",
|
|
1241
|
-
"half-whole diminished",
|
|
1242
|
-
"dominant diminished",
|
|
1243
|
-
"messiaen's mode #2"
|
|
1244
|
-
],
|
|
1245
|
-
["1P 3m 3M 4P 5P 6M 7m 7M", "kafi raga"],
|
|
1246
|
-
["1P 2M 3M 4P 4A 5A 6A 7M", "messiaen's mode #6"],
|
|
1247
|
-
["1P 2M 3m 3M 4P 5d 5P 6M 7m", "composite blues"],
|
|
1248
|
-
["1P 2M 3m 3M 4A 5P 6m 7m 7M", "messiaen's mode #3"],
|
|
1249
|
-
["1P 2m 2M 3m 4P 4A 5P 6m 6M 7M", "messiaen's mode #7"],
|
|
1250
|
-
["1P 2m 2M 3m 3M 4P 5d 5P 6m 6M 7m 7M", "chromatic"]
|
|
1251
|
-
], Ut = {
|
|
1252
|
-
...W,
|
|
1253
|
-
intervals: [],
|
|
1254
|
-
aliases: []
|
|
1255
|
-
}, Wt = [], Gt = {};
|
|
1256
|
-
function Kt(e) {
|
|
1257
|
-
return Gt[e] || Ut;
|
|
1258
|
-
}
|
|
1259
|
-
function qt() {
|
|
1260
|
-
return Wt.slice();
|
|
1261
|
-
}
|
|
1262
|
-
function Jt(e, t, n = []) {
|
|
1263
|
-
let r = {
|
|
1264
|
-
...G(e),
|
|
1265
|
-
name: t,
|
|
1266
|
-
intervals: e,
|
|
1267
|
-
aliases: n
|
|
1268
|
-
};
|
|
1269
|
-
return Wt.push(r), Gt[r.name] = r, Gt[r.setNum] = r, Gt[r.chroma] = r, r.aliases.forEach((e) => Yt(r, e)), r;
|
|
1270
|
-
}
|
|
1271
|
-
function Yt(e, t) {
|
|
1272
|
-
Gt[t] = e;
|
|
1273
|
-
}
|
|
1274
|
-
Ht.forEach(([e, t, ...n]) => Jt(e.split(" "), t, n));
|
|
1275
|
-
//#endregion
|
|
1276
|
-
//#region node_modules/@tonaljs/chord/dist/index.mjs
|
|
1277
|
-
var Xt = {
|
|
1278
|
-
empty: !0,
|
|
1279
|
-
name: "",
|
|
1280
|
-
symbol: "",
|
|
1281
|
-
root: "",
|
|
1282
|
-
bass: "",
|
|
1283
|
-
rootDegree: 0,
|
|
1284
|
-
type: "",
|
|
1285
|
-
tonic: null,
|
|
1286
|
-
setNum: NaN,
|
|
1287
|
-
quality: "Unknown",
|
|
1288
|
-
chroma: "",
|
|
1289
|
-
normalized: "",
|
|
1290
|
-
aliases: [],
|
|
1291
|
-
notes: [],
|
|
1292
|
-
intervals: []
|
|
1293
|
-
};
|
|
1294
|
-
function Zt(e) {
|
|
1295
|
-
let [t, n, r, i] = Ye(e);
|
|
1296
|
-
return t === "" ? Qt("", e) : t === "A" && i === "ug" ? Qt("", "aug") : Qt(t + n, r + i);
|
|
1297
|
-
}
|
|
1298
|
-
function Qt(e, t) {
|
|
1299
|
-
let n = t.split("/");
|
|
1300
|
-
if (n.length === 1) return [
|
|
1301
|
-
e,
|
|
1302
|
-
n[0],
|
|
1303
|
-
""
|
|
1304
|
-
];
|
|
1305
|
-
let [r, i, a, o] = Ye(n[1]);
|
|
1306
|
-
return r !== "" && a === "" && o === "" ? [
|
|
1307
|
-
e,
|
|
1308
|
-
n[0],
|
|
1309
|
-
r + i
|
|
1310
|
-
] : [
|
|
1311
|
-
e,
|
|
1312
|
-
t,
|
|
1313
|
-
""
|
|
1314
|
-
];
|
|
1315
|
-
}
|
|
1316
|
-
function K(e) {
|
|
1317
|
-
if (Array.isArray(e)) return $t(e[1] || "", e[0], e[2]);
|
|
1318
|
-
if (e === "") return Xt;
|
|
1319
|
-
{
|
|
1320
|
-
let [t, n, r] = Zt(e), i = $t(n, t, r);
|
|
1321
|
-
return i.empty ? $t(e) : i;
|
|
1322
|
-
}
|
|
1323
|
-
}
|
|
1324
|
-
function $t(e, t, n) {
|
|
1325
|
-
let r = wt(e), i = H(t || ""), a = H(n || "");
|
|
1326
|
-
if (r.empty || t && i.empty || n && a.empty) return Xt;
|
|
1327
|
-
let o = nt(i.pc, a.pc), s = r.intervals.indexOf(o), c = s >= 0, l = c ? a : H(""), u = s === -1 ? NaN : s + 1, d = a.pc && a.pc !== i.pc, f = Array.from(r.intervals);
|
|
1328
|
-
if (c) for (let e = 1; e < u; e++) {
|
|
1329
|
-
let e = f[0][0], t = f[0][1], n = parseInt(e, 10) + 7;
|
|
1330
|
-
f.push(`${n}${t}`), f.shift();
|
|
1331
|
-
}
|
|
1332
|
-
else if (d) {
|
|
1333
|
-
let e = Bt(nt(i.pc, a.pc), "8P");
|
|
1334
|
-
e && f.unshift(e);
|
|
1335
|
-
}
|
|
1336
|
-
let p = i.empty ? [] : f.map((e) => U(i.pc, e));
|
|
1337
|
-
e = r.aliases.indexOf(e) === -1 ? r.aliases[0] : e;
|
|
1338
|
-
let m = `${i.empty ? "" : i.pc}${e}${c && u > 1 ? "/" + l.pc : d ? "/" + a.pc : ""}`, h = `${t ? i.pc + " " : ""}${r.name}${c && u > 1 ? " over " + l.pc : d ? " over " + a.pc : ""}`;
|
|
1339
|
-
return {
|
|
1340
|
-
...r,
|
|
1341
|
-
name: h,
|
|
1342
|
-
symbol: m,
|
|
1343
|
-
tonic: i.pc,
|
|
1344
|
-
type: r.name,
|
|
1345
|
-
root: l.pc,
|
|
1346
|
-
bass: d ? a.pc : "",
|
|
1347
|
-
intervals: f,
|
|
1348
|
-
rootDegree: u,
|
|
1349
|
-
notes: p
|
|
1350
|
-
};
|
|
1351
|
-
}
|
|
1352
|
-
var en = K;
|
|
1353
|
-
function tn(e, t) {
|
|
1354
|
-
let [n, r, i] = Zt(e);
|
|
1355
|
-
if (!n) return e;
|
|
1356
|
-
let a = U(i, t), o = a ? "/" + a : "";
|
|
1357
|
-
return U(n, t) + r + o;
|
|
1358
|
-
}
|
|
1359
|
-
function nn(e) {
|
|
1360
|
-
let t = gt(K(e).chroma);
|
|
1361
|
-
return qt().filter((e) => t(e.chroma)).map((e) => e.name);
|
|
1362
|
-
}
|
|
1363
|
-
function rn(e) {
|
|
1364
|
-
let t = K(e), n = gt(t.chroma);
|
|
1365
|
-
return Tt().filter((e) => n(e.chroma)).map((e) => t.tonic + e.aliases[0]);
|
|
1366
|
-
}
|
|
1367
|
-
function an(e) {
|
|
1368
|
-
let t = K(e), n = ht(t.chroma);
|
|
1369
|
-
return Tt().filter((e) => n(e.chroma)).map((e) => t.tonic + e.aliases[0]);
|
|
1370
|
-
}
|
|
1371
|
-
function on(e, t) {
|
|
1372
|
-
let n = K(e), r = t || n.tonic;
|
|
1373
|
-
return !r || n.empty ? [] : n.intervals.map((e) => U(r, e));
|
|
1374
|
-
}
|
|
1375
|
-
function sn(e, t) {
|
|
1376
|
-
let n = K(e), r = t || n.tonic, i = tt(n.intervals, r);
|
|
1377
|
-
return (e) => e ? i(e > 0 ? e - 1 : e) : "";
|
|
1378
|
-
}
|
|
1379
|
-
function cn(e, t) {
|
|
1380
|
-
let n = K(e), r = t || n.tonic;
|
|
1381
|
-
return tt(n.intervals, r);
|
|
1382
|
-
}
|
|
1383
|
-
var ln = {
|
|
1384
|
-
getChord: $t,
|
|
1385
|
-
get: K,
|
|
1386
|
-
detect: At,
|
|
1387
|
-
chordScales: nn,
|
|
1388
|
-
extended: rn,
|
|
1389
|
-
reduced: an,
|
|
1390
|
-
tokenize: Zt,
|
|
1391
|
-
transpose: tn,
|
|
1392
|
-
degrees: sn,
|
|
1393
|
-
steps: cn,
|
|
1394
|
-
notes: on,
|
|
1395
|
-
chord: en
|
|
1396
|
-
}, un = [
|
|
1397
|
-
[
|
|
1398
|
-
.125,
|
|
1399
|
-
"dl",
|
|
1400
|
-
[
|
|
1401
|
-
"large",
|
|
1402
|
-
"duplex longa",
|
|
1403
|
-
"maxima",
|
|
1404
|
-
"octuple",
|
|
1405
|
-
"octuple whole"
|
|
1406
|
-
]
|
|
1407
|
-
],
|
|
1408
|
-
[
|
|
1409
|
-
.25,
|
|
1410
|
-
"l",
|
|
1411
|
-
["long", "longa"]
|
|
1412
|
-
],
|
|
1413
|
-
[
|
|
1414
|
-
.5,
|
|
1415
|
-
"d",
|
|
1416
|
-
[
|
|
1417
|
-
"double whole",
|
|
1418
|
-
"double",
|
|
1419
|
-
"breve"
|
|
1420
|
-
]
|
|
1421
|
-
],
|
|
1422
|
-
[
|
|
1423
|
-
1,
|
|
1424
|
-
"w",
|
|
1425
|
-
["whole", "semibreve"]
|
|
1426
|
-
],
|
|
1427
|
-
[
|
|
1428
|
-
2,
|
|
1429
|
-
"h",
|
|
1430
|
-
["half", "minim"]
|
|
1431
|
-
],
|
|
1432
|
-
[
|
|
1433
|
-
4,
|
|
1434
|
-
"q",
|
|
1435
|
-
["quarter", "crotchet"]
|
|
1436
|
-
],
|
|
1437
|
-
[
|
|
1438
|
-
8,
|
|
1439
|
-
"e",
|
|
1440
|
-
["eighth", "quaver"]
|
|
1441
|
-
],
|
|
1442
|
-
[
|
|
1443
|
-
16,
|
|
1444
|
-
"s",
|
|
1445
|
-
["sixteenth", "semiquaver"]
|
|
1446
|
-
],
|
|
1447
|
-
[
|
|
1448
|
-
32,
|
|
1449
|
-
"t",
|
|
1450
|
-
["thirty-second", "demisemiquaver"]
|
|
1451
|
-
],
|
|
1452
|
-
[
|
|
1453
|
-
64,
|
|
1454
|
-
"sf",
|
|
1455
|
-
["sixty-fourth", "hemidemisemiquaver"]
|
|
1456
|
-
],
|
|
1457
|
-
[
|
|
1458
|
-
128,
|
|
1459
|
-
"h",
|
|
1460
|
-
["hundred twenty-eighth"]
|
|
1461
|
-
],
|
|
1462
|
-
[
|
|
1463
|
-
256,
|
|
1464
|
-
"th",
|
|
1465
|
-
["two hundred fifty-sixth"]
|
|
1466
|
-
]
|
|
1467
|
-
], dn = [];
|
|
1468
|
-
un.forEach(([e, t, n]) => fn(e, t, n));
|
|
1469
|
-
function fn(e, t, n) {
|
|
1470
|
-
dn.push({
|
|
1471
|
-
empty: !1,
|
|
1472
|
-
dots: "",
|
|
1473
|
-
name: "",
|
|
1474
|
-
value: 1 / e,
|
|
1475
|
-
fraction: e < 1 ? [1 / e, 1] : [1, e],
|
|
1476
|
-
shorthand: t,
|
|
1477
|
-
names: n
|
|
1478
|
-
});
|
|
1479
|
-
}
|
|
1480
|
-
//#endregion
|
|
1481
|
-
//#region node_modules/@tonaljs/midi/dist/index.mjs
|
|
1482
|
-
var pn = /* @__PURE__ */ N({
|
|
1483
|
-
chroma: () => Sn,
|
|
1484
|
-
default: () => kn,
|
|
1485
|
-
freqToMidi: () => yn,
|
|
1486
|
-
isMidi: () => mn,
|
|
1487
|
-
midiToFreq: () => gn,
|
|
1488
|
-
midiToNoteName: () => q,
|
|
1489
|
-
pcset: () => Tn,
|
|
1490
|
-
pcsetDegrees: () => On,
|
|
1491
|
-
pcsetNearest: () => En,
|
|
1492
|
-
pcsetSteps: () => Dn,
|
|
1493
|
-
toMidi: () => hn
|
|
1494
|
-
});
|
|
1495
|
-
function mn(e) {
|
|
1496
|
-
return +e >= 0 && +e <= 127;
|
|
1497
|
-
}
|
|
1498
|
-
function hn(e) {
|
|
1499
|
-
if (mn(e)) return +e;
|
|
1500
|
-
let t = H(e);
|
|
1501
|
-
return t.empty ? null : t.midi;
|
|
1502
|
-
}
|
|
1503
|
-
function gn(e, t = 440) {
|
|
1504
|
-
return 2 ** ((e - 69) / 12) * t;
|
|
1505
|
-
}
|
|
1506
|
-
var _n = Math.log(2), vn = Math.log(440);
|
|
1507
|
-
function yn(e) {
|
|
1508
|
-
let t = 12 * (Math.log(e) - vn) / _n + 69;
|
|
1509
|
-
return Math.round(t * 100) / 100;
|
|
1510
|
-
}
|
|
1511
|
-
var bn = "C C# D D# E F F# G G# A A# B".split(" "), xn = "C Db D Eb E F Gb G Ab A Bb B".split(" ");
|
|
1512
|
-
function q(e, t = {}) {
|
|
1513
|
-
if (isNaN(e) || e === -Infinity || e === Infinity) return "";
|
|
1514
|
-
e = Math.round(e);
|
|
1515
|
-
let n = (t.sharps === !0 ? bn : xn)[e % 12];
|
|
1516
|
-
return t.pitchClass ? n : n + (Math.floor(e / 12) - 1);
|
|
1517
|
-
}
|
|
1518
|
-
function Sn(e) {
|
|
1519
|
-
return e % 12;
|
|
1520
|
-
}
|
|
1521
|
-
function Cn(e) {
|
|
1522
|
-
return e.split("").reduce((e, t, n) => (n < 12 && t === "1" && e.push(n), e), []);
|
|
1523
|
-
}
|
|
1524
|
-
function wn(e) {
|
|
1525
|
-
return e.map(Sn).sort((e, t) => e - t).filter((e, t, n) => t === 0 || e !== n[t - 1]);
|
|
1526
|
-
}
|
|
1527
|
-
function Tn(e) {
|
|
1528
|
-
return Array.isArray(e) ? wn(e) : Cn(e);
|
|
1529
|
-
}
|
|
1530
|
-
function En(e) {
|
|
1531
|
-
let t = Tn(e);
|
|
1532
|
-
return (e) => {
|
|
1533
|
-
let n = Sn(e);
|
|
1534
|
-
for (let r = 0; r < 12; r++) {
|
|
1535
|
-
if (t.includes(n + r)) return e + r;
|
|
1536
|
-
if (t.includes(n - r)) return e - r;
|
|
1537
|
-
}
|
|
1538
|
-
};
|
|
1539
|
-
}
|
|
1540
|
-
function Dn(e, t) {
|
|
1541
|
-
let n = Tn(e), r = n.length;
|
|
1542
|
-
return (e) => {
|
|
1543
|
-
let i = e < 0 ? (r - -e % r) % r : e % r, a = Math.floor(e / r);
|
|
1544
|
-
return n[i] + a * 12 + t;
|
|
1545
|
-
};
|
|
1546
|
-
}
|
|
1547
|
-
function On(e, t) {
|
|
1548
|
-
let n = Dn(e, t);
|
|
1549
|
-
return (e) => {
|
|
1550
|
-
if (e !== 0) return n(e > 0 ? e - 1 : e);
|
|
1551
|
-
};
|
|
1552
|
-
}
|
|
1553
|
-
var kn = {
|
|
1554
|
-
chroma: Sn,
|
|
1555
|
-
freqToMidi: yn,
|
|
1556
|
-
isMidi: mn,
|
|
1557
|
-
midiToFreq: gn,
|
|
1558
|
-
midiToNoteName: q,
|
|
1559
|
-
pcsetNearest: En,
|
|
1560
|
-
pcset: Tn,
|
|
1561
|
-
pcsetDegrees: On,
|
|
1562
|
-
pcsetSteps: Dn,
|
|
1563
|
-
toMidi: hn
|
|
1564
|
-
}, An = [
|
|
1565
|
-
"C",
|
|
1566
|
-
"D",
|
|
1567
|
-
"E",
|
|
1568
|
-
"F",
|
|
1569
|
-
"G",
|
|
1570
|
-
"A",
|
|
1571
|
-
"B"
|
|
1572
|
-
], jn = (e) => e.name, Mn = (e) => e.map(H).filter((e) => !e.empty);
|
|
1573
|
-
function Nn(e) {
|
|
1574
|
-
return e === void 0 ? An.slice() : Array.isArray(e) ? Mn(e).map(jn) : [];
|
|
1575
|
-
}
|
|
1576
|
-
var J = H, Pn = (e) => J(e).name, Fn = (e) => J(e).pc, In = (e) => J(e).acc, Ln = (e) => J(e).oct, Rn = (e) => J(e).midi, zn = (e) => J(e).freq, Bn = (e) => J(e).chroma;
|
|
1577
|
-
function Vn(e) {
|
|
1578
|
-
return q(e);
|
|
1579
|
-
}
|
|
1580
|
-
function Hn(e) {
|
|
1581
|
-
return q(yn(e));
|
|
1582
|
-
}
|
|
1583
|
-
function Un(e) {
|
|
1584
|
-
return q(yn(e), { sharps: !0 });
|
|
1585
|
-
}
|
|
1586
|
-
function Wn(e) {
|
|
1587
|
-
return q(e, { sharps: !0 });
|
|
1588
|
-
}
|
|
1589
|
-
var Gn = nt, Kn = U, qn = U, Jn = (e) => (t) => Kn(t, e), Yn = Jn, Xn = (e) => (t) => Kn(e, t), Zn = Xn;
|
|
1590
|
-
function Qn(e, t) {
|
|
1591
|
-
return Kn(e, [t, 0]);
|
|
1592
|
-
}
|
|
1593
|
-
var $n = Qn;
|
|
1594
|
-
function er(e, t) {
|
|
1595
|
-
return Kn(e, [0, t]);
|
|
1596
|
-
}
|
|
1597
|
-
var tr = (e, t) => e.height - t.height, nr = (e, t) => t.height - e.height;
|
|
1598
|
-
function rr(e, t) {
|
|
1599
|
-
return t ||= tr, Mn(e).sort(t).map(jn);
|
|
1600
|
-
}
|
|
1601
|
-
function ir(e) {
|
|
1602
|
-
return rr(e, tr).filter((e, t, n) => t === 0 || e !== n[t - 1]);
|
|
1603
|
-
}
|
|
1604
|
-
var ar = (e) => {
|
|
1605
|
-
let t = J(e);
|
|
1606
|
-
return t.empty ? "" : q(t.midi || t.chroma, {
|
|
1607
|
-
sharps: t.alt > 0,
|
|
1608
|
-
pitchClass: t.midi === null
|
|
1609
|
-
});
|
|
1610
|
-
};
|
|
1611
|
-
function or(e, t) {
|
|
1612
|
-
let n = J(e);
|
|
1613
|
-
if (n.empty) return "";
|
|
1614
|
-
let r = J(t || q(n.midi || n.chroma, {
|
|
1615
|
-
sharps: n.alt < 0,
|
|
1616
|
-
pitchClass: !0
|
|
1617
|
-
}));
|
|
1618
|
-
if (r.empty || r.chroma !== n.chroma) return "";
|
|
1619
|
-
if (n.oct === void 0) return r.pc;
|
|
1620
|
-
let i = n.chroma - n.alt, a = r.chroma - r.alt, o = i > 11 || a < 0 ? -1 : +(i < 0 || a > 11), s = n.oct + o;
|
|
1621
|
-
return r.pc + s;
|
|
1622
|
-
}
|
|
1623
|
-
var sr = {
|
|
1624
|
-
names: Nn,
|
|
1625
|
-
get: J,
|
|
1626
|
-
name: Pn,
|
|
1627
|
-
pitchClass: Fn,
|
|
1628
|
-
accidentals: In,
|
|
1629
|
-
octave: Ln,
|
|
1630
|
-
midi: Rn,
|
|
1631
|
-
ascending: tr,
|
|
1632
|
-
descending: nr,
|
|
1633
|
-
distance: Gn,
|
|
1634
|
-
sortedNames: rr,
|
|
1635
|
-
sortedUniqNames: ir,
|
|
1636
|
-
fromMidi: Vn,
|
|
1637
|
-
fromMidiSharps: Wn,
|
|
1638
|
-
freq: zn,
|
|
1639
|
-
fromFreq: Hn,
|
|
1640
|
-
fromFreqSharps: Un,
|
|
1641
|
-
chroma: Bn,
|
|
1642
|
-
transpose: Kn,
|
|
1643
|
-
tr: qn,
|
|
1644
|
-
transposeBy: Jn,
|
|
1645
|
-
trBy: Yn,
|
|
1646
|
-
transposeFrom: Xn,
|
|
1647
|
-
trFrom: Zn,
|
|
1648
|
-
transposeFifths: Qn,
|
|
1649
|
-
transposeOctaves: er,
|
|
1650
|
-
trFifths: $n,
|
|
1651
|
-
simplify: ar,
|
|
1652
|
-
enharmonic: or
|
|
1653
|
-
}, cr = "I II III IV V VI VII";
|
|
1654
|
-
cr.split(" "), cr.toLowerCase().split(" ");
|
|
1655
|
-
//#endregion
|
|
1656
|
-
//#region node_modules/@tonaljs/key/dist/index.mjs
|
|
1657
|
-
var Y = Object.freeze([]), lr = {
|
|
1658
|
-
type: "major",
|
|
1659
|
-
tonic: "",
|
|
1660
|
-
alteration: 0,
|
|
1661
|
-
keySignature: ""
|
|
1662
|
-
}, ur = {
|
|
1663
|
-
tonic: "",
|
|
1664
|
-
grades: Y,
|
|
1665
|
-
intervals: Y,
|
|
1666
|
-
scale: Y,
|
|
1667
|
-
triads: Y,
|
|
1668
|
-
chords: Y,
|
|
1669
|
-
chordsHarmonicFunction: Y,
|
|
1670
|
-
chordScales: Y,
|
|
1671
|
-
secondaryDominants: Y,
|
|
1672
|
-
secondaryDominantSupertonics: Y,
|
|
1673
|
-
substituteDominantsMinorRelative: Y,
|
|
1674
|
-
substituteDominants: Y,
|
|
1675
|
-
substituteDominantSupertonics: Y,
|
|
1676
|
-
secondaryDominantsMinorRelative: Y
|
|
1677
|
-
};
|
|
1678
|
-
({
|
|
1679
|
-
...lr,
|
|
1680
|
-
...ur
|
|
1681
|
-
}), { ...lr }, "I II III IV V VI VII".split(" "), " m m m dim".split(" "), "maj7 m7 m7 maj7 7 m7 m7b5".split(" "), "T SD T SD D T D".split(" "), "major,dorian,phrygian,lydian,mixolydian,minor,locrian".split(","), "I II bIII IV V bVI bVII".split(" "), "m dim m m ".split(" "), "m7 m7b5 maj7 m7 m7 maj7 7".split(" "), "T SD T SD D SD SD".split(" "), "minor,locrian,major,dorian,phrygian,lydian,mixolydian".split(","), "I II bIII IV V bVI VII".split(" "), "m dim aug m dim".split(" "), "mMaj7 m7b5 +maj7 m7 7 maj7 o7".split(" "), "T SD T SD D SD D".split(" "), "harmonic minor,locrian 6,major augmented,lydian diminished,phrygian dominant,lydian #9,ultralocrian".split(","), "I II bIII IV V VI VII".split(" "), "m m aug dim dim".split(" "), "m6 m7 +maj7 7 7 m7b5 m7b5".split(" "), "T SD T SD D ".split(" "), "melodic minor,dorian b2,lydian augmented,lydian dominant,mixolydian b6,locrian #2,altered".split(",");
|
|
1682
|
-
//#endregion
|
|
1683
|
-
//#region node_modules/@tonaljs/mode/dist/index.mjs
|
|
1684
|
-
var dr = [
|
|
1685
|
-
[
|
|
1686
|
-
0,
|
|
1687
|
-
2773,
|
|
1688
|
-
0,
|
|
1689
|
-
"ionian",
|
|
1690
|
-
"",
|
|
1691
|
-
"Maj7",
|
|
1692
|
-
"major"
|
|
1693
|
-
],
|
|
1694
|
-
[
|
|
1695
|
-
1,
|
|
1696
|
-
2902,
|
|
1697
|
-
2,
|
|
1698
|
-
"dorian",
|
|
1699
|
-
"m",
|
|
1700
|
-
"m7"
|
|
1701
|
-
],
|
|
1702
|
-
[
|
|
1703
|
-
2,
|
|
1704
|
-
3418,
|
|
1705
|
-
4,
|
|
1706
|
-
"phrygian",
|
|
1707
|
-
"m",
|
|
1708
|
-
"m7"
|
|
1709
|
-
],
|
|
1710
|
-
[
|
|
1711
|
-
3,
|
|
1712
|
-
2741,
|
|
1713
|
-
-1,
|
|
1714
|
-
"lydian",
|
|
1715
|
-
"",
|
|
1716
|
-
"Maj7"
|
|
1717
|
-
],
|
|
1718
|
-
[
|
|
1719
|
-
4,
|
|
1720
|
-
2774,
|
|
1721
|
-
1,
|
|
1722
|
-
"mixolydian",
|
|
1723
|
-
"",
|
|
1724
|
-
"7"
|
|
1725
|
-
],
|
|
1726
|
-
[
|
|
1727
|
-
5,
|
|
1728
|
-
2906,
|
|
1729
|
-
3,
|
|
1730
|
-
"aeolian",
|
|
1731
|
-
"m",
|
|
1732
|
-
"m7",
|
|
1733
|
-
"minor"
|
|
1734
|
-
],
|
|
1735
|
-
[
|
|
1736
|
-
6,
|
|
1737
|
-
3434,
|
|
1738
|
-
5,
|
|
1739
|
-
"locrian",
|
|
1740
|
-
"dim",
|
|
1741
|
-
"m7b5"
|
|
1742
|
-
]
|
|
1743
|
-
];
|
|
1744
|
-
({ ...W });
|
|
1745
|
-
var fr = dr.map(mr), pr = {};
|
|
1746
|
-
fr.forEach((e) => {
|
|
1747
|
-
pr[e.name] = e, e.aliases.forEach((t) => {
|
|
1748
|
-
pr[t] = e;
|
|
1749
|
-
});
|
|
1750
|
-
});
|
|
1751
|
-
function mr(e) {
|
|
1752
|
-
let [t, n, r, i, a, o, s] = e, c = s ? [s] : [], l = Number(n).toString(2);
|
|
1753
|
-
return {
|
|
1754
|
-
empty: !1,
|
|
1755
|
-
intervals: Kt(i).intervals,
|
|
1756
|
-
modeNum: t,
|
|
1757
|
-
chroma: l,
|
|
1758
|
-
normalized: l,
|
|
1759
|
-
name: i,
|
|
1760
|
-
setNum: n,
|
|
1761
|
-
alt: r,
|
|
1762
|
-
triad: a,
|
|
1763
|
-
seventh: o,
|
|
1764
|
-
aliases: c
|
|
1765
|
-
};
|
|
1766
|
-
}
|
|
1767
|
-
dr.map((e) => e[4]), dr.map((e) => e[5]);
|
|
1768
|
-
var hr = { topNoteDiff: (e, t) => {
|
|
1769
|
-
if (!t || !t.length) return e[0];
|
|
1770
|
-
let n = (e) => sr.midi(e[e.length - 1]) || 0, r = (e) => Math.abs(n(t) - n(e));
|
|
1771
|
-
return e.sort((e, t) => r(e) - r(t))[0];
|
|
1772
|
-
} }, gr = {
|
|
1773
|
-
M: [
|
|
1774
|
-
"1P 3M 5P",
|
|
1775
|
-
"3M 5P 8P",
|
|
1776
|
-
"5P 8P 10M"
|
|
1777
|
-
],
|
|
1778
|
-
m: [
|
|
1779
|
-
"1P 3m 5P",
|
|
1780
|
-
"3m 5P 8P",
|
|
1781
|
-
"5P 8P 10m"
|
|
1782
|
-
],
|
|
1783
|
-
o: [
|
|
1784
|
-
"1P 3m 5d",
|
|
1785
|
-
"3m 5d 8P",
|
|
1786
|
-
"5d 8P 10m"
|
|
1787
|
-
],
|
|
1788
|
-
aug: [
|
|
1789
|
-
"1P 3m 5A",
|
|
1790
|
-
"3m 5A 8P",
|
|
1791
|
-
"5A 8P 10m"
|
|
1792
|
-
]
|
|
1793
|
-
}, _r = {
|
|
1794
|
-
m7: ["3m 5P 7m 9M", "7m 9M 10m 12P"],
|
|
1795
|
-
7: ["3M 6M 7m 9M", "7m 9M 10M 13M"],
|
|
1796
|
-
"^7": ["3M 5P 7M 9M", "7M 9M 10M 12P"],
|
|
1797
|
-
69: ["3M 5P 6A 9M"],
|
|
1798
|
-
m7b5: ["3m 5d 7m 8P", "7m 8P 10m 12d"],
|
|
1799
|
-
"7b9": ["3M 6m 7m 9m", "7m 9m 10M 13m"],
|
|
1800
|
-
"7b13": ["3M 6m 7m 9m", "7m 9m 10M 13m"],
|
|
1801
|
-
o7: ["1P 3m 5d 6M", "5d 6M 8P 10m"],
|
|
1802
|
-
"7#11": ["7m 9M 11A 13A"],
|
|
1803
|
-
"7#9": ["3M 7m 9A"],
|
|
1804
|
-
mM7: ["3m 5P 7M 9M", "7M 9M 10m 12P"],
|
|
1805
|
-
m6: ["3m 5P 6M 9M", "6M 9M 10m 12P"]
|
|
1806
|
-
}, vr = {
|
|
1807
|
-
M: [
|
|
1808
|
-
"1P 3M 5P",
|
|
1809
|
-
"3M 5P 8P",
|
|
1810
|
-
"5P 8P 10M"
|
|
1811
|
-
],
|
|
1812
|
-
m: [
|
|
1813
|
-
"1P 3m 5P",
|
|
1814
|
-
"3m 5P 8P",
|
|
1815
|
-
"5P 8P 10m"
|
|
1816
|
-
],
|
|
1817
|
-
o: [
|
|
1818
|
-
"1P 3m 5d",
|
|
1819
|
-
"3m 5d 8P",
|
|
1820
|
-
"5d 8P 10m"
|
|
1821
|
-
],
|
|
1822
|
-
aug: [
|
|
1823
|
-
"1P 3m 5A",
|
|
1824
|
-
"3m 5A 8P",
|
|
1825
|
-
"5A 8P 10m"
|
|
1826
|
-
],
|
|
1827
|
-
m7: ["3m 5P 7m 9M", "7m 9M 10m 12P"],
|
|
1828
|
-
7: ["3M 6M 7m 9M", "7m 9M 10M 13M"],
|
|
1829
|
-
"^7": ["3M 5P 7M 9M", "7M 9M 10M 12P"],
|
|
1830
|
-
69: ["3M 5P 6A 9M"],
|
|
1831
|
-
m7b5: ["3m 5d 7m 8P", "7m 8P 10m 12d"],
|
|
1832
|
-
"7b9": ["3M 6m 7m 9m", "7m 9m 10M 13m"],
|
|
1833
|
-
"7b13": ["3M 6m 7m 9m", "7m 9m 10M 13m"],
|
|
1834
|
-
o7: ["1P 3m 5d 6M", "5d 6M 8P 10m"],
|
|
1835
|
-
"7#11": ["7m 9M 11A 13A"],
|
|
1836
|
-
"7#9": ["3M 7m 9A"],
|
|
1837
|
-
mM7: ["3m 5P 7M 9M", "7M 9M 10m 12P"],
|
|
1838
|
-
m6: ["3m 5P 6M 9M", "6M 9M 10m 12P"]
|
|
1839
|
-
}, yr = _r;
|
|
1840
|
-
function br(e, t = yr) {
|
|
1841
|
-
if (t[e]) return t[e];
|
|
1842
|
-
let { aliases: n } = ln.get("C" + e), r = Object.keys(t).find((e) => n.includes(e)) || "";
|
|
1843
|
-
if (r !== void 0) return t[r];
|
|
1844
|
-
}
|
|
1845
|
-
({
|
|
1846
|
-
lookup: br,
|
|
1847
|
-
lefthand: _r,
|
|
1848
|
-
triads: gr,
|
|
1849
|
-
all: vr,
|
|
1850
|
-
defaultDictionary: yr
|
|
1851
|
-
}).all, hr.topNoteDiff;
|
|
1852
|
-
//#endregion
|
|
1853
|
-
//#region lib/other/noteNames.ts
|
|
1854
|
-
var { midiToNoteName: xr } = pn, Sr = (e) => e.replace(/([A-G])b/g, "$1♭").replace(/([A-G])#/g, "$1♯"), Cr = (e, t) => t?.[(e % 12 + 12) % 12] ?? Sr(Fn(Vn(e) ?? "")), wr = (e) => Sr(xr(e, { sharps: !1 })), Tr = /* @__PURE__ */ M(((e, t) => {
|
|
83
|
+
label: he[e]
|
|
84
|
+
})), ge = ({ children: e }) => r(n, null, e), { midiToNoteName: _e } = f, ve = (e) => e.replace(/([A-G])b/g, "$1♭").replace(/([A-G])#/g, "$1♯"), ye = (e, t) => t?.[(e % 12 + 12) % 12] ?? ve(p.pitchClass(p.fromMidi(e) ?? "")), be = (e) => ve(_e(e, { sharps: !1 })), xe = /* @__PURE__ */ I(((e, t) => {
|
|
1855
85
|
t.exports = n;
|
|
1856
86
|
function n(e, t, n) {
|
|
1857
87
|
if (e != null && typeof e != "number") throw Error("start must be a number or null");
|
|
@@ -1861,7 +91,7 @@ var { midiToNoteName: xr } = pn, Sr = (e) => e.replace(/([A-G])b/g, "$1♭").rep
|
|
|
1861
91
|
for (var r = [], i = e < t; i ? e < t : e > t; e += n) r.push(e);
|
|
1862
92
|
return r;
|
|
1863
93
|
}
|
|
1864
|
-
})),
|
|
94
|
+
})), Se = /* @__PURE__ */ I(((e) => {
|
|
1865
95
|
var t = typeof Symbol == "function" && Symbol.for, n = t ? Symbol.for("react.element") : 60103, r = t ? Symbol.for("react.portal") : 60106, i = t ? Symbol.for("react.fragment") : 60107, a = t ? Symbol.for("react.strict_mode") : 60108, o = t ? Symbol.for("react.profiler") : 60114, s = t ? Symbol.for("react.provider") : 60109, c = t ? Symbol.for("react.context") : 60110, l = t ? Symbol.for("react.async_mode") : 60111, u = t ? Symbol.for("react.concurrent_mode") : 60111, d = t ? Symbol.for("react.forward_ref") : 60112, f = t ? Symbol.for("react.suspense") : 60113, p = t ? Symbol.for("react.suspense_list") : 60120, m = t ? Symbol.for("react.memo") : 60115, h = t ? Symbol.for("react.lazy") : 60116, g = t ? Symbol.for("react.block") : 60121, _ = t ? Symbol.for("react.fundamental") : 60117, v = t ? Symbol.for("react.responder") : 60118, y = t ? Symbol.for("react.scope") : 60119;
|
|
1866
96
|
function b(e) {
|
|
1867
97
|
if (typeof e == "object" && e) {
|
|
@@ -1917,7 +147,7 @@ var { midiToNoteName: xr } = pn, Sr = (e) => e.replace(/([A-G])b/g, "$1♭").rep
|
|
|
1917
147
|
}, e.isValidElementType = function(e) {
|
|
1918
148
|
return typeof e == "string" || typeof e == "function" || e === i || e === u || e === o || e === a || e === f || e === p || typeof e == "object" && !!e && (e.$$typeof === h || e.$$typeof === m || e.$$typeof === s || e.$$typeof === c || e.$$typeof === d || e.$$typeof === _ || e.$$typeof === v || e.$$typeof === y || e.$$typeof === g);
|
|
1919
149
|
}, e.typeOf = b;
|
|
1920
|
-
})),
|
|
150
|
+
})), Ce = /* @__PURE__ */ I(((e) => {
|
|
1921
151
|
process.env.NODE_ENV !== "production" && (function() {
|
|
1922
152
|
var t = typeof Symbol == "function" && Symbol.for, n = t ? Symbol.for("react.element") : 60103, r = t ? Symbol.for("react.portal") : 60106, i = t ? Symbol.for("react.fragment") : 60107, a = t ? Symbol.for("react.strict_mode") : 60108, o = t ? Symbol.for("react.profiler") : 60114, s = t ? Symbol.for("react.provider") : 60109, c = t ? Symbol.for("react.context") : 60110, l = t ? Symbol.for("react.async_mode") : 60111, u = t ? Symbol.for("react.concurrent_mode") : 60111, d = t ? Symbol.for("react.forward_ref") : 60112, f = t ? Symbol.for("react.suspense") : 60113, p = t ? Symbol.for("react.suspense_list") : 60120, m = t ? Symbol.for("react.memo") : 60115, h = t ? Symbol.for("react.lazy") : 60116, g = t ? Symbol.for("react.block") : 60121, _ = t ? Symbol.for("react.fundamental") : 60117, v = t ? Symbol.for("react.responder") : 60118, y = t ? Symbol.for("react.scope") : 60119;
|
|
1923
153
|
function b(e) {
|
|
@@ -1951,51 +181,51 @@ var { midiToNoteName: xr } = pn, Sr = (e) => e.replace(/([A-G])b/g, "$1♭").rep
|
|
|
1951
181
|
}
|
|
1952
182
|
}
|
|
1953
183
|
}
|
|
1954
|
-
var S = l, C = u, w = c, T = s, E = n, D = d,
|
|
1955
|
-
function
|
|
1956
|
-
return
|
|
184
|
+
var S = l, C = u, w = c, T = s, E = n, D = d, O = i, k = h, A = m, j = r, M = o, N = a, P = f, F = !1;
|
|
185
|
+
function I(e) {
|
|
186
|
+
return F || (F = !0, console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")), L(e) || x(e) === l;
|
|
1957
187
|
}
|
|
1958
|
-
function
|
|
188
|
+
function L(e) {
|
|
1959
189
|
return x(e) === u;
|
|
1960
190
|
}
|
|
1961
|
-
function
|
|
191
|
+
function R(e) {
|
|
1962
192
|
return x(e) === c;
|
|
1963
193
|
}
|
|
1964
|
-
function
|
|
194
|
+
function z(e) {
|
|
1965
195
|
return x(e) === s;
|
|
1966
196
|
}
|
|
1967
|
-
function
|
|
197
|
+
function B(e) {
|
|
1968
198
|
return typeof e == "object" && !!e && e.$$typeof === n;
|
|
1969
199
|
}
|
|
1970
|
-
function
|
|
200
|
+
function ee(e) {
|
|
1971
201
|
return x(e) === d;
|
|
1972
202
|
}
|
|
1973
|
-
function
|
|
203
|
+
function V(e) {
|
|
1974
204
|
return x(e) === i;
|
|
1975
205
|
}
|
|
1976
|
-
function
|
|
206
|
+
function te(e) {
|
|
1977
207
|
return x(e) === h;
|
|
1978
208
|
}
|
|
1979
|
-
function
|
|
209
|
+
function ne(e) {
|
|
1980
210
|
return x(e) === m;
|
|
1981
211
|
}
|
|
1982
|
-
function
|
|
212
|
+
function H(e) {
|
|
1983
213
|
return x(e) === r;
|
|
1984
214
|
}
|
|
1985
|
-
function
|
|
215
|
+
function U(e) {
|
|
1986
216
|
return x(e) === o;
|
|
1987
217
|
}
|
|
1988
|
-
function
|
|
218
|
+
function re(e) {
|
|
1989
219
|
return x(e) === a;
|
|
1990
220
|
}
|
|
1991
|
-
function
|
|
221
|
+
function W(e) {
|
|
1992
222
|
return x(e) === f;
|
|
1993
223
|
}
|
|
1994
|
-
e.AsyncMode = S, e.ConcurrentMode = C, e.ContextConsumer = w, e.ContextProvider = T, e.Element = E, e.ForwardRef = D, e.Fragment =
|
|
224
|
+
e.AsyncMode = S, e.ConcurrentMode = C, e.ContextConsumer = w, e.ContextProvider = T, e.Element = E, e.ForwardRef = D, e.Fragment = O, e.Lazy = k, e.Memo = A, e.Portal = j, e.Profiler = M, e.StrictMode = N, e.Suspense = P, e.isAsyncMode = I, e.isConcurrentMode = L, e.isContextConsumer = R, e.isContextProvider = z, e.isElement = B, e.isForwardRef = ee, e.isFragment = V, e.isLazy = te, e.isMemo = ne, e.isPortal = H, e.isProfiler = U, e.isStrictMode = re, e.isSuspense = W, e.isValidElementType = b, e.typeOf = x;
|
|
1995
225
|
})();
|
|
1996
|
-
})),
|
|
1997
|
-
t.exports = process.env.NODE_ENV === "production" ?
|
|
1998
|
-
})),
|
|
226
|
+
})), we = /* @__PURE__ */ I(((e, t) => {
|
|
227
|
+
t.exports = process.env.NODE_ENV === "production" ? Se() : Ce();
|
|
228
|
+
})), Te = /* @__PURE__ */ I(((e, t) => {
|
|
1999
229
|
var n = Object.getOwnPropertySymbols, r = Object.prototype.hasOwnProperty, i = Object.prototype.propertyIsEnumerable;
|
|
2000
230
|
function a(e) {
|
|
2001
231
|
if (e == null) throw TypeError("Object.assign cannot be called with null or undefined");
|
|
@@ -2028,14 +258,14 @@ var { midiToNoteName: xr } = pn, Sr = (e) => e.replace(/([A-G])b/g, "$1♭").rep
|
|
|
2028
258
|
}
|
|
2029
259
|
return s;
|
|
2030
260
|
};
|
|
2031
|
-
})),
|
|
261
|
+
})), q = /* @__PURE__ */ I(((e, t) => {
|
|
2032
262
|
t.exports = "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";
|
|
2033
|
-
})),
|
|
263
|
+
})), Ee = /* @__PURE__ */ I(((e, t) => {
|
|
2034
264
|
t.exports = Function.call.bind(Object.prototype.hasOwnProperty);
|
|
2035
|
-
})),
|
|
265
|
+
})), De = /* @__PURE__ */ I(((e, t) => {
|
|
2036
266
|
var n = function() {};
|
|
2037
267
|
if (process.env.NODE_ENV !== "production") {
|
|
2038
|
-
var r =
|
|
268
|
+
var r = q(), i = {}, a = Ee();
|
|
2039
269
|
n = function(e) {
|
|
2040
270
|
var t = "Warning: " + e;
|
|
2041
271
|
typeof console < "u" && console.error(t);
|
|
@@ -2068,8 +298,8 @@ var { midiToNoteName: xr } = pn, Sr = (e) => e.replace(/([A-G])b/g, "$1♭").rep
|
|
|
2068
298
|
o.resetWarningCache = function() {
|
|
2069
299
|
process.env.NODE_ENV !== "production" && (i = {});
|
|
2070
300
|
}, t.exports = o;
|
|
2071
|
-
})),
|
|
2072
|
-
var n =
|
|
301
|
+
})), Oe = /* @__PURE__ */ I(((e, t) => {
|
|
302
|
+
var n = we(), r = Te(), i = q(), a = Ee(), o = De(), s = function() {};
|
|
2073
303
|
process.env.NODE_ENV !== "production" && (s = function(e) {
|
|
2074
304
|
var t = "Warning: " + e;
|
|
2075
305
|
typeof console < "u" && console.error(t);
|
|
@@ -2104,8 +334,8 @@ var { midiToNoteName: xr } = pn, Sr = (e) => e.replace(/([A-G])b/g, "$1♭").rep
|
|
|
2104
334
|
objectOf: w,
|
|
2105
335
|
oneOf: C,
|
|
2106
336
|
oneOfType: T,
|
|
2107
|
-
shape:
|
|
2108
|
-
exact:
|
|
337
|
+
shape: O,
|
|
338
|
+
exact: k
|
|
2109
339
|
};
|
|
2110
340
|
function m(e, t) {
|
|
2111
341
|
return e === t ? e !== 0 || 1 / e == 1 / t : e !== e && t !== t;
|
|
@@ -2135,8 +365,8 @@ var { midiToNoteName: xr } = pn, Sr = (e) => e.replace(/([A-G])b/g, "$1♭").rep
|
|
|
2135
365
|
function _(e) {
|
|
2136
366
|
function t(t, n, r, i, a, o) {
|
|
2137
367
|
var s = t[n];
|
|
2138
|
-
if (
|
|
2139
|
-
var c =
|
|
368
|
+
if (M(s) !== e) {
|
|
369
|
+
var c = N(s);
|
|
2140
370
|
return new h("Invalid " + i + " `" + a + "` of type " + ("`" + c + "` supplied to `" + r + "`, expected ") + ("`" + e + "`."), { expectedType: e });
|
|
2141
371
|
}
|
|
2142
372
|
return null;
|
|
@@ -2151,7 +381,7 @@ var { midiToNoteName: xr } = pn, Sr = (e) => e.replace(/([A-G])b/g, "$1♭").rep
|
|
|
2151
381
|
if (typeof e != "function") return new h("Property `" + o + "` of component `" + r + "` has invalid PropType notation inside arrayOf.");
|
|
2152
382
|
var s = t[n];
|
|
2153
383
|
if (!Array.isArray(s)) {
|
|
2154
|
-
var c =
|
|
384
|
+
var c = M(s);
|
|
2155
385
|
return new h("Invalid " + a + " `" + o + "` of type " + ("`" + c + "` supplied to `" + r + "`, expected an array."));
|
|
2156
386
|
}
|
|
2157
387
|
for (var l = 0; l < s.length; l++) {
|
|
@@ -2166,7 +396,7 @@ var { midiToNoteName: xr } = pn, Sr = (e) => e.replace(/([A-G])b/g, "$1♭").rep
|
|
|
2166
396
|
function t(t, n, r, i, a) {
|
|
2167
397
|
var o = t[n];
|
|
2168
398
|
if (!e(o)) {
|
|
2169
|
-
var s =
|
|
399
|
+
var s = M(o);
|
|
2170
400
|
return new h("Invalid " + i + " `" + a + "` of type " + ("`" + s + "` supplied to `" + r + "`, expected a single ReactElement."));
|
|
2171
401
|
}
|
|
2172
402
|
return null;
|
|
@@ -2177,7 +407,7 @@ var { midiToNoteName: xr } = pn, Sr = (e) => e.replace(/([A-G])b/g, "$1♭").rep
|
|
|
2177
407
|
function e(e, t, r, i, a) {
|
|
2178
408
|
var o = e[t];
|
|
2179
409
|
if (!n.isValidElementType(o)) {
|
|
2180
|
-
var s =
|
|
410
|
+
var s = M(o);
|
|
2181
411
|
return new h("Invalid " + i + " `" + a + "` of type " + ("`" + s + "` supplied to `" + r + "`, expected a single ReactElement type."));
|
|
2182
412
|
}
|
|
2183
413
|
return null;
|
|
@@ -2187,7 +417,7 @@ var { midiToNoteName: xr } = pn, Sr = (e) => e.replace(/([A-G])b/g, "$1♭").rep
|
|
|
2187
417
|
function S(e) {
|
|
2188
418
|
function t(t, n, r, i, a) {
|
|
2189
419
|
if (!(t[n] instanceof e)) {
|
|
2190
|
-
var o = e.name || f, s =
|
|
420
|
+
var o = e.name || f, s = F(t[n]);
|
|
2191
421
|
return new h("Invalid " + i + " `" + a + "` of type " + ("`" + s + "` supplied to `" + r + "`, expected ") + ("instance of `" + o + "`."));
|
|
2192
422
|
}
|
|
2193
423
|
return null;
|
|
@@ -2199,7 +429,7 @@ var { midiToNoteName: xr } = pn, Sr = (e) => e.replace(/([A-G])b/g, "$1♭").rep
|
|
|
2199
429
|
function t(t, n, r, i, a) {
|
|
2200
430
|
for (var o = t[n], s = 0; s < e.length; s++) if (m(o, e[s])) return null;
|
|
2201
431
|
var c = JSON.stringify(e, function(e, t) {
|
|
2202
|
-
return
|
|
432
|
+
return N(t) === "symbol" ? String(t) : t;
|
|
2203
433
|
});
|
|
2204
434
|
return new h("Invalid " + i + " `" + a + "` of value `" + String(o) + "` " + ("supplied to `" + r + "`, expected one of " + c + "."));
|
|
2205
435
|
}
|
|
@@ -2208,7 +438,7 @@ var { midiToNoteName: xr } = pn, Sr = (e) => e.replace(/([A-G])b/g, "$1♭").rep
|
|
|
2208
438
|
function w(e) {
|
|
2209
439
|
function t(t, n, r, o, s) {
|
|
2210
440
|
if (typeof e != "function") return new h("Property `" + s + "` of component `" + r + "` has invalid PropType notation inside objectOf.");
|
|
2211
|
-
var c = t[n], l =
|
|
441
|
+
var c = t[n], l = M(c);
|
|
2212
442
|
if (l !== "object") return new h("Invalid " + o + " `" + s + "` of type " + ("`" + l + "` supplied to `" + r + "`, expected an object."));
|
|
2213
443
|
for (var u in c) if (a(c, u)) {
|
|
2214
444
|
var d = e(c, u, r, o, s + "." + u, i);
|
|
@@ -2222,7 +452,7 @@ var { midiToNoteName: xr } = pn, Sr = (e) => e.replace(/([A-G])b/g, "$1♭").rep
|
|
|
2222
452
|
if (!Array.isArray(e)) return process.env.NODE_ENV !== "production" && s("Invalid argument supplied to oneOfType, expected an instance of array."), c;
|
|
2223
453
|
for (var t = 0; t < e.length; t++) {
|
|
2224
454
|
var n = e[t];
|
|
2225
|
-
if (typeof n != "function") return s("Invalid argument supplied to oneOfType. Expected an array of check functions, but received " +
|
|
455
|
+
if (typeof n != "function") return s("Invalid argument supplied to oneOfType. Expected an array of check functions, but received " + P(n) + " at index " + t + "."), c;
|
|
2226
456
|
}
|
|
2227
457
|
function r(t, n, r, o, s) {
|
|
2228
458
|
for (var c = [], l = 0; l < e.length; l++) {
|
|
@@ -2237,20 +467,20 @@ var { midiToNoteName: xr } = pn, Sr = (e) => e.replace(/([A-G])b/g, "$1♭").rep
|
|
|
2237
467
|
}
|
|
2238
468
|
function E() {
|
|
2239
469
|
function e(e, t, n, r, i) {
|
|
2240
|
-
return
|
|
470
|
+
return A(e[t]) ? null : new h("Invalid " + r + " `" + i + "` supplied to " + ("`" + n + "`, expected a ReactNode."));
|
|
2241
471
|
}
|
|
2242
472
|
return g(e);
|
|
2243
473
|
}
|
|
2244
474
|
function D(e, t, n, r, i) {
|
|
2245
475
|
return new h((e || "React class") + ": " + t + " type `" + n + "." + r + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + i + "`.");
|
|
2246
476
|
}
|
|
2247
|
-
function
|
|
477
|
+
function O(e) {
|
|
2248
478
|
function t(t, n, r, a, o) {
|
|
2249
|
-
var s = t[n], c =
|
|
479
|
+
var s = t[n], c = M(s);
|
|
2250
480
|
if (c !== "object") return new h("Invalid " + a + " `" + o + "` of type `" + c + "` " + ("supplied to `" + r + "`, expected `object`."));
|
|
2251
481
|
for (var l in e) {
|
|
2252
482
|
var u = e[l];
|
|
2253
|
-
if (typeof u != "function") return D(r, a, o, l,
|
|
483
|
+
if (typeof u != "function") return D(r, a, o, l, N(u));
|
|
2254
484
|
var d = u(s, l, r, a, o + "." + l, i);
|
|
2255
485
|
if (d) return d;
|
|
2256
486
|
}
|
|
@@ -2258,13 +488,13 @@ var { midiToNoteName: xr } = pn, Sr = (e) => e.replace(/([A-G])b/g, "$1♭").rep
|
|
|
2258
488
|
}
|
|
2259
489
|
return g(t);
|
|
2260
490
|
}
|
|
2261
|
-
function
|
|
491
|
+
function k(e) {
|
|
2262
492
|
function t(t, n, o, s, c) {
|
|
2263
|
-
var l = t[n], u =
|
|
493
|
+
var l = t[n], u = M(l);
|
|
2264
494
|
if (u !== "object") return new h("Invalid " + s + " `" + c + "` of type `" + u + "` " + ("supplied to `" + o + "`, expected `object`."));
|
|
2265
495
|
for (var d in r({}, t[n], e)) {
|
|
2266
496
|
var f = e[d];
|
|
2267
|
-
if (a(e, d) && typeof f != "function") return D(o, s, c, d,
|
|
497
|
+
if (a(e, d) && typeof f != "function") return D(o, s, c, d, N(f));
|
|
2268
498
|
if (!f) return new h("Invalid " + s + " `" + c + "` key `" + d + "` supplied to `" + o + "`.\nBad object: " + JSON.stringify(t[n], null, " ") + "\nValid keys: " + JSON.stringify(Object.keys(e), null, " "));
|
|
2269
499
|
var p = f(l, d, o, s, c + "." + d, i);
|
|
2270
500
|
if (p) return p;
|
|
@@ -2273,47 +503,47 @@ var { midiToNoteName: xr } = pn, Sr = (e) => e.replace(/([A-G])b/g, "$1♭").rep
|
|
|
2273
503
|
}
|
|
2274
504
|
return g(t);
|
|
2275
505
|
}
|
|
2276
|
-
function
|
|
506
|
+
function A(t) {
|
|
2277
507
|
switch (typeof t) {
|
|
2278
508
|
case "number":
|
|
2279
509
|
case "string":
|
|
2280
510
|
case "undefined": return !0;
|
|
2281
511
|
case "boolean": return !t;
|
|
2282
512
|
case "object":
|
|
2283
|
-
if (Array.isArray(t)) return t.every(
|
|
513
|
+
if (Array.isArray(t)) return t.every(A);
|
|
2284
514
|
if (t === null || e(t)) return !0;
|
|
2285
515
|
var n = d(t);
|
|
2286
516
|
if (n) {
|
|
2287
517
|
var r = n.call(t), i;
|
|
2288
518
|
if (n !== t.entries) {
|
|
2289
|
-
for (; !(i = r.next()).done;) if (!
|
|
519
|
+
for (; !(i = r.next()).done;) if (!A(i.value)) return !1;
|
|
2290
520
|
} else for (; !(i = r.next()).done;) {
|
|
2291
521
|
var a = i.value;
|
|
2292
|
-
if (a && !
|
|
522
|
+
if (a && !A(a[1])) return !1;
|
|
2293
523
|
}
|
|
2294
524
|
} else return !1;
|
|
2295
525
|
return !0;
|
|
2296
526
|
default: return !1;
|
|
2297
527
|
}
|
|
2298
528
|
}
|
|
2299
|
-
function
|
|
529
|
+
function j(e, t) {
|
|
2300
530
|
return e === "symbol" ? !0 : t ? t["@@toStringTag"] === "Symbol" || typeof Symbol == "function" && t instanceof Symbol : !1;
|
|
2301
531
|
}
|
|
2302
|
-
function
|
|
532
|
+
function M(e) {
|
|
2303
533
|
var t = typeof e;
|
|
2304
|
-
return Array.isArray(e) ? "array" : e instanceof RegExp ? "object" :
|
|
534
|
+
return Array.isArray(e) ? "array" : e instanceof RegExp ? "object" : j(t, e) ? "symbol" : t;
|
|
2305
535
|
}
|
|
2306
|
-
function
|
|
536
|
+
function N(e) {
|
|
2307
537
|
if (e == null) return "" + e;
|
|
2308
|
-
var t =
|
|
538
|
+
var t = M(e);
|
|
2309
539
|
if (t === "object") {
|
|
2310
540
|
if (e instanceof Date) return "date";
|
|
2311
541
|
if (e instanceof RegExp) return "regexp";
|
|
2312
542
|
}
|
|
2313
543
|
return t;
|
|
2314
544
|
}
|
|
2315
|
-
function
|
|
2316
|
-
var t =
|
|
545
|
+
function P(e) {
|
|
546
|
+
var t = N(e);
|
|
2317
547
|
switch (t) {
|
|
2318
548
|
case "array":
|
|
2319
549
|
case "object": return "an " + t;
|
|
@@ -2323,13 +553,13 @@ var { midiToNoteName: xr } = pn, Sr = (e) => e.replace(/([A-G])b/g, "$1♭").rep
|
|
|
2323
553
|
default: return t;
|
|
2324
554
|
}
|
|
2325
555
|
}
|
|
2326
|
-
function
|
|
556
|
+
function F(e) {
|
|
2327
557
|
return !e.constructor || !e.constructor.name ? f : e.constructor.name;
|
|
2328
558
|
}
|
|
2329
559
|
return p.checkPropTypes = o, p.resetWarningCache = o.resetWarningCache, p.PropTypes = p, p;
|
|
2330
560
|
};
|
|
2331
|
-
})),
|
|
2332
|
-
var n =
|
|
561
|
+
})), ke = /* @__PURE__ */ I(((e, t) => {
|
|
562
|
+
var n = q();
|
|
2333
563
|
function r() {}
|
|
2334
564
|
function i() {}
|
|
2335
565
|
i.resetWarningCache = r, t.exports = function() {
|
|
@@ -2368,12 +598,12 @@ var { midiToNoteName: xr } = pn, Sr = (e) => e.replace(/([A-G])b/g, "$1♭").rep
|
|
|
2368
598
|
};
|
|
2369
599
|
return a.PropTypes = a, a;
|
|
2370
600
|
};
|
|
2371
|
-
})),
|
|
601
|
+
})), Ae = /* @__PURE__ */ I(((e, t) => {
|
|
2372
602
|
if (process.env.NODE_ENV !== "production") {
|
|
2373
|
-
var n =
|
|
2374
|
-
t.exports =
|
|
2375
|
-
} else t.exports =
|
|
2376
|
-
})),
|
|
603
|
+
var n = we();
|
|
604
|
+
t.exports = Oe()(n.isElement, !0);
|
|
605
|
+
} else t.exports = ke()();
|
|
606
|
+
})), je = /* @__PURE__ */ I(((e, t) => {
|
|
2377
607
|
var n = "__lodash_hash_undefined__", r = /[\\^$.*+?()[\]{}|]/g, i = /^\[object .+?Constructor\]$/, a = typeof global == "object" && global && global.Object === Object && global, o = typeof self == "object" && self && self.Object === Object && self, s = a || o || Function("return this")();
|
|
2378
608
|
function c(e, t, n) {
|
|
2379
609
|
switch (n.length) {
|
|
@@ -2432,109 +662,109 @@ var { midiToNoteName: xr } = pn, Sr = (e) => e.replace(/([A-G])b/g, "$1♭").rep
|
|
|
2432
662
|
var b = Array.prototype, x = Function.prototype, S = Object.prototype, C = s["__core-js_shared__"], w = function() {
|
|
2433
663
|
var e = /[^.]+$/.exec(C && C.keys && C.keys.IE_PROTO || "");
|
|
2434
664
|
return e ? "Symbol(src)_1." + e : "";
|
|
2435
|
-
}(), T = x.toString, E = S.hasOwnProperty, D = S.toString,
|
|
2436
|
-
function
|
|
665
|
+
}(), T = x.toString, E = S.hasOwnProperty, D = S.toString, O = RegExp("^" + T.call(E).replace(r, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"), k = s.Symbol, A = S.propertyIsEnumerable, j = b.splice, M = k ? k.isConcatSpreadable : void 0, N = Math.max, P = ge(s, "Map"), F = ge(Object, "create");
|
|
666
|
+
function I(e) {
|
|
2437
667
|
var t = -1, n = e ? e.length : 0;
|
|
2438
668
|
for (this.clear(); ++t < n;) {
|
|
2439
669
|
var r = e[t];
|
|
2440
670
|
this.set(r[0], r[1]);
|
|
2441
671
|
}
|
|
2442
672
|
}
|
|
2443
|
-
function
|
|
2444
|
-
this.__data__ =
|
|
673
|
+
function L() {
|
|
674
|
+
this.__data__ = F ? F(null) : {};
|
|
2445
675
|
}
|
|
2446
|
-
function
|
|
676
|
+
function R(e) {
|
|
2447
677
|
return this.has(e) && delete this.__data__[e];
|
|
2448
678
|
}
|
|
2449
|
-
function
|
|
679
|
+
function z(e) {
|
|
2450
680
|
var t = this.__data__;
|
|
2451
|
-
if (
|
|
681
|
+
if (F) {
|
|
2452
682
|
var r = t[e];
|
|
2453
683
|
return r === n ? void 0 : r;
|
|
2454
684
|
}
|
|
2455
685
|
return E.call(t, e) ? t[e] : void 0;
|
|
2456
686
|
}
|
|
2457
|
-
function
|
|
687
|
+
function B(e) {
|
|
2458
688
|
var t = this.__data__;
|
|
2459
|
-
return
|
|
689
|
+
return F ? t[e] !== void 0 : E.call(t, e);
|
|
2460
690
|
}
|
|
2461
|
-
function
|
|
691
|
+
function ee(e, t) {
|
|
2462
692
|
var r = this.__data__;
|
|
2463
|
-
return r[e] =
|
|
693
|
+
return r[e] = F && t === void 0 ? n : t, this;
|
|
2464
694
|
}
|
|
2465
|
-
|
|
2466
|
-
function
|
|
695
|
+
I.prototype.clear = L, I.prototype.delete = R, I.prototype.get = z, I.prototype.has = B, I.prototype.set = ee;
|
|
696
|
+
function V(e) {
|
|
2467
697
|
var t = -1, n = e ? e.length : 0;
|
|
2468
698
|
for (this.clear(); ++t < n;) {
|
|
2469
699
|
var r = e[t];
|
|
2470
700
|
this.set(r[0], r[1]);
|
|
2471
701
|
}
|
|
2472
702
|
}
|
|
2473
|
-
function
|
|
703
|
+
function te() {
|
|
2474
704
|
this.__data__ = [];
|
|
2475
705
|
}
|
|
2476
|
-
function
|
|
2477
|
-
var t = this.__data__, n =
|
|
2478
|
-
return n < 0 ? !1 : (n == t.length - 1 ? t.pop() :
|
|
706
|
+
function ne(e) {
|
|
707
|
+
var t = this.__data__, n = de(t, e);
|
|
708
|
+
return n < 0 ? !1 : (n == t.length - 1 ? t.pop() : j.call(t, n, 1), !0);
|
|
2479
709
|
}
|
|
2480
|
-
function
|
|
2481
|
-
var t = this.__data__, n =
|
|
710
|
+
function H(e) {
|
|
711
|
+
var t = this.__data__, n = de(t, e);
|
|
2482
712
|
return n < 0 ? void 0 : t[n][1];
|
|
2483
713
|
}
|
|
2484
|
-
function
|
|
2485
|
-
return
|
|
714
|
+
function U(e) {
|
|
715
|
+
return de(this.__data__, e) > -1;
|
|
2486
716
|
}
|
|
2487
|
-
function
|
|
2488
|
-
var n = this.__data__, r =
|
|
717
|
+
function re(e, t) {
|
|
718
|
+
var n = this.__data__, r = de(n, e);
|
|
2489
719
|
return r < 0 ? n.push([e, t]) : n[r][1] = t, this;
|
|
2490
720
|
}
|
|
2491
|
-
|
|
2492
|
-
function
|
|
721
|
+
V.prototype.clear = te, V.prototype.delete = ne, V.prototype.get = H, V.prototype.has = U, V.prototype.set = re;
|
|
722
|
+
function W(e) {
|
|
2493
723
|
var t = -1, n = e ? e.length : 0;
|
|
2494
724
|
for (this.clear(); ++t < n;) {
|
|
2495
725
|
var r = e[t];
|
|
2496
726
|
this.set(r[0], r[1]);
|
|
2497
727
|
}
|
|
2498
728
|
}
|
|
2499
|
-
function
|
|
729
|
+
function ie() {
|
|
2500
730
|
this.__data__ = {
|
|
2501
|
-
hash: new
|
|
2502
|
-
map: new (
|
|
2503
|
-
string: new
|
|
731
|
+
hash: new I(),
|
|
732
|
+
map: new (P || V)(),
|
|
733
|
+
string: new I()
|
|
2504
734
|
};
|
|
2505
735
|
}
|
|
2506
|
-
function
|
|
2507
|
-
return
|
|
736
|
+
function ae(e) {
|
|
737
|
+
return K(this, e).delete(e);
|
|
2508
738
|
}
|
|
2509
|
-
function
|
|
2510
|
-
return
|
|
739
|
+
function oe(e) {
|
|
740
|
+
return K(this, e).get(e);
|
|
2511
741
|
}
|
|
2512
|
-
function
|
|
2513
|
-
return
|
|
742
|
+
function se(e) {
|
|
743
|
+
return K(this, e).has(e);
|
|
2514
744
|
}
|
|
2515
|
-
function
|
|
2516
|
-
return
|
|
745
|
+
function ce(e, t) {
|
|
746
|
+
return K(this, e).set(e, t), this;
|
|
2517
747
|
}
|
|
2518
|
-
|
|
2519
|
-
function
|
|
748
|
+
W.prototype.clear = ie, W.prototype.delete = ae, W.prototype.get = oe, W.prototype.has = se, W.prototype.set = ce;
|
|
749
|
+
function G(e) {
|
|
2520
750
|
var t = -1, n = e ? e.length : 0;
|
|
2521
|
-
for (this.__data__ = new
|
|
751
|
+
for (this.__data__ = new W(); ++t < n;) this.add(e[t]);
|
|
2522
752
|
}
|
|
2523
|
-
function
|
|
753
|
+
function le(e) {
|
|
2524
754
|
return this.__data__.set(e, n), this;
|
|
2525
755
|
}
|
|
2526
|
-
function
|
|
756
|
+
function ue(e) {
|
|
2527
757
|
return this.__data__.has(e);
|
|
2528
758
|
}
|
|
2529
|
-
|
|
2530
|
-
function
|
|
2531
|
-
for (var n = e.length; n--;) if (
|
|
759
|
+
G.prototype.add = G.prototype.push = le, G.prototype.has = ue;
|
|
760
|
+
function de(e, t) {
|
|
761
|
+
for (var n = e.length; n--;) if (Se(e[n][0], t)) return n;
|
|
2532
762
|
return -1;
|
|
2533
763
|
}
|
|
2534
|
-
function
|
|
764
|
+
function fe(e, t, n, r) {
|
|
2535
765
|
var i = -1, a = l, o = !0, s = e.length, c = [], f = t.length;
|
|
2536
766
|
if (!s) return c;
|
|
2537
|
-
n && (t = d(t, g(n))), r ? (a = u, o = !1) : t.length >= 200 && (a = _, o = !1, t = new
|
|
767
|
+
n && (t = d(t, g(n))), r ? (a = u, o = !1) : t.length >= 200 && (a = _, o = !1, t = new G(t));
|
|
2538
768
|
outer: for (; ++i < s;) {
|
|
2539
769
|
var p = e[i], m = n ? n(p) : p;
|
|
2540
770
|
if (p = r || p !== 0 ? p : 0, o && m === m) {
|
|
@@ -2544,44 +774,44 @@ var { midiToNoteName: xr } = pn, Sr = (e) => e.replace(/([A-G])b/g, "$1♭").rep
|
|
|
2544
774
|
}
|
|
2545
775
|
return c;
|
|
2546
776
|
}
|
|
2547
|
-
function
|
|
777
|
+
function pe(e, t, n, r, i) {
|
|
2548
778
|
var a = -1, o = e.length;
|
|
2549
|
-
for (n ||=
|
|
779
|
+
for (n ||= _e, i ||= []; ++a < o;) {
|
|
2550
780
|
var s = e[a];
|
|
2551
|
-
t > 0 && n(s) ? t > 1 ?
|
|
781
|
+
t > 0 && n(s) ? t > 1 ? pe(s, t - 1, n, r, i) : f(i, s) : r || (i[i.length] = s);
|
|
2552
782
|
}
|
|
2553
783
|
return i;
|
|
2554
784
|
}
|
|
2555
|
-
function
|
|
2556
|
-
return !
|
|
785
|
+
function me(e) {
|
|
786
|
+
return !Oe(e) || ye(e) ? !1 : (Ee(e) || y(e) ? O : i).test(be(e));
|
|
2557
787
|
}
|
|
2558
|
-
function
|
|
2559
|
-
return t =
|
|
2560
|
-
for (var n = arguments, r = -1, i =
|
|
788
|
+
function he(e, t) {
|
|
789
|
+
return t = N(t === void 0 ? e.length - 1 : t, 0), function() {
|
|
790
|
+
for (var n = arguments, r = -1, i = N(n.length - t, 0), a = Array(i); ++r < i;) a[r] = n[t + r];
|
|
2561
791
|
r = -1;
|
|
2562
792
|
for (var o = Array(t + 1); ++r < t;) o[r] = n[r];
|
|
2563
793
|
return o[t] = a, c(e, this, o);
|
|
2564
794
|
};
|
|
2565
795
|
}
|
|
2566
|
-
function
|
|
796
|
+
function K(e, t) {
|
|
2567
797
|
var n = e.__data__;
|
|
2568
|
-
return
|
|
798
|
+
return ve(t) ? n[typeof t == "string" ? "string" : "hash"] : n.map;
|
|
2569
799
|
}
|
|
2570
|
-
function
|
|
800
|
+
function ge(e, t) {
|
|
2571
801
|
var n = v(e, t);
|
|
2572
|
-
return
|
|
802
|
+
return me(n) ? n : void 0;
|
|
2573
803
|
}
|
|
2574
|
-
function
|
|
2575
|
-
return
|
|
804
|
+
function _e(e) {
|
|
805
|
+
return we(e) || Ce(e) || !!(M && e && e[M]);
|
|
2576
806
|
}
|
|
2577
|
-
function
|
|
807
|
+
function ve(e) {
|
|
2578
808
|
var t = typeof e;
|
|
2579
809
|
return t == "string" || t == "number" || t == "symbol" || t == "boolean" ? e !== "__proto__" : e === null;
|
|
2580
810
|
}
|
|
2581
|
-
function
|
|
811
|
+
function ye(e) {
|
|
2582
812
|
return !!w && w in e;
|
|
2583
813
|
}
|
|
2584
|
-
function
|
|
814
|
+
function be(e) {
|
|
2585
815
|
if (e != null) {
|
|
2586
816
|
try {
|
|
2587
817
|
return T.call(e);
|
|
@@ -2592,39 +822,39 @@ var { midiToNoteName: xr } = pn, Sr = (e) => e.replace(/([A-G])b/g, "$1♭").rep
|
|
|
2592
822
|
}
|
|
2593
823
|
return "";
|
|
2594
824
|
}
|
|
2595
|
-
var
|
|
2596
|
-
return
|
|
825
|
+
var xe = he(function(e, t) {
|
|
826
|
+
return q(e) ? fe(e, pe(t, 1, q, !0)) : [];
|
|
2597
827
|
});
|
|
2598
|
-
function
|
|
828
|
+
function Se(e, t) {
|
|
2599
829
|
return e === t || e !== e && t !== t;
|
|
2600
830
|
}
|
|
2601
|
-
function
|
|
2602
|
-
return
|
|
831
|
+
function Ce(e) {
|
|
832
|
+
return q(e) && E.call(e, "callee") && (!A.call(e, "callee") || D.call(e) == "[object Arguments]");
|
|
2603
833
|
}
|
|
2604
|
-
var
|
|
2605
|
-
function
|
|
2606
|
-
return e != null &&
|
|
834
|
+
var we = Array.isArray;
|
|
835
|
+
function Te(e) {
|
|
836
|
+
return e != null && De(e.length) && !Ee(e);
|
|
2607
837
|
}
|
|
2608
|
-
function
|
|
2609
|
-
return
|
|
838
|
+
function q(e) {
|
|
839
|
+
return ke(e) && Te(e);
|
|
2610
840
|
}
|
|
2611
|
-
function
|
|
2612
|
-
var t =
|
|
841
|
+
function Ee(e) {
|
|
842
|
+
var t = Oe(e) ? D.call(e) : "";
|
|
2613
843
|
return t == "[object Function]" || t == "[object GeneratorFunction]";
|
|
2614
844
|
}
|
|
2615
|
-
function
|
|
845
|
+
function De(e) {
|
|
2616
846
|
return typeof e == "number" && e > -1 && e % 1 == 0 && e <= 9007199254740991;
|
|
2617
847
|
}
|
|
2618
|
-
function
|
|
848
|
+
function Oe(e) {
|
|
2619
849
|
var t = typeof e;
|
|
2620
850
|
return !!e && (t == "object" || t == "function");
|
|
2621
851
|
}
|
|
2622
|
-
function
|
|
852
|
+
function ke(e) {
|
|
2623
853
|
return !!e && typeof e == "object";
|
|
2624
854
|
}
|
|
2625
|
-
t.exports =
|
|
2626
|
-
})),
|
|
2627
|
-
function
|
|
855
|
+
t.exports = xe;
|
|
856
|
+
})), Me = /* @__PURE__ */ R(xe()), J = /* @__PURE__ */ R(Ae()), Ne = /* @__PURE__ */ R(je());
|
|
857
|
+
function Pe(e, t) {
|
|
2628
858
|
var n = e == null ? null : typeof Symbol < "u" && e[Symbol.iterator] || e["@@iterator"];
|
|
2629
859
|
if (n != null) {
|
|
2630
860
|
var r, i, a, o, s = [], c = !0, l = !1;
|
|
@@ -2645,54 +875,54 @@ function zr(e, t) {
|
|
|
2645
875
|
return s;
|
|
2646
876
|
}
|
|
2647
877
|
}
|
|
2648
|
-
function
|
|
878
|
+
function Fe(e, t) {
|
|
2649
879
|
if (!(e instanceof t)) throw TypeError("Cannot call a class as a function");
|
|
2650
880
|
}
|
|
2651
|
-
function
|
|
881
|
+
function Ie(e, t) {
|
|
2652
882
|
for (var n = 0; n < t.length; n++) {
|
|
2653
883
|
var r = t[n];
|
|
2654
|
-
r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e,
|
|
884
|
+
r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, $e(r.key), r);
|
|
2655
885
|
}
|
|
2656
886
|
}
|
|
2657
|
-
function
|
|
2658
|
-
return t &&
|
|
887
|
+
function Le(e, t, n) {
|
|
888
|
+
return t && Ie(e.prototype, t), n && Ie(e, n), Object.defineProperty(e, "prototype", { writable: !1 }), e;
|
|
2659
889
|
}
|
|
2660
|
-
function
|
|
2661
|
-
return t =
|
|
890
|
+
function Y(e, t, n) {
|
|
891
|
+
return t = $e(t), t in e ? Object.defineProperty(e, t, {
|
|
2662
892
|
value: n,
|
|
2663
893
|
enumerable: !0,
|
|
2664
894
|
configurable: !0,
|
|
2665
895
|
writable: !0
|
|
2666
896
|
}) : e[t] = n, e;
|
|
2667
897
|
}
|
|
2668
|
-
function
|
|
2669
|
-
return
|
|
898
|
+
function Re() {
|
|
899
|
+
return Re = Object.assign ? Object.assign.bind() : function(e) {
|
|
2670
900
|
for (var t = 1; t < arguments.length; t++) {
|
|
2671
901
|
var n = arguments[t];
|
|
2672
902
|
for (var r in n) Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r]);
|
|
2673
903
|
}
|
|
2674
904
|
return e;
|
|
2675
|
-
},
|
|
905
|
+
}, Re.apply(this, arguments);
|
|
2676
906
|
}
|
|
2677
|
-
function
|
|
907
|
+
function ze(e, t) {
|
|
2678
908
|
if (typeof t != "function" && t !== null) throw TypeError("Super expression must either be null or a function");
|
|
2679
909
|
e.prototype = Object.create(t && t.prototype, { constructor: {
|
|
2680
910
|
value: e,
|
|
2681
911
|
writable: !0,
|
|
2682
912
|
configurable: !0
|
|
2683
|
-
} }), Object.defineProperty(e, "prototype", { writable: !1 }), t &&
|
|
913
|
+
} }), Object.defineProperty(e, "prototype", { writable: !1 }), t && Ve(e, t);
|
|
2684
914
|
}
|
|
2685
|
-
function
|
|
2686
|
-
return
|
|
915
|
+
function Be(e) {
|
|
916
|
+
return Be = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(e) {
|
|
2687
917
|
return e.__proto__ || Object.getPrototypeOf(e);
|
|
2688
|
-
},
|
|
918
|
+
}, Be(e);
|
|
2689
919
|
}
|
|
2690
|
-
function
|
|
2691
|
-
return
|
|
920
|
+
function Ve(e, t) {
|
|
921
|
+
return Ve = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(e, t) {
|
|
2692
922
|
return e.__proto__ = t, e;
|
|
2693
|
-
},
|
|
923
|
+
}, Ve(e, t);
|
|
2694
924
|
}
|
|
2695
|
-
function
|
|
925
|
+
function He() {
|
|
2696
926
|
if (typeof Reflect > "u" || !Reflect.construct || Reflect.construct.sham) return !1;
|
|
2697
927
|
if (typeof Proxy == "function") return !0;
|
|
2698
928
|
try {
|
|
@@ -2701,64 +931,64 @@ function qr() {
|
|
|
2701
931
|
return !1;
|
|
2702
932
|
}
|
|
2703
933
|
}
|
|
2704
|
-
function
|
|
934
|
+
function Ue(e, t) {
|
|
2705
935
|
if (e == null) return {};
|
|
2706
936
|
var n = {}, r = Object.keys(e), i, a;
|
|
2707
937
|
for (a = 0; a < r.length; a++) i = r[a], !(t.indexOf(i) >= 0) && (n[i] = e[i]);
|
|
2708
938
|
return n;
|
|
2709
939
|
}
|
|
2710
|
-
function
|
|
940
|
+
function We(e, t) {
|
|
2711
941
|
if (e == null) return {};
|
|
2712
|
-
var n =
|
|
942
|
+
var n = Ue(e, t), r, i;
|
|
2713
943
|
if (Object.getOwnPropertySymbols) {
|
|
2714
944
|
var a = Object.getOwnPropertySymbols(e);
|
|
2715
945
|
for (i = 0; i < a.length; i++) r = a[i], !(t.indexOf(r) >= 0) && Object.prototype.propertyIsEnumerable.call(e, r) && (n[r] = e[r]);
|
|
2716
946
|
}
|
|
2717
947
|
return n;
|
|
2718
948
|
}
|
|
2719
|
-
function
|
|
949
|
+
function X(e) {
|
|
2720
950
|
if (e === void 0) throw ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
2721
951
|
return e;
|
|
2722
952
|
}
|
|
2723
|
-
function
|
|
953
|
+
function Ge(e, t) {
|
|
2724
954
|
if (t && (typeof t == "object" || typeof t == "function")) return t;
|
|
2725
955
|
if (t !== void 0) throw TypeError("Derived constructors may only return object or undefined");
|
|
2726
|
-
return
|
|
956
|
+
return X(e);
|
|
2727
957
|
}
|
|
2728
|
-
function
|
|
2729
|
-
var t =
|
|
958
|
+
function Ke(e) {
|
|
959
|
+
var t = He();
|
|
2730
960
|
return function() {
|
|
2731
|
-
var n =
|
|
961
|
+
var n = Be(e), r;
|
|
2732
962
|
if (t) {
|
|
2733
|
-
var i =
|
|
963
|
+
var i = Be(this).constructor;
|
|
2734
964
|
r = Reflect.construct(n, arguments, i);
|
|
2735
965
|
} else r = n.apply(this, arguments);
|
|
2736
|
-
return
|
|
966
|
+
return Ge(this, r);
|
|
2737
967
|
};
|
|
2738
968
|
}
|
|
2739
|
-
function
|
|
2740
|
-
return
|
|
969
|
+
function qe(e, t) {
|
|
970
|
+
return Je(e) || Pe(e, t) || Ye(e, t) || Ze();
|
|
2741
971
|
}
|
|
2742
|
-
function
|
|
972
|
+
function Je(e) {
|
|
2743
973
|
if (Array.isArray(e)) return e;
|
|
2744
974
|
}
|
|
2745
|
-
function
|
|
975
|
+
function Ye(e, t) {
|
|
2746
976
|
if (e) {
|
|
2747
|
-
if (typeof e == "string") return
|
|
977
|
+
if (typeof e == "string") return Xe(e, t);
|
|
2748
978
|
var n = Object.prototype.toString.call(e).slice(8, -1);
|
|
2749
979
|
if (n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set") return Array.from(e);
|
|
2750
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return
|
|
980
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Xe(e, t);
|
|
2751
981
|
}
|
|
2752
982
|
}
|
|
2753
|
-
function
|
|
983
|
+
function Xe(e, t) {
|
|
2754
984
|
(t == null || t > e.length) && (t = e.length);
|
|
2755
985
|
for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n];
|
|
2756
986
|
return r;
|
|
2757
987
|
}
|
|
2758
|
-
function
|
|
988
|
+
function Ze() {
|
|
2759
989
|
throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
2760
990
|
}
|
|
2761
|
-
function
|
|
991
|
+
function Qe(e, t) {
|
|
2762
992
|
if (typeof e != "object" || !e) return e;
|
|
2763
993
|
var n = e[Symbol.toPrimitive];
|
|
2764
994
|
if (n !== void 0) {
|
|
@@ -2768,11 +998,11 @@ function ri(e, t) {
|
|
|
2768
998
|
}
|
|
2769
999
|
return (t === "string" ? String : Number)(e);
|
|
2770
1000
|
}
|
|
2771
|
-
function
|
|
2772
|
-
var t =
|
|
1001
|
+
function $e(e) {
|
|
1002
|
+
var t = Qe(e, "string");
|
|
2773
1003
|
return typeof t == "symbol" ? t : String(t);
|
|
2774
1004
|
}
|
|
2775
|
-
var
|
|
1005
|
+
var et = [
|
|
2776
1006
|
"C",
|
|
2777
1007
|
"Db",
|
|
2778
1008
|
"D",
|
|
@@ -2785,13 +1015,13 @@ var ai = [
|
|
|
2785
1015
|
"A",
|
|
2786
1016
|
"Bb",
|
|
2787
1017
|
"B"
|
|
2788
|
-
],
|
|
1018
|
+
], tt = [
|
|
2789
1019
|
"Db",
|
|
2790
1020
|
"Eb",
|
|
2791
1021
|
"Gb",
|
|
2792
1022
|
"Ab",
|
|
2793
1023
|
"Bb"
|
|
2794
|
-
],
|
|
1024
|
+
], nt = {
|
|
2795
1025
|
C: 0,
|
|
2796
1026
|
"C#": 1,
|
|
2797
1027
|
Db: 1,
|
|
@@ -2809,62 +1039,62 @@ var ai = [
|
|
|
2809
1039
|
"A#": 10,
|
|
2810
1040
|
Bb: 10,
|
|
2811
1041
|
B: 11
|
|
2812
|
-
},
|
|
2813
|
-
function
|
|
1042
|
+
}, rt = 12, it = rt, at = 127, ot = /([a-g])([#b]?)(\d+)/, st = 12;
|
|
1043
|
+
function ct(e) {
|
|
2814
1044
|
if (!e) throw Error("Invalid note argument");
|
|
2815
|
-
var t =
|
|
1045
|
+
var t = ot.exec(e.toLowerCase());
|
|
2816
1046
|
if (!t) throw Error("Invalid note argument");
|
|
2817
|
-
var n =
|
|
1047
|
+
var n = qe(t, 4), r = n[1], i = n[2], a = n[3], o = nt[`${r.toUpperCase()}${i}`];
|
|
2818
1048
|
if (o == null) throw Error("Invalid note argument");
|
|
2819
|
-
return
|
|
1049
|
+
return rt + o + st * parseInt(a, 10);
|
|
2820
1050
|
}
|
|
2821
|
-
function
|
|
2822
|
-
var t = (e -
|
|
1051
|
+
function lt(e) {
|
|
1052
|
+
var t = (e - rt) % st, n = Math.floor((e - rt) / st), r = et[t];
|
|
2823
1053
|
return {
|
|
2824
1054
|
note: `${r}${n}`,
|
|
2825
1055
|
pitchName: r,
|
|
2826
1056
|
octave: n,
|
|
2827
1057
|
midiNumber: e,
|
|
2828
|
-
isAccidental:
|
|
1058
|
+
isAccidental: tt.includes(r)
|
|
2829
1059
|
};
|
|
2830
1060
|
}
|
|
2831
|
-
function
|
|
2832
|
-
return (0,
|
|
2833
|
-
return e[t] =
|
|
1061
|
+
function ut() {
|
|
1062
|
+
return (0, Me.default)(it, at + 1).reduce(function(e, t) {
|
|
1063
|
+
return e[t] = lt(t), e;
|
|
2834
1064
|
}, {});
|
|
2835
1065
|
}
|
|
2836
|
-
var
|
|
2837
|
-
function
|
|
2838
|
-
var t =
|
|
1066
|
+
var dt = ut();
|
|
1067
|
+
function ft(e) {
|
|
1068
|
+
var t = dt[e];
|
|
2839
1069
|
if (!t) throw Error("Invalid MIDI number");
|
|
2840
1070
|
return t;
|
|
2841
1071
|
}
|
|
2842
|
-
var
|
|
2843
|
-
fromNote:
|
|
2844
|
-
getAttributes:
|
|
2845
|
-
MIN_MIDI_NUMBER:
|
|
2846
|
-
MAX_MIDI_NUMBER:
|
|
2847
|
-
NATURAL_MIDI_NUMBERS: (0,
|
|
2848
|
-
return !
|
|
1072
|
+
var pt = {
|
|
1073
|
+
fromNote: ct,
|
|
1074
|
+
getAttributes: ft,
|
|
1075
|
+
MIN_MIDI_NUMBER: it,
|
|
1076
|
+
MAX_MIDI_NUMBER: at,
|
|
1077
|
+
NATURAL_MIDI_NUMBERS: (0, Me.default)(it, at + 1).filter(function(e) {
|
|
1078
|
+
return !ft(e).isAccidental;
|
|
2849
1079
|
})
|
|
2850
|
-
},
|
|
2851
|
-
|
|
2852
|
-
var n =
|
|
1080
|
+
}, mt = 60, ht = /*#__PURE__*/ function(t) {
|
|
1081
|
+
ze(r, t);
|
|
1082
|
+
var n = Ke(r);
|
|
2853
1083
|
function r() {
|
|
2854
1084
|
var e;
|
|
2855
|
-
|
|
1085
|
+
Fe(this, r);
|
|
2856
1086
|
var t = [...arguments];
|
|
2857
|
-
return e = n.call.apply(n, [this].concat(t)),
|
|
1087
|
+
return e = n.call.apply(n, [this].concat(t)), Y(X(e), "onPlayNoteInput", function() {
|
|
2858
1088
|
e.props.onPlayNoteInput(e.props.midiNumber);
|
|
2859
|
-
}),
|
|
1089
|
+
}), Y(X(e), "onStopNoteInput", function() {
|
|
2860
1090
|
e.props.onStopNoteInput(e.props.midiNumber), e.props.onKeyMouseLeave && e.props.onKeyMouseLeave(e.props.midiNumber);
|
|
2861
1091
|
}), e;
|
|
2862
1092
|
}
|
|
2863
|
-
return
|
|
1093
|
+
return Le(r, [
|
|
2864
1094
|
{
|
|
2865
1095
|
key: "getAbsoluteKeyPosition",
|
|
2866
1096
|
value: function(e) {
|
|
2867
|
-
var t = 7, n =
|
|
1097
|
+
var t = 7, n = pt.getAttributes(e), r = n.octave, i = n.pitchName;
|
|
2868
1098
|
return this.props.pitchPositions[i] + t * r;
|
|
2869
1099
|
}
|
|
2870
1100
|
},
|
|
@@ -2877,19 +1107,19 @@ var vi = {
|
|
|
2877
1107
|
{
|
|
2878
1108
|
key: "render",
|
|
2879
1109
|
value: function() {
|
|
2880
|
-
var t = this, n = this.props, r = n.naturalKeyWidth, i = n.accidentalWidthRatio, a = n.midiNumber, o = n.gliss, s = n.useTouchEvents, c = n.accidental, l = n.active, u = n.selected, d = n.disabled,
|
|
1110
|
+
var t = this, n = this.props, r = n.naturalKeyWidth, i = n.accidentalWidthRatio, a = n.midiNumber, o = n.gliss, s = n.useTouchEvents, c = n.accidental, l = n.active, u = n.selected, d = n.disabled, f = n.children, p = gt(this.getRelativeKeyPosition(a) * r), h = gt(c ? i * r : r);
|
|
2881
1111
|
return /*#__PURE__*/ e.createElement("div", {
|
|
2882
1112
|
"data-midinumber": a,
|
|
2883
|
-
className:
|
|
1113
|
+
className: m("ReactPiano__Key", {
|
|
2884
1114
|
"ReactPiano__Key--accidental": c,
|
|
2885
1115
|
"ReactPiano__Key--natural": !c,
|
|
2886
1116
|
"ReactPiano__Key--disabled": d,
|
|
2887
1117
|
"ReactPiano__Key--active": l,
|
|
2888
1118
|
"ReactPiano__Key--selected": u,
|
|
2889
|
-
"ReactPiano__Key--middleC": a ===
|
|
1119
|
+
"ReactPiano__Key--middleC": a === mt
|
|
2890
1120
|
}),
|
|
2891
1121
|
style: {
|
|
2892
|
-
left:
|
|
1122
|
+
left: p,
|
|
2893
1123
|
width: h
|
|
2894
1124
|
},
|
|
2895
1125
|
onDoubleClick: function() {
|
|
@@ -2902,7 +1132,7 @@ var vi = {
|
|
|
2902
1132
|
onMouseEnter: function() {
|
|
2903
1133
|
t.props.onKeyMouseEnter && t.props.onKeyMouseEnter({
|
|
2904
1134
|
accidental: c,
|
|
2905
|
-
left:
|
|
1135
|
+
left: p,
|
|
2906
1136
|
midiNumber: a,
|
|
2907
1137
|
width: h
|
|
2908
1138
|
}), o && t.onPlayNoteInput();
|
|
@@ -2911,28 +1141,28 @@ var vi = {
|
|
|
2911
1141
|
onTouchStart: s ? this.onPlayNoteInput : null,
|
|
2912
1142
|
onTouchCancel: s ? this.onStopNoteInput : null,
|
|
2913
1143
|
onTouchEnd: s ? this.onStopNoteInput : null
|
|
2914
|
-
}, /*#__PURE__*/ e.createElement("div", { className: "ReactPiano__NoteLabelContainer" },
|
|
1144
|
+
}, /*#__PURE__*/ e.createElement("div", { className: "ReactPiano__NoteLabelContainer" }, f));
|
|
2915
1145
|
}
|
|
2916
1146
|
}
|
|
2917
1147
|
]), r;
|
|
2918
1148
|
}(e.Component);
|
|
2919
|
-
|
|
2920
|
-
midiNumber:
|
|
2921
|
-
naturalKeyWidth:
|
|
2922
|
-
gliss:
|
|
2923
|
-
useTouchEvents:
|
|
2924
|
-
accidental:
|
|
2925
|
-
active:
|
|
2926
|
-
selected:
|
|
2927
|
-
disabled:
|
|
2928
|
-
onKeyMouseEnter:
|
|
2929
|
-
onKeyMouseLeave:
|
|
2930
|
-
onPlayNoteInput:
|
|
2931
|
-
onStopNoteInput:
|
|
2932
|
-
accidentalWidthRatio:
|
|
2933
|
-
pitchPositions:
|
|
2934
|
-
children:
|
|
2935
|
-
}),
|
|
1149
|
+
Y(ht, "propTypes", {
|
|
1150
|
+
midiNumber: J.default.number.isRequired,
|
|
1151
|
+
naturalKeyWidth: J.default.number.isRequired,
|
|
1152
|
+
gliss: J.default.bool.isRequired,
|
|
1153
|
+
useTouchEvents: J.default.bool.isRequired,
|
|
1154
|
+
accidental: J.default.bool.isRequired,
|
|
1155
|
+
active: J.default.bool.isRequired,
|
|
1156
|
+
selected: J.default.bool,
|
|
1157
|
+
disabled: J.default.bool.isRequired,
|
|
1158
|
+
onKeyMouseEnter: J.default.func,
|
|
1159
|
+
onKeyMouseLeave: J.default.func,
|
|
1160
|
+
onPlayNoteInput: J.default.func.isRequired,
|
|
1161
|
+
onStopNoteInput: J.default.func.isRequired,
|
|
1162
|
+
accidentalWidthRatio: J.default.number.isRequired,
|
|
1163
|
+
pitchPositions: J.default.object.isRequired,
|
|
1164
|
+
children: J.default.node
|
|
1165
|
+
}), Y(ht, "defaultProps", {
|
|
2936
1166
|
accidentalWidthRatio: .65,
|
|
2937
1167
|
selected: !1,
|
|
2938
1168
|
onKeyMouseEnter: void 0,
|
|
@@ -2952,27 +1182,27 @@ Z(bi, "propTypes", {
|
|
|
2952
1182
|
B: 6
|
|
2953
1183
|
}
|
|
2954
1184
|
});
|
|
2955
|
-
function
|
|
1185
|
+
function gt(e) {
|
|
2956
1186
|
return `${e * 100}%`;
|
|
2957
1187
|
}
|
|
2958
|
-
var
|
|
2959
|
-
|
|
2960
|
-
var n =
|
|
1188
|
+
var _t = /*#__PURE__*/ function(t) {
|
|
1189
|
+
ze(r, t);
|
|
1190
|
+
var n = Ke(r);
|
|
2961
1191
|
function r() {
|
|
2962
|
-
return
|
|
1192
|
+
return Fe(this, r), n.apply(this, arguments);
|
|
2963
1193
|
}
|
|
2964
|
-
return
|
|
1194
|
+
return Le(r, [
|
|
2965
1195
|
{
|
|
2966
1196
|
key: "getMidiNumbers",
|
|
2967
1197
|
value: function() {
|
|
2968
|
-
return (0,
|
|
1198
|
+
return (0, Me.default)(this.props.noteRange.first, this.props.noteRange.last + 1);
|
|
2969
1199
|
}
|
|
2970
1200
|
},
|
|
2971
1201
|
{
|
|
2972
1202
|
key: "getNaturalKeyCount",
|
|
2973
1203
|
value: function() {
|
|
2974
1204
|
return this.getMidiNumbers().filter(function(e) {
|
|
2975
|
-
return !
|
|
1205
|
+
return !pt.getAttributes(e).isAccidental;
|
|
2976
1206
|
}).length;
|
|
2977
1207
|
}
|
|
2978
1208
|
},
|
|
@@ -2999,16 +1229,16 @@ var Si = /*#__PURE__*/ function(t) {
|
|
|
2999
1229
|
value: function() {
|
|
3000
1230
|
var t = this, n = this.getNaturalKeyWidth();
|
|
3001
1231
|
return /*#__PURE__*/ e.createElement("div", {
|
|
3002
|
-
className:
|
|
1232
|
+
className: m("ReactPiano__Keyboard", this.props.className),
|
|
3003
1233
|
style: {
|
|
3004
1234
|
width: this.getWidth(),
|
|
3005
1235
|
height: this.getHeight()
|
|
3006
1236
|
}
|
|
3007
1237
|
}, this.getMidiNumbers().map(function(r) {
|
|
3008
|
-
var i =
|
|
1238
|
+
var i = pt.getAttributes(r);
|
|
3009
1239
|
i.note;
|
|
3010
1240
|
var a = i.isAccidental, o = !t.props.disabled && t.props.activeNotes.includes(r), s = t.props.selectedNotes && t.props.selectedNotes.includes(r);
|
|
3011
|
-
return /*#__PURE__*/ e.createElement(
|
|
1241
|
+
return /*#__PURE__*/ e.createElement(ht, {
|
|
3012
1242
|
accidental: a,
|
|
3013
1243
|
active: o,
|
|
3014
1244
|
selected: s,
|
|
@@ -3035,22 +1265,22 @@ var Si = /*#__PURE__*/ function(t) {
|
|
|
3035
1265
|
}
|
|
3036
1266
|
]), r;
|
|
3037
1267
|
}(e.Component);
|
|
3038
|
-
|
|
3039
|
-
noteRange:
|
|
3040
|
-
activeNotes:
|
|
3041
|
-
selectedNotes:
|
|
3042
|
-
onKeyMouseEnter:
|
|
3043
|
-
onKeyMouseLeave:
|
|
3044
|
-
onPlayNoteInput:
|
|
3045
|
-
onStopNoteInput:
|
|
3046
|
-
renderNoteLabel:
|
|
3047
|
-
keyWidthToHeight:
|
|
3048
|
-
className:
|
|
3049
|
-
disabled:
|
|
3050
|
-
gliss:
|
|
3051
|
-
useTouchEvents:
|
|
3052
|
-
width:
|
|
3053
|
-
}),
|
|
1268
|
+
Y(_t, "propTypes", {
|
|
1269
|
+
noteRange: yt,
|
|
1270
|
+
activeNotes: J.default.arrayOf(J.default.number),
|
|
1271
|
+
selectedNotes: J.default.arrayOf(J.default.number),
|
|
1272
|
+
onKeyMouseEnter: J.default.func,
|
|
1273
|
+
onKeyMouseLeave: J.default.func,
|
|
1274
|
+
onPlayNoteInput: J.default.func.isRequired,
|
|
1275
|
+
onStopNoteInput: J.default.func.isRequired,
|
|
1276
|
+
renderNoteLabel: J.default.func.isRequired,
|
|
1277
|
+
keyWidthToHeight: J.default.number.isRequired,
|
|
1278
|
+
className: J.default.string,
|
|
1279
|
+
disabled: J.default.bool,
|
|
1280
|
+
gliss: J.default.bool,
|
|
1281
|
+
useTouchEvents: J.default.bool,
|
|
1282
|
+
width: J.default.number
|
|
1283
|
+
}), Y(_t, "defaultProps", {
|
|
3054
1284
|
disabled: !1,
|
|
3055
1285
|
gliss: !1,
|
|
3056
1286
|
keyWidthToHeight: .33,
|
|
@@ -3059,66 +1289,66 @@ Z(Si, "propTypes", {
|
|
|
3059
1289
|
renderNoteLabel: function() {},
|
|
3060
1290
|
useTouchEvents: !1
|
|
3061
1291
|
});
|
|
3062
|
-
function
|
|
3063
|
-
return typeof e == "number" &&
|
|
1292
|
+
function vt(e) {
|
|
1293
|
+
return typeof e == "number" && pt.NATURAL_MIDI_NUMBERS.includes(e);
|
|
3064
1294
|
}
|
|
3065
|
-
function
|
|
1295
|
+
function yt(e, t, n) {
|
|
3066
1296
|
var r = e[t], i = r.first, a = r.last;
|
|
3067
1297
|
if (!i || !a) return /* @__PURE__ */ Error(`Invalid prop ${t} supplied to ${n}. ${t} must be an object with .first and .last values.`);
|
|
3068
|
-
if (!
|
|
1298
|
+
if (!vt(i) || !vt(a)) return /* @__PURE__ */ Error(`Invalid prop ${t} supplied to ${n}. ${t} values must be valid MIDI numbers, and should not be accidentals (sharp or flat notes).`);
|
|
3069
1299
|
if (i >= a) return /* @__PURE__ */ Error(`Invalid prop ${t} supplied to ${n}. ${t}.first must be smaller than ${t}.last.`);
|
|
3070
1300
|
}
|
|
3071
|
-
var
|
|
3072
|
-
|
|
3073
|
-
var n =
|
|
1301
|
+
var bt = /*#__PURE__*/ function(t) {
|
|
1302
|
+
ze(r, t);
|
|
1303
|
+
var n = Ke(r);
|
|
3074
1304
|
function r() {
|
|
3075
1305
|
var e;
|
|
3076
|
-
|
|
1306
|
+
Fe(this, r);
|
|
3077
1307
|
var t = [...arguments];
|
|
3078
|
-
return e = n.call.apply(n, [this].concat(t)),
|
|
1308
|
+
return e = n.call.apply(n, [this].concat(t)), Y(X(e), "state", {
|
|
3079
1309
|
isMouseDown: !1,
|
|
3080
1310
|
useTouchEvents: !1
|
|
3081
|
-
}),
|
|
1311
|
+
}), Y(X(e), "handleNoteChanges", function(t) {
|
|
3082
1312
|
var n = t.prevActiveNotes, r = t.nextActiveNotes;
|
|
3083
1313
|
if (!e.props.disabled) {
|
|
3084
|
-
var i = (0,
|
|
3085
|
-
(0,
|
|
1314
|
+
var i = (0, Ne.default)(n, r);
|
|
1315
|
+
(0, Ne.default)(r, n).forEach(function(t) {
|
|
3086
1316
|
e.props.playNote(t);
|
|
3087
1317
|
}), i.forEach(function(t) {
|
|
3088
1318
|
e.props.stopNote(t);
|
|
3089
1319
|
});
|
|
3090
1320
|
}
|
|
3091
|
-
}),
|
|
1321
|
+
}), Y(X(e), "getMidiNumberForKey", function(t) {
|
|
3092
1322
|
if (!e.props.keyboardShortcuts) return null;
|
|
3093
1323
|
var n = e.props.keyboardShortcuts.find(function(e) {
|
|
3094
1324
|
return e.key === t;
|
|
3095
1325
|
});
|
|
3096
1326
|
return n && n.midiNumber;
|
|
3097
|
-
}),
|
|
1327
|
+
}), Y(X(e), "getKeyForMidiNumber", function(t) {
|
|
3098
1328
|
if (!e.props.keyboardShortcuts) return null;
|
|
3099
1329
|
var n = e.props.keyboardShortcuts.find(function(e) {
|
|
3100
1330
|
return e.midiNumber === t;
|
|
3101
1331
|
});
|
|
3102
1332
|
return n && n.key;
|
|
3103
|
-
}),
|
|
1333
|
+
}), Y(X(e), "onKeyDown", function(t) {
|
|
3104
1334
|
if (!(t.ctrlKey || t.metaKey || t.shiftKey)) {
|
|
3105
1335
|
var n = e.getMidiNumberForKey(t.key);
|
|
3106
1336
|
n && e.onPlayNoteInput(n);
|
|
3107
1337
|
}
|
|
3108
|
-
}),
|
|
1338
|
+
}), Y(X(e), "onKeyUp", function(t) {
|
|
3109
1339
|
var n = e.getMidiNumberForKey(t.key);
|
|
3110
1340
|
n && e.onStopNoteInput(n);
|
|
3111
|
-
}),
|
|
1341
|
+
}), Y(X(e), "onPlayNoteInput", function(t) {
|
|
3112
1342
|
e.props.disabled || e.props.onPlayNoteInput(t, e.props.activeNotes);
|
|
3113
|
-
}),
|
|
1343
|
+
}), Y(X(e), "onStopNoteInput", function(t) {
|
|
3114
1344
|
e.props.disabled || e.props.onStopNoteInput(t, e.props.activeNotes);
|
|
3115
|
-
}),
|
|
1345
|
+
}), Y(X(e), "onMouseDown", function() {
|
|
3116
1346
|
e.setState({ isMouseDown: !0 });
|
|
3117
|
-
}),
|
|
1347
|
+
}), Y(X(e), "onMouseUp", function() {
|
|
3118
1348
|
e.setState({ isMouseDown: !1 });
|
|
3119
|
-
}),
|
|
1349
|
+
}), Y(X(e), "onTouchStart", function() {
|
|
3120
1350
|
e.setState({ useTouchEvents: !0 });
|
|
3121
|
-
}),
|
|
1351
|
+
}), Y(X(e), "renderNoteLabel", function(t) {
|
|
3122
1352
|
var n = t.midiNumber, r = t.isActive, i = t.isAccidental, a = e.getKeyForMidiNumber(n);
|
|
3123
1353
|
return e.props.renderNoteLabel({
|
|
3124
1354
|
keyboardShortcut: a,
|
|
@@ -3128,7 +1358,7 @@ var Ti = /*#__PURE__*/ function(t) {
|
|
|
3128
1358
|
});
|
|
3129
1359
|
}), e;
|
|
3130
1360
|
}
|
|
3131
|
-
return
|
|
1361
|
+
return Le(r, [
|
|
3132
1362
|
{
|
|
3133
1363
|
key: "componentDidMount",
|
|
3134
1364
|
value: function() {
|
|
@@ -3162,7 +1392,7 @@ var Ti = /*#__PURE__*/ function(t) {
|
|
|
3162
1392
|
onMouseUp: this.onMouseUp,
|
|
3163
1393
|
onTouchStart: this.onTouchStart,
|
|
3164
1394
|
"data-testid": "container"
|
|
3165
|
-
}, /*#__PURE__*/ e.createElement(
|
|
1395
|
+
}, /*#__PURE__*/ e.createElement(_t, {
|
|
3166
1396
|
activeNotes: this.props.activeNotes,
|
|
3167
1397
|
selectedNotes: this.props.selectedNotes,
|
|
3168
1398
|
className: this.props.className,
|
|
@@ -3184,58 +1414,58 @@ var Ti = /*#__PURE__*/ function(t) {
|
|
|
3184
1414
|
}
|
|
3185
1415
|
]), r;
|
|
3186
1416
|
}(e.Component);
|
|
3187
|
-
|
|
3188
|
-
noteRange:
|
|
3189
|
-
activeNotes:
|
|
3190
|
-
selectedNotes:
|
|
3191
|
-
playNote:
|
|
3192
|
-
stopNote:
|
|
3193
|
-
onClick:
|
|
3194
|
-
onDoubleClick:
|
|
3195
|
-
onKeyMouseEnter:
|
|
3196
|
-
onKeyMouseLeave:
|
|
3197
|
-
onPlayNoteInput:
|
|
3198
|
-
onStopNoteInput:
|
|
3199
|
-
renderNoteLabel:
|
|
3200
|
-
className:
|
|
3201
|
-
disabled:
|
|
3202
|
-
width:
|
|
3203
|
-
keyWidthToHeight:
|
|
3204
|
-
keyboardShortcuts:
|
|
3205
|
-
key:
|
|
3206
|
-
midiNumber:
|
|
1417
|
+
Y(bt, "propTypes", {
|
|
1418
|
+
noteRange: J.default.object.isRequired,
|
|
1419
|
+
activeNotes: J.default.arrayOf(J.default.number.isRequired).isRequired,
|
|
1420
|
+
selectedNotes: J.default.arrayOf(J.default.number),
|
|
1421
|
+
playNote: J.default.func.isRequired,
|
|
1422
|
+
stopNote: J.default.func.isRequired,
|
|
1423
|
+
onClick: J.default.func,
|
|
1424
|
+
onDoubleClick: J.default.func,
|
|
1425
|
+
onKeyMouseEnter: J.default.func,
|
|
1426
|
+
onKeyMouseLeave: J.default.func,
|
|
1427
|
+
onPlayNoteInput: J.default.func.isRequired,
|
|
1428
|
+
onStopNoteInput: J.default.func.isRequired,
|
|
1429
|
+
renderNoteLabel: J.default.func.isRequired,
|
|
1430
|
+
className: J.default.string,
|
|
1431
|
+
disabled: J.default.bool,
|
|
1432
|
+
width: J.default.number,
|
|
1433
|
+
keyWidthToHeight: J.default.number,
|
|
1434
|
+
keyboardShortcuts: J.default.arrayOf(J.default.shape({
|
|
1435
|
+
key: J.default.string.isRequired,
|
|
1436
|
+
midiNumber: J.default.number.isRequired
|
|
3207
1437
|
}))
|
|
3208
|
-
}),
|
|
1438
|
+
}), Y(bt, "defaultProps", {
|
|
3209
1439
|
onKeyMouseEnter: void 0,
|
|
3210
1440
|
onKeyMouseLeave: void 0,
|
|
3211
1441
|
renderNoteLabel: function(t) {
|
|
3212
1442
|
var n = t.keyboardShortcut;
|
|
3213
1443
|
t.midiNumber;
|
|
3214
1444
|
var r = t.isActive, i = t.isAccidental;
|
|
3215
|
-
return n ? /*#__PURE__*/ e.createElement("div", { className:
|
|
1445
|
+
return n ? /*#__PURE__*/ e.createElement("div", { className: m("ReactPiano__NoteLabel", {
|
|
3216
1446
|
"ReactPiano__NoteLabel--active": r,
|
|
3217
1447
|
"ReactPiano__NoteLabel--accidental": i,
|
|
3218
1448
|
"ReactPiano__NoteLabel--natural": !i
|
|
3219
1449
|
}) }, n) : null;
|
|
3220
1450
|
}
|
|
3221
1451
|
});
|
|
3222
|
-
var
|
|
1452
|
+
var xt = [
|
|
3223
1453
|
"activeNotes",
|
|
3224
1454
|
"selectedNotes",
|
|
3225
1455
|
"onPlayNoteInput",
|
|
3226
1456
|
"onStopNoteInput"
|
|
3227
|
-
],
|
|
3228
|
-
|
|
3229
|
-
var n =
|
|
1457
|
+
], St = /*#__PURE__*/ function(t) {
|
|
1458
|
+
ze(r, t);
|
|
1459
|
+
var n = Ke(r);
|
|
3230
1460
|
function r() {
|
|
3231
1461
|
var e;
|
|
3232
|
-
|
|
1462
|
+
Fe(this, r);
|
|
3233
1463
|
var t = [...arguments];
|
|
3234
|
-
return e = n.call.apply(n, [this].concat(t)),
|
|
1464
|
+
return e = n.call.apply(n, [this].concat(t)), Y(X(e), "state", { activeNotes: e.props.activeNotes || [] }), Y(X(e), "handlePlayNoteInput", function(t) {
|
|
3235
1465
|
e.setState(function(n) {
|
|
3236
1466
|
return e.props.onPlayNoteInput && e.props.onPlayNoteInput(t, { prevActiveNotes: n.activeNotes }), n.activeNotes.includes(t) ? null : { activeNotes: n.activeNotes.concat(t) };
|
|
3237
1467
|
});
|
|
3238
|
-
}),
|
|
1468
|
+
}), Y(X(e), "handleStopNoteInput", function(t) {
|
|
3239
1469
|
e.setState(function(n) {
|
|
3240
1470
|
return e.props.onStopNoteInput && e.props.onStopNoteInput(t, { prevActiveNotes: e.state.activeNotes }), { activeNotes: n.activeNotes.filter(function(e) {
|
|
3241
1471
|
return t !== e;
|
|
@@ -3243,7 +1473,7 @@ var Ei = [
|
|
|
3243
1473
|
});
|
|
3244
1474
|
}), e;
|
|
3245
1475
|
}
|
|
3246
|
-
return
|
|
1476
|
+
return Le(r, [{
|
|
3247
1477
|
key: "componentDidUpdate",
|
|
3248
1478
|
value: function(e) {
|
|
3249
1479
|
e.activeNotes !== this.props.activeNotes && this.state.activeNotes !== this.props.activeNotes && this.setState({ activeNotes: this.props.activeNotes || [] });
|
|
@@ -3255,8 +1485,8 @@ var Ei = [
|
|
|
3255
1485
|
t.activeNotes;
|
|
3256
1486
|
var n = t.selectedNotes;
|
|
3257
1487
|
t.onPlayNoteInput, t.onStopNoteInput;
|
|
3258
|
-
var r =
|
|
3259
|
-
return /*#__PURE__*/ e.createElement(
|
|
1488
|
+
var r = We(t, xt);
|
|
1489
|
+
return /*#__PURE__*/ e.createElement(bt, Re({
|
|
3260
1490
|
activeNotes: this.state.activeNotes,
|
|
3261
1491
|
selectedNotes: n,
|
|
3262
1492
|
onPlayNoteInput: this.handlePlayNoteInput,
|
|
@@ -3267,31 +1497,31 @@ var Ei = [
|
|
|
3267
1497
|
}(e.Component);
|
|
3268
1498
|
//#endregion
|
|
3269
1499
|
//#region lib/soundfonts/acoustic_grand_piano-mp3.js
|
|
3270
|
-
if (
|
|
3271
|
-
noteRange:
|
|
3272
|
-
activeNotes:
|
|
3273
|
-
selectedNotes:
|
|
3274
|
-
playNote:
|
|
3275
|
-
stopNote:
|
|
3276
|
-
onPlayNoteInput:
|
|
3277
|
-
onStopNoteInput:
|
|
3278
|
-
renderNoteLabel:
|
|
3279
|
-
className:
|
|
3280
|
-
disabled:
|
|
3281
|
-
width:
|
|
3282
|
-
keyWidthToHeight:
|
|
3283
|
-
keyboardShortcuts:
|
|
3284
|
-
key:
|
|
3285
|
-
midiNumber:
|
|
1500
|
+
if (Y(St, "propTypes", {
|
|
1501
|
+
noteRange: J.default.object.isRequired,
|
|
1502
|
+
activeNotes: J.default.arrayOf(J.default.number.isRequired),
|
|
1503
|
+
selectedNotes: J.default.arrayOf(J.default.number),
|
|
1504
|
+
playNote: J.default.func.isRequired,
|
|
1505
|
+
stopNote: J.default.func.isRequired,
|
|
1506
|
+
onPlayNoteInput: J.default.func,
|
|
1507
|
+
onStopNoteInput: J.default.func,
|
|
1508
|
+
renderNoteLabel: J.default.func,
|
|
1509
|
+
className: J.default.string,
|
|
1510
|
+
disabled: J.default.bool,
|
|
1511
|
+
width: J.default.number,
|
|
1512
|
+
keyWidthToHeight: J.default.number,
|
|
1513
|
+
keyboardShortcuts: J.default.arrayOf(J.default.shape({
|
|
1514
|
+
key: J.default.string.isRequired,
|
|
1515
|
+
midiNumber: J.default.number.isRequired
|
|
3286
1516
|
}))
|
|
3287
|
-
}), typeof window < "u" && window.MIDI) var
|
|
3288
|
-
else if (typeof globalThis < "u" && globalThis.MIDI) var
|
|
3289
|
-
else if (typeof global < "u" && global.MIDI) var
|
|
1517
|
+
}), typeof window < "u" && window.MIDI) var Z = window.MIDI;
|
|
1518
|
+
else if (typeof globalThis < "u" && globalThis.MIDI) var Z = globalThis.MIDI;
|
|
1519
|
+
else if (typeof global < "u" && global.MIDI) var Z = global.MIDI;
|
|
3290
1520
|
else {
|
|
3291
|
-
var
|
|
3292
|
-
typeof window < "u" && (window.MIDI =
|
|
1521
|
+
var Z = { Soundfont: {} };
|
|
1522
|
+
typeof window < "u" && (window.MIDI = Z), typeof globalThis < "u" && (globalThis.MIDI = Z), typeof global < "u" && (global.MIDI = Z);
|
|
3293
1523
|
}
|
|
3294
|
-
|
|
1524
|
+
Z.Soundfont === void 0 && (Z.Soundfont = {}), Z.Soundfont.acoustic_grand_piano = {
|
|
3295
1525
|
A0: "data:audio/mp3;base64,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",
|
|
3296
1526
|
Bb0: "data:audio/mp3;base64,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",
|
|
3297
1527
|
B0: "data:audio/mp3;base64,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",
|
|
@@ -3381,34 +1611,44 @@ Oi.Soundfont === void 0 && (Oi.Soundfont = {}), Oi.Soundfont.acoustic_grand_pian
|
|
|
3381
1611
|
B7: "data:audio/mp3;base64,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VVVVVVVVVVVVVVVVVVVVVVX/+xBk4wfwJwDGqeAADgAADSAAAAEAqAUhBYAAIAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7EGTih/AoAUcowAAMAAANIAAAAQCYBx0FhAAgAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sQZOCH8BEAxwBAAAgAAA0gAAABAGwFGqYAACgAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+xBk4g/wMQHGqeIADAAADSAAAAEAXAceBIQAMAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7EGToh/CPAUWAYAAIAAANIAAAAQB8BxykhAA4AAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sQZOMH8DQCRikjAAgAAA0gAAABAIQHHKCIACgAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+xBk44fwNQLHKSIIDAAADSAAAAEAkAUYpIAAMAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7EGTdj/AAAH+AAAAIAAANIAAAAQAAAaQAAAAgAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sQZN2P8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+xBk3Y/wAABpAAAACAAADSAAAAEAAAGkAAAAIAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7EGTdj/AAAGkAAAAIAAANIAAAAQAAAaQAAAAgAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sQZN2P8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+xBk3Y/wAABpAAAACAAADSAAAAEAAAGkAAAAIAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7EGTdj/AAAGkAAAAIAAANIAAAAQAAAaQAAAAgAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sQZN2P8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+xBk3Y/wAABpAAAACAAADSAAAAEAAAGkAAAAIAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7EGTdj/AAAGkAAAAIAAANIAAAAQAAAaQAAAAgAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sQZN2P8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+xBk3Y/wAABpAAAACAAADSAAAAEAAAGkAAAAIAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7EGTdj/AAAGkAAAAIAAANIAAAAQAAAaQAAAAgAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sQZN2P8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+xBk3Y/wAABpAAAACAAADSAAAAEAAAGkAAAAIAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7EGTdj/AAAGkAAAAIAAANIAAAAQAAAaQAAAAgAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sQZN2P8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+xBk3Y/wAABpAAAACAAADSAAAAEAAAGkAAAAIAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7EGTdj/AAAGkAAAAIAAANIAAAAQAAAaQAAAAgAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sQZN2P8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+xBk3Y/wAABpAAAACAAADSAAAAEAAAGkAAAAIAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7EGTdj/AAAGkAAAAIAAANIAAAAQAAAaQAAAAgAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sQZN2P8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+xBk3Y/wAABpAAAACAAADSAAAAEAAAGkAAAAIAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7EGTdj/AAAGkAAAAIAAANIAAAAQAAAaQAAAAgAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sQZN2P8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVU=",
|
|
3382
1612
|
C8: "data:audio/mp3;base64,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AAEAbAcWBYgAKAAANIAAAASqqqqqqqqqqqqqqqqqqqqqqqqqqqqAAACUqChAIMEM1FVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7EGThD/AkAMapYAAKAAANIAAAAQBQBRwFgAAwAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYAAAGILCkxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sQZOMH8C4BRingAA4AAA0gAAABAJQFGqQAACgAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+xBk4Y/wKwHGqSEADAAADSAAAAEAOAMcBIAAKAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7EGTkh/AyAcfBIQAIAAANIAAAAQDkBxYFiAAgAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sQZOIP8DAAyMFAAAoAAA0gAAABAFQHHgSEACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+xBk4ofwIwDHKMAACgAADSAAAAEAnAcdBIQAKAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7EGTjh/AqAcepIQAMAAANIAAAAQC8CR8DCAAgAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sQZOCH8CgBR6jAAAwAAA0gAAABACADGgAAACgAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+xBk3Y/wAABpAAAACAAADSAAAAEAAAGkAAAAIAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7EGTdj/AAAGkAAAAIAAANIAAAAQAAAaQAAAAgAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sQZN2P8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+xBk3Y/wAABpAAAACAAADSAAAAEAAAGkAAAAIAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7EGTdj/AAAGkAAAAIAAANIAAAAQAAAaQAAAAgAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sQZN2P8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+xBk3Y/wAABpAAAACAAADSAAAAEAAAGkAAAAIAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7EGTdj/AAAGkAAAAIAAANIAAAAQAAAaQAAAAgAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sQZN2P8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+xBk3Y/wAABpAAAACAAADSAAAAEAAAGkAAAAIAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7EGTdj/AAAGkAAAAIAAANIAAAAQAAAaQAAAAgAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sQZN2P8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+xBk3Y/wAABpAAAACAAADSAAAAEAAAGkAAAAIAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7EGTdj/AAAGkAAAAIAAANIAAAAQAAAaQAAAAgAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sQZN2P8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+xBk3Y/wAABpAAAACAAADSAAAAEAAAGkAAAAIAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7EGTdj/AAAGkAAAAIAAANIAAAAQAAAaQAAAAgAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sQZN2P8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+xBk3Y/wAABpAAAACAAADSAAAAEAAAGkAAAAIAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7EGTdj/AAAGkAAAAIAAANIAAAAQAAAaQAAAAgAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sQZN2P8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+xBk3Y/wAABpAAAACAAADSAAAAEAAAGkAAAAIAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7EGTdj/AAAGkAAAAIAAANIAAAAQAAAaQAAAAgAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sQZN2P8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+xBk3Y/wAABpAAAACAAADSAAAAEAAAGkAAAAIAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7EGTdj/AAAGkAAAAIAAANIAAAAQAAAaQAAAAgAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sQZN2P8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+xBk3Y/wAABpAAAACAAADSAAAAEAAAGkAAAAIAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7EGTdj/AAAGkAAAAIAAANIAAAAQAAAaQAAAAgAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sQZN2P8AAAaQAAAAgAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+xBk3Y/wAABpAAAACAAADSAAAAEAAAGkAAAAIAAANIAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQ=="
|
|
3383
1613
|
}, typeof window < "u" && (window.MIDI || (window.MIDI = { Soundfont: {} })), typeof globalThis < "u" && !globalThis.MIDI && (globalThis.MIDI = typeof window < "u" && window.MIDI ? window.MIDI : { Soundfont: {} });
|
|
3384
|
-
var
|
|
3385
|
-
|
|
3386
|
-
|
|
3387
|
-
|
|
3388
|
-
|
|
3389
|
-
|
|
3390
|
-
|
|
1614
|
+
var Ct = (e) => e != null && !Number.isNaN(e), wt = (e) => {
|
|
1615
|
+
let t = typeof e == "string" ? Number.parseInt(e, 10) : e;
|
|
1616
|
+
return p.fromMidi(t);
|
|
1617
|
+
}, Tt = .3, Et = Tt / 5, Dt = (e, t) => ({
|
|
1618
|
+
play: (n, r) => {
|
|
1619
|
+
let i = t[wt(n)];
|
|
1620
|
+
if (!i) return { stop: () => {} };
|
|
1621
|
+
let a = new Audio(i), o = e.createMediaElementSource(a), s = e.createGain();
|
|
1622
|
+
s.gain.value = (r ?? 127) / 127, o.connect(s).connect(e.destination), a.play();
|
|
1623
|
+
let c = !1;
|
|
1624
|
+
return { stop: () => {
|
|
1625
|
+
if (c) return;
|
|
1626
|
+
c = !0;
|
|
1627
|
+
let t = e.currentTime;
|
|
1628
|
+
s.gain.cancelScheduledValues(t), s.gain.setValueAtTime(s.gain.value, t), s.gain.setTargetAtTime(0, t, Et), window.setTimeout(() => {
|
|
1629
|
+
a.pause(), o.disconnect(), s.disconnect();
|
|
1630
|
+
}, Tt * 1e3);
|
|
3391
1631
|
} };
|
|
3392
1632
|
},
|
|
3393
1633
|
stop: () => []
|
|
3394
|
-
}),
|
|
1634
|
+
}), Ot = (e, t, n, r, i) => {
|
|
3395
1635
|
let a = window.MIDI?.Soundfont?.[t];
|
|
3396
|
-
return a ? Promise.resolve(
|
|
1636
|
+
return a ? Promise.resolve(Dt(e, a)) : (console.warn(`[zds-pickers] Bundled soundfont "${t}" not found; falling back to remote load.`), Ct(i) ? h.instrument(e, t, {
|
|
3397
1637
|
format: n,
|
|
3398
1638
|
soundfont: r,
|
|
3399
1639
|
nameToUrl: (e, t, n) => `${i}/${t}/${e}-${n}.js`
|
|
3400
|
-
}) :
|
|
1640
|
+
}) : h.instrument(e, t, {
|
|
3401
1641
|
format: n,
|
|
3402
1642
|
soundfont: r
|
|
3403
1643
|
}));
|
|
3404
|
-
},
|
|
3405
|
-
let { audioContext: t, format: n, hostname: r, instrumentName: i, onChange: a, render: c, soundfont: l } = e, [u, f] = d(
|
|
1644
|
+
}, kt = (e) => {
|
|
1645
|
+
let { audioContext: t, format: n, hostname: r, instrumentName: i, onChange: a, render: c, soundfont: l } = e, [u, f] = d(!!i), [p, m] = d({}), [g, _] = d(null), v = o((e) => {
|
|
3406
1646
|
if (_(null), f(!0), !i) {
|
|
3407
1647
|
f(!1);
|
|
3408
1648
|
return;
|
|
3409
1649
|
}
|
|
3410
|
-
if (
|
|
3411
|
-
|
|
1650
|
+
if (Ct(r)) {
|
|
1651
|
+
h.instrument(t, e, {
|
|
3412
1652
|
format: n,
|
|
3413
1653
|
soundfont: l,
|
|
3414
1654
|
nameToUrl: (e, t, n) => `${r}/${t}/${e}-${n}.js`
|
|
@@ -3419,7 +1659,7 @@ var ki = (e) => e != null && !Number.isNaN(e), Ai = (e) => Vn(typeof e == "strin
|
|
|
3419
1659
|
});
|
|
3420
1660
|
return;
|
|
3421
1661
|
}
|
|
3422
|
-
|
|
1662
|
+
Ot(t, e, n, l, r).then((e) => {
|
|
3423
1663
|
_(e);
|
|
3424
1664
|
}).catch((t) => {
|
|
3425
1665
|
console.error(`[zds-pickers] Failed to load soundfont "${e}":`, t), f(!1);
|
|
@@ -3432,15 +1672,19 @@ var ki = (e) => e != null && !Number.isNaN(e), Ai = (e) => Vn(typeof e == "strin
|
|
|
3432
1672
|
l
|
|
3433
1673
|
]);
|
|
3434
1674
|
return s(() => {
|
|
3435
|
-
|
|
1675
|
+
if (i) {
|
|
1676
|
+
v(i);
|
|
1677
|
+
return;
|
|
1678
|
+
}
|
|
1679
|
+
_(null), f(!1);
|
|
3436
1680
|
}, [i, v]), s(() => {
|
|
3437
|
-
|
|
1681
|
+
Ct(i) && f(!g);
|
|
3438
1682
|
}, [g, i]), c({
|
|
3439
1683
|
isLoading: u,
|
|
3440
1684
|
playNote: (e) => {
|
|
3441
1685
|
g && t.resume().then(() => {
|
|
3442
1686
|
let t = g.play(String(e));
|
|
3443
|
-
|
|
1687
|
+
m((n) => ({
|
|
3444
1688
|
...n,
|
|
3445
1689
|
[e]: t
|
|
3446
1690
|
}));
|
|
@@ -3448,7 +1692,7 @@ var ki = (e) => e != null && !Number.isNaN(e), Ai = (e) => Vn(typeof e == "strin
|
|
|
3448
1692
|
},
|
|
3449
1693
|
stopNote: (e) => {
|
|
3450
1694
|
t.resume().then(() => {
|
|
3451
|
-
|
|
1695
|
+
p[e] && (p[e].stop(), m((t) => {
|
|
3452
1696
|
let { [e]: n, ...r } = t;
|
|
3453
1697
|
return r;
|
|
3454
1698
|
}));
|
|
@@ -3456,13 +1700,13 @@ var ki = (e) => e != null && !Number.isNaN(e), Ai = (e) => Vn(typeof e == "strin
|
|
|
3456
1700
|
},
|
|
3457
1701
|
stopAllNotes: () => {
|
|
3458
1702
|
t.resume().then(() => {
|
|
3459
|
-
let e = Object.values(
|
|
1703
|
+
let e = Object.values(p);
|
|
3460
1704
|
for (let t of e) t && t.stop();
|
|
3461
|
-
|
|
1705
|
+
m({});
|
|
3462
1706
|
});
|
|
3463
1707
|
}
|
|
3464
1708
|
});
|
|
3465
|
-
},
|
|
1709
|
+
}, At = [
|
|
3466
1710
|
"C",
|
|
3467
1711
|
"C#",
|
|
3468
1712
|
"D",
|
|
@@ -3475,9 +1719,9 @@ var ki = (e) => e != null && !Number.isNaN(e), Ai = (e) => Vn(typeof e == "strin
|
|
|
3475
1719
|
"A",
|
|
3476
1720
|
"A#",
|
|
3477
1721
|
"B"
|
|
3478
|
-
],
|
|
3479
|
-
let o = (i /
|
|
3480
|
-
return /* @__PURE__ */
|
|
1722
|
+
], jt = 12 * .7, Mt = new window.AudioContext(), Nt = ({ className: e, octave: t, height: n, renderNoteLabel: r, width: i, ...a }) => {
|
|
1723
|
+
let o = (i / jt + 2) / n, s = p.midi(At[0] + String(t)) || 0, c = p.midi(At[At.length - 1] + String(t)) || 0;
|
|
1724
|
+
return /* @__PURE__ */ _("div", { children: /* @__PURE__ */ _(St, {
|
|
3481
1725
|
className: e,
|
|
3482
1726
|
keyWidthToHeight: o,
|
|
3483
1727
|
noteRange: {
|
|
@@ -3488,14 +1732,14 @@ var ki = (e) => e != null && !Number.isNaN(e), Ai = (e) => Vn(typeof e == "strin
|
|
|
3488
1732
|
width: i,
|
|
3489
1733
|
...a
|
|
3490
1734
|
}) });
|
|
3491
|
-
},
|
|
3492
|
-
audioContext:
|
|
1735
|
+
}, Pt = ({ className: e, format: t, height: n, hostname: r, instrumentName: i, octave: a = 4, onChange: o, onClick: s, onDoubleClick: c, onKeyMouseEnter: l, onKeyMouseLeave: u, renderNoteLabel: d, selectedNotes: f, soundfont: p, Tooltip: m, width: h }) => /* @__PURE__ */ _(kt, {
|
|
1736
|
+
audioContext: Mt,
|
|
3493
1737
|
format: t,
|
|
3494
1738
|
hostname: r,
|
|
3495
1739
|
instrumentName: i,
|
|
3496
1740
|
onChange: o,
|
|
3497
1741
|
soundfont: p,
|
|
3498
|
-
render: ({ isLoading: t, playNote: r, stopNote: i }) => /* @__PURE__ */
|
|
1742
|
+
render: ({ isLoading: t, playNote: r, stopNote: i }) => /* @__PURE__ */ _(Nt, {
|
|
3499
1743
|
disabled: t,
|
|
3500
1744
|
className: e,
|
|
3501
1745
|
height: n,
|
|
@@ -3509,9 +1753,9 @@ var ki = (e) => e != null && !Number.isNaN(e), Ai = (e) => Vn(typeof e == "strin
|
|
|
3509
1753
|
selectedNotes: f,
|
|
3510
1754
|
stopNote: i,
|
|
3511
1755
|
Tooltip: m,
|
|
3512
|
-
width:
|
|
1756
|
+
width: h
|
|
3513
1757
|
})
|
|
3514
|
-
}),
|
|
1758
|
+
}), Ft = "__react_svg_text_measurement_id", It = [
|
|
3515
1759
|
"font-family",
|
|
3516
1760
|
"font-feature-settings",
|
|
3517
1761
|
"font-kerning",
|
|
@@ -3523,9 +1767,9 @@ var ki = (e) => e != null && !Number.isNaN(e), Ai = (e) => Vn(typeof e == "strin
|
|
|
3523
1767
|
"letter-spacing",
|
|
3524
1768
|
"text-transform",
|
|
3525
1769
|
"word-spacing"
|
|
3526
|
-
],
|
|
3527
|
-
|
|
3528
|
-
},
|
|
1770
|
+
], Lt = (e) => It.map((t) => e.getPropertyValue(t)).join("|"), Rt = /* @__PURE__ */ new Map(), zt = () => {
|
|
1771
|
+
Rt.clear();
|
|
1772
|
+
}, Bt = (e, t, n, r) => {
|
|
3529
1773
|
let { lineHeight: i, spaceWidth: a, wordsWithComputedWidth: o } = t;
|
|
3530
1774
|
return e.split(/\s+/).reduce((e, t) => {
|
|
3531
1775
|
let s = o[t], c = e[e.length - 1];
|
|
@@ -3540,11 +1784,11 @@ var ki = (e) => e != null && !Number.isNaN(e), Ai = (e) => Vn(typeof e == "strin
|
|
|
3540
1784
|
}
|
|
3541
1785
|
return e;
|
|
3542
1786
|
}, []);
|
|
3543
|
-
},
|
|
1787
|
+
}, Vt = (e, t, n) => {
|
|
3544
1788
|
if (e && t) {
|
|
3545
|
-
let r =
|
|
1789
|
+
let r = Lt(e), i = Rt.get(r), a = [...new Set(String(n).split(/\s+/))], o = i?.widths, s = o ? a.filter((e) => !o.has(e)) : a;
|
|
3546
1790
|
if (!i || s.length) {
|
|
3547
|
-
for (let n of
|
|
1791
|
+
for (let n of It) t.style.setProperty(n, e.getPropertyValue(n), e.getPropertyPriority(n));
|
|
3548
1792
|
if (!i) {
|
|
3549
1793
|
t.textContent = "\xA0";
|
|
3550
1794
|
let e = t?.getComputedTextLength?.() || 8, n = t.getBBox().height;
|
|
@@ -3552,7 +1796,7 @@ var ki = (e) => e != null && !Number.isNaN(e), Ai = (e) => Vn(typeof e == "strin
|
|
|
3552
1796
|
widths: /* @__PURE__ */ new Map(),
|
|
3553
1797
|
spaceWidth: e,
|
|
3554
1798
|
lineHeight: n
|
|
3555
|
-
},
|
|
1799
|
+
}, Rt.set(r, i);
|
|
3556
1800
|
}
|
|
3557
1801
|
for (let e of s) t.textContent = e, i.widths.set(e, t.getBBox().width);
|
|
3558
1802
|
t.setAttribute("style", "");
|
|
@@ -3565,33 +1809,33 @@ var ki = (e) => e != null && !Number.isNaN(e), Ai = (e) => Vn(typeof e == "strin
|
|
|
3565
1809
|
lineHeight: i.lineHeight
|
|
3566
1810
|
};
|
|
3567
1811
|
}
|
|
3568
|
-
},
|
|
3569
|
-
let { className: t = "", dx: n = 0, dy: r = 0, maxHeight: i = 1e3, maxWidth: a = 1e3, text: c = "", verticalAnchor: f = "start", x: p = 0, y:
|
|
1812
|
+
}, Ht = (e) => {
|
|
1813
|
+
let { className: t = "", dx: n = 0, dy: r = 0, maxHeight: i = 1e3, maxWidth: a = 1e3, text: c = "", verticalAnchor: f = "start", x: p = 0, y: m = 0, transform: h = "", ...y } = e, [b, x] = d(), [S, C] = d([]), [w, T] = d(), E = u({}), D = l(() => {
|
|
3570
1814
|
let e = S.filter(({ showLine: e }) => e);
|
|
3571
1815
|
return e.length ? e : c.split(/\n/).map((e) => ({
|
|
3572
1816
|
words: [e],
|
|
3573
1817
|
width: 0,
|
|
3574
1818
|
showLine: !0
|
|
3575
1819
|
}));
|
|
3576
|
-
}, [S, c]),
|
|
1820
|
+
}, [S, c]), O = o((e) => {
|
|
3577
1821
|
T(e === null ? void 0 : window.getComputedStyle(e));
|
|
3578
1822
|
}, []);
|
|
3579
1823
|
s(() => {
|
|
3580
|
-
let e = document.getElementById(
|
|
1824
|
+
let e = document.getElementById(Ft);
|
|
3581
1825
|
if (e === null) {
|
|
3582
1826
|
let e = document.createElementNS("http://www.w3.org/2000/svg", "svg");
|
|
3583
|
-
e.setAttribute("id",
|
|
1827
|
+
e.setAttribute("id", Ft), e.setAttribute("aria-hidden", "true"), e.style.position = "fixed", e.style.left = "-9999px", e.style.top = "0";
|
|
3584
1828
|
let t = document.createElementNS("http://www.w3.org/2000/svg", "text");
|
|
3585
1829
|
e.appendChild(t), document.body.appendChild(e), E.current = t;
|
|
3586
1830
|
return;
|
|
3587
1831
|
}
|
|
3588
1832
|
E.current = e.tagName.toLowerCase() === "text" ? e : e.querySelector("text") ?? e;
|
|
3589
1833
|
}, []), s(() => {
|
|
3590
|
-
let e =
|
|
1834
|
+
let e = Vt(w, E.current, c);
|
|
3591
1835
|
x(e);
|
|
3592
1836
|
}, [c, w]), s(() => {
|
|
3593
1837
|
if (a && b) {
|
|
3594
|
-
let e = c.split(/\n/).flatMap((e) =>
|
|
1838
|
+
let e = c.split(/\n/).flatMap((e) => Bt(e, b, a, i));
|
|
3595
1839
|
C(e);
|
|
3596
1840
|
}
|
|
3597
1841
|
}, [
|
|
@@ -3600,7 +1844,7 @@ var ki = (e) => e != null && !Number.isNaN(e), Ai = (e) => Vn(typeof e == "strin
|
|
|
3600
1844
|
b,
|
|
3601
1845
|
c
|
|
3602
1846
|
]);
|
|
3603
|
-
let
|
|
1847
|
+
let k = l(() => {
|
|
3604
1848
|
if (b?.lineHeight) switch (f) {
|
|
3605
1849
|
case "start": return b.lineHeight;
|
|
3606
1850
|
case "middle": return -((D.length - 1) * b.lineHeight / 2);
|
|
@@ -3612,30 +1856,30 @@ var ki = (e) => e != null && !Number.isNaN(e), Ai = (e) => Vn(typeof e == "strin
|
|
|
3612
1856
|
f,
|
|
3613
1857
|
b?.lineHeight
|
|
3614
1858
|
]);
|
|
3615
|
-
return /* @__PURE__ */
|
|
1859
|
+
return /* @__PURE__ */ _("text", {
|
|
3616
1860
|
className: t,
|
|
3617
|
-
ref:
|
|
1861
|
+
ref: O,
|
|
3618
1862
|
dx: n,
|
|
3619
1863
|
dy: r,
|
|
3620
1864
|
x: p,
|
|
3621
|
-
y:
|
|
3622
|
-
transform:
|
|
1865
|
+
y: m,
|
|
1866
|
+
transform: h,
|
|
3623
1867
|
...y,
|
|
3624
|
-
children: /* @__PURE__ */ g
|
|
1868
|
+
children: /* @__PURE__ */ v(g, { children: [D.map((e, t) => /* @__PURE__ */ _("tspan", {
|
|
3625
1869
|
dx: p + n,
|
|
3626
|
-
dy: t === 0 ?
|
|
1870
|
+
dy: t === 0 ? k + r : b?.lineHeight || 0,
|
|
3627
1871
|
x: 0,
|
|
3628
1872
|
children: e.words.join(" ")
|
|
3629
|
-
}, t)), S.length && D.length !== S.length && /* @__PURE__ */ g
|
|
1873
|
+
}, t)), S.length && D.length !== S.length && /* @__PURE__ */ v(g, { children: [/* @__PURE__ */ _("tspan", { children: "..." }), /* @__PURE__ */ _("title", { children: c })] })] })
|
|
3630
1874
|
});
|
|
3631
|
-
},
|
|
1875
|
+
}, Ut = 255, { IndicatorsContainer: Wt, Placeholder: Gt, ValueContainer: Kt } = b, qt = {
|
|
3632
1876
|
label: "--",
|
|
3633
1877
|
value: 255
|
|
3634
|
-
},
|
|
1878
|
+
}, Jt = (e) => {
|
|
3635
1879
|
let { children: t, ...n } = e, r = n.selectProps?.actionButton;
|
|
3636
|
-
return /* @__PURE__ */
|
|
1880
|
+
return /* @__PURE__ */ _(Wt, {
|
|
3637
1881
|
...n,
|
|
3638
|
-
children: /* @__PURE__ */
|
|
1882
|
+
children: /* @__PURE__ */ v("div", {
|
|
3639
1883
|
onMouseDown: (e) => {
|
|
3640
1884
|
e.stopPropagation(), e.preventDefault();
|
|
3641
1885
|
},
|
|
@@ -3643,21 +1887,21 @@ var ki = (e) => e != null && !Number.isNaN(e), Ai = (e) => Vn(typeof e == "strin
|
|
|
3643
1887
|
children: [r, t]
|
|
3644
1888
|
})
|
|
3645
1889
|
});
|
|
3646
|
-
},
|
|
1890
|
+
}, Yt = ({ children: e, ...n }) => /* @__PURE__ */ v(Kt, {
|
|
3647
1891
|
...n,
|
|
3648
|
-
children: [/* @__PURE__ */
|
|
1892
|
+
children: [/* @__PURE__ */ _(Gt, {
|
|
3649
1893
|
...n,
|
|
3650
1894
|
innerProps: n.innerProps || {},
|
|
3651
1895
|
className: n.hasValue || n.selectProps.inputValue ? "shrunk" : "",
|
|
3652
1896
|
isFocused: n.isFocused ?? !1,
|
|
3653
1897
|
children: n.selectProps.placeholder
|
|
3654
|
-
}), t.map(e, (e) => a(e) && e.type !==
|
|
3655
|
-
}),
|
|
1898
|
+
}), t.map(e, (e) => a(e) && e.type !== Gt ? e : null)]
|
|
1899
|
+
}), Q = i((e, t) => {
|
|
3656
1900
|
let { components: n, disabled: r, label: i, onChange: a, options: s = [], preserveMenuWidth: c, shrinkLabel: u, value: d, ...f } = e, p = o((e) => {
|
|
3657
1901
|
e && a(e.value);
|
|
3658
|
-
}, [a]), m = s.reduce((e, t) => "options" in t ? e.concat(t.options) : e.concat(t), []),
|
|
1902
|
+
}, [a]), m = s.reduce((e, t) => "options" in t ? e.concat(t.options) : e.concat(t), []), h = m.find((e) => d === e.value) || void 0, g = l(() => {
|
|
3659
1903
|
let e = c ? {
|
|
3660
|
-
menu: (e) =>
|
|
1904
|
+
menu: (e) => V("width")(e),
|
|
3661
1905
|
menuList: (e) => ({
|
|
3662
1906
|
...e,
|
|
3663
1907
|
overflowX: "hidden"
|
|
@@ -3687,14 +1931,14 @@ var ki = (e) => e != null && !Number.isNaN(e), Ai = (e) => Vn(typeof e == "strin
|
|
|
3687
1931
|
})
|
|
3688
1932
|
} : { ...e };
|
|
3689
1933
|
}, [c, u]);
|
|
3690
|
-
return u ? /* @__PURE__ */
|
|
1934
|
+
return u ? /* @__PURE__ */ _("div", {
|
|
3691
1935
|
className: "zds-pickers__container",
|
|
3692
|
-
children: /* @__PURE__ */
|
|
1936
|
+
children: /* @__PURE__ */ _(y, {
|
|
3693
1937
|
...f,
|
|
3694
1938
|
classNamePrefix: "zds-pickers",
|
|
3695
1939
|
components: {
|
|
3696
|
-
IndicatorsContainer:
|
|
3697
|
-
ValueContainer:
|
|
1940
|
+
IndicatorsContainer: Jt,
|
|
1941
|
+
ValueContainer: Yt,
|
|
3698
1942
|
...n
|
|
3699
1943
|
},
|
|
3700
1944
|
isDisabled: r,
|
|
@@ -3702,119 +1946,119 @@ var ki = (e) => e != null && !Number.isNaN(e), Ai = (e) => Vn(typeof e == "strin
|
|
|
3702
1946
|
options: m,
|
|
3703
1947
|
placeholder: i,
|
|
3704
1948
|
ref: t,
|
|
3705
|
-
styles:
|
|
3706
|
-
value:
|
|
1949
|
+
styles: g,
|
|
1950
|
+
value: h
|
|
3707
1951
|
})
|
|
3708
|
-
}) : /* @__PURE__ */
|
|
1952
|
+
}) : /* @__PURE__ */ v("div", {
|
|
3709
1953
|
className: "zds-pickers__container",
|
|
3710
|
-
children: [!!i && /* @__PURE__ */
|
|
1954
|
+
children: [!!i && /* @__PURE__ */ _("span", {
|
|
3711
1955
|
className: "zds-pickers__label",
|
|
3712
1956
|
children: i
|
|
3713
|
-
}), /* @__PURE__ */
|
|
1957
|
+
}), /* @__PURE__ */ _(y, {
|
|
3714
1958
|
...f,
|
|
3715
1959
|
classNamePrefix: "zds-pickers",
|
|
3716
1960
|
components: {
|
|
3717
|
-
IndicatorsContainer:
|
|
1961
|
+
IndicatorsContainer: Jt,
|
|
3718
1962
|
...n
|
|
3719
1963
|
},
|
|
3720
1964
|
isDisabled: r,
|
|
3721
1965
|
onChange: p,
|
|
3722
1966
|
options: m,
|
|
3723
1967
|
ref: t,
|
|
3724
|
-
styles:
|
|
3725
|
-
value:
|
|
1968
|
+
styles: g,
|
|
1969
|
+
value: h
|
|
3726
1970
|
})]
|
|
3727
1971
|
});
|
|
3728
|
-
}),
|
|
1972
|
+
}), Xt = i((e, t) => /* @__PURE__ */ _(Q, {
|
|
3729
1973
|
...e,
|
|
3730
|
-
options:
|
|
1974
|
+
options: H,
|
|
3731
1975
|
ref: t
|
|
3732
|
-
})),
|
|
1976
|
+
})), Zt = z(16).map((e) => ({
|
|
3733
1977
|
value: e,
|
|
3734
1978
|
label: e
|
|
3735
|
-
})),
|
|
1979
|
+
})), Qt = i(({ channels: e, className: t, ...n }, r) => {
|
|
3736
1980
|
let [i, a] = d([]), c = o(({ value: t, label: n }, { context: r }) => {
|
|
3737
|
-
if (t === "separator") return /* @__PURE__ */
|
|
1981
|
+
if (t === "separator") return /* @__PURE__ */ _("span", {
|
|
3738
1982
|
className: "zds-mappings-user-mapping",
|
|
3739
1983
|
children: n
|
|
3740
1984
|
});
|
|
3741
1985
|
if (typeof t != "number") return null;
|
|
3742
1986
|
let i = e[t];
|
|
3743
|
-
return i ? /* @__PURE__ */
|
|
1987
|
+
return i ? /* @__PURE__ */ v("span", {
|
|
3744
1988
|
className: "mapping-entry",
|
|
3745
|
-
children: [/* @__PURE__ */
|
|
1989
|
+
children: [/* @__PURE__ */ _("b", { children: t !== 255 && /* @__PURE__ */ v(g, { children: [t + 1, r === "value" && " -"] }) }), /* @__PURE__ */ _("span", {
|
|
3746
1990
|
className: "mapping-entry-label",
|
|
3747
1991
|
children: i.label
|
|
3748
1992
|
})]
|
|
3749
|
-
}) : /* @__PURE__ */
|
|
1993
|
+
}) : /* @__PURE__ */ v("span", {
|
|
3750
1994
|
className: "mapping-entry empty-mapping-entry",
|
|
3751
|
-
children: [/* @__PURE__ */
|
|
1995
|
+
children: [/* @__PURE__ */ _("b", { children: t !== 255 && /* @__PURE__ */ v(g, { children: [t + 1, r === "value" && " -"] }) }), /* @__PURE__ */ _("span", {
|
|
3752
1996
|
className: "mapping-entry-label",
|
|
3753
1997
|
children: "no mapping"
|
|
3754
1998
|
})]
|
|
3755
1999
|
});
|
|
3756
2000
|
}, [e]);
|
|
3757
2001
|
return s(() => {
|
|
3758
|
-
let t =
|
|
2002
|
+
let t = Zt.sort((t, n) => typeof t.value == "number" && typeof n.value == "number" && e[t.value] && !e[n.value] ? -1 : typeof t.value == "number" && typeof n.value == "number" && !e[t.value] && e[n.value] ? 1 : typeof t.value == "number" && typeof n.value == "number" ? t.value - n.value : 0), n = t.filter(({ value: t }) => typeof t == "number" && !!e[t] || t === 255).length, r = t.some(({ value: e }) => e === "separator");
|
|
3759
2003
|
n && n < 16 && !r && t.splice(n, 0, {
|
|
3760
|
-
label: /* @__PURE__ */
|
|
2004
|
+
label: /* @__PURE__ */ _("hr", {}),
|
|
3761
2005
|
value: "separator"
|
|
3762
2006
|
}), a(t);
|
|
3763
|
-
}, [e]), /* @__PURE__ */
|
|
2007
|
+
}, [e]), /* @__PURE__ */ _(Q, {
|
|
3764
2008
|
...n,
|
|
3765
|
-
className:
|
|
2009
|
+
className: m(t, "channel-mapping-picker"),
|
|
3766
2010
|
formatOptionLabel: c,
|
|
3767
2011
|
options: i,
|
|
3768
2012
|
ref: r
|
|
3769
2013
|
});
|
|
3770
|
-
}),
|
|
2014
|
+
}), $t = z(16).map((e) => ({
|
|
3771
2015
|
value: e,
|
|
3772
2016
|
label: `Channel ${e + 1}`
|
|
3773
|
-
})),
|
|
2017
|
+
})), en = (e, t) => !t || String(e.label).toLowerCase().includes(t.toLowerCase()), tn = i(({ className: e, value: t = 255, ...n }, r) => {
|
|
3774
2018
|
let i = o((e, { context: n }) => t === void 0 ? "--" : n === "value" ? e.label : Number.parseInt(String(e.value)) + 1, [t]);
|
|
3775
|
-
return /* @__PURE__ */
|
|
2019
|
+
return /* @__PURE__ */ _(Q, {
|
|
3776
2020
|
...n,
|
|
3777
|
-
className:
|
|
3778
|
-
filterOptions:
|
|
2021
|
+
className: m(e, "channel-picker"),
|
|
2022
|
+
filterOptions: en,
|
|
3779
2023
|
formatOptionLabel: i,
|
|
3780
|
-
options:
|
|
2024
|
+
options: $t,
|
|
3781
2025
|
value: t,
|
|
3782
2026
|
ref: r
|
|
3783
2027
|
});
|
|
3784
|
-
}),
|
|
3785
|
-
let i =
|
|
3786
|
-
return a ? /* @__PURE__ */
|
|
3787
|
-
className:
|
|
2028
|
+
}), nn = /* @__PURE__ */ new Set(["C", "F"]), rn = /* @__PURE__ */ new Set(["E", "B"]), an = (e) => ({ isAccidental: t, isActive: n, midiNumber: r }) => {
|
|
2029
|
+
let i = p.pitchClass(p.fromMidi(r) ?? ""), a = ye(r, e);
|
|
2030
|
+
return a ? /* @__PURE__ */ _("div", {
|
|
2031
|
+
className: m("ReactPiano__NoteLabel", "ReactPiano__NoteLabel--noteName", {
|
|
3788
2032
|
"ReactPiano__NoteLabel--active": n,
|
|
3789
2033
|
"ReactPiano__NoteLabel--accidental": t,
|
|
3790
2034
|
"ReactPiano__NoteLabel--natural": !t,
|
|
3791
|
-
"ReactPiano__NoteLabel--nudgeLeft": !t &&
|
|
3792
|
-
"ReactPiano__NoteLabel--nudgeRight": !t &&
|
|
2035
|
+
"ReactPiano__NoteLabel--nudgeLeft": !t && nn.has(i),
|
|
2036
|
+
"ReactPiano__NoteLabel--nudgeRight": !t && rn.has(i)
|
|
3793
2037
|
}),
|
|
3794
2038
|
children: a
|
|
3795
2039
|
}) : null;
|
|
3796
|
-
},
|
|
3797
|
-
let { value: t, onChange: n, disabled: r = !1, height: i = 100,
|
|
2040
|
+
}, on = (e) => {
|
|
2041
|
+
let { value: t, onChange: n, disabled: r = !1, height: i = 100, muted: a = !1, noteLabels: s, showNoteNames: c = !1, width: u = 300, octave: d = 4, ...f } = e, p = l(() => an(s), [s]), m = o((e) => {
|
|
3798
2042
|
r || n(e);
|
|
3799
|
-
}, [r, n]),
|
|
3800
|
-
return /* @__PURE__ */
|
|
3801
|
-
...
|
|
3802
|
-
className:
|
|
3803
|
-
selectedNotes:
|
|
2043
|
+
}, [r, n]), h = 60 + (d - 4) * 12, g = h + 11, v = t !== 255 && t >= h && t <= g;
|
|
2044
|
+
return /* @__PURE__ */ _(Pt, {
|
|
2045
|
+
...f,
|
|
2046
|
+
className: c ? "ReactPiano--showNoteNames" : void 0,
|
|
2047
|
+
selectedNotes: v ? [t] : [],
|
|
3804
2048
|
disabled: r,
|
|
3805
2049
|
height: i,
|
|
3806
|
-
renderNoteLabel:
|
|
3807
|
-
width:
|
|
3808
|
-
octave:
|
|
3809
|
-
onClick:
|
|
3810
|
-
instrumentName: "acoustic_grand_piano"
|
|
2050
|
+
renderNoteLabel: c ? p : void 0,
|
|
2051
|
+
width: u,
|
|
2052
|
+
octave: d,
|
|
2053
|
+
onClick: m,
|
|
2054
|
+
instrumentName: a ? void 0 : "acoustic_grand_piano"
|
|
3811
2055
|
});
|
|
3812
|
-
},
|
|
2056
|
+
}, sn = (e) => {
|
|
3813
2057
|
let [t, n] = d(e);
|
|
3814
2058
|
return s(() => {
|
|
3815
2059
|
n(e);
|
|
3816
2060
|
}, [e]), [t, n];
|
|
3817
|
-
},
|
|
2061
|
+
}, cn = class extends e.Component {
|
|
3818
2062
|
static defaultProps = { step: 1 };
|
|
3819
2063
|
render() {
|
|
3820
2064
|
let e = this.props, t = {};
|
|
@@ -3822,7 +2066,7 @@ var ki = (e) => e != null && !Number.isNaN(e), Ai = (e) => Vn(typeof e == "strin
|
|
|
3822
2066
|
e.onChange(Number(t.target.value));
|
|
3823
2067
|
}
|
|
3824
2068
|
let { value: r, min: i, max: a, step: o, onChange: s, inputRef: c, ...l } = e;
|
|
3825
|
-
return /* @__PURE__ */
|
|
2069
|
+
return /* @__PURE__ */ _("input", {
|
|
3826
2070
|
ref: c,
|
|
3827
2071
|
value: r,
|
|
3828
2072
|
step: o,
|
|
@@ -3837,23 +2081,23 @@ var ki = (e) => e != null && !Number.isNaN(e), Ai = (e) => Vn(typeof e == "strin
|
|
|
3837
2081
|
};
|
|
3838
2082
|
//#endregion
|
|
3839
2083
|
//#region lib/rotaryKnob/utils.ts
|
|
3840
|
-
function
|
|
2084
|
+
function ln(e) {
|
|
3841
2085
|
return e * Math.PI / 180;
|
|
3842
2086
|
}
|
|
3843
|
-
function
|
|
2087
|
+
function un(e, t) {
|
|
3844
2088
|
return e >= 0 && t >= 0 ? 1 : e <= 0 && t >= 0 ? 2 : e <= 0 && t <= 0 ? 3 : e >= 0 && t <= 0 ? 4 : 1;
|
|
3845
2089
|
}
|
|
3846
|
-
function
|
|
2090
|
+
function dn(e, t) {
|
|
3847
2091
|
if (e === 0 && t === 0) return 0;
|
|
3848
|
-
let n = Math.atan(e / t) * 180 / Math.PI, r =
|
|
2092
|
+
let n = Math.atan(e / t) * 180 / Math.PI, r = un(e, t);
|
|
3849
2093
|
return r === 1 && (n = 90 - n), r === 2 && (n = 90 - n), r === 3 && (n = 270 - n), r === 4 && (n = 270 - n), n;
|
|
3850
2094
|
}
|
|
3851
2095
|
//#endregion
|
|
3852
2096
|
//#region lib/rotaryKnob/helpers/DrawCircle.tsx
|
|
3853
|
-
var
|
|
2097
|
+
var fn = class extends e.Component {
|
|
3854
2098
|
render() {
|
|
3855
2099
|
let { r: e, borderColor: t = "black", fillColor: n = "transparent", borderWidth: r = 2, fillOpacity: i = 1, ...a } = this.props;
|
|
3856
|
-
return /* @__PURE__ */
|
|
2100
|
+
return /* @__PURE__ */ _("circle", {
|
|
3857
2101
|
stroke: t,
|
|
3858
2102
|
fill: n,
|
|
3859
2103
|
fillOpacity: i,
|
|
@@ -3861,10 +2105,10 @@ var ha = class extends e.Component {
|
|
|
3861
2105
|
...a
|
|
3862
2106
|
});
|
|
3863
2107
|
}
|
|
3864
|
-
},
|
|
2108
|
+
}, pn = class extends e.Component {
|
|
3865
2109
|
render() {
|
|
3866
2110
|
let { width: e = 2, color: t = "black", p1: n, p2: r, ...i } = this.props;
|
|
3867
|
-
return /* @__PURE__ */
|
|
2111
|
+
return /* @__PURE__ */ _("line", {
|
|
3868
2112
|
...i,
|
|
3869
2113
|
stroke: t,
|
|
3870
2114
|
strokeWidth: e,
|
|
@@ -3874,7 +2118,7 @@ var ha = class extends e.Component {
|
|
|
3874
2118
|
y2: r.y
|
|
3875
2119
|
});
|
|
3876
2120
|
}
|
|
3877
|
-
},
|
|
2121
|
+
}, mn = class extends e.Component {
|
|
3878
2122
|
render() {
|
|
3879
2123
|
let { children: e, ...t } = this.props, n = { overlay: Object.assign({
|
|
3880
2124
|
width: "100%",
|
|
@@ -3887,13 +2131,13 @@ var ha = class extends e.Component {
|
|
|
3887
2131
|
boxSizing: "border-box",
|
|
3888
2132
|
position: "fixed"
|
|
3889
2133
|
}, this.props.overlayStyle) };
|
|
3890
|
-
return
|
|
2134
|
+
return E.createPortal(/* @__PURE__ */ _("div", {
|
|
3891
2135
|
style: n.overlay,
|
|
3892
2136
|
...t,
|
|
3893
2137
|
children: e
|
|
3894
2138
|
}), document.body);
|
|
3895
2139
|
}
|
|
3896
|
-
},
|
|
2140
|
+
}, hn = class extends e.Component {
|
|
3897
2141
|
state = {
|
|
3898
2142
|
centerX: 0,
|
|
3899
2143
|
centerY: 0,
|
|
@@ -3902,7 +2146,7 @@ var ha = class extends e.Component {
|
|
|
3902
2146
|
};
|
|
3903
2147
|
static getDerivedStateFromProps(e, t) {
|
|
3904
2148
|
if (!e.svgRef) return t;
|
|
3905
|
-
let n = e.svgRef.getBoundingClientRect(), r = n.width / 2, i = e.radius * Math.cos(
|
|
2149
|
+
let n = e.svgRef.getBoundingClientRect(), r = n.width / 2, i = e.radius * Math.cos(ln(e.valueAngle - 90)), a = e.radius * Math.sin(ln(e.valueAngle - 90));
|
|
3906
2150
|
return {
|
|
3907
2151
|
...t,
|
|
3908
2152
|
centerX: n.left + r,
|
|
@@ -3913,7 +2157,7 @@ var ha = class extends e.Component {
|
|
|
3913
2157
|
}
|
|
3914
2158
|
render() {
|
|
3915
2159
|
let e = this.props.minimumDragDistance <= this.props.radius ? "green" : "grey", t = this.props.minimumDragDistance <= this.props.radius ? "#88E22D" : "#D8D8D8", n = this.props.minimumDragDistance >= this.props.radius;
|
|
3916
|
-
return /* @__PURE__ */
|
|
2160
|
+
return /* @__PURE__ */ _(mn, { children: /* @__PURE__ */ v("svg", {
|
|
3917
2161
|
style: {
|
|
3918
2162
|
position: "absolute",
|
|
3919
2163
|
top: "0",
|
|
@@ -3922,7 +2166,7 @@ var ha = class extends e.Component {
|
|
|
3922
2166
|
width: "100%",
|
|
3923
2167
|
height: "100%",
|
|
3924
2168
|
children: [
|
|
3925
|
-
/* @__PURE__ */
|
|
2169
|
+
/* @__PURE__ */ _("defs", { children: /* @__PURE__ */ _("marker", {
|
|
3926
2170
|
id: "Triangle",
|
|
3927
2171
|
viewBox: "0 0 10 10",
|
|
3928
2172
|
refX: "1",
|
|
@@ -3930,9 +2174,9 @@ var ha = class extends e.Component {
|
|
|
3930
2174
|
markerWidth: "6",
|
|
3931
2175
|
markerHeight: "6",
|
|
3932
2176
|
orient: "auto",
|
|
3933
|
-
children: /* @__PURE__ */
|
|
2177
|
+
children: /* @__PURE__ */ _("path", { d: "M 0 0 L 10 5 L 0 10 z" })
|
|
3934
2178
|
}) }),
|
|
3935
|
-
/* @__PURE__ */
|
|
2179
|
+
/* @__PURE__ */ _(fn, {
|
|
3936
2180
|
borderColor: e,
|
|
3937
2181
|
fillColor: t,
|
|
3938
2182
|
fillOpacity: .02,
|
|
@@ -3940,7 +2184,7 @@ var ha = class extends e.Component {
|
|
|
3940
2184
|
cx: this.state.centerX,
|
|
3941
2185
|
cy: this.state.centerY
|
|
3942
2186
|
}),
|
|
3943
|
-
n && /* @__PURE__ */
|
|
2187
|
+
n && /* @__PURE__ */ _(fn, {
|
|
3944
2188
|
borderColor: e,
|
|
3945
2189
|
fillColor: t,
|
|
3946
2190
|
fillOpacity: 0,
|
|
@@ -3948,7 +2192,7 @@ var ha = class extends e.Component {
|
|
|
3948
2192
|
cx: this.state.centerX,
|
|
3949
2193
|
cy: this.state.centerY
|
|
3950
2194
|
}),
|
|
3951
|
-
/* @__PURE__ */
|
|
2195
|
+
/* @__PURE__ */ _(pn, {
|
|
3952
2196
|
p1: {
|
|
3953
2197
|
x: this.state.centerX,
|
|
3954
2198
|
y: this.state.centerY
|
|
@@ -3962,12 +2206,12 @@ var ha = class extends e.Component {
|
|
|
3962
2206
|
]
|
|
3963
2207
|
}) });
|
|
3964
2208
|
}
|
|
3965
|
-
},
|
|
2209
|
+
}, gn = {
|
|
3966
2210
|
knobX: 71,
|
|
3967
2211
|
knobY: 71,
|
|
3968
2212
|
svg: "\n\n<svg width=\"204px\" height=\"204px\" viewBox=\"0 0 204 204\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <!-- Generator: Sketch 47.1 (45422) - http://www.bohemiancoding.com/sketch -->\n <desc>Created with Sketch.</desc>\n <defs>\n <linearGradient x1=\"50%\" y1=\"50%\" x2=\"50%\" y2=\"100%\" id=\"linearGradient-1\">\n <stop stop-color=\"#444040\" stop-opacity=\"0.51098279\" offset=\"0%\"></stop>\n <stop stop-color=\"#131111\" stop-opacity=\"0.893200861\" offset=\"100%\"></stop>\n </linearGradient>\n <circle id=\"path-2\" cx=\"98.0400009\" cy=\"98.0400009\" r=\"98.0400009\"></circle>\n <filter x=\"-3.3%\" y=\"-3.3%\" width=\"106.6%\" height=\"106.6%\" filterUnits=\"objectBoundingBox\" id=\"filter-3\">\n <feMorphology radius=\"0.5\" operator=\"dilate\" in=\"SourceAlpha\" result=\"shadowSpreadOuter1\"></feMorphology>\n <feOffset dx=\"0\" dy=\"0\" in=\"shadowSpreadOuter1\" result=\"shadowOffsetOuter1\"></feOffset>\n <feGaussianBlur stdDeviation=\"2\" in=\"shadowOffsetOuter1\" result=\"shadowBlurOuter1\"></feGaussianBlur>\n <feComposite in=\"shadowBlurOuter1\" in2=\"SourceAlpha\" operator=\"out\" result=\"shadowBlurOuter1\"></feComposite>\n <feColorMatrix values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 0\" type=\"matrix\" in=\"shadowBlurOuter1\"></feColorMatrix>\n </filter>\n <linearGradient x1=\"50%\" y1=\"0%\" x2=\"50%\" y2=\"100%\" id=\"linearGradient-4\">\n <stop stop-color=\"#FFFFFF\" stop-opacity=\"0.5\" offset=\"0%\"></stop>\n <stop stop-color=\"#000000\" stop-opacity=\"0.5\" offset=\"100%\"></stop>\n </linearGradient>\n <circle id=\"path-5\" cx=\"98\" cy=\"98\" r=\"86\"></circle>\n <filter x=\"-4.1%\" y=\"-3.5%\" width=\"108.1%\" height=\"108.1%\" filterUnits=\"objectBoundingBox\" id=\"filter-6\">\n <feMorphology radius=\"0.5\" operator=\"dilate\" in=\"SourceAlpha\" result=\"shadowSpreadOuter1\"></feMorphology>\n <feOffset dx=\"0\" dy=\"1\" in=\"shadowSpreadOuter1\" result=\"shadowOffsetOuter1\"></feOffset>\n <feGaussianBlur stdDeviation=\"2\" in=\"shadowOffsetOuter1\" result=\"shadowBlurOuter1\"></feGaussianBlur>\n <feComposite in=\"shadowBlurOuter1\" in2=\"SourceAlpha\" operator=\"out\" result=\"shadowBlurOuter1\"></feComposite>\n <feColorMatrix values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 0\" type=\"matrix\" in=\"shadowBlurOuter1\"></feColorMatrix>\n </filter>\n </defs>\n <g id=\"Page-1\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g id=\"s13\" transform=\"translate(4.000000, 4.000000)\">\n <g id=\"container\">\n <g id=\"Oval-2\">\n <use fill=\"black\" fill-opacity=\"1\" filter=\"url(#filter-3)\" xlink:href=\"#path-2\"></use>\n <use stroke=\"#979797\" stroke-width=\"1\" fill=\"url(#linearGradient-1)\" fill-rule=\"evenodd\" xlink:href=\"#path-2\"></use>\n </g>\n <g id=\"Oval-2\">\n <use fill=\"black\" fill-opacity=\"1\" filter=\"url(#filter-6)\" xlink:href=\"#path-5\"></use>\n <use fill=\"\" fill-rule=\"evenodd\" xlink:href=\"#path-5\"></use>\n <use stroke=\"#4A4A4A\" stroke-width=\"1\" fill=\"url(#linearGradient-4)\" fill-rule=\"evenodd\" xlink:href=\"#path-5\"></use>\n </g>\n <g id=\"knob\" transform=\"translate(27.431373, 27.431373)\">\n <circle id=\"Oval-5\" fill=\"#322E2E\" cx=\"71\" cy=\"71\" r=\"71\"></circle>\n\n <!-- Fixed position marks -->\n <!-- 12:00 position mark (less prominent) -->\n <line x1=\"71\" y1=\"15\" x2=\"71\" y2=\"25\" stroke=\"#666666\" stroke-width=\"1\" opacity=\"0.6\"/>\n\n <!-- End position marks (0 and 127) -->\n <!-- 0 position mark (40 degrees from top, clockwise) -->\n <line x1=\"95.5\" y1=\"45.5\" x2=\"88.5\" y2=\"52.5\" stroke=\"#CCCCCC\" stroke-width=\"2\"/>\n\n <!-- 127 position mark (320 degrees from top, clockwise) -->\n <line x1=\"46.5\" y1=\"45.5\" x2=\"53.5\" y2=\"52.5\" stroke=\"#CCCCCC\" stroke-width=\"2\"/>\n\n <!-- Rotating indicator (existing) -->\n <path d=\"M70.0686275,4.17063061 L86.5686275,65.2689929 C81.3642501,66.811221 75.8642501,67.5735686 70.0686275,67.5560356 C64.2730048,67.5385027 58.7730048,66.7761551 53.5686275,65.2689929 L70.0686275,4.17063061 Z\" id=\"Rectangle-Copy\" fill=\"#E6D7D7\" transform=\"translate(70.068627, 35.863481) scale(1, -1) translate(-70.068627, -35.863481) \"></path>\n </g>\n </g>\n </g>\n </g>\n</svg>\n"
|
|
3969
|
-
},
|
|
3970
|
-
let { centered: t, clampMax: n = 360, clampMin: r = 0, defaultValue: i = 0, disabled: a = !1, format: o = (e) => e.toFixed(0), max: c = 100, min: l = 0, onChange: f = () => {}, onEnd: p = () => {}, onStart:
|
|
2213
|
+
}, _n = (e) => {
|
|
2214
|
+
let { centered: t, clampMax: n = 360, clampMin: r = 0, defaultValue: i = 0, disabled: a = !1, format: o = (e) => e.toFixed(0), max: c = 100, min: l = 0, onChange: f = () => {}, onEnd: p = () => {}, onStart: m = () => {}, preciseMode: h = !0, rotateDegrees: y = 0, skin: b = gn, step: E = 1, style: D, unlockDistance: O = 100, value: k, ...A } = e, [j, M] = d(k !== void 0), N = u(null), P = u(null), F, I, [L, R] = d({
|
|
3971
2215
|
svgRef: void 0,
|
|
3972
2216
|
dragging: !1,
|
|
3973
2217
|
dragDistance: 0,
|
|
@@ -3977,60 +2221,60 @@ var ha = class extends e.Component {
|
|
|
3977
2221
|
},
|
|
3978
2222
|
valueAngle: 0,
|
|
3979
2223
|
uncontrolledValue: 0
|
|
3980
|
-
}),
|
|
3981
|
-
let t = (
|
|
3982
|
-
return
|
|
3983
|
-
},
|
|
3984
|
-
let t = e -
|
|
3985
|
-
return
|
|
3986
|
-
},
|
|
2224
|
+
}), z = (e) => e < 0 ? e + 360 : e > 360 ? e - 360 : e, B = (e) => {
|
|
2225
|
+
let t = (V()(e) + y) % 360;
|
|
2226
|
+
return z(t);
|
|
2227
|
+
}, ee = (e) => {
|
|
2228
|
+
let t = e - y;
|
|
2229
|
+
return V().invert(z(t));
|
|
2230
|
+
}, V = () => ((!I || I.min !== l || I.max !== c || I.clampMin !== r || I.clampMax !== n) && (F = y < 270 && y > 90 ? S().domain([l, c]).range([r, n]) : S().domain([c, l]).range([n, r]), F.clamp(!0), I = {
|
|
3987
2231
|
min: l,
|
|
3988
2232
|
max: c,
|
|
3989
2233
|
clampMin: r,
|
|
3990
2234
|
clampMax: n
|
|
3991
|
-
}),
|
|
2235
|
+
}), F);
|
|
3992
2236
|
s(() => {
|
|
3993
|
-
|
|
2237
|
+
M(k !== void 0), R((e) => ({
|
|
3994
2238
|
...e,
|
|
3995
|
-
uncontrolledValue:
|
|
3996
|
-
})),
|
|
2239
|
+
uncontrolledValue: k ?? i ?? 0
|
|
2240
|
+
})), N.current && (C(N.current).on(".drag", null), a || U(C(N.current)));
|
|
3997
2241
|
}, [
|
|
3998
|
-
|
|
2242
|
+
k,
|
|
3999
2243
|
i,
|
|
4000
2244
|
a
|
|
4001
2245
|
]);
|
|
4002
|
-
let
|
|
4003
|
-
|
|
4004
|
-
...
|
|
2246
|
+
let te = (e) => {
|
|
2247
|
+
L.svgRef || R({
|
|
2248
|
+
...L,
|
|
4005
2249
|
svgRef: e
|
|
4006
2250
|
});
|
|
4007
|
-
},
|
|
4008
|
-
let t =
|
|
4009
|
-
|
|
2251
|
+
}, ne = (e) => {
|
|
2252
|
+
let t = ee(e);
|
|
2253
|
+
j || R((e) => ({
|
|
4010
2254
|
...e,
|
|
4011
2255
|
uncontrolledValue: t
|
|
4012
2256
|
})), a || f(t);
|
|
4013
|
-
},
|
|
2257
|
+
}, H = () => j ? k ?? 0 : L.uncontrolledValue ?? 0, U = (e) => {
|
|
4014
2258
|
if (!e?.node()) return;
|
|
4015
2259
|
let t = e.node();
|
|
4016
2260
|
if (!t) return;
|
|
4017
2261
|
let n = t.getBoundingClientRect(), r = n.width / 2, i = n.height / 2, a, o, s, c = !1;
|
|
4018
2262
|
function l(l) {
|
|
4019
2263
|
if (!l?.sourceEvent || !t) return;
|
|
4020
|
-
let u =
|
|
4021
|
-
n = t.getBoundingClientRect(), e.classed("dragging", !0),
|
|
2264
|
+
let u = H();
|
|
2265
|
+
n = t.getBoundingClientRect(), e.classed("dragging", !0), m(), a = {
|
|
4022
2266
|
x: l.x - r,
|
|
4023
2267
|
y: l.y - i
|
|
4024
|
-
}, o =
|
|
2268
|
+
}, o = dn(a.x, a.y), s = B(u), c = !1;
|
|
4025
2269
|
}
|
|
4026
2270
|
function u(e) {
|
|
4027
2271
|
let t = {
|
|
4028
2272
|
x: e.x - r,
|
|
4029
2273
|
y: e.y - i
|
|
4030
2274
|
}, n = Math.sqrt(t.x ** 2 + t.y ** 2);
|
|
4031
|
-
|
|
4032
|
-
let l =
|
|
4033
|
-
u =
|
|
2275
|
+
h ? !c && n >= O && (a = t, o = dn(t.x, t.y), c = !0) : c = !0;
|
|
2276
|
+
let l = dn(t.x, t.y) - o, u = s + l;
|
|
2277
|
+
u = z(u), c && ne(u), R((t) => ({
|
|
4034
2278
|
...t,
|
|
4035
2279
|
dragDistance: n,
|
|
4036
2280
|
mousePos: {
|
|
@@ -4041,19 +2285,19 @@ var ha = class extends e.Component {
|
|
|
4041
2285
|
}));
|
|
4042
2286
|
}
|
|
4043
2287
|
function d() {
|
|
4044
|
-
e.classed("dragging", !1),
|
|
2288
|
+
e.classed("dragging", !1), R((e) => ({
|
|
4045
2289
|
...e,
|
|
4046
2290
|
dragging: !1
|
|
4047
|
-
})), p(),
|
|
2291
|
+
})), p(), P.current?.focus();
|
|
4048
2292
|
}
|
|
4049
|
-
let f =
|
|
2293
|
+
let f = x().container(() => t).on("start", l).on("drag", u).on("end", d);
|
|
4050
2294
|
e.call(f);
|
|
4051
|
-
},
|
|
4052
|
-
|
|
2295
|
+
}, re = (e) => {
|
|
2296
|
+
j || R((t) => ({
|
|
4053
2297
|
...t,
|
|
4054
2298
|
uncontrolledValue: e
|
|
4055
2299
|
})), a || f(e);
|
|
4056
|
-
},
|
|
2300
|
+
}, W = H(), ie = B(W), ae = {
|
|
4057
2301
|
container: Object.assign({}, {
|
|
4058
2302
|
width: "50px",
|
|
4059
2303
|
height: "50px",
|
|
@@ -4068,57 +2312,57 @@ var ha = class extends e.Component {
|
|
|
4068
2312
|
top: "0",
|
|
4069
2313
|
left: "-100%"
|
|
4070
2314
|
}
|
|
4071
|
-
},
|
|
2315
|
+
}, oe = b.updateAttributes, se = oe ? oe.map((t, n) => {
|
|
4072
2316
|
let r = null;
|
|
4073
|
-
t.content && (r = t.content(e,
|
|
2317
|
+
t.content && (r = t.content(e, W));
|
|
4074
2318
|
let i = {};
|
|
4075
|
-
for (let n of t.attrs || []) i[n.name] = n.value(e,
|
|
4076
|
-
return /* @__PURE__ */
|
|
2319
|
+
for (let n of t.attrs || []) i[n.name] = n.value(e, W);
|
|
2320
|
+
return /* @__PURE__ */ _(T, {
|
|
4077
2321
|
selector: t.element,
|
|
4078
2322
|
...i,
|
|
4079
2323
|
children: r
|
|
4080
2324
|
}, n);
|
|
4081
2325
|
}) : null;
|
|
4082
|
-
return /* @__PURE__ */ g
|
|
4083
|
-
ref:
|
|
4084
|
-
style:
|
|
4085
|
-
...
|
|
4086
|
-
children: [/* @__PURE__ */
|
|
2326
|
+
return /* @__PURE__ */ v(g, { children: [/* @__PURE__ */ v("div", {
|
|
2327
|
+
ref: N,
|
|
2328
|
+
style: ae.container,
|
|
2329
|
+
...A,
|
|
2330
|
+
children: [/* @__PURE__ */ _(cn, {
|
|
4087
2331
|
disabled: a,
|
|
4088
|
-
inputRef:
|
|
4089
|
-
style:
|
|
4090
|
-
value:
|
|
2332
|
+
inputRef: P,
|
|
2333
|
+
style: ae.input,
|
|
2334
|
+
value: W,
|
|
4091
2335
|
min: l,
|
|
4092
2336
|
max: c,
|
|
4093
2337
|
step: E,
|
|
4094
|
-
onChange:
|
|
4095
|
-
}), /* @__PURE__ */
|
|
2338
|
+
onChange: re
|
|
2339
|
+
}), /* @__PURE__ */ v(w, {
|
|
4096
2340
|
height: "100%",
|
|
4097
|
-
svgXML:
|
|
2341
|
+
svgXML: b.svg,
|
|
4098
2342
|
width: "100%",
|
|
4099
|
-
onSVGReady:
|
|
4100
|
-
children: [/* @__PURE__ */
|
|
2343
|
+
onSVGReady: te,
|
|
2344
|
+
children: [/* @__PURE__ */ _(T, {
|
|
4101
2345
|
selector: "#knob",
|
|
4102
|
-
transform: `$ORIGINAL rotate(${
|
|
4103
|
-
}),
|
|
2346
|
+
transform: `$ORIGINAL rotate(${ie}, ${b.knobX}, ${b.knobY})`
|
|
2347
|
+
}), se]
|
|
4104
2348
|
})]
|
|
4105
|
-
}),
|
|
4106
|
-
svgRef:
|
|
4107
|
-
radius:
|
|
4108
|
-
mousePos:
|
|
4109
|
-
minimumDragDistance:
|
|
4110
|
-
valueAngle:
|
|
2349
|
+
}), L.dragging && h && /* @__PURE__ */ _(hn, {
|
|
2350
|
+
svgRef: L.svgRef,
|
|
2351
|
+
radius: L.dragDistance,
|
|
2352
|
+
mousePos: L.mousePos,
|
|
2353
|
+
minimumDragDistance: O,
|
|
2354
|
+
valueAngle: L.valueAngle
|
|
4111
2355
|
})] });
|
|
4112
|
-
},
|
|
2356
|
+
}, vn = .5, yn = (e, t, n, r) => {
|
|
4113
2357
|
let i = r * Math.PI / 180;
|
|
4114
2358
|
return [e + n * Math.sin(i), t - n * Math.cos(i)];
|
|
4115
|
-
},
|
|
2359
|
+
}, $ = (e) => String(Math.round(e * 1e3) / 1e3), bn = ({ value: e, min: t, max: n, centered: r = !1, cx: i = 100, cy: a = 100, r: o = 93, clampMin: s = 40, clampMax: c = 320, rotateDegrees: l = 180 }) => {
|
|
4116
2360
|
if (n === t) return "";
|
|
4117
2361
|
let u = s + Math.min(1, Math.max(0, (e - t) / (n - t))) * (c - s), d = r ? (s + c) / 2 : s, f = u - d;
|
|
4118
|
-
if (Math.abs(f) <
|
|
4119
|
-
let p = (e) => ((e + l) % 360 + 360) % 360, [m, h] =
|
|
4120
|
-
return `M ${
|
|
4121
|
-
},
|
|
2362
|
+
if (Math.abs(f) < vn) return "";
|
|
2363
|
+
let p = (e) => ((e + l) % 360 + 360) % 360, [m, h] = yn(i, a, o, p(d)), [g, _] = yn(i, a, o, p(u)), v = +(Math.abs(f) > 180), y = +(f > 0);
|
|
2364
|
+
return `M ${$(m)} ${$(h)} A ${$(o)} ${$(o)} 0 ${v} ${y} ${$(g)} ${$(_)}`;
|
|
2365
|
+
}, xn = 100, Sn = 100, Cn = 93, wn = {
|
|
4122
2366
|
knobX: 71.44,
|
|
4123
2367
|
knobY: 71.44,
|
|
4124
2368
|
svg: "\n <svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"207px\" height=\"207px\" viewBox=\"0 0 207 207\" version=\"1.1\">\n <!-- Generator: Sketch 47.1 (45422) - http://www.bohemiancoding.com/sketch -->\n <desc>Created with Sketch.</desc>\n <defs>\n <linearGradient x1=\"50%\" y1=\"50%\" x2=\"50%\" y2=\"100%\" id=\"27c61b0f-392f-962d-de12-cb9da898274b\">\n <stop stop-color=\"#444040\" stop-opacity=\"0.51098279\" offset=\"0%\"/>\n <stop stop-color=\"#131111\" stop-opacity=\"0.893200861\" offset=\"100%\"/>\n </linearGradient>\n <circle id=\"e966567b-3869-4bcd-76b6-2cf084e45390\" cx=\"100.497487\" cy=\"100.497487\" r=\"99.4974874\"/>\n <filter x=\"-3.3%\" y=\"-3.3%\" width=\"106.5%\" height=\"106.5%\" filterUnits=\"objectBoundingBox\" id=\"e2e6829f-0086-96b2-e92a-6f3809b8ac61\">\n <feMorphology radius=\"0.5\" operator=\"dilate\" in=\"SourceAlpha\" result=\"shadowSpreadOuter1\"/>\n <feOffset dx=\"0\" dy=\"0\" in=\"shadowSpreadOuter1\" result=\"shadowOffsetOuter1\"/>\n <feGaussianBlur stdDeviation=\"2\" in=\"shadowOffsetOuter1\" result=\"shadowBlurOuter1\"/>\n <feComposite in=\"shadowBlurOuter1\" in2=\"SourceAlpha\" operator=\"out\" result=\"shadowBlurOuter1\"/>\n <feColorMatrix values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 0\" type=\"matrix\" in=\"shadowBlurOuter1\"/>\n </filter>\n <linearGradient x1=\"50%\" y1=\"0%\" x2=\"50%\" y2=\"100%\" id=\"0facd5c9-8e04-e83f-4842-8ba16f949942\">\n <stop stop-color=\"#FFFFFF\" stop-opacity=\"0.5\" offset=\"0%\"/>\n <stop stop-color=\"#000000\" stop-opacity=\"0.5\" offset=\"100%\"/>\n </linearGradient>\n <circle id=\"c54189ed-7ea3-956c-f040-f0207548b268\" cx=\"100.432161\" cy=\"100.432161\" r=\"86.4321608\"/>\n <filter x=\"-4.0%\" y=\"-3.5%\" width=\"108.1%\" height=\"108.1%\" filterUnits=\"objectBoundingBox\" id=\"dedf2e7e-f008-c315-f682-e424d670f210\">\n <feMorphology radius=\"0.5\" operator=\"dilate\" in=\"SourceAlpha\" result=\"shadowSpreadOuter1\"/>\n <feOffset dx=\"0\" dy=\"1\" in=\"shadowSpreadOuter1\" result=\"shadowOffsetOuter1\"/>\n <feGaussianBlur stdDeviation=\"2\" in=\"shadowOffsetOuter1\" result=\"shadowBlurOuter1\"/>\n <feComposite in=\"shadowBlurOuter1\" in2=\"SourceAlpha\" operator=\"out\" result=\"shadowBlurOuter1\"/>\n <feColorMatrix values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 0\" type=\"matrix\" in=\"shadowBlurOuter1\"/>\n </filter>\n\n <filter x=\"-5.3%\" y=\"-11.3%\" width=\"110.7%\" height=\"122.6%\" filterUnits=\"objectBoundingBox\" id=\"12f618f7-e258-b597-3ed6-242484ddad8f\">\n <feOffset dx=\"0\" dy=\"0\" in=\"SourceAlpha\" result=\"shadowOffsetOuter1\"/>\n <feGaussianBlur stdDeviation=\"2\" in=\"shadowOffsetOuter1\" result=\"shadowBlurOuter1\"/>\n <feColorMatrix values=\"0 0 0 0 0.915577168 0 0 0 0 0.797591325 0 0 0 0 0.601479722 0 0 0 1 0\" type=\"matrix\" in=\"shadowBlurOuter1\"/>\n </filter>\n <pattern id=\"3cc0e5b8-1f0a-886b-f635-8fcb19212870\" width=\"8.04411765\" height=\"8.04411765\" x=\"21.9558824\" y=\"21.9558824\" patternUnits=\"userSpaceOnUse\">\n <use xlink:href=\"#2b8719c1-286b-ebf8-a488-ac66a6598fc5\" transform=\"scale(0.167585784,0.167585784)\"/>\n </pattern>\n <image id=\"2b8719c1-286b-ebf8-a488-ac66a6598fc5\" width=\"48\" height=\"48\" xlink:href=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAEGWlDQ1BrQ0dDb2xvclNwYWNlR2VuZXJpY1JHQgAAOI2NVV1oHFUUPrtzZyMkzlNsNIV0qD8NJQ2TVjShtLp/3d02bpZJNtoi6GT27s6Yyc44M7v9oU9FUHwx6psUxL+3gCAo9Q/bPrQvlQol2tQgKD60+INQ6Ium65k7M5lpurHeZe58853vnnvuuWfvBei5qliWkRQBFpquLRcy4nOHj4g9K5CEh6AXBqFXUR0rXalMAjZPC3e1W99Dwntf2dXd/p+tt0YdFSBxH2Kz5qgLiI8B8KdVy3YBevqRHz/qWh72Yui3MUDEL3q44WPXw3M+fo1pZuQs4tOIBVVTaoiXEI/MxfhGDPsxsNZfoE1q66ro5aJim3XdoLFw72H+n23BaIXzbcOnz5mfPoTvYVz7KzUl5+FRxEuqkp9G/Ajia219thzg25abkRE/BpDc3pqvphHvRFys2weqvp+krbWKIX7nhDbzLOItiM8358pTwdirqpPFnMF2xLc1WvLyOwTAibpbmvHHcvttU57y5+XqNZrLe3lE/Pq8eUj2fXKfOe3pfOjzhJYtB/yll5SDFcSDiH+hRkH25+L+sdxKEAMZahrlSX8ukqMOWy/jXW2m6M9LDBc31B9LFuv6gVKg/0Szi3KAr1kGq1GMjU/aLbnq6/lRxc4XfJ98hTargX++DbMJBSiYMIe9Ck1YAxFkKEAG3xbYaKmDDgYyFK0UGYpfoWYXG+fAPPI6tJnNwb7ClP7IyF+D+bjOtCpkhz6CFrIa/I6sFtNl8auFXGMTP34sNwI/JhkgEtmDz14ySfaRcTIBInmKPE32kxyyE2Tv+thKbEVePDfW/byMM1Kmm0XdObS7oGD/MypMXFPXrCwOtoYjyyn7BV29/MZfsVzpLDdRtuIZnbpXzvlf+ev8MvYr/Gqk4H/kV/G3csdazLuyTMPsbFhzd1UabQbjFvDRmcWJxR3zcfHkVw9GfpbJmeev9F08WW8uDkaslwX6avlWGU6NRKz0g/SHtCy9J30o/ca9zX3Kfc19zn3BXQKRO8ud477hLnAfc1/G9mrzGlrfexZ5GLdn6ZZrrEohI2wVHhZywjbhUWEy8icMCGNCUdiBlq3r+xafL549HQ5jH+an+1y+LlYBifuxAvRN/lVVVOlwlCkdVm9NOL5BE4wkQ2SMlDZU97hX86EilU/lUmkQUztTE6mx1EEPh7OmdqBtAvv8HdWpbrJS6tJj3n0CWdM6busNzRV3S9KTYhqvNiqWmuroiKgYhshMjmhTh9ptWhsF7970j/SbMrsPE1suR5z7DMC+P/Hs+y7ijrQAlhyAgccjbhjPygfeBTjzhNqy28EdkUh8C+DU9+z2v/oyeH791OncxHOs5y2AtTc7nb/f73TWPkD/qwBnjX8BoJ98VQNcC+8AAAFFSURBVGgF7djbDYMwDAXQBjEMYqyqY1WMxTppLiJIQIA8ariWkp8IPuweO60am67r7MstY8wwjuPH7dMz3uUua63p+/7r9rePIRW/9QmQzCV9ub0YgSIgzhxvQkjFb1EZBAdEKolkfJTqtnb7bv/zOJm58moRE0AzYgFoRawAGhE7gDZEEKAJcQjQgjgFaEBcAtgRUQBmRDSAFZEEYEQkA9gQWQAmRDaABVEEYEAUAx5H4EaGOyw+SMl66mbXzNOD4k6gCPNUY/CFwF1YOn5zRxJJRINqaUbUuZA/79sd3wm3xIdbdS60rXzo2XVCbO60/HxKJgFKKv4CkEziuyKBWAE0InYAbYggQBPiEKAFcQrQgLgEsCOiAMyIaAArIgnAiEgGsCGyAEyIbAALogjAgCgGPI7AX9w6F3JtqHMhnMWLFSrSD9jOnakVHpZYAAAAAElFTkSuQmCC\"/>\n </defs>\n <g id=\"Page-1\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g id=\"s10\" transform=\"translate(3.000000, 3.000000)\">\n <g id=\"container\">\n <g id=\"Oval-2\">\n <use fill=\"black\" fill-opacity=\"1\" filter=\"url(#e2e6829f-0086-96b2-e92a-6f3809b8ac61)\" xlink:href=\"#e966567b-3869-4bcd-76b6-2cf084e45390\"/>\n <use stroke=\"#979797\" stroke-width=\"1\" fill=\"url(#27c61b0f-392f-962d-de12-cb9da898274b)\" fill-rule=\"evenodd\" xlink:href=\"#e966567b-3869-4bcd-76b6-2cf084e45390\"/>\n </g>\n <g id=\"Oval-2\">\n <use fill=\"black\" fill-opacity=\"1\" filter=\"url(#dedf2e7e-f008-c315-f682-e424d670f210)\" xlink:href=\"#c54189ed-7ea3-956c-f040-f0207548b268\"/>\n <use fill=\"\" fill-rule=\"evenodd\" xlink:href=\"#c54189ed-7ea3-956c-f040-f0207548b268\"/>\n <use stroke=\"#4A4A4A\" stroke-width=\"1\" fill=\"url(#0facd5c9-8e04-e83f-4842-8ba16f949942)\" fill-rule=\"evenodd\" xlink:href=\"#c54189ed-7ea3-956c-f040-f0207548b268\"/>\n </g>\n <g id=\"knob\" transform=\"translate(28.574244, 28.574244)\">\n <circle id=\"Oval-5\" fill=\"#322E2E\" cx=\"71.4356094\" cy=\"71.4356094\" r=\"71.4356094\"/>\n\n <!-- Rotating indicator (existing) -->\n <path d=\"M72.4209282,3.63066376 L88.6786876,16.869789 C81.585496,18.1548295 76.1662428,18.7973498 72.4209282,18.7973498 C68.6756135,18.7973498 63.2563604,18.1548295 56.1631688,16.869789 L72.4209282,3.63066376 Z\" id=\"Rectangle\" fill=\"#E6D7D7\" transform=\"translate(72.420928, 11.214007) scale(1, -1) translate(-72.420928, -11.214007) \"/>\n </g>\n\n <!-- Value arc: anchor->value fill in the bezel ring; path data is\n computed per-render via updateAttributes (see below).\n Consumers can restyle it via the knob-value-arc class. -->\n <path id=\"valueArc\" class=\"knob-value-arc\" d=\"\" stroke=\"#35619F\" stroke-width=\"7\" fill=\"none\" opacity=\"0.85\" stroke-linecap=\"round\" pointer-events=\"none\"/>\n\n <!-- Fixed position marks (outside the rotating knob group) -->\n <!-- 12:00 position mark (more prominent) -->\n <line x1=\"100.0098534\" y1=\"15\" x2=\"100.0098534\" y2=\"35\" stroke=\"#CCCCCC\" stroke-width=\"4\" opacity=\"0.9\"/>\n\n <!-- End position marks (0 and 127) -->\n <!-- 0 position mark (40 degrees from top, clockwise) - at outer radius beyond knob edge -->\n <!-- This should be at the bottom-left where the value indicator points when at 0 -->\n <line x1=\"36\" y1=\"164\" x2=\"44\" y2=\"156\" stroke=\"#DDDDDD\" stroke-width=\"4\"/>\n\n <!-- 127 position mark (320 degrees from top, clockwise) - at outer radius beyond knob edge -->\n <!-- This should be at the bottom-right where the value indicator points when at 127 -->\n <line x1=\"164\" y1=\"164\" x2=\"156\" y2=\"156\" stroke=\"#DDDDDD\" stroke-width=\"4\"/>\n <g id=\"label\">\n <g id=\"labeltext\" fill-opacity=\"1\" fill=\"#E6D7D7\">\n <text id=\"534f4e02-5541-3607-0966-af0b025d80e0\" font-family=\"Helvetica\" font-size=\"44\" font-weight=\"normal\" fill=\"#E6D7D7\" class=\"text-7\" filter=\"url(#12f618f7-e258-b597-3ed6-242484ddad8f)\">\n <tspan x=\"45.3246625\" y=\"117.884225\">10.10</tspan>\n </text>\n <text id=\"92ebe866-c281-70c7-7b0e-a373cee013a9\" font-family=\"Helvetica\" font-size=\"44\" font-weight=\"normal\" fill=\"#E6D7D7\" class=\"text-7\">\n <tspan x=\"45.3246625\" y=\"117.884225\">10.10</tspan>\n </text>\n </g>\n <circle id=\"Oval-6\" stroke=\"#979797\" fill-opacity=\"0.730000019\" fill=\"url(#3cc0e5b8-1f0a-886b-f635-8fcb19212870)\" transform=\"translate(100.351759, 100.351759) rotate(-45.000000) translate(-100.351759, -100.351759) \" cx=\"100.351759\" cy=\"100.351759\" r=\"70.3517588\"/>\n </g>\n </g>\n </g>\n </g>\n</svg>\n",
|
|
@@ -4136,29 +2380,29 @@ var ha = class extends e.Component {
|
|
|
4136
2380
|
element: "#valueArc",
|
|
4137
2381
|
attrs: [{
|
|
4138
2382
|
name: "d",
|
|
4139
|
-
value: (e, t) =>
|
|
2383
|
+
value: (e, t) => bn({
|
|
4140
2384
|
value: t,
|
|
4141
2385
|
min: e.min ?? 0,
|
|
4142
2386
|
max: e.max ?? 127,
|
|
4143
2387
|
centered: e.centered ?? !1,
|
|
4144
|
-
cx:
|
|
4145
|
-
cy:
|
|
4146
|
-
r:
|
|
2388
|
+
cx: xn,
|
|
2389
|
+
cy: Sn,
|
|
2390
|
+
r: Cn,
|
|
4147
2391
|
clampMin: e.clampMin ?? 40,
|
|
4148
2392
|
clampMax: e.clampMax ?? 320,
|
|
4149
2393
|
rotateDegrees: e.rotateDegrees ?? 180
|
|
4150
2394
|
})
|
|
4151
2395
|
}]
|
|
4152
2396
|
}]
|
|
4153
|
-
},
|
|
4154
|
-
let { centered: t = !1, disabled: n = !1, max: r = 127, min: i = 0, onChange: a, value: s = 0, wheelEnabled: c = !1, wheelSensitivity: l = .1, ...u } = e, [d, f] =
|
|
2397
|
+
}, Tn = (e) => {
|
|
2398
|
+
let { centered: t = !1, disabled: n = !1, max: r = 127, min: i = 0, onChange: a, value: s = 0, wheelEnabled: c = !1, wheelSensitivity: l = .1, ...u } = e, [d, f] = sn(s), p = (e) => {
|
|
4155
2399
|
if (n) return;
|
|
4156
|
-
let t =
|
|
2400
|
+
let t = B(Number.parseInt(String(e), 10), r, i);
|
|
4157
2401
|
f(t), a && a(t);
|
|
4158
2402
|
}, m = o((e) => {
|
|
4159
2403
|
if (!c || n) return;
|
|
4160
2404
|
e.preventDefault();
|
|
4161
|
-
let t = -e.deltaY * l, o =
|
|
2405
|
+
let t = -e.deltaY * l, o = B(d + t, r, i);
|
|
4162
2406
|
f(o), a && a(o);
|
|
4163
2407
|
}, [
|
|
4164
2408
|
c,
|
|
@@ -4170,7 +2414,7 @@ var ha = class extends e.Component {
|
|
|
4170
2414
|
a,
|
|
4171
2415
|
f
|
|
4172
2416
|
]);
|
|
4173
|
-
return /* @__PURE__ */
|
|
2417
|
+
return /* @__PURE__ */ _(_n, {
|
|
4174
2418
|
centered: t,
|
|
4175
2419
|
clampMax: 320,
|
|
4176
2420
|
clampMin: 40,
|
|
@@ -4180,7 +2424,7 @@ var ha = class extends e.Component {
|
|
|
4180
2424
|
onWheel: c ? m : void 0,
|
|
4181
2425
|
preciseMode: !1,
|
|
4182
2426
|
rotateDegrees: 180,
|
|
4183
|
-
skin:
|
|
2427
|
+
skin: wn,
|
|
4184
2428
|
style: { opacity: n ? .4 : 1 },
|
|
4185
2429
|
unlockDistance: 0,
|
|
4186
2430
|
defaultValue: d,
|
|
@@ -4189,9 +2433,9 @@ var ha = class extends e.Component {
|
|
|
4189
2433
|
value: d,
|
|
4190
2434
|
...u
|
|
4191
2435
|
});
|
|
4192
|
-
},
|
|
4193
|
-
let { centered: n, disabled: r, highToLow: i, includeLabel: a, includePicker: o, knobProps: s, label: c, max: u = 127, min: d = 0, onChange: f, shrinkLabel: p, value: m = 0, wheelEnabled:
|
|
4194
|
-
let e =
|
|
2436
|
+
}, En = i((e, t) => {
|
|
2437
|
+
let { centered: n, disabled: r, highToLow: i, includeLabel: a, includePicker: o, knobProps: s, label: c, max: u = 127, min: d = 0, onChange: f, shrinkLabel: p, value: m = 0, wheelEnabled: h, wheelSensitivity: g = .1, ...y } = e, b = l(() => {
|
|
2438
|
+
let e = z(u - d + 1).map((e) => d + e).map((e) => ({
|
|
4195
2439
|
value: e,
|
|
4196
2440
|
label: String(e)
|
|
4197
2441
|
}));
|
|
@@ -4201,18 +2445,18 @@ var ha = class extends e.Component {
|
|
|
4201
2445
|
u,
|
|
4202
2446
|
d
|
|
4203
2447
|
]);
|
|
4204
|
-
return /* @__PURE__ */
|
|
2448
|
+
return /* @__PURE__ */ v("div", {
|
|
4205
2449
|
className: "zds-pickers__container",
|
|
4206
|
-
children: [!!(!p && c) && /* @__PURE__ */
|
|
2450
|
+
children: [!!(!p && c) && /* @__PURE__ */ _("span", {
|
|
4207
2451
|
className: "zds-pickers__label",
|
|
4208
2452
|
children: c
|
|
4209
|
-
}), /* @__PURE__ */
|
|
2453
|
+
}), /* @__PURE__ */ v("div", {
|
|
4210
2454
|
style: {
|
|
4211
2455
|
display: "inline-flex",
|
|
4212
2456
|
gap: 10,
|
|
4213
2457
|
alignItems: "center"
|
|
4214
2458
|
},
|
|
4215
|
-
children: [!!o && /* @__PURE__ */
|
|
2459
|
+
children: [!!o && /* @__PURE__ */ _(Q, {
|
|
4216
2460
|
...y,
|
|
4217
2461
|
disabled: r,
|
|
4218
2462
|
isDisabled: r,
|
|
@@ -4220,50 +2464,50 @@ var ha = class extends e.Component {
|
|
|
4220
2464
|
options: b,
|
|
4221
2465
|
ref: t,
|
|
4222
2466
|
value: m
|
|
4223
|
-
}), /* @__PURE__ */
|
|
2467
|
+
}), /* @__PURE__ */ _(Tn, {
|
|
4224
2468
|
centered: n,
|
|
4225
2469
|
disabled: r,
|
|
4226
2470
|
max: u,
|
|
4227
2471
|
min: d,
|
|
4228
2472
|
onChange: f,
|
|
4229
2473
|
value: m,
|
|
4230
|
-
wheelEnabled:
|
|
4231
|
-
wheelSensitivity:
|
|
2474
|
+
wheelEnabled: h,
|
|
2475
|
+
wheelSensitivity: g,
|
|
4232
2476
|
...s
|
|
4233
2477
|
})]
|
|
4234
2478
|
})]
|
|
4235
2479
|
});
|
|
4236
|
-
}),
|
|
2480
|
+
}), Dn = [{
|
|
4237
2481
|
value: 0,
|
|
4238
2482
|
label: "Momentary"
|
|
4239
2483
|
}, {
|
|
4240
2484
|
value: 1,
|
|
4241
2485
|
label: "Latching"
|
|
4242
|
-
}],
|
|
2486
|
+
}], On = i((e, t) => /* @__PURE__ */ _(Q, {
|
|
4243
2487
|
...e,
|
|
4244
|
-
options:
|
|
2488
|
+
options: Dn,
|
|
4245
2489
|
ref: t
|
|
4246
|
-
})),
|
|
4247
|
-
let r =
|
|
2490
|
+
})), kn = i(({ allowClearing: e, ...t }, n) => {
|
|
2491
|
+
let r = O(), i = k(), a = l(() => [
|
|
4248
2492
|
...e ? [{
|
|
4249
2493
|
value: "No Mapping",
|
|
4250
|
-
label: /* @__PURE__ */
|
|
2494
|
+
label: /* @__PURE__ */ _("span", {
|
|
4251
2495
|
className: "zds-mappings-clear-mapping",
|
|
4252
2496
|
children: "No Mapping"
|
|
4253
2497
|
})
|
|
4254
2498
|
}] : [],
|
|
4255
2499
|
{
|
|
4256
|
-
label: e ? /* @__PURE__ */
|
|
2500
|
+
label: e ? /* @__PURE__ */ _("hr", {}) : "",
|
|
4257
2501
|
options: i.map((e) => ({
|
|
4258
2502
|
value: e,
|
|
4259
|
-
label: /* @__PURE__ */
|
|
2503
|
+
label: /* @__PURE__ */ _("span", {
|
|
4260
2504
|
className: "zds-mappings-user-mapping",
|
|
4261
2505
|
children: e
|
|
4262
2506
|
})
|
|
4263
2507
|
}))
|
|
4264
2508
|
},
|
|
4265
2509
|
{
|
|
4266
|
-
label: i.length || e ? /* @__PURE__ */
|
|
2510
|
+
label: i.length || e ? /* @__PURE__ */ _("hr", {}) : "",
|
|
4267
2511
|
options: r.map((e) => ({
|
|
4268
2512
|
label: e,
|
|
4269
2513
|
value: e
|
|
@@ -4274,21 +2518,21 @@ var ha = class extends e.Component {
|
|
|
4274
2518
|
r,
|
|
4275
2519
|
i
|
|
4276
2520
|
]);
|
|
4277
|
-
return /* @__PURE__ */
|
|
2521
|
+
return /* @__PURE__ */ _(Q, {
|
|
4278
2522
|
...t,
|
|
4279
2523
|
options: a,
|
|
4280
2524
|
ref: n
|
|
4281
2525
|
});
|
|
4282
|
-
}),
|
|
2526
|
+
}), An = ({ note: e, name: t }) => `${e} ${t.length ? "-" : ""} ${t}`, jn = (e, t) => ({
|
|
4283
2527
|
label: e,
|
|
4284
2528
|
value: t + 1
|
|
4285
|
-
}),
|
|
4286
|
-
let { channel: n, disabled: r = !1, isMelodicMode: i = !1, mapping: a, onChange: s, value: c, ...u } = e, d = l(() => i ?
|
|
2529
|
+
}), Mn = i((e, t) => {
|
|
2530
|
+
let { channel: n, disabled: r = !1, isMelodicMode: i = !1, mapping: a, onChange: s, value: c, ...u } = e, d = l(() => i ? D().map(({ note: e }) => `${be(e)} (#${e})`).map(jn) : (a || D()).map(An).map(jn), [i, a]), [f, p] = sn(c), m = o((e) => {
|
|
4287
2531
|
if (typeof e == "string") return;
|
|
4288
|
-
let t =
|
|
2532
|
+
let t = B(e, 128, 0);
|
|
4289
2533
|
t > 0 && s(t), p(e);
|
|
4290
2534
|
}, [s, p]);
|
|
4291
|
-
return /* @__PURE__ */
|
|
2535
|
+
return /* @__PURE__ */ _(Q, {
|
|
4292
2536
|
...u,
|
|
4293
2537
|
disabled: r,
|
|
4294
2538
|
onChange: m,
|
|
@@ -4296,25 +2540,25 @@ var ha = class extends e.Component {
|
|
|
4296
2540
|
ref: t,
|
|
4297
2541
|
value: f
|
|
4298
2542
|
});
|
|
4299
|
-
}),
|
|
4300
|
-
let r = (t /
|
|
4301
|
-
return /* @__PURE__ */
|
|
2543
|
+
}), Nn = 21, Pn = 108, Fn = 86 * .7, In = new window.AudioContext(), Ln = ({ height: e, width: t, ...n }) => {
|
|
2544
|
+
let r = (t / Fn + 2) / e;
|
|
2545
|
+
return /* @__PURE__ */ _("div", { children: /* @__PURE__ */ _(St, {
|
|
4302
2546
|
keyWidthToHeight: r,
|
|
4303
2547
|
noteRange: {
|
|
4304
|
-
first:
|
|
4305
|
-
last:
|
|
2548
|
+
first: Nn,
|
|
2549
|
+
last: Pn
|
|
4306
2550
|
},
|
|
4307
2551
|
width: t,
|
|
4308
2552
|
...n
|
|
4309
2553
|
}) });
|
|
4310
|
-
},
|
|
4311
|
-
audioContext:
|
|
2554
|
+
}, Rn = ({ format: e, height: t, hostname: n, instrumentName: r, onChange: i, onClick: a, onDoubleClick: o, onKeyMouseEnter: s, onKeyMouseLeave: c, selectedNotes: l, soundfont: u, width: d }) => /* @__PURE__ */ _(kt, {
|
|
2555
|
+
audioContext: In,
|
|
4312
2556
|
format: e,
|
|
4313
2557
|
hostname: n,
|
|
4314
2558
|
instrumentName: r,
|
|
4315
2559
|
onChange: i,
|
|
4316
2560
|
soundfont: u,
|
|
4317
|
-
render: ({ isLoading: e, playNote: n, stopNote: r }) => /* @__PURE__ */
|
|
2561
|
+
render: ({ isLoading: e, playNote: n, stopNote: r }) => /* @__PURE__ */ _(Ln, {
|
|
4318
2562
|
disabled: e,
|
|
4319
2563
|
height: t,
|
|
4320
2564
|
onClick: a,
|
|
@@ -4326,7 +2570,7 @@ var ha = class extends e.Component {
|
|
|
4326
2570
|
stopNote: r,
|
|
4327
2571
|
width: d
|
|
4328
2572
|
})
|
|
4329
|
-
}),
|
|
2573
|
+
}), zn = i(({ labelOff: e = "Normally Off", labelOn: t = "Normally On", ...n }, r) => {
|
|
4330
2574
|
let i = [{
|
|
4331
2575
|
value: 0,
|
|
4332
2576
|
label: e
|
|
@@ -4334,20 +2578,20 @@ var ha = class extends e.Component {
|
|
|
4334
2578
|
value: 1,
|
|
4335
2579
|
label: t
|
|
4336
2580
|
}];
|
|
4337
|
-
return /* @__PURE__ */
|
|
2581
|
+
return /* @__PURE__ */ _(Q, {
|
|
4338
2582
|
...n,
|
|
4339
2583
|
options: i,
|
|
4340
2584
|
ref: r
|
|
4341
2585
|
});
|
|
4342
|
-
}),
|
|
2586
|
+
}), Bn = (e) => e ? {
|
|
4343
2587
|
width: e.offsetWidth,
|
|
4344
2588
|
height: e.offsetHeight
|
|
4345
2589
|
} : {
|
|
4346
2590
|
width: 0,
|
|
4347
2591
|
height: 0
|
|
4348
|
-
},
|
|
4349
|
-
let [t, n] = d(
|
|
4350
|
-
e.current && n(
|
|
2592
|
+
}, Vn = (e) => {
|
|
2593
|
+
let [t, n] = d(Bn(e ? e.current : null)), r = o(() => {
|
|
2594
|
+
e.current && n(Bn(e.current));
|
|
4351
2595
|
}, [e]);
|
|
4352
2596
|
return c(() => {
|
|
4353
2597
|
if (e.current) {
|
|
@@ -4364,32 +2608,32 @@ var ha = class extends e.Component {
|
|
|
4364
2608
|
};
|
|
4365
2609
|
}
|
|
4366
2610
|
}, [e.current]), t;
|
|
4367
|
-
},
|
|
4368
|
-
let { Tooltip: t =
|
|
4369
|
-
let n = 0, r = 0, a =
|
|
2611
|
+
}, Hn = 20, Un = 15, Wn = Hn, Gn = Hn, Kn = (e) => {
|
|
2612
|
+
let { Tooltip: t = ge, autosize: n, disabled: r, inverted: i, onChange: a, value: o } = e, s = u(null), c = u(null), { height: l, width: d } = Vn(s), f = n && d || 218, p = n && l || 150, m = f - Hn, h = p - Hn, g = f / 2, y = p / 2, b = { ref: c }, x = K.map(({ value: e, label: t }) => {
|
|
2613
|
+
let n = 0, r = 0, a = Wn, o = i ? Gn : h, s = m, c = i ? h : Gn, l = g, u = y;
|
|
4370
2614
|
switch (e) {
|
|
4371
2615
|
case 0:
|
|
4372
|
-
n =
|
|
2616
|
+
n = g, r = y, u += 3;
|
|
4373
2617
|
break;
|
|
4374
2618
|
case 1:
|
|
4375
|
-
n = i ?
|
|
2619
|
+
n = i ? g + f * .13 : g - f * .13, r = y - p * .13, l = i ? g + f * .1 : g - f * .1, u = y - p * .09;
|
|
4376
2620
|
break;
|
|
4377
2621
|
case 2:
|
|
4378
|
-
n = i ?
|
|
2622
|
+
n = i ? g + f * .25 : g - f * .25, r = y - p * .25, l = i ? g + f * .2 : g - f * .2, u = y - p * .17;
|
|
4379
2623
|
break;
|
|
4380
2624
|
case 3:
|
|
4381
|
-
n = i ?
|
|
2625
|
+
n = i ? g + f * .35 : g - f * .35, r = y - p * .35, l = i ? g + f * .28 : g - f * .28, u = y - p * .25;
|
|
4382
2626
|
break;
|
|
4383
2627
|
case 4:
|
|
4384
|
-
n = i ?
|
|
2628
|
+
n = i ? g - f * .13 : g + f * .13, r = y + p * .13, l = i ? g - f * .1 : g + f * .1, u = y + p * .1;
|
|
4385
2629
|
break;
|
|
4386
2630
|
case 5:
|
|
4387
|
-
n = i ?
|
|
2631
|
+
n = i ? g - f * .25 : g + f * .25, r = y + p * .25, l = i ? g - f * .2 : g + f * .2, u = y + p * .18;
|
|
4388
2632
|
break;
|
|
4389
2633
|
case 6:
|
|
4390
|
-
n = i ?
|
|
2634
|
+
n = i ? g - f * .35 : g + f * .35, r = y + p * .35, l = i ? g - f * .28 : g + f * .28, u = y + p * .25;
|
|
4391
2635
|
break;
|
|
4392
|
-
case 7: a = i ?
|
|
2636
|
+
case 7: a = i ? Wn : m, o = Gn, s = a, c = h, n = a, r = y, l = a - 5, u = p - 30;
|
|
4393
2637
|
}
|
|
4394
2638
|
return {
|
|
4395
2639
|
value: e,
|
|
@@ -4404,13 +2648,13 @@ var ha = class extends e.Component {
|
|
|
4404
2648
|
labelY: u
|
|
4405
2649
|
};
|
|
4406
2650
|
});
|
|
4407
|
-
return /* @__PURE__ */
|
|
2651
|
+
return /* @__PURE__ */ _("div", {
|
|
4408
2652
|
className: "response-curve-picker",
|
|
4409
2653
|
ref: s,
|
|
4410
|
-
children: /* @__PURE__ */
|
|
2654
|
+
children: /* @__PURE__ */ v("svg", {
|
|
4411
2655
|
...b,
|
|
4412
2656
|
children: [
|
|
4413
|
-
/* @__PURE__ */
|
|
2657
|
+
/* @__PURE__ */ _("rect", {
|
|
4414
2658
|
className: "container",
|
|
4415
2659
|
height: p,
|
|
4416
2660
|
rx: 3,
|
|
@@ -4419,7 +2663,7 @@ var ha = class extends e.Component {
|
|
|
4419
2663
|
x: 0,
|
|
4420
2664
|
y: 0
|
|
4421
2665
|
}),
|
|
4422
|
-
/* @__PURE__ */
|
|
2666
|
+
/* @__PURE__ */ _(Ht, {
|
|
4423
2667
|
className: "axis",
|
|
4424
2668
|
textAnchor: "middle",
|
|
4425
2669
|
transform: `translate(6 ${p / 2}) rotate(90)`,
|
|
@@ -4427,64 +2671,64 @@ var ha = class extends e.Component {
|
|
|
4427
2671
|
y: 0,
|
|
4428
2672
|
text: "Applied force"
|
|
4429
2673
|
}),
|
|
4430
|
-
/* @__PURE__ */
|
|
2674
|
+
/* @__PURE__ */ _(Ht, {
|
|
4431
2675
|
className: "axis",
|
|
4432
2676
|
textAnchor: "middle",
|
|
4433
|
-
transform: `translate(${f / 2} ${
|
|
2677
|
+
transform: `translate(${f / 2} ${h + 13})`,
|
|
4434
2678
|
x: 0,
|
|
4435
2679
|
y: 0,
|
|
4436
2680
|
text: "Output (velocity)"
|
|
4437
2681
|
}),
|
|
4438
|
-
/* @__PURE__ */
|
|
2682
|
+
/* @__PURE__ */ _("line", {
|
|
4439
2683
|
className: "axis",
|
|
4440
|
-
x1:
|
|
4441
|
-
x2:
|
|
4442
|
-
y1:
|
|
4443
|
-
y2:
|
|
2684
|
+
x1: Wn,
|
|
2685
|
+
x2: Wn,
|
|
2686
|
+
y1: Gn,
|
|
2687
|
+
y2: h
|
|
4444
2688
|
}),
|
|
4445
|
-
/* @__PURE__ */
|
|
2689
|
+
/* @__PURE__ */ _("line", {
|
|
4446
2690
|
className: "axis",
|
|
4447
|
-
x1:
|
|
2691
|
+
x1: Wn,
|
|
4448
2692
|
x2: m,
|
|
4449
|
-
y1:
|
|
4450
|
-
y2:
|
|
2693
|
+
y1: h,
|
|
2694
|
+
y2: h
|
|
4451
2695
|
}),
|
|
4452
|
-
x.map(({ value: e, label: n, x1: i, y1: s, x2: c, y2: l, c1: u, c2: d, labelX: f, labelY: p }) => /* @__PURE__ */
|
|
4453
|
-
/* @__PURE__ */
|
|
2696
|
+
x.map(({ value: e, label: n, x1: i, y1: s, x2: c, y2: l, c1: u, c2: d, labelX: f, labelY: p }) => /* @__PURE__ */ v("g", { children: [
|
|
2697
|
+
/* @__PURE__ */ _("path", {
|
|
4454
2698
|
className: e === o ? "curve-selected" : "curve",
|
|
4455
2699
|
d: `M${i} ${s} C ${u} ${d}, ${u} ${d}, ${c} ${l}`
|
|
4456
2700
|
}),
|
|
4457
|
-
/* @__PURE__ */
|
|
2701
|
+
/* @__PURE__ */ _(t, {
|
|
4458
2702
|
placement: "left",
|
|
4459
2703
|
title: n,
|
|
4460
|
-
children: /* @__PURE__ */
|
|
2704
|
+
children: /* @__PURE__ */ _("rect", {
|
|
4461
2705
|
className: e === o ? "button-selected" : "button",
|
|
4462
|
-
height:
|
|
2706
|
+
height: Un,
|
|
4463
2707
|
onClick: r ? (e) => e : () => a({ target: { value: Number.parseInt(String(e)) } }),
|
|
4464
|
-
transform: `translate(${f + 3} ${p -
|
|
4465
|
-
width:
|
|
2708
|
+
transform: `translate(${f + 3} ${p - Un / 1.05}) rotate(45)`,
|
|
2709
|
+
width: Un
|
|
4466
2710
|
})
|
|
4467
2711
|
}),
|
|
4468
|
-
/* @__PURE__ */
|
|
2712
|
+
/* @__PURE__ */ v("text", {
|
|
4469
2713
|
className: e === o ? "button-selected" : "button",
|
|
4470
2714
|
transform: `translate(${f} ${p})`,
|
|
4471
|
-
children: [e, /* @__PURE__ */
|
|
2715
|
+
children: [e, /* @__PURE__ */ _("title", { children: n })]
|
|
4472
2716
|
})
|
|
4473
2717
|
] }, e))
|
|
4474
2718
|
]
|
|
4475
2719
|
})
|
|
4476
2720
|
});
|
|
4477
|
-
},
|
|
4478
|
-
let { Tooltip: n =
|
|
4479
|
-
let e =
|
|
4480
|
-
return e ? /* @__PURE__ */
|
|
2721
|
+
}, qn = i((e, t) => {
|
|
2722
|
+
let { Tooltip: n = ge, inverted: r = !1, onChange: i, value: a, ...s } = e, c = o(() => {
|
|
2723
|
+
let e = ee("value", a)(K);
|
|
2724
|
+
return e ? /* @__PURE__ */ _("div", {
|
|
4481
2725
|
className: "singleValue",
|
|
4482
2726
|
children: e.label
|
|
4483
|
-
}) : /* @__PURE__ */
|
|
2727
|
+
}) : /* @__PURE__ */ _("div", {
|
|
4484
2728
|
className: "zds-pickers__placeholder",
|
|
4485
2729
|
children: "Select..."
|
|
4486
2730
|
});
|
|
4487
|
-
}, [a]), l = o(({ setValue: e }) => /* @__PURE__ */
|
|
2731
|
+
}, [a]), l = o(({ setValue: e }) => /* @__PURE__ */ _(Kn, {
|
|
4488
2732
|
autosize: !0,
|
|
4489
2733
|
inverted: r,
|
|
4490
2734
|
onChange: ({ target: { value: t } }) => {
|
|
@@ -4498,7 +2742,7 @@ var ha = class extends e.Component {
|
|
|
4498
2742
|
i,
|
|
4499
2743
|
a
|
|
4500
2744
|
]);
|
|
4501
|
-
return /* @__PURE__ */
|
|
2745
|
+
return /* @__PURE__ */ _(Q, {
|
|
4502
2746
|
...s,
|
|
4503
2747
|
components: {
|
|
4504
2748
|
Placeholder: c,
|
|
@@ -4509,13 +2753,13 @@ var ha = class extends e.Component {
|
|
|
4509
2753
|
ref: t,
|
|
4510
2754
|
value: a
|
|
4511
2755
|
});
|
|
4512
|
-
}),
|
|
2756
|
+
}), Jn = i(({ statuses: e, ...t }, n) => /* @__PURE__ */ _(Q, {
|
|
4513
2757
|
...t,
|
|
4514
2758
|
options: e,
|
|
4515
2759
|
ref: n
|
|
4516
|
-
})),
|
|
2760
|
+
})), Yn = i((e, t) => {
|
|
4517
2761
|
let { disabled: n, highToLow: r, max: i = 127, min: a = 0, onChange: s, value: c = 0, ...u } = e, d = l(() => {
|
|
4518
|
-
let e =
|
|
2762
|
+
let e = z(i - a + 1).map((e) => a + e).map((e) => ({
|
|
4519
2763
|
value: e,
|
|
4520
2764
|
label: e
|
|
4521
2765
|
}));
|
|
@@ -4524,15 +2768,15 @@ var ha = class extends e.Component {
|
|
|
4524
2768
|
r,
|
|
4525
2769
|
i,
|
|
4526
2770
|
a
|
|
4527
|
-
]), [f, p] =
|
|
4528
|
-
s(
|
|
2771
|
+
]), [f, p] = sn(c), m = o((e) => {
|
|
2772
|
+
s(B(e, i, a)), p(Number.parseInt(String(e), 10));
|
|
4529
2773
|
}, [
|
|
4530
2774
|
i,
|
|
4531
2775
|
a,
|
|
4532
2776
|
s,
|
|
4533
2777
|
p
|
|
4534
2778
|
]);
|
|
4535
|
-
return /* @__PURE__ */
|
|
2779
|
+
return /* @__PURE__ */ _(Q, {
|
|
4536
2780
|
...u,
|
|
4537
2781
|
disabled: n,
|
|
4538
2782
|
onChange: m,
|
|
@@ -4542,6 +2786,6 @@ var ha = class extends e.Component {
|
|
|
4542
2786
|
});
|
|
4543
2787
|
});
|
|
4544
2788
|
//#endregion
|
|
4545
|
-
export {
|
|
2789
|
+
export { Xt as CCPicker, Qt as ChannelMappingPicker, tn as ChannelPicker, ge as DefaultTooltip, on as KeyPicker, Tn as Knob, En as KnobPicker, On as LatchPicker, re as MASK_CHANNEL, W as MASK_STATUS, Ft as MEASUREMENT_ELEMENT_ID, kn as MappingPicker, Mn as NotePicker, Pt as OctavePlayer, Rn as PianoPicker, zn as PolarityPicker, Kn as ResponseCurve, he as ResponseCurveLabels, qn as ResponseCurvePicker, Q as Select, Jn as StatusPicker, U as Statuses, Ht as SvgText, Yn as ValuePicker, zt as __resetFontMetricsCacheForTests, z as arraySequence, B as assertRange, Vt as calculateWordWidths, Bt as calculateWordsByLines, H as changeControllerOptions, oe as combineStatusWithChannel, se as extractStatusAndChannel, ee as findObj, ve as formatPitchName, ae as getStatusLabel, be as midiNoteLabel, Ut as noSelection, qt as noSelectionOption, V as omit, te as pick, ye as pitchClassLabel, K as responseCurves, ne as set, ie as statusOptions };
|
|
4546
2790
|
|
|
4547
2791
|
//# sourceMappingURL=index.es.js.map
|