javascript:{(()=>{var o=class _{static m_0;static _g6(t,e){globalThis[t]=e,_.m_0.push(t)}static getData(t){return globalThis[t]}static clear(){for(var t of[..._.m_0])_._g6(t,null)}static set _W(t){_._g6("canvas98",t)}static get _W(){return _.getData("canvas98")}};o.m_0=[];var g=class _{static p1=null;static active=false;static bound=false;static newButton(){let t=document.createElement("li");return t.id="canvas98RulerBtn",t.classList.add("canvas98MenuItem","material-icons"),t.textContent="straighten",t.style.userSelect="none",t.setAttribute("title","定規"),t}static getApp(){return o._W||globalThis.canvas98}static getCanvas(app){if(app&&app.ui&&app.ui.canvas)return app.ui.canvas;if(app&&app.ui&&app.ui._11&&app.ui._11.canvas)return app.ui._11.canvas;return document.querySelector("#canvas98Element canvas")||document.querySelector("#oejs")}static loc(e,canvas){let r=canvas.getBoundingClientRect();return{x:(e.clientX-r.left)*(canvas.width/r.width),y:(e.clientY-r.top)*(canvas.height/r.height)}}static getColor(app){try{if(app&&app._O&&app._O.color&&typeof app._O.color._n==="function")return app._O.color._n();if(app&&app.ui&&app.ui._c&&app.ui._c._Q&&app.ui._c._Q._v&&app.ui._c._Q._v._B){let c=app.ui._c._Q._v._B.value;if(c&&typeof c._n==="function")return c._n()}}catch(e){}return"#800000"}static getWidth(app){try{if(app&&app._O&&app._O._Z!=null)return app._O._Z;if(app&&app.ui&&app.ui._c&&app.ui._c._61&&app.ui._c._61._v&&app.ui._c._61._v._h1)return app.ui._c._61._v._h1.value||2}catch(e){}return 2}static drawLine(app,x1,y1,x2,y2){let layers=app.layers;if(!layers||!layers._i)return;let layer=layers._i,canvas=layer.canvas,ctx=canvas.getContext("2d"),w=g.getWidth(app),color=g.getColor(app);let before=document.createElement("canvas");before.width=canvas.width;before.height=canvas.height;before.getContext("2d").drawImage(canvas,0,0);ctx.save();ctx.strokeStyle=color;ctx.lineWidth=w;ctx.lineCap="round";ctx.lineJoin="round";ctx.beginPath();ctx.moveTo(x1,y1);ctx.lineTo(x2,y2);ctx.stroke();ctx.restore();if(layer._c1){layer._c1.width=canvas.width;layer._c1.height=canvas.height;layer._c1.getContext("2d").drawImage(canvas,0,0)}if(typeof layer._E==="function")layer._E();if(layers._u)layers._u();if(typeof layers._V1==="function"){let after=document.createElement("canvas");after.width=canvas.width;after.height=canvas.height;after.getContext("2d").drawImage(canvas,0,0);layers._V1({undo:()=>{let c2=canvas.getContext("2d");c2.clearRect(0,0,canvas.width,canvas.height);c2.drawImage(before,0,0);if(layer._c1){layer._c1.width=canvas.width;layer._c1.height=canvas.height;layer._c1.getContext("2d").drawImage(canvas,0,0)}if(typeof layer._E==="function")layer._E();if(layers._u)layers._u()},redo:()=>{let c2=canvas.getContext("2d");c2.clearRect(0,0,canvas.width,canvas.height);c2.drawImage(after,0,0);if(layer._c1){layer._c1.width=canvas.width;layer._c1.height=canvas.height;layer._c1.getContext("2d").drawImage(canvas,0,0)}if(typeof layer._E==="function")layer._E();if(layers._u)layers._u()}})}}static onDown(e){if(!g.active)return;let app=g.getApp();if(!app)return;let canvas=g.getCanvas(app);if(!canvas)return;let p=g.loc(e,canvas);if(!g.p1){g.p1=p;e.preventDefault();e.stopPropagation()}else{g.drawLine(app,g.p1.x,g.p1.y,p.x,p.y);g.p1=null;e.preventDefault();e.stopPropagation()}}static toggle(){g.active=!g.active;g.p1=null;let btn=document.getElementById("canvas98RulerBtn");if(btn){if(g.active){btn.style.outline="2px solid #1e90ff";btn.style.outlineOffset="-2px"}else{btn.style.outline=""}}if(g.active&&!g.bound){g.bound=true;let app=g.getApp(),canvas=g.getCanvas(app);if(canvas)canvas.addEventListener("pointerdown",g.onDown,true)}}static mount(){let t=g.newButton();t.addEventListener("click",()=>g.toggle());let parents=document.querySelectorAll("#canvas98HorizontalMainMenu .canvas98MenuItemParent");if(parents&&parents[1])parents[1].append(t);else{let menu=document.querySelector("#canvas98HorizontalMainMenu");if(menu)menu.append(t)}}static run(){let tryMount=()=>{if(document.getElementById("canvas98RulerBtn"))return;if(document.querySelector("#canvas98HorizontalMainMenu")||document.getElementById("canvas98Element")){g.mount();return}setTimeout(tryMount,300)};tryMount()}};g.run();})();}