UNPKG

@stringsync/vexml

Version:

MusicXML to Vexflow

36 lines (35 loc) 1.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Fragment = void 0; const part_1 = require("./part"); const contexts_1 = require("./contexts"); class Fragment { config; log; signature; parts; constructor(config, log, signature, parts) { this.config = config; this.log = log; this.signature = signature; this.parts = parts; } static create(config, log, signature, events, partIds) { const parts = partIds.map((partId) => part_1.Part.create(config, log, partId, signature, events.filter((e) => e.partId === partId))); return new Fragment(config, log, signature, parts); } getSignature() { return this.signature; } parse(ctx) { const fragmentCtx = new contexts_1.FragmentContext(ctx, this.signature); return { type: 'fragment', kind: 'musical', minWidth: null, signature: this.signature.asFragmentSignature().parse(), parts: this.parts.map((part) => part.parse(fragmentCtx)), }; } } exports.Fragment = Fragment;