UNPKG

react-proxy

Version:

Proxies React components without unmounting or losing their state.

1,703 lines (1,417 loc) 93.5 kB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(); else if(typeof define === 'function' && define.amd) define(factory); else if(typeof exports === 'object') exports["ReactProxy"] = factory(); else root["ReactProxy"] = factory(); })(this, function() { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) /******/ return installedModules[moduleId].exports; /******/ /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ exports: {}, /******/ id: moduleId, /******/ loaded: false /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.loaded = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(0); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = undefined; var _supportsProtoAssignment = __webpack_require__(31); var _supportsProtoAssignment2 = _interopRequireDefault(_supportsProtoAssignment); var _createClassProxy = __webpack_require__(47); var _createClassProxy2 = _interopRequireDefault(_createClassProxy); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } if (!(0, _supportsProtoAssignment2.default)()) { console.warn('This JavaScript environment does not support __proto__. ' + 'This means that react-proxy is unable to proxy React components. ' + 'Features that rely on react-proxy, such as react-transform-hmr, ' + 'will not function as expected.'); } exports.default = _createClassProxy2.default; /***/ }, /* 1 */ /***/ function(module, exports, __webpack_require__) { module.exports = function(it){ return typeof it === 'object' ? it !== null : typeof it === 'function'; }; /***/ }, /* 2 */ /***/ function(module, exports, __webpack_require__) { var hasOwnProperty = {}.hasOwnProperty; module.exports = function(it, key){ return hasOwnProperty.call(it, key); }; /***/ }, /* 3 */ /***/ function(module, exports, __webpack_require__) { var store = __webpack_require__(42)('wks') , uid = __webpack_require__(27) , Symbol = __webpack_require__(5).Symbol , USE_SYMBOL = typeof Symbol == 'function'; module.exports = function(name){ return store[name] || (store[name] = USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); }; /***/ }, /* 4 */ /***/ function(module, exports, __webpack_require__) { var isObject = __webpack_require__(1); module.exports = function(it){ if(!isObject(it))throw TypeError(it + ' is not an object!'); return it; }; /***/ }, /* 5 */ /***/ function(module, exports, __webpack_require__) { // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 var global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef /***/ }, /* 6 */ /***/ function(module, exports, __webpack_require__) { var dP = __webpack_require__(10) , createDesc = __webpack_require__(39); module.exports = __webpack_require__(8) ? function(object, key, value){ return dP.f(object, key, createDesc(1, value)); } : function(object, key, value){ object[key] = value; return object; }; /***/ }, /* 7 */ /***/ function(module, exports, __webpack_require__) { /** * 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('')`) * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an object, else `false`. * @example * * _.isObject({}); * // => true * * _.isObject([1, 2, 3]); * // => true * * _.isObject(1); * // => false */ function isObject(value) { // Avoid a V8 JIT bug in Chrome 19-20. // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. var type = typeof value; return !!value && (type == 'object' || type == 'function'); } module.exports = isObject; /***/ }, /* 8 */ /***/ function(module, exports, __webpack_require__) { // Thank's IE8 for his funny defineProperty module.exports = !__webpack_require__(9)(function(){ return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; }); /***/ }, /* 9 */ /***/ function(module, exports, __webpack_require__) { module.exports = function(exec){ try { return !!exec(); } catch(e){ return true; } }; /***/ }, /* 10 */ /***/ function(module, exports, __webpack_require__) { var anObject = __webpack_require__(4) , IE8_DOM_DEFINE = __webpack_require__(59) , toPrimitive = __webpack_require__(75) , dP = Object.defineProperty; exports.f = __webpack_require__(8) ? Object.defineProperty : function defineProperty(O, P, Attributes){ anObject(O); P = toPrimitive(P, true); anObject(Attributes); if(IE8_DOM_DEFINE)try { return dP(O, P, Attributes); } catch(e){ /* empty */ } if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); if('value' in Attributes)O[P] = Attributes.value; return O; }; /***/ }, /* 11 */ /***/ function(module, exports, __webpack_require__) { var getLength = __webpack_require__(95), isLength = __webpack_require__(15); /** * Checks if `value` is array-like. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is array-like, else `false`. */ function isArrayLike(value) { return value != null && isLength(getLength(value)); } module.exports = isArrayLike; /***/ }, /* 12 */ /***/ function(module, exports, __webpack_require__) { /** * Checks if `value` is object-like. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is object-like, else `false`. */ function isObjectLike(value) { return !!value && typeof value == 'object'; } module.exports = isObjectLike; /***/ }, /* 13 */ /***/ function(module, exports, __webpack_require__) { module.exports = {}; /***/ }, /* 14 */ /***/ function(module, exports, __webpack_require__) { var isNative = __webpack_require__(100); /** * Gets the native function at `key` of `object`. * * @private * @param {Object} object The object to query. * @param {string} key The key of the method to get. * @returns {*} Returns the function if it's native, else `undefined`. */ function getNative(object, key) { var value = object == null ? undefined : object[key]; return isNative(value) ? value : undefined; } module.exports = getNative; /***/ }, /* 15 */ /***/ function(module, exports, __webpack_require__) { /** * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) * of an array-like value. */ var MAX_SAFE_INTEGER = 9007199254740991; /** * Checks if `value` is a valid array-like length. * * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. */ function isLength(value) { return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; } module.exports = isLength; /***/ }, /* 16 */ /***/ function(module, exports, __webpack_require__) { // 0 -> Array#forEach // 1 -> Array#map // 2 -> Array#filter // 3 -> Array#some // 4 -> Array#every // 5 -> Array#find // 6 -> Array#findIndex var ctx = __webpack_require__(19) , IObject = __webpack_require__(20) , toObject = __webpack_require__(26) , toLength = __webpack_require__(25) , asc = __webpack_require__(54); module.exports = function(TYPE, $create){ var IS_MAP = TYPE == 1 , IS_FILTER = TYPE == 2 , IS_SOME = TYPE == 3 , IS_EVERY = TYPE == 4 , IS_FIND_INDEX = TYPE == 6 , NO_HOLES = TYPE == 5 || IS_FIND_INDEX , create = $create || asc; return function($this, callbackfn, that){ var O = toObject($this) , self = IObject(O) , f = ctx(callbackfn, that, 3) , length = toLength(self.length) , index = 0 , result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined , val, res; for(;length > index; index++)if(NO_HOLES || index in self){ val = self[index]; res = f(val, index, O); if(TYPE){ if(IS_MAP)result[index] = res; // map else if(res)switch(TYPE){ case 3: return true; // some case 5: return val; // find case 6: return index; // findIndex case 2: result.push(val); // filter } else if(IS_EVERY)return false; // every } } return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result; }; }; /***/ }, /* 17 */ /***/ function(module, exports, __webpack_require__) { var toString = {}.toString; module.exports = function(it){ return toString.call(it).slice(8, -1); }; /***/ }, /* 18 */ /***/ function(module, exports, __webpack_require__) { var core = module.exports = {version: '2.1.3'}; if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef /***/ }, /* 19 */ /***/ function(module, exports, __webpack_require__) { // optional / simple context binding var aFunction = __webpack_require__(51); module.exports = function(fn, that, length){ aFunction(fn); if(that === undefined)return fn; switch(length){ case 1: return function(a){ return fn.call(that, a); }; case 2: return function(a, b){ return fn.call(that, a, b); }; case 3: return function(a, b, c){ return fn.call(that, a, b, c); }; } return function(/* ...args */){ return fn.apply(that, arguments); }; }; /***/ }, /* 20 */ /***/ function(module, exports, __webpack_require__) { // fallback for non-array-like ES3 and non-enumerable old V8 strings var cof = __webpack_require__(17); module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ return cof(it) == 'String' ? it.split('') : Object(it); }; /***/ }, /* 21 */ /***/ function(module, exports, __webpack_require__) { var META = __webpack_require__(27)('meta') , isObject = __webpack_require__(1) , has = __webpack_require__(2) , setDesc = __webpack_require__(10).f , id = 0; var isExtensible = Object.isExtensible || function(){ return true; }; var FREEZE = !__webpack_require__(9)(function(){ return isExtensible(Object.preventExtensions({})); }); var setMeta = function(it){ setDesc(it, META, {value: { i: 'O' + ++id, // object ID w: {} // weak collections IDs }}); }; var fastKey = function(it, create){ // return primitive with prefix if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; if(!has(it, META)){ // can't set metadata to uncaught frozen object if(!isExtensible(it))return 'F'; // not necessary to add metadata if(!create)return 'E'; // add missing metadata setMeta(it); // return object ID } return it[META].i; }; var getWeak = function(it, create){ if(!has(it, META)){ // can't set metadata to uncaught frozen object if(!isExtensible(it))return true; // not necessary to add metadata if(!create)return false; // add missing metadata setMeta(it); // return hash weak collections IDs } return it[META].w; }; // add metadata on freeze-family methods calling var onFreeze = function(it){ if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it); return it; }; var meta = module.exports = { KEY: META, NEED: false, fastKey: fastKey, getWeak: getWeak, onFreeze: onFreeze }; /***/ }, /* 22 */ /***/ function(module, exports, __webpack_require__) { var def = __webpack_require__(10).f , has = __webpack_require__(2) , TAG = __webpack_require__(3)('toStringTag'); module.exports = function(it, tag, stat){ if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag}); }; /***/ }, /* 23 */ /***/ function(module, exports, __webpack_require__) { var shared = __webpack_require__(42)('keys') , uid = __webpack_require__(27); module.exports = function(key){ return shared[key] || (shared[key] = uid(key)); }; /***/ }, /* 24 */ /***/ function(module, exports, __webpack_require__) { // to indexed object, toObject with fallback for non-array-like ES3 strings var IObject = __webpack_require__(20) , defined = __webpack_require__(33); module.exports = function(it){ return IObject(defined(it)); }; /***/ }, /* 25 */ /***/ function(module, exports, __webpack_require__) { // 7.1.15 ToLength var toInteger = __webpack_require__(43) , min = Math.min; module.exports = function(it){ return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 }; /***/ }, /* 26 */ /***/ function(module, exports, __webpack_require__) { // 7.1.13 ToObject(argument) var defined = __webpack_require__(33); module.exports = function(it){ return Object(defined(it)); }; /***/ }, /* 27 */ /***/ function(module, exports, __webpack_require__) { var id = 0 , px = Math.random(); module.exports = function(key){ return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); }; /***/ }, /* 28 */ /***/ function(module, exports, __webpack_require__) { /** Used to detect unsigned integer values. */ var reIsUint = /^\d+$/; /** * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) * of an array-like value. */ var MAX_SAFE_INTEGER = 9007199254740991; /** * Checks if `value` is a valid array-like index. * * @private * @param {*} value The value to check. * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. */ function isIndex(value, length) { value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1; length = length == null ? MAX_SAFE_INTEGER : length; return value > -1 && value % 1 == 0 && value < length; } module.exports = isIndex; /***/ }, /* 29 */ /***/ function(module, exports, __webpack_require__) { var isArrayLike = __webpack_require__(11), isObjectLike = __webpack_require__(12); /** Used for native method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** Native method references. */ var propertyIsEnumerable = objectProto.propertyIsEnumerable; /** * Checks if `value` is classified as an `arguments` object. * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. * @example * * _.isArguments(function() { return arguments; }()); * // => true * * _.isArguments([1, 2, 3]); * // => false */ function isArguments(value) { return isObjectLike(value) && isArrayLike(value) && hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee'); } module.exports = isArguments; /***/ }, /* 30 */ /***/ function(module, exports, __webpack_require__) { var getNative = __webpack_require__(14), isLength = __webpack_require__(15), isObjectLike = __webpack_require__(12); /** `Object#toString` result references. */ var arrayTag = '[object Array]'; /** Used for native method references. */ var objectProto = Object.prototype; /** * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) * of values. */ var objToString = objectProto.toString; /* Native method references for those with the same name as other `lodash` methods. */ var nativeIsArray = getNative(Array, 'isArray'); /** * Checks if `value` is classified as an `Array` object. * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. * @example * * _.isArray([1, 2, 3]); * // => true * * _.isArray(function() { return arguments; }()); * // => false */ var isArray = nativeIsArray || function(value) { return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag; }; module.exports = isArray; /***/ }, /* 31 */ /***/ function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = supportsProtoAssignment; const x = {}; const y = { supports: true }; try { x.__proto__ = y; } catch (err) {} function supportsProtoAssignment() { return x.supports || false; }; /***/ }, /* 32 */ /***/ function(module, exports, __webpack_require__) { module.exports = function(it, Constructor, name, forbiddenField){ if(!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)){ throw TypeError(name + ': incorrect invocation!'); } return it; }; /***/ }, /* 33 */ /***/ function(module, exports, __webpack_require__) { // 7.2.1 RequireObjectCoercible(argument) module.exports = function(it){ if(it == undefined)throw TypeError("Can't call method on " + it); return it; }; /***/ }, /* 34 */ /***/ function(module, exports, __webpack_require__) { var isObject = __webpack_require__(1) , document = __webpack_require__(5).document // in old IE typeof document.createElement is 'object' , is = isObject(document) && isObject(document.createElement); module.exports = function(it){ return is ? document.createElement(it) : {}; }; /***/ }, /* 35 */ /***/ function(module, exports, __webpack_require__) { // IE 8- don't enum bug keys module.exports = ( 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' ).split(','); /***/ }, /* 36 */ /***/ function(module, exports, __webpack_require__) { var global = __webpack_require__(5) , core = __webpack_require__(18) , ctx = __webpack_require__(19) , hide = __webpack_require__(6) , PROTOTYPE = 'prototype'; var $export = function(type, name, source){ var IS_FORCED = type & $export.F , IS_GLOBAL = type & $export.G , IS_STATIC = type & $export.S , IS_PROTO = type & $export.P , IS_BIND = type & $export.B , IS_WRAP = type & $export.W , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) , expProto = exports[PROTOTYPE] , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] , key, own, out; if(IS_GLOBAL)source = name; for(key in source){ // contains in native own = !IS_FORCED && target && target[key] !== undefined; if(own && key in exports)continue; // export native or passed out = own ? target[key] : source[key]; // prevent global pollution for namespaces exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] // bind timers to global for call from export context : IS_BIND && own ? ctx(out, global) // wrap global constructors for prevent change them in library : IS_WRAP && target[key] == out ? (function(C){ var F = function(a, b, c){ if(this instanceof C){ switch(arguments.length){ case 0: return new C; case 1: return new C(a); case 2: return new C(a, b); } return new C(a, b, c); } return C.apply(this, arguments); }; F[PROTOTYPE] = C[PROTOTYPE]; return F; // make static versions for prototype methods })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% if(IS_PROTO){ (exports.virtual || (exports.virtual = {}))[key] = out; // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); } } }; // type bitmap $export.F = 1; // forced $export.G = 2; // global $export.S = 4; // static $export.P = 8; // proto $export.B = 16; // bind $export.W = 32; // wrap $export.U = 64; // safe $export.R = 128; // real proto method for `library` module.exports = $export; /***/ }, /* 37 */ /***/ function(module, exports, __webpack_require__) { var ctx = __webpack_require__(19) , call = __webpack_require__(62) , isArrayIter = __webpack_require__(60) , anObject = __webpack_require__(4) , toLength = __webpack_require__(25) , getIterFn = __webpack_require__(76); module.exports = function(iterable, entries, fn, that, ITERATOR){ var iterFn = ITERATOR ? function(){ return iterable; } : getIterFn(iterable) , f = ctx(fn, that, entries ? 2 : 1) , index = 0 , length, step, iterator; if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!'); // fast case for arrays with default iterator if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){ entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); } else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){ call(iterator, f, step.value, entries); } }; /***/ }, /* 38 */ /***/ function(module, exports, __webpack_require__) { // 19.1.2.14 / 15.2.3.14 Object.keys(O) var $keys = __webpack_require__(72) , enumBugKeys = __webpack_require__(35); module.exports = Object.keys || function keys(O){ return $keys(O, enumBugKeys); }; /***/ }, /* 39 */ /***/ function(module, exports, __webpack_require__) { module.exports = function(bitmap, value){ return { enumerable : !(bitmap & 1), configurable: !(bitmap & 2), writable : !(bitmap & 4), value : value }; }; /***/ }, /* 40 */ /***/ function(module, exports, __webpack_require__) { var hide = __webpack_require__(6); module.exports = function(target, src, safe){ for(var key in src){ if(safe && target[key])target[key] = src[key]; else hide(target, key, src[key]); } return target; }; /***/ }, /* 41 */ /***/ function(module, exports, __webpack_require__) { module.exports = __webpack_require__(6); /***/ }, /* 42 */ /***/ function(module, exports, __webpack_require__) { var global = __webpack_require__(5) , SHARED = '__core-js_shared__' , store = global[SHARED] || (global[SHARED] = {}); module.exports = function(key){ return store[key] || (store[key] = {}); }; /***/ }, /* 43 */ /***/ function(module, exports, __webpack_require__) { // 7.1.4 ToInteger var ceil = Math.ceil , floor = Math.floor; module.exports = function(it){ return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); }; /***/ }, /* 44 */ /***/ function(module, exports, __webpack_require__) { /** Used as the `TypeError` message for "Functions" methods. */ var FUNC_ERROR_TEXT = 'Expected a function'; /* Native method references for those with the same name as other `lodash` methods. */ var nativeMax = Math.max; /** * Creates a function that invokes `func` with the `this` binding of the * created function and arguments from `start` and beyond provided as an array. * * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/Web/JavaScript/Reference/Functions/rest_parameters). * * @static * @memberOf _ * @category Function * @param {Function} func The function to apply a rest parameter to. * @param {number} [start=func.length-1] The start position of the rest parameter. * @returns {Function} Returns the new function. * @example * * var say = _.restParam(function(what, names) { * return what + ' ' + _.initial(names).join(', ') + * (_.size(names) > 1 ? ', & ' : '') + _.last(names); * }); * * say('hello', 'fred', 'barney', 'pebbles'); * // => 'hello fred, barney, & pebbles' */ function restParam(func, start) { if (typeof func != 'function') { throw new TypeError(FUNC_ERROR_TEXT); } start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0); return function() { var args = arguments, index = -1, length = nativeMax(args.length - start, 0), rest = Array(length); while (++index < length) { rest[index] = args[start + index]; } switch (start) { case 0: return func.call(this, rest); case 1: return func.call(this, args[0], rest); case 2: return func.call(this, args[0], args[1], rest); } var otherArgs = Array(start + 1); index = -1; while (++index < start) { otherArgs[index] = args[index]; } otherArgs[start] = rest; return func.apply(this, otherArgs); }; } module.exports = restParam; /***/ }, /* 45 */ /***/ function(module, exports, __webpack_require__) { var getNative = __webpack_require__(14), isArrayLike = __webpack_require__(11), isObject = __webpack_require__(7), shimKeys = __webpack_require__(98); /* Native method references for those with the same name as other `lodash` methods. */ var nativeKeys = getNative(Object, 'keys'); /** * Creates an array of the own enumerable property names of `object`. * * **Note:** Non-object values are coerced to objects. See the * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys) * for more details. * * @static * @memberOf _ * @category Object * @param {Object} object The object to query. * @returns {Array} Returns the array of property names. * @example * * function Foo() { * this.a = 1; * this.b = 2; * } * * Foo.prototype.c = 3; * * _.keys(new Foo); * // => ['a', 'b'] (iteration order is not guaranteed) * * _.keys('hi'); * // => ['0', '1'] */ var keys = !nativeKeys ? shimKeys : function(object) { var Ctor = object == null ? undefined : object.constructor; if ((typeof Ctor == 'function' && Ctor.prototype === object) || (typeof object != 'function' && isArrayLike(object))) { return shimKeys(object); } return isObject(object) ? nativeKeys(object) : []; }; module.exports = keys; /***/ }, /* 46 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = bindAutoBindMethods; /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of React source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * Original: * https://github.com/facebook/react/blob/6508b1ad273a6f371e8d90ae676e5390199461b4/src/isomorphic/classic/class/ReactClass.js#L650-L713 */ function bindAutoBindMethod(component, method) { var boundMethod = method.bind(component); boundMethod.__reactBoundContext = component; boundMethod.__reactBoundMethod = method; boundMethod.__reactBoundArguments = null; var componentName = component.constructor.displayName, _bind = boundMethod.bind; boundMethod.bind = function (newThis) { var args = Array.prototype.slice.call(arguments, 1); if (newThis !== component && newThis !== null) { console.warn('bind(): React component methods may only be bound to the ' + 'component instance. See ' + componentName); } else if (!args.length) { console.warn('bind(): You are binding a component method to the component. ' + 'React does this for you automatically in a high-performance ' + 'way, so you can safely remove this call. See ' + componentName); return boundMethod; } var reboundMethod = _bind.apply(boundMethod, arguments); reboundMethod.__reactBoundContext = component; reboundMethod.__reactBoundMethod = method; reboundMethod.__reactBoundArguments = args; return reboundMethod; }; return boundMethod; } function bindAutoBindMethodsFromMap(component) { for (var autoBindKey in component.__reactAutoBindMap) { if (!component.__reactAutoBindMap.hasOwnProperty(autoBindKey)) { return; } // Tweak: skip methods that are already bound. // This is to preserve method reference in case it is used // as a subscription handler that needs to be detached later. if (component.hasOwnProperty(autoBindKey) && component[autoBindKey].__reactBoundContext === component) { continue; } var method = component.__reactAutoBindMap[autoBindKey]; component[autoBindKey] = bindAutoBindMethod(component, method); } } function bindAutoBindMethods(component) { if (component.__reactAutoBindPairs) { bindAutoBindMethodsFromArray(component); } else if (component.__reactAutoBindMap) { bindAutoBindMethodsFromMap(component); } } function bindAutoBindMethodsFromArray(component) { var pairs = component.__reactAutoBindPairs; if (!pairs) { return; } for (var i = 0; i < pairs.length; i += 2) { var autoBindKey = pairs[i]; if (component.hasOwnProperty(autoBindKey) && component[autoBindKey].__reactBoundContext === component) { continue; } var method = pairs[i + 1]; component[autoBindKey] = bindAutoBindMethod(component, method); } } /***/ }, /* 47 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; exports.default = createClassProxy; var _weakMap = __webpack_require__(50); var _weakMap2 = _interopRequireDefault(_weakMap); var _createPrototypeProxy = __webpack_require__(48); var _createPrototypeProxy2 = _interopRequireDefault(_createPrototypeProxy); var _bindAutoBindMethods = __webpack_require__(46); var _bindAutoBindMethods2 = _interopRequireDefault(_bindAutoBindMethods); var _deleteUnknownAutoBindMethods = __webpack_require__(49); var _deleteUnknownAutoBindMethods2 = _interopRequireDefault(_deleteUnknownAutoBindMethods); var _supportsProtoAssignment = __webpack_require__(31); var _supportsProtoAssignment2 = _interopRequireDefault(_supportsProtoAssignment); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } } const RESERVED_STATICS = ['length', 'name', 'arguments', 'caller', 'prototype', 'toString']; function isEqualDescriptor(a, b) { if (!a && !b) { return true; } if (!a || !b) { return false; } for (let key in a) { if (a[key] !== b[key]) { return false; } } return true; } let allProxies = new _weakMap2.default(); function proxyClass(InitialComponent) { // Prevent double wrapping. // Given a proxy class, return the existing proxy managing it. if (allProxies.has(InitialComponent)) { return allProxies.get(InitialComponent); } let CurrentComponent; let ProxyComponent; let staticDescriptors = {}; function wasStaticModifiedByUser(key) { // Compare the descriptor with the one we previously set ourselves. const currentDescriptor = Object.getOwnPropertyDescriptor(ProxyComponent, key); return !isEqualDescriptor(staticDescriptors[key], currentDescriptor); } function instantiate(factory, context, params) { const component = factory(); try { return component.apply(context, params); } catch (err) { // Native ES6 class instantiation const instance = new (Function.prototype.bind.apply(component, [null].concat(_toConsumableArray(params))))(); Object.keys(instance).forEach(function (key) { if (RESERVED_STATICS.indexOf(key) > -1) { return; } context[key] = instance[key]; }); } } try { // Create a proxy constructor with matching name ProxyComponent = new Function('factory', 'instantiate', 'return function ' + (InitialComponent.name || 'ProxyComponent') + '() {\n return instantiate(factory, this, arguments);\n }')(function () { return CurrentComponent; }, instantiate); } catch (err) { // Some environments may forbid dynamic evaluation ProxyComponent = function () { return instantiate(function () { return CurrentComponent; }, this, arguments); }; } // Proxy toString() to the current constructor ProxyComponent.toString = function toString() { return CurrentComponent.toString(); }; let prototypeProxy; if (InitialComponent.prototype && InitialComponent.prototype.isReactComponent) { // Point proxy constructor to the proxy prototype prototypeProxy = (0, _createPrototypeProxy2.default)(); ProxyComponent.prototype = prototypeProxy.get(); } function update(NextComponent) { if (typeof NextComponent !== 'function') { throw new Error('Expected a constructor.'); } // Prevent proxy cycles if (allProxies.has(NextComponent)) { return update(allProxies.get(NextComponent).__getCurrent()); } // Save the next constructor so we call it CurrentComponent = NextComponent; // Try to infer displayName ProxyComponent.displayName = NextComponent.displayName || NextComponent.name; // Set up the same prototype for inherited statics ProxyComponent.__proto__ = NextComponent.__proto__; // Copy static methods and properties Object.getOwnPropertyNames(NextComponent).forEach(function (key) { if (RESERVED_STATICS.indexOf(key) > -1) { return; } const staticDescriptor = _extends({}, Object.getOwnPropertyDescriptor(NextComponent, key), { configurable: true }); // Copy static unless user has redefined it at runtime if (!wasStaticModifiedByUser(key)) { Object.defineProperty(ProxyComponent, key, staticDescriptor); staticDescriptors[key] = staticDescriptor; } }); // Remove old static methods and properties Object.getOwnPropertyNames(ProxyComponent).forEach(function (key) { if (RESERVED_STATICS.indexOf(key) > -1) { return; } // Skip statics that exist on the next class if (NextComponent.hasOwnProperty(key)) { return; } // Skip non-configurable statics const descriptor = Object.getOwnPropertyDescriptor(ProxyComponent, key); if (descriptor && !descriptor.configurable) { return; } // Delete static unless user has redefined it at runtime if (!wasStaticModifiedByUser(key)) { delete ProxyComponent[key]; delete staticDescriptors[key]; } }); if (prototypeProxy) { // Update the prototype proxy with new methods const mountedInstances = prototypeProxy.update(NextComponent.prototype); // Set up the constructor property so accessing the statics work ProxyComponent.prototype.constructor = ProxyComponent; // We might have added new methods that need to be auto-bound mountedInstances.forEach(_bindAutoBindMethods2.default); mountedInstances.forEach(_deleteUnknownAutoBindMethods2.default); } }; function get() { return ProxyComponent; } function getCurrent() { return CurrentComponent; } update(InitialComponent); const proxy = { get: get, update: update }; allProxies.set(ProxyComponent, proxy); Object.defineProperty(proxy, '__getCurrent', { configurable: false, writable: false, enumerable: false, value: getCurrent }); return proxy; } function createFallback(Component) { let CurrentComponent = Component; return { get: function () { return CurrentComponent; }, update: function (NextComponent) { CurrentComponent = NextComponent; } }; } function createClassProxy(Component) { return Component.__proto__ && (0, _supportsProtoAssignment2.default)() ? proxyClass(Component) : createFallback(Component); } /***/ }, /* 48 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = createPrototypeProxy; var _assign = __webpack_require__(101); var _assign2 = _interopRequireDefault(_assign); var _difference = __webpack_require__(80); var _difference2 = _interopRequireDefault(_difference); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function createPrototypeProxy() { let proxy = {}; let current = null; let mountedInstances = []; /** * Creates a proxied toString() method pointing to the current version's toString(). */ function proxyToString(name) { // Wrap to always call the current version return function toString() { if (typeof current[name] === 'function') { return current[name].toString(); } else { return '<method was deleted>'; } }; } /** * Creates a proxied method that calls the current version, whenever available. */ function proxyMethod(name) { // Wrap to always call the current version const proxiedMethod = function () { if (typeof current[name] === 'function') { return current[name].apply(this, arguments); } }; // Copy properties of the original function, if any (0, _assign2.default)(proxiedMethod, current[name]); proxiedMethod.toString = proxyToString(name); return proxiedMethod; } /** * Augments the original componentDidMount with instance tracking. */ function proxiedComponentDidMount() { mountedInstances.push(this); if (typeof current.componentDidMount === 'function') { return current.componentDidMount.apply(this, arguments); } } proxiedComponentDidMount.toString = proxyToString('componentDidMount'); /** * Augments the original componentWillUnmount with instance tracking. */ function proxiedComponentWillUnmount() { const index = mountedInstances.indexOf(this); // Unless we're in a weird environment without componentDidMount if (index !== -1) { mountedInstances.splice(index, 1); } if (typeof current.componentWillUnmount === 'function') { return current.componentWillUnmount.apply(this, arguments); } } proxiedComponentWillUnmount.toString = proxyToString('componentWillUnmount'); /** * Defines a property on the proxy. */ function defineProxyProperty(name, descriptor) { Object.defineProperty(proxy, name, descriptor); } /** * Defines a property, attempting to keep the original descriptor configuration. */ function defineProxyPropertyWithValue(name, value) { var _ref = Object.getOwnPropertyDescriptor(current, name) || {}; var _ref$enumerable = _ref.enumerable; const enumerable = _ref$enumerable === undefined ? false : _ref$enumerable; var _ref$writable = _ref.writable; const writable = _ref$writable === undefined ? true : _ref$writable; defineProxyProperty(name, { configurable: true, enumerable: enumerable, writable: writable, value: value }); } /** * Creates an auto-bind map mimicking the original map, but directed at proxy. */ function createAutoBindMap() { if (!current.__reactAutoBindMap) { return; } let __reactAutoBindMap = {}; for (let name in current.__reactAutoBindMap) { if (typeof proxy[name] === 'function' && current.__reactAutoBindMap.hasOwnProperty(name)) { __reactAutoBindMap[name] = proxy[name]; } } return __reactAutoBindMap; } /** * Creates an auto-bind map mimicking the original map, but directed at proxy. */ function createAutoBindPairs() { let __reactAutoBindPairs = []; for (let i = 0; i < current.__reactAutoBindPairs.length; i += 2) { const name = current.__reactAutoBindPairs[i]; const method = proxy[name]; if (typeof method === 'function') { __reactAutoBindPairs.push(name, method); } } return __reactAutoBindPairs; } /** * Applies the updated prototype. */ function update(next) { // Save current source of truth current = next; // Find changed property names const currentNames = Object.getOwnPropertyNames(current); const previousName = Object.getOwnPropertyNames(proxy); const removedNames = (0, _difference2.default)(previousName, currentNames); // Remove properties and methods that are no longer there removedNames.forEach(function (name) { delete proxy[name]; }); // Copy every descriptor currentNames.forEach(function (name) { const descriptor = Object.getOwnPropertyDescriptor(current, name); if (typeof descriptor.value === 'function') { // Functions require additional wrapping so they can be bound later defineProxyPropertyWithValue(name, proxyMethod(name)); } else { // Other values can be copied directly defineProxyProperty(name, descriptor); } }); // Track mounting and unmounting defineProxyPropertyWithValue('componentDidMount', proxiedComponentDidMount); defineProxyPropertyWithValue('componentWillUnmount', proxiedComponentWillUnmount); if (current.hasOwnProperty('__reactAutoBindMap')) { defineProxyPropertyWithValue('__reactAutoBindMap', createAutoBindMap()); } if (current.hasOwnProperty('__reactAutoBindPairs')) { defineProxyPropertyWithValue('__reactAutoBindPairs', createAutoBindPairs()); } // Set up the prototype chain proxy.__proto__ = next; return mountedInstances; } /** * Returns the up-to-date proxy prototype. */ function get() { return proxy; } return { update: update, get: get }; }; /***/ }, /* 49 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = deleteUnknownAutoBindMethods; function shouldDeleteClassicInstanceMethod(component, name) { if (component.__reactAutoBindMap && component.__reactAutoBindMap.hasOwnProperty(name)) { // It's a known autobound function, keep it return false; } if (component.__reactAutoBindPairs && component.__reactAutoBindPairs.indexOf(name) >= 0) { // It's a known autobound function, keep it return false; } if (component[name].__reactBoundArguments !== null) { // It's a function bound to specific args, keep it return false; } // It's a cached bound method for a function // that was deleted by user, so we delete it from component. return true; } function shouldDeleteModernInstanceMethod(component, name) { const prototype = component.constructor.prototype; const prototypeDescriptor = Object.getOwnPropertyDescriptor(prototype, name); if (!prototypeDescriptor || !prototypeDescriptor.get) { // This is definitely not an autobinding getter return false; } if (prototypeDescriptor.get().length !== component[name].length) { // The length doesn't match, bail out return false; } // This seems like a method bound using an autobinding getter on the prototype // Hopefully we won't run into too many false positives. return true; } function shouldDeleteInstanceMethod(component, name) { const descriptor = Object.getOwnPropertyDescriptor(component, name); if (typeof descriptor.value !== 'function') { // Not a function, or something fancy: bail out return; } if (component.__reactAutoBindMap || component.__reactAutoBindPairs) { // Classic return shouldDeleteClassicInstanceMethod(component, name); } else { // Modern return shouldDeleteModernInstanceMethod(component, name); } } /** * Deletes autobound methods from the instance. * * For classic React classes, we only delete the methods that no longer exist in map. * This means the user actually deleted them in code. * * For modern classes, we delete methods that exist on prototype with the same length, * and which have getters on prototype, but are normal values on the instance. * This is usually an indication that an autobinding decorator is being used, * and the getter will re-generate the memoized handler on next access. */ function deleteUnknownAutoBindMethods(component) { const names = Object.getOwnPropertyNames(component); names.forEach(function (name) { if (shouldDeleteInstanceMethod(component, name)) { delete component[name]; } }); } /***/ }, /* 50 */ /***/ function(module, exports, __webpack_require__) { __webpack_require__(78); __webpack_require__(77); __webpack_require__(79); module.exports = __webpack_require__(18).WeakMap; /***/ }, /* 51 */ /***/ function(module, exports, __webpack_require__) { module.exports = function(it){ if(typeof it != 'function')throw TypeError(it + ' is not a function!'); return it; }; /***/ }, /* 52 */ /***/ function(module, exports, __webpack_require__) { module.exports = function(){ /* empty */ }; /***/ }, /* 53 */ /***/ function(module, exports, __webpack_require__) { // false -> Array#indexOf // true -> Array#includes var toIObject = __webpack_require__(24) , toLength = __webpack_require__(25) , toIndex = __webpack_require__(74); module.exports = function(IS_INCLUDES){ return function($this, el, fromIndex){ var O = toIObject($this) , length = toLength(O.length) , index = toIndex(fromIndex, length) , value; // Array#includes uses SameValueZero equality algorithm if(IS_INCLUDES && el != el)while(length > index){ value = O[index++]; if(value != value)return true; // Array#toIndex ignores holes, Array#includes - not } else for(;length > index; index++)if(IS_INCLUDES || index in O){ if(O[index] === el)return IS_INCLUDES || index; } return !IS_INCLUDES && -1; }; }; /***/ }, /* 54 */ /***/ function(module, exports, __webpack_require__) { // 9.4.2.3 ArraySpeciesCreate(originalArray, length) var isObject = __webpack_require__(1) , isArray = __webpack_require__(61) , SPECIES = __webpack_require__(3)('species'); module.exports = function(original, length){ var C; if(isArray(original)){ C = original.constructor; // cross-realm fallback if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined; if(isObject(C)){ C = C[SPECIES]; if(C === null)C = undefined; } } return new (C === undefined ? Array : C)(length); }; /***/ }, /* 55 */ /***/ function(module, exports, __webpack_require__) { // getting tag from 19.1.3.6 Object.prototype.toString() var cof = __webpack_require__(17) , TAG = __webpack_require__(3)('toStringTag') // ES3 wrong here , ARG = cof(function(){ return arguments; }()) == 'Arguments'; module.exports = function(it){ var O, T, B; return it === undefined ? 'Undefined' : it === null ? 'Null' // @@toStringTag case : typeof (T = (O = Object(it))[TAG]) == 'string' ? T // builtinTag case : ARG ? cof(O) // ES3 arguments fallback : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; }; /***/ }, /* 56 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var redefineAll = __webpack_require__(40) , getWeak