-
-
Notifications
You must be signed in to change notification settings - Fork 162
/
Copy pathmain.js
1 lines (1 loc) · 6.13 KB
/
main.js
1
module.exports=function(t){var n={};function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}return e.m=t,e.c=n,e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:r})},e.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},e.t=function(t,n){if(1&n&&(t=e(t)),8&n)return t;if(4&n&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(e.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&n&&"string"!=typeof t)for(var i in t)e.d(r,i,function(n){return t[n]}.bind(null,i));return r},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},e.p="",e(e.s=0)}([function(t,n,e){const{selection:r,Text:i}=e(1),a=e(2),{alert:o}=e(3);async function s(t){const n=r.items.filter(t=>t instanceof i);return 0===n.length?(await async function(){return o("SplitText","Please select text element(s).")}(),1):(n.forEach(n=>{const e=n.text.split(t.separator),i=[];if(e.forEach(t=>{if(""!==t){r.items=n,a.duplicate();const e=r.items[0];e.text=t,e.name=t,i.push(e)}}),i.length>0){const e=i[i.length-1];switch(r.items=[n,e],t.distribution){case"vertical":a.alignBottom(),r.items=i,a.distributeVertical();break;case"horizontal":a.alignRight(),r.items=i,a.distributeHorizontal()}a.group(),r.items[0].name=n.text,n.visible=!1}}),0)}t.exports={commands:{splitbynewline:async function(){await s({separator:"\n",distribution:"vertical"})},splitbytab:async function(){await s({separator:"\t",distribution:"horizontal"})},splitbycomma:async function(){await s({separator:",",distribution:"horizontal"})}}}},function(t,n){t.exports=require("scenegraph")},function(t,n){t.exports=require("commands")},function(t,n,e){const{getManifest:r,getNearestIcon:i}=e(4);let a;async function o({title:t,icon:n="plugin-icon",msgs:e,prompt:o,multiline:s=!1,render:l,template:c,isError:u=!1,buttons:p=[{label:"Close",variant:"cta",type:"submit"}]}={},m=360,f="auto",d=18){let b=Array.isArray(e)?e:[e];try{a||(a=await r())}catch(t){}let y=!1;"plugin-icon"===n&&a.icons&&(y=!0,n=i(a,d=24));const h=document.createElement("dialog");h.innerHTML=`\n<style>\n form {\n width: ${m}px;\n }\n .h1 {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n }\n .h1 img {\n width: ${d}px;\n height: ${d}px;\n flex: 0 0 ${d}px;\n padding: 0;\n margin: 0;\n }\n img.plugin-icon {\n border-radius: 4px;\n overflow: hidden;\n }\n .list {\n display: flex;\n flex-direction: row;\n }\n .list .margin {\n margin-bottom: 0;\n margin-left: 0;\n }\n .list span {\n flex: 0 0 auto;\n border: 1px solid transparent;\n }\n .list .bullet {\n text-align: center;\n }\n .list + .list {\n margin-top: 0;\n }\n textarea {\n height: 200px;\n }\n .container {\n zoverflow-x: hidden;\n overflow-y: auto;\n height: ${"auto"===f?f:`${f}px`};\n }\n</style>\n<form method="dialog">\n <h1 class="h1">\n <span ${u?'class="color-red"':""}>${t}</span>\n ${n?`<img ${y?`class="plugin-icon" title="${a.name}"`:""} src="${n}" />`:""}\n </h1>\n <hr />\n <div class="container">\n ${!l&&(c?c():b.map(t=>(function t(n){if(Array.isArray(n))return n.map(n=>t(n)).join("");if("string"!=typeof n)return t(`${n}`);let e=n;e="##"===e.substr(0,2)?`<h3>${e.substr(2).trim().toUpperCase()}</h3>`:"#"===e.substr(0,1)?`<h2>${e.substr(1).trim()}</h2>`:"* "===e.substr(0,2)?`<p class="list"><span class="bullet margin">•</span><span class="margin">${e.substr(2).trim()}</span></p>`:"----"===e.substr(0,4)?`<hr class="small"/>${e.substr(5).trim()}`:"---"===e.substr(0,3)?`<hr/>${e.substr(4).trim()}`:`<p>${e.trim()}</p>`;const r=/\[([^\]]*)\]\(([^\)]*)\)/,i=n.match(r);if(i){const t=i[1];e=`<p><a href="${i[2]}">${e.replace(r,t).replace(/\<\|?p\>/g,"")}</a></p>`}return e})(t)).join("")+(o?`<label>${s?`<textarea id="prompt" placeholder="${o}"></textarea>`:`<input type="text" id="prompt" placeholder="${o}" />`}</label>`:""))}\n </div>\n <footer>\n ${p.map(({label:t,type:n,variant:e}={},r)=>`<button id="btn${r}" type="${n}" uxp-variant="${e}">${t}</button>`).join("")}\n </footer>\n</form>\n `,l&&h.querySelector(".container").appendChild(l());let g=-1,x=-1,v=-1;h.querySelector("form").onsubmit=()=>h.close("ok"),p.forEach(({type:t,variant:n}={},e)=>{const r=h.querySelector(`#btn${e}`);"submit"!==t&&"cta"!==n||(g=e),"reset"===t&&(x=e),r.onclick=t=>{t.preventDefault(),v=e,h.close(e===x?"reasonCanceled":"ok")}});try{return document.appendChild(h),"reasonCanceled"===await h.showModal()?{which:x,value:""}:(-1===v&&(v=g),{which:v,value:o?h.querySelector("#prompt").value:""})}catch(t){return{which:x,value:""}}finally{h.remove()}}t.exports={createDialog:o,alert:async function(t,...n){return o({title:t,msgs:n})},error:async function(t,...n){return o({title:t,isError:!0,msgs:n})},confirm:async function(t,n,e=["Cancel","OK"]){return o({title:t,msgs:[n],buttons:[{label:e[0],type:"reset",variant:"primary"},{label:e[1],type:"submit",variant:"cta"}]})},warning:async function(t,n,e=["Cancel","OK"]){return o({title:t,msgs:[n],buttons:[{label:e[0],type:"submit",variant:"primary"},{label:e[1],type:"button",variant:"warning"}]})},prompt:async function(t,n,e,r=["Cancel","OK"],i=!1){return o({title:t,msgs:[n],prompt:e,multiline:i,buttons:[{label:r[0],type:"reset",variant:"primary"},{label:r[1],type:"submit",variant:"cta"}]})}}},function(t,n,e){let r;t.exports={getManifest:async function(){if(!r){const t=e(5).storage.localFileSystem,n=await t.getPluginFolder(),i=await n.getEntry("manifest.json");if(i){const t=await i.read();r=JSON.parse(t)}}return r},getNearestIcon:function(t,n){if(t&&t.icons){return t.icons.sort((t,n)=>{const e=t.width,r=n.width;return e<r?1:e>r?-1:0}).reduce((t,e)=>(t?e.width>=n&&(t=e):t=e,t)).path}}}},function(t,n){t.exports=require("uxp")}]);