UNPKG

openfl

Version:

A fast, productive library for 2D cross-platform development.

111 lines (93 loc) 3.52 kB
// 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;