@sudobility/music_drawing 0.0.23 → 0.0.25
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/canvas-renderer.d.ts +53 -0
- package/dist/canvas-renderer.d.ts.map +1 -1
- package/dist/canvas-renderer.js +123 -2
- package/dist/canvas-renderer.js.map +1 -1
- package/dist/hit-test.d.ts +101 -0
- package/dist/hit-test.d.ts.map +1 -0
- package/dist/hit-test.js +213 -0
- package/dist/hit-test.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/layout.d.ts +15 -1
- package/dist/layout.d.ts.map +1 -1
- package/dist/layout.js +36 -3
- package/dist/layout.js.map +1 -1
- package/dist/measure-content.d.ts +3 -1
- package/dist/measure-content.d.ts.map +1 -1
- package/dist/measure-content.js +2 -2
- package/dist/measure-content.js.map +1 -1
- package/dist/note-colors.d.ts +55 -0
- package/dist/note-colors.d.ts.map +1 -0
- package/dist/note-colors.js +31 -0
- package/dist/note-colors.js.map +1 -0
- package/dist/note-drag.d.ts +29 -0
- package/dist/note-drag.d.ts.map +1 -0
- package/dist/note-drag.js +27 -0
- package/dist/note-drag.js.map +1 -0
- package/dist/playback-scroll.d.ts +40 -0
- package/dist/playback-scroll.d.ts.map +1 -0
- package/dist/playback-scroll.js +128 -0
- package/dist/playback-scroll.js.map +1 -0
- package/dist/playhead.d.ts +41 -7
- package/dist/playhead.d.ts.map +1 -1
- package/dist/playhead.js +153 -2
- package/dist/playhead.js.map +1 -1
- package/dist/render-theme.d.ts +30 -0
- package/dist/render-theme.d.ts.map +1 -0
- package/dist/render-theme.js +23 -0
- package/dist/render-theme.js.map +1 -0
- package/dist/skia/index.d.ts +1 -0
- package/dist/skia/index.d.ts.map +1 -1
- package/dist/skia/index.js +1 -0
- package/dist/skia/index.js.map +1 -1
- package/dist/skia/skia-api.d.ts +8 -0
- package/dist/skia/skia-api.d.ts.map +1 -1
- package/dist/skia/skia-context.d.ts +1 -0
- package/dist/skia/skia-context.d.ts.map +1 -1
- package/dist/skia/skia-context.js +104 -8
- package/dist/skia/skia-context.js.map +1 -1
- package/dist/stave-header.d.ts +29 -0
- package/dist/stave-header.d.ts.map +1 -0
- package/dist/stave-header.js +122 -0
- package/dist/stave-header.js.map +1 -0
- package/dist/test/fake-skia.d.ts +12 -1
- package/dist/test/fake-skia.d.ts.map +1 -1
- package/dist/test/fake-skia.js +8 -1
- package/dist/test/fake-skia.js.map +1 -1
- package/dist/track-gutter.d.ts +14 -0
- package/dist/track-gutter.d.ts.map +1 -0
- package/dist/track-gutter.js +37 -0
- package/dist/track-gutter.js.map +1 -0
- package/package.json +3 -3
package/dist/skia/index.d.ts
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
export { createSkiaContext2D } from './skia-context.js';
|
|
13
13
|
export type { SkiaContextOptions } from './skia-context.js';
|
|
14
14
|
export { parseCssFont } from './css-font.js';
|
|
15
|
+
export { familyCandidates } from './skia-context.js';
|
|
15
16
|
export type { ParsedFont } from './css-font.js';
|
|
16
17
|
export type { SkiaApi, SkiaCanvas, SkiaFont, SkiaFontMetrics, SkiaFontMgr, SkiaModule, SkiaPaint, SkiaPath, SkiaRect, SkiaTypeface, } from './skia-api.js';
|
|
17
18
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/skia/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skia/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,YAAY,EACV,OAAO,EACP,UAAU,EACV,QAAQ,EACR,eAAe,EACf,WAAW,EACX,UAAU,EACV,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,YAAY,GACb,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skia/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,YAAY,EACV,OAAO,EACP,UAAU,EACV,QAAQ,EACR,eAAe,EACf,WAAW,EACX,UAAU,EACV,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,YAAY,GACb,MAAM,eAAe,CAAC"}
|
package/dist/skia/index.js
CHANGED
package/dist/skia/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skia/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skia/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/skia/skia-api.d.ts
CHANGED
|
@@ -82,6 +82,14 @@ export type SkiaTypeface = unknown;
|
|
|
82
82
|
export type SkiaFontMgr = {
|
|
83
83
|
/** Returns a typeface, or null when nothing matches and no fallback applies. */
|
|
84
84
|
matchFamilyStyle(name: string, style: unknown): SkiaTypeface | null;
|
|
85
|
+
/**
|
|
86
|
+
* The families this manager actually has, for the last-resort fallback.
|
|
87
|
+
*
|
|
88
|
+
* Optional because not every host exposes them, and because a manager that
|
|
89
|
+
* substitutes a default for an unknown family never needs them.
|
|
90
|
+
*/
|
|
91
|
+
countFamilies?(): number;
|
|
92
|
+
getFamilyName?(index: number): string;
|
|
85
93
|
};
|
|
86
94
|
/** The `Skia` object itself: Skia's own factory namespace. */
|
|
87
95
|
export type SkiaApi = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skia-api.d.ts","sourceRoot":"","sources":["../../src/skia/skia-api.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"skia-api.d.ts","sourceRoot":"","sources":["../../src/skia/skia-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skia-context.d.ts","sourceRoot":"","sources":["../../src/skia/skia-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EACV,UAAU,EAEV,UAAU,
|
|
1
|
+
{"version":3,"file":"skia-context.d.ts","sourceRoot":"","sources":["../../src/skia/skia-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EACV,UAAU,EAEV,UAAU,EAIX,MAAM,eAAe,CAAC;AAgFvB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,oFAAoF;IACpF,IAAI,EAAE,UAAU,CAAC;IACjB,4FAA4F;IAC5F,MAAM,EAAE,UAAU,CAAC;IACnB;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AA4dF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAKlE;AA8BD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,kBAAkB,GAC1B,gBAAgB,CAElB"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { parseCssFont } from './css-font.js';
|
|
2
2
|
/** CSS `font-weight: bold`, and the neutral weight, as Skia's enum spells them. */
|
|
3
3
|
const BOLD_WEIGHT = 700;
|
|
4
|
+
/**
|
|
5
|
+
* The middle of Skia's width axis (1 ultra-condensed … 9 ultra-expanded).
|
|
6
|
+
*
|
|
7
|
+
* Stated rather than omitted: see `matchTypeface`. A style missing this can
|
|
8
|
+
* match nothing at all.
|
|
9
|
+
*/
|
|
10
|
+
const NORMAL_WIDTH = 5;
|
|
4
11
|
const NORMAL_WEIGHT = 400;
|
|
5
12
|
/** The 2D default font, per the canvas spec. */
|
|
6
13
|
const DEFAULT_FONT = '10px sans-serif';
|
|
@@ -45,6 +52,8 @@ class SkiaDrawingContext {
|
|
|
45
52
|
this.stack = [];
|
|
46
53
|
/** Canvas connects an arc to the current point; a fresh path has none. */
|
|
47
54
|
this.hasCurrentPoint = false;
|
|
55
|
+
/** Resolved once per context: `undefined` not yet asked, `null` unavailable. */
|
|
56
|
+
this.families = undefined;
|
|
48
57
|
this.skia = options.skia;
|
|
49
58
|
this.target = options.canvas;
|
|
50
59
|
this.canvas = { width: options.width, height: options.height };
|
|
@@ -312,18 +321,75 @@ class SkiaDrawingContext {
|
|
|
312
321
|
this.fontCache.set(key, font);
|
|
313
322
|
return font;
|
|
314
323
|
}
|
|
324
|
+
/**
|
|
325
|
+
* The families this manager actually holds, lower-cased, resolved once.
|
|
326
|
+
*
|
|
327
|
+
* The list is the point. A matcher asked for a family it does not have can
|
|
328
|
+
* answer with a typeface that is **truthy and unusable** — measured on React
|
|
329
|
+
* Native: `matchFamilyStyle('sans-serif', …)` returned an object, a `Font`
|
|
330
|
+
* built on it reported five glyph ids for "Piano" and a total advance of
|
|
331
|
+
* zero, and every `fillText` in the renderer drew nothing. Asking the same
|
|
332
|
+
* manager for a name from its own list returned a typeface that measured
|
|
333
|
+
* correctly. So names are never guessed at the matcher any more; they are
|
|
334
|
+
* chosen from what it says it has.
|
|
335
|
+
*/
|
|
336
|
+
familyList(manager) {
|
|
337
|
+
if (this.families !== undefined)
|
|
338
|
+
return this.families;
|
|
339
|
+
this.families = null;
|
|
340
|
+
const count = manager.countFamilies?.();
|
|
341
|
+
const nameAt = manager.getFamilyName;
|
|
342
|
+
if (typeof count === 'number' && count > 0 && nameAt) {
|
|
343
|
+
const names = [];
|
|
344
|
+
for (let index = 0; index < count; index += 1) {
|
|
345
|
+
const name = nameAt.call(manager, index);
|
|
346
|
+
if (typeof name === 'string' && name.length > 0)
|
|
347
|
+
names.push(name);
|
|
348
|
+
}
|
|
349
|
+
if (names.length > 0)
|
|
350
|
+
this.families = names;
|
|
351
|
+
}
|
|
352
|
+
return this.families;
|
|
353
|
+
}
|
|
315
354
|
matchTypeface(family, bold, italic) {
|
|
355
|
+
/*
|
|
356
|
+
`width` is stated rather than left out: a style missing an axis can match
|
|
357
|
+
nothing at all on some matchers, and the cost of naming it is nil.
|
|
358
|
+
*/
|
|
359
|
+
const style = {
|
|
360
|
+
weight: bold ? BOLD_WEIGHT : NORMAL_WEIGHT,
|
|
361
|
+
width: NORMAL_WIDTH,
|
|
362
|
+
slant: italic ? this.skia.FontSlant.Italic : this.skia.FontSlant.Upright,
|
|
363
|
+
};
|
|
316
364
|
try {
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
365
|
+
const manager = this.skiaApi.FontMgr.System();
|
|
366
|
+
const available = this.familyList(manager);
|
|
367
|
+
/*
|
|
368
|
+
With a list, ask only for names on it: the requested family if the
|
|
369
|
+
manager has it, then the first of the usual faces it has, then simply
|
|
370
|
+
its first family. Without one — a host that does not enumerate — fall
|
|
371
|
+
back to guessing, which is what this did before and is better than
|
|
372
|
+
drawing nothing.
|
|
373
|
+
*/
|
|
374
|
+
const wanted = available
|
|
375
|
+
? familyCandidates(family)
|
|
376
|
+
.map(candidate => {
|
|
377
|
+
const lower = candidate.toLowerCase();
|
|
378
|
+
return available.find(name => name.toLowerCase() === lower);
|
|
379
|
+
})
|
|
380
|
+
.filter((name) => name !== undefined)
|
|
381
|
+
.concat(available[0] ? [available[0]] : [])
|
|
382
|
+
: familyCandidates(family);
|
|
383
|
+
for (const candidate of wanted) {
|
|
384
|
+
const typeface = manager.matchFamilyStyle(candidate, style);
|
|
385
|
+
if (typeface)
|
|
386
|
+
return typeface;
|
|
387
|
+
}
|
|
388
|
+
return null;
|
|
323
389
|
}
|
|
324
390
|
catch {
|
|
325
|
-
// No system font manager
|
|
326
|
-
//
|
|
391
|
+
// No system font manager at all: Skia's default face still draws
|
|
392
|
+
// something legible, which beats losing the frame.
|
|
327
393
|
return null;
|
|
328
394
|
}
|
|
329
395
|
}
|
|
@@ -349,6 +415,36 @@ class SkiaDrawingContext {
|
|
|
349
415
|
};
|
|
350
416
|
}
|
|
351
417
|
}
|
|
418
|
+
/**
|
|
419
|
+
* The families to try, in order, for one CSS family name.
|
|
420
|
+
*
|
|
421
|
+
* `sans-serif`, `serif`, `monospace` and `system-ui` are CSS **generics**, not
|
|
422
|
+
* font names: no system font manager has a family called "sans-serif". Every
|
|
423
|
+
* label this renderer draws asks for one of them — the track gutter, the
|
|
424
|
+
* measure numbers, the state badges — so every one of them missed.
|
|
425
|
+
*
|
|
426
|
+
* On the web that is invisible, because CanvasKit substitutes a default face
|
|
427
|
+
* for an unmatched family. React Native Skia does not: an unmatched family
|
|
428
|
+
* yields `Font(undefined, size)`, a font with no typeface, and `drawText` then
|
|
429
|
+
* draws **nothing**. The noteheads and clefs are paths and were unaffected, so
|
|
430
|
+
* the score looked right and every word on it was simply absent.
|
|
431
|
+
*
|
|
432
|
+
* The concrete names are the platforms' own UI faces — iOS/macOS first, then
|
|
433
|
+
* Android — and the empty name last, which is how a font manager is asked for
|
|
434
|
+
* whatever it considers default.
|
|
435
|
+
*/
|
|
436
|
+
const GENERIC_FAMILIES = {
|
|
437
|
+
'sans-serif': ['Helvetica Neue', 'Helvetica', 'Arial', 'Roboto'],
|
|
438
|
+
'system-ui': ['Helvetica Neue', 'Helvetica', 'Arial', 'Roboto'],
|
|
439
|
+
serif: ['Times New Roman', 'Georgia', 'Noto Serif'],
|
|
440
|
+
monospace: ['Menlo', 'Courier New', 'Roboto Mono'],
|
|
441
|
+
};
|
|
442
|
+
export function familyCandidates(family) {
|
|
443
|
+
const generic = GENERIC_FAMILIES[family.toLowerCase()];
|
|
444
|
+
// The name as written is always tried first: a real font called "Roboto"
|
|
445
|
+
// must not be routed through the generic list.
|
|
446
|
+
return generic ? [family, ...generic, ''] : [family, ''];
|
|
447
|
+
}
|
|
352
448
|
const DEGREES_PER_RADIAN = 180 / Math.PI;
|
|
353
449
|
const TAU = Math.PI * 2;
|
|
354
450
|
function toDegrees(radians) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skia-context.js","sourceRoot":"","sources":["../../src/skia/skia-context.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAS7C,mFAAmF;AACnF,MAAM,WAAW,GAAG,GAAG,CAAC;AACxB,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B,gDAAgD;AAChD,MAAM,YAAY,GAAG,iBAAiB,CAAC;AAEvC;;;;;;;;;GASG;AACH,MAAM,WAAW,GAAG,IAAI,OAAO,EAAiC,CAAC;AAEjE,SAAS,YAAY,CAAC,GAAW;IAC/B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC5C,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,OAAO,CAAC;AACjB,CAAC;AAYD,MAAM,QAAQ,GAAW,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAiBhE,SAAS,YAAY;IACnB,OAAO;QACL,MAAM,EAAE,EAAE,GAAG,QAAQ,EAAE;QACvB,SAAS,EAAE,SAAS;QACpB,WAAW,EAAE,SAAS;QACtB,SAAS,EAAE,CAAC;QACZ,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,CAAC;QACd,UAAU,EAAE,CAAC;QACb,WAAW,EAAE,kBAAkB;QAC/B,QAAQ,EAAE,EAAE;KACb,CAAC;AACJ,CAAC;AAkBD,MAAM,kBAAkB;IAgBtB,YAAY,OAA2B;QAV/B,UAAK,GAAU,YAAY,EAAE,CAAC;QAC9B,UAAK,GAAY,EAAE,CAAC;QAI5B,0EAA0E;QAClE,oBAAe,GAAG,KAAK,CAAC;QAK9B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QAC/D,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,0EAA0E;QAC1E,8BAA8B;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,yEAAyE;IAEzE,IAAI;QACF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACd,GAAG,IAAI,CAAC,KAAK;YACb,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAChC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;SACnC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAClC,IAAI,QAAQ;YAAE,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;IACtC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IAC9B,CAAC;IACD,IAAI,SAAS,CAAC,KAAsB;QAClC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;IAChC,CAAC;IACD,IAAI,WAAW,CAAC,KAAsB;QACpC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;IACjC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IAC9B,CAAC;IACD,IAAI,SAAS,CAAC,KAAa;QACzB,0EAA0E;QAC1E,mEAAmE;QACnE,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;YAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;IACxE,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC5B,CAAC;IACD,IAAI,OAAO,CAAC,KAAa;QACvB,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;IACD,IAAI,QAAQ,CAAC,KAAa;QACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;IACD,IAAI,IAAI,CAAC,KAAa;QACpB,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;IAChC,CAAC;IACD,IAAI,WAAW,CAAC,KAAa;QAC3B,0EAA0E;QAC1E,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;QACjC,CAAC;IACH,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;IAC/B,CAAC;IACD,IAAI,UAAU,CAAC,KAAa;QAC1B,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;IAChC,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;IAChC,CAAC;IACD,IAAI,WAAW,CAAC,KAAa;QAC3B,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;IACjC,CAAC;IAED,WAAW,CAAC,QAAkB;QAC5B,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,yEAAyE;IAEzE,SAAS,CAAC,CAAS,EAAE,CAAS;QAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC5B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,CAAS,EAAE,CAAS;QACxB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC5B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACT,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACT,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACT,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACX,CAAC;IAED,YAAY,CACV,CAAS,EACT,CAAS,EACT,CAAS,EACT,CAAS,EACT,CAAS,EACT,CAAS;QAET,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAC3C,CAAC;IAED,YAAY;QACV,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAClC,CAAC;IAED,yEAAyE;IAEjE,OAAO;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC;IAED,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED,SAAS;QACP,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,CAAS,EAAE,CAAS;QACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,CAAS,EAAE,CAAS;QACzB,8DAA8D;QAC9D,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,aAAa,CACX,IAAY,EACZ,IAAY,EACZ,IAAY,EACZ,IAAY,EACZ,CAAS,EACT,CAAS;QAET,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED,gBAAgB,CAAC,GAAW,EAAE,GAAW,EAAE,CAAS,EAAE,CAAS;QAC7D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED,GAAG,CACD,CAAS,EACT,CAAS,EACT,MAAc,EACd,UAAkB,EAClB,QAAgB,EAChB,gBAAgB,GAAG,KAAK;QAExB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAChC,CAAC,GAAG,MAAM,EACV,CAAC,GAAG,MAAM,EACV,MAAM,GAAG,CAAC,EACV,MAAM,GAAG,CAAC,CACX,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,SAAS,CACjB,IAAI,EACJ,SAAS,CAAC,UAAU,CAAC,EACrB,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAC1D,sEAAsE;QACtE,+CAA+C;QAC/C,CAAC,IAAI,CAAC,eAAe,CACtB,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED,IAAI,CAAC,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc;QACtD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9D,wEAAwE;QACxE,wDAAwD;QACxD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED,yEAAyE;IAEzE;;;;;;OAMG;IACK,WAAW,CAAC,IAAgB;QAClC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACnB,wEAAwE;QACxE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,EAAE,CAAC;QACP,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAEO,QAAQ,CAAC,KAAsB,EAAE,MAAe;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAE9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QACrC,IAAI,KAAK,GAAG,CAAC;YAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC;QAE1D,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC5C,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC3C,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YACrC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,KAAK,CAAC,aAAa,CACjB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAC3D,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,UAAU,CAAC,KAAgB,EAAE,KAAsB;QACzD,MAAM,GAAG,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1D,IAAI,CAAC;YACH,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QAAC,MAAM,CAAC;YACP,2CAA2C;QAC7C,CAAC;QACD,IAAI,CAAC;YACH,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,mDAAmD;QACrD,CAAC;IACH,CAAC;IAEO,SAAS;QACf,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAChC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO;YAAE,OAAO,SAAS,CAAC,KAAK,CAAC;QAC3D,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC,MAAM,CAAC;QAC7D,OAAO,SAAS,CAAC,IAAI,CAAC;IACxB,CAAC;IAEO,UAAU;QAChB,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QACjC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO;YAAE,OAAO,UAAU,CAAC,KAAK,CAAC;QAC7D,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO;YAAE,OAAO,UAAU,CAAC,KAAK,CAAC;QAC7D,OAAO,UAAU,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,IAAI;QACF,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,MAAM;QACJ,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,SAAS,CAAC,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc;QAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnC,2EAA2E;QAC3E,oDAAoD;QACpD,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC9C,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,yEAAyE;IAEjE,WAAW;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,SAAS,EAAE,MAAM,CAAC,CAAC;QAC9D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,aAAa,CAAC,MAAc,EAAE,IAAa,EAAE,MAAe;QAClE,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE;gBAC5D,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa;gBAC1C,KAAK,EAAE,MAAM;oBACX,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM;oBAC5B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO;aAChC,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,wEAAwE;YACxE,yDAAyD;YACzD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,IAAY,EAAE,CAAS,EAAE,CAAS;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAElC,0EAA0E;QAC1E,0EAA0E;QAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;QAElE,OAAO;YACL,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK;YAC3C,uBAAuB,EAAE,CAAC,MAAM,CAAC,CAAC;YAClC,wBAAwB,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;YAClD,qBAAqB,EAAE,CAAC,OAAO,CAAC,MAAM;YACtC,sBAAsB,EAAE,OAAO,CAAC,OAAO;SACxC,CAAC;IACJ,CAAC;CACF;AAED,MAAM,kBAAkB,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;AACzC,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAExB,SAAS,SAAS,CAAC,OAAe;IAChC,OAAO,OAAO,GAAG,kBAAkB,CAAC;AACtC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,OAAO,CACd,UAAkB,EAClB,QAAgB,EAChB,gBAAyB;IAEzB,MAAM,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;IACpC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,IAAI,KAAK,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC;QAC7B,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAClD,CAAC;IACD,IAAI,KAAK,IAAI,CAAC,GAAG;QAAE,OAAO,CAAC,GAAG,CAAC;IAC/B,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACpD,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAA2B;IAE3B,OAAO,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC"}
|
|
1
|
+
{"version":3,"file":"skia-context.js","sourceRoot":"","sources":["../../src/skia/skia-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type Track } from '@sudobility/music_types';
|
|
2
|
+
/** What one stave will draw before its first note. */
|
|
3
|
+
export type StaveHeader = {
|
|
4
|
+
clef: string | null;
|
|
5
|
+
/** The VexFlow key spec, or null when none is drawn (a drum staff, or no change). */
|
|
6
|
+
key: string | null;
|
|
7
|
+
/** The VexFlow time spec, or null when none is drawn. */
|
|
8
|
+
time: string | null;
|
|
9
|
+
};
|
|
10
|
+
/** The extra width `header` costs, in logical units. Zero when it draws nothing. */
|
|
11
|
+
export declare function staveHeaderWidth(header: StaveHeader): number;
|
|
12
|
+
/**
|
|
13
|
+
* What `track`'s measure at `measureIndex` will draw before its first note.
|
|
14
|
+
*
|
|
15
|
+
* These four conditions are `buildMeasureContent`'s, and deliberately so: this
|
|
16
|
+
* exists only to price what that will draw, and any difference between the two
|
|
17
|
+
* is either wasted space or a squeezed bar.
|
|
18
|
+
*/
|
|
19
|
+
export declare function staveHeaderFor(track: Track, measureIndex: number, isFirstInSystem: boolean): StaveHeader;
|
|
20
|
+
/**
|
|
21
|
+
* The header room a measure needs across every track drawn.
|
|
22
|
+
*
|
|
23
|
+
* The maximum, because `Stave.formatBegModifiers` aligns the whole column's
|
|
24
|
+
* note areas to the widest one — so a piano part in a heavily-signed key sets
|
|
25
|
+
* the indent for the flute beside it, and reserving only the flute's would
|
|
26
|
+
* squeeze both.
|
|
27
|
+
*/
|
|
28
|
+
export declare function headerWidthForMeasure(tracks: readonly Track[], measureIndex: number, isFirstInSystem: boolean): number;
|
|
29
|
+
//# sourceMappingURL=stave-header.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stave-header.d.ts","sourceRoot":"","sources":["../src/stave-header.ts"],"names":[],"mappings":"AAoCA,OAAO,EAGL,KAAK,KAAK,EACX,MAAM,yBAAyB,CAAC;AAIjC,sDAAsD;AACtD,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,qFAAqF;IACrF,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,yDAAyD;IACzD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,CAAC;AAkBF,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAc5D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,OAAO,GACvB,WAAW,CAyBb;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,KAAK,EAAE,EACxB,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,OAAO,GACvB,MAAM,CAQR"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How much room a measure's stave spends before its first note.
|
|
3
|
+
*
|
|
4
|
+
* A stave draws its clef, key signature and time signature between the barline
|
|
5
|
+
* and the first notehead, and the layout has to reserve that room *before*
|
|
6
|
+
* anything is drawn — it is what decides how many measures fit on a line and
|
|
7
|
+
* how wide each one's note area ends up.
|
|
8
|
+
*
|
|
9
|
+
* This used to be one constant, `SYSTEM_HEADER_WIDTH = 90`, added to whichever
|
|
10
|
+
* measure began a system. It was wrong in two directions and both were
|
|
11
|
+
* visible:
|
|
12
|
+
*
|
|
13
|
+
* - **A key signature's width scales with its accidentals.** Measured: a bare
|
|
14
|
+
* clef and 4/4 costs 60 logical units, C major with them 60, and C# major —
|
|
15
|
+
* seven sharps — costs 147. So the constant over-reserved by 30 in the
|
|
16
|
+
* commonest key and under-reserved by 57 in the sharpest, squeezing the first
|
|
17
|
+
* bar of every system in any heavily-signed key.
|
|
18
|
+
* - **A change mid-system got nothing at all**, because the constant was tied
|
|
19
|
+
* to being first in a system rather than to what the bar actually draws. A
|
|
20
|
+
* seven-sharp key change at bar 2 collapsed that bar's note area from 180
|
|
21
|
+
* units to 103 — its notes crammed into little over half the room the bars
|
|
22
|
+
* either side had, for no reason a reader could see. The same held for a
|
|
23
|
+
* mid-system clef change and a mid-piece time-signature change.
|
|
24
|
+
*
|
|
25
|
+
* So it is measured instead, from VexFlow, using exactly the rules
|
|
26
|
+
* `buildMeasureContent` applies when it decides what to add to a stave. The
|
|
27
|
+
* two must agree — reserving room for a modifier that is not drawn wastes it,
|
|
28
|
+
* and drawing one there is no room for is the bug above — which is why the
|
|
29
|
+
* predicates are shared rather than restated, and why `stave-header.test.ts`
|
|
30
|
+
* pins the two against each other.
|
|
31
|
+
*
|
|
32
|
+
* Memoized on the modifiers themselves. A score has a handful of distinct
|
|
33
|
+
* (clef, key, time) combinations however many bars it has, and `computeLayout`
|
|
34
|
+
* runs on every render.
|
|
35
|
+
*/
|
|
36
|
+
import { Stave } from 'vexflow';
|
|
37
|
+
import { clefChangesAt, effectiveClef, } from '@sudobility/music_types';
|
|
38
|
+
import { keySignatureToVexSpec } from './convert.js';
|
|
39
|
+
import { sameKeySignature, sameTimeSignature } from './measure-content.js';
|
|
40
|
+
/**
|
|
41
|
+
* The width a bare stave already spends, which is not part of any header.
|
|
42
|
+
*
|
|
43
|
+
* `Stave` insets its own note area slightly whatever it carries, so the cost of
|
|
44
|
+
* a header is the difference from this rather than the absolute note start.
|
|
45
|
+
* Read from VexFlow rather than written down, for the reason the rest of this
|
|
46
|
+
* file exists.
|
|
47
|
+
*/
|
|
48
|
+
let bareWidth = null;
|
|
49
|
+
function bareNoteStartX() {
|
|
50
|
+
bareWidth ?? (bareWidth = new Stave(0, 0, 100).getNoteStartX());
|
|
51
|
+
return bareWidth;
|
|
52
|
+
}
|
|
53
|
+
const widthCache = new Map();
|
|
54
|
+
/** The extra width `header` costs, in logical units. Zero when it draws nothing. */
|
|
55
|
+
export function staveHeaderWidth(header) {
|
|
56
|
+
if (!header.clef && !header.key && !header.time)
|
|
57
|
+
return 0;
|
|
58
|
+
const cacheKey = `${header.clef ?? ''}|${header.key ?? ''}|${header.time ?? ''}`;
|
|
59
|
+
const cached = widthCache.get(cacheKey);
|
|
60
|
+
if (cached !== undefined)
|
|
61
|
+
return cached;
|
|
62
|
+
// Wide enough that the modifiers are never the thing constraining the stave.
|
|
63
|
+
const stave = new Stave(0, 0, 500);
|
|
64
|
+
if (header.clef)
|
|
65
|
+
stave.addClef(header.clef);
|
|
66
|
+
if (header.key)
|
|
67
|
+
stave.addKeySignature(header.key);
|
|
68
|
+
if (header.time)
|
|
69
|
+
stave.addTimeSignature(header.time);
|
|
70
|
+
const width = Math.max(0, stave.getNoteStartX() - bareNoteStartX());
|
|
71
|
+
widthCache.set(cacheKey, width);
|
|
72
|
+
return width;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* What `track`'s measure at `measureIndex` will draw before its first note.
|
|
76
|
+
*
|
|
77
|
+
* These four conditions are `buildMeasureContent`'s, and deliberately so: this
|
|
78
|
+
* exists only to price what that will draw, and any difference between the two
|
|
79
|
+
* is either wasted space or a squeezed bar.
|
|
80
|
+
*/
|
|
81
|
+
export function staveHeaderFor(track, measureIndex, isFirstInSystem) {
|
|
82
|
+
const measure = track.measures[measureIndex];
|
|
83
|
+
if (!measure)
|
|
84
|
+
return { clef: null, key: null, time: null };
|
|
85
|
+
const previous = track.measures[measureIndex - 1];
|
|
86
|
+
const clef = effectiveClef(track, measureIndex);
|
|
87
|
+
const isPercussion = clef === 'percussion';
|
|
88
|
+
const drawsClef = isFirstInSystem || clefChangesAt(track, measureIndex);
|
|
89
|
+
// A drum staff has no key: its lines are instruments, not pitches.
|
|
90
|
+
const drawsKey = !isPercussion &&
|
|
91
|
+
(isFirstInSystem ||
|
|
92
|
+
!previous ||
|
|
93
|
+
!sameKeySignature(previous.keySignature, measure.keySignature));
|
|
94
|
+
const drawsTime = !previous ||
|
|
95
|
+
!sameTimeSignature(previous.timeSignature, measure.timeSignature);
|
|
96
|
+
return {
|
|
97
|
+
clef: drawsClef ? clef : null,
|
|
98
|
+
key: drawsKey ? keySignatureToVexSpec(measure.keySignature) : null,
|
|
99
|
+
time: drawsTime
|
|
100
|
+
? `${measure.timeSignature.numerator}/${measure.timeSignature.denominator}`
|
|
101
|
+
: null,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* The header room a measure needs across every track drawn.
|
|
106
|
+
*
|
|
107
|
+
* The maximum, because `Stave.formatBegModifiers` aligns the whole column's
|
|
108
|
+
* note areas to the widest one — so a piano part in a heavily-signed key sets
|
|
109
|
+
* the indent for the flute beside it, and reserving only the flute's would
|
|
110
|
+
* squeeze both.
|
|
111
|
+
*/
|
|
112
|
+
export function headerWidthForMeasure(tracks, measureIndex, isFirstInSystem) {
|
|
113
|
+
let widest = 0;
|
|
114
|
+
for (const track of tracks) {
|
|
115
|
+
const header = staveHeaderFor(track, measureIndex, isFirstInSystem);
|
|
116
|
+
const width = staveHeaderWidth(header);
|
|
117
|
+
if (width > widest)
|
|
118
|
+
widest = width;
|
|
119
|
+
}
|
|
120
|
+
return widest;
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=stave-header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stave-header.js","sourceRoot":"","sources":["../src/stave-header.ts"],"names":[],"mappings":"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"}
|
package/dist/test/fake-skia.d.ts
CHANGED
|
@@ -77,5 +77,16 @@ export declare function mapPoint(matrix: number[], x: number, y: number): {
|
|
|
77
77
|
x: number;
|
|
78
78
|
y: number;
|
|
79
79
|
};
|
|
80
|
-
|
|
80
|
+
/**
|
|
81
|
+
* Options for the fake, all defaulted.
|
|
82
|
+
*
|
|
83
|
+
* `families` makes the fake behave like React Native's real font manager,
|
|
84
|
+
* which **answers for families it does not hold** — see `matchTypeface`. Given
|
|
85
|
+
* a list, the fake enumerates it and reports which name was actually asked
|
|
86
|
+
* for, so a test can assert that the context never guesses.
|
|
87
|
+
*/
|
|
88
|
+
export type FakeSkiaOptions = {
|
|
89
|
+
families?: readonly string[];
|
|
90
|
+
};
|
|
91
|
+
export declare function createFakeSkia(options?: FakeSkiaOptions): FakeSkia;
|
|
81
92
|
//# sourceMappingURL=fake-skia.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fake-skia.d.ts","sourceRoot":"","sources":["../../src/test/fake-skia.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EACV,UAAU,EAGV,UAAU,EAGV,QAAQ,EACT,MAAM,qBAAqB,CAAC;AAE7B,4DAA4D;AAC5D,MAAM,MAAM,eAAe,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAElE,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAChB;IACE,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,GACD;IAAE,EAAE,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GAC3E;IACE,EAAE,EAAE,UAAU,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEN,MAAM,MAAM,aAAa,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAE5E,qFAAqF;AACrF,MAAM,MAAM,eAAe,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAEjE,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG;IAClC,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,YAAY,EAAE,eAAe,EAAE,CAAC;CACjC,CAAC;AAUF;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,MAAM,EAAE,EAChB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAK1B;AAyBD,wBAAgB,cAAc,
|
|
1
|
+
{"version":3,"file":"fake-skia.d.ts","sourceRoot":"","sources":["../../src/test/fake-skia.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EACV,UAAU,EAGV,UAAU,EAGV,QAAQ,EACT,MAAM,qBAAqB,CAAC;AAE7B,4DAA4D;AAC5D,MAAM,MAAM,eAAe,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAElE,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAChB;IACE,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,GACD;IAAE,EAAE,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GAC3E;IACE,EAAE,EAAE,UAAU,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEN,MAAM,MAAM,aAAa,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAE5E,qFAAqF;AACrF,MAAM,MAAM,eAAe,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAEjE,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG;IAClC,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,YAAY,EAAE,eAAe,EAAE,CAAC;CACjC,CAAC;AAUF;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,MAAM,EAAE,EAChB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAK1B;AAyBD;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,GAAE,eAAoB,GAAG,QAAQ,CA4MtE"}
|
package/dist/test/fake-skia.js
CHANGED
|
@@ -43,7 +43,7 @@ function multiply(m, n) {
|
|
|
43
43
|
const ADVANCE_RATIO = 0.5;
|
|
44
44
|
const ASCENT_RATIO = 0.7;
|
|
45
45
|
const DESCENT_RATIO = 0.2;
|
|
46
|
-
export function createFakeSkia() {
|
|
46
|
+
export function createFakeSkia(options = {}) {
|
|
47
47
|
const draws = [];
|
|
48
48
|
const fontRequests = [];
|
|
49
49
|
let matrix = [...IDENTITY];
|
|
@@ -209,8 +209,15 @@ export function createFakeSkia() {
|
|
|
209
209
|
matchFamilyStyle: (name, style) => {
|
|
210
210
|
fontRequests.push({ family: name, style });
|
|
211
211
|
const weight = style?.weight;
|
|
212
|
+
// Answers for anything, as the real one does.
|
|
212
213
|
return { family: name, bold: (weight ?? 400) >= 600 };
|
|
213
214
|
},
|
|
215
|
+
...(options.families
|
|
216
|
+
? {
|
|
217
|
+
countFamilies: () => options.families.length,
|
|
218
|
+
getFamilyName: (index) => options.families[index] ?? '',
|
|
219
|
+
}
|
|
220
|
+
: {}),
|
|
214
221
|
}),
|
|
215
222
|
},
|
|
216
223
|
Color: color => color,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fake-skia.js","sourceRoot":"","sources":["../../src/test/fake-skia.ts"],"names":[],"mappings":"AAmEA;;;;;GAKG;AACH,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAEpC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,QAAQ,CACtB,MAAgB,EAChB,CAAS,EACT,CAAS;IAET,OAAO;QACL,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QAC5C,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;KAC7C,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,SAAS,QAAQ,CAAC,CAAW,EAAE,CAAW;IACxC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,OAAO;QACL,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;QACjB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;QACjB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;QACtB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;QACjB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;QACjB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;KACvB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,YAAY,GAAG,GAAG,CAAC;AACzB,MAAM,aAAa,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"fake-skia.js","sourceRoot":"","sources":["../../src/test/fake-skia.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { LayoutPlan } from './layout.js';
|
|
2
|
+
export type GutterPoint = {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* The track whose gutter cell contains `point`, or `null` — outside the
|
|
8
|
+
* gutter's width, or in the gap between two staves.
|
|
9
|
+
*
|
|
10
|
+
* Walks every system, not just the topmost: the gutter repeats down the page,
|
|
11
|
+
* so a click can land on any of them.
|
|
12
|
+
*/
|
|
13
|
+
export declare function trackIdAtGutterPoint(plan: LayoutPlan, zoom: number, scrollTop: number, point: GutterPoint): string | null;
|
|
14
|
+
//# sourceMappingURL=track-gutter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"track-gutter.d.ts","sourceRoot":"","sources":["../src/track-gutter.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,MAAM,WAAW,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,WAAW,GACjB,MAAM,GAAG,IAAI,CAmBf"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hit-testing the canvas track-info gutter. Pure over `LayoutPlan` — no DOM, no
|
|
3
|
+
* store — so the coordinate maths is unit-testable.
|
|
4
|
+
*
|
|
5
|
+
* **Viewport coordinates, not content coordinates.** The renderer pins the
|
|
6
|
+
* gutter to the viewport's left edge (see `drawTrackInfoGutter`), because in
|
|
7
|
+
* continuous mode a gutter in content space would scroll out of view. Every
|
|
8
|
+
* other hit test in the editor works in content coordinates; this one is the
|
|
9
|
+
* exception, and passing it content coordinates would put the hit region in the
|
|
10
|
+
* right place only at scroll position zero.
|
|
11
|
+
*/
|
|
12
|
+
import { TRACK_INFO_WIDTH } from './layout.js';
|
|
13
|
+
/**
|
|
14
|
+
* The track whose gutter cell contains `point`, or `null` — outside the
|
|
15
|
+
* gutter's width, or in the gap between two staves.
|
|
16
|
+
*
|
|
17
|
+
* Walks every system, not just the topmost: the gutter repeats down the page,
|
|
18
|
+
* so a click can land on any of them.
|
|
19
|
+
*/
|
|
20
|
+
export function trackIdAtGutterPoint(plan, zoom, scrollTop, point) {
|
|
21
|
+
if (point.x < 0 || point.x > TRACK_INFO_WIDTH * zoom)
|
|
22
|
+
return null;
|
|
23
|
+
// Back into the plan's logical, unscrolled space.
|
|
24
|
+
const logicalY = (point.y + scrollTop) / zoom;
|
|
25
|
+
for (const system of plan.systems) {
|
|
26
|
+
const measureIndex = system.measureIndices[0];
|
|
27
|
+
for (const trackLayout of plan.trackLayouts) {
|
|
28
|
+
const box = trackLayout.measures.find(m => m.measureIndex === measureIndex)?.box;
|
|
29
|
+
if (!box)
|
|
30
|
+
continue;
|
|
31
|
+
if (logicalY >= box.y && logicalY < box.y + box.height)
|
|
32
|
+
return trackLayout.track.id;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=track-gutter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"track-gutter.js","sourceRoot":"","sources":["../src/track-gutter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAK/C;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAgB,EAChB,IAAY,EACZ,SAAiB,EACjB,KAAkB;IAElB,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,gBAAgB,GAAG,IAAI;QAAE,OAAO,IAAI,CAAC;IAElE,kDAAkD;IAClD,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC;IAE9C,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAC9C,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5C,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CACnC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,YAAY,CACrC,EAAE,GAAG,CAAC;YACP,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,IAAI,QAAQ,IAAI,GAAG,CAAC,CAAC,IAAI,QAAQ,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM;gBACpD,OAAO,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sudobility/music_drawing",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.25",
|
|
4
4
|
"description": "Canvas score rendering for Moosiac: layout, VexFlow drawing and the paint loop.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -44,11 +44,11 @@
|
|
|
44
44
|
"vexflow": "^4.2.5"
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
47
|
-
"@sudobility/music_types": "^0.13.
|
|
47
|
+
"@sudobility/music_types": "^0.13.16"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@eslint/js": "^9.38.0",
|
|
51
|
-
"@sudobility/music_types": "^0.13.
|
|
51
|
+
"@sudobility/music_types": "^0.13.16",
|
|
52
52
|
"@sudobility/types": "^1.9.67",
|
|
53
53
|
"@tonejs/midi": "^2.0.28",
|
|
54
54
|
"@types/jsdom": "^30.0.0",
|