file-select-dialog
Version:
Call file select dialog programmatically
3 lines (2 loc) • 663 B
JavaScript
class e extends Error{}class t extends e{}class n extends e{}const c=(e,t=",")=>e.join(t),l={accept:"*",multiple:!1,strict:!1},r=e=>{const{accept:t,multiple:n,strict:r}={...l,...e},i=p({multiple:n,accept:Array.isArray(t)?c(t):t});return new Promise((e=>{i.onchange=()=>{e(s(i.files,n,r)),i.remove()},i.click()}))},s=(e,c,l)=>new Promise(((r,s)=>{if(!e)return s(new t);const p=i(e,c,l);if(!p)return s(new n);r(p)})),i=(e,t,n)=>!t&&n?1===e.length?e[0]:null:e.length?e:null,p=({accept:e,multiple:t})=>{const n=document.createElement("input");return n.type="file",n.multiple=t,n.accept=e,n};export{r as fileDialog};
//# sourceMappingURL=file-select-dialog.esm.js.map