From 2eaf2ac1f047d522c08526df8bcfab7e6942590f Mon Sep 17 00:00:00 2001 From: Mahdi Dibaiee Date: Thu, 29 Oct 2015 11:31:28 +0330 Subject: [PATCH] feat(ftp): implement ftp browser, most things are functioning except archiving and some actions of multiple files --- build/main.js | 1463 ++++++++++++++++++++++++-------- build/manifest.webapp | 3 + src/js/api/auto.js | 14 + src/js/api/files.js | 18 +- src/js/api/ftp.js | 267 ++++++ src/js/components/file-list.js | 9 +- src/js/main.js | 11 + src/js/reducers/cwd.js | 3 +- src/js/reducers/files.js | 26 +- src/js/reducers/search.js | 2 +- src/manifest.webapp | 3 + 11 files changed, 1437 insertions(+), 382 deletions(-) create mode 100644 src/js/api/auto.js create mode 100644 src/js/api/ftp.js diff --git a/build/main.js b/build/main.js index c209cd9..c42c933 100644 --- a/build/main.js +++ b/build/main.js @@ -1781,6 +1781,309 @@ module.exports = isArray || function (val) { }; },{}],5:[function(require,module,exports){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +function EventEmitter() { + this._events = this._events || {}; + this._maxListeners = this._maxListeners || undefined; +} +module.exports = EventEmitter; + +// Backwards-compat with node 0.10.x +EventEmitter.EventEmitter = EventEmitter; + +EventEmitter.prototype._events = undefined; +EventEmitter.prototype._maxListeners = undefined; + +// By default EventEmitters will print a warning if more than 10 listeners are +// added to it. This is a useful default which helps finding memory leaks. +EventEmitter.defaultMaxListeners = 10; + +// Obviously not all Emitters should be limited to 10. This function allows +// that to be increased. Set to zero for unlimited. +EventEmitter.prototype.setMaxListeners = function(n) { + if (!isNumber(n) || n < 0 || isNaN(n)) + throw TypeError('n must be a positive number'); + this._maxListeners = n; + return this; +}; + +EventEmitter.prototype.emit = function(type) { + var er, handler, len, args, i, listeners; + + if (!this._events) + this._events = {}; + + // If there is no 'error' event listener then throw. + if (type === 'error') { + if (!this._events.error || + (isObject(this._events.error) && !this._events.error.length)) { + er = arguments[1]; + if (er instanceof Error) { + throw er; // Unhandled 'error' event + } + throw TypeError('Uncaught, unspecified "error" event.'); + } + } + + handler = this._events[type]; + + if (isUndefined(handler)) + return false; + + if (isFunction(handler)) { + switch (arguments.length) { + // fast cases + case 1: + handler.call(this); + break; + case 2: + handler.call(this, arguments[1]); + break; + case 3: + handler.call(this, arguments[1], arguments[2]); + break; + // slower + default: + len = arguments.length; + args = new Array(len - 1); + for (i = 1; i < len; i++) + args[i - 1] = arguments[i]; + handler.apply(this, args); + } + } else if (isObject(handler)) { + len = arguments.length; + args = new Array(len - 1); + for (i = 1; i < len; i++) + args[i - 1] = arguments[i]; + + listeners = handler.slice(); + len = listeners.length; + for (i = 0; i < len; i++) + listeners[i].apply(this, args); + } + + return true; +}; + +EventEmitter.prototype.addListener = function(type, listener) { + var m; + + if (!isFunction(listener)) + throw TypeError('listener must be a function'); + + if (!this._events) + this._events = {}; + + // To avoid recursion in the case that type === "newListener"! Before + // adding it to the listeners, first emit "newListener". + if (this._events.newListener) + this.emit('newListener', type, + isFunction(listener.listener) ? + listener.listener : listener); + + if (!this._events[type]) + // Optimize the case of one listener. Don't need the extra array object. + this._events[type] = listener; + else if (isObject(this._events[type])) + // If we've already got an array, just append. + this._events[type].push(listener); + else + // Adding the second element, need to change to array. + this._events[type] = [this._events[type], listener]; + + // Check for listener leak + if (isObject(this._events[type]) && !this._events[type].warned) { + var m; + if (!isUndefined(this._maxListeners)) { + m = this._maxListeners; + } else { + m = EventEmitter.defaultMaxListeners; + } + + if (m && m > 0 && this._events[type].length > m) { + this._events[type].warned = true; + console.error('(node) warning: possible EventEmitter memory ' + + 'leak detected. %d listeners added. ' + + 'Use emitter.setMaxListeners() to increase limit.', + this._events[type].length); + if (typeof console.trace === 'function') { + // not supported in IE 10 + console.trace(); + } + } + } + + return this; +}; + +EventEmitter.prototype.on = EventEmitter.prototype.addListener; + +EventEmitter.prototype.once = function(type, listener) { + if (!isFunction(listener)) + throw TypeError('listener must be a function'); + + var fired = false; + + function g() { + this.removeListener(type, g); + + if (!fired) { + fired = true; + listener.apply(this, arguments); + } + } + + g.listener = listener; + this.on(type, g); + + return this; +}; + +// emits a 'removeListener' event iff the listener was removed +EventEmitter.prototype.removeListener = function(type, listener) { + var list, position, length, i; + + if (!isFunction(listener)) + throw TypeError('listener must be a function'); + + if (!this._events || !this._events[type]) + return this; + + list = this._events[type]; + length = list.length; + position = -1; + + if (list === listener || + (isFunction(list.listener) && list.listener === listener)) { + delete this._events[type]; + if (this._events.removeListener) + this.emit('removeListener', type, listener); + + } else if (isObject(list)) { + for (i = length; i-- > 0;) { + if (list[i] === listener || + (list[i].listener && list[i].listener === listener)) { + position = i; + break; + } + } + + if (position < 0) + return this; + + if (list.length === 1) { + list.length = 0; + delete this._events[type]; + } else { + list.splice(position, 1); + } + + if (this._events.removeListener) + this.emit('removeListener', type, listener); + } + + return this; +}; + +EventEmitter.prototype.removeAllListeners = function(type) { + var key, listeners; + + if (!this._events) + return this; + + // not listening for removeListener, no need to emit + if (!this._events.removeListener) { + if (arguments.length === 0) + this._events = {}; + else if (this._events[type]) + delete this._events[type]; + return this; + } + + // emit removeListener for all listeners on all events + if (arguments.length === 0) { + for (key in this._events) { + if (key === 'removeListener') continue; + this.removeAllListeners(key); + } + this.removeAllListeners('removeListener'); + this._events = {}; + return this; + } + + listeners = this._events[type]; + + if (isFunction(listeners)) { + this.removeListener(type, listeners); + } else { + // LIFO order + while (listeners.length) + this.removeListener(type, listeners[listeners.length - 1]); + } + delete this._events[type]; + + return this; +}; + +EventEmitter.prototype.listeners = function(type) { + var ret; + if (!this._events || !this._events[type]) + ret = []; + else if (isFunction(this._events[type])) + ret = [this._events[type]]; + else + ret = this._events[type].slice(); + return ret; +}; + +EventEmitter.listenerCount = function(emitter, type) { + var ret; + if (!emitter._events || !emitter._events[type]) + ret = 0; + else if (isFunction(emitter._events[type])) + ret = 1; + else + ret = emitter._events[type].length; + return ret; +}; + +function isFunction(arg) { + return typeof arg === 'function'; +} + +function isNumber(arg) { + return typeof arg === 'number'; +} + +function isObject(arg) { + return typeof arg === 'object' && arg !== null; +} + +function isUndefined(arg) { + return arg === void 0; +} + +},{}],6:[function(require,module,exports){ // shim for using process in browser var process = module.exports = {}; @@ -1873,7 +2176,7 @@ process.chdir = function (dir) { }; process.umask = function() { return 0; }; -},{}],6:[function(require,module,exports){ +},{}],7:[function(require,module,exports){ /*! Hammer.JS - v2.0.4 - 2014-09-28 * http://hammerjs.github.io/ * @@ -4338,7 +4641,7 @@ if (typeof define == TYPE_FUNCTION && define.amd) { })(window, document, 'Hammer'); -},{}],7:[function(require,module,exports){ +},{}],8:[function(require,module,exports){ /** * Copyright (c) 2014-2015, Facebook, Inc. * All rights reserved. @@ -9299,7 +9602,7 @@ if (typeof define == TYPE_FUNCTION && define.amd) { return Immutable; })); -},{}],8:[function(require,module,exports){ +},{}],9:[function(require,module,exports){ 'use strict'; // private property var _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; @@ -9371,7 +9674,7 @@ exports.decode = function(input, utf8) { }; -},{}],9:[function(require,module,exports){ +},{}],10:[function(require,module,exports){ 'use strict'; function CompressedObject() { this.compressedSize = 0; @@ -9401,7 +9704,7 @@ CompressedObject.prototype = { }; module.exports = CompressedObject; -},{}],10:[function(require,module,exports){ +},{}],11:[function(require,module,exports){ 'use strict'; exports.STORE = { magic: "\x00\x00", @@ -9416,7 +9719,7 @@ exports.STORE = { }; exports.DEFLATE = require('./flate'); -},{"./flate":15}],11:[function(require,module,exports){ +},{"./flate":16}],12:[function(require,module,exports){ 'use strict'; var utils = require('./utils'); @@ -9520,7 +9823,7 @@ module.exports = function crc32(input, crc) { }; // vim: set shiftwidth=4 softtabstop=4: -},{"./utils":28}],12:[function(require,module,exports){ +},{"./utils":29}],13:[function(require,module,exports){ 'use strict'; var utils = require('./utils'); @@ -9629,7 +9932,7 @@ DataReader.prototype = { }; module.exports = DataReader; -},{"./utils":28}],13:[function(require,module,exports){ +},{"./utils":29}],14:[function(require,module,exports){ 'use strict'; exports.base64 = false; exports.binary = false; @@ -9642,7 +9945,7 @@ exports.comment = null; exports.unixPermissions = null; exports.dosPermissions = null; -},{}],14:[function(require,module,exports){ +},{}],15:[function(require,module,exports){ 'use strict'; var utils = require('./utils'); @@ -9749,7 +10052,7 @@ exports.isRegExp = function (object) { }; -},{"./utils":28}],15:[function(require,module,exports){ +},{"./utils":29}],16:[function(require,module,exports){ 'use strict'; var USE_TYPEDARRAY = (typeof Uint8Array !== 'undefined') && (typeof Uint16Array !== 'undefined') && (typeof Uint32Array !== 'undefined'); @@ -9767,7 +10070,7 @@ exports.uncompress = function(input) { return pako.inflateRaw(input); }; -},{"pako":31}],16:[function(require,module,exports){ +},{"pako":32}],17:[function(require,module,exports){ 'use strict'; var base64 = require('./base64'); @@ -9848,7 +10151,7 @@ JSZip.base64 = { JSZip.compressions = require('./compressions'); module.exports = JSZip; -},{"./base64":8,"./compressions":10,"./defaults":13,"./deprecatedPublicUtils":14,"./load":17,"./object":20,"./support":24}],17:[function(require,module,exports){ +},{"./base64":9,"./compressions":11,"./defaults":14,"./deprecatedPublicUtils":15,"./load":18,"./object":21,"./support":25}],18:[function(require,module,exports){ 'use strict'; var base64 = require('./base64'); var ZipEntries = require('./zipEntries'); @@ -9881,7 +10184,7 @@ module.exports = function(data, options) { return this; }; -},{"./base64":8,"./zipEntries":29}],18:[function(require,module,exports){ +},{"./base64":9,"./zipEntries":30}],19:[function(require,module,exports){ (function (Buffer){ 'use strict'; module.exports = function(data, encoding){ @@ -9892,7 +10195,7 @@ module.exports.test = function(b){ }; }).call(this,require("buffer").Buffer) -},{"buffer":1}],19:[function(require,module,exports){ +},{"buffer":1}],20:[function(require,module,exports){ 'use strict'; var Uint8ArrayReader = require('./uint8ArrayReader'); @@ -9914,7 +10217,7 @@ NodeBufferReader.prototype.readData = function(size) { }; module.exports = NodeBufferReader; -},{"./uint8ArrayReader":25}],20:[function(require,module,exports){ +},{"./uint8ArrayReader":26}],21:[function(require,module,exports){ 'use strict'; var support = require('./support'); var utils = require('./utils'); @@ -10799,7 +11102,7 @@ var out = { }; module.exports = out; -},{"./base64":8,"./compressedObject":9,"./compressions":10,"./crc32":11,"./defaults":13,"./nodeBuffer":18,"./signature":21,"./stringWriter":23,"./support":24,"./uint8ArrayWriter":26,"./utf8":27,"./utils":28}],21:[function(require,module,exports){ +},{"./base64":9,"./compressedObject":10,"./compressions":11,"./crc32":12,"./defaults":14,"./nodeBuffer":19,"./signature":22,"./stringWriter":24,"./support":25,"./uint8ArrayWriter":27,"./utf8":28,"./utils":29}],22:[function(require,module,exports){ 'use strict'; exports.LOCAL_FILE_HEADER = "PK\x03\x04"; exports.CENTRAL_FILE_HEADER = "PK\x01\x02"; @@ -10808,7 +11111,7 @@ exports.ZIP64_CENTRAL_DIRECTORY_LOCATOR = "PK\x06\x07"; exports.ZIP64_CENTRAL_DIRECTORY_END = "PK\x06\x06"; exports.DATA_DESCRIPTOR = "PK\x07\x08"; -},{}],22:[function(require,module,exports){ +},{}],23:[function(require,module,exports){ 'use strict'; var DataReader = require('./dataReader'); var utils = require('./utils'); @@ -10846,7 +11149,7 @@ StringReader.prototype.readData = function(size) { }; module.exports = StringReader; -},{"./dataReader":12,"./utils":28}],23:[function(require,module,exports){ +},{"./dataReader":13,"./utils":29}],24:[function(require,module,exports){ 'use strict'; var utils = require('./utils'); @@ -10878,7 +11181,7 @@ StringWriter.prototype = { module.exports = StringWriter; -},{"./utils":28}],24:[function(require,module,exports){ +},{"./utils":29}],25:[function(require,module,exports){ (function (Buffer){ 'use strict'; exports.base64 = true; @@ -10916,7 +11219,7 @@ else { } }).call(this,require("buffer").Buffer) -},{"buffer":1}],25:[function(require,module,exports){ +},{"buffer":1}],26:[function(require,module,exports){ 'use strict'; var DataReader = require('./dataReader'); @@ -10965,7 +11268,7 @@ Uint8ArrayReader.prototype.readData = function(size) { }; module.exports = Uint8ArrayReader; -},{"./dataReader":12}],26:[function(require,module,exports){ +},{"./dataReader":13}],27:[function(require,module,exports){ 'use strict'; var utils = require('./utils'); @@ -11003,7 +11306,7 @@ Uint8ArrayWriter.prototype = { module.exports = Uint8ArrayWriter; -},{"./utils":28}],27:[function(require,module,exports){ +},{"./utils":29}],28:[function(require,module,exports){ 'use strict'; var utils = require('./utils'); @@ -11212,7 +11515,7 @@ exports.utf8decode = function utf8decode(buf) { }; // vim: set shiftwidth=4 softtabstop=4: -},{"./nodeBuffer":18,"./support":24,"./utils":28}],28:[function(require,module,exports){ +},{"./nodeBuffer":19,"./support":25,"./utils":29}],29:[function(require,module,exports){ 'use strict'; var support = require('./support'); var compressions = require('./compressions'); @@ -11540,7 +11843,7 @@ exports.isRegExp = function (object) { }; -},{"./compressions":10,"./nodeBuffer":18,"./support":24}],29:[function(require,module,exports){ +},{"./compressions":11,"./nodeBuffer":19,"./support":25}],30:[function(require,module,exports){ 'use strict'; var StringReader = require('./stringReader'); var NodeBufferReader = require('./nodeBufferReader'); @@ -11763,7 +12066,7 @@ ZipEntries.prototype = { // }}} end of ZipEntries module.exports = ZipEntries; -},{"./nodeBufferReader":19,"./object":20,"./signature":21,"./stringReader":22,"./support":24,"./uint8ArrayReader":25,"./utils":28,"./zipEntry":30}],30:[function(require,module,exports){ +},{"./nodeBufferReader":20,"./object":21,"./signature":22,"./stringReader":23,"./support":25,"./uint8ArrayReader":26,"./utils":29,"./zipEntry":31}],31:[function(require,module,exports){ 'use strict'; var StringReader = require('./stringReader'); var utils = require('./utils'); @@ -12075,7 +12378,7 @@ ZipEntry.prototype = { }; module.exports = ZipEntry; -},{"./compressedObject":9,"./object":20,"./stringReader":22,"./utils":28}],31:[function(require,module,exports){ +},{"./compressedObject":10,"./object":21,"./stringReader":23,"./utils":29}],32:[function(require,module,exports){ // Top level file is just a mixin of submodules & constants 'use strict'; @@ -12091,7 +12394,7 @@ assign(pako, deflate, inflate, constants); module.exports = pako; -},{"./lib/deflate":32,"./lib/inflate":33,"./lib/utils/common":34,"./lib/zlib/constants":37}],32:[function(require,module,exports){ +},{"./lib/deflate":33,"./lib/inflate":34,"./lib/utils/common":35,"./lib/zlib/constants":38}],33:[function(require,module,exports){ 'use strict'; @@ -12469,7 +12772,7 @@ exports.deflate = deflate; exports.deflateRaw = deflateRaw; exports.gzip = gzip; -},{"./utils/common":34,"./utils/strings":35,"./zlib/deflate.js":39,"./zlib/messages":44,"./zlib/zstream":46}],33:[function(require,module,exports){ +},{"./utils/common":35,"./utils/strings":36,"./zlib/deflate.js":40,"./zlib/messages":45,"./zlib/zstream":47}],34:[function(require,module,exports){ 'use strict'; @@ -12871,7 +13174,7 @@ exports.inflate = inflate; exports.inflateRaw = inflateRaw; exports.ungzip = inflate; -},{"./utils/common":34,"./utils/strings":35,"./zlib/constants":37,"./zlib/gzheader":40,"./zlib/inflate.js":42,"./zlib/messages":44,"./zlib/zstream":46}],34:[function(require,module,exports){ +},{"./utils/common":35,"./utils/strings":36,"./zlib/constants":38,"./zlib/gzheader":41,"./zlib/inflate.js":43,"./zlib/messages":45,"./zlib/zstream":47}],35:[function(require,module,exports){ 'use strict'; @@ -12975,7 +13278,7 @@ exports.setTyped = function (on) { exports.setTyped(TYPED_OK); -},{}],35:[function(require,module,exports){ +},{}],36:[function(require,module,exports){ // String encode/decode helpers 'use strict'; @@ -13162,7 +13465,7 @@ exports.utf8border = function(buf, max) { return (pos + _utf8len[buf[pos]] > max) ? pos : max; }; -},{"./common":34}],36:[function(require,module,exports){ +},{"./common":35}],37:[function(require,module,exports){ 'use strict'; // Note: adler32 takes 12% for level 0 and 2% for level 6. @@ -13196,7 +13499,7 @@ function adler32(adler, buf, len, pos) { module.exports = adler32; -},{}],37:[function(require,module,exports){ +},{}],38:[function(require,module,exports){ module.exports = { /* Allowed flush values; see deflate() and inflate() below for details */ @@ -13245,7 +13548,7 @@ module.exports = { //Z_NULL: null // Use -1 or null inline, depending on var type }; -},{}],38:[function(require,module,exports){ +},{}],39:[function(require,module,exports){ 'use strict'; // Note: we can't get significant speed boost here. @@ -13288,7 +13591,7 @@ function crc32(crc, buf, len, pos) { module.exports = crc32; -},{}],39:[function(require,module,exports){ +},{}],40:[function(require,module,exports){ 'use strict'; var utils = require('../utils/common'); @@ -15055,7 +15358,7 @@ exports.deflatePrime = deflatePrime; exports.deflateTune = deflateTune; */ -},{"../utils/common":34,"./adler32":36,"./crc32":38,"./messages":44,"./trees":45}],40:[function(require,module,exports){ +},{"../utils/common":35,"./adler32":37,"./crc32":39,"./messages":45,"./trees":46}],41:[function(require,module,exports){ 'use strict'; @@ -15097,7 +15400,7 @@ function GZheader() { module.exports = GZheader; -},{}],41:[function(require,module,exports){ +},{}],42:[function(require,module,exports){ 'use strict'; // See state defs from inflate.js @@ -15425,7 +15728,7 @@ module.exports = function inflate_fast(strm, start) { return; }; -},{}],42:[function(require,module,exports){ +},{}],43:[function(require,module,exports){ 'use strict'; @@ -16930,7 +17233,7 @@ exports.inflateSyncPoint = inflateSyncPoint; exports.inflateUndermine = inflateUndermine; */ -},{"../utils/common":34,"./adler32":36,"./crc32":38,"./inffast":41,"./inftrees":43}],43:[function(require,module,exports){ +},{"../utils/common":35,"./adler32":37,"./crc32":39,"./inffast":42,"./inftrees":44}],44:[function(require,module,exports){ 'use strict'; @@ -17259,7 +17562,7 @@ module.exports = function inflate_table(type, lens, lens_index, codes, table, ta return 0; }; -},{"../utils/common":34}],44:[function(require,module,exports){ +},{"../utils/common":35}],45:[function(require,module,exports){ 'use strict'; module.exports = { @@ -17274,7 +17577,7 @@ module.exports = { '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */ }; -},{}],45:[function(require,module,exports){ +},{}],46:[function(require,module,exports){ 'use strict'; @@ -18475,7 +18778,7 @@ exports._tr_flush_block = _tr_flush_block; exports._tr_tally = _tr_tally; exports._tr_align = _tr_align; -},{"../utils/common":34}],46:[function(require,module,exports){ +},{"../utils/common":35}],47:[function(require,module,exports){ 'use strict'; @@ -18506,7 +18809,7 @@ function ZStream() { module.exports = ZStream; -},{}],47:[function(require,module,exports){ +},{}],48:[function(require,module,exports){ /** Used as the `TypeError` message for "Functions" methods. */ var FUNC_ERROR_TEXT = 'Expected a function'; @@ -18566,7 +18869,7 @@ function restParam(func, start) { module.exports = restParam; -},{}],48:[function(require,module,exports){ +},{}],49:[function(require,module,exports){ (function (global){ var cachePush = require('./cachePush'), getNative = require('./getNative'); @@ -18599,7 +18902,7 @@ SetCache.prototype.push = cachePush; module.exports = SetCache; }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./cachePush":60,"./getNative":66}],49:[function(require,module,exports){ +},{"./cachePush":61,"./getNative":67}],50:[function(require,module,exports){ /** * A specialized version of `_.map` for arrays without support for callback * shorthands and `this` binding. @@ -18622,7 +18925,7 @@ function arrayMap(array, iteratee) { module.exports = arrayMap; -},{}],50:[function(require,module,exports){ +},{}],51:[function(require,module,exports){ /** * Appends the elements of `values` to `array`. * @@ -18644,7 +18947,7 @@ function arrayPush(array, values) { module.exports = arrayPush; -},{}],51:[function(require,module,exports){ +},{}],52:[function(require,module,exports){ var baseIndexOf = require('./baseIndexOf'), cacheIndexOf = require('./cacheIndexOf'), createCache = require('./createCache'); @@ -18701,7 +19004,7 @@ function baseDifference(array, values) { module.exports = baseDifference; -},{"./baseIndexOf":55,"./cacheIndexOf":59,"./createCache":62}],52:[function(require,module,exports){ +},{"./baseIndexOf":56,"./cacheIndexOf":60,"./createCache":63}],53:[function(require,module,exports){ var arrayPush = require('./arrayPush'), isArguments = require('../lang/isArguments'), isArray = require('../lang/isArray'), @@ -18744,7 +19047,7 @@ function baseFlatten(array, isDeep, isStrict, result) { module.exports = baseFlatten; -},{"../lang/isArguments":76,"../lang/isArray":77,"./arrayPush":50,"./isArrayLike":68,"./isObjectLike":72}],53:[function(require,module,exports){ +},{"../lang/isArguments":77,"../lang/isArray":78,"./arrayPush":51,"./isArrayLike":69,"./isObjectLike":73}],54:[function(require,module,exports){ var createBaseFor = require('./createBaseFor'); /** @@ -18763,7 +19066,7 @@ var baseFor = createBaseFor(); module.exports = baseFor; -},{"./createBaseFor":61}],54:[function(require,module,exports){ +},{"./createBaseFor":62}],55:[function(require,module,exports){ var baseFor = require('./baseFor'), keysIn = require('../object/keysIn'); @@ -18782,7 +19085,7 @@ function baseForIn(object, iteratee) { module.exports = baseForIn; -},{"../object/keysIn":81,"./baseFor":53}],55:[function(require,module,exports){ +},{"../object/keysIn":82,"./baseFor":54}],56:[function(require,module,exports){ var indexOfNaN = require('./indexOfNaN'); /** @@ -18811,7 +19114,7 @@ function baseIndexOf(array, value, fromIndex) { module.exports = baseIndexOf; -},{"./indexOfNaN":67}],56:[function(require,module,exports){ +},{"./indexOfNaN":68}],57:[function(require,module,exports){ /** * The base implementation of `_.property` without support for deep paths. * @@ -18827,7 +19130,7 @@ function baseProperty(key) { module.exports = baseProperty; -},{}],57:[function(require,module,exports){ +},{}],58:[function(require,module,exports){ /** * Converts `value` to a string if it's not one. An empty string is returned * for `null` or `undefined` values. @@ -18842,7 +19145,7 @@ function baseToString(value) { module.exports = baseToString; -},{}],58:[function(require,module,exports){ +},{}],59:[function(require,module,exports){ var identity = require('../utility/identity'); /** @@ -18883,7 +19186,7 @@ function bindCallback(func, thisArg, argCount) { module.exports = bindCallback; -},{"../utility/identity":86}],59:[function(require,module,exports){ +},{"../utility/identity":87}],60:[function(require,module,exports){ var isObject = require('../lang/isObject'); /** @@ -18904,7 +19207,7 @@ function cacheIndexOf(cache, value) { module.exports = cacheIndexOf; -},{"../lang/isObject":80}],60:[function(require,module,exports){ +},{"../lang/isObject":81}],61:[function(require,module,exports){ var isObject = require('../lang/isObject'); /** @@ -18926,7 +19229,7 @@ function cachePush(value) { module.exports = cachePush; -},{"../lang/isObject":80}],61:[function(require,module,exports){ +},{"../lang/isObject":81}],62:[function(require,module,exports){ var toObject = require('./toObject'); /** @@ -18955,7 +19258,7 @@ function createBaseFor(fromRight) { module.exports = createBaseFor; -},{"./toObject":75}],62:[function(require,module,exports){ +},{"./toObject":76}],63:[function(require,module,exports){ (function (global){ var SetCache = require('./SetCache'), getNative = require('./getNative'); @@ -18980,7 +19283,7 @@ function createCache(values) { module.exports = createCache; }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./SetCache":48,"./getNative":66}],63:[function(require,module,exports){ +},{"./SetCache":49,"./getNative":67}],64:[function(require,module,exports){ var deburr = require('../string/deburr'), words = require('../string/words'); @@ -19008,7 +19311,7 @@ function createCompounder(callback) { module.exports = createCompounder; -},{"../string/deburr":84,"../string/words":85}],64:[function(require,module,exports){ +},{"../string/deburr":85,"../string/words":86}],65:[function(require,module,exports){ /** Used to map latin-1 supplementary letters to basic latin letters. */ var deburredLetters = { '\xc0': 'A', '\xc1': 'A', '\xc2': 'A', '\xc3': 'A', '\xc4': 'A', '\xc5': 'A', @@ -19043,7 +19346,7 @@ function deburrLetter(letter) { module.exports = deburrLetter; -},{}],65:[function(require,module,exports){ +},{}],66:[function(require,module,exports){ var baseProperty = require('./baseProperty'); /** @@ -19060,7 +19363,7 @@ var getLength = baseProperty('length'); module.exports = getLength; -},{"./baseProperty":56}],66:[function(require,module,exports){ +},{"./baseProperty":57}],67:[function(require,module,exports){ var isNative = require('../lang/isNative'); /** @@ -19078,7 +19381,7 @@ function getNative(object, key) { module.exports = getNative; -},{"../lang/isNative":79}],67:[function(require,module,exports){ +},{"../lang/isNative":80}],68:[function(require,module,exports){ /** * Gets the index at which the first occurrence of `NaN` is found in `array`. * @@ -19103,7 +19406,7 @@ function indexOfNaN(array, fromIndex, fromRight) { module.exports = indexOfNaN; -},{}],68:[function(require,module,exports){ +},{}],69:[function(require,module,exports){ var getLength = require('./getLength'), isLength = require('./isLength'); @@ -19120,7 +19423,7 @@ function isArrayLike(value) { module.exports = isArrayLike; -},{"./getLength":65,"./isLength":71}],69:[function(require,module,exports){ +},{"./getLength":66,"./isLength":72}],70:[function(require,module,exports){ /** Used to detect unsigned integer values. */ var reIsUint = /^\d+$/; @@ -19146,7 +19449,7 @@ function isIndex(value, length) { module.exports = isIndex; -},{}],70:[function(require,module,exports){ +},{}],71:[function(require,module,exports){ var isArrayLike = require('./isArrayLike'), isIndex = require('./isIndex'), isObject = require('../lang/isObject'); @@ -19176,7 +19479,7 @@ function isIterateeCall(value, index, object) { module.exports = isIterateeCall; -},{"../lang/isObject":80,"./isArrayLike":68,"./isIndex":69}],71:[function(require,module,exports){ +},{"../lang/isObject":81,"./isArrayLike":69,"./isIndex":70}],72:[function(require,module,exports){ /** * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) * of an array-like value. @@ -19198,7 +19501,7 @@ function isLength(value) { module.exports = isLength; -},{}],72:[function(require,module,exports){ +},{}],73:[function(require,module,exports){ /** * Checks if `value` is object-like. * @@ -19212,7 +19515,7 @@ function isObjectLike(value) { module.exports = isObjectLike; -},{}],73:[function(require,module,exports){ +},{}],74:[function(require,module,exports){ var toObject = require('./toObject'); /** @@ -19242,7 +19545,7 @@ function pickByArray(object, props) { module.exports = pickByArray; -},{"./toObject":75}],74:[function(require,module,exports){ +},{"./toObject":76}],75:[function(require,module,exports){ var baseForIn = require('./baseForIn'); /** @@ -19266,7 +19569,7 @@ function pickByCallback(object, predicate) { module.exports = pickByCallback; -},{"./baseForIn":54}],75:[function(require,module,exports){ +},{"./baseForIn":55}],76:[function(require,module,exports){ var isObject = require('../lang/isObject'); /** @@ -19282,7 +19585,7 @@ function toObject(value) { module.exports = toObject; -},{"../lang/isObject":80}],76:[function(require,module,exports){ +},{"../lang/isObject":81}],77:[function(require,module,exports){ var isArrayLike = require('../internal/isArrayLike'), isObjectLike = require('../internal/isObjectLike'); @@ -19318,7 +19621,7 @@ function isArguments(value) { module.exports = isArguments; -},{"../internal/isArrayLike":68,"../internal/isObjectLike":72}],77:[function(require,module,exports){ +},{"../internal/isArrayLike":69,"../internal/isObjectLike":73}],78:[function(require,module,exports){ var getNative = require('../internal/getNative'), isLength = require('../internal/isLength'), isObjectLike = require('../internal/isObjectLike'); @@ -19360,7 +19663,7 @@ var isArray = nativeIsArray || function(value) { module.exports = isArray; -},{"../internal/getNative":66,"../internal/isLength":71,"../internal/isObjectLike":72}],78:[function(require,module,exports){ +},{"../internal/getNative":67,"../internal/isLength":72,"../internal/isObjectLike":73}],79:[function(require,module,exports){ var isObject = require('./isObject'); /** `Object#toString` result references. */ @@ -19400,7 +19703,7 @@ function isFunction(value) { module.exports = isFunction; -},{"./isObject":80}],79:[function(require,module,exports){ +},{"./isObject":81}],80:[function(require,module,exports){ var isFunction = require('./isFunction'), isObjectLike = require('../internal/isObjectLike'); @@ -19450,7 +19753,7 @@ function isNative(value) { module.exports = isNative; -},{"../internal/isObjectLike":72,"./isFunction":78}],80:[function(require,module,exports){ +},{"../internal/isObjectLike":73,"./isFunction":79}],81:[function(require,module,exports){ /** * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) @@ -19480,7 +19783,7 @@ function isObject(value) { module.exports = isObject; -},{}],81:[function(require,module,exports){ +},{}],82:[function(require,module,exports){ var isArguments = require('../lang/isArguments'), isArray = require('../lang/isArray'), isIndex = require('../internal/isIndex'), @@ -19546,7 +19849,7 @@ function keysIn(object) { module.exports = keysIn; -},{"../internal/isIndex":69,"../internal/isLength":71,"../lang/isArguments":76,"../lang/isArray":77,"../lang/isObject":80}],82:[function(require,module,exports){ +},{"../internal/isIndex":70,"../internal/isLength":72,"../lang/isArguments":77,"../lang/isArray":78,"../lang/isObject":81}],83:[function(require,module,exports){ var arrayMap = require('../internal/arrayMap'), baseDifference = require('../internal/baseDifference'), baseFlatten = require('../internal/baseFlatten'), @@ -19595,7 +19898,7 @@ var omit = restParam(function(object, props) { module.exports = omit; -},{"../function/restParam":47,"../internal/arrayMap":49,"../internal/baseDifference":51,"../internal/baseFlatten":52,"../internal/bindCallback":58,"../internal/pickByArray":73,"../internal/pickByCallback":74,"./keysIn":81}],83:[function(require,module,exports){ +},{"../function/restParam":48,"../internal/arrayMap":50,"../internal/baseDifference":52,"../internal/baseFlatten":53,"../internal/bindCallback":59,"../internal/pickByArray":74,"../internal/pickByCallback":75,"./keysIn":82}],84:[function(require,module,exports){ var createCompounder = require('../internal/createCompounder'); /** @@ -19624,7 +19927,7 @@ var camelCase = createCompounder(function(result, word, index) { module.exports = camelCase; -},{"../internal/createCompounder":63}],84:[function(require,module,exports){ +},{"../internal/createCompounder":64}],85:[function(require,module,exports){ var baseToString = require('../internal/baseToString'), deburrLetter = require('../internal/deburrLetter'); @@ -19655,7 +19958,7 @@ function deburr(string) { module.exports = deburr; -},{"../internal/baseToString":57,"../internal/deburrLetter":64}],85:[function(require,module,exports){ +},{"../internal/baseToString":58,"../internal/deburrLetter":65}],86:[function(require,module,exports){ var baseToString = require('../internal/baseToString'), isIterateeCall = require('../internal/isIterateeCall'); @@ -19695,7 +19998,7 @@ function words(string, pattern, guard) { module.exports = words; -},{"../internal/baseToString":57,"../internal/isIterateeCall":70}],86:[function(require,module,exports){ +},{"../internal/baseToString":58,"../internal/isIterateeCall":71}],87:[function(require,module,exports){ /** * This method returns the first argument provided to it. * @@ -19717,7 +20020,7 @@ function identity(value) { module.exports = identity; -},{}],87:[function(require,module,exports){ +},{}],88:[function(require,module,exports){ 'use strict'; exports.__esModule = true; @@ -19741,7 +20044,7 @@ function createAll(React) { } module.exports = exports['default']; -},{"./createConnect":88,"./createProvider":89}],88:[function(require,module,exports){ +},{"./createConnect":89,"./createProvider":90}],89:[function(require,module,exports){ (function (process){ 'use strict'; @@ -20010,7 +20313,7 @@ function createConnect(React) { module.exports = exports['default']; }).call(this,require('_process')) -},{"../utils/createStoreShape":91,"../utils/isPlainObject":92,"../utils/shallowEqual":93,"../utils/wrapActionCreators":94,"_process":5,"invariant":95}],89:[function(require,module,exports){ +},{"../utils/createStoreShape":92,"../utils/isPlainObject":93,"../utils/shallowEqual":94,"../utils/wrapActionCreators":95,"_process":6,"invariant":96}],90:[function(require,module,exports){ 'use strict'; exports.__esModule = true; @@ -20128,7 +20431,7 @@ function createProvider(React) { } module.exports = exports['default']; -},{"../utils/createStoreShape":91}],90:[function(require,module,exports){ +},{"../utils/createStoreShape":92}],91:[function(require,module,exports){ 'use strict'; exports.__esModule = true; @@ -20149,7 +20452,7 @@ var Provider = _createAll.Provider; var connect = _createAll.connect; exports.Provider = Provider; exports.connect = connect; -},{"./components/createAll":87,"react":250}],91:[function(require,module,exports){ +},{"./components/createAll":88,"react":251}],92:[function(require,module,exports){ "use strict"; exports.__esModule = true; @@ -20164,7 +20467,7 @@ function createStoreShape(PropTypes) { } module.exports = exports["default"]; -},{}],92:[function(require,module,exports){ +},{}],93:[function(require,module,exports){ 'use strict'; exports.__esModule = true; @@ -20195,7 +20498,7 @@ function isPlainObject(obj) { } module.exports = exports['default']; -},{}],93:[function(require,module,exports){ +},{}],94:[function(require,module,exports){ "use strict"; exports.__esModule = true; @@ -20225,7 +20528,7 @@ function shallowEqual(objA, objB) { } module.exports = exports["default"]; -},{}],94:[function(require,module,exports){ +},{}],95:[function(require,module,exports){ 'use strict'; exports.__esModule = true; @@ -20240,7 +20543,7 @@ function wrapActionCreators(actionCreators) { } module.exports = exports['default']; -},{"redux":252}],95:[function(require,module,exports){ +},{"redux":253}],96:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -20297,7 +20600,7 @@ var invariant = function(condition, format, a, b, c, d, e, f) { module.exports = invariant; }).call(this,require('_process')) -},{"_process":5}],96:[function(require,module,exports){ +},{"_process":6}],97:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -20324,7 +20627,7 @@ var AutoFocusMixin = { module.exports = AutoFocusMixin; -},{"./focusNode":214}],97:[function(require,module,exports){ +},{"./focusNode":215}],98:[function(require,module,exports){ /** * Copyright 2013-2015 Facebook, Inc. * All rights reserved. @@ -20819,7 +21122,7 @@ var BeforeInputEventPlugin = { module.exports = BeforeInputEventPlugin; -},{"./EventConstants":109,"./EventPropagators":114,"./ExecutionEnvironment":115,"./FallbackCompositionState":116,"./SyntheticCompositionEvent":188,"./SyntheticInputEvent":192,"./keyOf":236}],98:[function(require,module,exports){ +},{"./EventConstants":110,"./EventPropagators":115,"./ExecutionEnvironment":116,"./FallbackCompositionState":117,"./SyntheticCompositionEvent":189,"./SyntheticInputEvent":193,"./keyOf":237}],99:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -20944,7 +21247,7 @@ var CSSProperty = { module.exports = CSSProperty; -},{}],99:[function(require,module,exports){ +},{}],100:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -21126,7 +21429,7 @@ var CSSPropertyOperations = { module.exports = CSSPropertyOperations; }).call(this,require('_process')) -},{"./CSSProperty":98,"./ExecutionEnvironment":115,"./camelizeStyleName":203,"./dangerousStyleValue":208,"./hyphenateStyleName":228,"./memoizeStringOnly":238,"./warning":249,"_process":5}],100:[function(require,module,exports){ +},{"./CSSProperty":99,"./ExecutionEnvironment":116,"./camelizeStyleName":204,"./dangerousStyleValue":209,"./hyphenateStyleName":229,"./memoizeStringOnly":239,"./warning":250,"_process":6}],101:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -21226,7 +21529,7 @@ PooledClass.addPoolingTo(CallbackQueue); module.exports = CallbackQueue; }).call(this,require('_process')) -},{"./Object.assign":121,"./PooledClass":122,"./invariant":230,"_process":5}],101:[function(require,module,exports){ +},{"./Object.assign":122,"./PooledClass":123,"./invariant":231,"_process":6}],102:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -21608,7 +21911,7 @@ var ChangeEventPlugin = { module.exports = ChangeEventPlugin; -},{"./EventConstants":109,"./EventPluginHub":111,"./EventPropagators":114,"./ExecutionEnvironment":115,"./ReactUpdates":182,"./SyntheticEvent":190,"./isEventSupported":231,"./isTextInputElement":233,"./keyOf":236}],102:[function(require,module,exports){ +},{"./EventConstants":110,"./EventPluginHub":112,"./EventPropagators":115,"./ExecutionEnvironment":116,"./ReactUpdates":183,"./SyntheticEvent":191,"./isEventSupported":232,"./isTextInputElement":234,"./keyOf":237}],103:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -21633,7 +21936,7 @@ var ClientReactRootIndex = { module.exports = ClientReactRootIndex; -},{}],103:[function(require,module,exports){ +},{}],104:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -21771,7 +22074,7 @@ var DOMChildrenOperations = { module.exports = DOMChildrenOperations; }).call(this,require('_process')) -},{"./Danger":106,"./ReactMultiChildUpdateTypes":167,"./invariant":230,"./setTextContent":244,"_process":5}],104:[function(require,module,exports){ +},{"./Danger":107,"./ReactMultiChildUpdateTypes":168,"./invariant":231,"./setTextContent":245,"_process":6}],105:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -22070,7 +22373,7 @@ var DOMProperty = { module.exports = DOMProperty; }).call(this,require('_process')) -},{"./invariant":230,"_process":5}],105:[function(require,module,exports){ +},{"./invariant":231,"_process":6}],106:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -22262,7 +22565,7 @@ var DOMPropertyOperations = { module.exports = DOMPropertyOperations; }).call(this,require('_process')) -},{"./DOMProperty":104,"./quoteAttributeValueForBrowser":242,"./warning":249,"_process":5}],106:[function(require,module,exports){ +},{"./DOMProperty":105,"./quoteAttributeValueForBrowser":243,"./warning":250,"_process":6}],107:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -22449,7 +22752,7 @@ var Danger = { module.exports = Danger; }).call(this,require('_process')) -},{"./ExecutionEnvironment":115,"./createNodesFromMarkup":207,"./emptyFunction":209,"./getMarkupWrap":222,"./invariant":230,"_process":5}],107:[function(require,module,exports){ +},{"./ExecutionEnvironment":116,"./createNodesFromMarkup":208,"./emptyFunction":210,"./getMarkupWrap":223,"./invariant":231,"_process":6}],108:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -22488,7 +22791,7 @@ var DefaultEventPluginOrder = [ module.exports = DefaultEventPluginOrder; -},{"./keyOf":236}],108:[function(require,module,exports){ +},{"./keyOf":237}],109:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -22628,7 +22931,7 @@ var EnterLeaveEventPlugin = { module.exports = EnterLeaveEventPlugin; -},{"./EventConstants":109,"./EventPropagators":114,"./ReactMount":165,"./SyntheticMouseEvent":194,"./keyOf":236}],109:[function(require,module,exports){ +},{"./EventConstants":110,"./EventPropagators":115,"./ReactMount":166,"./SyntheticMouseEvent":195,"./keyOf":237}],110:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -22700,7 +23003,7 @@ var EventConstants = { module.exports = EventConstants; -},{"./keyMirror":235}],110:[function(require,module,exports){ +},{"./keyMirror":236}],111:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -22790,7 +23093,7 @@ var EventListener = { module.exports = EventListener; }).call(this,require('_process')) -},{"./emptyFunction":209,"_process":5}],111:[function(require,module,exports){ +},{"./emptyFunction":210,"_process":6}],112:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -23068,7 +23371,7 @@ var EventPluginHub = { module.exports = EventPluginHub; }).call(this,require('_process')) -},{"./EventPluginRegistry":112,"./EventPluginUtils":113,"./accumulateInto":200,"./forEachAccumulated":215,"./invariant":230,"_process":5}],112:[function(require,module,exports){ +},{"./EventPluginRegistry":113,"./EventPluginUtils":114,"./accumulateInto":201,"./forEachAccumulated":216,"./invariant":231,"_process":6}],113:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -23348,7 +23651,7 @@ var EventPluginRegistry = { module.exports = EventPluginRegistry; }).call(this,require('_process')) -},{"./invariant":230,"_process":5}],113:[function(require,module,exports){ +},{"./invariant":231,"_process":6}],114:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -23569,7 +23872,7 @@ var EventPluginUtils = { module.exports = EventPluginUtils; }).call(this,require('_process')) -},{"./EventConstants":109,"./invariant":230,"_process":5}],114:[function(require,module,exports){ +},{"./EventConstants":110,"./invariant":231,"_process":6}],115:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -23711,7 +24014,7 @@ var EventPropagators = { module.exports = EventPropagators; }).call(this,require('_process')) -},{"./EventConstants":109,"./EventPluginHub":111,"./accumulateInto":200,"./forEachAccumulated":215,"_process":5}],115:[function(require,module,exports){ +},{"./EventConstants":110,"./EventPluginHub":112,"./accumulateInto":201,"./forEachAccumulated":216,"_process":6}],116:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -23755,7 +24058,7 @@ var ExecutionEnvironment = { module.exports = ExecutionEnvironment; -},{}],116:[function(require,module,exports){ +},{}],117:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -23846,7 +24149,7 @@ PooledClass.addPoolingTo(FallbackCompositionState); module.exports = FallbackCompositionState; -},{"./Object.assign":121,"./PooledClass":122,"./getTextContentAccessor":225}],117:[function(require,module,exports){ +},{"./Object.assign":122,"./PooledClass":123,"./getTextContentAccessor":226}],118:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -24057,7 +24360,7 @@ var HTMLDOMPropertyConfig = { module.exports = HTMLDOMPropertyConfig; -},{"./DOMProperty":104,"./ExecutionEnvironment":115}],118:[function(require,module,exports){ +},{"./DOMProperty":105,"./ExecutionEnvironment":116}],119:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -24213,7 +24516,7 @@ var LinkedValueUtils = { module.exports = LinkedValueUtils; }).call(this,require('_process')) -},{"./ReactPropTypes":173,"./invariant":230,"_process":5}],119:[function(require,module,exports){ +},{"./ReactPropTypes":174,"./invariant":231,"_process":6}],120:[function(require,module,exports){ (function (process){ /** * Copyright 2014-2015, Facebook, Inc. @@ -24270,7 +24573,7 @@ var LocalEventTrapMixin = { module.exports = LocalEventTrapMixin; }).call(this,require('_process')) -},{"./ReactBrowserEventEmitter":125,"./accumulateInto":200,"./forEachAccumulated":215,"./invariant":230,"_process":5}],120:[function(require,module,exports){ +},{"./ReactBrowserEventEmitter":126,"./accumulateInto":201,"./forEachAccumulated":216,"./invariant":231,"_process":6}],121:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -24328,7 +24631,7 @@ var MobileSafariClickEventPlugin = { module.exports = MobileSafariClickEventPlugin; -},{"./EventConstants":109,"./emptyFunction":209}],121:[function(require,module,exports){ +},{"./EventConstants":110,"./emptyFunction":210}],122:[function(require,module,exports){ /** * Copyright 2014-2015, Facebook, Inc. * All rights reserved. @@ -24377,7 +24680,7 @@ function assign(target, sources) { module.exports = assign; -},{}],122:[function(require,module,exports){ +},{}],123:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -24493,7 +24796,7 @@ var PooledClass = { module.exports = PooledClass; }).call(this,require('_process')) -},{"./invariant":230,"_process":5}],123:[function(require,module,exports){ +},{"./invariant":231,"_process":6}],124:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -24645,7 +24948,7 @@ React.version = '0.13.3'; module.exports = React; }).call(this,require('_process')) -},{"./EventPluginUtils":113,"./ExecutionEnvironment":115,"./Object.assign":121,"./ReactChildren":127,"./ReactClass":128,"./ReactComponent":129,"./ReactContext":133,"./ReactCurrentOwner":134,"./ReactDOM":135,"./ReactDOMTextComponent":146,"./ReactDefaultInjection":149,"./ReactElement":152,"./ReactElementValidator":153,"./ReactInstanceHandles":161,"./ReactMount":165,"./ReactPerf":170,"./ReactPropTypes":173,"./ReactReconciler":176,"./ReactServerRendering":179,"./findDOMNode":212,"./onlyChild":239,"_process":5}],124:[function(require,module,exports){ +},{"./EventPluginUtils":114,"./ExecutionEnvironment":116,"./Object.assign":122,"./ReactChildren":128,"./ReactClass":129,"./ReactComponent":130,"./ReactContext":134,"./ReactCurrentOwner":135,"./ReactDOM":136,"./ReactDOMTextComponent":147,"./ReactDefaultInjection":150,"./ReactElement":153,"./ReactElementValidator":154,"./ReactInstanceHandles":162,"./ReactMount":166,"./ReactPerf":171,"./ReactPropTypes":174,"./ReactReconciler":177,"./ReactServerRendering":180,"./findDOMNode":213,"./onlyChild":240,"_process":6}],125:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -24676,7 +24979,7 @@ var ReactBrowserComponentMixin = { module.exports = ReactBrowserComponentMixin; -},{"./findDOMNode":212}],125:[function(require,module,exports){ +},{"./findDOMNode":213}],126:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -25029,7 +25332,7 @@ var ReactBrowserEventEmitter = assign({}, ReactEventEmitterMixin, { module.exports = ReactBrowserEventEmitter; -},{"./EventConstants":109,"./EventPluginHub":111,"./EventPluginRegistry":112,"./Object.assign":121,"./ReactEventEmitterMixin":156,"./ViewportMetrics":199,"./isEventSupported":231}],126:[function(require,module,exports){ +},{"./EventConstants":110,"./EventPluginHub":112,"./EventPluginRegistry":113,"./Object.assign":122,"./ReactEventEmitterMixin":157,"./ViewportMetrics":200,"./isEventSupported":232}],127:[function(require,module,exports){ /** * Copyright 2014-2015, Facebook, Inc. * All rights reserved. @@ -25156,7 +25459,7 @@ var ReactChildReconciler = { module.exports = ReactChildReconciler; -},{"./ReactReconciler":176,"./flattenChildren":213,"./instantiateReactComponent":229,"./shouldUpdateReactComponent":246}],127:[function(require,module,exports){ +},{"./ReactReconciler":177,"./flattenChildren":214,"./instantiateReactComponent":230,"./shouldUpdateReactComponent":247}],128:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -25309,7 +25612,7 @@ var ReactChildren = { module.exports = ReactChildren; }).call(this,require('_process')) -},{"./PooledClass":122,"./ReactFragment":158,"./traverseAllChildren":248,"./warning":249,"_process":5}],128:[function(require,module,exports){ +},{"./PooledClass":123,"./ReactFragment":159,"./traverseAllChildren":249,"./warning":250,"_process":6}],129:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -26255,7 +26558,7 @@ var ReactClass = { module.exports = ReactClass; }).call(this,require('_process')) -},{"./Object.assign":121,"./ReactComponent":129,"./ReactCurrentOwner":134,"./ReactElement":152,"./ReactErrorUtils":155,"./ReactInstanceMap":162,"./ReactLifeCycle":163,"./ReactPropTypeLocationNames":171,"./ReactPropTypeLocations":172,"./ReactUpdateQueue":181,"./invariant":230,"./keyMirror":235,"./keyOf":236,"./warning":249,"_process":5}],129:[function(require,module,exports){ +},{"./Object.assign":122,"./ReactComponent":130,"./ReactCurrentOwner":135,"./ReactElement":153,"./ReactErrorUtils":156,"./ReactInstanceMap":163,"./ReactLifeCycle":164,"./ReactPropTypeLocationNames":172,"./ReactPropTypeLocations":173,"./ReactUpdateQueue":182,"./invariant":231,"./keyMirror":236,"./keyOf":237,"./warning":250,"_process":6}],130:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -26409,7 +26712,7 @@ if ("production" !== process.env.NODE_ENV) { module.exports = ReactComponent; }).call(this,require('_process')) -},{"./ReactUpdateQueue":181,"./invariant":230,"./warning":249,"_process":5}],130:[function(require,module,exports){ +},{"./ReactUpdateQueue":182,"./invariant":231,"./warning":250,"_process":6}],131:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -26456,7 +26759,7 @@ var ReactComponentBrowserEnvironment = { module.exports = ReactComponentBrowserEnvironment; -},{"./ReactDOMIDOperations":139,"./ReactMount":165}],131:[function(require,module,exports){ +},{"./ReactDOMIDOperations":140,"./ReactMount":166}],132:[function(require,module,exports){ (function (process){ /** * Copyright 2014-2015, Facebook, Inc. @@ -26517,7 +26820,7 @@ var ReactComponentEnvironment = { module.exports = ReactComponentEnvironment; }).call(this,require('_process')) -},{"./invariant":230,"_process":5}],132:[function(require,module,exports){ +},{"./invariant":231,"_process":6}],133:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -27430,7 +27733,7 @@ var ReactCompositeComponent = { module.exports = ReactCompositeComponent; }).call(this,require('_process')) -},{"./Object.assign":121,"./ReactComponentEnvironment":131,"./ReactContext":133,"./ReactCurrentOwner":134,"./ReactElement":152,"./ReactElementValidator":153,"./ReactInstanceMap":162,"./ReactLifeCycle":163,"./ReactNativeComponent":168,"./ReactPerf":170,"./ReactPropTypeLocationNames":171,"./ReactPropTypeLocations":172,"./ReactReconciler":176,"./ReactUpdates":182,"./emptyObject":210,"./invariant":230,"./shouldUpdateReactComponent":246,"./warning":249,"_process":5}],133:[function(require,module,exports){ +},{"./Object.assign":122,"./ReactComponentEnvironment":132,"./ReactContext":134,"./ReactCurrentOwner":135,"./ReactElement":153,"./ReactElementValidator":154,"./ReactInstanceMap":163,"./ReactLifeCycle":164,"./ReactNativeComponent":169,"./ReactPerf":171,"./ReactPropTypeLocationNames":172,"./ReactPropTypeLocations":173,"./ReactReconciler":177,"./ReactUpdates":183,"./emptyObject":211,"./invariant":231,"./shouldUpdateReactComponent":247,"./warning":250,"_process":6}],134:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -27508,7 +27811,7 @@ var ReactContext = { module.exports = ReactContext; }).call(this,require('_process')) -},{"./Object.assign":121,"./emptyObject":210,"./warning":249,"_process":5}],134:[function(require,module,exports){ +},{"./Object.assign":122,"./emptyObject":211,"./warning":250,"_process":6}],135:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -27542,7 +27845,7 @@ var ReactCurrentOwner = { module.exports = ReactCurrentOwner; -},{}],135:[function(require,module,exports){ +},{}],136:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -27721,7 +28024,7 @@ var ReactDOM = mapObject({ module.exports = ReactDOM; }).call(this,require('_process')) -},{"./ReactElement":152,"./ReactElementValidator":153,"./mapObject":237,"_process":5}],136:[function(require,module,exports){ +},{"./ReactElement":153,"./ReactElementValidator":154,"./mapObject":238,"_process":6}],137:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -27785,7 +28088,7 @@ var ReactDOMButton = ReactClass.createClass({ module.exports = ReactDOMButton; -},{"./AutoFocusMixin":96,"./ReactBrowserComponentMixin":124,"./ReactClass":128,"./ReactElement":152,"./keyMirror":235}],137:[function(require,module,exports){ +},{"./AutoFocusMixin":97,"./ReactBrowserComponentMixin":125,"./ReactClass":129,"./ReactElement":153,"./keyMirror":236}],138:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -28295,7 +28598,7 @@ ReactDOMComponent.injection = { module.exports = ReactDOMComponent; }).call(this,require('_process')) -},{"./CSSPropertyOperations":99,"./DOMProperty":104,"./DOMPropertyOperations":105,"./Object.assign":121,"./ReactBrowserEventEmitter":125,"./ReactComponentBrowserEnvironment":130,"./ReactMount":165,"./ReactMultiChild":166,"./ReactPerf":170,"./escapeTextContentForBrowser":211,"./invariant":230,"./isEventSupported":231,"./keyOf":236,"./warning":249,"_process":5}],138:[function(require,module,exports){ +},{"./CSSPropertyOperations":100,"./DOMProperty":105,"./DOMPropertyOperations":106,"./Object.assign":122,"./ReactBrowserEventEmitter":126,"./ReactComponentBrowserEnvironment":131,"./ReactMount":166,"./ReactMultiChild":167,"./ReactPerf":171,"./escapeTextContentForBrowser":212,"./invariant":231,"./isEventSupported":232,"./keyOf":237,"./warning":250,"_process":6}],139:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -28344,7 +28647,7 @@ var ReactDOMForm = ReactClass.createClass({ module.exports = ReactDOMForm; -},{"./EventConstants":109,"./LocalEventTrapMixin":119,"./ReactBrowserComponentMixin":124,"./ReactClass":128,"./ReactElement":152}],139:[function(require,module,exports){ +},{"./EventConstants":110,"./LocalEventTrapMixin":120,"./ReactBrowserComponentMixin":125,"./ReactClass":129,"./ReactElement":153}],140:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -28512,7 +28815,7 @@ ReactPerf.measureMethods(ReactDOMIDOperations, 'ReactDOMIDOperations', { module.exports = ReactDOMIDOperations; }).call(this,require('_process')) -},{"./CSSPropertyOperations":99,"./DOMChildrenOperations":103,"./DOMPropertyOperations":105,"./ReactMount":165,"./ReactPerf":170,"./invariant":230,"./setInnerHTML":243,"_process":5}],140:[function(require,module,exports){ +},{"./CSSPropertyOperations":100,"./DOMChildrenOperations":104,"./DOMPropertyOperations":106,"./ReactMount":166,"./ReactPerf":171,"./invariant":231,"./setInnerHTML":244,"_process":6}],141:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -28557,7 +28860,7 @@ var ReactDOMIframe = ReactClass.createClass({ module.exports = ReactDOMIframe; -},{"./EventConstants":109,"./LocalEventTrapMixin":119,"./ReactBrowserComponentMixin":124,"./ReactClass":128,"./ReactElement":152}],141:[function(require,module,exports){ +},{"./EventConstants":110,"./LocalEventTrapMixin":120,"./ReactBrowserComponentMixin":125,"./ReactClass":129,"./ReactElement":153}],142:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -28603,7 +28906,7 @@ var ReactDOMImg = ReactClass.createClass({ module.exports = ReactDOMImg; -},{"./EventConstants":109,"./LocalEventTrapMixin":119,"./ReactBrowserComponentMixin":124,"./ReactClass":128,"./ReactElement":152}],142:[function(require,module,exports){ +},{"./EventConstants":110,"./LocalEventTrapMixin":120,"./ReactBrowserComponentMixin":125,"./ReactClass":129,"./ReactElement":153}],143:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -28780,7 +29083,7 @@ var ReactDOMInput = ReactClass.createClass({ module.exports = ReactDOMInput; }).call(this,require('_process')) -},{"./AutoFocusMixin":96,"./DOMPropertyOperations":105,"./LinkedValueUtils":118,"./Object.assign":121,"./ReactBrowserComponentMixin":124,"./ReactClass":128,"./ReactElement":152,"./ReactMount":165,"./ReactUpdates":182,"./invariant":230,"_process":5}],143:[function(require,module,exports){ +},{"./AutoFocusMixin":97,"./DOMPropertyOperations":106,"./LinkedValueUtils":119,"./Object.assign":122,"./ReactBrowserComponentMixin":125,"./ReactClass":129,"./ReactElement":153,"./ReactMount":166,"./ReactUpdates":183,"./invariant":231,"_process":6}],144:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -28832,7 +29135,7 @@ var ReactDOMOption = ReactClass.createClass({ module.exports = ReactDOMOption; }).call(this,require('_process')) -},{"./ReactBrowserComponentMixin":124,"./ReactClass":128,"./ReactElement":152,"./warning":249,"_process":5}],144:[function(require,module,exports){ +},{"./ReactBrowserComponentMixin":125,"./ReactClass":129,"./ReactElement":153,"./warning":250,"_process":6}],145:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -29010,7 +29313,7 @@ var ReactDOMSelect = ReactClass.createClass({ module.exports = ReactDOMSelect; -},{"./AutoFocusMixin":96,"./LinkedValueUtils":118,"./Object.assign":121,"./ReactBrowserComponentMixin":124,"./ReactClass":128,"./ReactElement":152,"./ReactUpdates":182}],145:[function(require,module,exports){ +},{"./AutoFocusMixin":97,"./LinkedValueUtils":119,"./Object.assign":122,"./ReactBrowserComponentMixin":125,"./ReactClass":129,"./ReactElement":153,"./ReactUpdates":183}],146:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -29223,7 +29526,7 @@ var ReactDOMSelection = { module.exports = ReactDOMSelection; -},{"./ExecutionEnvironment":115,"./getNodeForCharacterOffset":223,"./getTextContentAccessor":225}],146:[function(require,module,exports){ +},{"./ExecutionEnvironment":116,"./getNodeForCharacterOffset":224,"./getTextContentAccessor":226}],147:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -29340,7 +29643,7 @@ assign(ReactDOMTextComponent.prototype, { module.exports = ReactDOMTextComponent; -},{"./DOMPropertyOperations":105,"./Object.assign":121,"./ReactComponentBrowserEnvironment":130,"./ReactDOMComponent":137,"./escapeTextContentForBrowser":211}],147:[function(require,module,exports){ +},{"./DOMPropertyOperations":106,"./Object.assign":122,"./ReactComponentBrowserEnvironment":131,"./ReactDOMComponent":138,"./escapeTextContentForBrowser":212}],148:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -29480,7 +29783,7 @@ var ReactDOMTextarea = ReactClass.createClass({ module.exports = ReactDOMTextarea; }).call(this,require('_process')) -},{"./AutoFocusMixin":96,"./DOMPropertyOperations":105,"./LinkedValueUtils":118,"./Object.assign":121,"./ReactBrowserComponentMixin":124,"./ReactClass":128,"./ReactElement":152,"./ReactUpdates":182,"./invariant":230,"./warning":249,"_process":5}],148:[function(require,module,exports){ +},{"./AutoFocusMixin":97,"./DOMPropertyOperations":106,"./LinkedValueUtils":119,"./Object.assign":122,"./ReactBrowserComponentMixin":125,"./ReactClass":129,"./ReactElement":153,"./ReactUpdates":183,"./invariant":231,"./warning":250,"_process":6}],149:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -29553,7 +29856,7 @@ var ReactDefaultBatchingStrategy = { module.exports = ReactDefaultBatchingStrategy; -},{"./Object.assign":121,"./ReactUpdates":182,"./Transaction":198,"./emptyFunction":209}],149:[function(require,module,exports){ +},{"./Object.assign":122,"./ReactUpdates":183,"./Transaction":199,"./emptyFunction":210}],150:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -29712,7 +30015,7 @@ module.exports = { }; }).call(this,require('_process')) -},{"./BeforeInputEventPlugin":97,"./ChangeEventPlugin":101,"./ClientReactRootIndex":102,"./DefaultEventPluginOrder":107,"./EnterLeaveEventPlugin":108,"./ExecutionEnvironment":115,"./HTMLDOMPropertyConfig":117,"./MobileSafariClickEventPlugin":120,"./ReactBrowserComponentMixin":124,"./ReactClass":128,"./ReactComponentBrowserEnvironment":130,"./ReactDOMButton":136,"./ReactDOMComponent":137,"./ReactDOMForm":138,"./ReactDOMIDOperations":139,"./ReactDOMIframe":140,"./ReactDOMImg":141,"./ReactDOMInput":142,"./ReactDOMOption":143,"./ReactDOMSelect":144,"./ReactDOMTextComponent":146,"./ReactDOMTextarea":147,"./ReactDefaultBatchingStrategy":148,"./ReactDefaultPerf":150,"./ReactElement":152,"./ReactEventListener":157,"./ReactInjection":159,"./ReactInstanceHandles":161,"./ReactMount":165,"./ReactReconcileTransaction":175,"./SVGDOMPropertyConfig":183,"./SelectEventPlugin":184,"./ServerReactRootIndex":185,"./SimpleEventPlugin":186,"./createFullPageComponent":206,"_process":5}],150:[function(require,module,exports){ +},{"./BeforeInputEventPlugin":98,"./ChangeEventPlugin":102,"./ClientReactRootIndex":103,"./DefaultEventPluginOrder":108,"./EnterLeaveEventPlugin":109,"./ExecutionEnvironment":116,"./HTMLDOMPropertyConfig":118,"./MobileSafariClickEventPlugin":121,"./ReactBrowserComponentMixin":125,"./ReactClass":129,"./ReactComponentBrowserEnvironment":131,"./ReactDOMButton":137,"./ReactDOMComponent":138,"./ReactDOMForm":139,"./ReactDOMIDOperations":140,"./ReactDOMIframe":141,"./ReactDOMImg":142,"./ReactDOMInput":143,"./ReactDOMOption":144,"./ReactDOMSelect":145,"./ReactDOMTextComponent":147,"./ReactDOMTextarea":148,"./ReactDefaultBatchingStrategy":149,"./ReactDefaultPerf":151,"./ReactElement":153,"./ReactEventListener":158,"./ReactInjection":160,"./ReactInstanceHandles":162,"./ReactMount":166,"./ReactReconcileTransaction":176,"./SVGDOMPropertyConfig":184,"./SelectEventPlugin":185,"./ServerReactRootIndex":186,"./SimpleEventPlugin":187,"./createFullPageComponent":207,"_process":6}],151:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -29978,7 +30281,7 @@ var ReactDefaultPerf = { module.exports = ReactDefaultPerf; -},{"./DOMProperty":104,"./ReactDefaultPerfAnalysis":151,"./ReactMount":165,"./ReactPerf":170,"./performanceNow":241}],151:[function(require,module,exports){ +},{"./DOMProperty":105,"./ReactDefaultPerfAnalysis":152,"./ReactMount":166,"./ReactPerf":171,"./performanceNow":242}],152:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -30184,7 +30487,7 @@ var ReactDefaultPerfAnalysis = { module.exports = ReactDefaultPerfAnalysis; -},{"./Object.assign":121}],152:[function(require,module,exports){ +},{"./Object.assign":122}],153:[function(require,module,exports){ (function (process){ /** * Copyright 2014-2015, Facebook, Inc. @@ -30492,7 +30795,7 @@ ReactElement.isValidElement = function(object) { module.exports = ReactElement; }).call(this,require('_process')) -},{"./Object.assign":121,"./ReactContext":133,"./ReactCurrentOwner":134,"./warning":249,"_process":5}],153:[function(require,module,exports){ +},{"./Object.assign":122,"./ReactContext":134,"./ReactCurrentOwner":135,"./warning":250,"_process":6}],154:[function(require,module,exports){ (function (process){ /** * Copyright 2014-2015, Facebook, Inc. @@ -30957,7 +31260,7 @@ var ReactElementValidator = { module.exports = ReactElementValidator; }).call(this,require('_process')) -},{"./ReactCurrentOwner":134,"./ReactElement":152,"./ReactFragment":158,"./ReactNativeComponent":168,"./ReactPropTypeLocationNames":171,"./ReactPropTypeLocations":172,"./getIteratorFn":221,"./invariant":230,"./warning":249,"_process":5}],154:[function(require,module,exports){ +},{"./ReactCurrentOwner":135,"./ReactElement":153,"./ReactFragment":159,"./ReactNativeComponent":169,"./ReactPropTypeLocationNames":172,"./ReactPropTypeLocations":173,"./getIteratorFn":222,"./invariant":231,"./warning":250,"_process":6}],155:[function(require,module,exports){ (function (process){ /** * Copyright 2014-2015, Facebook, Inc. @@ -31052,7 +31355,7 @@ var ReactEmptyComponent = { module.exports = ReactEmptyComponent; }).call(this,require('_process')) -},{"./ReactElement":152,"./ReactInstanceMap":162,"./invariant":230,"_process":5}],155:[function(require,module,exports){ +},{"./ReactElement":153,"./ReactInstanceMap":163,"./invariant":231,"_process":6}],156:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -31084,7 +31387,7 @@ var ReactErrorUtils = { module.exports = ReactErrorUtils; -},{}],156:[function(require,module,exports){ +},{}],157:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -31134,7 +31437,7 @@ var ReactEventEmitterMixin = { module.exports = ReactEventEmitterMixin; -},{"./EventPluginHub":111}],157:[function(require,module,exports){ +},{"./EventPluginHub":112}],158:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -31317,7 +31620,7 @@ var ReactEventListener = { module.exports = ReactEventListener; -},{"./EventListener":110,"./ExecutionEnvironment":115,"./Object.assign":121,"./PooledClass":122,"./ReactInstanceHandles":161,"./ReactMount":165,"./ReactUpdates":182,"./getEventTarget":220,"./getUnboundedScrollPosition":226}],158:[function(require,module,exports){ +},{"./EventListener":111,"./ExecutionEnvironment":116,"./Object.assign":122,"./PooledClass":123,"./ReactInstanceHandles":162,"./ReactMount":166,"./ReactUpdates":183,"./getEventTarget":221,"./getUnboundedScrollPosition":227}],159:[function(require,module,exports){ (function (process){ /** * Copyright 2015, Facebook, Inc. @@ -31502,7 +31805,7 @@ var ReactFragment = { module.exports = ReactFragment; }).call(this,require('_process')) -},{"./ReactElement":152,"./warning":249,"_process":5}],159:[function(require,module,exports){ +},{"./ReactElement":153,"./warning":250,"_process":6}],160:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -31544,7 +31847,7 @@ var ReactInjection = { module.exports = ReactInjection; -},{"./DOMProperty":104,"./EventPluginHub":111,"./ReactBrowserEventEmitter":125,"./ReactClass":128,"./ReactComponentEnvironment":131,"./ReactDOMComponent":137,"./ReactEmptyComponent":154,"./ReactNativeComponent":168,"./ReactPerf":170,"./ReactRootIndex":178,"./ReactUpdates":182}],160:[function(require,module,exports){ +},{"./DOMProperty":105,"./EventPluginHub":112,"./ReactBrowserEventEmitter":126,"./ReactClass":129,"./ReactComponentEnvironment":132,"./ReactDOMComponent":138,"./ReactEmptyComponent":155,"./ReactNativeComponent":169,"./ReactPerf":171,"./ReactRootIndex":179,"./ReactUpdates":183}],161:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -31679,7 +31982,7 @@ var ReactInputSelection = { module.exports = ReactInputSelection; -},{"./ReactDOMSelection":145,"./containsNode":204,"./focusNode":214,"./getActiveElement":216}],161:[function(require,module,exports){ +},{"./ReactDOMSelection":146,"./containsNode":205,"./focusNode":215,"./getActiveElement":217}],162:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -32015,7 +32318,7 @@ var ReactInstanceHandles = { module.exports = ReactInstanceHandles; }).call(this,require('_process')) -},{"./ReactRootIndex":178,"./invariant":230,"_process":5}],162:[function(require,module,exports){ +},{"./ReactRootIndex":179,"./invariant":231,"_process":6}],163:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -32064,7 +32367,7 @@ var ReactInstanceMap = { module.exports = ReactInstanceMap; -},{}],163:[function(require,module,exports){ +},{}],164:[function(require,module,exports){ /** * Copyright 2015, Facebook, Inc. * All rights reserved. @@ -32101,7 +32404,7 @@ var ReactLifeCycle = { module.exports = ReactLifeCycle; -},{}],164:[function(require,module,exports){ +},{}],165:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -32149,7 +32452,7 @@ var ReactMarkupChecksum = { module.exports = ReactMarkupChecksum; -},{"./adler32":201}],165:[function(require,module,exports){ +},{"./adler32":202}],166:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -33040,7 +33343,7 @@ ReactPerf.measureMethods(ReactMount, 'ReactMount', { module.exports = ReactMount; }).call(this,require('_process')) -},{"./DOMProperty":104,"./ReactBrowserEventEmitter":125,"./ReactCurrentOwner":134,"./ReactElement":152,"./ReactElementValidator":153,"./ReactEmptyComponent":154,"./ReactInstanceHandles":161,"./ReactInstanceMap":162,"./ReactMarkupChecksum":164,"./ReactPerf":170,"./ReactReconciler":176,"./ReactUpdateQueue":181,"./ReactUpdates":182,"./containsNode":204,"./emptyObject":210,"./getReactRootElementInContainer":224,"./instantiateReactComponent":229,"./invariant":230,"./setInnerHTML":243,"./shouldUpdateReactComponent":246,"./warning":249,"_process":5}],166:[function(require,module,exports){ +},{"./DOMProperty":105,"./ReactBrowserEventEmitter":126,"./ReactCurrentOwner":135,"./ReactElement":153,"./ReactElementValidator":154,"./ReactEmptyComponent":155,"./ReactInstanceHandles":162,"./ReactInstanceMap":163,"./ReactMarkupChecksum":165,"./ReactPerf":171,"./ReactReconciler":177,"./ReactUpdateQueue":182,"./ReactUpdates":183,"./containsNode":205,"./emptyObject":211,"./getReactRootElementInContainer":225,"./instantiateReactComponent":230,"./invariant":231,"./setInnerHTML":244,"./shouldUpdateReactComponent":247,"./warning":250,"_process":6}],167:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -33470,7 +33773,7 @@ var ReactMultiChild = { module.exports = ReactMultiChild; -},{"./ReactChildReconciler":126,"./ReactComponentEnvironment":131,"./ReactMultiChildUpdateTypes":167,"./ReactReconciler":176}],167:[function(require,module,exports){ +},{"./ReactChildReconciler":127,"./ReactComponentEnvironment":132,"./ReactMultiChildUpdateTypes":168,"./ReactReconciler":177}],168:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -33503,7 +33806,7 @@ var ReactMultiChildUpdateTypes = keyMirror({ module.exports = ReactMultiChildUpdateTypes; -},{"./keyMirror":235}],168:[function(require,module,exports){ +},{"./keyMirror":236}],169:[function(require,module,exports){ (function (process){ /** * Copyright 2014-2015, Facebook, Inc. @@ -33610,7 +33913,7 @@ var ReactNativeComponent = { module.exports = ReactNativeComponent; }).call(this,require('_process')) -},{"./Object.assign":121,"./invariant":230,"_process":5}],169:[function(require,module,exports){ +},{"./Object.assign":122,"./invariant":231,"_process":6}],170:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -33722,7 +34025,7 @@ var ReactOwner = { module.exports = ReactOwner; }).call(this,require('_process')) -},{"./invariant":230,"_process":5}],170:[function(require,module,exports){ +},{"./invariant":231,"_process":6}],171:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -33826,7 +34129,7 @@ function _noMeasure(objName, fnName, func) { module.exports = ReactPerf; }).call(this,require('_process')) -},{"_process":5}],171:[function(require,module,exports){ +},{"_process":6}],172:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -33854,7 +34157,7 @@ if ("production" !== process.env.NODE_ENV) { module.exports = ReactPropTypeLocationNames; }).call(this,require('_process')) -},{"_process":5}],172:[function(require,module,exports){ +},{"_process":6}],173:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -33878,7 +34181,7 @@ var ReactPropTypeLocations = keyMirror({ module.exports = ReactPropTypeLocations; -},{"./keyMirror":235}],173:[function(require,module,exports){ +},{"./keyMirror":236}],174:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -34227,7 +34530,7 @@ function getPreciseType(propValue) { module.exports = ReactPropTypes; -},{"./ReactElement":152,"./ReactFragment":158,"./ReactPropTypeLocationNames":171,"./emptyFunction":209}],174:[function(require,module,exports){ +},{"./ReactElement":153,"./ReactFragment":159,"./ReactPropTypeLocationNames":172,"./emptyFunction":210}],175:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -34283,7 +34586,7 @@ PooledClass.addPoolingTo(ReactPutListenerQueue); module.exports = ReactPutListenerQueue; -},{"./Object.assign":121,"./PooledClass":122,"./ReactBrowserEventEmitter":125}],175:[function(require,module,exports){ +},{"./Object.assign":122,"./PooledClass":123,"./ReactBrowserEventEmitter":126}],176:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -34459,7 +34762,7 @@ PooledClass.addPoolingTo(ReactReconcileTransaction); module.exports = ReactReconcileTransaction; -},{"./CallbackQueue":100,"./Object.assign":121,"./PooledClass":122,"./ReactBrowserEventEmitter":125,"./ReactInputSelection":160,"./ReactPutListenerQueue":174,"./Transaction":198}],176:[function(require,module,exports){ +},{"./CallbackQueue":101,"./Object.assign":122,"./PooledClass":123,"./ReactBrowserEventEmitter":126,"./ReactInputSelection":161,"./ReactPutListenerQueue":175,"./Transaction":199}],177:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -34583,7 +34886,7 @@ var ReactReconciler = { module.exports = ReactReconciler; }).call(this,require('_process')) -},{"./ReactElementValidator":153,"./ReactRef":177,"_process":5}],177:[function(require,module,exports){ +},{"./ReactElementValidator":154,"./ReactRef":178,"_process":6}],178:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -34654,7 +34957,7 @@ ReactRef.detachRefs = function(instance, element) { module.exports = ReactRef; -},{"./ReactOwner":169}],178:[function(require,module,exports){ +},{"./ReactOwner":170}],179:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -34685,7 +34988,7 @@ var ReactRootIndex = { module.exports = ReactRootIndex; -},{}],179:[function(require,module,exports){ +},{}],180:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -34767,7 +35070,7 @@ module.exports = { }; }).call(this,require('_process')) -},{"./ReactElement":152,"./ReactInstanceHandles":161,"./ReactMarkupChecksum":164,"./ReactServerRenderingTransaction":180,"./emptyObject":210,"./instantiateReactComponent":229,"./invariant":230,"_process":5}],180:[function(require,module,exports){ +},{"./ReactElement":153,"./ReactInstanceHandles":162,"./ReactMarkupChecksum":165,"./ReactServerRenderingTransaction":181,"./emptyObject":211,"./instantiateReactComponent":230,"./invariant":231,"_process":6}],181:[function(require,module,exports){ /** * Copyright 2014-2015, Facebook, Inc. * All rights reserved. @@ -34880,7 +35183,7 @@ PooledClass.addPoolingTo(ReactServerRenderingTransaction); module.exports = ReactServerRenderingTransaction; -},{"./CallbackQueue":100,"./Object.assign":121,"./PooledClass":122,"./ReactPutListenerQueue":174,"./Transaction":198,"./emptyFunction":209}],181:[function(require,module,exports){ +},{"./CallbackQueue":101,"./Object.assign":122,"./PooledClass":123,"./ReactPutListenerQueue":175,"./Transaction":199,"./emptyFunction":210}],182:[function(require,module,exports){ (function (process){ /** * Copyright 2015, Facebook, Inc. @@ -35179,7 +35482,7 @@ var ReactUpdateQueue = { module.exports = ReactUpdateQueue; }).call(this,require('_process')) -},{"./Object.assign":121,"./ReactCurrentOwner":134,"./ReactElement":152,"./ReactInstanceMap":162,"./ReactLifeCycle":163,"./ReactUpdates":182,"./invariant":230,"./warning":249,"_process":5}],182:[function(require,module,exports){ +},{"./Object.assign":122,"./ReactCurrentOwner":135,"./ReactElement":153,"./ReactInstanceMap":163,"./ReactLifeCycle":164,"./ReactUpdates":183,"./invariant":231,"./warning":250,"_process":6}],183:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -35461,7 +35764,7 @@ var ReactUpdates = { module.exports = ReactUpdates; }).call(this,require('_process')) -},{"./CallbackQueue":100,"./Object.assign":121,"./PooledClass":122,"./ReactCurrentOwner":134,"./ReactPerf":170,"./ReactReconciler":176,"./Transaction":198,"./invariant":230,"./warning":249,"_process":5}],183:[function(require,module,exports){ +},{"./CallbackQueue":101,"./Object.assign":122,"./PooledClass":123,"./ReactCurrentOwner":135,"./ReactPerf":171,"./ReactReconciler":177,"./Transaction":199,"./invariant":231,"./warning":250,"_process":6}],184:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -35555,7 +35858,7 @@ var SVGDOMPropertyConfig = { module.exports = SVGDOMPropertyConfig; -},{"./DOMProperty":104}],184:[function(require,module,exports){ +},{"./DOMProperty":105}],185:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -35750,7 +36053,7 @@ var SelectEventPlugin = { module.exports = SelectEventPlugin; -},{"./EventConstants":109,"./EventPropagators":114,"./ReactInputSelection":160,"./SyntheticEvent":190,"./getActiveElement":216,"./isTextInputElement":233,"./keyOf":236,"./shallowEqual":245}],185:[function(require,module,exports){ +},{"./EventConstants":110,"./EventPropagators":115,"./ReactInputSelection":161,"./SyntheticEvent":191,"./getActiveElement":217,"./isTextInputElement":234,"./keyOf":237,"./shallowEqual":246}],186:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -35781,7 +36084,7 @@ var ServerReactRootIndex = { module.exports = ServerReactRootIndex; -},{}],186:[function(require,module,exports){ +},{}],187:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -36209,7 +36512,7 @@ var SimpleEventPlugin = { module.exports = SimpleEventPlugin; }).call(this,require('_process')) -},{"./EventConstants":109,"./EventPluginUtils":113,"./EventPropagators":114,"./SyntheticClipboardEvent":187,"./SyntheticDragEvent":189,"./SyntheticEvent":190,"./SyntheticFocusEvent":191,"./SyntheticKeyboardEvent":193,"./SyntheticMouseEvent":194,"./SyntheticTouchEvent":195,"./SyntheticUIEvent":196,"./SyntheticWheelEvent":197,"./getEventCharCode":217,"./invariant":230,"./keyOf":236,"./warning":249,"_process":5}],187:[function(require,module,exports){ +},{"./EventConstants":110,"./EventPluginUtils":114,"./EventPropagators":115,"./SyntheticClipboardEvent":188,"./SyntheticDragEvent":190,"./SyntheticEvent":191,"./SyntheticFocusEvent":192,"./SyntheticKeyboardEvent":194,"./SyntheticMouseEvent":195,"./SyntheticTouchEvent":196,"./SyntheticUIEvent":197,"./SyntheticWheelEvent":198,"./getEventCharCode":218,"./invariant":231,"./keyOf":237,"./warning":250,"_process":6}],188:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -36254,7 +36557,7 @@ SyntheticEvent.augmentClass(SyntheticClipboardEvent, ClipboardEventInterface); module.exports = SyntheticClipboardEvent; -},{"./SyntheticEvent":190}],188:[function(require,module,exports){ +},{"./SyntheticEvent":191}],189:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -36299,7 +36602,7 @@ SyntheticEvent.augmentClass( module.exports = SyntheticCompositionEvent; -},{"./SyntheticEvent":190}],189:[function(require,module,exports){ +},{"./SyntheticEvent":191}],190:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -36338,7 +36641,7 @@ SyntheticMouseEvent.augmentClass(SyntheticDragEvent, DragEventInterface); module.exports = SyntheticDragEvent; -},{"./SyntheticMouseEvent":194}],190:[function(require,module,exports){ +},{"./SyntheticMouseEvent":195}],191:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -36504,7 +36807,7 @@ PooledClass.addPoolingTo(SyntheticEvent, PooledClass.threeArgumentPooler); module.exports = SyntheticEvent; -},{"./Object.assign":121,"./PooledClass":122,"./emptyFunction":209,"./getEventTarget":220}],191:[function(require,module,exports){ +},{"./Object.assign":122,"./PooledClass":123,"./emptyFunction":210,"./getEventTarget":221}],192:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -36543,7 +36846,7 @@ SyntheticUIEvent.augmentClass(SyntheticFocusEvent, FocusEventInterface); module.exports = SyntheticFocusEvent; -},{"./SyntheticUIEvent":196}],192:[function(require,module,exports){ +},{"./SyntheticUIEvent":197}],193:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -36589,7 +36892,7 @@ SyntheticEvent.augmentClass( module.exports = SyntheticInputEvent; -},{"./SyntheticEvent":190}],193:[function(require,module,exports){ +},{"./SyntheticEvent":191}],194:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -36676,7 +36979,7 @@ SyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface); module.exports = SyntheticKeyboardEvent; -},{"./SyntheticUIEvent":196,"./getEventCharCode":217,"./getEventKey":218,"./getEventModifierState":219}],194:[function(require,module,exports){ +},{"./SyntheticUIEvent":197,"./getEventCharCode":218,"./getEventKey":219,"./getEventModifierState":220}],195:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -36757,7 +37060,7 @@ SyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface); module.exports = SyntheticMouseEvent; -},{"./SyntheticUIEvent":196,"./ViewportMetrics":199,"./getEventModifierState":219}],195:[function(require,module,exports){ +},{"./SyntheticUIEvent":197,"./ViewportMetrics":200,"./getEventModifierState":220}],196:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -36805,7 +37108,7 @@ SyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface); module.exports = SyntheticTouchEvent; -},{"./SyntheticUIEvent":196,"./getEventModifierState":219}],196:[function(require,module,exports){ +},{"./SyntheticUIEvent":197,"./getEventModifierState":220}],197:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -36867,7 +37170,7 @@ SyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface); module.exports = SyntheticUIEvent; -},{"./SyntheticEvent":190,"./getEventTarget":220}],197:[function(require,module,exports){ +},{"./SyntheticEvent":191,"./getEventTarget":221}],198:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -36928,7 +37231,7 @@ SyntheticMouseEvent.augmentClass(SyntheticWheelEvent, WheelEventInterface); module.exports = SyntheticWheelEvent; -},{"./SyntheticMouseEvent":194}],198:[function(require,module,exports){ +},{"./SyntheticMouseEvent":195}],199:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -37169,7 +37472,7 @@ var Transaction = { module.exports = Transaction; }).call(this,require('_process')) -},{"./invariant":230,"_process":5}],199:[function(require,module,exports){ +},{"./invariant":231,"_process":6}],200:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -37198,7 +37501,7 @@ var ViewportMetrics = { module.exports = ViewportMetrics; -},{}],200:[function(require,module,exports){ +},{}],201:[function(require,module,exports){ (function (process){ /** * Copyright 2014-2015, Facebook, Inc. @@ -37264,7 +37567,7 @@ function accumulateInto(current, next) { module.exports = accumulateInto; }).call(this,require('_process')) -},{"./invariant":230,"_process":5}],201:[function(require,module,exports){ +},{"./invariant":231,"_process":6}],202:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -37298,7 +37601,7 @@ function adler32(data) { module.exports = adler32; -},{}],202:[function(require,module,exports){ +},{}],203:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -37330,7 +37633,7 @@ function camelize(string) { module.exports = camelize; -},{}],203:[function(require,module,exports){ +},{}],204:[function(require,module,exports){ /** * Copyright 2014-2015, Facebook, Inc. * All rights reserved. @@ -37372,7 +37675,7 @@ function camelizeStyleName(string) { module.exports = camelizeStyleName; -},{"./camelize":202}],204:[function(require,module,exports){ +},{"./camelize":203}],205:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -37416,7 +37719,7 @@ function containsNode(outerNode, innerNode) { module.exports = containsNode; -},{"./isTextNode":234}],205:[function(require,module,exports){ +},{"./isTextNode":235}],206:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -37502,7 +37805,7 @@ function createArrayFromMixed(obj) { module.exports = createArrayFromMixed; -},{"./toArray":247}],206:[function(require,module,exports){ +},{"./toArray":248}],207:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -37564,7 +37867,7 @@ function createFullPageComponent(tag) { module.exports = createFullPageComponent; }).call(this,require('_process')) -},{"./ReactClass":128,"./ReactElement":152,"./invariant":230,"_process":5}],207:[function(require,module,exports){ +},{"./ReactClass":129,"./ReactElement":153,"./invariant":231,"_process":6}],208:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -37654,7 +37957,7 @@ function createNodesFromMarkup(markup, handleScript) { module.exports = createNodesFromMarkup; }).call(this,require('_process')) -},{"./ExecutionEnvironment":115,"./createArrayFromMixed":205,"./getMarkupWrap":222,"./invariant":230,"_process":5}],208:[function(require,module,exports){ +},{"./ExecutionEnvironment":116,"./createArrayFromMixed":206,"./getMarkupWrap":223,"./invariant":231,"_process":6}],209:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -37712,7 +38015,7 @@ function dangerousStyleValue(name, value) { module.exports = dangerousStyleValue; -},{"./CSSProperty":98}],209:[function(require,module,exports){ +},{"./CSSProperty":99}],210:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -37746,7 +38049,7 @@ emptyFunction.thatReturnsArgument = function(arg) { return arg; }; module.exports = emptyFunction; -},{}],210:[function(require,module,exports){ +},{}],211:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -37770,7 +38073,7 @@ if ("production" !== process.env.NODE_ENV) { module.exports = emptyObject; }).call(this,require('_process')) -},{"_process":5}],211:[function(require,module,exports){ +},{"_process":6}],212:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -37810,7 +38113,7 @@ function escapeTextContentForBrowser(text) { module.exports = escapeTextContentForBrowser; -},{}],212:[function(require,module,exports){ +},{}],213:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -37883,7 +38186,7 @@ function findDOMNode(componentOrElement) { module.exports = findDOMNode; }).call(this,require('_process')) -},{"./ReactCurrentOwner":134,"./ReactInstanceMap":162,"./ReactMount":165,"./invariant":230,"./isNode":232,"./warning":249,"_process":5}],213:[function(require,module,exports){ +},{"./ReactCurrentOwner":135,"./ReactInstanceMap":163,"./ReactMount":166,"./invariant":231,"./isNode":233,"./warning":250,"_process":6}],214:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -37941,7 +38244,7 @@ function flattenChildren(children) { module.exports = flattenChildren; }).call(this,require('_process')) -},{"./traverseAllChildren":248,"./warning":249,"_process":5}],214:[function(require,module,exports){ +},{"./traverseAllChildren":249,"./warning":250,"_process":6}],215:[function(require,module,exports){ /** * Copyright 2014-2015, Facebook, Inc. * All rights reserved. @@ -37970,7 +38273,7 @@ function focusNode(node) { module.exports = focusNode; -},{}],215:[function(require,module,exports){ +},{}],216:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -38001,7 +38304,7 @@ var forEachAccumulated = function(arr, cb, scope) { module.exports = forEachAccumulated; -},{}],216:[function(require,module,exports){ +},{}],217:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -38030,7 +38333,7 @@ function getActiveElement() /*?DOMElement*/ { module.exports = getActiveElement; -},{}],217:[function(require,module,exports){ +},{}],218:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -38082,7 +38385,7 @@ function getEventCharCode(nativeEvent) { module.exports = getEventCharCode; -},{}],218:[function(require,module,exports){ +},{}],219:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -38187,7 +38490,7 @@ function getEventKey(nativeEvent) { module.exports = getEventKey; -},{"./getEventCharCode":217}],219:[function(require,module,exports){ +},{"./getEventCharCode":218}],220:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -38234,7 +38537,7 @@ function getEventModifierState(nativeEvent) { module.exports = getEventModifierState; -},{}],220:[function(require,module,exports){ +},{}],221:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -38265,7 +38568,7 @@ function getEventTarget(nativeEvent) { module.exports = getEventTarget; -},{}],221:[function(require,module,exports){ +},{}],222:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -38309,7 +38612,7 @@ function getIteratorFn(maybeIterable) { module.exports = getIteratorFn; -},{}],222:[function(require,module,exports){ +},{}],223:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -38428,7 +38731,7 @@ function getMarkupWrap(nodeName) { module.exports = getMarkupWrap; }).call(this,require('_process')) -},{"./ExecutionEnvironment":115,"./invariant":230,"_process":5}],223:[function(require,module,exports){ +},{"./ExecutionEnvironment":116,"./invariant":231,"_process":6}],224:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -38503,7 +38806,7 @@ function getNodeForCharacterOffset(root, offset) { module.exports = getNodeForCharacterOffset; -},{}],224:[function(require,module,exports){ +},{}],225:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -38538,7 +38841,7 @@ function getReactRootElementInContainer(container) { module.exports = getReactRootElementInContainer; -},{}],225:[function(require,module,exports){ +},{}],226:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -38575,7 +38878,7 @@ function getTextContentAccessor() { module.exports = getTextContentAccessor; -},{"./ExecutionEnvironment":115}],226:[function(require,module,exports){ +},{"./ExecutionEnvironment":116}],227:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -38615,7 +38918,7 @@ function getUnboundedScrollPosition(scrollable) { module.exports = getUnboundedScrollPosition; -},{}],227:[function(require,module,exports){ +},{}],228:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -38648,7 +38951,7 @@ function hyphenate(string) { module.exports = hyphenate; -},{}],228:[function(require,module,exports){ +},{}],229:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -38689,7 +38992,7 @@ function hyphenateStyleName(string) { module.exports = hyphenateStyleName; -},{"./hyphenate":227}],229:[function(require,module,exports){ +},{"./hyphenate":228}],230:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -38827,7 +39130,7 @@ function instantiateReactComponent(node, parentCompositeType) { module.exports = instantiateReactComponent; }).call(this,require('_process')) -},{"./Object.assign":121,"./ReactCompositeComponent":132,"./ReactEmptyComponent":154,"./ReactNativeComponent":168,"./invariant":230,"./warning":249,"_process":5}],230:[function(require,module,exports){ +},{"./Object.assign":122,"./ReactCompositeComponent":133,"./ReactEmptyComponent":155,"./ReactNativeComponent":169,"./invariant":231,"./warning":250,"_process":6}],231:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -38884,7 +39187,7 @@ var invariant = function(condition, format, a, b, c, d, e, f) { module.exports = invariant; }).call(this,require('_process')) -},{"_process":5}],231:[function(require,module,exports){ +},{"_process":6}],232:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -38949,7 +39252,7 @@ function isEventSupported(eventNameSuffix, capture) { module.exports = isEventSupported; -},{"./ExecutionEnvironment":115}],232:[function(require,module,exports){ +},{"./ExecutionEnvironment":116}],233:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -38976,7 +39279,7 @@ function isNode(object) { module.exports = isNode; -},{}],233:[function(require,module,exports){ +},{}],234:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -39019,7 +39322,7 @@ function isTextInputElement(elem) { module.exports = isTextInputElement; -},{}],234:[function(require,module,exports){ +},{}],235:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -39044,7 +39347,7 @@ function isTextNode(object) { module.exports = isTextNode; -},{"./isNode":232}],235:[function(require,module,exports){ +},{"./isNode":233}],236:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -39099,7 +39402,7 @@ var keyMirror = function(obj) { module.exports = keyMirror; }).call(this,require('_process')) -},{"./invariant":230,"_process":5}],236:[function(require,module,exports){ +},{"./invariant":231,"_process":6}],237:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -39135,7 +39438,7 @@ var keyOf = function(oneKeyObj) { module.exports = keyOf; -},{}],237:[function(require,module,exports){ +},{}],238:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -39188,7 +39491,7 @@ function mapObject(object, callback, context) { module.exports = mapObject; -},{}],238:[function(require,module,exports){ +},{}],239:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -39221,7 +39524,7 @@ function memoizeStringOnly(callback) { module.exports = memoizeStringOnly; -},{}],239:[function(require,module,exports){ +},{}],240:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -39261,7 +39564,7 @@ function onlyChild(children) { module.exports = onlyChild; }).call(this,require('_process')) -},{"./ReactElement":152,"./invariant":230,"_process":5}],240:[function(require,module,exports){ +},{"./ReactElement":153,"./invariant":231,"_process":6}],241:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -39289,7 +39592,7 @@ if (ExecutionEnvironment.canUseDOM) { module.exports = performance || {}; -},{"./ExecutionEnvironment":115}],241:[function(require,module,exports){ +},{"./ExecutionEnvironment":116}],242:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -39317,7 +39620,7 @@ var performanceNow = performance.now.bind(performance); module.exports = performanceNow; -},{"./performance":240}],242:[function(require,module,exports){ +},{"./performance":241}],243:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -39345,7 +39648,7 @@ function quoteAttributeValueForBrowser(value) { module.exports = quoteAttributeValueForBrowser; -},{"./escapeTextContentForBrowser":211}],243:[function(require,module,exports){ +},{"./escapeTextContentForBrowser":212}],244:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -39434,7 +39737,7 @@ if (ExecutionEnvironment.canUseDOM) { module.exports = setInnerHTML; -},{"./ExecutionEnvironment":115}],244:[function(require,module,exports){ +},{"./ExecutionEnvironment":116}],245:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -39476,7 +39779,7 @@ if (ExecutionEnvironment.canUseDOM) { module.exports = setTextContent; -},{"./ExecutionEnvironment":115,"./escapeTextContentForBrowser":211,"./setInnerHTML":243}],245:[function(require,module,exports){ +},{"./ExecutionEnvironment":116,"./escapeTextContentForBrowser":212,"./setInnerHTML":244}],246:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -39520,7 +39823,7 @@ function shallowEqual(objA, objB) { module.exports = shallowEqual; -},{}],246:[function(require,module,exports){ +},{}],247:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -39624,7 +39927,7 @@ function shouldUpdateReactComponent(prevElement, nextElement) { module.exports = shouldUpdateReactComponent; }).call(this,require('_process')) -},{"./warning":249,"_process":5}],247:[function(require,module,exports){ +},{"./warning":250,"_process":6}],248:[function(require,module,exports){ (function (process){ /** * Copyright 2014-2015, Facebook, Inc. @@ -39696,7 +39999,7 @@ function toArray(obj) { module.exports = toArray; }).call(this,require('_process')) -},{"./invariant":230,"_process":5}],248:[function(require,module,exports){ +},{"./invariant":231,"_process":6}],249:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -39949,7 +40252,7 @@ function traverseAllChildren(children, callback, traverseContext) { module.exports = traverseAllChildren; }).call(this,require('_process')) -},{"./ReactElement":152,"./ReactFragment":158,"./ReactInstanceHandles":161,"./getIteratorFn":221,"./invariant":230,"./warning":249,"_process":5}],249:[function(require,module,exports){ +},{"./ReactElement":153,"./ReactFragment":159,"./ReactInstanceHandles":162,"./getIteratorFn":222,"./invariant":231,"./warning":250,"_process":6}],250:[function(require,module,exports){ (function (process){ /** * Copyright 2014-2015, Facebook, Inc. @@ -40012,10 +40315,10 @@ if ("production" !== process.env.NODE_ENV) { module.exports = warning; }).call(this,require('_process')) -},{"./emptyFunction":209,"_process":5}],250:[function(require,module,exports){ +},{"./emptyFunction":210,"_process":6}],251:[function(require,module,exports){ module.exports = require('./lib/React'); -},{"./lib/React":123}],251:[function(require,module,exports){ +},{"./lib/React":124}],252:[function(require,module,exports){ 'use strict'; exports.__esModule = true; @@ -40180,7 +40483,7 @@ function createStore(reducer, initialState) { replaceReducer: replaceReducer }; } -},{"./utils/isPlainObject":257}],252:[function(require,module,exports){ +},{"./utils/isPlainObject":258}],253:[function(require,module,exports){ 'use strict'; exports.__esModule = true; @@ -40212,7 +40515,7 @@ exports.combineReducers = _utilsCombineReducers2['default']; exports.bindActionCreators = _utilsBindActionCreators2['default']; exports.applyMiddleware = _utilsApplyMiddleware2['default']; exports.compose = _utilsCompose2['default']; -},{"./createStore":251,"./utils/applyMiddleware":253,"./utils/bindActionCreators":254,"./utils/combineReducers":255,"./utils/compose":256}],253:[function(require,module,exports){ +},{"./createStore":252,"./utils/applyMiddleware":254,"./utils/bindActionCreators":255,"./utils/combineReducers":256,"./utils/compose":257}],254:[function(require,module,exports){ 'use strict'; exports.__esModule = true; @@ -40274,7 +40577,7 @@ function applyMiddleware() { } module.exports = exports['default']; -},{"./compose":256}],254:[function(require,module,exports){ +},{"./compose":257}],255:[function(require,module,exports){ 'use strict'; exports.__esModule = true; @@ -40329,7 +40632,7 @@ function bindActionCreators(actionCreators, dispatch) { } module.exports = exports['default']; -},{"../utils/mapValues":258}],255:[function(require,module,exports){ +},{"../utils/mapValues":259}],256:[function(require,module,exports){ (function (process){ 'use strict'; @@ -40449,7 +40752,7 @@ function combineReducers(reducers) { module.exports = exports['default']; }).call(this,require('_process')) -},{"../createStore":251,"../utils/isPlainObject":257,"../utils/mapValues":258,"../utils/pick":259,"_process":5}],256:[function(require,module,exports){ +},{"../createStore":252,"../utils/isPlainObject":258,"../utils/mapValues":259,"../utils/pick":260,"_process":6}],257:[function(require,module,exports){ /** * Composes functions from left to right. * @@ -40474,9 +40777,9 @@ function compose() { } module.exports = exports["default"]; -},{}],257:[function(require,module,exports){ -arguments[4][92][0].apply(exports,arguments) -},{"dup":92}],258:[function(require,module,exports){ +},{}],258:[function(require,module,exports){ +arguments[4][93][0].apply(exports,arguments) +},{"dup":93}],259:[function(require,module,exports){ /** * Applies a function to every key-value pair inside an object. * @@ -40497,7 +40800,7 @@ function mapValues(obj, fn) { } module.exports = exports["default"]; -},{}],259:[function(require,module,exports){ +},{}],260:[function(require,module,exports){ /** * Picks key-value pairs from an object where values satisfy a predicate. * @@ -40520,7 +40823,7 @@ function pick(obj, fn) { } module.exports = exports["default"]; -},{}],260:[function(require,module,exports){ +},{}],261:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -40540,7 +40843,7 @@ function changedir(dir) { module.exports = exports['default']; -},{"actions/types":270}],261:[function(require,module,exports){ +},{"actions/types":271}],262:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -40565,7 +40868,7 @@ function decompress(file) { }; } -},{"./types":270}],262:[function(require,module,exports){ +},{"./types":271}],263:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -40617,7 +40920,7 @@ function hideAll() { }, props); } -},{"actions/types":270}],263:[function(require,module,exports){ +},{"actions/types":271}],264:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -40686,7 +40989,7 @@ function remove(file) { }; } -},{"actions/types":270}],264:[function(require,module,exports){ +},{"actions/types":271}],265:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -40734,7 +41037,7 @@ function search(keywords) { }; } -},{"actions/types":270,"store":"store"}],265:[function(require,module,exports){ +},{"actions/types":271,"store":"store"}],266:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -40786,7 +41089,7 @@ function hideAll() { }, props); } -},{"actions/types":270}],266:[function(require,module,exports){ +},{"actions/types":271}],267:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -40819,7 +41122,7 @@ function toggle() { }; } -},{"actions/types":270}],267:[function(require,module,exports){ +},{"actions/types":271}],268:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -40844,7 +41147,7 @@ function disable() { }; } -},{"actions/types":270}],268:[function(require,module,exports){ +},{"actions/types":271}],269:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -40863,7 +41166,7 @@ exports['default'] = function (props) { module.exports = exports['default']; -},{"actions/types":270}],269:[function(require,module,exports){ +},{"actions/types":271}],270:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -40896,7 +41199,7 @@ function toggle() { }; } -},{"actions/types":270}],270:[function(require,module,exports){ +},{"actions/types":271}],271:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -40940,7 +41243,7 @@ var TYPES = { exports['default'] = TYPES; module.exports = exports['default']; -},{}],271:[function(require,module,exports){ +},{}],272:[function(require,module,exports){ 'use strict'; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -40957,7 +41260,36 @@ navigator.mozSetMessageHandler('activity', function (request) { } }); -},{"actions/pick":267,"store":"store"}],272:[function(require,module,exports){ +},{"actions/pick":268,"store":"store"}],273:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, '__esModule', { + value: true +}); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } + +var _ftp = require('./ftp'); + +var ftp = _interopRequireWildcard(_ftp); + +var _files = require('./files'); + +var files = _interopRequireWildcard(_files); + +['getFile', 'children', 'isDirectory', 'readFile', 'writeFile', 'createFile', 'createDirectory', 'remove', 'move', 'copy'].forEach(function (method) { + exports[method] = function () { + return window.ftpMode ? ftp[method].apply(ftp, arguments) : files[method].apply(files, arguments); + }; +}); + +var CACHE = files.CACHE; +var FTP_CACHE = ftp.FTP_CACHE; + +exports.CACHE = CACHE; +exports.FTP_CACHE = FTP_CACHE; + +},{"./files":274,"./ftp":275}],274:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -40986,7 +41318,14 @@ var getFile = _asyncToGenerator(function* () { if (dir === '/' || !dir) return parent; - return yield parent.get((0, _utils.normalize)(dir)); + var file = yield parent.get((0, _utils.normalize)(dir)); + + Object.defineProperty(file, 'type', { + value: (0, _utils.type)(file), + enumerable: true + }); + + return file; }); exports.getFile = getFile; @@ -41000,16 +41339,44 @@ var children = _asyncToGenerator(function* (dir, gatherInfo) { } var childs = yield parent.getFilesAndDirectories(); + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = childs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var child = _step.value; + + Object.defineProperty(child, 'type', { + value: (0, _utils.type)(child), + enumerable: true + }); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator['return']) { + _iterator['return'](); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + if (gatherInfo && !window.needsShim) { - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; + var _iteratorNormalCompletion2 = true; + var _didIteratorError2 = false; + var _iteratorError2 = undefined; try { - for (var _iterator = childs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var child = _step.value; + for (var _iterator2 = childs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + var child = _step2.value; - if ((0, _utils.type)(child) === 'Directory') { + if (child.type === 'Directory') { var subchildren = undefined; try { subchildren = yield shimDirectory(child).getFilesAndDirectories(); @@ -41025,16 +41392,16 @@ var children = _asyncToGenerator(function* (dir, gatherInfo) { } } } catch (err) { - _didIteratorError = true; - _iteratorError = err; + _didIteratorError2 = true; + _iteratorError2 = err; } finally { try { - if (!_iteratorNormalCompletion && _iterator['return']) { - _iterator['return'](); + if (!_iteratorNormalCompletion2 && _iterator2['return']) { + _iterator2['return'](); } } finally { - if (_didIteratorError) { - throw _iteratorError; + if (_didIteratorError2) { + throw _iteratorError2; } } } @@ -41148,13 +41515,13 @@ var copy = _asyncToGenerator(function* (file, newPath) { yield parent.createDirectory(newPath); var childs = yield shimDirectory(target).getFilesAndDirectories(); - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; + var _iteratorNormalCompletion3 = true; + var _didIteratorError3 = false; + var _iteratorError3 = undefined; try { - for (var _iterator2 = childs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var child = _step2.value; + for (var _iterator3 = childs[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { + var child = _step3.value; if ((0, _utils.type)(child) === 'File') { Object.defineProperty(child, 'path', { @@ -41167,16 +41534,16 @@ var copy = _asyncToGenerator(function* (file, newPath) { yield copy(child, newPath + '/' + child.name); } } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; + _didIteratorError3 = true; + _iteratorError3 = err; } finally { try { - if (!_iteratorNormalCompletion2 && _iterator2['return']) { - _iterator2['return'](); + if (!_iteratorNormalCompletion3 && _iterator3['return']) { + _iterator3['return'](); } } finally { - if (_didIteratorError2) { - throw _iteratorError2; + if (_didIteratorError3) { + throw _iteratorError3; } } } @@ -41218,7 +41585,385 @@ function sdcard() { var ROOT_CACHE = undefined; -},{"actions/files-view":264,"store":"store","utils":"utils"}],273:[function(require,module,exports){ +},{"actions/files-view":265,"store":"store","utils":"utils"}],275:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, '__esModule', { + value: true +}); + +var connect = _asyncToGenerator(function* () { + var properties = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; + var host = properties.host; + var port = properties.port; + var username = properties.username; + var password = properties.password; + + var url = encodeURI(host); + socket = navigator.mozTCPSocket.open(url, port); + + socket.ondata = function (e) { + console.log('<', e.data); + connection.emit('data', e.data); + }; + + socket.onerror = function (e) { + connection.emit('error', e.data); + }; + + socket.onclose = function (e) { + connection.emit('close', e.data); + }; + + return new Promise(function (resolve, reject) { + socket.onopen = function () { + send('USER ' + username); + send('PASS ' + password); + resolve(socket); + + window.ftpMode = true; + }; + + socket.onerror = reject; + socket.onclose = reject; + }); +}); + +exports.connect = connect; + +var disconnect = _asyncToGenerator(function* () { + socket.close(); + window.ftpMode = false; +}); + +exports.disconnect = disconnect; +exports.listen = listen; +exports.send = send; + +var cwd = _asyncToGenerator(function* () { + var dir = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0]; + + send('CWD', dir); + wd = dir; +}); + +exports.cwd = cwd; + +var pwd = _asyncToGenerator(function* () { + return new Promise(function (resolve, reject) { + connection.on('data', function listener(data) { + if (data.indexOf('current directory') === -1) return; + var dir = data.match(PWD_REGEX)[1]; + resolve((0, _utils.normalize)(dir)); + + connection.removeListener('data', listener); + }); + send('PWD'); + }); +}); + +exports.pwd = pwd; + +var pasv = _asyncToGenerator(function* () { + return new Promise(function (resolve, reject) { + connection.on('data', function listener(data) { + if (data.indexOf('Passive') === -1) return; + + // format: |||port| + var port = parseInt(data.match(/\|{3}(\d+)\|/)[1]); + + connection.removeListener('data', listener); + + return resolve(port); + }); + + send('EPSV'); + }); +}); + +exports.pasv = pasv; + +var list = _asyncToGenerator(function* () { + var dir = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0]; + + return pasv().then(function (port) { + return secondary({ host: socket.host, port: port }).then(function (_ref) { + var data = _ref.data; + + send('LIST', dir); + + return data.then(function (items) { + return items.split('\n').map(function (item) { + if (item.indexOf('total') > -1 || !item) return; + + var match = item.match(LIST_EXTRACTOR); + + return { + path: (0, _utils.normalize)(wd) + '/', + type: match[1][0] === 'd' ? 'Directory' : 'File', + permissions: match[1].slice(1), + links: +match[2], + owner: match[3], + group: match[4], + size: +match[5], + lastModification: { + month: match[6], + day: match[7], + time: match[8] + }, + name: match[9] + }; + }).filter(function (item) { + return item; + }); + }, _utils.reportError); + }); + }); +}); + +exports.list = list; + +var namelist = _asyncToGenerator(function* () { + var dir = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0]; + + return pasv().then(function (port) { + return secondary({ host: socket.host, port: port }).then(function (_ref2) { + var data = _ref2.data; + + send('NLST', dir); + + return data.then(function (names) { + return names.split('\n'); + }, _utils.reportError); + }); + }); +}); + +exports.namelist = namelist; + +var secondary = _asyncToGenerator(function* () { + var properties = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; + var host = properties.host; + var port = properties.port; + + var url = encodeURI(host); + + return new Promise(function (resolve, reject) { + var alt = navigator.mozTCPSocket.open(url, port); + + alt.onopen = function () { + var data = new Promise(function (resolve, reject) { + alt.ondata = function (e) { + resolve(e.data); + }; + alt.onerror = function (e) { + reject(e.data); + }; + alt.onclose = function (e) { + resolve(''); + }; + }); + resolve({ data: data }); + }; + }); +}); + +exports.secondary = secondary; + +var secondaryWrite = _asyncToGenerator(function* (properties, content) { + if (properties === undefined) properties = {}; + var host = properties.host; + var port = properties.port; + + var url = encodeURI(host); + + return new Promise(function (resolve, reject) { + var alt = navigator.mozTCPSocket.open(url, port); + + alt.onopen = function () { + alt.send(content); + + setImmediate(function () { + alt.close(); + }); + }; + + alt.onclose = function () { + resolve(); + }; + }); +}); + +exports.secondaryWrite = secondaryWrite; + +var children = _asyncToGenerator(function* (dir, gatherInfo) { + if (dir === undefined) dir = ''; + + dir = (0, _utils.normalize)(dir); + if (FTP_CACHE[dir]) return FTP_CACHE[dir]; + + var childs = gatherInfo ? (yield list(dir)) : (yield namelist()); + + FTP_CACHE[dir] = childs; + + return childs; +}); + +exports.children = children; + +var getFile = _asyncToGenerator(function* () { + var path = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0]; + + path = (0, _utils.normalize)(path); + + var ls = yield list(path); + + return ls[0]; +}); + +exports.getFile = getFile; + +var isDirectory = _asyncToGenerator(function* () { + var path = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0]; + + return (yield getFile(path)).type === 'Directory'; +}); + +exports.isDirectory = isDirectory; + +var readFile = _asyncToGenerator(function* () { + var path = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0]; + + path = (0, _utils.normalize)(path); + + return pasv().then(function (port) { + return secondary({ host: socket.host, port: port }).then(function (_ref3) { + var data = _ref3.data; + + send('RETR', path); + + return data; + }); + })['catch'](_utils.reportError); +}); + +exports.readFile = readFile; + +var writeFile = _asyncToGenerator(function* (path, content) { + if (path === undefined) path = ''; + + path = (0, _utils.normalize)(path); + + return pasv().then(function (port) { + send('STOR', path); + return secondaryWrite({ host: socket.host, port: port }, content).then(function () {}); + })['catch'](_utils.reportError); +}); + +exports.writeFile = writeFile; + +var createFile = _asyncToGenerator(function* () { + var path = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0]; + + return writeFile(path, ''); +}); + +exports.createFile = createFile; + +var createDirectory = _asyncToGenerator(function* () { + var path = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0]; + + path = (0, _utils.normalize)(path); + + send('MKD', path); +}); + +exports.createDirectory = createDirectory; + +var remove = _asyncToGenerator(function* () { + var path = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0]; + + path = (0, _utils.normalize)(path); + + send('RMD', path); + send('DELE', path); +}); + +exports.remove = remove; + +var move = _asyncToGenerator(function* () { + var path = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0]; + var newPath = arguments.length <= 1 || arguments[1] === undefined ? '' : arguments[1]; + + path = (0, _utils.normalize)(path); + newPath = (0, _utils.normalize)(newPath); + + send('RNFR', path); + send('RNTO', newPath); +}); + +exports.move = move; + +var copy = _asyncToGenerator(function* () { + var path = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0]; + var newPath = arguments.length <= 1 || arguments[1] === undefined ? '' : arguments[1]; + + path = (0, _utils.normalize)(path); + newPath = (0, _utils.normalize)(newPath); + + var content = yield readFile(path); + + return writeFile(newPath, content); +}); + +exports.copy = copy; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { var callNext = step.bind(null, 'next'); var callThrow = step.bind(null, 'throw'); function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(callNext, callThrow); } } callNext(); }); }; } + +var _actionsFilesView = require('actions/files-view'); + +var _store = require('store'); + +var _events = require('events'); + +var _events2 = _interopRequireDefault(_events); + +var _utils = require('utils'); + +var FTP_CACHE = {}; +exports.FTP_CACHE = FTP_CACHE; +var socket = undefined; +var connection = new _events2['default'](); +connection.setMaxListeners(99); +var wd = ''; +var currentRequest = undefined; +var queue = 0; + +function listen(ev, fn) { + socket.listen(ev, fn); +} + +function send(command) { + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + args = args.filter(function (arg) { + return arg; + }); + var cmd = command + (args.length ? ' ' : '') + args.join(' '); + + console.log('>', cmd); + socket.send(cmd + '\n'); +} + +var PWD_REGEX = /257 "(.*)"/; + +var LIST_EXTRACTOR = /(.*?)\s+(\d+)\s+(\w+)\s+(\w+)\s+(\w+)\s+(\w+)\s+(\d+)\s+(\d+:?\d+)+\s+(.*)/; + +},{"actions/files-view":265,"events":5,"store":"store","utils":"utils"}],276:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -41350,7 +42095,7 @@ function props(state) { } module.exports = exports['default']; -},{"actions/changedir":260,"react":250,"react-redux":90,"store":"store"}],274:[function(require,module,exports){ +},{"actions/changedir":261,"react":251,"react-redux":91,"store":"store"}],277:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -41453,7 +42198,7 @@ var Dialog = (function (_Component) { exports['default'] = Dialog; module.exports = exports['default']; -},{"react":250,"utils":"utils"}],275:[function(require,module,exports){ +},{"react":251,"utils":"utils"}],278:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -41547,7 +42292,7 @@ var Directory = (function (_Component) { exports['default'] = Directory; module.exports = exports['default']; -},{"./mixins/entry":280,"actions/changedir":260,"react":250,"store":"store"}],276:[function(require,module,exports){ +},{"./mixins/entry":283,"actions/changedir":261,"react":251,"store":"store"}],279:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -41558,17 +42303,8 @@ var _createClass = (function () { function defineProperties(target, props) { for var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; -var getFiles = _asyncToGenerator(function* (dir) { - var storage = navigator.getDeviceStorage('sdcard'); - var root = yield storage.get(dir); - - return yield root.getFilesAndDirectories(); -}); - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } -function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { var callNext = step.bind(null, 'next'); var callThrow = step.bind(null, 'throw'); function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(callNext, callThrow); } } callNext(); }); }; } - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } @@ -41624,7 +42360,7 @@ var FileList = (function (_Component) { var els = files.map(function (file, index) { var selected = activeFile.indexOf(file) > -1; - if ((0, _utils.type)(file) === 'File') { + if (file.type === 'File') { return _react2['default'].createElement(_file2['default'], { selectView: selectView, selected: selected, key: index, index: index, name: file.name, size: file.size, type: file.type }); } else { return _react2['default'].createElement(_directory2['default'], { selectView: selectView, selected: selected, key: index, index: index, name: file.name, children: file.children, type: file.type }); @@ -41671,10 +42407,9 @@ function props(state) { view: state.get('settings').view || 'list' }; } - module.exports = exports['default']; -},{"./directory":275,"./file":277,"actions/changedir":260,"hammerjs":6,"react":250,"react-redux":90,"store":"store","utils":"utils"}],277:[function(require,module,exports){ +},{"./directory":278,"./file":280,"actions/changedir":261,"hammerjs":7,"react":251,"react-redux":91,"store":"store","utils":"utils"}],280:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -41773,7 +42508,7 @@ var File = (function (_Component) { exports['default'] = File; module.exports = exports['default']; -},{"./mixins/entry":280,"react":250,"store":"store","utils":"utils"}],278:[function(require,module,exports){ +},{"./mixins/entry":283,"react":251,"store":"store","utils":"utils"}],281:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -41864,7 +42599,7 @@ function props(state) { } module.exports = exports['default']; -},{"actions/dialog":262,"actions/files-view":264,"actions/navigation":266,"react":250,"react-redux":90,"store":"store"}],279:[function(require,module,exports){ +},{"actions/dialog":263,"actions/files-view":265,"actions/navigation":267,"react":251,"react-redux":91,"store":"store"}],282:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -41940,7 +42675,7 @@ var Menu = (function (_Component) { exports['default'] = Menu; -},{"react":250}],280:[function(require,module,exports){ +},{"react":251}],283:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -42007,7 +42742,7 @@ exports['default'] = { }; module.exports = exports['default']; -},{"actions/file":263,"actions/menu":265,"components/menu":279,"react":250}],281:[function(require,module,exports){ +},{"actions/file":264,"actions/menu":266,"components/menu":282,"react":251}],284:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -42302,7 +43037,7 @@ function props(store) { } module.exports = exports['default']; -},{"actions/navigation":266,"actions/settings":268,"lodash/string/camelCase":83,"react":250,"react-redux":90,"store":"store"}],282:[function(require,module,exports){ +},{"actions/navigation":267,"actions/settings":269,"lodash/string/camelCase":84,"react":251,"react-redux":91,"store":"store"}],285:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -42498,7 +43233,7 @@ exports['default'] = Root; ; module.exports = exports['default']; -},{"actions/changedir":260,"actions/dialog":262,"actions/menu":265,"components/breadcrumb":273,"components/dialog":274,"components/file-list":276,"components/header":278,"components/menu":279,"components/navigation":281,"components/spinner":283,"components/toolbar":284,"react":250,"react-redux":90,"store":"store","tour":"tour"}],283:[function(require,module,exports){ +},{"actions/changedir":261,"actions/dialog":263,"actions/menu":266,"components/breadcrumb":276,"components/dialog":277,"components/file-list":279,"components/header":281,"components/menu":282,"components/navigation":284,"components/spinner":286,"components/toolbar":287,"react":251,"react-redux":91,"store":"store","tour":"tour"}],286:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -42564,7 +43299,7 @@ function props(state) { } module.exports = exports['default']; -},{"react":250,"react-redux":90}],284:[function(require,module,exports){ +},{"react":251,"react-redux":91}],287:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -42681,7 +43416,7 @@ var Toolbar = (function (_Component) { exports['default'] = Toolbar; module.exports = exports['default']; -},{"./menu":279,"actions/dialog":262,"actions/file":263,"actions/files-view":264,"actions/menu":265,"actions/settings":268,"react":250,"store":"store"}],285:[function(require,module,exports){ +},{"./menu":282,"actions/dialog":263,"actions/file":264,"actions/files-view":265,"actions/menu":266,"actions/settings":269,"react":251,"store":"store"}],288:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -42889,15 +43624,21 @@ exports['default'] = { }; module.exports = exports['default']; -},{"actions/compress":261,"actions/dialog":262,"actions/file":263,"actions/files-view":264,"react":250,"store":"store"}],286:[function(require,module,exports){ +},{"actions/compress":262,"actions/dialog":263,"actions/file":264,"actions/files-view":265,"react":251,"store":"store"}],289:[function(require,module,exports){ 'use strict'; +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _react = require('react'); var _react2 = _interopRequireDefault(_react); +var _apiFtp = require('api/ftp'); + +var ftp = _interopRequireWildcard(_apiFtp); + var _componentsRoot = require('components/root'); var _componentsRoot2 = _interopRequireDefault(_componentsRoot); @@ -42910,6 +43651,16 @@ var _reactRedux = require('react-redux'); require('./activities'); +ftp.connect({ + host: '192.168.1.76', + port: 21, + username: 'mahdi', + password: 'heater0!' +}).then(function (socket) { + window.socket = socket; + window.ftp = ftp; +}, console.error); + var wrapper = document.getElementById('wrapper'); _react2['default'].render(_react2['default'].createElement( _reactRedux.Provider, @@ -42919,7 +43670,7 @@ _react2['default'].render(_react2['default'].createElement( } ), wrapper); -},{"./activities":271,"components/root":282,"react":250,"react-redux":90,"store":"store"}],287:[function(require,module,exports){ +},{"./activities":272,"api/ftp":275,"components/root":285,"react":251,"react-redux":91,"store":"store"}],290:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -43103,7 +43854,7 @@ exports['default'] = { }; module.exports = exports['default']; -},{"actions/compress":261,"actions/dialog":262,"actions/file":263,"actions/files-view":264,"actions/menu":265,"store":"store"}],288:[function(require,module,exports){ +},{"actions/compress":262,"actions/dialog":263,"actions/file":264,"actions/files-view":265,"actions/menu":266,"store":"store"}],291:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -43124,7 +43875,7 @@ exports['default'] = function (state, action) { module.exports = exports['default']; -},{"actions/types":270}],289:[function(require,module,exports){ +},{"actions/types":271}],292:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -43214,7 +43965,7 @@ exports['default'] = function (state, action) { module.exports = exports['default']; -},{"./active-file":288,"./cwd":290,"./dialog":291,"./files":292,"./lwd":293,"./menu":294,"./navigation":295,"./pick":296,"./search":297,"./select-view":298,"./settings":299,"./spinner":300,"immutable":7}],290:[function(require,module,exports){ +},{"./active-file":291,"./cwd":293,"./dialog":294,"./files":295,"./lwd":296,"./menu":297,"./navigation":298,"./pick":299,"./search":300,"./select-view":301,"./settings":302,"./spinner":303,"immutable":8}],293:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -43225,7 +43976,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'd var _actionsTypes = require('actions/types'); -var _apiFiles = require('api/files'); +var _apiAuto = require('api/auto'); var _store = require('store'); @@ -43245,7 +43996,8 @@ exports['default'] = function (state, action) { } if (action.type === _actionsTypes.REFRESH) { - _apiFiles.CACHE[state] = null; + _apiAuto.CACHE[state] = null; + _apiAuto.FTP_CACHE[state] = null; } if (action.type === _actionsTypes.REFRESH || action.type === _actionsTypes.SETTINGS) { @@ -43259,13 +44011,13 @@ exports['default'] = function (state, action) { function changeTo(dir) { dir = (0, _utils.normalize)(dir); - (0, _apiFiles.children)(dir, true).then(function (files) { + (0, _apiAuto.children)(dir, true).then(function (files) { _store2['default'].dispatch((0, _actionsFilesView.listFiles)(files)); }, _utils.reportError); } module.exports = exports['default']; -},{"actions/files-view":264,"actions/types":270,"api/files":272,"store":"store","utils":"utils"}],291:[function(require,module,exports){ +},{"actions/files-view":265,"actions/types":271,"api/auto":273,"store":"store","utils":"utils"}],294:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -43307,13 +44059,15 @@ exports['default'] = function (state, action, id) { module.exports = exports['default']; -},{"actions/types":270,"immutable":7,"lodash/object/omit":82}],292:[function(require,module,exports){ +},{"actions/types":271,"immutable":8,"lodash/object/omit":83}],295:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _actionsTypes = require('actions/types'); @@ -43324,7 +44078,9 @@ var _jszip2 = _interopRequireDefault(_jszip); var _actionsFilesView = require('actions/files-view'); -var _apiFiles = require('api/files'); +var _apiAuto = require('api/auto'); + +var auto = _interopRequireWildcard(_apiAuto); var _actionsDialog = require('actions/dialog'); @@ -43374,7 +44130,7 @@ exports['default'] = function (state, action) { } if (action.type === _actionsTypes.CREATE_FILE) { - var fn = action.directory ? _apiFiles.createDirectory : _apiFiles.createFile; + var fn = action.directory ? auto.createDirectory : auto.createFile; fn(action.path).then(boundRefresh, _utils.reportError); return state; @@ -43383,7 +44139,7 @@ exports['default'] = function (state, action) { if (action.type === _actionsTypes.RENAME_FILE) { var all = Promise.all(action.file.map(function (file) { var cwd = _store2['default'].getState().get('cwd'); - return (0, _apiFiles.move)(file, cwd + '/' + action.name); + return auto.move(file, cwd + '/' + action.name); })); all.then(boundRefresh, _utils.reportError); @@ -43392,7 +44148,7 @@ exports['default'] = function (state, action) { if (action.type === _actionsTypes.MOVE_FILE) { var all = Promise.all(action.file.map(function (file) { - return (0, _apiFiles.move)(file, action.newPath + '/' + file.name); + return auto.move(file, action.newPath + '/' + file.name); })); all.then(boundRefresh, _utils.reportError); @@ -43401,7 +44157,7 @@ exports['default'] = function (state, action) { if (action.type === _actionsTypes.COPY_FILE) { var all = Promise.all(action.file.map(function (file) { - return (0, _apiFiles.copy)(file, action.newPath + '/' + file.name); + return auto.copy(file, action.newPath + '/' + file.name); })); all.then(boundRefresh, _utils.reportError); @@ -43411,7 +44167,7 @@ exports['default'] = function (state, action) { if (action.type === _actionsTypes.DELETE_FILE) { var all = Promise.all(action.file.map(function (file) { var path = (0, _utils.normalize)((file.path || '') + file.name); - return (0, _apiFiles.remove)(path, true); + return auto.remove(path, true); })); all.then(boundRefresh, _utils.reportError); @@ -43431,14 +44187,14 @@ exports['default'] = function (state, action) { if (!(file instanceof Blob)) { var folder = archive.folder(file.name); - return (0, _apiFiles.children)(path).then(function (files) { + return auto.children(path).then(function (files) { return Promise.all(files.map(function (child) { return addFile(child); })); }); } - return (0, _apiFiles.readFile)(path).then(function (content) { + return auto.readFile(path).then(function (content) { archive.file(archivePath, content); }); })); @@ -43450,7 +44206,7 @@ exports['default'] = function (state, action) { var cwd = _store2['default'].getState().get('cwd'); var path = (0, _utils.normalize)(cwd + '/' + action.name); console.log(path); - return (0, _apiFiles.writeFile)(path, blob); + return auto.writeFile(path, blob); }).then(boundRefresh)['catch'](_utils.reportError); return { @@ -43464,7 +44220,7 @@ exports['default'] = function (state, action) { if (action.type === _actionsTypes.DECOMPRESS) { var file = action.file[0]; var path = (0, _utils.normalize)((file.path || '') + file.name); - (0, _apiFiles.readFile)(path).then(function (content) { + auto.readFile(path).then(function (content) { var archive = new _jszip2['default'](content); var files = Object.keys(archive.files); @@ -43475,7 +44231,7 @@ exports['default'] = function (state, action) { var cwd = _store2['default'].getState().get('cwd'); var filePath = (0, _utils.normalize)(cwd + '/' + name); - return (0, _apiFiles.writeFile)(filePath, blob); + return auto.writeFile(filePath, blob); })); all.then(boundRefresh, _utils.reportError); @@ -43485,12 +44241,9 @@ exports['default'] = function (state, action) { return state; }; -function mov(file, newPath) { - return; -} module.exports = exports['default']; -},{"actions/dialog":262,"actions/files-view":264,"actions/types":270,"api/files":272,"jszip":16,"store":"store","utils":"utils"}],293:[function(require,module,exports){ +},{"actions/dialog":263,"actions/files-view":265,"actions/types":271,"api/auto":273,"jszip":17,"store":"store","utils":"utils"}],296:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -43510,7 +44263,7 @@ exports['default'] = function (state, action) { module.exports = exports['default']; -},{"actions/types":270}],294:[function(require,module,exports){ +},{"actions/types":271}],297:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -43552,7 +44305,7 @@ exports['default'] = function (state, action, id) { module.exports = exports['default']; -},{"actions/types":270,"immutable":7,"lodash/object/omit":82}],295:[function(require,module,exports){ +},{"actions/types":271,"immutable":8,"lodash/object/omit":83}],298:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -43573,7 +44326,7 @@ exports['default'] = function (state, action) { module.exports = exports['default']; -},{"actions/types":270}],296:[function(require,module,exports){ +},{"actions/types":271}],299:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -43594,7 +44347,7 @@ exports['default'] = function (state, action) { module.exports = exports['default']; -},{"actions/types":270}],297:[function(require,module,exports){ +},{"actions/types":271}],300:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -43613,7 +44366,7 @@ var _utils = require('utils'); var _actionsFilesView = require('actions/files-view'); -var _apiFiles = require('api/files'); +var _apiAuto = require('api/auto'); exports['default'] = function (state, action) { if (state === undefined) state = ''; @@ -43634,7 +44387,7 @@ exports['default'] = function (state, action) { function search(keywords) { if (!keywords) { var cwd = _store2['default'].getState().get('cwd'); - (0, _apiFiles.children)(cwd, true).then(function (files) { + (0, _apiAuto.children)(cwd, true).then(function (files) { _store2['default'].dispatch((0, _actionsFilesView.listFiles)(files)); }, _utils.reportError); return ''; @@ -43646,7 +44399,7 @@ function search(keywords) { // We don't want to show all the currently visible files from the // first iteration var once = true; - (0, _apiFiles.children)('', true).then(function showResults(files) { + (0, _apiAuto.children)('', true).then(function showResults(files) { if (!_store2['default'].getState().get('search')) return; var current = once ? [] : _store2['default'].getState().get('files'); @@ -43655,7 +44408,7 @@ function search(keywords) { var filtered = files.filter(function (file) { if ((0, _utils.type)(file) === 'Directory') { var path = (0, _utils.normalize)(file.path + file.name); - (0, _apiFiles.children)(path, true).then(showResults, _utils.reportError); + (0, _apiAuto.children)(path, true).then(showResults, _utils.reportError); } return keys.some(function (key) { return file.name.toLowerCase().indexOf(key) > -1; @@ -43668,7 +44421,7 @@ function search(keywords) { } module.exports = exports['default']; -},{"actions/files-view":264,"actions/types":270,"api/files":272,"store":"store","utils":"utils"}],298:[function(require,module,exports){ +},{"actions/files-view":265,"actions/types":271,"api/auto":273,"store":"store","utils":"utils"}],301:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -43689,7 +44442,7 @@ exports['default'] = function (state, action) { module.exports = exports['default']; -},{"actions/types":270}],299:[function(require,module,exports){ +},{"actions/types":271}],302:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -43726,7 +44479,7 @@ exports['default'] = function (state, action) { module.exports = exports['default']; -},{"actions/types":270,"lodash/object/omit":82}],300:[function(require,module,exports){ +},{"actions/types":271,"lodash/object/omit":83}],303:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -43766,7 +44519,7 @@ exports['default'] = function (state, action) { module.exports = exports['default']; -},{"actions/types":270}],"store":[function(require,module,exports){ +},{"actions/types":271}],"store":[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -43815,7 +44568,7 @@ exports['default'] = store; store.dispatch((0, _actionsChangedir2['default'])(DEFAULT.get('dir'))); -},{"./dialogs":285,"./menus":287,"actions/changedir":260,"immutable":7,"reducers/all":289,"redux":252}],"tour":[function(require,module,exports){ +},{"./dialogs":288,"./menus":290,"actions/changedir":261,"immutable":8,"reducers/all":292,"redux":253}],"tour":[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -44051,4 +44804,4 @@ function humanSize(size) { } } -},{"actions/dialog":262,"store":"store"}]},{},[260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,"store","tour","utils"]); +},{"actions/dialog":263,"store":"store"}]},{},[261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,"store","tour","utils"]); diff --git a/build/manifest.webapp b/build/manifest.webapp index 88e90d1..6d90cdb 100644 --- a/build/manifest.webapp +++ b/build/manifest.webapp @@ -30,6 +30,9 @@ "device-storage:music": { "access": "readwrite", "description": "We need access to your files in order to give you the functionality of listing, reading, opening and writing files in your storage" + }, + "tcp-socket": { + "description": "FTP Browser: Used to connect to FTP servers" } }, "installs_allowed_from": [ diff --git a/src/js/api/auto.js b/src/js/api/auto.js new file mode 100644 index 0000000..8a268ae --- /dev/null +++ b/src/js/api/auto.js @@ -0,0 +1,14 @@ +import * as ftp from './ftp'; +import * as files from './files'; + +['getFile', 'children', 'isDirectory', 'readFile', 'writeFile', + 'createFile', 'createDirectory', 'remove', 'move', 'copy'].forEach(method => { + exports[method] = (...args) => { + return window.ftpMode ? ftp[method](...args) : files[method](...args); + } + }); + +let CACHE = files.CACHE; +let FTP_CACHE = ftp.FTP_CACHE; + +export { CACHE, FTP_CACHE }; diff --git a/src/js/api/files.js b/src/js/api/files.js index 7a931eb..1446305 100644 --- a/src/js/api/files.js +++ b/src/js/api/files.js @@ -34,7 +34,14 @@ export async function getFile(dir = '/') { if (dir === '/' || !dir) return parent; - return await parent.get(normalize(dir)); + let file = await parent.get(normalize(dir)); + + Object.defineProperty(file, 'type', { + value: type(file), + enumerable: true + }); + + return file; } export async function children(dir, gatherInfo) { @@ -46,9 +53,16 @@ export async function children(dir, gatherInfo) { } let childs = await parent.getFilesAndDirectories(); + for (let child of childs) { + Object.defineProperty(child, 'type', { + value: type(child), + enumerable: true + }); + } + if (gatherInfo && !window.needsShim) { for (let child of childs) { - if (type(child) === 'Directory') { + if (child.type === 'Directory') { let subchildren; try { subchildren = await shimDirectory(child).getFilesAndDirectories(); diff --git a/src/js/api/ftp.js b/src/js/api/ftp.js new file mode 100644 index 0000000..453e7d6 --- /dev/null +++ b/src/js/api/ftp.js @@ -0,0 +1,267 @@ +import { refresh } from 'actions/files-view'; +import { bind } from 'store'; +import Eventconnection from 'events'; +import { humanSize, reportError, normalize, type } from 'utils'; + +export let FTP_CACHE = {}; +let socket; +let connection = new Eventconnection(); +connection.setMaxListeners(99); +let wd = ''; +let currentRequest; +let queue = 0; + +export async function connect(properties = {}) { + let { host, port, username, password } = properties; + + let url = encodeURI(host); + socket = navigator.mozTCPSocket.open(url, port); + + socket.ondata = e => { + console.log('<', e.data); + connection.emit('data', e.data); + } + + socket.onerror = e => { + connection.emit('error', e.data); + } + + socket.onclose = e => { + connection.emit('close', e.data); + } + + return new Promise((resolve, reject) => { + socket.onopen = () => { + send(`USER ${username}`); + send(`PASS ${password}`); + resolve(socket); + + window.ftpMode = true; + } + + socket.onerror = reject; + socket.onclose = reject; + }); +} + +export async function disconnect() { + socket.close(); + window.ftpMode = false; +} + +export function listen(ev, fn) { + socket.listen(ev, fn); +} + +export function send(command, ...args) { + args = args.filter(arg => arg); + let cmd = command + (args.length ? ' ' : '') + args.join(' '); + + console.log('>', cmd); + socket.send(cmd + '\n'); +} + +export async function cwd(dir = '') { + send('CWD', dir); + wd = dir; +} + +const PWD_REGEX = /257 "(.*)"/; +export async function pwd() { + return new Promise((resolve, reject) => { + connection.on('data', function listener(data) { + if (data.indexOf('current directory') === -1) return; + let dir = data.match(PWD_REGEX)[1]; + resolve(normalize(dir)); + + connection.removeListener('data', listener); + }); + send('PWD'); + }); +} + +export async function pasv() { + return new Promise((resolve, reject) => { + connection.on('data', function listener(data) { + if (data.indexOf('Passive') === -1) return; + + // format: |||port| + let port = parseInt(data.match(/\|{3}(\d+)\|/)[1]); + + connection.removeListener('data', listener); + + return resolve(port); + }); + + send('EPSV'); + }); +} + +const LIST_EXTRACTOR = /(.*?)\s+(\d+)\s+(\w+)\s+(\w+)\s+(\w+)\s+(\w+)\s+(\d+)\s+(\d+:?\d+)+\s+(.*)/; +export async function list(dir = '') { + return pasv().then(port => { + return secondary({ host: socket.host, port }).then(({data}) => { + send('LIST', dir); + + return data.then(items => { + return items.split('\n').map(item => { + if (item.indexOf('total') > -1 || !item) return; + + let match = item.match(LIST_EXTRACTOR); + + return { + path: normalize(wd) + '/', + type: match[1][0] === 'd' ? 'Directory' : 'File', + permissions: match[1].slice(1), + links: +match[2], + owner: match[3], + group: match[4], + size: +match[5], + lastModification: { + month: match[6], + day: match[7], + time: match[8] + }, + name: match[9] + } + }).filter(item => item); + }, reportError) + }); + }); +} + +export async function namelist(dir = '') { + return pasv().then(port => { + return secondary({ host: socket.host, port }).then(({data}) => { + send('NLST', dir); + + return data.then(names => names.split('\n'), reportError); + }); + }) +} + +export async function secondary(properties = {}) { + let { host, port } = properties; + + let url = encodeURI(host); + + return new Promise((resolve, reject) => { + let alt = navigator.mozTCPSocket.open(url, port); + + alt.onopen = () => { + let data = new Promise((resolve, reject) => { + alt.ondata = e => { + resolve(e.data); + } + alt.onerror = e => { + reject(e.data); + } + alt.onclose = e => { + resolve(''); + } + }); + resolve({data}); + } + }) +} + +export async function secondaryWrite(properties = {}, content) { + let { host, port } = properties; + + let url = encodeURI(host); + + return new Promise((resolve, reject) => { + let alt = navigator.mozTCPSocket.open(url, port); + + alt.onopen = () => { + alt.send(content); + + setImmediate(() => { + alt.close(); + }) + } + + alt.onclose = () => { + resolve(); + } + }) +} + +export async function children(dir = '', gatherInfo) { + dir = normalize(dir); + if (FTP_CACHE[dir]) return FTP_CACHE[dir]; + + let childs = gatherInfo ? await list(dir) : await namelist(); + + FTP_CACHE[dir] = childs; + + return childs; +} + +export async function getFile(path = '') { + path = normalize(path); + + let ls = await list(path); + + return ls[0]; +} + +export async function isDirectory(path = '') { + return (await getFile(path)).type === 'Directory'; +} + +export async function readFile(path = '') { + path = normalize(path); + + return pasv().then(port => { + return secondary({ host: socket.host, port }).then(({data}) => { + send('RETR', path); + + return data; + }); + }).catch(reportError); +} + +export async function writeFile(path = '', content) { + path = normalize(path); + + return pasv().then(port => { + send('STOR', path); + return secondaryWrite({ host: socket.host, port }, content).then(() => { + }) + }).catch(reportError); +} + +export async function createFile(path = '') { + return writeFile(path, ''); +} + +export async function createDirectory(path = '') { + path = normalize(path); + + send('MKD', path); +} + +export async function remove(path = '') { + path = normalize(path); + + send('RMD', path); + send('DELE', path); +} + +export async function move(path = '', newPath = '') { + path = normalize(path); + newPath = normalize(newPath); + + send('RNFR', path); + send('RNTO', newPath); +} + +export async function copy(path = '', newPath = '') { + path = normalize(path); + newPath = normalize(newPath); + + let content = await readFile(path); + + return writeFile(newPath, content); +} diff --git a/src/js/components/file-list.js b/src/js/components/file-list.js index a4b6f31..c5600b3 100644 --- a/src/js/components/file-list.js +++ b/src/js/components/file-list.js @@ -20,7 +20,7 @@ export default class FileList extends Component { let els = files.map((file, index) => { let selected = activeFile.indexOf(file) > -1; - if (type(file) === 'File') { + if (file.type === 'File') { return ; } else { return @@ -59,10 +59,3 @@ function props(state) { view: state.get('settings').view || 'list' } } - -async function getFiles(dir) { - let storage = navigator.getDeviceStorage('sdcard'); - let root = await storage.get(dir); - - return await root.getFilesAndDirectories(); -} diff --git a/src/js/main.js b/src/js/main.js index b9a422f..6ec8c23 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -1,8 +1,19 @@ import React from 'react'; +import * as ftp from 'api/ftp'; import Root from 'components/root'; import store from 'store'; import { Provider } from 'react-redux'; import './activities'; +ftp.connect({ + host: '192.168.1.76', + port: 21, + username: 'mahdi', + password: 'heater0!' +}).then(socket => { + window.socket = socket; + window.ftp = ftp; +}, console.error) + let wrapper = document.getElementById('wrapper'); React.render({() => }, wrapper); diff --git a/src/js/reducers/cwd.js b/src/js/reducers/cwd.js index 4016eb7..a5cd3b8 100644 --- a/src/js/reducers/cwd.js +++ b/src/js/reducers/cwd.js @@ -1,5 +1,5 @@ import { CHANGE_DIRECTORY, REFRESH, SETTINGS } from 'actions/types'; -import { children, CACHE } from 'api/files'; +import { children, CACHE, FTP_CACHE } from 'api/auto'; import store from 'store'; import { reportError, normalize } from 'utils'; import { listFiles } from 'actions/files-view'; @@ -13,6 +13,7 @@ export default function(state = '', action) { if (action.type === REFRESH) { CACHE[state] = null; + FTP_CACHE[state] = null; } if (action.type === REFRESH || action.type === SETTINGS) { diff --git a/src/js/reducers/files.js b/src/js/reducers/files.js index 4405a7b..8384050 100644 --- a/src/js/reducers/files.js +++ b/src/js/reducers/files.js @@ -1,7 +1,7 @@ import { LIST_FILES, RENAME_FILE, DELETE_FILE, CREATE_FILE, MOVE_FILE, COPY_FILE, SEARCH, COMPRESS, DECOMPRESS } from 'actions/types'; import zip from 'jszip'; import { refresh } from 'actions/files-view'; -import { move, remove, sdcard, createFile, readFile, writeFile, createDirectory, getFile, copy, children } from 'api/files'; +import * as auto from 'api/auto'; import { show } from 'actions/dialog'; import store, { bind } from 'store'; import { reportError, type, normalize } from 'utils'; @@ -39,7 +39,7 @@ export default function(state = [], action) { } if (action.type === CREATE_FILE) { - let fn = action.directory ? createDirectory : createFile; + let fn = action.directory ? auto.createDirectory : auto.createFile; fn(action.path).then(boundRefresh, reportError); return state; @@ -48,7 +48,7 @@ export default function(state = [], action) { if (action.type === RENAME_FILE) { let all = Promise.all(action.file.map(file => { let cwd = store.getState().get('cwd'); - return move(file, cwd + '/' + action.name); + return auto.move(file, cwd + '/' + action.name); })); all.then(boundRefresh, reportError); @@ -57,7 +57,7 @@ export default function(state = [], action) { if (action.type === MOVE_FILE) { let all = Promise.all(action.file.map(file => { - return move(file, action.newPath + '/' + file.name); + return auto.move(file, action.newPath + '/' + file.name); })); all.then(boundRefresh, reportError); @@ -66,7 +66,7 @@ export default function(state = [], action) { if (action.type === COPY_FILE) { let all = Promise.all(action.file.map(file => { - return copy(file, action.newPath + '/' + file.name); + return auto.copy(file, action.newPath + '/' + file.name); })); all.then(boundRefresh, reportError); @@ -76,7 +76,7 @@ export default function(state = [], action) { if (action.type === DELETE_FILE) { let all = Promise.all(action.file.map(file => { let path = normalize((file.path || '') + file.name); - return remove(path, true); + return auto.remove(path, true); })) all.then(boundRefresh, reportError); @@ -95,14 +95,14 @@ export default function(state = [], action) { if (!(file instanceof Blob)) { let folder = archive.folder(file.name); - return children(path).then(files => { + return auto.children(path).then(files => { return Promise.all(files.map(child => { return addFile(child); })); }); } - return readFile(path).then(content => { + return auto.readFile(path).then(content => { archive.file(archivePath, content); }); })) @@ -114,7 +114,7 @@ export default function(state = [], action) { let cwd = store.getState().get('cwd'); let path = normalize(cwd + '/' + action.name); console.log(path); - return writeFile(path, blob); + return auto.writeFile(path, blob); }).then(boundRefresh).catch(reportError); return state; @@ -123,7 +123,7 @@ export default function(state = [], action) { if (action.type === DECOMPRESS) { let file = action.file[0]; let path = normalize((file.path || '') + file.name); - readFile(path).then(content => { + auto.readFile(path).then(content => { let archive = new zip(content); let files = Object.keys(archive.files); @@ -134,7 +134,7 @@ export default function(state = [], action) { let cwd = store.getState().get('cwd'); let filePath = normalize(cwd + '/' + name); - return writeFile(filePath, blob); + return auto.writeFile(filePath, blob); })); all.then(boundRefresh, reportError); @@ -143,7 +143,3 @@ export default function(state = [], action) { return state; } - -function mov(file, newPath) { - return -} diff --git a/src/js/reducers/search.js b/src/js/reducers/search.js index 47c250f..acb33b2 100644 --- a/src/js/reducers/search.js +++ b/src/js/reducers/search.js @@ -2,7 +2,7 @@ import { SEARCH, CHANGE_DIRECTORY, REFRESH } from 'actions/types'; import store from 'store'; import { reportError } from 'utils'; import { listFiles } from 'actions/files-view'; -import { children } from 'api/files'; +import { children } from 'api/auto'; import { type, normalize } from 'utils'; export default function(state = '', action) { diff --git a/src/manifest.webapp b/src/manifest.webapp index 88e90d1..6d90cdb 100644 --- a/src/manifest.webapp +++ b/src/manifest.webapp @@ -30,6 +30,9 @@ "device-storage:music": { "access": "readwrite", "description": "We need access to your files in order to give you the functionality of listing, reading, opening and writing files in your storage" + }, + "tcp-socket": { + "description": "FTP Browser: Used to connect to FTP servers" } }, "installs_allowed_from": [