UNPKG

@stringsync/vexml

Version:

MusicXML to Vexflow

27 lines (26 loc) 1.25 kB
export class Defaults { element; constructor(element) { this.element = element; } /** Returns stave layouts of the defaults element. */ getStaveLayouts() { return this.element.all('staff-layout').map((element) => ({ staveNumber: element.attr('number').withDefault(1).int(), staveDistance: element.first('staff-distance')?.content().withDefault(0).int() ?? null, })); } /** Returns system layouts of the defaults element. */ getSystemLayout() { const leftMargin = this.element.first('left-margin')?.content().withDefault(0) ?? null; const rightMargin = this.element.first('right-margin')?.content().withDefault(0) ?? null; const topSystemDistance = this.element.first('top-system-distance')?.content().withDefault(0) ?? null; const systemDistance = this.element.first('system-distance')?.content().withDefault(0) ?? null; return { leftMargin: leftMargin ? leftMargin.int() : null, rightMargin: rightMargin ? rightMargin.int() : null, topSystemDistance: topSystemDistance ? topSystemDistance.int() : null, systemDistance: systemDistance ? systemDistance.int() : null, }; } }