function fileInput({
initialUrl,
accept,
load = value => value
}) {
let file = null;
const form = html`<form>
${Object.assign(html`<input name=url>`, {value: initialUrl})}
<button>Submit</button>
${Object.assign(html`<input data-type=file name=file type=file multiple=true>`, {accept})}
`;
form.onsubmit = event => {
form.value = load(form.url.value);
form.dispatchEvent(new CustomEvent("input"));
event.preventDefault();
};
form.url.oninput = event => {
event.stopPropagation();
};
form.file.oninput = () => {
if (file !== null) URL.revokeObjectURL(file);
console.log('files', form.file.files)
form.value =[];
const len = form.file.files.length
for(let i=0; i<len; i++){
file = URL.createObjectURL(form.file.files[i]);
console.log(file);
form.value.push({file:load(form.url.value = file)
, filename:form.file.files[i].name
});
};
};
if (initialUrl !== undefined) {
form.value = load(initialUrl);
}
return form;
}