openfl
Version:
A fast, productive library for 2D cross-platform development.
111 lines (93 loc) • 3.52 kB
JavaScript
// Class: openfl.net.FileReferenceList
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = require("./../../hxClasses_stub").default;
var $hxEnums = require("./../../hxEnums_stub").default;
var $bind = require("./../../bind_stub").default;
var $import = require("./../../import_stub").default;
var $extend = require("./../../extend_stub").default;
function openfl_events_EventDispatcher() {return require("./../../openfl/events/EventDispatcher");}
function openfl_events_Event() {return require("./../../openfl/events/Event");}
function openfl_net_FileReference() {return require("./../../openfl/net/FileReference");}
function openfl_utils_ByteArrayData() {return require("./../../openfl/utils/ByteArrayData");}
// Constructor
var FileReferenceList = function() {
(openfl_events_EventDispatcher().default).call(this);
this.fileList = [];
}
// Meta
FileReferenceList.__name__ = "openfl.net.FileReferenceList";
FileReferenceList.__isInterface__ = false;
FileReferenceList.__super__ = (openfl_events_EventDispatcher().default);
FileReferenceList.prototype = $extend((openfl_events_EventDispatcher().default).prototype, {
browse: function(typeFilter) {
this.fileInput = window.document.createElement("input");
this.fileInput.type = "file";
this.fileInput.multiple = true;
if(typeFilter != null) {
var accept = "";
var _g = 0;
var _g1 = typeFilter.length;
while(_g < _g1) {
var i = _g++;
if(i > 0) {
accept += ",";
}
accept += typeFilter[i].extension;
}
this.fileInput.accept = accept;
}
this.fileInput.addEventListener("change",$bind(this,this.fileInput_onChange));
this.fileInput.click();
return true;
},
fileInput_onChange: function(event) {
var _gthis = this;
var files = event.target.files;
if(files.length == 0) {
this.dispatchEvent(new (openfl_events_Event().default)("cancel"));
return;
}
var _g = 0;
var _g1 = files.length;
while(_g < _g1) {
var i = _g++;
var file = files[i];
var fileReference = [new (openfl_net_FileReference().default)()];
fileReference[0].__path = file.name;
fileReference[0].name = file.name;
fileReference[0].size = file.size;
fileReference[0].type = file.type;
var lastModified = new Date(file.lastModified);
fileReference[0].creationDate = lastModified;
fileReference[0].modificationDate = lastModified;
var reader = new FileReader();
reader.addEventListener("load",(function(fileReference1) {
return function(readerEvent) {
var this1 = new (openfl_utils_ByteArrayData().default)(0);
var byteArray = this1;
var dataView = new DataView(readerEvent.target.result);
var _g2 = 0;
var _g11 = dataView.byteLength;
while(_g2 < _g11) {
var i1 = _g2++;
byteArray.writeByte(dataView.getUint8(i1));
}
fileReference1[0].data = byteArray;
_gthis.fileList.push(fileReference1[0]);
if(_gthis.fileList.length == files.length) {
_gthis.dispatchEvent(new (openfl_events_Event().default)("select"));
}
};
})(fileReference));
reader.readAsArrayBuffer(file);
}
}
});
FileReferenceList.prototype.__class__ = FileReferenceList.prototype.constructor = $hxClasses["openfl.net.FileReferenceList"] = FileReferenceList;
// Init
// Statics
// Export
exports.default = FileReferenceList;