sp-image-editor
Version:
React component version of filerobot image editor (FIE).
1 lines • 2.6 kB
JavaScript
var textarea,textNode,transformer,editFinishCallback,disableTextEditCallback,handleOutsideClick=function(a){if(a.target!==textarea){var b=textarea.value;deactivateTextChange(),editFinishCallback(b)}},deactivateTextChange=function(){textarea&&textarea.remove(textarea),window&&window.removeEventListener("click",handleOutsideClick),textNode&&textNode.show(),transformer&&transformer.show(),"function"==typeof disableTextEditCallback&&disableTextEditCallback(),textNode=null,textarea=null,transformer=null},activateTextChange=function(a,b,c,d,e){editFinishCallback=d,disableTextEditCallback=e,transformer=c,textNode=b.findOne("#".concat(a)),textNode.hide(),transformer.hide();var f=textNode.absolutePosition();textarea=document.createElement("textarea"),b.container().parentNode.appendChild(textarea),textarea.value=textNode.text(),textarea.style.position="absolute",textarea.style.top="".concat(f.y,"px"),textarea.style.left="".concat(f.x,"px"),textarea.style.width="".concat(textNode.width()-2*textNode.padding(),"px"),textarea.style.height="".concat(textNode.height()-2*textNode.padding()+5,"px"),textarea.style.maxWidth="".concat(textNode.width()-2*textNode.padding(),"px"),textarea.style.maxHeight="".concat(textNode.height()-2*textNode.padding()+5,"px"),textarea.style.fontSize="".concat(textNode.fontSize(),"px"),textarea.style.border="1px solid rgba(0, 0, 0, 0.5)",textarea.style.padding="0px",textarea.style.margin="0px",textarea.style.overflow="hidden",textarea.style.background="none",textarea.style.outline="none",textarea.style.resize="none",textarea.style.lineHeight=textNode.lineHeight(),textarea.style.fontFamily=textNode.fontFamily(),textarea.style.transformOrigin="left top",textarea.style.textAlign=textNode.align(),textarea.style.fontStyle=textNode.fontStyle(),textarea.style.letterSpacing=textNode.letterSpacing(),textarea.style.lineHeight=textNode.lineHeight(),textarea.style.color=textNode.fill();var g=textNode.rotation(),h="";g&&(h+="rotateZ(".concat(g,"deg)"));var i=0,j=-1<navigator.userAgent.toLowerCase().indexOf("firefox");j&&(i+=2+Math.round(textNode.fontSize()/20)),h+="translateY(-".concat(i,"px)"),textarea.style.transform=h,textarea.style.height="auto",textarea.style.height="".concat(textarea.scrollHeight+3,"px"),textarea.focus(),textarea.addEventListener("keydown",function(a){"Escape"===a.key&&deactivateTextChange()}),textarea.addEventListener("blur",function(){var a=textarea.value;deactivateTextChange(),editFinishCallback(a)}),window&&setTimeout(function(){window.addEventListener("click",handleOutsideClick)})};export{activateTextChange,deactivateTextChange};