open-in-idx
Version:
SDK for opening workspaces in Project IDX
2 lines (1 loc) • 1.06 kB
JavaScript
exports.makeButtonImageUrl=function(e){var n=void 0===e?{}:e,t=n.label,o=n.color,i=n.size,r=n.imageFormat,d=void 0===r?"svg":r;return["https://cdn.idx.dev/btn/",void 0===t?"open":t,"_",void 0===o?"dark":o,"_",(void 0===i?32:i)+("png"===d?"@2x":"")+"."+d].join("")},exports.newAdhocWorkspace=function(e,n){var t=function(e){var n=e.settings,t=[],o=function(e,n,o){void 0===o&&(o=""),t.push(function(e,n){var t=document.createElement("input");return t.type="hidden",t.name=e,t.value=n,t}(e,"string"==typeof n?n:o))};Object.entries(e.files).forEach(function(e){var n=e[1];o("project[files]["+encodeURIComponent(e[0])+"]",n)}),n&&o("project[settings]",JSON.stringify({baselineEnvironment:null==n?void 0:n.baselineEnvironment}));var i=document.createElement("form");return i.method="post",i.setAttribute("style","display:none !important;"),i.append.apply(i,t),i}(e);t.action=(null==n?void 0:n.url)||"https://idx.google.com/run.api",t.target=!1===(null==n?void 0:n.newWindow)?"_self":"_blank",document.body.appendChild(t),t.submit(),document.body.removeChild(t)};