svgedit
Version:
Powerful SVG-Editor for your browser
11 lines (10 loc) • 4.01 kB
JavaScript
/**
* @file ext-shapes.js
*
* @license MIT
*
* @copyright 2010 Christian Tzurcanu, 2010 Alexis Deveria
*
*/
const e="shapes",loadExtensionTranslation=async function(t){let n;const l=t.configObj.pref("lang");try{n=await function __variableDynamicImportRuntime0__(e){switch(e){case"./locale/en.js":return Promise.resolve().then((function(){return a}));case"./locale/fr.js":return Promise.resolve().then((function(){return o}));case"./locale/zh-CN.js":return Promise.resolve().then((function(){return s}));default:return new Promise((function(t,a){("function"==typeof queueMicrotask?queueMicrotask:setTimeout)(a.bind(null,new Error("Unknown variable dynamic import: "+e)))}))}}("./locale/".concat(l,".js"))}catch(t){console.warn("Missing translation (".concat(l,") for ").concat(e," - using 'en'")),n=await Promise.resolve().then((function(){return a}))}t.i18next.addResourceBundle(l,e,n.default)};var t={name:e,async init(){const t=this,a=t.svgCanvas,{$id:o}=a,s=a.getRootElem();let n={};await loadExtensionTranslation(t);const l="shapelib",r={};let i,c,u;return{callback(){if(null===o("tool_shapelib")){const s='\n <se-explorerbutton id="tool_shapelib" title="'.concat(t.i18next.t("".concat(e,":buttons.0.title")),'" lib="./extensions/ext-shapes/shapelib/"\n src="shapelib.svg"></se-explorerbutton>\n ');a.insertChildAtIndex(o("tools_left"),s,9),o("tool_shapelib").addEventListener("click",(()=>{this.leftPanel.updateLeftPanel("tool_shapelib")&&a.setMode(l)}))}},mouseDown(e){if(a.getMode()!==l)return;const t=document.getElementById("tool_shapelib").dataset.draw;c=e.start_x;const o=c;u=e.start_y;const s=u,m=a.getStyle();return r.x=e.event.clientX,r.y=e.event.clientY,i=a.addSVGElementFromJson({element:"path",curStyles:!0,attr:{d:t,id:a.getNextId(),opacity:m.opacity/2,style:"pointer-events:none"}}),i.setAttribute("transform","translate("+o+","+s+") scale(0.005) translate("+-o+","+-s+")"),a.recalculateDimensions(i),n=i.getBBox(),{started:!0}},mouseMove(e){if(a.getMode()!==l)return;const t=a.getZoom(),o=e.event,r=e.mouse_x/t,m=e.mouse_y/t,h=i.transform.baseVal,b=i.getBBox(),d=b.x,p=b.y,f=(Math.min(c,r),Math.min(u,m),Math.abs(r-c)),g=Math.abs(m-u);let _=f/n.width||1,y=g/n.height||1,w=0;r<c&&(w=n.width);let M=0;m<u&&(M=n.height);const j=s.createSVGTransform(),v=s.createSVGTransform(),x=s.createSVGTransform();if(j.setTranslate(-(d+w),-(p+M)),!o.shiftKey){const e=Math.min(Math.abs(_),Math.abs(y));_=e*(_<0?-1:1),y=e*(y<0?-1:1)}v.setScale(_,y),x.setTranslate(d+w,p+M),h.appendItem(x),h.appendItem(v),h.appendItem(j),a.recalculateDimensions(i),n=i.getBBox()},mouseUp(e){if(a.getMode()!==l)return;return{keep:e.event.clientX!==r.x&&e.event.clientY!==r.y,element:i,started:!1}}}}},a=Object.freeze({__proto__:null,default:{loading:"Loading...",categories:{basic:"Basic",object:"Objects",symbol:"Symbols",arrow:"Arrows",flowchart:"Flowchart",animal:"Animals",game:"Cards & Chess",dialog_balloon:"Dialog balloons",electronics:"Electronics",math:"Mathematical",music:"Music",misc:"Miscellaneous",raphael_1:"raphaeljs.com set 1",raphael_2:"raphaeljs.com set 2"},buttons:[{title:"Shape library"}]}}),o=Object.freeze({__proto__:null,default:{loading:"Chargement...",categories:{basic:"Basique",object:"Objets",symbol:"Symboles",arrow:"Flèches",flowchart:"Flowchart",animal:"Animaux",game:"Cartes & Echecs",dialog_balloon:"Dialog balloons",electronics:"Electronique",math:"Mathematiques",music:"Musique",misc:"Divers",raphael_1:"raphaeljs.com set 1",raphael_2:"raphaeljs.com set 2"},buttons:[{title:"Bibliothèque d'images"}]}}),s=Object.freeze({__proto__:null,default:{loading:"正在加载...",categories:{basic:"基本",object:"对象",symbol:"符号",arrow:"箭头",flowchart:"工作流",animal:"动物",game:"棋牌",dialog_balloon:"会话框",electronics:"电子",math:"数学",music:"音乐",misc:"其他",raphael_1:"raphaeljs.com 集合 1",raphael_2:"raphaeljs.com 集合 2"},buttons:[{title:"图元库"}]}});export{t as default};
//# sourceMappingURL=ext-shapes.js.map