1// abc2svg - ABC to SVG translator
2// @source: https://chiselapp.com/user/moinejf/repository/abc2svg
3// Copyright (C) 2014-2019 Jean-Francois Moine - LGPL3+
4//soloffs.js-module to set the X offset of some elements at start of music line
5abc2svg.soloffs={set_fmt:function(of,cmd,parm){if(cmd=="soloffs"){var i,v,C=abc2svg.C,soloffs=this.cfmt().soloffs={}
6parm=parm.split(/\s+/)
7while(parm.length){i=parm.shift().split('=')
8v=Number(i[1])
9if(isNaN(v))
10continue
11switch(i[0]){case'part':soloffs[C.PART]=v+10
12break
13case'tempo':soloffs[C.TEMPO]=v+16
14break
15case'space':soloffs[C.SPACE]=v
16break}}
17return}
18of(cmd,parm)},set_sym_glue:function(of,width){var s,C=abc2svg.C,tsfirst=this.get_tsfirst(),soloffs=this.cfmt().soloffs;of(width)
19if(!soloffs)
20return
21for(s=tsfirst;s;s=s.ts_next){if(s.dur)
22break
23if(soloffs[s.type]!=undefined)
24s.x=soloffs[s.type]}},set_hooks:function(abc){abc.set_sym_glue=abc2svg.soloffs.set_sym_glue.bind(abc,abc.set_sym_glue);abc.set_format=abc2svg.soloffs.set_fmt.bind(abc,abc.set_format)}}
25abc2svg.modules.hooks.push(abc2svg.soloffs.set_hooks);abc2svg.modules.soloffs.loaded=true
26