App-Music-ChordPro

 view release on metacpan or  search on metacpan

lib/ChordPro/res/abc/abc2svg/jazzchord-1.js  view on Meta::CPAN

				r += '(' + jzch(t[1])
		} else {
			r = t
		}
		if (gch.text[0] == '(')
			gch.text = '(' + r + ')'
		else
			gch.text = r
	}
	of(s)				// build the chord symbols
    }, // gch_build()

    set_fmt: function(of, cmd, parm) {
    var	i, k, s,
	cfmt = this.cfmt()

	if (cmd == "jazzchord") {
		cfmt.jazzchord = this.get_bool(parm)
		if (!cfmt.jazzchord)
			return
		if (parm[0] == '2')
			cfmt.jazzchord = 2		// no style

		if(!cfmt.jzreg) {			// if new definition
//			cfmt.jzreg = "-|°|º|ᵒ|0|6/9|maj|M|min|m|\\^"
			cfmt.jzreg = "-|°|º|ᵒ|0|\\^"
			cfmt.jzrep = Object.create(abc2svg.jazzchord.defrep)
			cfmt.jzRE = new RegExp(cfmt.jzreg, 'g')
		}
		if (parm && parm.indexOf('=') > 0) {
			parm = parm.split(/[\s]+/)
			for (cmd = 0; cmd < parm.length; cmd++) {
				k = parm[cmd].split('=')
				if (k.length != 2)
//fixme: error
					continue
				s = k[1]		// replacement
				k = k[0]		// key
				i = cfmt.jzreg.indexOf(k)
				if (i >= 0) {		// if old key
					if (s) {	// new value
						cfmt.jzrep[k] = s
					} else {
						cfmt.jzreg = cfmt.jzreg.replace(k, '')
						cfmt.jzreg = cfmt.jzreg.replace('||', '|')
						delete cfmt.jzrep[k]
					}
				} else {
					cfmt.jzreg += '|' + k
					cfmt.jzrep[k] = s
				}
				cfmt.jzRE = new RegExp(cfmt.jzreg, 'g')
			}
		}
		return
	}
	of(cmd, parm)
    }, // set_fmt()

    set_hooks: function(abc) {
	abc.gch_build = abc2svg.jazzchord.gch_build.bind(abc, abc.gch_build)
	abc.set_format = abc2svg.jazzchord.set_fmt.bind(abc, abc.set_format)

	abc.add_style("\
\n.jc7{font-size:90%}\
\n.jc8{baseline-shift:25%;font-size:75%;letter-spacing:-0.05em}\
\n.jc9{font-size:75%;letter-spacing:-0.05em}\
")
	abc.param_set_font("setfont-7", "* * class=jc7")
	abc.param_set_font("setfont-8", "* * class=jc8")
	abc.param_set_font("setfont-9", "* * class=jc9")
    } // set_hooks()
} // jazzchord

if (!abc2svg.mhooks)
	abc2svg.mhooks = {}
abc2svg.mhooks.jazzchord = abc2svg.jazzchord.set_hooks



( run in 0.967 second using v1.01-cache-2.11-cpan-2398b32b56e )