2 lines
840 B
JavaScript
2 lines
840 B
JavaScript
function c(){function r(t){return[...t.dataTransfer?.items??[]].filter(n=>n.kind==="file").map(n=>n.webkitGetAsEntry()).filter(Boolean).length>0||[...t.dataTransfer?.files??[]].length>0}async function s(t){const i=[],n=[...t.dataTransfer?.items??[]].filter(e=>e.kind==="file").map(e=>e.webkitGetAsEntry()).filter(Boolean);if(n.length)for(const e of n){const a=await o(e,l(".",e));i.push(...a.map(f=>f.file))}else i.push(...t.dataTransfer?.files??[]);return i}return{handleDrop:s,hasFilesOrFolders:r}}function o(r){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";return new Promise((t,i)=>{r.isFile?r.file(e=>t([{file:e,path:s}]),i):r.isDirectory&&r.createReader().readEntries(async e=>{const a=[];for(const f of e)a.push(...await o(f,l(s,f)));t(a)})})}function l(r,s){return s.isDirectory?`${r}/${s.name}`:r}export{c as u};
|