{"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/app/sheetBaker.ts","dependencies":[{"path":"/home/camus/work/lotus/app/sheetBaker.ts","mtime":1732184473651},{"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:aW1wb3J0IFZ1ZSBmcm9tICJ2dWUiOwppbXBvcnQgU2hlZXRMaXZlIGZyb20gIi4vY29tcG9uZW50cy9zaGVldC1saXZlLnZ1ZSI7CmltcG9ydCBTaGVldFNpZ25zIGZyb20gIi4vY29tcG9uZW50cy9zaGVldC1zaWducy52dWUiOwppbXBvcnQgeyBTVkdfRFREIH0gZnJvbSAiLi4vaW5jL2NvbnN0YW50cyI7CjsKY29uc3QgU2hlZXRMaXZlQ29tcG9uZW50ID0gVnVlLmV4dGVuZChTaGVldExpdmUpOwpjb25zdCBTaGVldFNpZ25zQ29tcG9uZW50ID0gVnVlLmV4dGVuZChTaGVldFNpZ25zKTsKY29uc3QgcmFzdGVyaXplU3ZnID0gYXN5bmMgKHN2ZywgY2FudmFzKSA9PiB7CiAgY29uc3Qgc3ZnVVJMID0gImRhdGE6aW1hZ2Uvc3ZnK3htbCwiICsgZW5jb2RlVVJJQ29tcG9uZW50KFNWR19EVEQgKyBzdmcpOwogIC8vY29uc29sZS5sb2coInN2Z1VSTDoiLCBzdmdVUkwpOwogIGNvbnN0IGltYWdlID0gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewogICAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTsKICAgIGltYWdlLm9ubG9hZCA9ICgpID0+IHJlc29sdmUoaW1hZ2UpOwogICAgaW1hZ2Uub25lcnJvciA9IGV2ZW50ID0+IHsKICAgICAgY29uc29sZS53YXJuKCJFcnJvciB3aGVuIGxvYWRpbmcgc3ZnIGltYWdlOiIsIHN2Z1VSTCk7CiAgICAgIHJlamVjdChldmVudCk7CiAgICB9OwogICAgaW1hZ2Uuc3JjID0gc3ZnVVJMOwogIH0pOwogIGNhbnZhcy53aWR0aCA9IGltYWdlLndpZHRoOwogIGNhbnZhcy5oZWlnaHQgPSBpbWFnZS5oZWlnaHQ7CiAgY29uc3QgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOwogIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCAwLCAwKTsKICBjb25zdCBibG9iID0gYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBjYW52YXMudG9CbG9iKGJsb2IgPT4gcmVzb2x2ZShibG9iKSwgImltYWdlL3BuZyIpKTsKICAvL2NvbnNvbGUubG9nKCJibG9iOiIsIGJsb2IpOwogIHJldHVybiBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpOwp9Owpjb25zdCBiYWtlUmF3U3ZnID0gKHN2ZywgbWF0Y2hlZElkcywgY2FudmFzKSA9PiB7CiAgY29uc3QgZG9tID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhzdmcsICJ0ZXh0L3htbCIpOwogIGNvbnN0IHJvb3QgPSBkb20uY2hpbGROb2Rlc1swXTsKICAvL2NvbnNvbGUubG9nKCJkb206Iiwgcm9vdCwgbWF0Y2hlZElkcyk7CiAgZm9yIChjb25zdCBub2RlIG9mIHJvb3QuY2hpbGROb2RlcykgewogICAgc3dpdGNoIChub2RlLnRhZ05hbWUpIHsKICAgICAgY2FzZSAidGV4dCI6CiAgICAgICAgLy8gcmVtb3ZlIGxpbHlwb25kIGVuZ3JhdmluZyBzaWduYXR1cmUKICAgICAgICBpZiAoL3d3d1wubGlseXBvbmRcLm9yZy8udGVzdChub2RlLnRleHRDb250ZW50KSkgcm9vdC5yZW1vdmVDaGlsZChub2RlKTsKICAgICAgICBicmVhazsKICAgICAgY2FzZSAiYSI6CiAgICAgICAgLy8gcmVtb3ZlIG1hdGNoZWQgdG9rZW5zCiAgICAgICAgY29uc3QgaHJlZiA9IG5vZGUuZ2V0QXR0cmlidXRlKCJ4bGluazpocmVmIik7CiAgICAgICAgY29uc3QgY2FwdHVyZXMgPSBocmVmLm1hdGNoKC86KFxkKzpcZCs6XGQrKSQvKTsKICAgICAgICBpZiAoY2FwdHVyZXMpIHsKICAgICAgICAgIGNvbnN0IGlkID0gY2FwdHVyZXNbMV07CiAgICAgICAgICBpZiAobWF0Y2hlZElkcy5oYXMoaWQpKSByb290LnJlbW92ZUNoaWxkKG5vZGUpOwogICAgICAgIH0KICAgICAgICBicmVhazsKICAgIH0KICB9CiAgY29uc3QgZG9jID0gcm9vdC5vdXRlckhUTUw7CiAgcmV0dXJuIHJhc3Rlcml6ZVN2Zyhkb2MsIGNhbnZhcyk7Cn07CmNvbnN0IGJha2VSYXdTdmdzID0gYXN5bmMgKHN2Z3MsIG1hdGNoZWRJZHMsIGNhbnZhcykgPT4gewogIGNvbnN0IHVybHMgPSBbXTsKICBmb3IgKGNvbnN0IHN2ZyBvZiBzdmdzKSB1cmxzLnB1c2goYXdhaXQgYmFrZVJhd1N2ZyhzdmcsIG1hdGNoZWRJZHMsIGNhbnZhcykpOwogIHJldHVybiB1cmxzOwp9Owpjb25zdCByZXBsYWNlU2lnbnMgPSAobm9kZSwgc2lnbkRpY3QpID0+IHsKICBmb3IgKGNvbnN0IGNoaWxkIG9mIG5vZGUuY2hpbGRyZW4pIHsKICAgIGlmIChjaGlsZC50YWdOYW1lID09PSAidXNlIikgewogICAgICBjb25zdCBocmVmID0gY2hpbGQuZ2V0QXR0cmlidXRlKCJ4bGluazpocmVmIik7CiAgICAgIGlmIChocmVmKSB7CiAgICAgICAgY29uc3QgaWQgPSBocmVmLnN1YnN0cigxKTsKICAgICAgICBjb25zdCBzaWduID0gc2lnbkRpY3RbaWRdOwogICAgICAgIGlmIChzaWduKSB7CiAgICAgICAgICBjb25zdCBuZXdTaWduID0gc2lnbi5jbG9uZU5vZGUodHJ1ZSk7CiAgICAgICAgICBuZXdTaWduLmNsYXNzTGlzdC5hZGQoLi4uY2hpbGQuY2xhc3NMaXN0KTsKICAgICAgICAgIC8vIGFwcGVuZCBzdHlsZXMKICAgICAgICAgIGlmIChuZXdTaWduLmNsYXNzTGlzdC5jb250YWlucygic3RhZmYtbGluZSIpIHx8IG5ld1NpZ24uY2xhc3NMaXN0LmNvbnRhaW5zKCJsaW5lIikgfHwgbmV3U2lnbi5jbGFzc0xpc3QuY29udGFpbnMoInNsdXIiKSkgbmV3U2lnbi5jaGlsZHJlblswXS5zZXRBdHRyaWJ1dGUoInN0cm9rZSIsICJibGFjayIpOwogICAgICAgICAgbm9kZS5pbnNlcnRCZWZvcmUobmV3U2lnbiwgY2hpbGQpOwogICAgICAgICAgbm9kZS5yZW1vdmVDaGlsZChjaGlsZCk7CiAgICAgICAgfQogICAgICB9CiAgICB9IGVsc2UgcmVwbGFjZVNpZ25zKGNoaWxkLCBzaWduRGljdCk7CiAgfQp9Owpjb25zdCBiYWtlTGl2ZVNoZWV0R2VuID0gYXN5bmMgZnVuY3Rpb24qICh7CiAgc2hlZXREb2N1bWVudCwKICBzaWducywKICBoYXNoVGFibGUsCiAgbWF0Y2hlZElkcywKICBjYW52YXMKfSkgewogIGNvbnNvbGUuYXNzZXJ0KCEhc2hlZXREb2N1bWVudCwgInNoZWV0RG9jdW1lbnQgaXMgbnVsbC4iKTsKICBjb25zb2xlLmFzc2VydCghIW1hdGNoZWRJZHMsICJtYXRjaGVkSWRzIGlzIG51bGwuIik7CiAgY29uc29sZS5hc3NlcnQoISFjYW52YXMsICJjYW52YXMgaXMgbnVsbC4iKTsKICBjb25zb2xlLmFzc2VydChzaWducyB8fCBoYXNoVGFibGUsICJzaWducyAmIGhhc2hUYWJsZSBpcyBib3RoIG51bGwuIik7CiAgY29uc3Qgc2hlZXQgPSBuZXcgU2hlZXRMaXZlQ29tcG9uZW50KHsKICAgIHByb3BzRGF0YTogewogICAgICBkb2M6IHNoZWV0RG9jdW1lbnQsCiAgICAgIHBhcnRpYWxWaXNpYmxlOiBmYWxzZQogICAgfQogIH0pLiRtb3VudChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7CiAgYXdhaXQgc2hlZXQuJG5leHRUaWNrKCk7CiAgaWYgKCFzaWducykgewogICAgc2lnbnMgPSBuZXcgU2hlZXRTaWduc0NvbXBvbmVudCh7CiAgICAgIHByb3BzRGF0YTogewogICAgICAgIGhhc2hUYWJsZQogICAgICB9CiAgICB9KS4kbW91bnQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOwogIH0KICBjb25zdCBkZWZzID0gc2lnbnMuJGVsLmNoaWxkcmVuWzBdOwogIGNvbnN0IHNpZ25EaWN0ID0gWy4uLmRlZnMuY2hpbGRyZW5dLnJlZHVjZSgoZGljdCwgc2lnbikgPT4gKGRpY3Rbc2lnbi5pZF0gPSBzaWduLCBkaWN0KSwge30pOwogIC8vY29uc29sZS5sb2coImRlZnM6IiwgZGVmcyk7CiAgLypjb25zdCBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWUiKTsKICBzdHlsZS5pbm5lckhUTUwgPSBgCiAgICAgIC50b2tlbiAuc3RhZmYtbGluZSBsaW5lLCAudG9rZW4gLmxpbmUgbGluZSwgLnRva2VuIC5zbHVyIHBhdGgKICAgICAgewogICAgICAgICAgc3Ryb2tlOiBibGFjazsKICAgICAgfQogIGA7Ki8KICAvLyBAdHMtaWdub3JlCiAgY29uc3Qgc3ZnRG9tcyA9IFsuLi5zaGVldC4kZWwuY2hpbGRyZW5dOwogIGZvciAoY29uc3Qgc3ZnIG9mIHN2Z0RvbXMpIHsKICAgIC8vIG5vdCB3b3JraW5nPwogICAgLy9zdmcuaW5zZXJ0QmVmb3JlKHN0eWxlLmNsb25lTm9kZSh0cnVlKSwgc3ZnLmZpcnN0Q2hpbGQpOwogICAgLy8gcmVtb3ZlIG1hdGNoZWQgdG9rZW5zCiAgICBtYXRjaGVkSWRzLmZvckVhY2goaWQgPT4gewogICAgICBzdmcucXVlcnlTZWxlY3RvckFsbChgZ1tkYXRhLWhyZWY9JyR7aWR9J11gKS5mb3JFYWNoKHRva2VuID0+IHRva2VuLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodG9rZW4pKTsKICAgIH0pOwogICAgcmVwbGFjZVNpZ25zKHN2Zywgc2lnbkRpY3QpOwogICAgLy9jb25zb2xlLmxvZygic3ZnOiIsIHN2Zyk7CiAgICB5aWVsZCBhd2FpdCByYXN0ZXJpemVTdmcoc3ZnLm91dGVySFRNTCwgY2FudmFzKTsKICB9CiAgOwp9Owpjb25zdCBiYWtlTGl2ZVNoZWV0ID0gYXN5bmMgb3B0aW9ucyA9PiB7CiAgY29uc3QgdXJscyA9IFtdOwogIGZvciBhd2FpdCAoY29uc3QgdXJsIG9mIGJha2VMaXZlU2hlZXRHZW4ob3B0aW9ucykpIHVybHMucHVzaCh1cmwpOwogIHJldHVybiB1cmxzOwp9OwpleHBvcnQgeyBiYWtlUmF3U3ZncywgYmFrZUxpdmVTaGVldEdlbiwgYmFrZUxpdmVTaGVldCB9Ow=="},{"version":3,"names":["Vue","SheetLive","SheetSigns","SVG_DTD","SheetLiveComponent","extend","SheetSignsComponent","rasterizeSvg","svg","canvas","svgURL","encodeURIComponent","image","Promise","resolve","reject","Image","onload","onerror","event","console","warn","src","width","height","context","getContext","drawImage","blob","toBlob","URL","createObjectURL","bakeRawSvg","matchedIds","dom","DOMParser","parseFromString","root","childNodes","node","tagName","test","textContent","removeChild","href","getAttribute","captures","match","id","has","doc","outerHTML","bakeRawSvgs","svgs","urls","push","replaceSigns","signDict","child","children","substr","sign","newSign","cloneNode","classList","add","contains","setAttribute","insertBefore","bakeLiveSheetGen","sheetDocument","signs","hashTable","assert","sheet","propsData","partialVisible","$mount","document","createElement","$nextTick","defs","$el","reduce","dict","svgDoms","forEach","querySelectorAll","token","parentElement","bakeLiveSheet","options","url"],"sources":["/home/camus/work/lotus/node_modules/eslint-loader/index.js??ref--14-0!/home/camus/work/lotus/app/sheetBaker.ts"],"sourcesContent":["\nimport Vue from \"vue\";\n\nimport SheetLive from \"./components/sheet-live.vue\";\nimport SheetSigns from \"./components/sheet-signs.vue\";\n\nimport {SVG_DTD} from \"../inc/constants\";\n\n\n\n// eslint-disable-next-line\ndeclare class SheetDocument {};\n\n\nconst SheetLiveComponent = Vue.extend(SheetLive);\nconst SheetSignsComponent = Vue.extend(SheetSigns);\n\n\nconst rasterizeSvg = async (svg, canvas) => {\n\tconst svgURL = \"data:image/svg+xml,\" + encodeURIComponent(SVG_DTD + svg);\n\t//console.log(\"svgURL:\", svgURL);\n\tconst image: any = await new Promise((resolve, reject) => {\n\t\tconst image = new Image();\n\t\timage.onload = () => resolve(image);\n\t\timage.onerror = event => {\n\t\t\tconsole.warn(\"Error when loading svg image:\", svgURL);\n\t\t\treject(event);\n\t\t};\n\t\timage.src = svgURL;\n\t});\n\n\tcanvas.width = image.width;\n\tcanvas.height = image.height;\n\n\tconst context = canvas.getContext(\"2d\");\n\tcontext.drawImage(image, 0, 0);\n\n\tconst blob = await new Promise(resolve => canvas.toBlob(blob => resolve(blob), \"image/png\"));\n\t//console.log(\"blob:\", blob);\n\n\treturn URL.createObjectURL(blob);\n};\n\n\nconst bakeRawSvg = (svg, matchedIds, canvas) => {\n\tconst dom = new DOMParser().parseFromString(svg, \"text/xml\");\n\tconst root: any = dom.childNodes[0];\n\t//console.log(\"dom:\", root, matchedIds);\n\n\tfor (const node of root.childNodes) {\n\t\tswitch (node.tagName) {\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\troot.removeChild(node);\n\n\t\t\tbreak;\n\t\tcase \"a\":\n\t\t\t// remove matched tokens\n\t\t\tconst href = node.getAttribute(\"xlink:href\");\n\t\t\tconst captures = href.match(/:(\\d+:\\d+:\\d+)$/);\n\t\t\tif (captures) {\n\t\t\t\tconst id = captures[1];\n\t\t\t\tif (matchedIds.has(id))\n\t\t\t\t\troot.removeChild(node);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tconst doc = root.outerHTML;\n\n\treturn rasterizeSvg(doc, canvas);\n};\n\n\nconst bakeRawSvgs = async (svgs: string[], matchedIds: Set, canvas) => {\n\tconst urls = [];\n\tfor (const svg of svgs)\n\t\turls.push(await bakeRawSvg(svg, matchedIds, canvas));\n\n\treturn urls;\n};\n\n\nconst replaceSigns = (node, signDict) => {\n\tfor (const child of node.children) {\n\t\tif (child.tagName === \"use\") {\n\t\t\tconst href = child.getAttribute(\"xlink:href\");\n\t\t\tif (href) {\n\t\t\t\tconst id = href.substr(1);\n\t\t\t\tconst sign = signDict[id];\n\t\t\t\tif (sign) {\n\t\t\t\t\tconst newSign = sign.cloneNode(true);\n\t\t\t\t\tnewSign.classList.add(...child.classList);\n\n\t\t\t\t\t// append styles\n\t\t\t\t\tif (newSign.classList.contains(\"staff-line\") || newSign.classList.contains(\"line\") || newSign.classList.contains(\"slur\"))\n\t\t\t\t\t\tnewSign.children[0].setAttribute(\"stroke\", \"black\");\n\n\t\t\t\t\tnode.insertBefore(newSign, child);\n\t\t\t\t\tnode.removeChild(child);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse\n\t\t\treplaceSigns(child, signDict);\n\t}\n};\n\n\nconst bakeLiveSheetGen = async function* ({sheetDocument, signs, hashTable, matchedIds, canvas}: {\n\tsheetDocument: SheetDocument,\n\tsigns?: any,\n\thashTable?: {[key: string]: any},\n\tmatchedIds: Set,\n\tcanvas: HTMLCanvasElement,\n}) {\n\tconsole.assert(!!sheetDocument, \"sheetDocument is null.\");\n\tconsole.assert(!!matchedIds, \"matchedIds is null.\");\n\tconsole.assert(!!canvas, \"canvas is null.\");\n\tconsole.assert(signs || hashTable, \"signs & hashTable is both null.\");\n\n\tconst sheet = new SheetLiveComponent({\n\t\tpropsData: {\n\t\t\tdoc: sheetDocument,\n\t\t\tpartialVisible: false,\n\t\t},\n\t}).$mount(document.createElement(\"div\"));\n\n\tawait sheet.$nextTick();\n\n\tif (!signs) {\n\t\tsigns = new SheetSignsComponent({\n\t\t\tpropsData: {\n\t\t\t\thashTable,\n\t\t\t},\n\t\t}).$mount(document.createElement(\"div\"));\n\t}\n\n\tconst defs = signs.$el.children[0];\n\tconst signDict = [...defs.children].reduce((dict, sign) => ((dict[sign.id] = sign), dict), {});\n\t//console.log(\"defs:\", defs);\n\n\t/*const style = document.createElement(\"stye\");\n\tstyle.innerHTML = `\n\t\t.token .staff-line line, .token .line line, .token .slur path\n\t\t{\n\t\t\tstroke: black;\n\t\t}\n\t`;*/\n\n\t// @ts-ignore\n\tconst svgDoms = [...sheet.$el.children];\n\tfor (const svg of svgDoms) {\n\t\t// not working?\n\t\t//svg.insertBefore(style.cloneNode(true), svg.firstChild);\n\n\t\t// remove matched tokens\n\t\tmatchedIds.forEach(id => {\n\t\t\tsvg.querySelectorAll(`g[data-href='${id}']`).forEach(token => token.parentElement.removeChild(token));\n\t\t});\n\n\t\treplaceSigns(svg, signDict);\n\t\t//console.log(\"svg:\", svg);\n\n\t\tyield await rasterizeSvg(svg.outerHTML, canvas);\n\t};\n};\n\n\nconst bakeLiveSheet = async options => {\n\tconst urls = [];\n\n\tfor await (const url of bakeLiveSheetGen(options))\n\t\turls.push(url);\n\n\treturn urls;\n};\n\n\n\nexport {\n\tbakeRawSvgs,\n\tbakeLiveSheetGen,\n\tbakeLiveSheet,\n};\n"],"mappings":"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","ignoreList":[]}]}