@stringsync/vexml
Version:
MusicXML to Vexflow
36 lines (35 loc) • 1.13 kB
JavaScript
;
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;