lotus / node_modules /.cache /vue-loader /283e813233479975249b763380aebab3.json
k-l-lambda's picture
updated node_modules
4cadbaf
raw
history blame
40 kB
{"remainingRequest":"/home/camus/work/lotus/node_modules/vue-loader/lib/index.js??vue-loader-options!/home/camus/work/lotus/app/components/sheet-live.vue?vue&type=script&lang=js","dependencies":[{"path":"/home/camus/work/lotus/app/components/sheet-live.vue","mtime":1732184473651},{"path":"/home/camus/work/lotus/node_modules/cache-loader/dist/cjs.js","mtime":1719800821084},{"path":"/home/camus/work/lotus/node_modules/thread-loader/dist/cjs.js","mtime":1719800821095},{"path":"/home/camus/work/lotus/node_modules/babel-loader/lib/index.js","mtime":1727163989637},{"path":"/home/camus/work/lotus/node_modules/cache-loader/dist/cjs.js","mtime":1719800821084},{"path":"/home/camus/work/lotus/node_modules/vue-loader/lib/index.js","mtime":1719800840033}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:CglpbXBvcnQgVnVlIGZyb20gInZ1ZSI7CglpbXBvcnQge01pZGlQbGF5ZXJ9IGZyb20gIkBrLWwtbGFtYmRhL211c2ljLXdpZGdldHMiOwoKCWltcG9ydCBTaGVldFNjaGVkdWxlciBmcm9tICIuLi8uLi9pbmMvbGlseU5vdGF0aW9uL3NjaGVkdWxlci50cyI7CglpbXBvcnQge2FuaW1hdGlvbkRlbGF5fSBmcm9tICIuLi9kZWxheS5qcyI7CglpbXBvcnQge1NpbmdsZUxvY2t9IGZyb20gIi4uLy4uL2luYy9tdXRleC50cyI7CglpbXBvcnQgU2NoZWR1bGVQb29sIGZyb20gIi4uLy4uL2luYy9zY2hlZHVsZVBvb2wudHMiOwoKCWltcG9ydCBTaGVldFRva2VuIGZyb20gIi4vc2hlZXQtdG9rZW4udnVlIjsKCgoKCWNsYXNzIFBsYWNlaG9sZGVyVG9rZW5MaXN0IHsKCQlhZGQgKCkge30KCQlyZW1vdmUgKCkge30KCX07CgoKCWNsYXNzIE11bHRpQ2xhc3NMaXN0IHsKCQljb25zdHJ1Y3RvciAoZWxlbXMpIHsKCQkJdGhpcy5lbGVtcyA9IGVsZW1zOwoJCX0KCgkJLypoYXMgKG5hbWUpIHsKCQkJcmV0dXJuIHRoaXMuZWxlbXNbMF0uaGFzKG5hbWUpOwoJCX0qLwoKCQlhZGQgKG5hbWUpIHsKCQkJdGhpcy5lbGVtcy5mb3JFYWNoKGVsZW0gPT4gZWxlbS5jbGFzc0xpc3QuYWRkKG5hbWUpKTsKCQl9CgoJCXJlbW92ZSAobmFtZSkgewoJCQl0aGlzLmVsZW1zLmZvckVhY2goZWxlbSA9PiBlbGVtLmNsYXNzTGlzdC5yZW1vdmUobmFtZSkpOwoJCX0KCgkJZ2V0IHZhbHVlICgpIHsKCQkJcmV0dXJuIHRoaXMuZWxlbXNbMF0gJiYgdGhpcy5lbGVtc1swXS52YWx1ZTsKCQl9CgoJCXNldCB2YWx1ZSAodmFsdWUpIHsKCQkJdGhpcy5lbGVtcy5mb3JFYWNoKGVsZW0gPT4gZWxlbS52YWx1ZSA9IHZhbHVlKTsKCQl9Cgl9OwoKCgljb25zdCBlbGVtQ2xhc3NCeUlkID0gKGlkLCBwYXJlbnQgPSBkb2N1bWVudCkgPT4gewoJCWNvbnN0IGVsZW1zID0gcGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwoYC50b2tlbiAqW2RhdGEtaHJlZj0nJHtpZH0nXWApOwoJCWlmIChlbGVtcy5sZW5ndGggPT09IDApCgkJCXJldHVybiBuZXcgUGxhY2Vob2xkZXJUb2tlbkxpc3QoKTsKCgkJaWYgKGVsZW1zLmxlbmd0aCA9PT0gMSkKCQkJcmV0dXJuIGVsZW1zWzBdLmNsYXNzTGlzdDsKCgkJcmV0dXJuIG5ldyBNdWx0aUNsYXNzTGlzdChlbGVtcyk7Cgl9OwoKCgljb25zdCBERUZBVUxUX1dBVEVSTUFSSyA9IHByb2Nlc3MuZW52LlZVRV9BUFBfREVGQVVMVF9XQVRFUk1BUks7CgoKCglleHBvcnQgZGVmYXVsdCB7CgkJbmFtZTogInNoZWV0LWxpdmUiLAoKCgkJY29tcG9uZW50czogewoJCQlTaGVldFRva2VuLAoJCX0sCgoKCQlwcm9wczogewoJCQlkb2M6IE9iamVjdCwKCQkJbWlkaU5vdGF0aW9uOiBPYmplY3QsCgkJCXBpdGNoQ29udGV4dEdyb3VwOiBBcnJheSwKCQkJc2hvd01hcms6IEJvb2xlYW4sCgkJCXNob3dDdXJzb3I6IHsKCQkJCXR5cGU6IEJvb2xlYW4sCgkJCQlkZWZhdWx0OiB0cnVlLAoJCQl9LAoJCQlub3RlSGlnaGxpZ2h0OiB7CgkJCQl0eXBlOiBCb29sZWFuLAoJCQkJZGVmYXVsdDogdHJ1ZSwKCQkJfSwKCQkJYmFraW5nTW9kZTogewoJCQkJdHlwZTogQm9vbGVhbiwKCQkJCWRlZmF1bHQ6IGZhbHNlLAoJCQl9LAoJCQliYWNrZ3JvdW5kSW1hZ2VzOiBBcnJheSwKCQkJZW5hYmxlUG9pbnRlcjogewoJCQkJdHlwZTogQm9vbGVhbiwKCQkJCWRlZmF1bHQ6IGZhbHNlLAoJCQl9LAoJCQlzaG93UGFnZXNQcm9ncmVzc2l2ZWx5OiB7CgkJCQl0eXBlOiBCb29sZWFuLAoJCQkJZGVmYXVsdDogZmFsc2UsCgkJCX0sCgkJCXBhcnRpYWxWaXNpYmxlOiB7CgkJCQl0eXBlOiBCb29sZWFuLAoJCQkJZGVmYXVsdDogdHJ1ZSwKCQkJfSwKCQkJc2NoZWR1bGVyOiBPYmplY3QsCgkJCXdhdGVybWFyazogewoJCQkJdHlwZTogU3RyaW5nLAoJCQkJZGVmYXVsdDogREVGQVVMVF9XQVRFUk1BUkssCgkJCX0sCgkJCWVuYWJsZWRGb250OiBCb29sZWFuLAoJCQloaWdobGlnaHRTeW1ib2w6IFN0cmluZywKCQl9LAoKCgkJZGF0YSAoKSB7CgkJCXJldHVybiB7CgkJCQltaWRpUGxheWVyOiBudWxsLAoJCQkJLy9zY2hlZHVsZXI6IG51bGwsCgkJCQlzdGF0dXNNYXA6IG5ldyBNYXAoKSwKCQkJCXNob3duUGFnZXM6IFtdLAoJCQkJd2F0ZXJtYXJrU2l6ZTogewoJCQkJCXdpZHRoOiAyNTYsCgkJCQkJaGVpZ2h0OiAyNTYsCgkJCQl9LAoJCQl9OwoJCX0sCgoKCQljb21wdXRlZDogewoJCQlwcm9ncmVzc1RpY2tzICgpIHsKCQkJCXJldHVybiB0aGlzLm1pZGlQbGF5ZXIgJiYgdGhpcy5taWRpUGxheWVyLnByb2dyZXNzVGlja3M7CgkJCX0sCgoKCQkJY3Vyc29yUG9zaXRpb24gKCkgewoJCQkJaWYgKCF0aGlzLm1pZGlQbGF5ZXIgfHwgIXRoaXMuc2NoZWR1bGVyKQoJCQkJCXJldHVybiBudWxsOwoKCQkJCXJldHVybiB0aGlzLnNjaGVkdWxlci5sb29rdXBQb3NpdGlvbih0aGlzLnByb2dyZXNzVGlja3MpOwoJCQl9LAoKCgkJCWN1cnNvclBhZ2VJbmRleCAoKSB7CgkJCQlpZiAoIXRoaXMuY3Vyc29yUG9zaXRpb24gfHwgIXRoaXMuZG9jKQoJCQkJCXJldHVybiBudWxsOwoKCQkJCWNvbnN0IHN5c3RlbSA9IHRoaXMuZG9jLnN5c3RlbXNbdGhpcy5jdXJzb3JQb3NpdGlvbi5zeXN0ZW1dOwoJCQkJY29uc29sZS5hc3NlcnQoc3lzdGVtLCAiaW52YWxpZCBjdXJzb3Igc3lzdGVtIGluZGV4OiIsIHRoaXMuY3Vyc29yUG9zaXRpb24pOwoKCQkJCWlmICghc3lzdGVtKQoJCQkJCXJldHVybiBudWxsOwoKCQkJCXJldHVybiBzeXN0ZW0ucGFnZUluZGV4OwoJCQl9LAoKCgkJCWN1cnNvclN5c3RlbUluZGV4ICgpIHsKCQkJCWlmICghdGhpcy5jdXJzb3JQb3NpdGlvbiB8fCAhdGhpcy5kb2MpCgkJCQkJcmV0dXJuIG51bGw7CgoJCQkJcmV0dXJuIHRoaXMuY3Vyc29yUG9zaXRpb24uc3lzdGVtOwoJCQl9LAoKCgkJCS8vIERFUFJFQ0FURUQKCQkJY3Vyc29yUm93SW5kZXggKCkgewoJCQkJcmV0dXJuIHRoaXMuY3Vyc29yU3lzdGVtSW5kZXg7CgkJCX0sCgoKCQkJc3ZnU2NhbGUgKCkgewoJCQkJY29uc3QgcGFnZSA9IHRoaXMuZG9jICYmIHRoaXMuZG9jLnBhZ2VzWzBdOwoJCQkJaWYgKHBhZ2UpCgkJCQkJcmV0dXJuIHRoaXMuZG9jLnBhZ2VTaXplLndpZHRoIC8gcGFnZS52aWV3Qm94LndpZHRoOwoKCQkJCXJldHVybiAxOwoJCQl9LAoKCgkJCWlzUGxheWluZyAoKSB7CgkJCQlyZXR1cm4gdGhpcy5taWRpUGxheWVyICYmIHRoaXMubWlkaVBsYXllci5pc1BsYXlpbmc7CgkJCX0sCgkJfSwKCgoJCWNyZWF0ZWQgKCkgewoJCQl0aGlzLnBhZ2VMb2FkaW5nTG9jayA9IG5ldyBTaW5nbGVMb2NrKCk7CgkJCXRoaXMuc2NoZWR1bGVQb29sID0gbmV3IFNjaGVkdWxlUG9vbChwZXJmb3JtYW5jZSk7CgoJCQl0aGlzLnByZXBhcmVQbGF5ZXIoKTsKCgkJCXRoaXMuc2hvd1BhZ2VzKCk7CgoJCQlpZiAodGhpcy53YXRlcm1hcmspIHsKCQkJCWNvbnN0IGltZyA9IG5ldyBJbWFnZSgpOwoJCQkJaW1nLnNyYyA9IHRoaXMud2F0ZXJtYXJrOwoJCQkJaW1nLm9ubG9hZCA9ICgpID0+IHsKCQkJCQl0aGlzLndhdGVybWFya1NpemUud2lkdGggPSBpbWcubmF0dXJhbFdpZHRoOwoJCQkJCXRoaXMud2F0ZXJtYXJrU2l6ZS5oZWlnaHQgPSBpbWcubmF0dXJhbEhlaWdodDsKCQkJCX07CgkJCX0KCQl9LAoKCgkJbWV0aG9kczogewoJCQlvblBsYXllck1pZGkgKGRhdGEsIHRpbWVzdGFtcCkgewoJCQkJdGhpcy4kZW1pdCgibWlkaSIsIGRhdGEsIHRpbWVzdGFtcCk7CgoJCQkJaWYgKHRoaXMubm90ZUhpZ2hsaWdodCkgewoJCQkJCWlmIChkYXRhLmlkcykgewoJCQkJCQlsZXQgdGFzayA9IG51bGw7CgkJCQkJCWNvbnN0IGlkcyA9IGRhdGEuaWRzOwoKCQkJCQkJc3dpdGNoIChkYXRhLnN1YnR5cGUpIHsKCQkJCQkJY2FzZSAibm90ZU9uIjoKCQkJCQkJCXRhc2sgPSAoKSA9PiBpZHMuZm9yRWFjaChpZCA9PiB7CgkJCQkJCQkJY29uc3Qgc3RhdHVzID0gdGhpcy5zdGF0dXNNYXAuZ2V0KGlkKTsKCQkJCQkJCQlzdGF0dXMgJiYgc3RhdHVzLmFkZCgib24iKTsKCQkJCQkJCX0pOwoKCQkJCQkJCWJyZWFrOwoJCQkJCQljYXNlICJub3RlT2ZmIjoKCQkJCQkJCXRhc2sgPSAoKSA9PiBpZHMuZm9yRWFjaChpZCA9PiB7CgkJCQkJCQkJY29uc3Qgc3RhdHVzID0gdGhpcy5zdGF0dXNNYXAuZ2V0KGlkKTsKCQkJCQkJCQlzdGF0dXMgJiYgc3RhdHVzLnJlbW92ZSgib24iKTsKCQkJCQkJCX0pOwoKCQkJCQkJCWJyZWFrOwoJCQkJCQl9CgoJCQkJCQlpZiAodGFzaykKCQkJCQkJCXRoaXMuc2NoZWR1bGVQb29sLmFwcGVuZFRhc2sodGltZXN0YW1wLCB0YXNrKTsKCQkJCQl9CgkJCQl9CgkJCX0sCgoKCQkJc2V0Tm90ZVN0YXR1cyAobm90ZUluZGV4LCBjbGFzc05hbWUsIG9uKSB7CgkJCQlpZiAodGhpcy5taWRpTm90YXRpb24pIHsKCQkJCQljb25zdCBub3RlID0gdGhpcy5taWRpTm90YXRpb24ubm90ZXNbbm90ZUluZGV4XTsKCQkJCQlpZiAobm90ZSkgewoJCQkJCQlpZiAobm90ZS5pZHMpIHsKCQkJCQkJCW5vdGUuaWRzLmZvckVhY2goaWQgPT4gewoJCQkJCQkJCWNvbnN0IGxpc3QgPSB0aGlzLnN0YXR1c01hcC5nZXQoaWQpOwoJCQkJCQkJCWlmIChsaXN0KSB7CgkJCQkJCQkJCWlmIChvbikKCQkJCQkJCQkJCWxpc3QuYWRkKGNsYXNzTmFtZSk7CgkJCQkJCQkJCWVsc2UKCQkJCQkJCQkJCWxpc3QucmVtb3ZlKGNsYXNzTmFtZSk7CgkJCQkJCQkJfQoJCQkJCQkJfSk7CgkJCQkJCX0KCQkJCQl9CgkJCQkJZWxzZQoJCQkJCQljb25zb2xlLndhcm4oImludmFsaWQgbm90ZSBpbmRleDoiLCBub3RlSW5kZXgsIHRoaXMubWlkaU5vdGF0aW9uLm5vdGVzLmxlbmd0aCk7CgkJCQl9CgkJCX0sCgoKCQkJY2xlYXJOb3RlU3RhdHVzICgpIHsKCQkJCWZvciAoY29uc3Qgc3RhdHVzIG9mIHRoaXMuc3RhdHVzTWFwLnZhbHVlcygpKQoJCQkJCXN0YXR1cy52YWx1ZSA9ICIiOwoJCQl9LAoKCgkJCXVwZGF0ZVRva2VuU3RhdHVzICgpIHsKCQkJCWlmICh0aGlzLm1pZGlOb3RhdGlvbiAmJiB0aGlzLm5vdGVIaWdobGlnaHQpIHsKCQkJCQlmb3IgKGNvbnN0IG5vdGUgb2YgdGhpcy5taWRpTm90YXRpb24ubm90ZXMpIHsKCQkJCQkJY29uc3Qgb24gPSB0aGlzLm1pZGlQbGF5ZXIuaXNQbGF5aW5nICYmIHRoaXMubWlkaVBsYXllci5wcm9ncmVzc1RpbWUgPj0gbm90ZS5zdGFydCAmJiB0aGlzLm1pZGlQbGF5ZXIucHJvZ3Jlc3NUaW1lIDwgbm90ZS5zdGFydCArIG5vdGUuZHVyYXRpb247CgkJCQkJCWlmIChub3RlLmlkcykgewoJCQkJCQkJbm90ZS5pZHMuZm9yRWFjaChpZCA9PiB7CgkJCQkJCQkJY29uc3Qgc3RhdHVzID0gdGhpcy5zdGF0dXNNYXAuZ2V0KGlkKTsKCQkJCQkJCQlpZiAoc3RhdHVzKSB7CgkJCQkJCQkJCWlmIChvbikKCQkJCQkJCQkJCXN0YXR1cy5hZGQoIm9uIik7CgkJCQkJCQkJCWVsc2UKCQkJCQkJCQkJCXN0YXR1cy5yZW1vdmUoIm9uIik7CgkJCQkJCQkJfQoJCQkJCQkJfSk7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0sCgoKCQkJYXN5bmMgcHJlcGFyZVBsYXllciAoKSB7CgkJCQkvL2NvbnNvbGUubG9nKCJ0MToiLCBwZXJmb3JtYW5jZS5ub3coKSk7CgkJCQkvL3RoaXMuc2NoZWR1bGVyID0gbnVsbDsKCQkJCXRoaXMuc3RhdHVzTWFwLmNsZWFyKCk7CgoJCQkJaWYgKHRoaXMubWlkaVBsYXllcikgewoJCQkJCXRoaXMubWlkaVBsYXllci5kaXNwb3NlKCk7CgkJCQkJdGhpcy5taWRpUGxheWVyID0gbnVsbDsKCQkJCX0KCgkJCQlpZiAodGhpcy5taWRpTm90YXRpb24pIHsKCQkJCQl0aGlzLnVwZGF0ZU1pZGlQbGF5ZXIoKTsKCgkJCQkJLy8gd2FpdCBET00gdXBkYXRlCgkJCQkJYXdhaXQgdGhpcy4kbmV4dFRpY2soKTsKCQkJCQlhd2FpdCB0aGlzLnBhZ2VMb2FkaW5nTG9jay53YWl0KCk7CgoJCQkJCXRoaXMudXBkYXRlU3RhdHVzTWFwKCk7CgoJCQkJCWlmICghdGhpcy5zY2hlZHVsZXIpIHsKCQkJCQkJY29uc3QgdG9rZW5NYXAgPSB0aGlzLmRvYyAmJiB0aGlzLmRvYy5nZXRUb2tlbk1hcCgpOwoJCQkJCQlpZiAodG9rZW5NYXApIHsKCQkJCQkJCWZvciAoY29uc3QgdG9rZW4gb2YgdG9rZW5NYXAudmFsdWVzKCkpCgkJCQkJCQkJVnVlLnNldCh0b2tlbiwgIm9uIiwgdG9rZW4ub24gfHwgZmFsc2UpOwoKCQkJCQkJCWNvbnN0IHNjaGVkdWxlciA9IFNoZWV0U2NoZWR1bGVyLmNyZWF0ZUZyb21Ob3RhdGlvbih0aGlzLm1pZGlOb3RhdGlvbiwgdG9rZW5NYXApOwoJCQkJCQkJdGhpcy4kZW1pdCgidXBkYXRlOnNjaGVkdWxlciIsIHNjaGVkdWxlcik7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0sCgoKCQkJdXBkYXRlTWlkaVBsYXllciAoKSB7CgkJCQlpZiAodGhpcy5taWRpUGxheWVyKQoJCQkJCXRoaXMubWlkaVBsYXllci5kaXNwb3NlKCk7CgoJCQkJdGhpcy5taWRpUGxheWVyID0gbmV3IE1pZGlQbGF5ZXIodGhpcy5taWRpTm90YXRpb24sIHsKCQkJCQljYWNoZVNwYW46IDQwMCwKCQkJCQlvbk1pZGk6IChkYXRhLCB0aW1lc3RhbXApID0+IHRoaXMub25QbGF5ZXJNaWRpKGRhdGEsIHRpbWVzdGFtcCksCgkJCQkJb25UdXJuQ3Vyc29yOiAoKSA9PiB0aGlzLnVwZGF0ZVRva2VuU3RhdHVzKCksCgkJCQl9KTsKCQkJfSwKCgoJCQl1cGRhdGVTdGF0dXNNYXAgKCkgewoJCQkJaWYgKHRoaXMubWlkaU5vdGF0aW9uKSB7CgkJCQkJdGhpcy5taWRpTm90YXRpb24ubm90ZXMuZm9yRWFjaChub3RlID0+IG5vdGUuaWRzICYmIG5vdGUuaWRzLmZvckVhY2goaWQgPT4gewoJCQkJCQlpZiAoIXRoaXMuc3RhdHVzTWFwLmdldChpZCkpCgkJCQkJCQl0aGlzLnN0YXR1c01hcC5zZXQoaWQsIGVsZW1DbGFzc0J5SWQoaWQsIHRoaXMuJGVsKSk7CgkJCQkJfSkpOwoJCQkJfQoJCQl9LAoKCgkJCXVwZGF0ZVN0YXR1c01hcEluUGFnZSAocGFnZSkgewoJCQkJY29uc3QgdG9rZW5zID0gcGFnZS5xdWVyeVNlbGVjdG9yQWxsKCIudG9rZW4gKltkYXRhLWhyZWZdIik7CgkJCQl0b2tlbnMuZm9yRWFjaCh0b2tlbiA9PiB7CgkJCQkJY29uc3QgaWQgPSB0b2tlbi5kYXRhc2V0LmhyZWY7CgkJCQkJLy90aGlzLnN0YXR1c01hcC5zZXQoaWQsIHRva2VuLmNsYXNzTGlzdCk7CgkJCQkJdGhpcy5zdGF0dXNNYXAuc2V0KGlkLCBlbGVtQ2xhc3NCeUlkKGlkLCBwYWdlKSk7CgkJCQl9KTsKCQkJfSwKCgoJCQlhZGRNYXJraW5nQnlUaWNrICh0aWNrLCBwaXRjaCwgc3RhZmZJbmRleCwge2lkLCBjbHMsIHRleHQgPSAiXHVlMGE5IiwgeG9mZnNldCA9IDB9ID0ge30pIHsKCQkJCWlmICghdGhpcy5waXRjaENvbnRleHRHcm91cCkgewoJCQkJCWNvbnNvbGUud2FybigiW2FkZE1hcmtpbmdCeVRpY2tdCXBpdGNoQ29udGV4dEdyb3VwIGlzIHJlcXVpcmVkLiIpOwoJCQkJCXJldHVybjsKCQkJCX0KCgkJCQljb25zdCBjb250ZXh0VGFibGUgPSB0aGlzLnBpdGNoQ29udGV4dEdyb3VwW3N0YWZmSW5kZXhdOwoJCQkJaWYgKCFjb250ZXh0VGFibGUpIHsKCQkJCQljb25zb2xlLndhcm4oIlthZGRNYXJraW5nQnlUaWNrXQlpbnZhbGlkIHN0YWZmSW5kZXg6Iiwgc3RhZmZJbmRleCwgdGhpcy5waXRjaENvbnRleHRHcm91cC5sZW5ndGgpOwoJCQkJCXJldHVybjsKCQkJCX0KCgkJCQljb25zdCBwb3NpdGlvbiA9IHRoaXMuc2NoZWR1bGVyLmxvb2t1cFBvc2l0aW9uKHRpY2spOwoJCQkJaWYgKCFwb3NpdGlvbikgewoJCQkJCWNvbnNvbGUud2FybigiW2FkZE1hcmtpbmdCeVRpY2tdCWludmFsaWQgdGljazoiLCB0aWNrKTsKCQkJCQlyZXR1cm47CgkJCQl9CgoJCQkJY29uc3QgY29udGV4dCA9IGNvbnRleHRUYWJsZS5sb29rdXAodGljayk7CgkJCQlpZiAoIWNvbnRleHQpIHsKCQkJCQljb25zb2xlLndhcm4oIm5vIGNvbnRleHQgYXQgdGljazoiLCB0aWNrLCBjb250ZXh0VGFibGUpOwoJCQkJCXJldHVybiBudWxsOwoJCQkJfQoJCQkJY29uc3Qge3ksIGFsdGVyfSA9IGNvbnRleHQucGl0Y2hUb1kocGl0Y2gpOwoKCQkJCXJldHVybiB0aGlzLmRvYy5hZGRNYXJraW5nKHBvc2l0aW9uLnN5c3RlbSwgc3RhZmZJbmRleCwge3g6IHBvc2l0aW9uLnggKyB4b2Zmc2V0LCB5LCB0ZXh0LCBhbHRlciwgaWQsIGNsc30pOwoJCQl9LAoKCgkJCWFkZE1hcmtpbmdCeU5vdGUgKG5vdGVJbmRleCwgcGl0Y2gsIHtpZCA9IG51bGwsIGNscywgdGV4dCA9ICJcdWUwYTkifSA9IHt9KSB7CgkJCQljb25zb2xlLmFzc2VydCh0aGlzLm1pZGlOb3RhdGlvbiwgIlthZGRNYXJraW5nQnlOb3RlXQltaWRpTm90YXRpb24gaXMgbnVsbC4iKTsKCgkJCQljb25zdCBub3RlID0gdGhpcy5taWRpTm90YXRpb24ubm90ZXNbbm90ZUluZGV4XTsKCQkJCWlmICghbm90ZSkgewoJCQkJCWNvbnNvbGUud2FybigiW2FkZE1hcmtpbmdCeU5vdGVdCWludmFsaWQgbm90ZUluZGV4OiIsIG5vdGVJbmRleCwgdGhpcy5taWRpTm90YXRpb24ubm90ZXMubGVuZ3RoKTsKCQkJCQlyZXR1cm47CgkJCQl9CgoJCQkJaWYgKCFpZCkgewoJCQkJCWlmICghbm90ZS5pZHMpCgkJCQkJCXJldHVybiBudWxsOwoKCQkJCQlpZCA9IG5vdGUuaWRzWzBdOwoJCQkJfQoKCQkJCXJldHVybiB0aGlzLmFkZE1hcmtpbmdCeVRpY2sobm90ZS5zdGFydFRpY2ssIHBpdGNoLCBub3RlLnN0YWZmVHJhY2ssIHtpZCwgY2xzLCB0ZXh0LCB4b2Zmc2V0OiAxLjJ9KTsKCQkJfSwKCgoJCQlyZW1vdmVNYXJraW5nIChpZCkgewoJCQkJdGhpcy5kb2MucmVtb3ZlTWFya2luZyhpZCk7CgkJCX0sCgoKCQkJY2xlYXJNYXJraW5ncyAoKSB7CgkJCQl0aGlzLmRvYy5jbGVhck1hcmtpbmdzKCk7CgkJCX0sCgoKCQkJYXN5bmMgc2hvd1BhZ2VzICgpIHsKCQkJCXRoaXMuc2hvd25QYWdlcyA9IFtdOwoKCQkJCWlmICghdGhpcy5kb2MpCgkJCQkJcmV0dXJuOwoKCQkJCWlmICh0aGlzLnNob3dQYWdlc1Byb2dyZXNzaXZlbHkpIHsKCQkJCQlhd2FpdCB0aGlzLnBhZ2VMb2FkaW5nTG9jay53YWl0KCk7CgkJCQkJdGhpcy5wYWdlTG9hZGluZ0xvY2subG9jaygpOwoKCQkJCQlmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZG9jLnBhZ2VzLmxlbmd0aDsgKytpKSB7CgkJCQkJCXRoaXMuc2hvd25QYWdlcy5wdXNoKHRoaXMuZG9jLnBhZ2VzW2ldKTsKCgkJCQkJCWF3YWl0IHRoaXMuJG5leHRUaWNrKCk7CgkJCQkJCWF3YWl0IGFuaW1hdGlvbkRlbGF5KCk7CgkJCQkJfQoKCQkJCQl0aGlzLnBhZ2VMb2FkaW5nTG9jay5yZWxlYXNlKCk7CgkJCQl9CgkJCQllbHNlCgkJCQkJdGhpcy5zaG93blBhZ2VzID0gdGhpcy5kb2MucGFnZXM7CgkJCX0sCgoKCQkJb25Eb2NDaGFuZ2VkICgpIHsKCQkJCXRoaXMuY2xlYXJOb3RlU3RhdHVzKCk7CgkJCQl0aGlzLmNsZWFyTWFya2luZ3MoKTsKCgkJCQl0aGlzLnNob3dQYWdlcygpOwoJCQl9LAoKCgkJCWV2ZW50VG9TeXN0ZW1Qb3NpdGlvbiAoc3lzdGVtLCBldmVudCkgewoJCQkJcmV0dXJuIHsKCQkJCQl4OiBldmVudC5vZmZzZXRYIC8gdGhpcy5zdmdTY2FsZSAtIHN5c3RlbS54LAoJCQkJCXk6IGV2ZW50Lm9mZnNldFkgLyB0aGlzLnN2Z1NjYWxlIC0gc3lzdGVtLnksCgkJCQl9OwoJCQl9LAoKCgkJCWV2ZW50VG9Qb2ludGVyIChzeXN0ZW0sIGV2ZW50KSB7CgkJCQljb25zdCBwb3MgPSB0aGlzLmV2ZW50VG9TeXN0ZW1Qb3NpdGlvbihzeXN0ZW0sIGV2ZW50KTsKCQkJCWNvbnN0IHN5c3RlbUluZGV4ID0gc3lzdGVtLmluZGV4OwoJCQkJY29uc3QgbWVhc3VyZUluZGV4ID0gdGhpcy5kb2MubG9va3VwTWVhc3VyZUluZGV4KHN5c3RlbUluZGV4LCBwb3MueCk7CgkJCQljb25zdCB0aWNrID0gdGhpcy5zY2hlZHVsZXIgJiYgdGhpcy5zY2hlZHVsZXIubG9va3VwVGljayh7c3lzdGVtOiBzeXN0ZW1JbmRleCwgeDogcG9zLnh9KTsKCgkJCQlyZXR1cm4gewoJCQkJCXN5c3RlbUluZGV4LCBtZWFzdXJlSW5kZXgsIHRpY2ssIC4uLnBvcywKCQkJCX07CgkJCX0sCgoKCQkJb25Nb3VzZW1vdmVQYWQgKHN5c3RlbSwgZXZlbnQpIHsKCQkJCXRoaXMuJGVtaXQoInBvaW50ZXJVcGRhdGUiLCB0aGlzLmV2ZW50VG9Qb2ludGVyKHN5c3RlbSwgZXZlbnQpKTsKCQkJfSwKCgoJCQlvbk1vdXNlbGVhdmVQYWQgKCkgewoJCQkJdGhpcy4kZW1pdCgicG9pbnRlclVwZGF0ZSIsIG51bGwpOwoJCQl9LAoKCgkJCW9uQ2xpY2tQYWQgKHN5c3RlbSwgZXZlbnQpIHsKCQkJCXRoaXMuJGVtaXQoInBvaW50ZXJDbGljayIsIHRoaXMuZXZlbnRUb1BvaW50ZXIoc3lzdGVtLCBldmVudCksIGV2ZW50KTsKCQkJfSwKCgoJCQl1cGRhdGVQYWdlVmlzaWJpbGl0eSAoKSB7CgkJCQkvL2NvbnNvbGUubG9nKCJwYWdlczoiLCB0aGlzLiRyZWZzLnBhZ2VzKTsKCQkJCS8vY29uc3QgZGlydHlQYWdlcyA9IFtdOwoJCQkJaWYgKCF0aGlzLiRyZWZzLnBhZ2VzKSB7CgkJCQkJY29uc29sZS5sb2coIlt1cGRhdGVQYWdlVmlzaWJpbGl0eV0gJHJlZnMucGFnZXMgaXMgbnVsbDoiLCB0aGlzLiRyZWZzLnBhZ2VzKTsKCQkJCQlyZXR1cm47CgkJCQl9CgoJCQkJdGhpcy4kcmVmcy5wYWdlcy5mb3JFYWNoKChwYWdlRWxlbSwgaSkgPT4gewoJCQkJCWNvbnN0IHJlY3QgPSBwYWdlRWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKCgkJCQkJY29uc3QgcGFnZSA9IHRoaXMuc2hvd25QYWdlc1tpXTsKCQkJCQljb25zdCBoaWRkZW4gPSByZWN0LnRvcCA+IHdpbmRvdy5pbm5lckhlaWdodCB8fCByZWN0LmJvdHRvbSA8IDAgfHwgcmVjdC5sZWZ0ID4gd2luZG93LmlubmVyV2lkdGggfHwgcmVjdC5yaWdodCA8IDA7CgkJCQkJaWYgKCEhcGFnZS5oaWRkZW4gIT09IGhpZGRlbikKCQkJCQkJVnVlLnNldChwYWdlLCAiaGlkZGVuIiwgaGlkZGVuKTsKCQkJCQkJLy9pZiAoIWhpZGRlbikKCQkJCQkJLy8JZGlydHlQYWdlcy5wdXNoKHBhZ2VFbGVtKTsKCQkJCQkKCQkJCQkvL2NvbnNvbGUubG9nKCJwYWdlOiIsIGksIHJlY3QsIHdpbmRvdy5pbm5lcldpZHRoLCB3aW5kb3cuaW5uZXJIZWlnaHQsIHBhZ2UuaGlkZGVuKTsKCQkJCX0pOwoKCQkJCS8vdGhpcy4kbmV4dFRpY2soKCkgPT4gZGlydHlQYWdlcy5mb3JFYWNoKHBhZ2UgPT4gdGhpcy51cGRhdGVTdGF0dXNNYXBJblBhZ2UocGFnZSkpKTsKCQkJfSwKCgoJCQlvblBhZ2VDaGFuZ2VkIChldmVudCkgewoJCQkJLy9jb25zb2xlLmxvZygib25QYWdlQ2hhbmdlZDoiLCBldmVudCk7CgkJCQlpZiAoZXZlbnQudGFyZ2V0ICYmIGV2ZW50LnRhcmdldC5ub2RlTmFtZSA9PT0gImciKQoJCQkJCXRoaXMudXBkYXRlU3RhdHVzTWFwSW5QYWdlKGV2ZW50LnRhcmdldCk7CgkJCX0sCgkJfSwKCgoJCXdhdGNoOiB7CgkJCW1pZGlOb3RhdGlvbjogInByZXBhcmVQbGF5ZXIiLAoKCgkJCW1pZGlQbGF5ZXIgKHZhbHVlKSB7CgkJCQl0aGlzLiRlbWl0KCJ1cGRhdGU6bWlkaVBsYXllciIsIHZhbHVlKTsKCQkJfSwKCgoJCQlhc3luYyBiYWtpbmdNb2RlICgpIHsKCQkJCWF3YWl0IHRoaXMuJG5leHRUaWNrKCk7CgkJCQlhd2FpdCB0aGlzLnBhZ2VMb2FkaW5nTG9jay53YWl0KCk7CgoJCQkJdGhpcy51cGRhdGVTdGF0dXNNYXAoKTsKCQkJCXRoaXMudXBkYXRlVG9rZW5TdGF0dXMoKTsKCQkJfSwKCgoJCQlkb2M6ICJvbkRvY0NoYW5nZWQiLAoKCgkJCWN1cnNvclBhZ2VJbmRleCAodmFsdWUpIHsKCQkJCXRoaXMuJGVtaXQoImN1cnNvclBhZ2VTaGlmdCIsIHZhbHVlKTsKCQkJfSwKCgoJCQljdXJzb3JTeXN0ZW1JbmRleCAodmFsdWUpIHsKCQkJCXRoaXMuJGVtaXQoImN1cnNvclN5c3RlbVNoaWZ0IiwgdmFsdWUpOwoJCQl9LAoKCgkJCWlzUGxheWluZyAodmFsdWUpIHsKCQkJCWlmICghdmFsdWUpCgkJCQkJdGhpcy5zY2hlZHVsZVBvb2wuY2xlYXIoKTsKCQkJfSwKCQl9LAoJfTsK"},{"version":3,"sources":["sheet-live.vue"],"names":[],"mappings":";AAwHA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;;;;AAIA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA","file":"sheet-live.vue","sourceRoot":"app/components","sourcesContent":["<template>\n\t<div class=\"sheet live\">\n\t\t<svg v-for=\"(page, i) of shownPages\" :key=\"i\" ref=\"pages\"\n\t\t\tclass=\"page\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t:width=\"page.width\"\n\t\t\t:height=\"page.height\"\n\t\t\t:viewBox=\"`${page.viewBox.x} ${page.viewBox.y} ${page.viewBox.width} ${page.viewBox.height}`\"\n\t\t\t:style=\"{['background-image']: backgroundImages && backgroundImages[i] && `url(${backgroundImages[i]})`}\"\n\t\t\t@DOMNodeInserted=\"onPageChanged\"\n\t\t>\n\t\t\t<g v-if=\"!partialVisible || !page.hidden\">\n\t\t\t\t<g v-if=\"showMark\" class=\"mark\">\n\t\t\t\t\t<g class=\"system\" v-for=\"(system, ii) of page.systems\" :key=\"ii\"\n\t\t\t\t\t\t:transform=\"`translate(${system.x}, ${system.y})`\"\n\t\t\t\t\t\t@mousemove=\"enablePointer && onMousemovePad(system, $event)\"\n\t\t\t\t\t\t@mouseleave=\"enablePointer && onMouseleavePad(system, $event)\"\n\t\t\t\t\t\t@click=\"onClickPad(system, $event)\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<rect :x=\"0\" :y=\"system.top\" :width=\"system.width\" :height=\"system.bottom - system.top\" />\n\t\t\t\t\t\t<slot name=\"system\" :system=\"system\" :page=\"page\"></slot>\n\t\t\t\t\t</g>\n\t\t\t\t\t<slot name=\"page\" :page=\"page\"></slot>\n\t\t\t\t</g>\n\t\t\t\t<g v-if=\"!bakingMode\">\n\t\t\t\t\t<g v-if=\"watermark\" class=\"wm\">\n\t\t\t\t\t\t<image :href=\"watermark\"\n\t\t\t\t\t\t\t:x=\"(doc.pageSize.width - watermarkSize.width) / 2 / svgScale\"\n\t\t\t\t\t\t\t:y=\"(doc.pageSize.height - watermarkSize.height) / 2 / svgScale\"\n\t\t\t\t\t\t\t:width=\"watermarkSize.width / 2 / svgScale\"\n\t\t\t\t\t\t\t:height=\"watermarkSize.height / 2 / svgScale\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</g>\n\t\t\t\t\t<g class=\"page-tokens\">\n\t\t\t\t\t\t<SheetToken v-for=\"(token, ii) of page.tokens\" :key=\"ii\" :token=\"token\" />\n\t\t\t\t\t</g>\n\t\t\t\t\t<g class=\"system\" v-for=\"(system, ii) of page.systems\" :key=\"ii\"\n\t\t\t\t\t\t:transform=\"`translate(${system.x}, ${system.y})`\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<rect class=\"cursor\" v-if=\"showCursor && cursorPosition && cursorPosition.system === system.index\"\n\t\t\t\t\t\t\t:x=\"cursorPosition.x\" :y=\"system.top - 0.5\" width=\"1\" :height=\"system.bottom - system.top + 1\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<g>\n\t\t\t\t\t\t\t<SheetToken v-for=\"(token, i5) of system.tokens\" :key=\"i5\" :token=\"token\" />\n\t\t\t\t\t\t</g>\n\t\t\t\t\t\t<g class=\"staff\" v-for=\"(staff, iii) of system.staves\" :key=\"iii\"\n\t\t\t\t\t\t\t:transform=\"`translate(${staff.x}, ${staff.y})`\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<g>\n\t\t\t\t\t\t\t\t<SheetToken v-for=\"(token, i5) of staff.tokens\" :key=\"i5\" :token=\"token\" />\n\t\t\t\t\t\t\t</g>\n\t\t\t\t\t\t\t<g class=\"measure\" v-for=\"(measure, i4) of staff.measures\" :key=\"i4\">\n\t\t\t\t\t\t\t\t<SheetToken v-for=\"(token, i5) of measure.tokens\" :key=\"i5\"\n\t\t\t\t\t\t\t\t\t:token=\"token\"\n\t\t\t\t\t\t\t\t\t:classes=\"{\n\t\t\t\t\t\t\t\t\t\tmatched: statusMap.has(token.href),\n\t\t\t\t\t\t\t\t\t\tmismatched: token.is('NOTEHEAD') && !statusMap.has(token.href),\n\t\t\t\t\t\t\t\t\t\ttied: token.tied,\n\t\t\t\t\t\t\t\t\t\tattached: Number.isFinite(token.stemX),\n\t\t\t\t\t\t\t\t\t\thighlight: highlightSymbol && token.is(highlightSymbol),\n\t\t\t\t\t\t\t\t\t}\"\n\t\t\t\t\t\t\t\t\t:showTitle=\"showMark\"\n\t\t\t\t\t\t\t\t\t:scale=\"enabledFont ? token.scale2 : null\"\n\t\t\t\t\t\t\t\t\t@click=\"$emit('click-token', token, $event)\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</g>\n\t\t\t\t\t\t\t<g v-if=\"showMark\" class=\"mark\">\n\t\t\t\t\t\t\t\t<slot name=\"staff\" :staff=\"staff\" :system=\"system\" :page=\"page\"></slot>\n\t\t\t\t\t\t\t</g>\n\t\t\t\t\t\t\t<g class=\"markings\">\n\t\t\t\t\t\t\t\t<g v-for=\"marking of staff.markings\" :key=\"marking.index\"\n\t\t\t\t\t\t\t\t\t:transform=\"`translate(${marking.x}, ${marking.y + staff.yRoundOffset})`\"\n\t\t\t\t\t\t\t\t\t:class=\"marking.cls\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<text>{{marking.text}}</text>\n\t\t\t\t\t\t\t\t\t<text class=\"alter\" v-if=\"marking.alterText\" x=\"-0.2\" y=\"0\">{{marking.alterText}}</text>\n\t\t\t\t\t\t\t\t</g>\n\t\t\t\t\t\t\t</g>\n\t\t\t\t\t\t</g>\n\t\t\t\t\t</g>\n\t\t\t\t</g>\n\t\t\t\t<g v-if=\"bakingMode\" class=\"bake\">\n\t\t\t\t\t<g class=\"system\" v-for=\"(system, ii) of page.systems\" :key=\"ii\"\n\t\t\t\t\t\t:transform=\"`translate(${system.x}, ${system.y})`\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<rect class=\"cursor\" v-if=\"showCursor && cursorPosition && cursorPosition.system === system.index\"\n\t\t\t\t\t\t\t:x=\"cursorPosition.x\" :y=\"system.top - 0.5\" width=\"1\" :height=\"system.bottom - system.top + 1\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<g class=\"staff\" v-for=\"(staff, iii) of system.staves\" :key=\"iii\"\n\t\t\t\t\t\t\t:transform=\"`translate(${staff.x}, ${staff.y})`\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<g class=\"measure\" v-for=\"(measure, i4) of staff.measures\" :key=\"i4\">\n\t\t\t\t\t\t\t\t<g v-for=\"(token, i5) of measure.matchedTokens\" :key=\"i5\"\n\t\t\t\t\t\t\t\t\t:transform=\"`translate(${token.x}, ${token.y})` + (token.scale && token.scale !== 1 ? ` scale(${token.scale})` : '')\"\n\t\t\t\t\t\t\t\t\tclass=\"token matched\"\n\t\t\t\t\t\t\t\t\t:class=\"{tied: token.tied}\"\n\t\t\t\t\t\t\t\t\t:data-track=\"token.track\"\n\t\t\t\t\t\t\t\t\t:data-index=\"token.index\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<text :data-href=\"token.href\">{{token.fontUnicode}}</text>\n\t\t\t\t\t\t\t\t</g>\n\t\t\t\t\t\t\t</g>\n\t\t\t\t\t\t\t<g class=\"markings\">\n\t\t\t\t\t\t\t\t<g v-for=\"marking of staff.markings\" :key=\"marking.index\"\n\t\t\t\t\t\t\t\t\t:transform=\"`translate(${marking.x}, ${marking.y + staff.yRoundOffset})`\"\n\t\t\t\t\t\t\t\t\t:class=\"marking.cls\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<text>{{marking.text}}</text>\n\t\t\t\t\t\t\t\t\t<text class=\"alter\" v-if=\"marking.alterText\" x=\"-0.2\" y=\"0\">{{marking.alterText}}</text>\n\t\t\t\t\t\t\t\t</g>\n\t\t\t\t\t\t\t</g>\n\t\t\t\t\t\t</g>\n\t\t\t\t\t</g>\n\t\t\t\t</g>\n\t\t\t</g>\n\t\t</svg>\n\t</div>\n</template>\n\n<script>\n\timport Vue from \"vue\";\n\timport {MidiPlayer} from \"@k-l-lambda/music-widgets\";\n\n\timport SheetScheduler from \"../../inc/lilyNotation/scheduler.ts\";\n\timport {animationDelay} from \"../delay.js\";\n\timport {SingleLock} from \"../../inc/mutex.ts\";\n\timport SchedulePool from \"../../inc/schedulePool.ts\";\n\n\timport SheetToken from \"./sheet-token.vue\";\n\n\n\n\tclass PlaceholderTokenList {\n\t\tadd () {}\n\t\tremove () {}\n\t};\n\n\n\tclass MultiClassList {\n\t\tconstructor (elems) {\n\t\t\tthis.elems = elems;\n\t\t}\n\n\t\t/*has (name) {\n\t\t\treturn this.elems[0].has(name);\n\t\t}*/\n\n\t\tadd (name) {\n\t\t\tthis.elems.forEach(elem => elem.classList.add(name));\n\t\t}\n\n\t\tremove (name) {\n\t\t\tthis.elems.forEach(elem => elem.classList.remove(name));\n\t\t}\n\n\t\tget value () {\n\t\t\treturn this.elems[0] && this.elems[0].value;\n\t\t}\n\n\t\tset value (value) {\n\t\t\tthis.elems.forEach(elem => elem.value = value);\n\t\t}\n\t};\n\n\n\tconst elemClassById = (id, parent = document) => {\n\t\tconst elems = parent.querySelectorAll(`.token *[data-href='${id}']`);\n\t\tif (elems.length === 0)\n\t\t\treturn new PlaceholderTokenList();\n\n\t\tif (elems.length === 1)\n\t\t\treturn elems[0].classList;\n\n\t\treturn new MultiClassList(elems);\n\t};\n\n\n\tconst DEFAULT_WATERMARK = process.env.VUE_APP_DEFAULT_WATERMARK;\n\n\n\n\texport default {\n\t\tname: \"sheet-live\",\n\n\n\t\tcomponents: {\n\t\t\tSheetToken,\n\t\t},\n\n\n\t\tprops: {\n\t\t\tdoc: Object,\n\t\t\tmidiNotation: Object,\n\t\t\tpitchContextGroup: Array,\n\t\t\tshowMark: Boolean,\n\t\t\tshowCursor: {\n\t\t\t\ttype: Boolean,\n\t\t\t\tdefault: true,\n\t\t\t},\n\t\t\tnoteHighlight: {\n\t\t\t\ttype: Boolean,\n\t\t\t\tdefault: true,\n\t\t\t},\n\t\t\tbakingMode: {\n\t\t\t\ttype: Boolean,\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t\tbackgroundImages: Array,\n\t\t\tenablePointer: {\n\t\t\t\ttype: Boolean,\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t\tshowPagesProgressively: {\n\t\t\t\ttype: Boolean,\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t\tpartialVisible: {\n\t\t\t\ttype: Boolean,\n\t\t\t\tdefault: true,\n\t\t\t},\n\t\t\tscheduler: Object,\n\t\t\twatermark: {\n\t\t\t\ttype: String,\n\t\t\t\tdefault: DEFAULT_WATERMARK,\n\t\t\t},\n\t\t\tenabledFont: Boolean,\n\t\t\thighlightSymbol: String,\n\t\t},\n\n\n\t\tdata () {\n\t\t\treturn {\n\t\t\t\tmidiPlayer: null,\n\t\t\t\t//scheduler: null,\n\t\t\t\tstatusMap: new Map(),\n\t\t\t\tshownPages: [],\n\t\t\t\twatermarkSize: {\n\t\t\t\t\twidth: 256,\n\t\t\t\t\theight: 256,\n\t\t\t\t},\n\t\t\t};\n\t\t},\n\n\n\t\tcomputed: {\n\t\t\tprogressTicks () {\n\t\t\t\treturn this.midiPlayer && this.midiPlayer.progressTicks;\n\t\t\t},\n\n\n\t\t\tcursorPosition () {\n\t\t\t\tif (!this.midiPlayer || !this.scheduler)\n\t\t\t\t\treturn null;\n\n\t\t\t\treturn this.scheduler.lookupPosition(this.progressTicks);\n\t\t\t},\n\n\n\t\t\tcursorPageIndex () {\n\t\t\t\tif (!this.cursorPosition || !this.doc)\n\t\t\t\t\treturn null;\n\n\t\t\t\tconst system = this.doc.systems[this.cursorPosition.system];\n\t\t\t\tconsole.assert(system, \"invalid cursor system index:\", this.cursorPosition);\n\n\t\t\t\tif (!system)\n\t\t\t\t\treturn null;\n\n\t\t\t\treturn system.pageIndex;\n\t\t\t},\n\n\n\t\t\tcursorSystemIndex () {\n\t\t\t\tif (!this.cursorPosition || !this.doc)\n\t\t\t\t\treturn null;\n\n\t\t\t\treturn this.cursorPosition.system;\n\t\t\t},\n\n\n\t\t\t// DEPRECATED\n\t\t\tcursorRowIndex () {\n\t\t\t\treturn this.cursorSystemIndex;\n\t\t\t},\n\n\n\t\t\tsvgScale () {\n\t\t\t\tconst page = this.doc && this.doc.pages[0];\n\t\t\t\tif (page)\n\t\t\t\t\treturn this.doc.pageSize.width / page.viewBox.width;\n\n\t\t\t\treturn 1;\n\t\t\t},\n\n\n\t\t\tisPlaying () {\n\t\t\t\treturn this.midiPlayer && this.midiPlayer.isPlaying;\n\t\t\t},\n\t\t},\n\n\n\t\tcreated () {\n\t\t\tthis.pageLoadingLock = new SingleLock();\n\t\t\tthis.schedulePool = new SchedulePool(performance);\n\n\t\t\tthis.preparePlayer();\n\n\t\t\tthis.showPages();\n\n\t\t\tif (this.watermark) {\n\t\t\t\tconst img = new Image();\n\t\t\t\timg.src = this.watermark;\n\t\t\t\timg.onload = () => {\n\t\t\t\t\tthis.watermarkSize.width = img.naturalWidth;\n\t\t\t\t\tthis.watermarkSize.height = img.naturalHeight;\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\n\n\t\tmethods: {\n\t\t\tonPlayerMidi (data, timestamp) {\n\t\t\t\tthis.$emit(\"midi\", data, timestamp);\n\n\t\t\t\tif (this.noteHighlight) {\n\t\t\t\t\tif (data.ids) {\n\t\t\t\t\t\tlet task = null;\n\t\t\t\t\t\tconst ids = data.ids;\n\n\t\t\t\t\t\tswitch (data.subtype) {\n\t\t\t\t\t\tcase \"noteOn\":\n\t\t\t\t\t\t\ttask = () => ids.forEach(id => {\n\t\t\t\t\t\t\t\tconst status = this.statusMap.get(id);\n\t\t\t\t\t\t\t\tstatus && status.add(\"on\");\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"noteOff\":\n\t\t\t\t\t\t\ttask = () => ids.forEach(id => {\n\t\t\t\t\t\t\t\tconst status = this.statusMap.get(id);\n\t\t\t\t\t\t\t\tstatus && status.remove(\"on\");\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (task)\n\t\t\t\t\t\t\tthis.schedulePool.appendTask(timestamp, task);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\n\t\t\tsetNoteStatus (noteIndex, className, on) {\n\t\t\t\tif (this.midiNotation) {\n\t\t\t\t\tconst note = this.midiNotation.notes[noteIndex];\n\t\t\t\t\tif (note) {\n\t\t\t\t\t\tif (note.ids) {\n\t\t\t\t\t\t\tnote.ids.forEach(id => {\n\t\t\t\t\t\t\t\tconst list = this.statusMap.get(id);\n\t\t\t\t\t\t\t\tif (list) {\n\t\t\t\t\t\t\t\t\tif (on)\n\t\t\t\t\t\t\t\t\t\tlist.add(className);\n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t\tlist.remove(className);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tconsole.warn(\"invalid note index:\", noteIndex, this.midiNotation.notes.length);\n\t\t\t\t}\n\t\t\t},\n\n\n\t\t\tclearNoteStatus () {\n\t\t\t\tfor (const status of this.statusMap.values())\n\t\t\t\t\tstatus.value = \"\";\n\t\t\t},\n\n\n\t\t\tupdateTokenStatus () {\n\t\t\t\tif (this.midiNotation && this.noteHighlight) {\n\t\t\t\t\tfor (const note of this.midiNotation.notes) {\n\t\t\t\t\t\tconst on = this.midiPlayer.isPlaying && this.midiPlayer.progressTime >= note.start && this.midiPlayer.progressTime < note.start + note.duration;\n\t\t\t\t\t\tif (note.ids) {\n\t\t\t\t\t\t\tnote.ids.forEach(id => {\n\t\t\t\t\t\t\t\tconst status = this.statusMap.get(id);\n\t\t\t\t\t\t\t\tif (status) {\n\t\t\t\t\t\t\t\t\tif (on)\n\t\t\t\t\t\t\t\t\t\tstatus.add(\"on\");\n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t\tstatus.remove(\"on\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\n\t\t\tasync preparePlayer () {\n\t\t\t\t//console.log(\"t1:\", performance.now());\n\t\t\t\t//this.scheduler = null;\n\t\t\t\tthis.statusMap.clear();\n\n\t\t\t\tif (this.midiPlayer) {\n\t\t\t\t\tthis.midiPlayer.dispose();\n\t\t\t\t\tthis.midiPlayer = null;\n\t\t\t\t}\n\n\t\t\t\tif (this.midiNotation) {\n\t\t\t\t\tthis.updateMidiPlayer();\n\n\t\t\t\t\t// wait DOM update\n\t\t\t\t\tawait this.$nextTick();\n\t\t\t\t\tawait this.pageLoadingLock.wait();\n\n\t\t\t\t\tthis.updateStatusMap();\n\n\t\t\t\t\tif (!this.scheduler) {\n\t\t\t\t\t\tconst tokenMap = this.doc && this.doc.getTokenMap();\n\t\t\t\t\t\tif (tokenMap) {\n\t\t\t\t\t\t\tfor (const token of tokenMap.values())\n\t\t\t\t\t\t\t\tVue.set(token, \"on\", token.on || false);\n\n\t\t\t\t\t\t\tconst scheduler = SheetScheduler.createFromNotation(this.midiNotation, tokenMap);\n\t\t\t\t\t\t\tthis.$emit(\"update:scheduler\", scheduler);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\n\t\t\tupdateMidiPlayer () {\n\t\t\t\tif (this.midiPlayer)\n\t\t\t\t\tthis.midiPlayer.dispose();\n\n\t\t\t\tthis.midiPlayer = new MidiPlayer(this.midiNotation, {\n\t\t\t\t\tcacheSpan: 400,\n\t\t\t\t\tonMidi: (data, timestamp) => this.onPlayerMidi(data, timestamp),\n\t\t\t\t\tonTurnCursor: () => this.updateTokenStatus(),\n\t\t\t\t});\n\t\t\t},\n\n\n\t\t\tupdateStatusMap () {\n\t\t\t\tif (this.midiNotation) {\n\t\t\t\t\tthis.midiNotation.notes.forEach(note => note.ids && note.ids.forEach(id => {\n\t\t\t\t\t\tif (!this.statusMap.get(id))\n\t\t\t\t\t\t\tthis.statusMap.set(id, elemClassById(id, this.$el));\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t},\n\n\n\t\t\tupdateStatusMapInPage (page) {\n\t\t\t\tconst tokens = page.querySelectorAll(\".token *[data-href]\");\n\t\t\t\ttokens.forEach(token => {\n\t\t\t\t\tconst id = token.dataset.href;\n\t\t\t\t\t//this.statusMap.set(id, token.classList);\n\t\t\t\t\tthis.statusMap.set(id, elemClassById(id, page));\n\t\t\t\t});\n\t\t\t},\n\n\n\t\t\taddMarkingByTick (tick, pitch, staffIndex, {id, cls, text = \"\\ue0a9\", xoffset = 0} = {}) {\n\t\t\t\tif (!this.pitchContextGroup) {\n\t\t\t\t\tconsole.warn(\"[addMarkingByTick]\tpitchContextGroup is required.\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst contextTable = this.pitchContextGroup[staffIndex];\n\t\t\t\tif (!contextTable) {\n\t\t\t\t\tconsole.warn(\"[addMarkingByTick]\tinvalid staffIndex:\", staffIndex, this.pitchContextGroup.length);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst position = this.scheduler.lookupPosition(tick);\n\t\t\t\tif (!position) {\n\t\t\t\t\tconsole.warn(\"[addMarkingByTick]\tinvalid tick:\", tick);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst context = contextTable.lookup(tick);\n\t\t\t\tif (!context) {\n\t\t\t\t\tconsole.warn(\"no context at tick:\", tick, contextTable);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tconst {y, alter} = context.pitchToY(pitch);\n\n\t\t\t\treturn this.doc.addMarking(position.system, staffIndex, {x: position.x + xoffset, y, text, alter, id, cls});\n\t\t\t},\n\n\n\t\t\taddMarkingByNote (noteIndex, pitch, {id = null, cls, text = \"\\ue0a9\"} = {}) {\n\t\t\t\tconsole.assert(this.midiNotation, \"[addMarkingByNote]\tmidiNotation is null.\");\n\n\t\t\t\tconst note = this.midiNotation.notes[noteIndex];\n\t\t\t\tif (!note) {\n\t\t\t\t\tconsole.warn(\"[addMarkingByNote]\tinvalid noteIndex:\", noteIndex, this.midiNotation.notes.length);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!id) {\n\t\t\t\t\tif (!note.ids)\n\t\t\t\t\t\treturn null;\n\n\t\t\t\t\tid = note.ids[0];\n\t\t\t\t}\n\n\t\t\t\treturn this.addMarkingByTick(note.startTick, pitch, note.staffTrack, {id, cls, text, xoffset: 1.2});\n\t\t\t},\n\n\n\t\t\tremoveMarking (id) {\n\t\t\t\tthis.doc.removeMarking(id);\n\t\t\t},\n\n\n\t\t\tclearMarkings () {\n\t\t\t\tthis.doc.clearMarkings();\n\t\t\t},\n\n\n\t\t\tasync showPages () {\n\t\t\t\tthis.shownPages = [];\n\n\t\t\t\tif (!this.doc)\n\t\t\t\t\treturn;\n\n\t\t\t\tif (this.showPagesProgressively) {\n\t\t\t\t\tawait this.pageLoadingLock.wait();\n\t\t\t\t\tthis.pageLoadingLock.lock();\n\n\t\t\t\t\tfor (let i = 0; i < this.doc.pages.length; ++i) {\n\t\t\t\t\t\tthis.shownPages.push(this.doc.pages[i]);\n\n\t\t\t\t\t\tawait this.$nextTick();\n\t\t\t\t\t\tawait animationDelay();\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.pageLoadingLock.release();\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t\tthis.shownPages = this.doc.pages;\n\t\t\t},\n\n\n\t\t\tonDocChanged () {\n\t\t\t\tthis.clearNoteStatus();\n\t\t\t\tthis.clearMarkings();\n\n\t\t\t\tthis.showPages();\n\t\t\t},\n\n\n\t\t\teventToSystemPosition (system, event) {\n\t\t\t\treturn {\n\t\t\t\t\tx: event.offsetX / this.svgScale - system.x,\n\t\t\t\t\ty: event.offsetY / this.svgScale - system.y,\n\t\t\t\t};\n\t\t\t},\n\n\n\t\t\teventToPointer (system, event) {\n\t\t\t\tconst pos = this.eventToSystemPosition(system, event);\n\t\t\t\tconst systemIndex = system.index;\n\t\t\t\tconst measureIndex = this.doc.lookupMeasureIndex(systemIndex, pos.x);\n\t\t\t\tconst tick = this.scheduler && this.scheduler.lookupTick({system: systemIndex, x: pos.x});\n\n\t\t\t\treturn {\n\t\t\t\t\tsystemIndex, measureIndex, tick, ...pos,\n\t\t\t\t};\n\t\t\t},\n\n\n\t\t\tonMousemovePad (system, event) {\n\t\t\t\tthis.$emit(\"pointerUpdate\", this.eventToPointer(system, event));\n\t\t\t},\n\n\n\t\t\tonMouseleavePad () {\n\t\t\t\tthis.$emit(\"pointerUpdate\", null);\n\t\t\t},\n\n\n\t\t\tonClickPad (system, event) {\n\t\t\t\tthis.$emit(\"pointerClick\", this.eventToPointer(system, event), event);\n\t\t\t},\n\n\n\t\t\tupdatePageVisibility () {\n\t\t\t\t//console.log(\"pages:\", this.$refs.pages);\n\t\t\t\t//const dirtyPages = [];\n\t\t\t\tif (!this.$refs.pages) {\n\t\t\t\t\tconsole.log(\"[updatePageVisibility] $refs.pages is null:\", this.$refs.pages);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.$refs.pages.forEach((pageElem, i) => {\n\t\t\t\t\tconst rect = pageElem.getBoundingClientRect();\n\n\t\t\t\t\tconst page = this.shownPages[i];\n\t\t\t\t\tconst hidden = rect.top > window.innerHeight || rect.bottom < 0 || rect.left > window.innerWidth || rect.right < 0;\n\t\t\t\t\tif (!!page.hidden !== hidden)\n\t\t\t\t\t\tVue.set(page, \"hidden\", hidden);\n\t\t\t\t\t\t//if (!hidden)\n\t\t\t\t\t\t//\tdirtyPages.push(pageElem);\n\t\t\t\t\t\n\t\t\t\t\t//console.log(\"page:\", i, rect, window.innerWidth, window.innerHeight, page.hidden);\n\t\t\t\t});\n\n\t\t\t\t//this.$nextTick(() => dirtyPages.forEach(page => this.updateStatusMapInPage(page)));\n\t\t\t},\n\n\n\t\t\tonPageChanged (event) {\n\t\t\t\t//console.log(\"onPageChanged:\", event);\n\t\t\t\tif (event.target && event.target.nodeName === \"g\")\n\t\t\t\t\tthis.updateStatusMapInPage(event.target);\n\t\t\t},\n\t\t},\n\n\n\t\twatch: {\n\t\t\tmidiNotation: \"preparePlayer\",\n\n\n\t\t\tmidiPlayer (value) {\n\t\t\t\tthis.$emit(\"update:midiPlayer\", value);\n\t\t\t},\n\n\n\t\t\tasync bakingMode () {\n\t\t\t\tawait this.$nextTick();\n\t\t\t\tawait this.pageLoadingLock.wait();\n\n\t\t\t\tthis.updateStatusMap();\n\t\t\t\tthis.updateTokenStatus();\n\t\t\t},\n\n\n\t\t\tdoc: \"onDocChanged\",\n\n\n\t\t\tcursorPageIndex (value) {\n\t\t\t\tthis.$emit(\"cursorPageShift\", value);\n\t\t\t},\n\n\n\t\t\tcursorSystemIndex (value) {\n\t\t\t\tthis.$emit(\"cursorSystemShift\", value);\n\t\t\t},\n\n\n\t\t\tisPlaying (value) {\n\t\t\t\tif (!value)\n\t\t\t\t\tthis.schedulePool.clear();\n\t\t\t},\n\t\t},\n\t};\n</script>\n\n<style lang=\"scss\" scoped>\n\t@import \"../styles/sheetConstants.css\";\n\n\n\t.sheet\n\t{\n\t\t.mark\n\t\t{\n\t\t\t//visibility: hidden;\n\t\t\topacity: 0;\n\n\t\t\t.locator\n\t\t\t{\n\t\t\t\ttext\n\t\t\t\t{\n\t\t\t\t\tfont-size: 2px;\n\t\t\t\t\ttext-anchor: start;\n\t\t\t\t\tpointer-events: none;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\trect\n\t\t\t{\n\t\t\t\tfill: transparent;\n\t\t\t}\n\t\t}\n\n\t\t.wm\n\t\t{\n\t\t\tpointer-events: none;\n\t\t}\n\n\t\t.cursor\n\t\t{\n\t\t\tpointer-events: none;\n\t\t}\n\n\t\t.bake\n\t\t{\n\t\t\tfont-family: var(--music-font-family);\n\n\t\t\t.token\n\t\t\t{\n\t\t\t\ttext\n\t\t\t\t{\n\t\t\t\t\tuser-select: none;\n\t\t\t\t\tpointer-events: none;\n\t\t\t\t\tfont-size: var(--music-font-size);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.markings\n\t\t{\n\t\t\ttext\n\t\t\t{\n\t\t\t\tfont-family: var(--music-font-family);\n\t\t\t\tuser-select: none;\n\t\t\t\tfont-size: var(--music-font-size);\n\t\t\t}\n\n\t\t\t.alter\n\t\t\t{\n\t\t\t\ttext-anchor: end;\n\t\t\t}\n\t\t}\n\t}\n</style>\n\n<style>\n\t@import \"../styles/music-font.css\";\n</style>\n<style lang=\"scss\">\n\t@import \"../styles/sheetConstants.css\";\n\n\n\t.sheet\n\t{\n\t\t.bake\n\t\t{\n\t\t\t.token\n\t\t\t{\n\t\t\t\ttext\n\t\t\t\t{\n\t\t\t\t\tfill: var(--lotus-token-default-color);\n\n\t\t\t\t\t&.on\n\t\t\t\t\t{\n\t\t\t\t\t\tfill: var(--lotus-token-on-color);\n\t\t\t\t\t\tstroke-width: 0.1;\n\t\t\t\t\t\tstroke: var(--lotus-token-on-color);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n</style>\n"]}]}