Merge pull request #33330 from bneumann/master

Updated vexflow to the latest version
This commit is contained in:
Jesse Trinity
2019-02-25 16:29:12 -08:00
committed by GitHub
+56 -21
View File
@@ -1,9 +1,10 @@
// Type definitions for VexFlow v1.2.85
// Type definitions for VexFlow v1.2.88
// Project: http://vexflow.com
// Definitions by: Roman Quiring <https://github.com/rquiring>
// Sebastian Haas <https://github.com/sebastianhaas>
// Basti Hoffmann <https://github.com/bohoffi>
// Simon Schmid <https://github.com/sschmidTU>
// Benjamin Giesinger <https://github.com/bneumann>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
//inconsistent namespace: this is a helper funtion from tables.js and should not pollute the global namespace!
@@ -54,8 +55,8 @@ declare namespace Vex {
beginPath() : IRenderContext;
moveTo(x : number, y : number) : IRenderContext;
lineTo(x : number, y : number) : IRenderContext;
bezierCurveToTo(x1 : number, y1 : number, x2 : number, y2 : number, x : number, y : number) : IRenderContext;
quadraticCurveToTo(x1 : number, y1 : number, x2 : number, y2 : number) : IRenderContext;
bezierCurveTo(x1 : number, y1 : number, x2 : number, y2 : number, x : number, y : number) : IRenderContext;
quadraticCurveTo(x1 : number, y1 : number, x2 : number, y2 : number) : IRenderContext;
arc(x : number, y : number, radius : number, startAngle : number, endAngle : number, antiClockwise : boolean) : IRenderContext;
glow() : IRenderContext;
fill() : IRenderContext;
@@ -103,6 +104,7 @@ declare namespace Vex {
const STAVE_LINE_THICKNESS : number;
const TIME4_4 : {num_beats : number, beat_value : number, resolution : number};
const unicode : {[name : string] : string}; //inconsistent API: this should be private and have a wrapper function like the other tables
const DEFAULT_NOTATION_FONT_SCALE: number;
function clefProperties(clef : string) : {line_shift : number};
function keyProperties(key : string, clef : string, params : {octave_shift? : number}) : {key : string, octave : number, line : number, int_value : number, accidental : string, code : number, stroke : number, shift_right : number, displaced : boolean};
function integerToNote(integer : number) : string;
@@ -211,8 +213,9 @@ declare namespace Vex {
drawRepeatBar(stave : Stave, x : number, begin : boolean) : void;
}
class Beam {
class Beam {
constructor(notes : StemmableNote[], auto_stem? : boolean);
setStyle(style : {shadowColor? : string, shadowBlur? : string, fillStyle? : string, strokeStyle? : string}) : Beam;
setContext(context : IRenderContext) : Beam;
getNotes() : StemmableNote[];
getBeamCount() : number;
@@ -275,8 +278,8 @@ declare namespace Vex {
beginPath() : CanvasContext;
moveTo(x : number, y : number) : CanvasContext;
lineTo(x : number, y : number) : CanvasContext;
bezierCurveToTo(x1 : number, y1 : number, x2 : number, y2 : number, x : number, y : number) : CanvasContext;
quadraticCurveToTo(x1 : number, y1 : number, x2 : number, y2 : number) : CanvasContext;
bezierCurveTo(x1 : number, y1 : number, x2 : number, y2 : number, x : number, y : number) : CanvasContext;
quadraticCurveTo(x1 : number, y1 : number, x2 : number, y2 : number) : CanvasContext;
arc(x : number, y : number, radius : number, startAngle : number, endAngle : number, antiClockwise : boolean) : CanvasContext;
glow() : CanvasContext;
fill() : CanvasContext;
@@ -438,8 +441,9 @@ declare namespace Vex {
}
class FretHandFinger extends Modifier {
constructor(number : number);
constructor(number : number|string);
static format(nums : FretHandFinger[], state : {left_shift : number, right_shift : number, text_line : number}) : void;
finger: number|string;
getNote() : Note;
setNote(note : Note) : FretHandFinger;
getIndex() : number;
@@ -488,11 +492,16 @@ declare namespace Vex {
class GraceNote extends StaveNote {
constructor(note_struct : {slash? : boolean, type? : string, dots? : number, duration : string, clef? : string, keys : string[], octave_shift? : number, auto_stem? : boolean, stem_direction? : number});
static LEDGER_LINE_OFFSET : number;
getStemExtension() : number;
getCategory() : string;
draw() : void;
}
namespace GraceNote {
const SCALE : number;
}
class GraceNoteGroup extends Modifier {
//TODO remove the following lines once TypeScript allows subclass overrides with type changes or type inconsistencies mentioned below are fixed
setWidth(width : number) : Modifier;
@@ -621,7 +630,8 @@ declare namespace Vex {
getTickMultiplier() : Fraction;
applyTickMultiplier(numerator : number, denominator : number) : void;
setDuration(duration : Fraction) : void;
preFormatted : boolean;
constructor(note_struct : {type? : string, dots? : number, duration : string});
getPlayNote() : any;
setPlayNote(note : any) : Note;
@@ -757,8 +767,8 @@ declare namespace Vex {
beginPath() : RaphaelContext;
moveTo(x : number, y : number) : RaphaelContext;
lineTo(x : number, y : number) : RaphaelContext;
bezierCurveToTo(x1 : number, y1 : number, x2 : number, y2 : number, x : number, y : number) : RaphaelContext;
quadraticCurveToTo(x1 : number, y1 : number, x : number, y : number) : RaphaelContext; //inconsistent name: x, y -> x2, y2
bezierCurveTo(x1 : number, y1 : number, x2 : number, y2 : number, x : number, y : number) : RaphaelContext;
quadraticCurveTo(x1 : number, y1 : number, x : number, y : number) : RaphaelContext; //inconsistent name: x, y -> x2, y2
arc(x : number, y : number, radius : number, startAngle : number, endAngle : number, antiClockwise : boolean) : RaphaelContext;
glow() : {width : number, fill : boolean, opacity : number, offsetx : number, offsety : number, color : string}; //inconsistent type : Object -> RaphaelContext
fill() : RaphaelContext;
@@ -805,6 +815,7 @@ declare namespace Vex {
class Stave {
constructor(x : number, y : number, width : number, options? : {vertical_bar_width? : number, glyph_spacing_px? : number, num_lines? : number, fill_style? : string, spacing_between_lines_px? : number, space_above_staff_ln? : number, space_below_staff_ln? : number, top_text_position? : number});
options: {vertical_bar_width? : number, glyph_spacing_px? : number, num_lines? : number, fill_style? : string, left_bar? : boolean, right_bar? : boolean, spacing_between_lines_px? : number, space_above_staff_ln? : number, space_below_staff_ln? : number, top_text_position? : number};
resetLines() : void;
setNoteStartX(x : number) : Stave;
getNoteStartX() : number;
@@ -827,7 +838,7 @@ declare namespace Vex {
setRepetitionTypeRight(type : Repetition.type, y : number) : Stave;
setVoltaType(type : Volta.type, number_t : number, y : number) : Stave;
setSection(section : string, y : number) : Stave;
setTempo(tempo : {name? : string, duration : string, dots : number, bpm : number}, y : number) : Stave;
setTempo(tempo : {name? : string, duration : string, dots : boolean, bpm : number}, y : number) : Stave;
setText(text : string, position : Modifier.Position, options? : {shift_x? : number, shift_y? : number, justification? : TextNote.Justification}) : Stave;
getHeight() : number;
getSpacingBetweenLines() : number;
@@ -858,10 +869,15 @@ declare namespace Vex {
getConfigForLines() : {visible : boolean}[];
setConfigForLine(line_number : number, line_config : {visible : boolean}) : Stave;
setConfigForLines(lines_configuration : {visible : boolean}[]) : Stave;
getModifiers(position? : number, category? : string) : StaveModifier[];
}
class StaveConnector {
constructor(top_stave : Stave, bottom_stave : Stave);
top_stave : Stave;
bottom_stave : Stave;
thickness : number;
x_shift : number;
setContext(ctx : IRenderContext) : StaveConnector;
setType(type : StaveConnector.type) : StaveConnector;
setText(text : string, text_options? : {shift_x? : number, shift_y? : number}) : StaveConnector;
@@ -918,6 +934,9 @@ declare namespace Vex {
addToStaveEnd(stave : Stave, firstGlyph : boolean) : StaveModifier;
addModifier() : void;
addEndModifier() : void;
getPosition() : number;
getWidth() : number;
getPadding(index: number) : number;
}
namespace StaveModifier {
@@ -929,10 +948,13 @@ declare namespace Vex {
//TODO remove the following lines once TypeScript allows subclass overrides with type changes and/or inconsistencies mentioned below are fixed
buildStem() : StemmableNote;
setStave(stave : Stave) : Note;
addModifier(modifier : Modifier, index? : number) : Note;
//TODO: vexflow actualy managed to have Note use modifier, index and stavenote index,modifier. To use the function in
// Typescript we need to allow both. The name is the correct type :(
addModifier(index : any, modifier? : any) : Note;
getModifierStartXY() : {x : number, y : number};
getDots() : number;
x_shift: number;
constructor(note_struct : {type? : string, dots? : number, duration : string, clef? : string, keys : string[], octave_shift? : number, auto_stem? : boolean, stem_direction? : number});
static DEBUG : boolean;
static format(notes : StaveNote[] , state : {left_shift : number, right_shift : number, text_line : number}) : boolean;
@@ -959,11 +981,11 @@ declare namespace Vex {
getLineForRest() : number;
getModifierStartXY(position : Modifier.Position, index : number) : {x : number, y : number};
setStyle(style : {shadowColor? : string, shadowBlur? : string, fillStyle? : string, strokeStyle? : string}) : void; // inconsistent type: void -> StaveNote
setStemStyle(style : {shadowColor? : string, shadowBlur? : string, fillStyle? : string, strokeStyle? : string}) : void;
setKeyStyle(index : number, style : {shadowColor? : string, shadowBlur? : string, fillStyle? : string, strokeStyle? : string}) : StaveNote;
setKeyLine(index : number, line : number) : StaveNote;
getKeyLine(index : number) : number;
addToModifierContext(mContext : ModifierContext) : StaveNote;
addModifier(index : number, modifier : Modifier) : StaveNote;
addAccidental(index : number, accidental : Accidental) : StaveNote;
addArticulation(index : number, articulation : Articulation) : StaveNote;
addAnnotation(index : number, annotation : Annotation) : StaveNote;
@@ -1084,6 +1106,9 @@ declare namespace Vex {
constructor(note_struct : {type? : string, dots? : number, duration : string});
static DEBUG : boolean;
flag: Glyph;
getAttribute(attr : string) : any;
setFlagStyle(style_struct : {shadowColor? : string, shadowBlur? : string, fillStyle? : string, strokeStyle? : string}) : void;
getStem() : Stem;
setStem(stem : Stem) : StemmableNote;
buildStem() : StemmableNote;
@@ -1108,8 +1133,11 @@ declare namespace Vex {
//TODO remove the following lines once TypeScript allows subclass overrides with type changes
setNote(note : Note) : StringNumber;
constructor(number : number);
// actually this is not really consistent in the vexflow code "ctx.measureText(this.string_number).width" looks
// like it is a string. But from the use of it it might be a number ?!
constructor(number : number|string);
static format(nums : StringNumber[], state : {left_shift : number, right_shift : number, text_line : number}) : boolean;
string_number : number|string;
getNote() : Note;
setNote(note : StemmableNote) : StringNumber;
getIndex() : number;
@@ -1130,7 +1158,7 @@ declare namespace Vex {
}
class Stroke extends Modifier {
constructor(type : Stroke.Type, options : {all_voices? : boolean});
constructor(type : Stroke.Type, options? : {all_voices? : boolean});
static format(strokes : Stroke[], state : {left_shift : number, right_shift : number, text_line : number}) : boolean;
getPosition() : Modifier.Position;
addEndNote(note : Note) : Stroke;
@@ -1138,14 +1166,18 @@ declare namespace Vex {
}
namespace Stroke {
const enum Type {BRUSH_DOWN = 1, BRUSH_UP, ROLL_DOWN, ROLL_UP, RASQUEDO_DOWN, RASQUEDO_UP}
const enum Type {BRUSH_DOWN = 1, BRUSH_UP, ROLL_DOWN, ROLL_UP, RASQUEDO_DOWN, RASQUEDO_UP, ARPEGGIO_DIRECTIONLESS}
const CATEGORY : string;
}
class SVGContext implements IRenderContext {
constructor(element : HTMLElement);
svg: SVGElement;
state: any;
attributes: any;
lineWidth: number;
iePolyfill() : boolean;
setFont(family : string, size : number, weight? : number) : SVGContext;
setFont(family : string, size : number, weight? : number|string) : SVGContext;
setRawFont(font : string) : SVGContext;
setFillStyle(style : string) : SVGContext;
setBackgroundFillStyle(style : string) : SVGContext;
@@ -1165,8 +1197,8 @@ declare namespace Vex {
beginPath() : SVGContext;
moveTo(x : number, y : number) : SVGContext;
lineTo(x : number, y : number) : SVGContext;
bezierCurveToTo(x1 : number, y1 : number, x2 : number, y2 : number, x : number, y : number) : SVGContext;
quadraticCurveToTo(x1 : number, y1 : number, x : number, y : number) : SVGContext; //inconsistent: x, y -> x2, y2
bezierCurveTo(x1 : number, y1 : number, x2 : number, y2 : number, x : number, y : number) : SVGContext;
quadraticCurveTo(x1 : number, y1 : number, x : number, y : number) : SVGContext; //inconsistent: x, y -> x2, y2
arc(x : number, y : number, radius : number, startAngle : number, endAngle : number, antiClockwise : boolean) : SVGContext;
closePath() : SVGContext;
glow() : SVGContext;
@@ -1236,6 +1268,9 @@ declare namespace Vex {
class TextBracket {
constructor(bracket_data : {start : Note, stop : Note, text? : string, superscript? : string, position? : TextBracket.Positions});
static DEBUG : boolean;
start : Note;
stop : Note;
position : TextBracket.Positions;
applyStyle(context : IRenderContext) : TextBracket;
setDashed(dashed : boolean, dash? : number[]) : TextBracket;
setFont(font : {family : string, size : number, weight : string}) : TextBracket;
@@ -1372,7 +1407,7 @@ declare namespace Vex {
}
class Tuplet {
constructor(notes : StaveNote[], options? : {num_notes? : number, beats_occupied? : number});
constructor(notes : StaveNote[], options? : {location? : number, bracketed? : boolean, ratioed : boolean, num_notes? : number, notes_occupied? : number, y_offset? : number});
attach() : void;
detach() : void;
setContext(context : IRenderContext) : Tuplet;