{"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/index.ts","dependencies":[{"path":"/home/camus/work/lotus/inc/staffSvg/index.ts","mtime":1732184473675},{"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:aW1wb3J0IHsgc3ZnVG9FbGVtZW50cyB9IGZyb20gIi4vc3ZnUGFyc2VyIjsKaW1wb3J0IHRva2VuaXplRWxlbWVudHMsIHsgU3RhZmZBdHRyaWJ1dGVzLCBIYXNoVGFibGUgfSBmcm9tICIuL3Rva2VuaXplRWxlbWVudHMiOwppbXBvcnQgb3JnYW5pemVUb2tlbnMgZnJvbSAiLi9vcmdhbml6ZVRva2VucyI7CmltcG9ydCBMb2dSZWNvcmRlciBmcm9tICIuLi9sb2dSZWNvcmRlciI7CmltcG9ydCBTdGFmZlRva2VuIGZyb20gIi4vc3RhZmZUb2tlbiI7CmltcG9ydCBTaGVldERvY3VtZW50IGZyb20gIi4vc2hlZXREb2N1bWVudCI7CmltcG9ydCAqIGFzIFN0YWZmTm90YXRpb24gZnJvbSAiLi9zdGFmZk5vdGF0aW9uIjsKaW1wb3J0IFRleHRTb3VyY2UgZnJvbSAiLi4vdGV4dFNvdXJjZSI7CmltcG9ydCAqIGFzIGRvbVV0aWxzIGZyb20gIi4uL2RvbVV0aWxzIjsKaW1wb3J0IHsgTGlseURvY3VtZW50QXR0cmlidXRlLCBMaWx5RG9jdW1lbnRBdHRyaWJ1dGVSZWFkT25seSB9IGZyb20gIi4uL2xpbHlQYXJzZXIvbGlseURvY3VtZW50IjsKaW1wb3J0IHsgZG9jTG9jYXRpb25TZXQgfSBmcm9tICIuLi9saWx5UGFyc2VyIjsKaW1wb3J0IHsgU2NoZW1lUGFpciB9IGZyb20gIi4uL2xpbHlQYXJzZXIvbGlseVRlcm1zIjsKaW1wb3J0IHsgU2hlZXRQYWdlLCBTaGVldFN5c3RlbSwgU2hlZXRTdGFmZiwgU2hlZXRNZWFzdXJlIH0gZnJvbSAiLi9zaGVldERvY3VtZW50IjsKaW1wb3J0ICogYXMgZ2x5cGggZnJvbSAiLi9nbHlwaCI7CjsKY29uc3QgcGFyc2VTdmdQYWdlID0gKGRvbSwgc291cmNlLCB7CiAgbGlseURvY3VtZW50LAogIGxvZ2dlciA9IG5ldyBMb2dSZWNvcmRlcigpLAogIGF0dHJpYnV0ZXMsCiAgdGllTG9jYXRpb25zLAogIGJyaWVmQ2hvcmRMb2NhdGlvbnMsCiAgbHlyaWNMb2NhdGlvbnMsCiAgLi4ub3B0aW9ucwp9ID0ge30pID0+IHsKICBpZiAoIShzb3VyY2UgaW5zdGFuY2VvZiBUZXh0U291cmNlKSkgc291cmNlID0gbmV3IFRleHRTb3VyY2Uoc291cmNlKTsKICBjb25zdCBlbGVtID0gc3ZnVG9FbGVtZW50cyhkb20sIHsKICAgIGxvZ2dlciwKICAgIC4uLm9wdGlvbnMKICB9KTsKICBsb2dnZXIuYXBwZW5kKCJwYXJzZVN2Z1BhZ2UuZWxlbSIsIGVsZW0pOwogIGlmICghZWxlbSkgcmV0dXJuIHsKICAgIHN0cnVjdHVyZTogbnVsbCwKICAgIGhhc2hUYWJsZToge30KICB9OwogIGlmICghYXR0cmlidXRlcyAmJiBsaWx5RG9jdW1lbnQpIGF0dHJpYnV0ZXMgPSBsaWx5RG9jdW1lbnQuZ2xvYmFsQXR0cmlidXRlcyh7CiAgICByZWFkb25seTogdHJ1ZQogIH0pOwogIGNvbnN0IHsKICAgIHRva2VucywKICAgIGhhc2hUYWJsZQogIH0gPSB0b2tlbml6ZUVsZW1lbnRzKGVsZW0uY2hpbGRyZW4sIGF0dHJpYnV0ZXMsIGxvZ2dlcik7CiAgY29uc3QgW3gsIHksIHdpZHRoLCBoZWlnaHRdID0gZWxlbS52aWV3Qm94Lm1hdGNoKC9bXGQtLl0rL2cpLm1hcChOdW1iZXIpOwogIGNvbnN0IHZpZXdCb3ggPSB7CiAgICB4LAogICAgeSwKICAgIHdpZHRoLAogICAgaGVpZ2h0CiAgfTsKICBjb25zdCBseXJpY0xpbmVzID0gbHlyaWNMb2NhdGlvbnMgJiYgbmV3IFNldChbLi4ubHlyaWNMb2NhdGlvbnNdLm1hcChsb2MgPT4gTnVtYmVyKGxvYy5zcGxpdCgiOiIpWzBdKSkpOwogIC8vIG1hcmsgdGllICYgYnJpZWYgY2hvcmQgc3ltYm9sIG9uIHRva2VucwogIHRva2Vucy5mb3JFYWNoKCh0b2tlbiwgaW5kZXgpID0+IHsKICAgIHRva2VuLmluZGV4ID0gaW5kZXg7CiAgICBpZiAodG9rZW4uc291cmNlUG9zaXRpb24pIHsKICAgICAgY29uc3QgewogICAgICAgIGxpbmUsCiAgICAgICAgc3RhcnQKICAgICAgfSA9IHRva2VuLnNvdXJjZVBvc2l0aW9uOwogICAgICBjb25zdCBsb2MgPSBgJHtsaW5lfToke3N0YXJ0fWA7CiAgICAgIGlmIChicmllZkNob3JkTG9jYXRpb25zICYmIGJyaWVmQ2hvcmRMb2NhdGlvbnMuaGFzKGxvYykpIHRva2VuLmFkZFN5bWJvbCgiQ0hPUkRfVEVYVCIpOwogICAgICBpZiAobHlyaWNMb2NhdGlvbnMgJiYgbHlyaWNMaW5lcy5oYXMobGluZSkpIHRva2VuLmFkZFN5bWJvbCgiTFlSSUNfVEVYVCIpOwogICAgICBpZiAodGllTG9jYXRpb25zICYmIHRpZUxvY2F0aW9ucy5oYXMobG9jKSkgdG9rZW4udGllZCA9IHRydWU7CiAgICB9CiAgfSk7CiAgcmV0dXJuIHsKICAgIHN0cnVjdHVyZTogb3JnYW5pemVUb2tlbnModG9rZW5zLCBzb3VyY2UsIHsKICAgICAgbG9nZ2VyLAogICAgICB2aWV3Qm94LAogICAgICB3aWR0aDogZWxlbS53aWR0aCwKICAgICAgaGVpZ2h0OiBlbGVtLmhlaWdodAogICAgfSksCiAgICBoYXNoVGFibGUKICB9Owp9Owpjb25zdCBjcmVhdGVTaGVldERvY3VtZW50RnJvbVN2Z3MgPSAoc3ZncywgbHksIGxpbHlEb2N1bWVudCwgewogIGxvZ2dlciwKICBET01QYXJzZXIKfSA9IHt9KSA9PiB7CiAgY29uc3QgYXR0cmlidXRlcyA9IGxpbHlEb2N1bWVudC5nbG9iYWxBdHRyaWJ1dGVzKHsKICAgIHJlYWRvbmx5OiB0cnVlCiAgfSk7CiAgY29uc3Qgc291cmNlID0gbmV3IFRleHRTb3VyY2UobHkpOwogIGNvbnN0IHRpZUxvY2F0aW9ucyA9IGRvY0xvY2F0aW9uU2V0KGxpbHlEb2N1bWVudC5nZXRUaWVkTm90ZUxvY2F0aW9uczIoKSk7CiAgLy9sb2dnZXIuYXBwZW5kKCJ0aWVMb2NhdGlvbnM6IiwgT2JqZWN0LmtleXModGllTG9jYXRpb25zKSk7CiAgY29uc3QgYnJpZWZDaG9yZExvY2F0aW9ucyA9IGRvY0xvY2F0aW9uU2V0KGxpbHlEb2N1bWVudC5nZXRCcmllZkNob3JkTG9jYXRpb25zKCkpOwogIGNvbnN0IGx5cmljTG9jYXRpb25zID0gZG9jTG9jYXRpb25TZXQobGlseURvY3VtZW50LmdldEx5cmljTG9jYXRpb25zKCkpOwogIGNvbnN0IHBhZ2VzID0gc3Zncy5tYXAoc3ZnID0+IHBhcnNlU3ZnUGFnZShzdmcsIHNvdXJjZSwgewogICAgRE9NUGFyc2VyLAogICAgbG9nZ2VyLAogICAgYXR0cmlidXRlcywKICAgIHRpZUxvY2F0aW9ucywKICAgIGJyaWVmQ2hvcmRMb2NhdGlvbnMsCiAgICBseXJpY0xvY2F0aW9ucwogIH0pKTsKICBjb25zdCBkb2MgPSBuZXcgU2hlZXREb2N1bWVudCh7CiAgICBwYWdlczogcGFnZXMubWFwKHBhZ2UgPT4gcGFnZS5zdHJ1Y3R1cmUpCiAgfSk7CiAgY29uc3QgaGFzaFRhYmxlID0gcGFnZXMucmVkdWNlKChzdW0sIHBhZ2UpID0+ICh7CiAgICAuLi5zdW0sCiAgICAuLi5wYWdlLmhhc2hUYWJsZQogIH0pLCB7fSk7CiAgcG9zdFByb2Nlc3NTaGVldERvY3VtZW50KGRvYywgbGlseURvY3VtZW50KTsKICByZXR1cm4gewogICAgZG9jLAogICAgaGFzaFRhYmxlCiAgfTsKfTsKY29uc3QgcG9zdFByb2Nlc3NTaGVldERvY3VtZW50ID0gKHNoZWV0LCBsaWx5RG9jdW1lbnQpID0+IHsKICAvLyBhbGlnbiB0b2tlbiBpZAogIGNvbnN0IGludGVycHJldGVyID0gbGlseURvY3VtZW50LmludGVycHJldCgpOwogIGNvbnN0IGxpbHlOb3RhdGlvbiA9IGludGVycHJldGVyLmdldE5vdGF0aW9uKCk7CiAgaWYgKGxpbHlOb3RhdGlvbikgc2hlZXQuYWxpZ25Ub2tlbnNXaXRoTm90YXRpb24obGlseU5vdGF0aW9uKTsKICBjb25zdCBhdHRyaWJ1dGVzID0gbGlseURvY3VtZW50Lmdsb2JhbEF0dHJpYnV0ZXMoewogICAgcmVhZG9ubHk6IHRydWUKICB9KTsKICBjb25zdCBzY2hlbWVPcHRpb24gPSBzY20gPT4gc2NtLmZpbmRBbGwoU2NoZW1lUGFpcikucmVkdWNlKCh0YWJsZSwgaXRlbSkgPT4gKHRhYmxlW2l0ZW0ubGVmdF0gPSBpdGVtLnJpZ2h0LCB0YWJsZSksIHt9KTsKICBjb25zdCB2ZXJ0aWNhbENyb3AgPSBhdHRyaWJ1dGVzWyJMb3R1c09wdGlvbi52ZXJ0aWNhbENyb3AiXTsKICBpZiAodmVydGljYWxDcm9wICYmIHZlcnRpY2FsQ3JvcC5leHApIHsKICAgIGNvbnN0IG9wdGlvbnMgPSBzY2hlbWVPcHRpb24odmVydGljYWxDcm9wKTsKICAgIC8vY29uc29sZS5kZWJ1Zygib3B0aW9uczoiLCBvcHRpb25zKTsKICAgIHNoZWV0LmZpdFBhZ2VWaWV3Ym94KHsKICAgICAgdmVydGljYWxDcm9wT25seTogdHJ1ZSwKICAgICAgLi4ub3B0aW9ucwogICAgfSk7CiAgfQogIGNvbnN0IGZpdFBhZ2VWaWV3Ym94ID0gYXR0cmlidXRlc1siTG90dXNPcHRpb24uZml0UGFnZVZpZXdib3giXTsKICBpZiAoZml0UGFnZVZpZXdib3ggJiYgZml0UGFnZVZpZXdib3guZXhwKSBzaGVldC5maXRQYWdlVmlld2JveChzY2hlbWVPcHRpb24oZml0UGFnZVZpZXdib3gpKTsKfTsKY29uc3QgdHVyblJhd1N2Z1dpdGhTaGVldERvY3VtZW50ID0gKHN2Z1RleHQsIHBhZ2UsIHsKICBET01QYXJzZXIsCiAgWE1MU2VyaWFsaXplcgp9KSA9PiB7CiAgY29uc3QgZG9tID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhzdmdUZXh0LCAidGV4dC94bWwiKTsKICBjb25zdCBzdmcgPSBkb20uY2hpbGROb2Rlc1swXTsKICBzdmcuc2V0QXR0cmlidXRlKCJ3aWR0aCIsIHBhZ2Uud2lkdGgpOwogIHN2Zy5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIHBhZ2UuaGVpZ2h0KTsKICBzdmcuc2V0QXR0cmlidXRlKCJ2aWV3Qm94IiwgYCR7cGFnZS52aWV3Qm94Lnh9ICR7cGFnZS52aWV3Qm94Lnl9ICR7cGFnZS52aWV3Qm94LndpZHRofSAke3BhZ2Uudmlld0JveC5oZWlnaHR9YCk7CiAgY29uc3QgaWRzID0gcGFnZS5zeXN0ZW1zLnJlZHVjZSgoaWRzLCBzeXN0ZW0pID0+IHsKICAgIHN5c3RlbS5zdGF2ZXMuZm9yRWFjaChzdGFmZiA9PiBzdGFmZi5tZWFzdXJlcy5mb3JFYWNoKG1lYXN1cmUgPT4gaWRzLnB1c2goLi4ubWVhc3VyZS50b2tlbnMuZmlsdGVyKHRva2VuID0+IHRva2VuLmlzKCJOT1RFSEVBRCIpKS5tYXAodG9rZW4gPT4gdG9rZW4uaHJlZi5yZXBsYWNlKC86XGQrJC8sICIiKSkpKSk7CiAgICByZXR1cm4gaWRzOwogIH0sIFtdKTsKICBkb21VdGlscy50cmF2ZXJzZShkb20sIG5vZGUgPT4gewogICAgc3dpdGNoIChub2RlLnRhZ05hbWUpIHsKICAgICAgY2FzZSAiYSI6CiAgICAgICAgY29uc3QgY2FwdHVyZSA9IG5vZGUuZ2V0QXR0cmlidXRlKCJ4bGluazpocmVmIikubWF0Y2goL1xkKzpcZCs6XGQrJC8pOwogICAgICAgIGNvbnN0IGlkID0gY2FwdHVyZSAmJiBjYXB0dXJlWzBdLnJlcGxhY2UoLzpcZCskLywgIiIpOwogICAgICAgIGlmIChpZCAmJiBpZHMuaW5jbHVkZXMoaWQpKSBub2RlLnNldEF0dHJpYnV0ZSgic3R5bGUiLCAiY29sb3I6dHJhbnNwYXJlbnQ7Iik7CiAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgInRleHQiOgogICAgICAgIC8vIHJlbW92ZSBsaWx5cG9uZCBlbmdyYXZpbmcgc2lnbmF0dXJlCiAgICAgICAgaWYgKC93d3dcLmxpbHlwb25kXC5vcmcvLnRlc3Qobm9kZS50ZXh0Q29udGVudCkpIG5vZGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChub2RlKTsKICAgICAgICBicmVhazsKICAgIH0KICB9KTsKICByZXR1cm4gbmV3IFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyhkb20pOwp9OwpleHBvcnQgeyBzdmdUb0VsZW1lbnRzLCB0b2tlbml6ZUVsZW1lbnRzLCBvcmdhbml6ZVRva2VucywgcGFyc2VTdmdQYWdlLCBwb3N0UHJvY2Vzc1NoZWV0RG9jdW1lbnQsIHR1cm5SYXdTdmdXaXRoU2hlZXREb2N1bWVudCwgY3JlYXRlU2hlZXREb2N1bWVudEZyb21TdmdzLCBTdGFmZlRva2VuLCBTaGVldERvY3VtZW50LCBTaGVldFBhZ2UsIFNoZWV0U3lzdGVtLCBTaGVldFN0YWZmLCBTaGVldE1lYXN1cmUsIFN0YWZmTm90YXRpb24sIFN0YWZmQXR0cmlidXRlcywgSGFzaFRhYmxlLCBMaWx5RG9jdW1lbnRBdHRyaWJ1dGUsIExpbHlEb2N1bWVudEF0dHJpYnV0ZVJlYWRPbmx5LCBnbHlwaCB9Ow=="},{"version":3,"names":["svgToElements","tokenizeElements","StaffAttributes","HashTable","organizeTokens","LogRecorder","StaffToken","SheetDocument","StaffNotation","TextSource","domUtils","LilyDocumentAttribute","LilyDocumentAttributeReadOnly","docLocationSet","SchemePair","SheetPage","SheetSystem","SheetStaff","SheetMeasure","glyph","parseSvgPage","dom","source","lilyDocument","logger","attributes","tieLocations","briefChordLocations","lyricLocations","options","elem","append","structure","hashTable","globalAttributes","readonly","tokens","children","x","y","width","height","viewBox","match","map","Number","lyricLines","Set","loc","split","forEach","token","index","sourcePosition","line","start","has","addSymbol","tied","createSheetDocumentFromSvgs","svgs","ly","DOMParser","getTiedNoteLocations2","getBriefChordLocations","getLyricLocations","pages","svg","doc","page","reduce","sum","postProcessSheetDocument","sheet","interpreter","interpret","lilyNotation","getNotation","alignTokensWithNotation","schemeOption","scm","findAll","table","item","left","right","verticalCrop","exp","fitPageViewbox","verticalCropOnly","turnRawSvgWithSheetDocument","svgText","XMLSerializer","parseFromString","childNodes","setAttribute","ids","systems","system","staves","staff","measures","measure","push","filter","is","href","replace","traverse","node","tagName","capture","getAttribute","id","includes","test","textContent","parentNode","removeChild","serializeToString"],"sources":["/home/camus/work/lotus/node_modules/eslint-loader/index.js??ref--14-0!/home/camus/work/lotus/inc/staffSvg/index.ts"],"sourcesContent":["\nimport {svgToElements} from \"./svgParser\";\nimport tokenizeElements, {StaffAttributes, HashTable} from \"./tokenizeElements\";\nimport organizeTokens from \"./organizeTokens\";\nimport LogRecorder from \"../logRecorder\";\nimport StaffToken from \"./staffToken\";\nimport SheetDocument from \"./sheetDocument\";\nimport * as StaffNotation from \"./staffNotation\";\nimport TextSource from \"../textSource\";\nimport * as domUtils from \"../domUtils\";\nimport LilyDocument from \"../lilyParser/lilyDocument\";\nimport {LilyDocumentAttribute, LilyDocumentAttributeReadOnly} from \"../lilyParser/lilyDocument\";\nimport {docLocationSet} from \"../lilyParser\";\nimport {Scheme, SchemePair} from \"../lilyParser/lilyTerms\";\nimport {SheetPage, SheetSystem, SheetStaff, SheetMeasure} from \"./sheetDocument\";\nimport * as glyph from \"./glyph\";\n\n\n\ninterface SvgPageParserOptions {\n\tlilyDocument?: LilyDocument;\n\tlogger?: LogRecorder;\n\tattributes?: StaffAttributes;\n\ttieLocations?: Set;\n\tbriefChordLocations?: Set;\n\tlyricLocations?: Set;\n\n\tDOMParser?: any;\n};\n\n\nconst parseSvgPage = (dom, source: string | TextSource, {\n\tlilyDocument,\n\tlogger = new LogRecorder(),\n\tattributes,\n\ttieLocations,\n\tbriefChordLocations,\n\tlyricLocations,\n\t...options\n}: SvgPageParserOptions = {}) => {\n\tif (!(source instanceof TextSource))\n\t\tsource = new TextSource(source);\n\n\tconst elem = svgToElements(dom, {logger, ...options});\n\tlogger.append(\"parseSvgPage.elem\", elem);\n\n\tif (!elem)\n\t\treturn {structure: null, hashTable: {}};\n\n\tif (!attributes && lilyDocument)\n\t\tattributes = lilyDocument.globalAttributes({readonly: true}) as LilyDocumentAttributeReadOnly;\n\n\tconst {tokens, hashTable} = tokenizeElements(elem.children, attributes, logger);\n\n\tconst [x, y, width, height] = elem.viewBox.match(/[\\d-.]+/g).map(Number);\n\tconst viewBox = {x, y, width, height};\n\n\tconst lyricLines = lyricLocations && new Set([...lyricLocations].map(loc => Number(loc.split(\":\")[0])));\n\n\t// mark tie & brief chord symbol on tokens\n\ttokens.forEach((token, index) => {\n\t\ttoken.index = index;\n\n\t\tif (token.sourcePosition) {\n\t\t\tconst {line, start} = token.sourcePosition;\n\t\t\tconst loc = `${line}:${start}`;\n\n\t\t\tif (briefChordLocations && briefChordLocations.has(loc))\n\t\t\t\ttoken.addSymbol(\"CHORD_TEXT\");\n\n\t\t\tif (lyricLocations && lyricLines.has(line))\n\t\t\t\ttoken.addSymbol(\"LYRIC_TEXT\");\n\n\t\t\tif (tieLocations && tieLocations.has(loc))\n\t\t\t\ttoken.tied = true;\n\t\t}\n\t});\n\n\treturn {\n\t\tstructure: organizeTokens(tokens, source, {logger, viewBox, width: elem.width, height: elem.height}),\n\t\thashTable,\n\t};\n};\n\n\nconst createSheetDocumentFromSvgs = (svgs: string[], ly: string, lilyDocument: LilyDocument, {logger, DOMParser}: {logger?: LogRecorder, DOMParser?: any} = {}): {\n\tdoc: SheetDocument,\n\thashTable: {[key: string]: object},\n} => {\n\tconst attributes = lilyDocument.globalAttributes({readonly: true}) as LilyDocumentAttributeReadOnly;\n\n\tconst source = new TextSource(ly);\n\tconst tieLocations = docLocationSet(lilyDocument.getTiedNoteLocations2());\n\t//logger.append(\"tieLocations:\", Object.keys(tieLocations));\n\tconst briefChordLocations = docLocationSet(lilyDocument.getBriefChordLocations());\n\tconst lyricLocations = docLocationSet(lilyDocument.getLyricLocations());\n\n\tconst pages = svgs.map(svg => parseSvgPage(svg, source, {DOMParser, logger, attributes, tieLocations, briefChordLocations, lyricLocations}));\n\tconst doc = new SheetDocument({\n\t\tpages: pages.map(page => page.structure),\n\t});\n\tconst hashTable = pages.reduce((sum, page) => ({...sum, ...page.hashTable}), {});\n\n\tpostProcessSheetDocument(doc, lilyDocument);\n\n\treturn {\n\t\tdoc,\n\t\thashTable,\n\t};\n};\n\n\nconst postProcessSheetDocument = (sheet: SheetDocument, lilyDocument: LilyDocument) => {\n\t// align token id\n\tconst interpreter = lilyDocument.interpret();\n\tconst lilyNotation = interpreter.getNotation();\n\tif (lilyNotation)\n\t\tsheet.alignTokensWithNotation(lilyNotation);\n\n\tconst attributes = lilyDocument.globalAttributes({readonly: true}) as LilyDocumentAttributeReadOnly;\n\n\tconst schemeOption = scm => scm.findAll(SchemePair).reduce((table, item) => (table[item.left] = item.right, table), {});\n\n\tconst verticalCrop = attributes[\"LotusOption.verticalCrop\"] as Scheme;\n\tif (verticalCrop && verticalCrop.exp){\n\t\tconst options = schemeOption(verticalCrop);\n\t\t//console.debug(\"options:\", options);\n\t\tsheet.fitPageViewbox({verticalCropOnly: true, ...options});\n\t}\n\n\tconst fitPageViewbox = attributes[\"LotusOption.fitPageViewbox\"] as Scheme;\n\tif (fitPageViewbox && fitPageViewbox.exp)\n\t\tsheet.fitPageViewbox(schemeOption(fitPageViewbox));\n};\n\n\nconst turnRawSvgWithSheetDocument = (svgText: string, page: SheetPage, {DOMParser, XMLSerializer}): string => {\n\tconst dom = new DOMParser().parseFromString(svgText, \"text/xml\");\n\n\tconst svg: any = dom.childNodes[0];\n\tsvg.setAttribute(\"width\", page.width);\n\tsvg.setAttribute(\"height\", page.height);\n\tsvg.setAttribute(\"viewBox\", `${page.viewBox.x} ${page.viewBox.y} ${page.viewBox.width} ${page.viewBox.height}`);\n\n\tconst ids = page.systems.reduce((ids, system) => {\n\t\tsystem.staves.forEach(staff => staff.measures.forEach(measure =>\n\t\t\tids.push(...measure.tokens.filter(token => token.is(\"NOTEHEAD\")).map(token => token.href.replace(/:\\d+$/, \"\")))));\n\n\t\treturn ids;\n\t}, []);\n\n\tdomUtils.traverse(dom, node => {\n\t\tswitch (node.tagName) {\n\t\tcase \"a\":\n\t\t\tconst capture = node.getAttribute(\"xlink:href\").match(/\\d+:\\d+:\\d+$/);\n\t\t\tconst id = capture && capture[0].replace(/:\\d+$/, \"\");\n\t\t\tif (id && ids.includes(id))\n\t\t\t\tnode.setAttribute(\"style\", \"color:transparent;\");\n\n\t\t\tbreak;\n\t\tcase \"text\":\n\t\t\t// remove lilypond engraving signature\n\t\t\tif (/www\\.lilypond\\.org/.test(node.textContent)) \n\t\t\t\tnode.parentNode.removeChild(node);\n\n\t\t\tbreak;\n\t\t}\n\t});\n\n\treturn new XMLSerializer().serializeToString(dom);\n};\n\n\n\nexport {\n\tsvgToElements,\n\ttokenizeElements,\n\torganizeTokens,\n\tparseSvgPage,\n\tpostProcessSheetDocument,\n\tturnRawSvgWithSheetDocument,\n\tcreateSheetDocumentFromSvgs,\n\tStaffToken,\n\tSheetDocument,\n\tSheetPage,\n\tSheetSystem,\n\tSheetStaff,\n\tSheetMeasure,\n\tStaffNotation,\n\tStaffAttributes,\n\tHashTable,\n\tLilyDocumentAttribute,\n\tLilyDocumentAttributeReadOnly,\n\tglyph,\n};\n"],"mappings":"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","ignoreList":[]}]}