{"remainingRequest":"/home/camus/work/lotus/node_modules/babel-loader/lib/index.js!/home/camus/work/lotus/node_modules/ts-loader/index.js??ref--15-2!/home/camus/work/lotus/node_modules/eslint-loader/index.js??ref--14-0!/home/camus/work/lotus/inc/staffSvg/sheetDocument.ts","dependencies":[{"path":"/home/camus/work/lotus/inc/staffSvg/sheetDocument.ts","mtime":1732184618441},{"path":"/home/camus/work/lotus/node_modules/cache-loader/dist/cjs.js","mtime":1719800821084},{"path":"/home/camus/work/lotus/node_modules/babel-loader/lib/index.js","mtime":1727163989637},{"path":"/home/camus/work/lotus/node_modules/ts-loader/index.js","mtime":1726221607070},{"path":"/home/camus/work/lotus/node_modules/eslint-loader/index.js","mtime":1719800837044}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IHsgQ01fVE9fUFggfSBmcm9tICIuLi9jb25zdGFudHMiOwppbXBvcnQgeyByb3VuZE51bWJlciB9IGZyb20gIi4vdXRpbHMiOwovLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUKaW1wb3J0IFN0YWZmVG9rZW4gZnJvbSAiLi9zdGFmZlRva2VuIjsKaW1wb3J0IHBpY2sgZnJvbSAiLi4vcGljayI7CjsKOwo7CjsKLypjb25zdCBBTFRFUl9QUkVGSVhFUyA9IHsKICAgIFstMl06ICJcdTI2NkRcdTI2NkQiLAogICAgWy0xXTogIlx1MjY2RCIsCiAgICBbMF06ICJcdTI2NkUiLAogICAgWzFdOiAiXHUyNjZGIiwKICAgIFsyXTogIlx1RDgzNFx1REQyQSIsCn07Ki8KLy8gY2hhciBjb2RlcyBkZWZpbmVkIGluIG11c2ljIGZvbnQKY29uc3QgQUxURVJfUFJFRklYRVMgPSB7CiAgWy0yXTogIlx1ZTAyYSIsCiAgWy0xXTogIlx1ZTAyMSIsCiAgWzBdOiAiXHVlMDFkIiwKICBbMV06ICJcdWUwMTMiLAogIFsyXTogIlx1ZTAxYyIKfTsKbGV0IHNoZWV0TWFya2luZ0luZGV4ID0gMDsKY2xhc3MgU2hlZXRNYXJraW5nIHsKICBjb25zdHJ1Y3RvcihmaWVsZHMpIHsKICAgIHRoaXMuaW5kZXggPSBzaGVldE1hcmtpbmdJbmRleCsrOwogICAgT2JqZWN0LmFzc2lnbih0aGlzLCBmaWVsZHMpOwogIH0KICBnZXQgYWx0ZXJUZXh0KCkgewogICAgcmV0dXJuIE51bWJlci5pc0ludGVnZXIodGhpcy5hbHRlcikgPyBBTFRFUl9QUkVGSVhFU1t0aGlzLmFsdGVyXSA6IG51bGw7CiAgfQp9CjsKY29uc3QgcGFyc2VVbml0RXhwID0gZXhwID0+IHsKICBpZiAoL1tcZC5dK21tLy50ZXN0KGV4cCkpIHsKICAgIGNvbnN0IFt2YWx1ZV0gPSBleHAubWF0Y2goL1tcZC5dKy8pOwogICAgcmV0dXJuIE51bWJlcih2YWx1ZSkgKiAwLjEgKiBDTV9UT19QWDsKICB9CiAgcmV0dXJuIE51bWJlcihleHApOwp9Owpjb25zdCBjYyA9IGFycmF5cyA9PiBbXS5jb25jYXQoLi4uYXJyYXlzKTsKY2xhc3MgU2hlZXREb2N1bWVudCB7CiAgY29uc3RydWN0b3IoZmllbGRzLCB7CiAgICBpbml0aWFsaXplID0gdHJ1ZQogIH0gPSB7fSkgewogICAgT2JqZWN0LmFzc2lnbih0aGlzLCBmaWVsZHMpOwogICAgaWYgKGluaXRpYWxpemUpIHRoaXMudXBkYXRlVG9rZW5JbmRleCgpOwogIH0KICBnZXQgc3lzdGVtcygpIHsKICAgIHJldHVybiBbXS5jb25jYXQoLi4udGhpcy5wYWdlcy5tYXAocGFnZSA9PiBwYWdlLnN5c3RlbXMpKTsKICB9CiAgLy8gREVQUkVDQVRFRAogIGdldCByb3dzKCkgewogICAgcmV0dXJuIHRoaXMuc3lzdGVtczsKICB9CiAgZ2V0IHRyYWNrQ291bnQoKSB7CiAgICByZXR1cm4gTWF0aC5tYXgoLi4udGhpcy5zeXN0ZW1zLm1hcChzeXN0ZW0gPT4gc3lzdGVtLnN0YXZlcy5sZW5ndGgpLCAwKTsKICB9CiAgZ2V0IHBhZ2VTaXplKCkgewogICAgY29uc3QgcGFnZSA9IHRoaXMucGFnZXMgJiYgdGhpcy5wYWdlc1swXTsKICAgIGlmICghcGFnZSkgcmV0dXJuIG51bGw7CiAgICByZXR1cm4gewogICAgICB3aWR0aDogcGFyc2VVbml0RXhwKHBhZ2Uud2lkdGgpLAogICAgICBoZWlnaHQ6IHBhcnNlVW5pdEV4cChwYWdlLmhlaWdodCkKICAgIH07CiAgfQogIHVwZGF0ZVRva2VuSW5kZXgoKSB7CiAgICAvLyByZW1vdmUgbnVsbCBwYWdlcyBmb3IgYnJva2VuIGRvY3VtZW50CiAgICB0aGlzLnBhZ2VzID0gdGhpcy5wYWdlcy5maWx0ZXIocGFnZSA9PiBwYWdlKTsKICAgIHRoaXMucGFnZXMuZm9yRWFjaCgocGFnZSwgaW5kZXgpID0+IHBhZ2Uuc3lzdGVtcy5mb3JFYWNoKHN5c3RlbSA9PiBzeXN0ZW0ucGFnZUluZGV4ID0gaW5kZXgpKTsKICAgIGxldCByb3dNZWFzdXJlSW5kZXggPSAxOwogICAgdGhpcy5zeXN0ZW1zLmZvckVhY2goKHN5c3RlbSwgaW5kZXgpID0+IHsKICAgICAgc3lzdGVtLmluZGV4ID0gaW5kZXg7CiAgICAgIHN5c3RlbS53aWR0aCA9IHN5c3RlbS50b2tlbnMuY29uY2F0KC4uLnN5c3RlbS5zdGF2ZXMubWFwKHN0YWZmID0+IHN0YWZmLnRva2VucykpLnJlZHVjZSgobWF4LCB0b2tlbikgPT4gTWF0aC5tYXgobWF4LCB0b2tlbi54KSwgMCk7CiAgICAgIHN5c3RlbS5tZWFzdXJlSW5kaWNlcyA9IFtdOwogICAgICBzeXN0ZW0uc3RhdmVzID0gc3lzdGVtLnN0YXZlcy5maWx0ZXIocyA9PiBzKTsKICAgICAgc3lzdGVtLnN0YXZlcy5mb3JFYWNoKChzdGFmZiwgdCkgPT4gewogICAgICAgIHN0YWZmLm1lYXN1cmVzLmZvckVhY2goKG1lYXN1cmUsIGkpID0+IHsKICAgICAgICAgIG1lYXN1cmUuaW5kZXggPSByb3dNZWFzdXJlSW5kZXggKyBpOwogICAgICAgICAgbWVhc3VyZS5jbGFzcyA9IHt9OwogICAgICAgICAgbWVhc3VyZS50b2tlbnMuZm9yRWFjaCh0b2tlbiA9PiB7CiAgICAgICAgICAgIHRva2VuLnN5c3RlbSA9IGluZGV4OwogICAgICAgICAgICB0b2tlbi5tZWFzdXJlID0gbWVhc3VyZS5pbmRleDsKICAgICAgICAgICAgdG9rZW4uZW5kWCA9IG1lYXN1cmUubm90ZVJhbmdlLmVuZDsKICAgICAgICAgIH0pOwogICAgICAgICAgbWVhc3VyZS5saW5lWCA9IG1lYXN1cmUubGluZVggfHwgMDsKICAgICAgICAgIGlmIChpIDwgc3RhZmYubWVhc3VyZXMubGVuZ3RoIC0gMSkgc3RhZmYubWVhc3VyZXNbaSArIDFdLmxpbmVYID0gbWVhc3VyZS5ub3RlUmFuZ2UuZW5kOwogICAgICAgICAgaWYgKHQgPT09IDApIHN5c3RlbS5tZWFzdXJlSW5kaWNlcy5wdXNoKFttZWFzdXJlLm5vdGVSYW5nZS5lbmQsIG1lYXN1cmUuaW5kZXhdKTsKICAgICAgICB9KTsKICAgICAgICBzdGFmZi5tYXJraW5ncyA9IFtdOwogICAgICAgIHN0YWZmLnlSb3VuZE9mZnNldCA9IDA7CiAgICAgICAgY29uc3QgbGluZSA9IHN0YWZmLnRva2Vucy5maW5kKHRva2VuID0+IHRva2VuLmlzKCJTVEFGRl9MSU5FIikpOwogICAgICAgIGlmIChsaW5lKSBzdGFmZi55Um91bmRPZmZzZXQgPSBsaW5lLnkgLSBsaW5lLnJ5OwogICAgICB9KTsKICAgICAgcm93TWVhc3VyZUluZGV4ICs9IE1hdGgubWF4KC4uLnN5c3RlbS5zdGF2ZXMubWFwKHN0YWZmID0+IHN0YWZmLm1lYXN1cmVzLmxlbmd0aCkpOwogICAgfSk7CiAgfQogIHVwZGF0ZU1hdGNoZWRUb2tlbnMobWF0Y2hlZElkcykgewogICAgdGhpcy5zeXN0ZW1zLmZvckVhY2goc3lzdGVtID0+IHsKICAgICAgc3lzdGVtLnN0YXZlcy5mb3JFYWNoKHN0YWZmID0+IHN0YWZmLm1lYXN1cmVzLmZvckVhY2gobWVhc3VyZSA9PiB7CiAgICAgICAgbWVhc3VyZS5tYXRjaGVkVG9rZW5zID0gbWVhc3VyZS50b2tlbnMuZmlsdGVyKHRva2VuID0+IHRva2VuLmhyZWYgJiYgbWF0Y2hlZElkcy5oYXModG9rZW4uaHJlZikpOwogICAgICAgIGlmICghc3RhZmYueVJvdW5kT2Zmc2V0KSB7CiAgICAgICAgICBjb25zdCB0b2tlbiA9IG1lYXN1cmUubWF0Y2hlZFRva2Vuc1swXTsKICAgICAgICAgIGlmICh0b2tlbikgc3RhZmYueVJvdW5kT2Zmc2V0ID0gdG9rZW4ueSAtIHRva2VuLnJ5OwogICAgICAgIH0KICAgICAgfSkpOwogICAgfSk7CiAgfQogIGFkZE1hcmtpbmcoc3lzdGVtSW5kZXgsIHN0YWZmSW5kZXgsIGRhdGEpIHsKICAgIGNvbnN0IHN5c3RlbSA9IHRoaXMuc3lzdGVtc1tzeXN0ZW1JbmRleF07CiAgICBpZiAoIXN5c3RlbSkgewogICAgICBjb25zb2xlLndhcm4oInN5c3RlbSBpbmRleCBvdXQgb2YgcmFuZ2U6Iiwgc3lzdGVtSW5kZXgsIHRoaXMuc3lzdGVtcy5sZW5ndGgpOwogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBzdGFmZiA9IHN5c3RlbS5zdGF2ZXNbc3RhZmZJbmRleF07CiAgICBpZiAoIXN0YWZmKSB7CiAgICAgIGNvbnNvbGUud2Fybigic3RhZmYgaW5kZXggb3V0IG9mIHJhbmdlOiIsIHN0YWZmSW5kZXgsIHN5c3RlbS5zdGF2ZXMubGVuZ3RoKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgY29uc3QgbWFya2luZyA9IG5ldyBTaGVldE1hcmtpbmcoZGF0YSk7CiAgICBzdGFmZi5tYXJraW5ncy5wdXNoKG1hcmtpbmcpOwogICAgcmV0dXJuIG1hcmtpbmc7CiAgfQogIHJlbW92ZU1hcmtpbmcoaWQpIHsKICAgIHRoaXMuc3lzdGVtcy5mb3JFYWNoKHN5c3RlbSA9PiBzeXN0ZW0uc3RhdmVzLmZvckVhY2goc3RhZmYgPT4gc3RhZmYubWFya2luZ3MgPSBzdGFmZi5tYXJraW5ncy5maWx0ZXIobWFya2luZyA9PiBtYXJraW5nLmlkICE9PSBpZCkpKTsKICB9CiAgY2xlYXJNYXJraW5ncygpIHsKICAgIHRoaXMuc3lzdGVtcy5mb3JFYWNoKHN5c3RlbSA9PiBzeXN0ZW0uc3RhdmVzLmZvckVhY2goc3RhZmYgPT4gc3RhZmYubWFya2luZ3MgPSBbXSkpOwogIH0KICB0b0pTT04oKSB7CiAgICByZXR1cm4gewogICAgICBfX3Byb3RvdHlwZTogIlNoZWV0RG9jdW1lbnQiLAogICAgICBwYWdlczogdGhpcy5wYWdlcwogICAgfTsKICB9CiAgZ2V0TG9jYXRpb25UYWJsZSgpIHsKICAgIGNvbnN0IHRhYmxlID0ge307CiAgICB0aGlzLnN5c3RlbXMuZm9yRWFjaChzeXN0ZW0gPT4gc3lzdGVtLnN0YXZlcy5mb3JFYWNoKHN0YWZmID0+IHN0YWZmLm1lYXN1cmVzLmZvckVhY2gobWVhc3VyZSA9PiB7CiAgICAgIG1lYXN1cmUudG9rZW5zLmZvckVhY2godG9rZW4gPT4gewogICAgICAgIGlmICh0b2tlbi5ocmVmKSB7CiAgICAgICAgICBjb25zdCBsb2NhdGlvbiA9IHRva2VuLmhyZWYubWF0Y2goL1xkKy9nKTsKICAgICAgICAgIGlmIChsb2NhdGlvbikgewogICAgICAgICAgICBjb25zdCBbbGluZSwgY29sdW1uXSA9IGxvY2F0aW9uLm1hcChOdW1iZXIpOwogICAgICAgICAgICB0YWJsZVtsaW5lXSA9IHRhYmxlW2xpbmVdIHx8IHt9OwogICAgICAgICAgICB0YWJsZVtsaW5lXVtjb2x1bW5dID0gTnVtYmVyLmlzRmluaXRlKHRhYmxlW2xpbmVdW2NvbHVtbl0pID8gTWF0aC5taW4odGFibGVbbGluZV1bY29sdW1uXSwgbWVhc3VyZS5pbmRleCkgOiBtZWFzdXJlLmluZGV4OwogICAgICAgICAgfSBlbHNlIGNvbnNvbGUud2FybigiaW52YWxpZCBocmVmOiIsIHRva2VuLmhyZWYpOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9KSkpOwogICAgcmV0dXJuIHRhYmxlOwogIH0KICBsb29rdXBNZWFzdXJlSW5kZXgoc3lzdGVtSW5kZXgsIHgpIHsKICAgIGNvbnN0IHN5c3RlbSA9IHRoaXMuc3lzdGVtc1tzeXN0ZW1JbmRleF07CiAgICBpZiAoIXN5c3RlbSB8fCAhc3lzdGVtLm1lYXN1cmVJbmRpY2VzKSByZXR1cm4gbnVsbDsKICAgIGNvbnN0IFtfLCBpbmRleF0gPSBzeXN0ZW0ubWVhc3VyZUluZGljZXMuZmluZCgoW2VuZF0pID0+IHggPCBlbmQpIHx8IFtudWxsLCBudWxsXTsKICAgIHJldHVybiBpbmRleDsKICB9CiAgdG9rZW5zSW5TeXN0ZW0oc3lzdGVtSW5kZXgpIHsKICAgIGNvbnN0IHN5c3RlbSA9IHRoaXMuc3lzdGVtc1tzeXN0ZW1JbmRleF07CiAgICBpZiAoIXN5c3RlbSkgcmV0dXJuIG51bGw7CiAgICByZXR1cm4gc3lzdGVtLnN0YXZlcy5yZWR1Y2UoKHRva2Vucywgc3RhZmYpID0+IHsKICAgICAgY29uc3QgdHJhbnNsYXRlID0gdG9rZW4gPT4gdG9rZW4udHJhbnNsYXRlKHsKICAgICAgICB4OiBzdGFmZi54LAogICAgICAgIHk6IHN0YWZmLnkKICAgICAgfSk7CiAgICAgIHRva2Vucy5wdXNoKC4uLnN0YWZmLnRva2Vucy5tYXAodHJhbnNsYXRlKSk7CiAgICAgIHN0YWZmLm1lYXN1cmVzLmZvckVhY2gobWVhc3VyZSA9PiB0b2tlbnMucHVzaCguLi5tZWFzdXJlLnRva2Vucy5tYXAodHJhbnNsYXRlKSkpOwogICAgICByZXR1cm4gdG9rZW5zOwogICAgfSwgWy4uLnN5c3RlbS50b2tlbnNdKTsKICB9CiAgdG9rZW5zSW5QYWdlKHBhZ2VJbmRleCwgewogICAgd2l0aFBhZ2VUb2tlbnMgPSBmYWxzZQogIH0gPSB7fSkgewogICAgY29uc3QgcGFnZSA9IHRoaXMucGFnZXNbcGFnZUluZGV4XTsKICAgIGlmICghcGFnZSkgcmV0dXJuIG51bGw7CiAgICByZXR1cm4gcGFnZS5zeXN0ZW1zLnJlZHVjZSgodG9rZW5zLCBzeXN0ZW0pID0+IHsKICAgICAgdG9rZW5zLnB1c2goLi4udGhpcy50b2tlbnNJblN5c3RlbShzeXN0ZW0uaW5kZXgpLm1hcCh0b2tlbiA9PiB0b2tlbi50cmFuc2xhdGUoewogICAgICAgIHg6IHN5c3RlbS54LAogICAgICAgIHk6IHN5c3RlbS55CiAgICAgIH0pKSk7CiAgICAgIHJldHVybiB0b2tlbnM7CiAgICB9LCB3aXRoUGFnZVRva2VucyA/IFsuLi5wYWdlLnRva2Vuc10gOiBbXSk7CiAgfQogIGZpdFBhZ2VWaWV3Ym94KHsKICAgIG1hcmdpbiA9IDUsCiAgICB2ZXJ0aWNhbENyb3BPbmx5ID0gZmFsc2UsCiAgICBwYWdlVG9rZW5zID0gZmFsc2UKICB9ID0ge30pIHsKICAgIGlmICghdGhpcy5wYWdlcyB8fCAhdGhpcy5wYWdlcy5sZW5ndGgpIHJldHVybjsKICAgIGNvbnN0IHN2Z1NjYWxlID0gdGhpcy5wYWdlU2l6ZS53aWR0aCAvIHRoaXMucGFnZXNbMF0udmlld0JveC53aWR0aDsKICAgIHRoaXMucGFnZXMuZm9yRWFjaCgocGFnZSwgaSkgPT4gewogICAgICBjb25zdCByZWN0cyA9IHBhZ2Uuc3lzdGVtcy5maWx0ZXIoc3lzdGVtID0+IE51bWJlci5pc0Zpbml0ZShzeXN0ZW0ueCArIHN5c3RlbS53aWR0aCArIHN5c3RlbS55ICsgc3lzdGVtLnRvcCArIHN5c3RlbS5ib3R0b20pKS5tYXAoc3lzdGVtID0+IFtzeXN0ZW0ueCwgc3lzdGVtLnggKyBzeXN0ZW0ud2lkdGgsIHN5c3RlbS55ICsgc3lzdGVtLnRvcCwgc3lzdGVtLnkgKyBzeXN0ZW0uYm90dG9tXSk7CiAgICAgIGNvbnN0IHRva2VucyA9IHRoaXMudG9rZW5zSW5QYWdlKGksIHsKICAgICAgICB3aXRoUGFnZVRva2VuczogcGFnZVRva2VucwogICAgICB9KSB8fCBbXTsKICAgICAgY29uc3QgdG9rZW5YcyA9IHRva2Vucy5tYXAodG9rZW4gPT4gdG9rZW4ueCkuZmlsdGVyKE51bWJlci5pc0Zpbml0ZSk7CiAgICAgIGNvbnN0IHRva2VuWXMgPSB0b2tlbnMubWFwKHRva2VuID0+IHRva2VuLnkpLmZpbHRlcihOdW1iZXIuaXNGaW5pdGUpOwogICAgICAvL2NvbnNvbGUuZGVidWcoInRva2VuczoiLCBpLCB0b2tlbnMsIHRva2VuWHMsIHRva2VuWXMpOwogICAgICBpZiAoIXJlY3RzLmxlbmd0aCkgcmV0dXJuOwogICAgICBjb25zdCBsZWZ0ID0gTWF0aC5taW4oLi4ucmVjdHMubWFwKHJlY3QgPT4gcmVjdFswXSksIC4uLnRva2VuWHMpOwogICAgICBjb25zdCByaWdodCA9IE1hdGgubWF4KC4uLnJlY3RzLm1hcChyZWN0ID0+IHJlY3RbMV0pLCAuLi50b2tlblhzKTsKICAgICAgY29uc3QgdG9wID0gTWF0aC5taW4oLi4ucmVjdHMubWFwKHJlY3QgPT4gcmVjdFsyXSksIC4uLnRva2VuWXMpOwogICAgICBjb25zdCBib3R0b20gPSBNYXRoLm1heCguLi5yZWN0cy5tYXAocmVjdCA9PiByZWN0WzNdKSwgLi4udG9rZW5Zcyk7CiAgICAgIGNvbnN0IHggPSB2ZXJ0aWNhbENyb3BPbmx5ID8gcGFnZS52aWV3Qm94LnggOiBsZWZ0IC0gbWFyZ2luOwogICAgICBjb25zdCB5ID0gdmVydGljYWxDcm9wT25seSAmJiBpID09PSAwID8gcGFnZS52aWV3Qm94LnkgOiB0b3AgLSBtYXJnaW47CiAgICAgIGNvbnN0IHdpZHRoID0gdmVydGljYWxDcm9wT25seSA/IHBhZ2Uudmlld0JveC53aWR0aCA6IHJpZ2h0IC0gbGVmdCArIG1hcmdpbiAqIDI7CiAgICAgIGNvbnN0IGhlaWdodCA9IHZlcnRpY2FsQ3JvcE9ubHkgJiYgaSA9PT0gMCA/IGJvdHRvbSArIG1hcmdpbiAtIHkgOiBib3R0b20gLSB0b3AgKyBtYXJnaW4gKiAyOwogICAgICBwYWdlLnZpZXdCb3ggPSB7CiAgICAgICAgeCwKICAgICAgICB5LAogICAgICAgIHdpZHRoLAogICAgICAgIGhlaWdodAogICAgICB9OwogICAgICBwYWdlLndpZHRoID0gKHBhZ2Uudmlld0JveC53aWR0aCAqIHN2Z1NjYWxlKS50b1N0cmluZygpOwogICAgICBwYWdlLmhlaWdodCA9IChwYWdlLnZpZXdCb3guaGVpZ2h0ICogc3ZnU2NhbGUpLnRvU3RyaW5nKCk7CiAgICB9KTsKICB9CiAgZ2V0VG9rZW5zT2Yoc3ltYm9sKSB7CiAgICByZXR1cm4gdGhpcy5zeXN0ZW1zLnJlZHVjZSgodG9rZW5zLCBzeXN0ZW0pID0+IHsKICAgICAgc3lzdGVtLnN0YXZlcy5mb3JFYWNoKHN0YWZmID0+IHN0YWZmLm1lYXN1cmVzLmZvckVhY2gobWVhc3VyZSA9PiB0b2tlbnMucHVzaCguLi5tZWFzdXJlLnRva2Vucy5maWx0ZXIodG9rZW4gPT4gdG9rZW4uaXMoc3ltYm9sKSkpKSk7CiAgICAgIHJldHVybiB0b2tlbnM7CiAgICB9LCBbXSk7CiAgfQogIGdldE5vdGVIZWFkcygpIHsKICAgIHJldHVybiB0aGlzLmdldFRva2Vuc09mKCJOT1RFSEVBRCIpOwogIH0KICBnZXROb3RlcygpIHsKICAgIHJldHVybiB0aGlzLmdldFRva2Vuc09mKCJOT1RFIik7CiAgfQogIGdldFRva2VuTWFwKCkgewogICAgcmV0dXJuIHRoaXMuc3lzdGVtcy5yZWR1Y2UoKHRva2VuTWFwLCBzeXN0ZW0pID0+IHsKICAgICAgc3lzdGVtLnN0YXZlcy5mb3JFYWNoKHN0YWZmID0+IHN0YWZmLm1lYXN1cmVzLmZvckVhY2gobWVhc3VyZSA9PiBtZWFzdXJlLnRva2Vucy5maWx0ZXIodG9rZW4gPT4gdG9rZW4uaHJlZikuZm9yRWFjaCh0b2tlbiA9PiB0b2tlbk1hcC5zZXQodG9rZW4uaHJlZiwgdG9rZW4pKSkpOwogICAgICByZXR1cm4gdG9rZW5NYXA7CiAgICB9LCBuZXcgTWFwKCkpOwogIH0KICBmaW5kVG9rZW5zQXJvdW5kKHRva2VuLCBpbmRpY2VzKSB7CiAgICBjb25zdCBzeXN0ZW0gPSB0aGlzLnN5c3RlbXNbdG9rZW4uc3lzdGVtXTsKICAgIGlmIChzeXN0ZW0pIHsKICAgICAgY29uc3QgdG9rZW5zID0gWy4uLnN5c3RlbS50b2tlbnMsIC4uLmNjKHN5c3RlbS5zdGF2ZXMubWFwKHN0YWZmID0+IFsuLi5zdGFmZi50b2tlbnMsIC4uLmNjKHN0YWZmLm1lYXN1cmVzLm1hcChtZWFzdXJlID0+IG1lYXN1cmUudG9rZW5zKSldKSldOwogICAgICByZXR1cm4gdG9rZW5zLmZpbHRlcih0b2tlbiA9PiBpbmRpY2VzLmluY2x1ZGVzKHRva2VuLmluZGV4KSk7CiAgICB9CiAgICByZXR1cm4gbnVsbDsKICB9CiAgZmluZFRva2VuQXJvdW5kKHRva2VuLCBpbmRleCkgewogICAgY29uc3QgcmVzdWx0cyA9IHRoaXMuZmluZFRva2Vuc0Fyb3VuZCh0b2tlbiwgW2luZGV4XSk7CiAgICByZXR1cm4gcmVzdWx0cyAmJiByZXN1bHRzWzBdOwogIH0KICBhbGlnblRva2Vuc1dpdGhOb3RhdGlvbihub3RhdGlvbiwgewogICAgcGFydGlhbCA9IGZhbHNlLAogICAgYXNzaWduRmxhZ3MgPSBmYWxzZQogIH0gPSB7fSkgewogICAgY29uc3Qgc2hvcnRJZCA9IGhyZWYgPT4gaHJlZi5zcGxpdCgiOiIpLnNsaWNlKDAsIDIpLmpvaW4oIjoiKTsKICAgIGNvbnN0IG5vdGVUb2tlbnMgPSB0aGlzLmdldE5vdGVzKCk7CiAgICBjb25zdCB0b2tlbk1hcCA9IG5vdGVUb2tlbnMucmVkdWNlKChtYXAsIHRva2VuKSA9PiB7CiAgICAgIGNvbnN0IHNpZCA9IHRva2VuLmhyZWYgJiYgc2hvcnRJZCh0b2tlbi5ocmVmKTsKICAgICAgY29uc3QgdG9rZW5zID0gbWFwLmdldChzaWQpIHx8IFtdOwogICAgICAvLyBzaGlmdCBjb2x1bW4gZm9yIGNvbW1hbmQgY2hvcmQgZWxlbWVudAogICAgICBpZiAoL15cXC8udGVzdCh0b2tlbi5zb3VyY2UpKSB7CiAgICAgICAgY29uc3Qgc3BhY2VDYXB0dXJlID0gdG9rZW4uc291cmNlLm1hdGNoKC8oPzw9XHMrKShcU3wkKS8pOwogICAgICAgIGlmIChzcGFjZUNhcHR1cmUpIHsKICAgICAgICAgIGNvbnN0IFtsaW5lLCBjb2x1bW5dID0gdG9rZW4uaHJlZi5tYXRjaCgvXGQrL2cpLm1hcChOdW1iZXIpOwogICAgICAgICAgbWFwLnNldChgJHtsaW5lfToke2NvbHVtbiArIHNwYWNlQ2FwdHVyZS5pbmRleH1gLCBbdG9rZW5dKTsKICAgICAgICAgIHJldHVybiBtYXA7CiAgICAgICAgfSBlbHNlIGNvbnNvbGUud2FybigidW5yZXNvbHZlZCBjb21tYW5kIGNob3JkIGVsZW1lbnQ6IiwgdG9rZW4uc291cmNlLCB0b2tlbik7CiAgICAgIH0KICAgICAgdG9rZW5zLnB1c2godG9rZW4pOwogICAgICB0b2tlbi5ocmVmICYmIG1hcC5zZXQoc2lkLCB0b2tlbnMpOwogICAgICByZXR1cm4gbWFwOwogICAgfSwgbmV3IE1hcCgpKTsKICAgIC8vY29uc29sZS5hc3NlcnQodG9rZW5NYXAuc2l6ZSA9PT0gbm90ZVRva2Vucy5sZW5ndGgsICJ0b2tlbnMgbm90ZVRva2VucyBjb3VudCBkaXNtYXRjaDoiLCB0b2tlbk1hcC5zaXplLCBub3RlVG9rZW5zLmxlbmd0aCk7CiAgICBjb25zdCB0b2tlblRpY2tNYXAgPSBuZXcgTWFwKCk7CiAgICAvLyBhc3NpZ24gdGljayAmIHRyYWNrCiAgICBub3RhdGlvbi5tZWFzdXJlcy5mb3JFYWNoKChtZWFzdXJlLCBtaSkgPT4gewogICAgICBjb25zdCBwZW5kaW5nU3RlbXMgPSBuZXcgTWFwKCk7IC8vIHN0ZW0gLT4gYmVhbQogICAgICBtZWFzdXJlLm5vdGVzLmZvckVhY2gobm90ZSA9PiB7CiAgICAgICAgY29uc3QgdG9rZW5zID0gdG9rZW5NYXAuZ2V0KHNob3J0SWQobm90ZS5pZCkpOwogICAgICAgIGlmICh0b2tlbnMpIHsKICAgICAgICAgIHRva2Vucy5mb3JFYWNoKHRva2VuID0+IHsKICAgICAgICAgICAgdG9rZW4uaHJlZiA9IG5vdGUuaWQ7CiAgICAgICAgICAgIGlmICghTnVtYmVyLmlzRmluaXRlKHRva2VuLnRpY2spKSB7CiAgICAgICAgICAgICAgdG9rZW5UaWNrTWFwLnNldCh0b2tlbiwgewogICAgICAgICAgICAgICAgbWVhc3VyZVRpY2s6IG1lYXN1cmUudGljaywKICAgICAgICAgICAgICAgIHRpY2s6IG1lYXN1cmUudGljayArIG5vdGUudGljawogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIHRva2VuLnBpdGNoID0gbm90ZS5waXRjaDsKICAgICAgICAgICAgICB0b2tlbi50cmFjayA9IG5vdGUudHJhY2s7CiAgICAgICAgICAgICAgaWYgKHRva2VuLnN0ZW1zKSB7CiAgICAgICAgICAgICAgICBjb25zdCBzdGVtcyA9IHRoaXMuZmluZFRva2Vuc0Fyb3VuZCh0b2tlbiwgdG9rZW4uc3RlbXMpOwogICAgICAgICAgICAgICAgaWYgKHN0ZW1zKSB7CiAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZW0gPSBzdGVtcy5maW5kKHN0ZW0gPT4gc3RlbS5kaXZpc2lvbiA9PT0gbm90ZS5kaXZpc2lvbiAmJiAhTnVtYmVyLmlzRmluaXRlKHN0ZW0udHJhY2spKTsKICAgICAgICAgICAgICAgICAgaWYgKHN0ZW0pIHsKICAgICAgICAgICAgICAgICAgICBzdGVtLnRyYWNrID0gbm90ZS50cmFjazsKICAgICAgICAgICAgICAgICAgICBpZiAoc3RlbS5iZWFtID49IDApIHsKICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlYW0gPSB0aGlzLmZpbmRUb2tlbkFyb3VuZChzdGVtLCBzdGVtLmJlYW0pOwogICAgICAgICAgICAgICAgICAgICAgaWYgKHN0ZW1zLmxlbmd0aCA8IDIgfHwgc3RlbXNbMF0uZGl2aXNpb24gIT09IHN0ZW1zWzFdLmRpdmlzaW9uKSBiZWFtLnRyYWNrID0gc3RlbS50cmFjazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXN0ZW1zLmZpbmQoc3RlbSA9PiBzdGVtLmRpdmlzaW9uID09PSBub3RlLmRpdmlzaW9uKSkgY29uc29sZS53YXJuKCJtaXNzZWQgc3RlbToiLCBtaSwgdG9rZW4uaHJlZiwgbm90ZS5kaXZpc2lvbiwgdG9rZW4uc3RlbXMsIHN0ZW1zLm1hcChzdGVtID0+IHN0ZW0uZGl2aXNpb24pKTsKICAgICAgICAgICAgICAgICAgc3RlbXMuZm9yRWFjaChzdGVtID0+IHsKICAgICAgICAgICAgICAgICAgICB0b2tlblRpY2tNYXAuc2V0KHN0ZW0sIHsKICAgICAgICAgICAgICAgICAgICAgIG1lYXN1cmVUaWNrOiBtZWFzdXJlLnRpY2ssCiAgICAgICAgICAgICAgICAgICAgICB0aWNrOiBtZWFzdXJlLnRpY2sgKyBub3RlLnRpY2sKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICBpZiAoc3RlbXMubGVuZ3RoID4gMSAmJiBzdGVtLmJlYW0gPj0gMCkgewogICAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVhbSA9IHRoaXMuZmluZFRva2VuQXJvdW5kKHN0ZW0sIHN0ZW0uYmVhbSk7CiAgICAgICAgICAgICAgICAgICAgICBpZiAoYmVhbSkgcGVuZGluZ1N0ZW1zLnNldChzdGVtLCBiZWFtKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSBlbHNlIGNvbnNvbGUud2Fybigic3RlbXMgdG9rZW4gbWlzc2luZzoiLCB0b2tlbi5zeXN0ZW0sIHRva2VuLnN0ZW1zLCBtaSwgdG9rZW4uaHJlZik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB9IGVsc2UgaWYgKCFwYXJ0aWFsKSBub3RlLm92ZXJsYXBwZWQgPSB0cnVlOwogICAgICB9KTsKICAgICAgLy9pZiAocGVuZGluZ1N0ZW1zLnNpemUpCiAgICAgIC8vCWNvbnNvbGUubG9nKCJwZW5kaW5nU3RlbXM6IiwgbWksIFsuLi5wZW5kaW5nU3RlbXNdLm1hcChzID0+IHMuaW5kZXgpKTsKICAgICAgZm9yIChjb25zdCBbc3RlbSwgYmVhbV0gb2YgcGVuZGluZ1N0ZW1zKSB7CiAgICAgICAgaWYgKE51bWJlci5pc0Zpbml0ZShiZWFtLnRyYWNrKSkgc3RlbS50cmFjayA9IGJlYW0udHJhY2s7CiAgICAgIH0KICAgIH0pOwogICAgY29uc3QgdG9rZW5UaWNrTWFwS2V5cyA9IEFycmF5LmZyb20odG9rZW5UaWNrTWFwLmtleXMoKSk7CiAgICB0aGlzLnN5c3RlbXMuZm9yRWFjaChzeXN0ZW0gPT4gewogICAgICBzeXN0ZW0uc3RhdmVzLmZvckVhY2goc3RhZmYgPT4gc3RhZmYubWVhc3VyZXMuZm9yRWFjaChtZWFzdXJlID0+IHsKICAgICAgICBjb25zdCB0b2tlbnMgPSBtZWFzdXJlLnRva2Vucy5maWx0ZXIodG9rZW4gPT4gdG9rZW5UaWNrTWFwS2V5cy5pbmNsdWRlcyh0b2tlbikpOwogICAgICAgIGNvbnN0IG1lYXN0dXJlVGljayA9IHRva2Vucy5yZWR1Y2UoKHRpY2ssIHRva2VuKSA9PiBNYXRoLm1pbih0b2tlblRpY2tNYXAuZ2V0KHRva2VuKS5tZWFzdXJlVGljaywgdGljayksIEluZmluaXR5KTsKICAgICAgICB0b2tlbnMuZm9yRWFjaCh0b2tlbiA9PiB0b2tlbi50aWNrID0gdG9rZW5UaWNrTWFwLmdldCh0b2tlbikudGljayAtIG1lYXN0dXJlVGljayk7CiAgICAgIH0pKTsKICAgIH0pOwogICAgaWYgKGFzc2lnbkZsYWdzKSB0aGlzLmFzc2lnbkZsYWdzVHJhY2soKTsKICB9CiAgYXNzaWduRmxhZ3NUcmFjaygpIHsKICAgIGNvbnN0IGZsYWdzID0gdGhpcy5nZXRUb2tlbnNPZigiRkxBRyIpOwogICAgZmxhZ3MuZm9yRWFjaChmbGFnID0+IHsKICAgICAgaWYgKE51bWJlci5pc0Zpbml0ZShmbGFnLnN0ZW0pKSB7CiAgICAgICAgY29uc3Qgc3RlbSA9IHRoaXMuZmluZFRva2VuQXJvdW5kKGZsYWcsIGZsYWcuc3RlbSk7CiAgICAgICAgaWYgKHN0ZW0gJiYgTnVtYmVyLmlzRmluaXRlKHN0ZW0udHJhY2spKSBmbGFnLnRyYWNrID0gc3RlbS50cmFjazsKICAgICAgfQogICAgfSk7CiAgfQogIHBydW5lRm9yQmFraW5nTW9kZSgpIHsKICAgIGNvbnN0IHJvdW5kID0geCA9PiByb3VuZE51bWJlcih4LCAxZS00KTsKICAgIHRoaXMucGFnZXMuZm9yRWFjaChwYWdlID0+IHsKICAgICAgcGFnZS50b2tlbnMgPSBbXTsKICAgICAgcGFnZS5zeXN0ZW1zLmZvckVhY2goc3lzdGVtID0+IHsKICAgICAgICBzeXN0ZW0udG9rZW5zID0gW107CiAgICAgICAgc3lzdGVtLm1lYXN1cmVJbmRpY2VzID0gc3lzdGVtLm1lYXN1cmVJbmRpY2VzICYmIHN5c3RlbS5tZWFzdXJlSW5kaWNlcy5tYXAoKFt4LCBpXSkgPT4gW3JvdW5kKHgpLCBpXSk7CiAgICAgICAgc3lzdGVtLnN0YXZlcy5mb3JFYWNoKHN0YWZmID0+IHsKICAgICAgICAgIHN0YWZmLnRva2VucyA9IFtdOwogICAgICAgICAgc3RhZmYueVJvdW5kT2Zmc2V0ID0gcm91bmQoc3RhZmYueVJvdW5kT2Zmc2V0KTsKICAgICAgICAgIGRlbGV0ZSBzdGFmZi50b3A7CiAgICAgICAgICBkZWxldGUgc3RhZmYuaGVhZFdpZHRoOwogICAgICAgICAgc3RhZmYubWVhc3VyZXMuZm9yRWFjaChtZWFzdXJlID0+IHsKICAgICAgICAgICAgbWVhc3VyZS5oZWFkWCA9IHJvdW5kKG1lYXN1cmUuaGVhZFgpOwogICAgICAgICAgICBtZWFzdXJlLmxpbmVYID0gcm91bmQobWVhc3VyZS5saW5lWCk7CiAgICAgICAgICAgIG1lYXN1cmUubm90ZVJhbmdlID0gewogICAgICAgICAgICAgIGJlZ2luOiByb3VuZChtZWFzdXJlLm5vdGVSYW5nZS5iZWdpbiksCiAgICAgICAgICAgICAgZW5kOiByb3VuZChtZWFzdXJlLm5vdGVSYW5nZS5lbmQpCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIG1lYXN1cmUudG9rZW5zID0gbWVhc3VyZS5tYXRjaGVkVG9rZW5zLm1hcCh0b2tlbiA9PiBuZXcgU3RhZmZUb2tlbihwaWNrKHRva2VuLCBbIngiLCAieSIsICJzeW1ib2wiLCAiaHJlZiIsICJzY2FsZSIsICJ0aWVkIl0pKSk7CiAgICAgICAgICAgIGRlbGV0ZSBtZWFzdXJlLm1hdGNoZWRUb2tlbnM7CiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9KTsKICB9CiAgYXBwZW5kTGlua2VkVG9rZW5zRm9yU3RhdmVzKCkgewogICAgY29uc3QgZG9uZVRva2VucyA9IG5ldyBTZXQoKTsKICAgIGNvbnN0IGFwcGVuZExpbmsgPSAoc3RhZmYsIG9sZFN0YWZmLCB0b2tlbikgPT4gewogICAgICBpZiAoZG9uZVRva2Vucy5oYXModG9rZW4uaW5kZXgpKSByZXR1cm47CiAgICAgIC8vY29uc29sZS5sb2coImFwcGVuZExpbms6Iiwgc3RhZmYsIG9sZFN0YWZmLCB0b2tlbik7CiAgICAgIGNvbnN0IGR5ID0gc3RhZmYueSAtIG9sZFN0YWZmLnk7CiAgICAgIGNvbnN0IG1lYXN1cmUgPSBzdGFmZi5tZWFzdXJlcy5maW5kKG1lYXN1cmUgPT4gbWVhc3VyZS5ub3RlUmFuZ2UuZW5kID49IHRva2VuLngpOwogICAgICBpZiAobWVhc3VyZSkgewogICAgICAgIGNvbnN0IG5ld1Rva2VuID0gbmV3IFN0YWZmVG9rZW4oewogICAgICAgICAgLi4udG9rZW4sCiAgICAgICAgICBzeW1ib2xzOiBuZXcgU2V0KCksCiAgICAgICAgICB5OiB0b2tlbi55IC0gZHksCiAgICAgICAgICByeTogdG9rZW4ucnkgLSBkeQogICAgICAgIH0pOwogICAgICAgIHRva2VuLmFkZFN5bWJvbCgiQUNST1NTX1NUQVZFUyIpOwogICAgICAgIG5ld1Rva2VuLmFkZFN5bWJvbCgiQUNST1NTX1NUQVZFUyIpOwogICAgICAgIG5ld1Rva2VuLmFkZFN5bWJvbCgiRFVQTElDQVRFRCIpOwogICAgICAgIG1lYXN1cmUudG9rZW5zLnB1c2gobmV3VG9rZW4pOwogICAgICB9IGVsc2UgY29uc29sZS53YXJuKCJhcHBlbmRMaW5rIGZhaWxlZCwgYmVjYXVzZSBubyBmaXQgbWVhc3VyZToiLCBzdGFmZi5tZWFzdXJlcywgdG9rZW4pOwogICAgICBkb25lVG9rZW5zLmFkZCh0b2tlbi5pbmRleCk7CiAgICB9OwogICAgdGhpcy5wYWdlcy5mb3JFYWNoKHBhZ2UgPT4gewogICAgICBjb25zdCB0b2tlbnMgPSBwYWdlLnN5c3RlbXMubWFwKHN5c3RlbSA9PiBzeXN0ZW0uc3RhdmVzLm1hcChzdGFmZiA9PiBzdGFmZi5tZWFzdXJlcy5tYXAobWVhc3VyZSA9PiBtZWFzdXJlLnRva2VucykpKS5mbGF0KDMpOwogICAgICBjb25zdCB0b2tlblN0YWZmVGFibGUgPSBwYWdlLnN5c3RlbXMucmVkdWNlKCh0YWJsZSwgc3lzdGVtKSA9PiBzeXN0ZW0uc3RhdmVzLnJlZHVjZSgodGFibGUsIHN0YWZmKSA9PiBzdGFmZi5tZWFzdXJlcy5yZWR1Y2UoKHRhYmxlLCBtZWFzdXJlKSA9PiBtZWFzdXJlLnRva2Vucy5yZWR1Y2UoKHRhYmxlLCB0b2tlbikgPT4gewogICAgICAgIHRhYmxlW3Rva2VuLmluZGV4XSA9IHN0YWZmOwogICAgICAgIHJldHVybiB0YWJsZTsKICAgICAgfSwgdGFibGUpLCB0YWJsZSksIHRhYmxlKSwge30pOwogICAgICAvL2NvbnNvbGUubG9nKCJ0b2tlblN0YWZmVGFibGU6IiwgdG9rZW5TdGFmZlRhYmxlKTsKICAgICAgdG9rZW5zLmZvckVhY2godG9rZW4gPT4gewogICAgICAgIGlmICh0b2tlbi5zdGVtcykgewogICAgICAgICAgY29uc3Qgc3RhZmYgPSB0b2tlblN0YWZmVGFibGVbdG9rZW4uaW5kZXhdOwogICAgICAgICAgdG9rZW4uc3RlbXMuZm9yRWFjaChzdGVtID0+IHsKICAgICAgICAgICAgaWYgKHRva2VuU3RhZmZUYWJsZVtzdGVtXSAhPT0gc3RhZmYpIGFwcGVuZExpbmsodG9rZW5TdGFmZlRhYmxlW3N0ZW1dLCBzdGFmZiwgdG9rZW4pOwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0pOwogIH0KfQo7CmV4cG9ydCBkZWZhdWx0IFNoZWV0RG9jdW1lbnQ7"},{"version":3,"names":["CM_TO_PX","roundNumber","StaffToken","pick","ALTER_PREFIXES","sheetMarkingIndex","SheetMarking","constructor","fields","index","Object","assign","alterText","Number","isInteger","alter","parseUnitExp","exp","test","value","match","cc","arrays","concat","SheetDocument","initialize","updateTokenIndex","systems","pages","map","page","rows","trackCount","Math","max","system","staves","length","pageSize","width","height","filter","forEach","pageIndex","rowMeasureIndex","tokens","staff","reduce","token","x","measureIndices","s","t","measures","measure","i","class","endX","noteRange","end","lineX","push","markings","yRoundOffset","line","find","is","y","ry","updateMatchedTokens","matchedIds","matchedTokens","href","has","addMarking","systemIndex","staffIndex","data","console","warn","marking","removeMarking","id","clearMarkings","toJSON","__prototype","getLocationTable","table","location","column","isFinite","min","lookupMeasureIndex","_","tokensInSystem","translate","tokensInPage","withPageTokens","fitPageViewbox","margin","verticalCropOnly","pageTokens","svgScale","viewBox","rects","top","bottom","tokenXs","tokenYs","left","rect","right","toString","getTokensOf","symbol","getNoteHeads","getNotes","getTokenMap","tokenMap","set","Map","findTokensAround","indices","includes","findTokenAround","results","alignTokensWithNotation","notation","partial","assignFlags","shortId","split","slice","join","noteTokens","sid","get","source","spaceCapture","tokenTickMap","mi","pendingStems","notes","note","tick","measureTick","pitch","track","stems","stem","division","beam","overlapped","tokenTickMapKeys","Array","from","keys","meastureTick","Infinity","assignFlagsTrack","flags","flag","pruneForBakingMode","round","headWidth","headX","begin","appendLinkedTokensForStaves","doneTokens","Set","appendLink","oldStaff","dy","newToken","symbols","addSymbol","add","flat","tokenStaffTable"],"sources":["/home/camus/work/lotus/node_modules/eslint-loader/index.js??ref--14-0!/home/camus/work/lotus/inc/staffSvg/sheetDocument.ts"],"sourcesContent":["\nimport {CM_TO_PX} from \"../constants\";\nimport {roundNumber} from \"./utils\";\n\n// eslint-disable-next-line\nimport StaffToken from \"./staffToken\";\n// eslint-disable-next-line\nimport * as LilyNotation from \"../lilyNotation\";\nimport pick from \"../pick\";\n\n\n\ninterface SheetMarkingData {\n\tid: string;\n\ttext: string;\n\tx: number;\n\ty: number;\n\tcls: string;\n}\n\n\nexport interface SheetMeasure {\n\tindex: number;\n\ttokens: StaffToken[];\n\theadX: number;\n\tlineX?: number;\n\tmatchedTokens?: StaffToken[];\t// for baking mode\n\tnoteRange: {\n\t\tbegin: number,\n\t\tend: number,\n\t};\n\n\tclass?: {[key: string]: boolean};\n};\n\n\nexport interface SheetStaff {\n\tmeasures: SheetMeasure[];\n\ttokens: StaffToken[];\n\n\tmarkings?: Partial[];\n\n\t// the third staff line Y coordinate value\n\t//\tThe third staff line Y supposed to be zero, but regarding to the line stroke width,\n\t//\tthere is some error for original values in SVG document (which erased by coordinate rounding).\n\tyRoundOffset?: number; // 0.0657 for default\n\n\tx: number;\n\ty: number;\n\ttop?: number;\n\theadWidth?: number;\n};\n\n\nexport interface SheetSystem {\n\tindex?: number;\n\tpageIndex?: number;\n\tmeasureIndices?: [number, number][];\t// [end_x, index]\n\tstaves: SheetStaff[];\n\ttokens: StaffToken[];\n\n\tx: number;\n\ty: number;\n\twidth?: number;\n\ttop: number;\n\tbottom: number;\n};\n\n\nexport interface SheetPage {\n\twidth: string;\n\theight: string;\n\tviewBox: {\n\t\tx: number,\n\t\ty: number,\n\t\twidth: number,\n\t\theight: number,\n\t};\n\n\tsystems: SheetSystem[];\n\ttokens: StaffToken[];\n\n\thidden?: boolean;\n\n\t// DEPRECATED\n\trows?: SheetSystem[];\n};\n\n\n/*const ALTER_PREFIXES = {\n\t[-2]: \"\\u266D\\u266D\",\n\t[-1]: \"\\u266D\",\n\t[0]: \"\\u266E\",\n\t[1]: \"\\u266F\",\n\t[2]: \"\\uD834\\uDD2A\",\n};*/\n\n// char codes defined in music font\nconst ALTER_PREFIXES = {\n\t[-2]: \"\\ue02a\",\n\t[-1]: \"\\ue021\",\n\t[0]: \"\\ue01d\",\n\t[1]: \"\\ue013\",\n\t[2]: \"\\ue01c\",\n};\n\n\nlet sheetMarkingIndex = 0;\n\n\nclass SheetMarking {\n\talter?: number;\n\tindex: number;\t// as v-for key\n\n\tid?: string;\n\ttext?: string;\n\tx?: number;\n\ty?: number;\n\tcls?: string;\n\n\n\tconstructor (fields: Partial) {\n\t\tthis.index = sheetMarkingIndex++;\n\t\tObject.assign(this, fields);\n\t}\n\n\n\tget alterText (): string {\n\t\treturn Number.isInteger(this.alter) ? ALTER_PREFIXES[this.alter] : null;\n\t}\n};\n\n\nconst parseUnitExp = exp => {\n\tif (/[\\d.]+mm/.test(exp)) {\n\t\tconst [value] = exp.match(/[\\d.]+/);\n\t\treturn Number(value) * 0.1 * CM_TO_PX;\n\t}\n\n\treturn Number(exp);\n};\n\n\ntype MeasureLocationTable = {[key: number]: {[key: number]: number}};\n\n\nconst cc = (arrays: T[][]): T[] => [].concat(...arrays);\n\n\nclass SheetDocument {\n\tpages: SheetPage[];\n\n\n\tconstructor (fields: Partial, {initialize = true} = {}) {\n\t\tObject.assign(this, fields);\n\n\t\tif (initialize)\n\t\t\tthis.updateTokenIndex();\n\t}\n\n\n\tget systems (): SheetSystem[] {\n\t\treturn [].concat(...this.pages.map(page => page.systems));\n\t}\n\n\n\t// DEPRECATED\n\tget rows (): SheetSystem[] {\n\t\treturn this.systems;\n\t}\n\n\n\tget trackCount (): number{\n\t\treturn Math.max(...this.systems.map(system => system.staves.length), 0);\n\t}\n\n\n\tget pageSize (): {width: number, height: number} {\n\t\tconst page = this.pages && this.pages[0];\n\t\tif (!page)\n\t\t\treturn null;\n\n\t\treturn {\n\t\t\twidth: parseUnitExp(page.width),\n\t\t\theight: parseUnitExp(page.height),\n\t\t};\n\t}\n\n\n\tupdateTokenIndex () {\n\t\t// remove null pages for broken document\n\t\tthis.pages = this.pages.filter(page => page);\n\n\t\tthis.pages.forEach((page, index) => page.systems.forEach(system => system.pageIndex = index));\n\n\t\tlet rowMeasureIndex = 1;\n\n\t\tthis.systems.forEach((system, index) => {\n\t\t\tsystem.index = index;\n\t\t\tsystem.width = system.tokens.concat(...system.staves.map(staff => staff.tokens))\n\t\t\t\t.reduce((max, token) => Math.max(max, token.x), 0);\n\n\t\t\tsystem.measureIndices = [];\n\n\t\t\tsystem.staves = system.staves.filter(s => s);\n\t\t\tsystem.staves.forEach((staff, t) => {\n\t\t\t\tstaff.measures.forEach((measure, i) => {\n\t\t\t\t\tmeasure.index = rowMeasureIndex + i;\n\t\t\t\t\tmeasure.class = {};\n\n\t\t\t\t\tmeasure.tokens.forEach(token => {\n\t\t\t\t\t\ttoken.system = index;\n\t\t\t\t\t\ttoken.measure = measure.index;\n\t\t\t\t\t\ttoken.endX = measure.noteRange.end;\n\t\t\t\t\t});\n\n\t\t\t\t\tmeasure.lineX = measure.lineX || 0;\n\t\t\t\t\tif (i < staff.measures.length - 1)\n\t\t\t\t\t\tstaff.measures[i + 1].lineX = measure.noteRange.end;\n\n\t\t\t\t\tif (t === 0)\n\t\t\t\t\t\tsystem.measureIndices.push([measure.noteRange.end, measure.index]);\n\t\t\t\t});\n\n\t\t\t\tstaff.markings = [];\n\t\t\t\tstaff.yRoundOffset = 0;\n\n\t\t\t\tconst line = staff.tokens.find(token => token.is(\"STAFF_LINE\"));\n\t\t\t\tif (line)\n\t\t\t\t\tstaff.yRoundOffset = line.y - line.ry;\n\t\t\t});\n\n\t\t\trowMeasureIndex += Math.max(...system.staves.map(staff => staff.measures.length));\n\t\t});\n\t}\n\n\n\tupdateMatchedTokens (matchedIds: Set) {\n\t\tthis.systems.forEach(system => {\n\t\t\tsystem.staves.forEach(staff =>\n\t\t\t\tstaff.measures.forEach(measure => {\n\t\t\t\t\tmeasure.matchedTokens = measure.tokens.filter(token => token.href && matchedIds.has(token.href));\n\n\t\t\t\t\tif (!staff.yRoundOffset) {\n\t\t\t\t\t\tconst token = measure.matchedTokens[0];\n\t\t\t\t\t\tif (token)\n\t\t\t\t\t\t\tstaff.yRoundOffset = token.y - token.ry;\n\t\t\t\t\t}\n\t\t\t\t}));\n\t\t});\n\t}\n\n\n\taddMarking (systemIndex: number, staffIndex: number, data: Partial): SheetMarking {\n\t\tconst system = this.systems[systemIndex];\n\t\tif (!system) {\n\t\t\tconsole.warn(\"system index out of range:\", systemIndex, this.systems.length);\n\t\t\treturn;\n\t\t}\n\n\t\tconst staff = system.staves[staffIndex];\n\t\tif (!staff) {\n\t\t\tconsole.warn(\"staff index out of range:\", staffIndex, system.staves.length);\n\t\t\treturn;\n\t\t}\n\n\t\tconst marking = new SheetMarking(data);\n\t\tstaff.markings.push(marking);\n\n\t\treturn marking;\n\t}\n\n\n\tremoveMarking (id: string) {\n\t\tthis.systems.forEach(system => system.staves.forEach(staff =>\n\t\t\tstaff.markings = staff.markings.filter(marking => marking.id !== id)));\n\t}\n\n\n\tclearMarkings () {\n\t\tthis.systems.forEach(system => system.staves.forEach(staff => staff.markings = []));\n\t}\n\n\n\ttoJSON (): object {\n\t\treturn {\n\t\t\t__prototype: \"SheetDocument\",\n\t\t\tpages: this.pages,\n\t\t};\n\t}\n\n\n\tgetLocationTable (): MeasureLocationTable {\n\t\tconst table = {};\n\n\t\tthis.systems.forEach(system => system.staves.forEach(staff => staff.measures.forEach(measure => {\n\t\t\tmeasure.tokens.forEach(token => {\n\t\t\t\tif (token.href) {\n\t\t\t\t\tconst location = token.href.match(/\\d+/g);\n\t\t\t\t\tif (location) {\n\t\t\t\t\t\tconst [line, column] = location.map(Number);\n\t\t\t\t\t\ttable[line] = table[line] || {};\n\t\t\t\t\t\ttable[line][column] = Number.isFinite(table[line][column]) ? Math.min(table[line][column], measure.index) : measure.index;\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tconsole.warn(\"invalid href:\", token.href);\n\t\t\t\t}\n\t\t\t});\n\t\t})));\n\n\t\treturn table;\n\t}\n\n\n\tlookupMeasureIndex (systemIndex: number, x: number): number {\n\t\tconst system = this.systems[systemIndex];\n\t\tif (!system || !system.measureIndices)\n\t\t\treturn null;\n\n\t\tconst [_, index] = system.measureIndices.find(([end]) => x < end) || [null, null];\n\n\t\treturn index;\n\t}\n\n\n\ttokensInSystem (systemIndex: number): StaffToken[] {\n\t\tconst system = this.systems[systemIndex];\n\t\tif (!system)\n\t\t\treturn null;\n\n\t\treturn system.staves.reduce((tokens, staff) => {\n\t\t\tconst translate = token => token.translate({x: staff.x, y: staff.y});\n\n\t\t\ttokens.push(...staff.tokens.map(translate));\n\t\t\tstaff.measures.forEach(measure => tokens.push(...measure.tokens.map(translate)));\n\n\t\t\treturn tokens;\n\t\t}, [...system.tokens]);\n\t}\n\n\n\ttokensInPage (pageIndex: number, {withPageTokens = false} = {}): StaffToken[] {\n\t\tconst page = this.pages[pageIndex];\n\t\tif (!page)\n\t\t\treturn null;\n\n\t\treturn page.systems.reduce((tokens, system) => {\n\t\t\ttokens.push(...this.tokensInSystem(system.index).map(token => token.translate({x: system.x, y: system.y})));\n\t\t\treturn tokens;\n\t\t}, withPageTokens ? [...page.tokens] : []);\n\t}\n\n\n\tfitPageViewbox ({margin = 5, verticalCropOnly = false, pageTokens = false} = {}) {\n\t\tif (!this.pages || !this.pages.length)\n\t\t\treturn;\n\n\t\tconst svgScale = this.pageSize.width / this.pages[0].viewBox.width;\n\n\t\tthis.pages.forEach((page, i) => {\n\t\t\tconst rects = page.systems.filter(system => Number.isFinite(system.x + system.width + system.y + system.top + system.bottom))\n\t\t\t\t.map(system => [system.x, system.x + system.width, system.y + system.top, system.y + system.bottom ]);\n\n\t\t\tconst tokens = this.tokensInPage(i, {withPageTokens: pageTokens}) || [];\n\t\t\tconst tokenXs = tokens.map(token => token.x).filter(Number.isFinite);\n\t\t\tconst tokenYs = tokens.map(token => token.y).filter(Number.isFinite);\n\t\t\t//console.debug(\"tokens:\", i, tokens, tokenXs, tokenYs);\n\n\t\t\tif (!rects.length)\n\t\t\t\treturn;\n\n\t\t\tconst left = Math.min(...rects.map(rect => rect[0]), ...tokenXs);\n\t\t\tconst right = Math.max(...rects.map(rect => rect[1]), ...tokenXs);\n\t\t\tconst top = Math.min(...rects.map(rect => rect[2]), ...tokenYs);\n\t\t\tconst bottom = Math.max(...rects.map(rect => rect[3]), ...tokenYs);\n\n\t\t\tconst x = verticalCropOnly ? page.viewBox.x : left - margin;\n\t\t\tconst y = (verticalCropOnly && i === 0) ? page.viewBox.y : top - margin;\n\t\t\tconst width = verticalCropOnly ? page.viewBox.width : right - left + margin * 2;\n\t\t\tconst height = (verticalCropOnly && i === 0) ? bottom + margin - y : bottom - top + margin * 2;\n\n\t\t\tpage.viewBox = {x, y, width, height};\n\n\t\t\tpage.width = (page.viewBox.width * svgScale).toString();\n\t\t\tpage.height = (page.viewBox.height * svgScale).toString();\n\t\t});\n\t}\n\n\n\tgetTokensOf (symbol: string): StaffToken[] {\n\t\treturn this.systems.reduce((tokens, system) => {\n\t\t\tsystem.staves.forEach(staff => staff.measures.forEach(measure =>\n\t\t\t\ttokens.push(...measure.tokens.filter(token => token.is(symbol)))));\n\n\t\t\treturn tokens;\n\t\t}, []);\n\t}\n\n\n\tgetNoteHeads (): StaffToken[] {\n\t\treturn this.getTokensOf(\"NOTEHEAD\");\n\t}\n\n\n\tgetNotes (): StaffToken[] {\n\t\treturn this.getTokensOf(\"NOTE\");\n\t}\n\n\n\tgetTokenMap (): Map {\n\t\treturn this.systems.reduce((tokenMap, system) => {\n\t\t\tsystem.staves.forEach(staff => staff.measures.forEach(measure => measure.tokens\n\t\t\t\t.filter(token => token.href)\n\t\t\t\t.forEach(token => tokenMap.set(token.href, token))));\n\n\t\t\treturn tokenMap;\n\t\t}, new Map());\n\t}\n\n\n\tfindTokensAround (token: StaffToken, indices: number[]): StaffToken[] {\n\t\tconst system = this.systems[token.system];\n\t\tif (system) {\n\t\t\tconst tokens = [\n\t\t\t\t...system.tokens,\n\t\t\t\t...cc(system.staves.map(staff => [\n\t\t\t\t\t...staff.tokens,\n\t\t\t\t\t...cc(staff.measures.map(measure => measure.tokens)),\n\t\t\t\t])),\n\t\t\t];\n\n\t\t\treturn tokens.filter(token => indices.includes(token.index));\n\t\t}\n\n\t\treturn null;\n\t}\n\n\n\tfindTokenAround (token: StaffToken, index: number): StaffToken {\n\t\tconst results = this.findTokensAround(token, [index]);\n\t\treturn results && results[0];\n\t}\n\n\n\talignTokensWithNotation (notation: LilyNotation.Notation, {partial = false, assignFlags = false} = {}) {\n\t\tconst shortId = (href: string): string => href.split(\":\").slice(0, 2).join(\":\");\n\n\t\tconst noteTokens = this.getNotes();\n\t\tconst tokenMap = noteTokens.reduce((map, token) => {\n\t\t\tconst sid = token.href && shortId(token.href);\n\t\t\tconst tokens = map.get(sid) || [];\n\n\t\t\t// shift column for command chord element\n\t\t\tif (/^\\\\/.test(token.source)) {\n\t\t\t\tconst spaceCapture = token.source.match(/(?<=\\s+)(\\S|$)/);\n\t\t\t\tif (spaceCapture) {\n\t\t\t\t\tconst [line, column] = token.href.match(/\\d+/g).map(Number);\n\t\t\t\t\tmap.set(`${line}:${column + spaceCapture.index}`, [token]);\n\n\t\t\t\t\treturn map;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t\tconsole.warn(\"unresolved command chord element:\", token.source, token);\n\t\t\t}\n\n\t\t\ttokens.push(token);\n\t\t\ttoken.href && map.set(sid, tokens);\n\n\t\t\treturn map;\n\t\t}, new Map());\n\t\t//console.assert(tokenMap.size === noteTokens.length, \"tokens noteTokens count dismatch:\", tokenMap.size, noteTokens.length);\n\n\t\tconst tokenTickMap = new Map();\n\n\t\t// assign tick & track\n\t\tnotation.measures.forEach((measure, mi) => {\n\t\t\tconst pendingStems = new Map();\t// stem -> beam\n\n\t\t\tmeasure.notes.forEach(note => {\n\t\t\t\tconst tokens = tokenMap.get(shortId(note.id));\n\t\t\t\tif (tokens) {\n\t\t\t\t\ttokens.forEach(token => {\n\t\t\t\t\t\ttoken.href = note.id;\n\t\n\t\t\t\t\t\tif (!Number.isFinite(token.tick)) {\n\t\t\t\t\t\t\ttokenTickMap.set(token, {measureTick: measure.tick, tick: measure.tick + note.tick});\n\t\t\t\t\t\t\ttoken.pitch = note.pitch;\n\t\t\t\t\t\t\ttoken.track = note.track;\n\n\t\t\t\t\t\t\tif (token.stems) {\n\t\t\t\t\t\t\t\tconst stems = this.findTokensAround(token, token.stems);\n\t\t\t\t\t\t\t\tif (stems) {\n\t\t\t\t\t\t\t\t\tconst stem = stems.find(stem => stem.division === note.division && !Number.isFinite(stem.track));\n\t\t\t\t\t\t\t\t\tif (stem) {\n\t\t\t\t\t\t\t\t\t\tstem.track = note.track;\n\n\t\t\t\t\t\t\t\t\t\tif (stem.beam >= 0) {\n\t\t\t\t\t\t\t\t\t\t\tconst beam = this.findTokenAround(stem, stem.beam);\n\t\t\t\t\t\t\t\t\t\t\tif (stems.length < 2 || stems[0].division !== stems[1].division)\n\t\t\t\t\t\t\t\t\t\t\t\tbeam.track = stem.track;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse if (!stems.find(stem => stem.division === note.division))\n\t\t\t\t\t\t\t\t\t\tconsole.warn(\"missed stem:\", mi, token.href, note.division, token.stems, stems.map(stem => stem.division));\n\n\t\t\t\t\t\t\t\t\tstems.forEach(stem => {\n\t\t\t\t\t\t\t\t\t\ttokenTickMap.set(stem, {measureTick: measure.tick, tick: measure.tick + note.tick});\n\t\t\t\t\t\t\t\t\t\tif (stems.length > 1 && stem.beam >= 0) {\n\t\t\t\t\t\t\t\t\t\t\tconst beam = this.findTokenAround(stem, stem.beam);\n\t\t\t\t\t\t\t\t\t\t\tif (beam)\n\t\t\t\t\t\t\t\t\t\t\t\tpendingStems.set(stem, beam);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\tconsole.warn(\"stems token missing:\", token.system, token.stems, mi, token.href);\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\telse if (!partial)\n\t\t\t\t\tnote.overlapped = true;\n\t\t\t});\n\n\t\t\t//if (pendingStems.size)\n\t\t\t//\tconsole.log(\"pendingStems:\", mi, [...pendingStems].map(s => s.index));\n\t\t\tfor (const [stem, beam] of pendingStems) {\n\t\t\t\tif (Number.isFinite(beam.track))\n\t\t\t\t\tstem.track = beam.track;\n\t\t\t}\n\t\t});\n\n\t\tconst tokenTickMapKeys = Array.from(tokenTickMap.keys());\n\t\tthis.systems.forEach(system => {\n\t\t\tsystem.staves.forEach(staff => staff.measures.forEach(measure => {\n\t\t\t\tconst tokens = measure.tokens.filter(token => tokenTickMapKeys.includes(token));\n\t\t\t\tconst meastureTick = tokens.reduce((tick, token) => Math.min(tokenTickMap.get(token).measureTick, tick), Infinity);\n\t\t\t\ttokens.forEach(token => token.tick = tokenTickMap.get(token).tick - meastureTick);\n\t\t\t}));\n\t\t});\n\n\t\tif (assignFlags)\n\t\t\tthis.assignFlagsTrack();\n\t}\n\n\n\tassignFlagsTrack () {\n\t\tconst flags = this.getTokensOf(\"FLAG\");\n\t\tflags.forEach(flag => {\n\t\t\tif (Number.isFinite(flag.stem)) {\n\t\t\t\tconst stem = this.findTokenAround(flag, flag.stem);\n\t\t\t\tif (stem && Number.isFinite(stem.track))\n\t\t\t\t\tflag.track = stem.track;\n\t\t\t}\n\t\t});\n\t}\n\n\n\tpruneForBakingMode () {\n\t\tconst round = x => roundNumber(x, 1e-4);\n\n\t\tthis.pages.forEach(page => {\n\t\t\tpage.tokens = [];\n\n\t\t\tpage.systems.forEach(system => {\n\t\t\t\tsystem.tokens = [];\n\t\t\t\tsystem.measureIndices = system.measureIndices && system.measureIndices.map(([x, i]) => [round(x), i]);\n\n\t\t\t\tsystem.staves.forEach(staff => {\n\t\t\t\t\tstaff.tokens = [];\n\t\t\t\t\tstaff.yRoundOffset = round(staff.yRoundOffset);\n\t\t\t\t\tdelete staff.top;\n\t\t\t\t\tdelete staff.headWidth;\n\n\t\t\t\t\tstaff.measures.forEach(measure => {\n\t\t\t\t\t\tmeasure.headX = round(measure.headX);\n\t\t\t\t\t\tmeasure.lineX = round(measure.lineX);\n\t\t\t\t\t\tmeasure.noteRange = {\n\t\t\t\t\t\t\tbegin: round(measure.noteRange.begin),\n\t\t\t\t\t\t\tend: round(measure.noteRange.end),\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tmeasure.tokens = measure.matchedTokens.map(token => new StaffToken(pick(token, [\n\t\t\t\t\t\t\t\"x\", \"y\", \"symbol\", \"href\", \"scale\", \"tied\",\n\t\t\t\t\t\t])));\n\t\t\t\t\t\tdelete measure.matchedTokens;\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\n\tappendLinkedTokensForStaves (): void {\n\t\tconst doneTokens = new Set();\n\t\tconst appendLink = (staff: SheetStaff, oldStaff: SheetStaff, token: StaffToken): void => {\n\t\t\tif (doneTokens.has(token.index))\n\t\t\t\treturn;\n\t\t\t//console.log(\"appendLink:\", staff, oldStaff, token);\n\t\t\tconst dy = staff.y - oldStaff.y;\n\n\t\t\tconst measure = staff.measures.find(measure => measure.noteRange.end >= token.x);\n\t\t\tif (measure) {\n\t\t\t\tconst newToken = new StaffToken({...token, symbols: new Set(), y: token.y - dy, ry: token.ry - dy});\n\t\t\t\ttoken.addSymbol(\"ACROSS_STAVES\");\n\t\t\t\tnewToken.addSymbol(\"ACROSS_STAVES\");\n\t\t\t\tnewToken.addSymbol(\"DUPLICATED\");\n\t\t\t\tmeasure.tokens.push(newToken);\n\t\t\t}\n\t\t\telse\n\t\t\t\tconsole.warn(\"appendLink failed, because no fit measure:\", staff.measures, token);\n\n\t\t\tdoneTokens.add(token.index);\n\t\t};\n\n\t\tthis.pages.forEach(page => {\n\t\t\tconst tokens: StaffToken[] = (page.systems\n\t\t\t\t.map(system => system.staves\n\t\t\t\t\t.map(staff => staff.measures\n\t\t\t\t\t\t.map(measure => measure.tokens))) as any).flat(3);\n\t\t\tconst tokenStaffTable: Record = page.systems\n\t\t\t\t.reduce((table, system) => system.staves\n\t\t\t\t\t.reduce((table, staff) => staff.measures\n\t\t\t\t\t\t.reduce((table, measure) => measure.tokens\n\t\t\t\t\t\t\t.reduce((table, token) => {\n\t\t\t\t\t\t\t\ttable[token.index] = staff;\n\t\t\t\t\t\t\t\treturn table;\n\t\t\t\t\t\t\t}, table), table), table), {});\n\n\t\t\t//console.log(\"tokenStaffTable:\", tokenStaffTable);\n\n\t\t\ttokens.forEach(token => {\n\t\t\t\tif (token.stems) {\n\t\t\t\t\tconst staff = tokenStaffTable[token.index];\n\t\t\t\t\ttoken.stems.forEach(stem => {\n\t\t\t\t\t\tif (tokenStaffTable[stem] !== staff)\n\t\t\t\t\t\t\tappendLink(tokenStaffTable[stem], staff, token);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n};\n\n\n\nexport default SheetDocument;\n"],"mappings":"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","ignoreList":[]}]}