Files
svgedit/dist/editor/extensions/ext-imagelib/ext-imagelib.js
2020-09-06 08:32:10 +02:00

11 lines
8.0 KiB
JavaScript

function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function asyncGeneratorStep(e,t,r,n,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,i)}function _asyncToGenerator(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var o=e.apply(t,r);function _next(e){asyncGeneratorStep(o,n,i,_next,_throw,"next",e)}function _throw(e){asyncGeneratorStep(o,n,i,_next,_throw,"throw",e)}_next(void 0)}))}}
/**
* @file ext-imagelib.js
*
* @license MIT
*
* @copyright 2010 Alexis Deveria
*
*/var e={name:"imagelib",init:function init(e){var t=this;return _asyncToGenerator(regeneratorRuntime.mark((function _callee2(){var r,n,i,o,a,s,c,p,l,u,d,b,m,g,h,f,v,x,w,_,k,y;return regeneratorRuntime.wrap((function _callee2$(S){for(;;)switch(S.prev=S.next){case 0:return k=function _showBrowser(){var e=r("#imgbrowse");if(e.length)r("#imgbrowse_holder").show();else{r("<div id=imgbrowse_holder><div id=imgbrowse class=toolbar_button></div></div>").insertAfter("#svg_docprops"),e=r("#imgbrowse");var t=s.select_lib,n=r("<ul id=imglib_opts>").appendTo(e),i=r('<iframe src="javascript:0"/>').prependTo(e).hide().wrap("<div id=lib_framewrap>"),o=r("<h1>").prependTo(e).text(t).css({position:"absolute",top:0,left:0,width:"100%"}),a=r("<button>"+c.common.cancel+"</button>").appendTo(e).on("click touchend",(function(){r("#imgbrowse_holder").hide()})).css({position:"absolute",top:5,right:-10}),p=r("<span>").css({position:"absolute",top:5,left:10}).appendTo(e),l=r("<button hidden>"+s.show_list+"</button>").appendTo(p).on("click touchend",(function(){i.attr("src","about:blank").hide(),n.show(),o.text(t),l.hide()})).css({"margin-right":5}).hide();r("<select><option value=s>"+s.import_single+"</option><option value=m>"+s.import_multi+"</option><option value=o>"+s.open+"</option></select>").appendTo(p).change((function(){switch(m=r(this).val()){case"s":case"o":_(!1);break;case"m":_(!0)}})).css({"margin-top":10}),a.prepend(r.getSvgIcon("cancel",!0)),l.prepend(r.getSvgIcon("tool_imagelib",!0)),s.imgLibs.forEach((function(e){var t=e.name,a=e.url,s=e.description;r("<li>").appendTo(n).text(t).on("click touchend",(function(){i.attr("src",a).show(),o.text(t),n.hide(),l.show()})).append("<span>".concat(s,"</span>"))}))}},_=function _toggleMulti(e){r("#lib_framewrap, #imglib_opts").css({right:e?200:10}),f||(f=r("<div id=imglib_preview>").css({position:"absolute",top:45,right:10,width:180,bottom:45,background:"#fff",overflow:"auto"}).insertAfter("#lib_framewrap"),v=r("<button disabled>Import selected</button>").appendTo("#imgbrowse").on("click touchend",(function(){r.each(g,(function(e){var t=this[0],r=this[1];"svg"===t?p.importSvgString(r):d(r),p.moveSelectedElements(20*e,20*e,!1)})),f.empty(),g=[],r("#imgbrowse_holder").hide()})).css({position:"absolute",bottom:10,right:-10})),f.toggle(e),v.toggle(e)},w=function _onMessage3(){return(w=_asyncToGenerator(regeneratorRuntime.mark((function _callee(e){var t,a,s,x,w,_,k,y,S,T,A,E,B,G,I,L,R;return regeneratorRuntime.wrap((function _callee$(j){for(;;)switch(j.prev=j.next){case 0:if(t=e.origin,(a=e.data)&&["string","object"].includes(_typeof(a))){j.next=3;break}return j.abrupt("return");case 3:if(j.prev=3,"imagelib"===(a="object"===_typeof(a)?a:JSON.parse(a)).namespace){j.next=7;break}return j.abrupt("return");case 7:if(l.includes("*")||l.includes(t)){j.next=10;break}return console.log("Origin ".concat(t," not whitelisted for posting to ").concat(window.origin)),j.abrupt("return");case 10:if(_="href"in a,(w="name"in a)||!h){j.next=15;break}return h=!1,j.abrupt("return");case 15:_&&(s=a.href,a=a.data),r("#dialog_box").hide(),x=w?"meta":a.charAt(0),j.next=28;break;case 20:if(j.prev=20,j.t0=j.catch(3),"string"!=typeof a){j.next=28;break}if("{"===(k=a.charAt(0))||!h){j.next=27;break}return h=!1,j.abrupt("return");case 27:"|"===k&&(y=a.indexOf("|",1),s=a.substr(1,y-1),a=a.substr(y+1),x=a.charAt(0));case 28:j.t1=x,j.next="meta"===j.t1?31:"<"===j.t1?47:"d"===j.t1?49:60;break;case 31:if(h=!1,b[(T=a).id]=T,B=T.name||"file",G=c.notification.retrieving.replace("%s",B),"m"===m){j.next=43;break}return j.next=39,r.process_cancel(G);case 39:h=!0,r("#dialog_box").hide(),j.next=46;break;case 43:S=r("<div>").text(G).data("id",T.id),f.append(S),T.entry=S;case 46:return j.abrupt("return");case 47:return A=!0,j.abrupt("break",62);case 49:if(!a.startsWith("data:image/svg+xml")){j.next=57;break}return"data:image/svg+xml;base64,",I=a.substring("data:image/svg+xml;base64,".length),a=n(I),A=!0,j.abrupt("break",62);case 57:if(!a.startsWith("data:image/")){j.next=60;break}return E=!0,j.abrupt("break",62);case 60:return"m"!==m?u():b[s].entry.remove(),j.abrupt("return");case 62:j.t2=m,j.next="s"===j.t2?65:"m"===j.t2?68:"o"===j.t2?72:83;break;case 65:return A?p.importSvgString(a):E&&d(a),u(),j.abrupt("break",83);case 68:return g.push([A?"svg":"img",a]),T=b[s],A?(T&&T.name?L=T.name:(R=(new DOMParser).parseFromString(i(a),"text/xml").documentElement,L=r(R).children("title").first().text()||"(SVG #"+a.length+")"),T?f.children().each((function(){r(this).data("id")===s&&(T.preview_url?r(this).html(r("<span>").append(r("<img>").attr("src",T.preview_url),L)):r(this).text(L),v.removeAttr("disabled"))})):(f.append(r("<div>").text(L)),v.removeAttr("disabled"))):(T&&T.preview_url?(L=T.name||"",S=r("<span>").append(r("<img>").attr("src",T.preview_url),L)):S=r("<img>").attr("src",a),T?f.children().each((function(){r(this).data("id")===s&&(r(this).html(S),v.removeAttr("disabled"))})):(f.append(r("<div>").append(S)),v.removeAttr("disabled"))),j.abrupt("break",83);case 72:if(A){j.next=74;break}return j.abrupt("break",83);case 74:return u(),j.next=77,o.openPrep();case 77:if(j.sent){j.next=80;break}return j.abrupt("return");case 80:return p.clear(),p.setSvgString(a),j.abrupt("break",83);case 83:case"end":return j.stop()}}),_callee,null,[[3,20]])})))).apply(this,arguments)},x=function _onMessage2(e){return w.apply(this,arguments)},d=function _importImage(e){var t=p.addSVGElementFromJson({element:"image",attr:{x:0,y:0,width:0,height:0,id:p.getNextId(),style:"pointer-events:inherit"}});p.clearSelection(),p.addToSelection([t]),p.setImageURL(e)},u=function _closeBrowser(){r("#imgbrowse_holder").hide(),document.activeElement.blur()},r=e.$,n=e.decode64,i=e.dropXMLInternalSubset,o=t,S.next=10,import("./locale/".concat(o.curPrefs.lang,".js"));case 10:return a=S.sent,s=a.default,c=o.uiStrings,p=o.canvas,l=s.imgLibs.map((function(e){var t=e.url;try{return new URL(t).origin}catch(e){return location.origin}})),b={},m="s",g=[],h=!1,window.addEventListener("message",x,!0),y=[{id:"tool_imagelib",type:"app_menu",icon:"imagelib.png",position:4,events:{mouseup:k}}],S.abrupt("return",{svgicons:"ext-imagelib.xml",buttons:s.buttons.map((function(e,t){return Object.assign(y[t],e)})),callback:function callback(){r("<style>").text("#imgbrowse_holder {position: absolute;top: 0;left: 0;width: 100%;height: 100%;background-color: rgba(0, 0, 0, .5);z-index: 5;}#imgbrowse {position: absolute;top: 25px;left: 25px;right: 25px;bottom: 25px;min-width: 300px;min-height: 200px;background: #B0B0B0;border: 1px outset #777;}#imgbrowse h1 {font-size: 20px;margin: .4em;text-align: center;}#lib_framewrap,#imgbrowse > ul {position: absolute;top: 45px;left: 10px;right: 10px;bottom: 10px;background: white;margin: 0;padding: 0;}#imgbrowse > ul {overflow: auto;}#imgbrowse > div {border: 1px solid #666;}#imglib_preview > div {padding: 5px;font-size: 12px;}#imglib_preview img {display: block;margin: 0 auto;max-height: 100px;}#imgbrowse li {list-style: none;padding: .5em;background: #E8E8E8;border-bottom: 1px solid #B0B0B0;line-height: 1.2em;font-style: sans-serif;}#imgbrowse li > span {color: #666;font-size: 15px;display: block;}#imgbrowse li:hover {background: #FFC;cursor: pointer;}#imgbrowse iframe {width: 100%;height: 100%;border: 0;}").appendTo("head")}});case 21:case"end":return S.stop()}}),_callee2)})))()}};export default e;
//# sourceMappingURL=ext-imagelib.js.map