UNPKG

svgedit

Version:

Powerful SVG-Editor for your browser

13 lines (12 loc) 8.8 kB
// @license © 2020 Google LLC. Licensed under the Apache License, Version 2.0. const t=(()=>{if("undefined"==typeof self)return!1;if("top"in self&&self!==top)try{top.location}catch{return!1}else if("showOpenFilePicker"in self)return"showOpenFilePicker";return!1})(),n=t?Promise.resolve().then((function(){return u})):Promise.resolve().then((function(){return d})); // @license © 2020 Google LLC. Licensed under the Apache License, Version 2.0. // @license © 2020 Google LLC. Licensed under the Apache License, Version 2.0. t?Promise.resolve().then((function(){return f})):Promise.resolve().then((function(){return p})); // @license © 2020 Google LLC. Licensed under the Apache License, Version 2.0. const i=t?Promise.resolve().then((function(){return m})):Promise.resolve().then((function(){return v}));async function fileSave$4(){return(await i).default(...arguments)}const o="opensave";let a=null;const loadExtensionTranslation=async function(t){let n;const i=t.configObj.pref("lang");try{n=await function __variableDynamicImportRuntime0__(t){switch(t){case"./locale/en.js":return Promise.resolve().then((function(){return g}));case"./locale/fr.js":return Promise.resolve().then((function(){return _}));case"./locale/zh-CN.js":return Promise.resolve().then((function(){return y}));default:return new Promise((function(n,i){("function"==typeof queueMicrotask?queueMicrotask:setTimeout)(i.bind(null,new Error("Unknown variable dynamic import: "+t)))}))}}("./locale/".concat(i,".js"))}catch(t){console.warn("Missing translation (".concat(i,") for ").concat(o," - using 'en'")),n=await Promise.resolve().then((function(){return g}))}t.i18next.addResourceBundle(i,"translation",n.default,!0,!0)};var s={name:o,async init(t){const i=this,{svgCanvas:s}=i,{$id:u}=s;await loadExtensionTranslation(i);const clickClear=async function(){const[t,n]=i.configObj.curConfig.dimensions;"Cancel"!==await seConfirm(i.i18next.t("notification.QwantToClear"))&&(i.leftPanel.clickSelect(),i.svgCanvas.clear(),i.svgCanvas.setResolution(t,n),i.updateCanvas(!0),i.zoomImage(),i.layersPanel.populateLayers(),i.topPanel.updateContextPanel(),i.svgCanvas.runExtensions("onNewDocument"))},clickOpen=async function(){if("Cancel"!==await i.openPrep()){s.clear();try{const t=await async function fileOpen$4(){return(await n).default(...arguments)}({mimeTypes:["image/*"]}),o=await t.text();await i.loadSvgString(o),i.updateCanvas()}catch(t){if("AbortError"!==t.name)return console.error(t)}}},clickSave=async function(t,n){if("open"===u("se-svg-editor-dialog").getAttribute("dialog"))i.saveSourceEditor();else{const n={images:i.configObj.pref("img_save"),round_digits:6};if(s.clearSelection(),n){const t=s.mergeDeep(s.getSvgOption(),n);for(const[n,i]of Object.entries(t))s.setSvgOption(n,i)}s.setSvgOption("apply",!0);const o='<?xml version="1.0"?>\n'+s.svgCanvasToString(),u=function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:512;const o=atob(t),a=[];for(let t=0;t<o.length;t+=i){const n=o.slice(t,t+i),s=new Array(n.length);for(let t=0;t<n.length;t++)s[t]=n.charCodeAt(t);const u=new Uint8Array(s);a.push(u)}return new Blob(a,{type:n})}(s.encode64(o),"image/svg+xml");try{if("save"===t&&null!==a){const t=!1;a=await fileSave$4(u,{fileName:"icon.svg",extensions:[".svg"]},a,t)}else a=await fileSave$4(u,{fileName:"icon.svg",extensions:[".svg"]})}catch(t){if("AbortError"!==t.name)return console.error(t)}}};return{name:i.i18next.t("".concat(o,":name")),callback(){s.insertChildAtIndex(u("main_button"),'\n <se-menu-item id="tool_clear" label="opensave.new_doc" shortcut="N" src="new.svg"></se-menu-item>',0);s.insertChildAtIndex(u("main_button"),'<se-menu-item id="tool_open" label="opensave.open_image_doc" src="open.svg"></se-menu-item>',1);s.insertChildAtIndex(u("main_button"),'<se-menu-item id="tool_save" label="opensave.save_doc" shortcut="S" src="saveImg.svg"></se-menu-item>',2);s.insertChildAtIndex(u("main_button"),'<se-menu-item id="tool_save_as" label="opensave.save_as_doc" src="saveImg.svg"></se-menu-item>',3),u("tool_clear").addEventListener("click",clickClear.bind(this)),u("tool_open").addEventListener("click",clickOpen.bind(this)),u("tool_save").addEventListener("click",clickSave.bind(this,"save")),u("tool_save_as").addEventListener("click",clickSave.bind(this,"saveas"))}}}}; // @license © 2020 Google LLC. Licensed under the Apache License, Version 2.0. const e$1=async t=>{const n=await t.getFile();return n.handle=t,n};var u=Object.freeze({__proto__:null,default:async function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[{}];Array.isArray(t)||(t=[t]);const n=[];t.forEach(((t,i)=>{n[i]={description:t.description||"",accept:{}},t.mimeTypes?t.mimeTypes.map((o=>{n[i].accept[o]=t.extensions||[]})):n[i].accept["*/*"]=t.extensions||[]}));const i=await window.showOpenFilePicker({id:t[0].id,startIn:t[0].startIn,types:n,multiple:t[0].multiple||!1,excludeAcceptAllOption:t[0].excludeAcceptAllOption||!1}),o=await Promise.all(i.map(e$1));return t[0].multiple?o:o[0]}}),d=Object.freeze({__proto__:null,default:async function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[{}];return Array.isArray(t)||(t=[t]),new Promise(((n,i)=>{const o=document.createElement("input");o.type="file";const a=[...t.map((t=>t.mimeTypes||[])).join(),t.map((t=>t.extensions||[])).join()].join();o.multiple=t[0].multiple||!1,o.accept=a||"";const l=t=>{"function"==typeof s&&s(),n(t)},s=t[0].legacySetup&&t[0].legacySetup(l,(()=>s(i)),o);o.addEventListener("change",(()=>{l(o.multiple?Array.from(o.files):o.files[0])})),o.click()}))}}); // @license © 2020 Google LLC. Licensed under the Apache License, Version 2.0. const e=async function(t,n){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.name;const o=[],a=[];for await(const s of t.values()){const u="".concat(i,"/").concat(s.name);"file"===s.kind?a.push(s.getFile().then((n=>(n.directoryHandle=t,Object.defineProperty(n,"webkitRelativePath",{configurable:!0,enumerable:!0,get:()=>u}))))):"directory"===s.kind&&n&&o.push(e(s,n,u))}return[...(await Promise.all(o)).flat(),...await Promise.all(a)]};var f=Object.freeze({__proto__:null,default:async function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t.recursive=t.recursive||!1;const n=await window.showDirectoryPicker({id:t.id,startIn:t.startIn});return e(n,t.recursive)}}),p=Object.freeze({__proto__:null,default:async function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[{}];return Array.isArray(t)||(t=[t]),t[0].recursive=t[0].recursive||!1,new Promise(((n,i)=>{const o=document.createElement("input");o.type="file",o.webkitdirectory=!0;const c=t=>{"function"==typeof a&&a(),n(t)},a=t[0].legacySetup&&t[0].legacySetup(c,(()=>a(i)),o);o.addEventListener("change",(()=>{let n=Array.from(o.files);t[0].recursive||(n=n.filter((t=>2===t.webkitRelativePath.split("/").length))),c(n)})),o.click()}))}}),m=Object.freeze({__proto__:null,default:async function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[{}],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];Array.isArray(n)||(n=[n]),n[0].fileName=n[0].fileName||"Untitled";const a=[];if(n.forEach(((n,i)=>{a[i]={description:n.description||"",accept:{}},n.mimeTypes?(0===i&&n.mimeTypes.push(t.type),n.mimeTypes.map((t=>{a[i].accept[t]=n.extensions||[]}))):a[i].accept[t.type]=n.extensions||[]})),i)try{await i.getFile()}catch(t){if(i=null,o)throw t}const s=i||await window.showSaveFilePicker({suggestedName:n[0].fileName,id:n[0].id,startIn:n[0].startIn,types:a,excludeAcceptAllOption:n[0].excludeAcceptAllOption||!1}),u=await s.createWritable();return await u.write(t),await u.close(),s}}),v=Object.freeze({__proto__:null,default:async function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Array.isArray(n)&&(n=n[0]);const i=document.createElement("a");i.download=n.fileName||"Untitled",i.href=URL.createObjectURL(t);const r=()=>{"function"==typeof o&&o()},o=n.legacySetup&&n.legacySetup(r,(()=>o(reject)),i);return i.addEventListener("click",(()=>{setTimeout((()=>URL.revokeObjectURL(i.href)),3e4),r()})),i.click(),null}}),g=Object.freeze({__proto__:null,default:{opensave:{new_doc:"New Image",open_image_doc:"Open SVG",save_doc:"Save SVG",save_as_doc:"Save as SVG"}}}),_=Object.freeze({__proto__:null,default:{opensave:{new_doc:"Nouvelle image",open_image_doc:"Ouvrir le SVG",save_doc:"Enregistrer l'image",save_as_doc:"Enregistrer en tant qu'image"}}}),y=Object.freeze({__proto__:null,default:{opensave:{new_doc:"新图片",open_image_doc:"打开 SVG",save_doc:"保存图像",save_as_doc:"另存为图像"}}});export{s as default}; //# sourceMappingURL=ext-opensave.js.map