set-input-files
Version:
set HTMLInputElement files
44 lines (33 loc) • 1.17 kB
JavaScript
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.setInputFiles = factory());
}(this, (function () { 'use strict';
var getDataTransfer = function getDataTransfer() {
return new DataTransfer();
};
var concat = Array.prototype.concat;
try {
getDataTransfer();
} catch (_unused) {
getDataTransfer = function getDataTransfer() {
return new ClipboardEvent('').clipboardData;
};
}
function createFileList() {
// eslint-disable-next-line prefer-rest-params
var files = concat.apply([], arguments);
var i = 0;
var length = files.length;
var dataTransfer = getDataTransfer();
for (; i < length; i++) {
dataTransfer.items.add(files[i]);
}
return dataTransfer.files;
}
// eslint-disable-next-line import/no-extraneous-dependencies, import/extensions
function setInputFiles(input, files) {
input.files = createFileList(files);
}
return setInputFiles;
})));