var react = /******/ (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] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = 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; /******/ /******/ // identity function for calling harmony imports with the correct context /******/ __webpack_require__.i = function(value) { return value; }; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ } /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 363); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (c) 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ /** * Use invariant() to assert state which your program assumes to be true. * * Provide sprintf-style format (only %s is supported) and arguments * to provide information about what broke and what you were * expecting. * * The invariant message will be stripped in production, but the invariant * will remain to ensure logic does not differ in production. */ var validateFormat = function validateFormat(format) {}; if (true) { validateFormat = function validateFormat(format) { if (format === undefined) { throw new Error('invariant requires an error message argument'); } }; } function invariant(condition, format, a, b, c, d, e, f) { validateFormat(format); if (!condition) { var error; if (format === undefined) { error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.'); } else { var args = [a, b, c, d, e, f]; var argIndex = 0; error = new Error(format.replace(/%s/g, function () { return args[argIndex++]; })); error.name = 'Invariant Violation'; } error.framesToPop = 1; // we don't care about invariant's own frame throw error; } } module.exports = invariant; /***/ }), /* 1 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2014-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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var emptyFunction = __webpack_require__(10); /** * Similar to invariant but only logs a warning if the condition is not met. * This can be used to log issues in development environments in critical * paths. Removing the logging code for production environments will keep the * same logic and follow the same code paths. */ var warning = emptyFunction; if (true) { (function () { var printWarning = function printWarning(format) { for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } var argIndex = 0; var message = 'Warning: ' + format.replace(/%s/g, function () { return args[argIndex++]; }); if (typeof console !== 'undefined') { console.error(message); } try { // --- Welcome to debugging React --- // This error was thrown as a convenience so that you can use this stack // to find the callsite that caused this warning to fire. throw new Error(message); } catch (x) {} }; warning = function warning(condition, format) { if (format === undefined) { throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); } if (format.indexOf('Failed Composite propType: ') === 0) { return; // Ignore CompositeComponent proptype check. } if (!condition) { for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { args[_key2 - 2] = arguments[_key2]; } printWarning.apply(undefined, [format].concat(args)); } }; })(); } module.exports = warning; /***/ }), /* 2 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (c) 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ /** * WARNING: DO NOT manually require this module. * This is a replacement for `invariant(...)` used by the error code system * and will _only_ be required by the corresponding babel pass. * It always throws. */ function reactProdInvariant(code) { var argCount = arguments.length - 1; var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code; for (var argIdx = 0; argIdx < argCount; argIdx++) { message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]); } message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.'; var error = new Error(message); error.name = 'Invariant Violation'; error.framesToPop = 1; // we don't care about reactProdInvariant's own frame throw error; } module.exports = reactProdInvariant; /***/ }), /* 3 */ /***/ (function(module, exports, __webpack_require__) { /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ if (true) { var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' && Symbol.for && Symbol.for('react.element')) || 0xeac7; var isValidElement = function(object) { return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; }; // By explicitly using `prop-types` you are opting into new development behavior. // http://fb.me/prop-types-in-prod var throwOnDirectAccess = true; module.exports = __webpack_require__(113)(isValidElement, throwOnDirectAccess); } else { // By explicitly using `prop-types` you are opting into new production behavior. // http://fb.me/prop-types-in-prod module.exports = require('./factoryWithThrowingShims')(); } /***/ }), /* 4 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (c) 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); /** * Simple, lightweight module assisting with the detection and context of * Worker. Helps avoid circular dependencies and allows code to reason about * whether or not they are in a Worker, even if they never include the main * `ReactWorker` dependency. */ var ExecutionEnvironment = { canUseDOM: canUseDOM, canUseWorkers: typeof Worker !== 'undefined', canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent), canUseViewport: canUseDOM && !!window.screen, isInWorker: !canUseDOM // For now, this is true - might change in the future. }; module.exports = ExecutionEnvironment; /***/ }), /* 5 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = __webpack_require__(33); /***/ }), /* 6 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* object-assign (c) Sindre Sorhus @license MIT */ /* eslint-disable no-unused-vars */ var getOwnPropertySymbols = Object.getOwnPropertySymbols; var hasOwnProperty = Object.prototype.hasOwnProperty; var propIsEnumerable = Object.prototype.propertyIsEnumerable; function toObject(val) { if (val === null || val === undefined) { throw new TypeError('Object.assign cannot be called with null or undefined'); } return Object(val); } function shouldUseNative() { try { if (!Object.assign) { return false; } // Detect buggy property enumeration order in older V8 versions. // https://bugs.chromium.org/p/v8/issues/detail?id=4118 var test1 = new String('abc'); // eslint-disable-line no-new-wrappers test1[5] = 'de'; if (Object.getOwnPropertyNames(test1)[0] === '5') { return false; } // https://bugs.chromium.org/p/v8/issues/detail?id=3056 var test2 = {}; for (var i = 0; i < 10; i++) { test2['_' + String.fromCharCode(i)] = i; } var order2 = Object.getOwnPropertyNames(test2).map(function (n) { return test2[n]; }); if (order2.join('') !== '0123456789') { return false; } // https://bugs.chromium.org/p/v8/issues/detail?id=3056 var test3 = {}; 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { test3[letter] = letter; }); if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') { return false; } return true; } catch (err) { // We don't expect any of the above to throw, but better to be safe. return false; } } module.exports = shouldUseNative() ? Object.assign : function (target, source) { var from; var to = toObject(target); var symbols; for (var s = 1; s < arguments.length; s++) { from = Object(arguments[s]); for (var key in from) { if (hasOwnProperty.call(from, key)) { to[key] = from[key]; } } if (getOwnPropertySymbols) { symbols = getOwnPropertySymbols(from); for (var i = 0; i < symbols.length; i++) { if (propIsEnumerable.call(from, symbols[i])) { to[symbols[i]] = from[symbols[i]]; } } } } return to; }; /***/ }), /* 7 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _prodInvariant = __webpack_require__(2); var DOMProperty = __webpack_require__(20); var ReactDOMComponentFlags = __webpack_require__(118); var invariant = __webpack_require__(0); var ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME; var Flags = ReactDOMComponentFlags; var internalInstanceKey = '__reactInternalInstance$' + Math.random().toString(36).slice(2); /** * Check if a given node should be cached. */ function shouldPrecacheNode(node, nodeID) { return node.nodeType === 1 && node.getAttribute(ATTR_NAME) === String(nodeID) || node.nodeType === 8 && node.nodeValue === ' react-text: ' + nodeID + ' ' || node.nodeType === 8 && node.nodeValue === ' react-empty: ' + nodeID + ' '; } /** * Drill down (through composites and empty components) until we get a host or * host text component. * * This is pretty polymorphic but unavoidable with the current structure we have * for `_renderedChildren`. */ function getRenderedHostOrTextFromComponent(component) { var rendered; while (rendered = component._renderedComponent) { component = rendered; } return component; } /** * Populate `_hostNode` on the rendered host/text component with the given * DOM node. The passed `inst` can be a composite. */ function precacheNode(inst, node) { var hostInst = getRenderedHostOrTextFromComponent(inst); hostInst._hostNode = node; node[internalInstanceKey] = hostInst; } function uncacheNode(inst) { var node = inst._hostNode; if (node) { delete node[internalInstanceKey]; inst._hostNode = null; } } /** * Populate `_hostNode` on each child of `inst`, assuming that the children * match up with the DOM (element) children of `node`. * * We cache entire levels at once to avoid an n^2 problem where we access the * children of a node sequentially and have to walk from the start to our target * node every time. * * Since we update `_renderedChildren` and the actual DOM at (slightly) * different times, we could race here and see a newer `_renderedChildren` than * the DOM nodes we see. To avoid this, ReactMultiChild calls * `prepareToManageChildren` before we change `_renderedChildren`, at which * time the container's child nodes are always cached (until it unmounts). */ function precacheChildNodes(inst, node) { if (inst._flags & Flags.hasCachedChildNodes) { return; } var children = inst._renderedChildren; var childNode = node.firstChild; outer: for (var name in children) { if (!children.hasOwnProperty(name)) { continue; } var childInst = children[name]; var childID = getRenderedHostOrTextFromComponent(childInst)._domID; if (childID === 0) { // We're currently unmounting this child in ReactMultiChild; skip it. continue; } // We assume the child nodes are in the same order as the child instances. for (; childNode !== null; childNode = childNode.nextSibling) { if (shouldPrecacheNode(childNode, childID)) { precacheNode(childInst, childNode); continue outer; } } // We reached the end of the DOM children without finding an ID match. true ? true ? invariant(false, 'Unable to find element with ID %s.', childID) : _prodInvariant('32', childID) : void 0; } inst._flags |= Flags.hasCachedChildNodes; } /** * Given a DOM node, return the closest ReactDOMComponent or * ReactDOMTextComponent instance ancestor. */ function getClosestInstanceFromNode(node) { if (node[internalInstanceKey]) { return node[internalInstanceKey]; } // Walk up the tree until we find an ancestor whose instance we have cached. var parents = []; while (!node[internalInstanceKey]) { parents.push(node); if (node.parentNode) { node = node.parentNode; } else { // Top of the tree. This node must not be part of a React tree (or is // unmounted, potentially). return null; } } var closest; var inst; for (; node && (inst = node[internalInstanceKey]); node = parents.pop()) { closest = inst; if (parents.length) { precacheChildNodes(inst, node); } } return closest; } /** * Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent * instance, or null if the node was not rendered by this React. */ function getInstanceFromNode(node) { var inst = getClosestInstanceFromNode(node); if (inst != null && inst._hostNode === node) { return inst; } else { return null; } } /** * Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding * DOM node. */ function getNodeFromInstance(inst) { // Without this first invariant, passing a non-DOM-component triggers the next // invariant for a missing parent, which is super confusing. !(inst._hostNode !== undefined) ? true ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0; if (inst._hostNode) { return inst._hostNode; } // Walk up the tree until we find an ancestor whose DOM node we have cached. var parents = []; while (!inst._hostNode) { parents.push(inst); !inst._hostParent ? true ? invariant(false, 'React DOM tree root should always have a node reference.') : _prodInvariant('34') : void 0; inst = inst._hostParent; } // Now parents contains each ancestor that does *not* have a cached native // node, and `inst` is the deepest ancestor that does. for (; parents.length; inst = parents.pop()) { precacheChildNodes(inst, inst._hostNode); } return inst._hostNode; } var ReactDOMComponentTree = { getClosestInstanceFromNode: getClosestInstanceFromNode, getInstanceFromNode: getInstanceFromNode, getNodeFromInstance: getNodeFromInstance, precacheChildNodes: precacheChildNodes, precacheNode: precacheNode, uncacheNode: uncacheNode }; module.exports = ReactDOMComponentTree; /***/ }), /* 8 */ /***/ (function(module, exports, __webpack_require__) { var _flattenStyle=__webpack_require__(138);var _flattenStyle2=_interopRequireDefault(_flattenStyle); var _registry=__webpack_require__(83);var _registry2=_interopRequireDefault(_registry);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} var absoluteFillObject={ position:'absolute', left:0, right:0, top:0, bottom:0}; var absoluteFill=_registry2.default.register(absoluteFillObject); module.exports={ absoluteFill:absoluteFill, absoluteFillObject:absoluteFillObject, create:function create(styles){ var result={}; Object.keys(styles).forEach(function(key){ if(true){ __webpack_require__(309).validateStyle(key,styles); } result[key]=_registry2.default.register(styles[key]); }); return result; }, hairlineWidth:1, flatten:_flattenStyle2.default, renderToString:function renderToString(){ return _registry2.default.getStyleSheetHtml(); }}; /***/ }), /* 9 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _createClass=function(){function defineProperties(target,props){for(var i=0;i=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}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;} var emptyObject={}; var calculateHitSlopStyle=function calculateHitSlopStyle(hitSlop){ var hitStyle={}; for(var prop in hitSlop){ if(hitSlop.hasOwnProperty(prop)){ var value=hitSlop[prop]; hitStyle[prop]=value>0?-1*value:0; } } return hitStyle; };var View=function(_Component){_inherits(View,_Component);function View(){_classCallCheck(this,View);return _possibleConstructorReturn(this,(View.__proto__||Object.getPrototypeOf(View)).apply(this,arguments));}_createClass(View,[{key:'getChildContext',value:function getChildContext() { var isInAButtonView= _AccessibilityUtil2.default.propsToAriaRole(this.props)==='button'||this.context.isInAButtonView; return isInAButtonView?{isInAButtonView:isInAButtonView}:emptyObject; }},{key:'render',value:function render() {var _props= this.props,hitSlop=_props.hitSlop,style=_props.style,collapsable=_props.collapsable,onAccessibilityTap=_props.onAccessibilityTap,onLayout=_props.onLayout,onMagicTap=_props.onMagicTap,removeClippedSubviews=_props.removeClippedSubviews,otherProps=_objectWithoutProperties(_props,['hitSlop','style','collapsable','onAccessibilityTap','onLayout','onMagicTap','removeClippedSubviews']);var isInAButtonView=this.context.isInAButtonView; otherProps.style=[styles.initial,style]; if(hitSlop){ var hitSlopStyle=calculateHitSlopStyle(hitSlop); var hitSlopChild=(0,_createDOMElement2.default)('span',{style:[styles.hitSlop,hitSlopStyle]}); otherProps.children=_react2.default.Children.toArray(otherProps.children); otherProps.children.unshift(hitSlopChild); otherProps.style.unshift(styles.hasHitSlop); } var component=isInAButtonView?'span':'div'; return(0,_createDOMElement2.default)(component,otherProps); }}]);return View;}(_react.Component);View.displayName='View';View.childContextTypes={isInAButtonView:_propTypes.bool};View.contextTypes={isInAButtonView:_propTypes.bool}; true?View.propTypes=_ViewPropTypes2.default:void 0; var styles=_StyleSheet2.default.create({ initial:{ alignItems:'stretch', borderWidth:0, borderStyle:'solid', boxSizing:'border-box', display:'flex', flexBasis:'auto', flexDirection:'column', margin:0, padding:0, position:'relative', minHeight:0, minWidth:0}, hasHitSlop:{ zIndex:0}, hitSlop:_extends({}, _StyleSheet2.default.absoluteFillObject,{ zIndex:-1})}); module.exports=(0,_applyLayout2.default)((0,_applyNativeMethods2.default)(View)); /***/ }), /* 13 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2016-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ var _prodInvariant = __webpack_require__(22); var ReactCurrentOwner = __webpack_require__(17); var _require = __webpack_require__(162), getStackAddendumByWorkInProgressFiber = _require.getStackAddendumByWorkInProgressFiber, describeComponentFrame = _require.describeComponentFrame; var invariant = __webpack_require__(0); var warning = __webpack_require__(1); var getComponentName = __webpack_require__(97); function isNative(fn) { // Based on isNative() from Lodash var funcToString = Function.prototype.toString; var hasOwnProperty = Object.prototype.hasOwnProperty; var reIsNative = RegExp('^' + funcToString // Take an example native function source for comparison .call(hasOwnProperty) // Strip regex characters so we can use it for regex .replace(/[\\^$.*+?()[\]{}|]/g, '\\$&') // Remove hasOwnProperty from the template to make it generic .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'); try { var source = funcToString.call(fn); return reIsNative.test(source); } catch (err) { return false; } } var canUseCollections = // Array.from typeof Array.from === 'function' && // Map typeof Map === 'function' && isNative(Map) && // Map.prototype.keys Map.prototype != null && typeof Map.prototype.keys === 'function' && isNative(Map.prototype.keys) && // Set typeof Set === 'function' && isNative(Set) && // Set.prototype.keys Set.prototype != null && typeof Set.prototype.keys === 'function' && isNative(Set.prototype.keys); var setItem; var getItem; var removeItem; var getItemIDs; var addRoot; var removeRoot; var getRootIDs; if (canUseCollections) { var itemMap = new Map(); var rootIDSet = new Set(); setItem = function (id, item) { itemMap.set(id, item); }; getItem = function (id) { return itemMap.get(id); }; removeItem = function (id) { itemMap['delete'](id); }; getItemIDs = function () { return Array.from(itemMap.keys()); }; addRoot = function (id) { rootIDSet.add(id); }; removeRoot = function (id) { rootIDSet['delete'](id); }; getRootIDs = function () { return Array.from(rootIDSet.keys()); }; } else { var itemByKey = {}; var rootByKey = {}; // Use non-numeric keys to prevent V8 performance issues: // https://github.com/facebook/react/pull/7232 var getKeyFromID = function (id) { return '.' + id; }; var getIDFromKey = function (key) { return parseInt(key.substr(1), 10); }; setItem = function (id, item) { var key = getKeyFromID(id); itemByKey[key] = item; }; getItem = function (id) { var key = getKeyFromID(id); return itemByKey[key]; }; removeItem = function (id) { var key = getKeyFromID(id); delete itemByKey[key]; }; getItemIDs = function () { return Object.keys(itemByKey).map(getIDFromKey); }; addRoot = function (id) { var key = getKeyFromID(id); rootByKey[key] = true; }; removeRoot = function (id) { var key = getKeyFromID(id); delete rootByKey[key]; }; getRootIDs = function () { return Object.keys(rootByKey).map(getIDFromKey); }; } var unmountedIDs = []; function purgeDeep(id) { var item = getItem(id); if (item) { var childIDs = item.childIDs; removeItem(id); childIDs.forEach(purgeDeep); } } function getDisplayName(element) { if (element == null) { return '#empty'; } else if (typeof element === 'string' || typeof element === 'number') { return '#text'; } else if (typeof element.type === 'string') { return element.type; } else { return element.type.displayName || element.type.name || 'Unknown'; } } function describeID(id) { var name = ReactComponentTreeHook.getDisplayName(id); var element = ReactComponentTreeHook.getElement(id); var ownerID = ReactComponentTreeHook.getOwnerID(id); var ownerName = void 0; if (ownerID) { ownerName = ReactComponentTreeHook.getDisplayName(ownerID); } true ? warning(element, 'ReactComponentTreeHook: Missing React element for debugID %s when ' + 'building stack', id) : void 0; return describeComponentFrame(name || '', element && element._source, ownerName || ''); } var ReactComponentTreeHook = { onSetChildren: function (id, nextChildIDs) { var item = getItem(id); invariant(item, 'Item must have been set'); item.childIDs = nextChildIDs; for (var i = 0; i < nextChildIDs.length; i++) { var nextChildID = nextChildIDs[i]; var nextChild = getItem(nextChildID); !nextChild ? true ? invariant(false, 'Expected hook events to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('140') : void 0; !(nextChild.childIDs != null || typeof nextChild.element !== 'object' || nextChild.element == null) ? true ? invariant(false, 'Expected onSetChildren() to fire for a container child before its parent includes it in onSetChildren().') : _prodInvariant('141') : void 0; !nextChild.isMounted ? true ? invariant(false, 'Expected onMountComponent() to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('71') : void 0; if (nextChild.parentID == null) { nextChild.parentID = id; // TODO: This shouldn't be necessary but mounting a new root during in // componentWillMount currently causes not-yet-mounted components to // be purged from our tree data so their parent id is missing. } !(nextChild.parentID === id) ? true ? invariant(false, 'Expected onBeforeMountComponent() parent and onSetChildren() to be consistent (%s has parents %s and %s).', nextChildID, nextChild.parentID, id) : _prodInvariant('142', nextChildID, nextChild.parentID, id) : void 0; } }, onBeforeMountComponent: function (id, element, parentID) { var item = { element: element, parentID: parentID, text: null, childIDs: [], isMounted: false, updateCount: 0 }; setItem(id, item); }, onBeforeUpdateComponent: function (id, element) { var item = getItem(id); if (!item || !item.isMounted) { // We may end up here as a result of setState() in componentWillUnmount(). // In this case, ignore the element. return; } item.element = element; }, onMountComponent: function (id) { var item = getItem(id); invariant(item, 'Item must have been set'); item.isMounted = true; var isRoot = item.parentID === 0; if (isRoot) { addRoot(id); } }, onUpdateComponent: function (id) { var item = getItem(id); if (!item || !item.isMounted) { // We may end up here as a result of setState() in componentWillUnmount(). // In this case, ignore the element. return; } item.updateCount++; }, onUnmountComponent: function (id) { var item = getItem(id); if (item) { // We need to check if it exists. // `item` might not exist if it is inside an error boundary, and a sibling // error boundary child threw while mounting. Then this instance never // got a chance to mount, but it still gets an unmounting event during // the error boundary cleanup. item.isMounted = false; var isRoot = item.parentID === 0; if (isRoot) { removeRoot(id); } } unmountedIDs.push(id); }, purgeUnmountedComponents: function () { if (ReactComponentTreeHook._preventPurging) { // Should only be used for testing. return; } for (var i = 0; i < unmountedIDs.length; i++) { var id = unmountedIDs[i]; purgeDeep(id); } unmountedIDs.length = 0; }, isMounted: function (id) { var item = getItem(id); return item ? item.isMounted : false; }, getCurrentStackAddendum: function (topElement) { var info = ''; if (topElement) { var name = getDisplayName(topElement); var owner = topElement._owner; info += describeComponentFrame(name, topElement._source, owner && getComponentName(owner)); } var currentOwner = ReactCurrentOwner.current; if (currentOwner) { if (typeof currentOwner.tag === 'number') { var workInProgress = currentOwner; // Safe because if current owner exists, we are reconciling, // and it is guaranteed to be the work-in-progress version. info += getStackAddendumByWorkInProgressFiber(workInProgress); } else if (typeof currentOwner._debugID === 'number') { info += ReactComponentTreeHook.getStackAddendumByID(currentOwner._debugID); } } return info; }, getStackAddendumByID: function (id) { var info = ''; while (id) { info += describeID(id); id = ReactComponentTreeHook.getParentID(id); } return info; }, getChildIDs: function (id) { var item = getItem(id); return item ? item.childIDs : []; }, getDisplayName: function (id) { var element = ReactComponentTreeHook.getElement(id); if (!element) { return null; } return getDisplayName(element); }, getElement: function (id) { var item = getItem(id); return item ? item.element : null; }, getOwnerID: function (id) { var element = ReactComponentTreeHook.getElement(id); if (!element || !element._owner) { return null; } return element._owner._debugID; }, getParentID: function (id) { var item = getItem(id); return item ? item.parentID : null; }, getSource: function (id) { var item = getItem(id); var element = item ? item.element : null; var source = element != null ? element._source : null; return source; }, getText: function (id) { var element = ReactComponentTreeHook.getElement(id); if (typeof element === 'string') { return element; } else if (typeof element === 'number') { return '' + element; } else { return null; } }, getUpdateCount: function (id) { var item = getItem(id); return item ? item.updateCount : 0; }, getRootIDs: getRootIDs, getRegisteredIDs: getItemIDs }; module.exports = ReactComponentTreeHook; /***/ }), /* 14 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _prodInvariant = __webpack_require__(2), _assign = __webpack_require__(6); var CallbackQueue = __webpack_require__(116); var PooledClass = __webpack_require__(24); var ReactFeatureFlags = __webpack_require__(121); var ReactReconciler = __webpack_require__(29); var Transaction = __webpack_require__(55); var invariant = __webpack_require__(0); var dirtyComponents = []; var updateBatchNumber = 0; var asapCallbackQueue = CallbackQueue.getPooled(); var asapEnqueued = false; var batchingStrategy = null; function ensureInjected() { !(ReactUpdates.ReactReconcileTransaction && batchingStrategy) ? true ? invariant(false, 'ReactUpdates: must inject a reconcile transaction class and batching strategy') : _prodInvariant('123') : void 0; } var NESTED_UPDATES = { initialize: function () { this.dirtyComponentsLength = dirtyComponents.length; }, close: function () { if (this.dirtyComponentsLength !== dirtyComponents.length) { // Additional updates were enqueued by componentDidUpdate handlers or // similar; before our own UPDATE_QUEUEING wrapper closes, we want to run // these new updates so that if A's componentDidUpdate calls setState on // B, B will update before the callback A's updater provided when calling // setState. dirtyComponents.splice(0, this.dirtyComponentsLength); flushBatchedUpdates(); } else { dirtyComponents.length = 0; } } }; var UPDATE_QUEUEING = { initialize: function () { this.callbackQueue.reset(); }, close: function () { this.callbackQueue.notifyAll(); } }; var TRANSACTION_WRAPPERS = [NESTED_UPDATES, UPDATE_QUEUEING]; function ReactUpdatesFlushTransaction() { this.reinitializeTransaction(); this.dirtyComponentsLength = null; this.callbackQueue = CallbackQueue.getPooled(); this.reconcileTransaction = ReactUpdates.ReactReconcileTransaction.getPooled( /* useCreateElement */true); } _assign(ReactUpdatesFlushTransaction.prototype, Transaction, { getTransactionWrappers: function () { return TRANSACTION_WRAPPERS; }, destructor: function () { this.dirtyComponentsLength = null; CallbackQueue.release(this.callbackQueue); this.callbackQueue = null; ReactUpdates.ReactReconcileTransaction.release(this.reconcileTransaction); this.reconcileTransaction = null; }, perform: function (method, scope, a) { // Essentially calls `this.reconcileTransaction.perform(method, scope, a)` // with this transaction's wrappers around it. return Transaction.perform.call(this, this.reconcileTransaction.perform, this.reconcileTransaction, method, scope, a); } }); PooledClass.addPoolingTo(ReactUpdatesFlushTransaction); function batchedUpdates(callback, a, b, c, d, e) { ensureInjected(); return batchingStrategy.batchedUpdates(callback, a, b, c, d, e); } /** * Array comparator for ReactComponents by mount ordering. * * @param {ReactComponent} c1 first component you're comparing * @param {ReactComponent} c2 second component you're comparing * @return {number} Return value usable by Array.prototype.sort(). */ function mountOrderComparator(c1, c2) { return c1._mountOrder - c2._mountOrder; } function runBatchedUpdates(transaction) { var len = transaction.dirtyComponentsLength; !(len === dirtyComponents.length) ? true ? invariant(false, 'Expected flush transaction\'s stored dirty-components length (%s) to match dirty-components array length (%s).', len, dirtyComponents.length) : _prodInvariant('124', len, dirtyComponents.length) : void 0; // Since reconciling a component higher in the owner hierarchy usually (not // always -- see shouldComponentUpdate()) will reconcile children, reconcile // them before their children by sorting the array. dirtyComponents.sort(mountOrderComparator); // Any updates enqueued while reconciling must be performed after this entire // batch. Otherwise, if dirtyComponents is [A, B] where A has children B and // C, B could update twice in a single batch if C's render enqueues an update // to B (since B would have already updated, we should skip it, and the only // way we can know to do so is by checking the batch counter). updateBatchNumber++; for (var i = 0; i < len; i++) { // If a component is unmounted before pending changes apply, it will still // be here, but we assume that it has cleared its _pendingCallbacks and // that performUpdateIfNecessary is a noop. var component = dirtyComponents[i]; // If performUpdateIfNecessary happens to enqueue any new updates, we // shouldn't execute the callbacks until the next render happens, so // stash the callbacks first var callbacks = component._pendingCallbacks; component._pendingCallbacks = null; var markerName; if (ReactFeatureFlags.logTopLevelRenders) { var namedComponent = component; // Duck type TopLevelWrapper. This is probably always true. if (component._currentElement.type.isReactTopLevelWrapper) { namedComponent = component._renderedComponent; } markerName = 'React update: ' + namedComponent.getName(); console.time(markerName); } ReactReconciler.performUpdateIfNecessary(component, transaction.reconcileTransaction, updateBatchNumber); if (markerName) { console.timeEnd(markerName); } if (callbacks) { for (var j = 0; j < callbacks.length; j++) { transaction.callbackQueue.enqueue(callbacks[j], component.getPublicInstance()); } } } } var flushBatchedUpdates = function () { // ReactUpdatesFlushTransaction's wrappers will clear the dirtyComponents // array and perform any updates enqueued by mount-ready handlers (i.e., // componentDidUpdate) but we need to check here too in order to catch // updates enqueued by setState callbacks and asap calls. while (dirtyComponents.length || asapEnqueued) { if (dirtyComponents.length) { var transaction = ReactUpdatesFlushTransaction.getPooled(); transaction.perform(runBatchedUpdates, null, transaction); ReactUpdatesFlushTransaction.release(transaction); } if (asapEnqueued) { asapEnqueued = false; var queue = asapCallbackQueue; asapCallbackQueue = CallbackQueue.getPooled(); queue.notifyAll(); CallbackQueue.release(queue); } } }; /** * Mark a component as needing a rerender, adding an optional callback to a * list of functions which will be executed once the rerender occurs. */ function enqueueUpdate(component) { ensureInjected(); // Various parts of our code (such as ReactCompositeComponent's // _renderValidatedComponent) assume that calls to render aren't nested; // verify that that's the case. (This is called by each top-level update // function, like setState, forceUpdate, etc.; creation and // destruction of top-level components is guarded in ReactMount.) if (!batchingStrategy.isBatchingUpdates) { batchingStrategy.batchedUpdates(enqueueUpdate, component); return; } dirtyComponents.push(component); if (component._updateBatchNumber == null) { component._updateBatchNumber = updateBatchNumber + 1; } } /** * Enqueue a callback to be run at the end of the current batching cycle. Throws * if no updates are currently being performed. */ function asap(callback, context) { !batchingStrategy.isBatchingUpdates ? true ? invariant(false, 'ReactUpdates.asap: Can\'t enqueue an asap callback in a context whereupdates are not being batched.') : _prodInvariant('125') : void 0; asapCallbackQueue.enqueue(callback, context); asapEnqueued = true; } var ReactUpdatesInjection = { injectReconcileTransaction: function (ReconcileTransaction) { !ReconcileTransaction ? true ? invariant(false, 'ReactUpdates: must provide a reconcile transaction class') : _prodInvariant('126') : void 0; ReactUpdates.ReactReconcileTransaction = ReconcileTransaction; }, injectBatchingStrategy: function (_batchingStrategy) { !_batchingStrategy ? true ? invariant(false, 'ReactUpdates: must provide a batching strategy') : _prodInvariant('127') : void 0; !(typeof _batchingStrategy.batchedUpdates === 'function') ? true ? invariant(false, 'ReactUpdates: must provide a batchedUpdates() function') : _prodInvariant('128') : void 0; !(typeof _batchingStrategy.isBatchingUpdates === 'boolean') ? true ? invariant(false, 'ReactUpdates: must provide an isBatchingUpdates boolean attribute') : _prodInvariant('129') : void 0; batchingStrategy = _batchingStrategy; } }; var ReactUpdates = { /** * React references `ReactReconcileTransaction` using this property in order * to allow dependency injection. * * @internal */ ReactReconcileTransaction: null, batchedUpdates: batchedUpdates, enqueueUpdate: enqueueUpdate, flushBatchedUpdates: flushBatchedUpdates, injection: ReactUpdatesInjection, asap: asap }; module.exports = ReactUpdates; /***/ }), /* 15 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _assign = __webpack_require__(6); var PooledClass = __webpack_require__(24); var emptyFunction = __webpack_require__(10); var warning = __webpack_require__(1); var didWarnForAddedNewProperty = false; var isProxySupported = typeof Proxy === 'function'; var shouldBeReleasedProperties = ['dispatchConfig', '_targetInst', 'nativeEvent', 'isDefaultPrevented', 'isPropagationStopped', '_dispatchListeners', '_dispatchInstances']; /** * @interface Event * @see http://www.w3.org/TR/DOM-Level-3-Events/ */ var EventInterface = { type: null, target: null, // currentTarget is set when dispatching; no use in copying it here currentTarget: emptyFunction.thatReturnsNull, eventPhase: null, bubbles: null, cancelable: null, timeStamp: function (event) { return event.timeStamp || Date.now(); }, defaultPrevented: null, isTrusted: null }; /** * Synthetic events are dispatched by event plugins, typically in response to a * top-level event delegation handler. * * These systems should generally use pooling to reduce the frequency of garbage * collection. The system should check `isPersistent` to determine whether the * event should be released into the pool after being dispatched. Users that * need a persisted event should invoke `persist`. * * Synthetic events (and subclasses) implement the DOM Level 3 Events API by * normalizing browser quirks. Subclasses do not necessarily have to implement a * DOM interface; custom application-specific events can also subclass this. * * @param {object} dispatchConfig Configuration used to dispatch this event. * @param {*} targetInst Marker identifying the event target. * @param {object} nativeEvent Native browser event. * @param {DOMEventTarget} nativeEventTarget Target node. */ function SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeEventTarget) { if (true) { // these have a getter/setter for warnings delete this.nativeEvent; delete this.preventDefault; delete this.stopPropagation; } this.dispatchConfig = dispatchConfig; this._targetInst = targetInst; this.nativeEvent = nativeEvent; var Interface = this.constructor.Interface; for (var propName in Interface) { if (!Interface.hasOwnProperty(propName)) { continue; } if (true) { delete this[propName]; // this has a getter/setter for warnings } var normalize = Interface[propName]; if (normalize) { this[propName] = normalize(nativeEvent); } else { if (propName === 'target') { this.target = nativeEventTarget; } else { this[propName] = nativeEvent[propName]; } } } var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false; if (defaultPrevented) { this.isDefaultPrevented = emptyFunction.thatReturnsTrue; } else { this.isDefaultPrevented = emptyFunction.thatReturnsFalse; } this.isPropagationStopped = emptyFunction.thatReturnsFalse; return this; } _assign(SyntheticEvent.prototype, { preventDefault: function () { this.defaultPrevented = true; var event = this.nativeEvent; if (!event) { return; } if (event.preventDefault) { event.preventDefault(); } else if (typeof event.returnValue !== 'unknown') { // eslint-disable-line valid-typeof event.returnValue = false; } this.isDefaultPrevented = emptyFunction.thatReturnsTrue; }, stopPropagation: function () { var event = this.nativeEvent; if (!event) { return; } if (event.stopPropagation) { event.stopPropagation(); } else if (typeof event.cancelBubble !== 'unknown') { // eslint-disable-line valid-typeof // The ChangeEventPlugin registers a "propertychange" event for // IE. This event does not support bubbling or cancelling, and // any references to cancelBubble throw "Member not found". A // typeof check of "unknown" circumvents this issue (and is also // IE specific). event.cancelBubble = true; } this.isPropagationStopped = emptyFunction.thatReturnsTrue; }, /** * We release all dispatched `SyntheticEvent`s after each event loop, adding * them back into the pool. This allows a way to hold onto a reference that * won't be added back into the pool. */ persist: function () { this.isPersistent = emptyFunction.thatReturnsTrue; }, /** * Checks if this event should be released back into the pool. * * @return {boolean} True if this should not be released, false otherwise. */ isPersistent: emptyFunction.thatReturnsFalse, /** * `PooledClass` looks for `destructor` on each instance it releases. */ destructor: function () { var Interface = this.constructor.Interface; for (var propName in Interface) { if (true) { Object.defineProperty(this, propName, getPooledWarningPropertyDefinition(propName, Interface[propName])); } else { this[propName] = null; } } for (var i = 0; i < shouldBeReleasedProperties.length; i++) { this[shouldBeReleasedProperties[i]] = null; } if (true) { Object.defineProperty(this, 'nativeEvent', getPooledWarningPropertyDefinition('nativeEvent', null)); Object.defineProperty(this, 'preventDefault', getPooledWarningPropertyDefinition('preventDefault', emptyFunction)); Object.defineProperty(this, 'stopPropagation', getPooledWarningPropertyDefinition('stopPropagation', emptyFunction)); } } }); SyntheticEvent.Interface = EventInterface; if (true) { if (isProxySupported) { /*eslint-disable no-func-assign */ SyntheticEvent = new Proxy(SyntheticEvent, { construct: function (target, args) { return this.apply(target, Object.create(target.prototype), args); }, apply: function (constructor, that, args) { return new Proxy(constructor.apply(that, args), { set: function (target, prop, value) { if (prop !== 'isPersistent' && !target.constructor.Interface.hasOwnProperty(prop) && shouldBeReleasedProperties.indexOf(prop) === -1) { true ? warning(didWarnForAddedNewProperty || target.isPersistent(), 'This synthetic event is reused for performance reasons. If you\'re ' + 'seeing this, you\'re adding a new property in the synthetic event object. ' + 'The property is never released. See ' + 'https://fb.me/react-event-pooling for more information.') : void 0; didWarnForAddedNewProperty = true; } target[prop] = value; return true; } }); } }); /*eslint-enable no-func-assign */ } } /** * Helper to reduce boilerplate when creating subclasses. * * @param {function} Class * @param {?object} Interface */ SyntheticEvent.augmentClass = function (Class, Interface) { var Super = this; var E = function () {}; E.prototype = Super.prototype; var prototype = new E(); _assign(prototype, Class.prototype); Class.prototype = prototype; Class.prototype.constructor = Class; Class.Interface = _assign({}, Super.Interface, Interface); Class.augmentClass = Super.augmentClass; PooledClass.addPoolingTo(Class, PooledClass.fourArgumentPooler); }; PooledClass.addPoolingTo(SyntheticEvent, PooledClass.fourArgumentPooler); module.exports = SyntheticEvent; /** * Helper to nullify syntheticEvent instance properties when destructing * * @param {object} SyntheticEvent * @param {String} propName * @return {object} defineProperty object */ function getPooledWarningPropertyDefinition(propName, getVal) { var isFunction = typeof getVal === 'function'; return { configurable: true, set: set, get: get }; function set(val) { var action = isFunction ? 'setting the method' : 'setting the property'; warn(action, 'This is effectively a no-op'); return val; } function get() { var action = isFunction ? 'accessing the method' : 'accessing the property'; var result = isFunction ? 'This is a no-op function' : 'This is set to null'; warn(action, result); return getVal; } function warn(action, result) { var warningCondition = false; true ? warning(warningCondition, 'This synthetic event is reused for performance reasons. If you\'re seeing this, ' + 'you\'re %s `%s` on a released/nullified synthetic event. %s. ' + 'If you must keep the original synthetic event around, use event.persist(). ' + 'See https://fb.me/react-event-pooling for more information.', action, propName, result) : void 0; } } /***/ }), /* 16 */ /***/ (function(module, exports, __webpack_require__) { var colorPropType=function colorPropType(isRequired,props,propName,componentName,location,propFullName){ var normalizeColor=__webpack_require__(50); var ReactPropTypeLocationNames=__webpack_require__(94); var color=props[propName]; if(color===undefined||color===null){ if(isRequired){ var locationName=ReactPropTypeLocationNames[location]; return new Error( 'Required '+ locationName+ ' `'+( propFullName||propName)+ '` was not specified in `'+ componentName+ '`.'); } return; } if(typeof color==='number'){ return; } if(color==='currentcolor'||color==='inherit'){ return; } if(normalizeColor(color)===null){ var locationName=ReactPropTypeLocationNames[location]; return new Error( 'Invalid '+ locationName+ ' `'+( propFullName||propName)+ '` supplied to `'+ componentName+ '`: '+ color+ '\n'+'Valid color formats are\n - \'#f0f\' (#rgb)\n - \'#f0fc\' (#rgba)\n - \'#ff00ff\' (#rrggbb)\n - \'#ff00ff00\' (#rrggbbaa)\n - \'rgb(255, 255, 255)\'\n - \'rgba(255, 255, 255, 1.0)\'\n - \'hsl(360, 100%, 100%)\'\n - \'hsla(360, 100%, 100%, 1.0)\'\n - \'transparent\'\n - \'red\'\n - 0xff00ff00 (0xrrggbbaa)\n'); } }; if(true){ var ColorPropType=colorPropType.bind(null,false); ColorPropType.isRequired=colorPropType.bind(null,true); }else{ var ColorPropType=function ColorPropType(){}; } module.exports=ColorPropType; /***/ }), /* 17 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ /** * Keeps track of the current owner. * * The current owner is the component who should own any components that are * currently being constructed. */ var ReactCurrentOwner = { /** * @internal * @type {ReactComponent} */ current: null }; module.exports = ReactCurrentOwner; /***/ }), /* 18 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _createClass=function(){function defineProperties(target,props){for(var i=0;i DOMProperty.isValid['id'] * true * > DOMProperty.isValid['foobar'] * undefined * * Although this may be confusing, it performs better in general. * * @see http://jsperf.com/key-exists * @see http://jsperf.com/key-missing */ var DOMProperty = { ID_ATTRIBUTE_NAME: 'data-reactid', ROOT_ATTRIBUTE_NAME: 'data-reactroot', ATTRIBUTE_NAME_START_CHAR: ATTRIBUTE_NAME_START_CHAR, ATTRIBUTE_NAME_CHAR: ATTRIBUTE_NAME_START_CHAR + '\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040', /** * Map from property "standard name" to an object with info about how to set * the property in the DOM. Each object contains: * * attributeName: * Used when rendering markup or with `*Attribute()`. * attributeNamespace * propertyName: * Used on DOM node instances. (This includes properties that mutate due to * external factors.) * mutationMethod: * If non-null, used instead of the property or `setAttribute()` after * initial render. * mustUseProperty: * Whether the property must be accessed and mutated as an object property. * hasBooleanValue: * Whether the property should be removed when set to a falsey value. * hasNumericValue: * Whether the property must be numeric or parse as a numeric and should be * removed when set to a falsey value. * hasPositiveNumericValue: * Whether the property must be positive numeric or parse as a positive * numeric and should be removed when set to a falsey value. * hasOverloadedBooleanValue: * Whether the property can be used as a flag as well as with a value. * Removed when strictly equal to false; present without a value when * strictly equal to true; present with a value otherwise. */ properties: {}, /** * Mapping from lowercase property names to the properly cased version, used * to warn in the case of missing properties. Available only in __DEV__. * * autofocus is predefined, because adding it to the property whitelist * causes unintended side effects. * * @type {Object} */ getPossibleStandardName: true ? { autofocus: 'autoFocus' } : null, /** * All of the isCustomAttribute() functions that have been injected. */ _isCustomAttributeFunctions: [], /** * Checks whether a property name is a custom attribute. * @method */ isCustomAttribute: function (attributeName) { for (var i = 0; i < DOMProperty._isCustomAttributeFunctions.length; i++) { var isCustomAttributeFn = DOMProperty._isCustomAttributeFunctions[i]; if (isCustomAttributeFn(attributeName)) { return true; } } return false; }, injection: DOMPropertyInjection }; module.exports = DOMProperty; /***/ }), /* 21 */ /***/ (function(module, exports, __webpack_require__) { var _NativeMethodsMixin=__webpack_require__(60);var _NativeMethodsMixin2=_interopRequireDefault(_NativeMethodsMixin);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} var applyNativeMethods=function applyNativeMethods(Component){ Object.keys(_NativeMethodsMixin2.default).forEach(function(method){ if(!Component.prototype[method]){ Component.prototype[method]=_NativeMethodsMixin2.default[method]; } }); return Component; }; module.exports=applyNativeMethods; /***/ }), /* 22 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (c) 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ /** * WARNING: DO NOT manually require this module. * This is a replacement for `invariant(...)` used by the error code system * and will _only_ be required by the corresponding babel pass. * It always throws. */ function reactProdInvariant(code) { var argCount = arguments.length - 1; var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code; for (var argIdx = 0; argIdx < argCount; argIdx++) { message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]); } message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.'; var error = new Error(message); error.name = 'Invariant Violation'; error.framesToPop = 1; // we don't care about reactProdInvariant's own frame throw error; } module.exports = reactProdInvariant; /***/ }), /* 23 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global) { var _createClass=function(){function defineProperties(target,props){for(var i=0;i 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 2]; } if (true) { if (Object.freeze) { Object.freeze(childArray); } } props.children = childArray; } // Resolve default props if (type && type.defaultProps) { var defaultProps = type.defaultProps; for (propName in defaultProps) { if (props[propName] === undefined) { props[propName] = defaultProps[propName]; } } } if (true) { if (key || ref) { if (typeof props.$$typeof === 'undefined' || props.$$typeof !== REACT_ELEMENT_TYPE) { var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type; if (key) { defineKeyPropWarningGetter(props, displayName); } if (ref) { defineRefPropWarningGetter(props, displayName); } } } } return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props); }; /** * Return a function that produces ReactElements of a given type. * See https://facebook.github.io/react/docs/react-api.html#createfactory */ ReactElement.createFactory = function (type) { var factory = ReactElement.createElement.bind(null, type); // Expose the type on the factory and the prototype so that it can be // easily accessed on elements. E.g. `.type === Foo`. // This should not be named `constructor` since this may not be the function // that created the element, and it may not even be a constructor. // Legacy hook TODO: Warn if this is accessed factory.type = type; return factory; }; ReactElement.cloneAndReplaceKey = function (oldElement, newKey) { var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props); return newElement; }; /** * Clone and return a new ReactElement using element as the starting point. * See https://facebook.github.io/react/docs/react-api.html#cloneelement */ ReactElement.cloneElement = function (element, config, children) { var propName; // Original props are copied var props = _assign({}, element.props); // Reserved names are extracted var key = element.key; var ref = element.ref; // Self is preserved since the owner is preserved. var self = element._self; // Source is preserved since cloneElement is unlikely to be targeted by a // transpiler, and the original source is probably a better indicator of the // true owner. var source = element._source; // Owner will be preserved, unless ref is overridden var owner = element._owner; if (config != null) { if (hasValidRef(config)) { // Silently steal the ref from the parent. ref = config.ref; owner = ReactCurrentOwner.current; } if (hasValidKey(config)) { key = '' + config.key; } // Remaining properties override existing props var defaultProps; if (element.type && element.type.defaultProps) { defaultProps = element.type.defaultProps; } for (propName in config) { if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) { if (config[propName] === undefined && defaultProps !== undefined) { // Resolve default props props[propName] = defaultProps[propName]; } else { props[propName] = config[propName]; } } } } // Children can be more than one argument, and those are transferred onto // the newly allocated props object. var childrenLength = arguments.length - 2; if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 2]; } props.children = childArray; } return ReactElement(element.type, key, ref, self, source, owner, props); }; /** * Verifies the object is a ReactElement. * See https://facebook.github.io/react/docs/react-api.html#isvalidelement * @param {?object} object * @return {boolean} True if `object` is a valid component. * @final */ ReactElement.isValidElement = function (object) { return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; }; module.exports = ReactElement; /***/ }), /* 26 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2015-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var DOMNamespaces = __webpack_require__(68); var setInnerHTML = __webpack_require__(57); var createMicrosoftUnsafeLocalFunction = __webpack_require__(74); var setTextContent = __webpack_require__(135); var ELEMENT_NODE_TYPE = 1; var DOCUMENT_FRAGMENT_NODE_TYPE = 11; /** * In IE (8-11) and Edge, appending nodes with no children is dramatically * faster than appending a full subtree, so we essentially queue up the * .appendChild calls here and apply them so each node is added to its parent * before any children are added. * * In other browsers, doing so is slower or neutral compared to the other order * (in Firefox, twice as slow) so we only do this inversion in IE. * * See https://github.com/spicyj/innerhtml-vs-createelement-vs-clonenode. */ var enableLazy = typeof document !== 'undefined' && typeof document.documentMode === 'number' || typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && /\bEdge\/\d/.test(navigator.userAgent); function insertTreeChildren(tree) { if (!enableLazy) { return; } var node = tree.node; var children = tree.children; if (children.length) { for (var i = 0; i < children.length; i++) { insertTreeBefore(node, children[i], null); } } else if (tree.html != null) { setInnerHTML(node, tree.html); } else if (tree.text != null) { setTextContent(node, tree.text); } } var insertTreeBefore = createMicrosoftUnsafeLocalFunction(function (parentNode, tree, referenceNode) { // DocumentFragments aren't actually part of the DOM after insertion so // appending children won't update the DOM. We need to ensure the fragment // is properly populated first, breaking out of our lazy approach for just // this level. Also, some plugins (like Flash Player) will read // nodes immediately upon insertion into the DOM, so // must also be populated prior to insertion into the DOM. if (tree.node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE || tree.node.nodeType === ELEMENT_NODE_TYPE && tree.node.nodeName.toLowerCase() === 'object' && (tree.node.namespaceURI == null || tree.node.namespaceURI === DOMNamespaces.html)) { insertTreeChildren(tree); parentNode.insertBefore(tree.node, referenceNode); } else { parentNode.insertBefore(tree.node, referenceNode); insertTreeChildren(tree); } }); function replaceChildWithTree(oldNode, newTree) { oldNode.parentNode.replaceChild(newTree.node, oldNode); insertTreeChildren(newTree); } function queueChild(parentTree, childTree) { if (enableLazy) { parentTree.children.push(childTree); } else { parentTree.node.appendChild(childTree.node); } } function queueHTML(tree, html) { if (enableLazy) { tree.html = html; } else { setInnerHTML(tree.node, html); } } function queueText(tree, text) { if (enableLazy) { tree.text = text; } else { setTextContent(tree.node, text); } } function toString() { return this.node.nodeName; } function DOMLazyTree(node) { return { node: node, children: [], html: null, text: null, toString: toString }; } DOMLazyTree.insertTreeBefore = insertTreeBefore; DOMLazyTree.replaceChildWithTree = replaceChildWithTree; DOMLazyTree.queueChild = queueChild; DOMLazyTree.queueHTML = queueHTML; DOMLazyTree.queueText = queueText; module.exports = DOMLazyTree; /***/ }), /* 27 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _prodInvariant = __webpack_require__(2); var EventPluginRegistry = __webpack_require__(52); var EventPluginUtils = __webpack_require__(40); var ReactErrorUtils = __webpack_require__(72); var accumulateInto = __webpack_require__(129); var forEachAccumulated = __webpack_require__(130); var invariant = __webpack_require__(0); /** * Internal store for event listeners */ var listenerBank = {}; /** * Internal queue of events that have accumulated their dispatches and are * waiting to have their dispatches executed. */ var eventQueue = null; /** * Dispatches an event and releases it back into the pool, unless persistent. * * @param {?object} event Synthetic event to be dispatched. * @param {boolean} simulated If the event is simulated (changes exn behavior) * @private */ var executeDispatchesAndRelease = function (event, simulated) { if (event) { EventPluginUtils.executeDispatchesInOrder(event, simulated); if (!event.isPersistent()) { event.constructor.release(event); } } }; var executeDispatchesAndReleaseSimulated = function (e) { return executeDispatchesAndRelease(e, true); }; var executeDispatchesAndReleaseTopLevel = function (e) { return executeDispatchesAndRelease(e, false); }; var getDictionaryKey = function (inst) { // Prevents V8 performance issue: // https://github.com/facebook/react/pull/7232 return '.' + inst._rootNodeID; }; function isInteractive(tag) { return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea'; } function shouldPreventMouseEvent(name, type, props) { switch (name) { case 'onClick': case 'onClickCapture': case 'onDoubleClick': case 'onDoubleClickCapture': case 'onMouseDown': case 'onMouseDownCapture': case 'onMouseMove': case 'onMouseMoveCapture': case 'onMouseUp': case 'onMouseUpCapture': return !!(props.disabled && isInteractive(type)); default: return false; } } /** * This is a unified interface for event plugins to be installed and configured. * * Event plugins can implement the following properties: * * `extractEvents` {function(string, DOMEventTarget, string, object): *} * Required. When a top-level event is fired, this method is expected to * extract synthetic events that will in turn be queued and dispatched. * * `eventTypes` {object} * Optional, plugins that fire events must publish a mapping of registration * names that are used to register listeners. Values of this mapping must * be objects that contain `registrationName` or `phasedRegistrationNames`. * * `executeDispatch` {function(object, function, string)} * Optional, allows plugins to override how an event gets dispatched. By * default, the listener is simply invoked. * * Each plugin that is injected into `EventsPluginHub` is immediately operable. * * @public */ var EventPluginHub = { /** * Methods for injecting dependencies. */ injection: { /** * @param {array} InjectedEventPluginOrder * @public */ injectEventPluginOrder: EventPluginRegistry.injectEventPluginOrder, /** * @param {object} injectedNamesToPlugins Map from names to plugin modules. */ injectEventPluginsByName: EventPluginRegistry.injectEventPluginsByName }, /** * Stores `listener` at `listenerBank[registrationName][key]`. Is idempotent. * * @param {object} inst The instance, which is the source of events. * @param {string} registrationName Name of listener (e.g. `onClick`). * @param {function} listener The callback to store. */ putListener: function (inst, registrationName, listener) { !(typeof listener === 'function') ? true ? invariant(false, 'Expected %s listener to be a function, instead got type %s', registrationName, typeof listener) : _prodInvariant('94', registrationName, typeof listener) : void 0; var key = getDictionaryKey(inst); var bankForRegistrationName = listenerBank[registrationName] || (listenerBank[registrationName] = {}); bankForRegistrationName[key] = listener; var PluginModule = EventPluginRegistry.registrationNameModules[registrationName]; if (PluginModule && PluginModule.didPutListener) { PluginModule.didPutListener(inst, registrationName, listener); } }, /** * @param {object} inst The instance, which is the source of events. * @param {string} registrationName Name of listener (e.g. `onClick`). * @return {?function} The stored callback. */ getListener: function (inst, registrationName) { // TODO: shouldPreventMouseEvent is DOM-specific and definitely should not // live here; needs to be moved to a better place soon var bankForRegistrationName = listenerBank[registrationName]; if (shouldPreventMouseEvent(registrationName, inst._currentElement.type, inst._currentElement.props)) { return null; } var key = getDictionaryKey(inst); return bankForRegistrationName && bankForRegistrationName[key]; }, /** * Deletes a listener from the registration bank. * * @param {object} inst The instance, which is the source of events. * @param {string} registrationName Name of listener (e.g. `onClick`). */ deleteListener: function (inst, registrationName) { var PluginModule = EventPluginRegistry.registrationNameModules[registrationName]; if (PluginModule && PluginModule.willDeleteListener) { PluginModule.willDeleteListener(inst, registrationName); } var bankForRegistrationName = listenerBank[registrationName]; // TODO: This should never be null -- when is it? if (bankForRegistrationName) { var key = getDictionaryKey(inst); delete bankForRegistrationName[key]; } }, /** * Deletes all listeners for the DOM element with the supplied ID. * * @param {object} inst The instance, which is the source of events. */ deleteAllListeners: function (inst) { var key = getDictionaryKey(inst); for (var registrationName in listenerBank) { if (!listenerBank.hasOwnProperty(registrationName)) { continue; } if (!listenerBank[registrationName][key]) { continue; } var PluginModule = EventPluginRegistry.registrationNameModules[registrationName]; if (PluginModule && PluginModule.willDeleteListener) { PluginModule.willDeleteListener(inst, registrationName); } delete listenerBank[registrationName][key]; } }, /** * Allows registered plugins an opportunity to extract events from top-level * native browser events. * * @return {*} An accumulation of synthetic events. * @internal */ extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) { var events; var plugins = EventPluginRegistry.plugins; for (var i = 0; i < plugins.length; i++) { // Not every plugin in the ordering may be loaded at runtime. var possiblePlugin = plugins[i]; if (possiblePlugin) { var extractedEvents = possiblePlugin.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget); if (extractedEvents) { events = accumulateInto(events, extractedEvents); } } } return events; }, /** * Enqueues a synthetic event that should be dispatched when * `processEventQueue` is invoked. * * @param {*} events An accumulation of synthetic events. * @internal */ enqueueEvents: function (events) { if (events) { eventQueue = accumulateInto(eventQueue, events); } }, /** * Dispatches all synthetic events on the event queue. * * @internal */ processEventQueue: function (simulated) { // Set `eventQueue` to null before processing it so that we can tell if more // events get enqueued while processing. var processingEventQueue = eventQueue; eventQueue = null; if (simulated) { forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseSimulated); } else { forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseTopLevel); } !!eventQueue ? true ? invariant(false, 'processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.') : _prodInvariant('95') : void 0; // This would be a good time to rethrow if any of the event handlers threw. ReactErrorUtils.rethrowCaughtError(); }, /** * These are needed for tests only. Do not use! */ __purge: function () { listenerBank = {}; }, __getListenerBank: function () { return listenerBank; } }; module.exports = EventPluginHub; /***/ }), /* 28 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var EventPluginHub = __webpack_require__(27); var EventPluginUtils = __webpack_require__(40); var accumulateInto = __webpack_require__(129); var forEachAccumulated = __webpack_require__(130); var warning = __webpack_require__(1); var getListener = EventPluginHub.getListener; /** * Some event types have a notion of different registration names for different * "phases" of propagation. This finds listeners by a given phase. */ function listenerAtPhase(inst, event, propagationPhase) { var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase]; return getListener(inst, registrationName); } /** * Tags a `SyntheticEvent` with dispatched listeners. Creating this function * here, allows us to not have to bind or create functions for each event. * Mutating the event's members allows us to not have to create a wrapping * "dispatch" object that pairs the event with the listener. */ function accumulateDirectionalDispatches(inst, phase, event) { if (true) { true ? warning(inst, 'Dispatching inst must not be null') : void 0; } var listener = listenerAtPhase(inst, event, phase); if (listener) { event._dispatchListeners = accumulateInto(event._dispatchListeners, listener); event._dispatchInstances = accumulateInto(event._dispatchInstances, inst); } } /** * Collect dispatches (must be entirely collected before dispatching - see unit * tests). Lazily allocate the array to conserve memory. We must loop through * each event and perform the traversal for each one. We cannot perform a * single traversal for the entire collection of events because each event may * have a different target. */ function accumulateTwoPhaseDispatchesSingle(event) { if (event && event.dispatchConfig.phasedRegistrationNames) { EventPluginUtils.traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event); } } /** * Same as `accumulateTwoPhaseDispatchesSingle`, but skips over the targetID. */ function accumulateTwoPhaseDispatchesSingleSkipTarget(event) { if (event && event.dispatchConfig.phasedRegistrationNames) { var targetInst = event._targetInst; var parentInst = targetInst ? EventPluginUtils.getParentInstance(targetInst) : null; EventPluginUtils.traverseTwoPhase(parentInst, accumulateDirectionalDispatches, event); } } /** * Accumulates without regard to direction, does not look for phased * registration names. Same as `accumulateDirectDispatchesSingle` but without * requiring that the `dispatchMarker` be the same as the dispatched ID. */ function accumulateDispatches(inst, ignoredDirection, event) { if (event && event.dispatchConfig.registrationName) { var registrationName = event.dispatchConfig.registrationName; var listener = getListener(inst, registrationName); if (listener) { event._dispatchListeners = accumulateInto(event._dispatchListeners, listener); event._dispatchInstances = accumulateInto(event._dispatchInstances, inst); } } } /** * Accumulates dispatches on an `SyntheticEvent`, but only for the * `dispatchMarker`. * @param {SyntheticEvent} event */ function accumulateDirectDispatchesSingle(event) { if (event && event.dispatchConfig.registrationName) { accumulateDispatches(event._targetInst, null, event); } } function accumulateTwoPhaseDispatches(events) { forEachAccumulated(events, accumulateTwoPhaseDispatchesSingle); } function accumulateTwoPhaseDispatchesSkipTarget(events) { forEachAccumulated(events, accumulateTwoPhaseDispatchesSingleSkipTarget); } function accumulateEnterLeaveDispatches(leave, enter, from, to) { EventPluginUtils.traverseEnterLeave(from, to, accumulateDispatches, leave, enter); } function accumulateDirectDispatches(events) { forEachAccumulated(events, accumulateDirectDispatchesSingle); } /** * A small set of propagation patterns, each of which will accept a small amount * of information, and generate a set of "dispatch ready event objects" - which * are sets of events that have already been annotated with a set of dispatched * listener functions/ids. The API is designed this way to discourage these * propagation strategies from actually executing the dispatches, since we * always want to collect the entire set of dispatches before executing event a * single one. * * @constructor EventPropagators */ var EventPropagators = { accumulateTwoPhaseDispatches: accumulateTwoPhaseDispatches, accumulateTwoPhaseDispatchesSkipTarget: accumulateTwoPhaseDispatchesSkipTarget, accumulateDirectDispatches: accumulateDirectDispatches, accumulateEnterLeaveDispatches: accumulateEnterLeaveDispatches }; module.exports = EventPropagators; /***/ }), /* 29 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var ReactRef = __webpack_require__(263); var ReactInstrumentation = __webpack_require__(11); var warning = __webpack_require__(1); /** * Helper to call ReactRef.attachRefs with this composite component, split out * to avoid allocations in the transaction mount-ready queue. */ function attachRefs() { ReactRef.attachRefs(this, this._currentElement); } var ReactReconciler = { /** * Initializes the component, renders markup, and registers event listeners. * * @param {ReactComponent} internalInstance * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction * @param {?object} the containing host component instance * @param {?object} info about the host container * @return {?string} Rendered markup to be inserted into the DOM. * @final * @internal */ mountComponent: function (internalInstance, transaction, hostParent, hostContainerInfo, context, parentDebugID // 0 in production and for roots ) { if (true) { if (internalInstance._debugID !== 0) { ReactInstrumentation.debugTool.onBeforeMountComponent(internalInstance._debugID, internalInstance._currentElement, parentDebugID); } } var markup = internalInstance.mountComponent(transaction, hostParent, hostContainerInfo, context, parentDebugID); if (internalInstance._currentElement && internalInstance._currentElement.ref != null) { transaction.getReactMountReady().enqueue(attachRefs, internalInstance); } if (true) { if (internalInstance._debugID !== 0) { ReactInstrumentation.debugTool.onMountComponent(internalInstance._debugID); } } return markup; }, /** * Returns a value that can be passed to * ReactComponentEnvironment.replaceNodeWithMarkup. */ getHostNode: function (internalInstance) { return internalInstance.getHostNode(); }, /** * Releases any resources allocated by `mountComponent`. * * @final * @internal */ unmountComponent: function (internalInstance, safely) { if (true) { if (internalInstance._debugID !== 0) { ReactInstrumentation.debugTool.onBeforeUnmountComponent(internalInstance._debugID); } } ReactRef.detachRefs(internalInstance, internalInstance._currentElement); internalInstance.unmountComponent(safely); if (true) { if (internalInstance._debugID !== 0) { ReactInstrumentation.debugTool.onUnmountComponent(internalInstance._debugID); } } }, /** * Update a component using a new element. * * @param {ReactComponent} internalInstance * @param {ReactElement} nextElement * @param {ReactReconcileTransaction} transaction * @param {object} context * @internal */ receiveComponent: function (internalInstance, nextElement, transaction, context) { var prevElement = internalInstance._currentElement; if (nextElement === prevElement && context === internalInstance._context) { // Since elements are immutable after the owner is rendered, // we can do a cheap identity compare here to determine if this is a // superfluous reconcile. It's possible for state to be mutable but such // change should trigger an update of the owner which would recreate // the element. We explicitly check for the existence of an owner since // it's possible for an element created outside a composite to be // deeply mutated and reused. // TODO: Bailing out early is just a perf optimization right? // TODO: Removing the return statement should affect correctness? return; } if (true) { if (internalInstance._debugID !== 0) { ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, nextElement); } } var refsChanged = ReactRef.shouldUpdateRefs(prevElement, nextElement); if (refsChanged) { ReactRef.detachRefs(internalInstance, prevElement); } internalInstance.receiveComponent(nextElement, transaction, context); if (refsChanged && internalInstance._currentElement && internalInstance._currentElement.ref != null) { transaction.getReactMountReady().enqueue(attachRefs, internalInstance); } if (true) { if (internalInstance._debugID !== 0) { ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID); } } }, /** * Flush any dirty changes in a component. * * @param {ReactComponent} internalInstance * @param {ReactReconcileTransaction} transaction * @internal */ performUpdateIfNecessary: function (internalInstance, transaction, updateBatchNumber) { if (internalInstance._updateBatchNumber !== updateBatchNumber) { // The component's enqueued batch number should always be the current // batch or the following one. true ? warning(internalInstance._updateBatchNumber == null || internalInstance._updateBatchNumber === updateBatchNumber + 1, 'performUpdateIfNecessary: Unexpected batch number (current %s, ' + 'pending %s)', updateBatchNumber, internalInstance._updateBatchNumber) : void 0; return; } if (true) { if (internalInstance._debugID !== 0) { ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, internalInstance._currentElement); } } internalInstance.performUpdateIfNecessary(transaction); if (true) { if (internalInstance._debugID !== 0) { ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID); } } } }; module.exports = ReactReconciler; /***/ }), /* 30 */ /***/ (function(module, exports, __webpack_require__) { var _requestAnimationFrame=__webpack_require__(64);var _requestAnimationFrame2=_interopRequireDefault(_requestAnimationFrame); var _setValueForStyles=__webpack_require__(350);var _setValueForStyles2=_interopRequireDefault(_setValueForStyles);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} var getRect=function getRect(node){ var height=node.offsetHeight; var width=node.offsetWidth; var left=0; var top=0; while(node&&node.nodeType===1){ left+=node.offsetLeft; top+=node.offsetTop; node=node.offsetParent; } return{height:height,left:left,top:top,width:width}; }; var _measureLayout=function _measureLayout(node,relativeToNativeNode,callback){ (0,_requestAnimationFrame2.default)(function(){ var relativeNode=relativeToNativeNode||node&&node.parentNode; if(node&&relativeNode){ var relativeRect=getRect(relativeNode);var _getRect= getRect(node),height=_getRect.height,left=_getRect.left,top=_getRect.top,width=_getRect.width; var x=left-relativeRect.left; var y=top-relativeRect.top; callback(x,y,width,height,left,top); } }); }; var UIManager={ blur:function blur(node){ try{ node.blur(); }catch(err){} }, focus:function focus(node){ try{ node.focus(); }catch(err){} }, measure:function measure(node,callback){ _measureLayout(node,null,callback); }, measureInWindow:function measureInWindow(node,callback){ (0,_requestAnimationFrame2.default)(function(){ if(node){var _getRect2= getRect(node),height=_getRect2.height,left=_getRect2.left,top=_getRect2.top,width=_getRect2.width; callback(left,top,width,height); } }); }, measureLayout:function measureLayout(node,relativeToNativeNode,onFail,onSuccess){ _measureLayout(node,relativeToNativeNode,onSuccess); }, updateView:function updateView(node,props,component){ for(var prop in props){ if(!Object.prototype.hasOwnProperty.call(props,prop)){ continue; } var value=props[prop]; switch(prop){ case'style':{ (0,_setValueForStyles2.default)(node,value,component._reactInternalInstance); break; } case'class': case'className':{ node.setAttribute('class',value); break; } case'text': case'value': node.value=value; break; default: node.setAttribute(prop,value);} } }}; module.exports=UIManager; /***/ }), /* 31 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(344); var _AccessibilityUtil=__webpack_require__(89);var _AccessibilityUtil2=_interopRequireDefault(_AccessibilityUtil); var _createDOMProps=__webpack_require__(146);var _createDOMProps2=_interopRequireDefault(_createDOMProps); var _modality=__webpack_require__(345);var _modality2=_interopRequireDefault(_modality); var _normalizeNativeEvent=__webpack_require__(149);var _normalizeNativeEvent2=_interopRequireDefault(_normalizeNativeEvent); var _react=__webpack_require__(5);var _react2=_interopRequireDefault(_react);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} (0,_modality2.default)(); var eventHandlerNames={ onClick:true, onClickCapture:true, onMoveShouldSetResponder:true, onMoveShouldSetResponderCapture:true, onResponderGrant:true, onResponderMove:true, onResponderReject:true, onResponderRelease:true, onResponderTerminate:true, onResponderTerminationRequest:true, onStartShouldSetResponder:true, onStartShouldSetResponderCapture:true, onTouchCancel:true, onTouchCancelCapture:true, onTouchEnd:true, onTouchEndCapture:true, onTouchMove:true, onTouchMoveCapture:true, onTouchStart:true, onTouchStartCapture:true}; var wrapEventHandler=function wrapEventHandler(handler){return function(e){ e.nativeEvent=(0,_normalizeNativeEvent2.default)(e.nativeEvent); return handler(e); };}; var createDOMElement=function createDOMElement(component,props){ var accessibilityComponent=_AccessibilityUtil2.default.propsToAccessibilityComponent(props); var Component=accessibilityComponent||component; var domProps=(0,_createDOMProps2.default)(props); for(var prop in domProps){ if(Object.prototype.hasOwnProperty.call(domProps,prop)){ var isEventHandler=typeof prop==='function'&&eventHandlerNames[prop]; if(isEventHandler){ domProps[prop]=wrapEventHandler(prop); } } } return _react2.default.createElement(Component,domProps); }; module.exports=createDOMElement; /***/ }), /* 32 */ /***/ (function(module, exports, __webpack_require__) { module.exports=function StyleSheetPropType(shape){ var createStrictShapeTypeChecker=__webpack_require__(93); var StyleSheet=__webpack_require__(8); var shapePropType=createStrictShapeTypeChecker(shape); return function(props,propName,componentName,location){ var newProps=props; if(props[propName]){ newProps={}; newProps[propName]=StyleSheet.flatten(props[propName]); } return shapePropType(newProps,propName,componentName,location); }; }; /***/ }), /* 33 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var ReactBaseClasses = __webpack_require__(158); var ReactChildren = __webpack_require__(353); var ReactClass = __webpack_require__(354); var ReactDOMFactories = __webpack_require__(355); var ReactElement = __webpack_require__(25); var ReactPropTypes = __webpack_require__(356); var ReactVersion = __webpack_require__(358); var onlyChild = __webpack_require__(361); var warning = __webpack_require__(1); var checkPropTypes = __webpack_require__(165); var createElement = ReactElement.createElement; var createFactory = ReactElement.createFactory; var cloneElement = ReactElement.cloneElement; if (true) { var ReactElementValidator = __webpack_require__(161); createElement = ReactElementValidator.createElement; createFactory = ReactElementValidator.createFactory; cloneElement = ReactElementValidator.cloneElement; } var createMixin = function (mixin) { return mixin; }; if (true) { var warnedForCreateMixin = false; createMixin = function (mixin) { true ? warning(warnedForCreateMixin, 'React.createMixin is deprecated and should not be used. You ' + 'can use this mixin directly instead.') : void 0; warnedForCreateMixin = true; return mixin; }; } var React = { // Modern Children: { map: ReactChildren.map, forEach: ReactChildren.forEach, count: ReactChildren.count, toArray: ReactChildren.toArray, only: onlyChild }, Component: ReactBaseClasses.Component, PureComponent: ReactBaseClasses.PureComponent, createElement: createElement, cloneElement: cloneElement, isValidElement: ReactElement.isValidElement, checkPropTypes: checkPropTypes, // Classic PropTypes: ReactPropTypes, createClass: ReactClass.createClass, createFactory: createFactory, createMixin: createMixin, // This looks DOM specific but these are actually isomorphic helpers // since they are just generating DOM strings. DOM: ReactDOMFactories, version: ReactVersion }; module.exports = React; /***/ }), /* 34 */ /***/ (function(module, exports) { var g; // This works in non-strict mode g = (function() { return this; })(); try { // This works if eval is allowed (see CSP) g = g || Function("return this")() || (1,eval)("this"); } catch(e) { // This works if the window reference is available if(typeof window === "object") g = window; } // g can still be undefined, but nothing to do about it... // We return undefined, instead of nothing here, so it's // easier to handle this case. if(!global) { ...} module.exports = g; /***/ }), /* 35 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _createClass=function(){function defineProperties(target,props){for(var i=0;iinputMax){ if(extrapolateRight==='identity'){ return result; }else if(extrapolateRight==='clamp'){ result=inputMax; }else if(extrapolateRight==='extend'){ } } if(outputMin===outputMax){ return outputMin; } if(inputMin===inputMax){ if(input<=inputMin){ return outputMin; } return outputMax; } if(inputMin===-Infinity){ result=-result; }else if(inputMax===Infinity){ result=result-inputMin; }else{ result=(result-inputMin)/(inputMax-inputMin); } result=easing(result); if(outputMin===-Infinity){ result=-result; }else if(outputMax===Infinity){ result=result+outputMin; }else{ result=result*(outputMax-outputMin)+outputMin; } return result; } function colorToRgba(input){ var int32Color=normalizeColor(input); if(int32Color===null){ return input; } int32Color=int32Color||0; var r=(int32Color&0xff000000)>>>24; var g=(int32Color&0x00ff0000)>>>16; var b=(int32Color&0x0000ff00)>>>8; var a=(int32Color&0x000000ff)/255; return'rgba('+r+', '+g+', '+b+', '+a+')'; } var stringShapeRegex=/[0-9\.-]+/g; function createInterpolationFromStringOutputRange( config) { var outputRange=config.outputRange; invariant(outputRange.length>=2,'Bad output range'); outputRange=outputRange.map(colorToRgba); checkPattern(outputRange); var outputRanges=outputRange[0].match(stringShapeRegex).map(function(){return[];}); outputRange.forEach(function(value){ value.match(stringShapeRegex).forEach(function(number,i){ outputRanges[i].push(+number); }); }); var interpolations=outputRange[0].match(stringShapeRegex).map(function(value,i){ return Interpolation.create(_extends({}, config,{ outputRange:outputRanges[i]})); }); var shouldRound=/^rgb/.test(outputRange[0]); return function(input){ var i=0; return outputRange[0].replace(stringShapeRegex,function(){ var val=interpolations[i++](input); return String(shouldRound&&i<4?Math.round(val):val); }); }; } function checkPattern(arr){ var pattern=arr[0].replace(stringShapeRegex,''); for(var i=1;i=input){ break; } } return i-1; } function checkValidInputRange(arr){ invariant(arr.length>=2,'inputRange must have at least 2 elements'); for(var i=1;i=arr[i-1], 'inputRange must be monotonically increasing '+arr); } } function checkInfiniteRange(name,arr){ invariant(arr.length>=2,name+' must have at least 2 elements'); invariant( arr.length!==2||arr[0]!==-Infinity||arr[1]!==Infinity, name+'cannot be ]-infinity;+infinity[ '+arr); } module.exports=Interpolation; /***/ }), /* 37 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = isPrefixedValue; var regex = /-webkit-|-moz-|-ms-/; function isPrefixedValue(value) { return typeof value === 'string' && regex.test(value); } module.exports = exports['default']; /***/ }), /* 38 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (c) 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var emptyObject = {}; if (true) { Object.freeze(emptyObject); } module.exports = emptyObject; /***/ }), /* 39 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ /** * Use invariant() to assert state which your program assumes to be true. * * Provide sprintf-style format (only %s is supported) and arguments * to provide information about what broke and what you were * expecting. * * The invariant message will be stripped in production, but the invariant * will remain to ensure logic does not differ in production. */ var invariant = function(condition, format, a, b, c, d, e, f) { if (true) { if (format === undefined) { throw new Error('invariant requires an error message argument'); } } if (!condition) { var error; if (format === undefined) { error = new Error( 'Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.' ); } else { var args = [a, b, c, d, e, f]; var argIndex = 0; error = new Error( format.replace(/%s/g, function() { return args[argIndex++]; }) ); error.name = 'Invariant Violation'; } error.framesToPop = 1; // we don't care about invariant's own frame throw error; } }; module.exports = invariant; /***/ }), /* 40 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _prodInvariant = __webpack_require__(2); var ReactErrorUtils = __webpack_require__(72); var invariant = __webpack_require__(0); var warning = __webpack_require__(1); /** * Injected dependencies: */ /** * - `ComponentTree`: [required] Module that can convert between React instances * and actual node references. */ var ComponentTree; var TreeTraversal; var injection = { injectComponentTree: function (Injected) { ComponentTree = Injected; if (true) { true ? warning(Injected && Injected.getNodeFromInstance && Injected.getInstanceFromNode, 'EventPluginUtils.injection.injectComponentTree(...): Injected ' + 'module is missing getNodeFromInstance or getInstanceFromNode.') : void 0; } }, injectTreeTraversal: function (Injected) { TreeTraversal = Injected; if (true) { true ? warning(Injected && Injected.isAncestor && Injected.getLowestCommonAncestor, 'EventPluginUtils.injection.injectTreeTraversal(...): Injected ' + 'module is missing isAncestor or getLowestCommonAncestor.') : void 0; } } }; function isEndish(topLevelType) { return topLevelType === 'topMouseUp' || topLevelType === 'topTouchEnd' || topLevelType === 'topTouchCancel'; } function isMoveish(topLevelType) { return topLevelType === 'topMouseMove' || topLevelType === 'topTouchMove'; } function isStartish(topLevelType) { return topLevelType === 'topMouseDown' || topLevelType === 'topTouchStart'; } var validateEventDispatches; if (true) { validateEventDispatches = function (event) { var dispatchListeners = event._dispatchListeners; var dispatchInstances = event._dispatchInstances; var listenersIsArr = Array.isArray(dispatchListeners); var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0; var instancesIsArr = Array.isArray(dispatchInstances); var instancesLen = instancesIsArr ? dispatchInstances.length : dispatchInstances ? 1 : 0; true ? warning(instancesIsArr === listenersIsArr && instancesLen === listenersLen, 'EventPluginUtils: Invalid `event`.') : void 0; }; } /** * Dispatch the event to the listener. * @param {SyntheticEvent} event SyntheticEvent to handle * @param {boolean} simulated If the event is simulated (changes exn behavior) * @param {function} listener Application-level callback * @param {*} inst Internal component instance */ function executeDispatch(event, simulated, listener, inst) { var type = event.type || 'unknown-event'; event.currentTarget = EventPluginUtils.getNodeFromInstance(inst); if (simulated) { ReactErrorUtils.invokeGuardedCallbackWithCatch(type, listener, event); } else { ReactErrorUtils.invokeGuardedCallback(type, listener, event); } event.currentTarget = null; } /** * Standard/simple iteration through an event's collected dispatches. */ function executeDispatchesInOrder(event, simulated) { var dispatchListeners = event._dispatchListeners; var dispatchInstances = event._dispatchInstances; if (true) { validateEventDispatches(event); } if (Array.isArray(dispatchListeners)) { for (var i = 0; i < dispatchListeners.length; i++) { if (event.isPropagationStopped()) { break; } // Listeners and Instances are two parallel arrays that are always in sync. executeDispatch(event, simulated, dispatchListeners[i], dispatchInstances[i]); } } else if (dispatchListeners) { executeDispatch(event, simulated, dispatchListeners, dispatchInstances); } event._dispatchListeners = null; event._dispatchInstances = null; } /** * Standard/simple iteration through an event's collected dispatches, but stops * at the first dispatch execution returning true, and returns that id. * * @return {?string} id of the first dispatch execution who's listener returns * true, or null if no listener returned true. */ function executeDispatchesInOrderStopAtTrueImpl(event) { var dispatchListeners = event._dispatchListeners; var dispatchInstances = event._dispatchInstances; if (true) { validateEventDispatches(event); } if (Array.isArray(dispatchListeners)) { for (var i = 0; i < dispatchListeners.length; i++) { if (event.isPropagationStopped()) { break; } // Listeners and Instances are two parallel arrays that are always in sync. if (dispatchListeners[i](event, dispatchInstances[i])) { return dispatchInstances[i]; } } } else if (dispatchListeners) { if (dispatchListeners(event, dispatchInstances)) { return dispatchInstances; } } return null; } /** * @see executeDispatchesInOrderStopAtTrueImpl */ function executeDispatchesInOrderStopAtTrue(event) { var ret = executeDispatchesInOrderStopAtTrueImpl(event); event._dispatchInstances = null; event._dispatchListeners = null; return ret; } /** * Execution of a "direct" dispatch - there must be at most one dispatch * accumulated on the event or it is considered an error. It doesn't really make * sense for an event with multiple dispatches (bubbled) to keep track of the * return values at each dispatch execution, but it does tend to make sense when * dealing with "direct" dispatches. * * @return {*} The return value of executing the single dispatch. */ function executeDirectDispatch(event) { if (true) { validateEventDispatches(event); } var dispatchListener = event._dispatchListeners; var dispatchInstance = event._dispatchInstances; !!Array.isArray(dispatchListener) ? true ? invariant(false, 'executeDirectDispatch(...): Invalid `event`.') : _prodInvariant('103') : void 0; event.currentTarget = dispatchListener ? EventPluginUtils.getNodeFromInstance(dispatchInstance) : null; var res = dispatchListener ? dispatchListener(event) : null; event.currentTarget = null; event._dispatchListeners = null; event._dispatchInstances = null; return res; } /** * @param {SyntheticEvent} event * @return {boolean} True iff number of dispatches accumulated is greater than 0. */ function hasDispatches(event) { return !!event._dispatchListeners; } /** * General utilities that are useful in creating custom Event Plugins. */ var EventPluginUtils = { isEndish: isEndish, isMoveish: isMoveish, isStartish: isStartish, executeDirectDispatch: executeDirectDispatch, executeDispatchesInOrder: executeDispatchesInOrder, executeDispatchesInOrderStopAtTrue: executeDispatchesInOrderStopAtTrue, hasDispatches: hasDispatches, getInstanceFromNode: function (node) { return ComponentTree.getInstanceFromNode(node); }, getNodeFromInstance: function (node) { return ComponentTree.getNodeFromInstance(node); }, isAncestor: function (a, b) { return TreeTraversal.isAncestor(a, b); }, getLowestCommonAncestor: function (a, b) { return TreeTraversal.getLowestCommonAncestor(a, b); }, getParentInstance: function (inst) { return TreeTraversal.getParentInstance(inst); }, traverseTwoPhase: function (target, fn, arg) { return TreeTraversal.traverseTwoPhase(target, fn, arg); }, traverseEnterLeave: function (from, to, fn, argFrom, argTo) { return TreeTraversal.traverseEnterLeave(from, to, fn, argFrom, argTo); }, injection: injection }; module.exports = EventPluginUtils; /***/ }), /* 41 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ /** * `ReactInstanceMap` maintains a mapping from a public facing stateful * instance (key) and the internal representation (value). This allows public * methods to accept the user facing instance as an argument and map them back * to internal methods. */ // TODO: Replace this with ES6: var ReactInstanceMap = new Map(); var ReactInstanceMap = { /** * This API should be called `delete` but we'd have to make sure to always * transform these to strings for IE support. When this transform is fully * supported we can rename it. */ remove: function (key) { key._reactInternalInstance = undefined; }, get: function (key) { return key._reactInternalInstance; }, has: function (key) { return key._reactInternalInstance !== undefined; }, set: function (key, value) { key._reactInternalInstance = value; } }; module.exports = ReactInstanceMap; /***/ }), /* 42 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var SyntheticEvent = __webpack_require__(15); var getEventTarget = __webpack_require__(77); /** * @interface UIEvent * @see http://www.w3.org/TR/DOM-Level-3-Events/ */ var UIEventInterface = { view: function (event) { if (event.view) { return event.view; } var target = getEventTarget(event); if (target.window === target) { // target is a window object return target; } var doc = target.ownerDocument; // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8. if (doc) { return doc.defaultView || doc.parentWindow; } else { return window; } }, detail: function (event) { return event.detail || 0; } }; /** * @param {object} dispatchConfig Configuration used to dispatch this event. * @param {string} dispatchMarker Marker identifying the event target. * @param {object} nativeEvent Native browser event. * @extends {SyntheticEvent} */ function SyntheticUIEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); } SyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface); module.exports = SyntheticUIEvent; /***/ }), /* 43 */ /***/ (function(module, exports, __webpack_require__) { var _unitlessNumbers=__webpack_require__(150);var _unitlessNumbers2=_interopRequireDefault(_unitlessNumbers);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} var normalizeValue=function normalizeValue(property,value){ if(!_unitlessNumbers2.default[property]&&typeof value==='number'){ value=value+'px'; } return value; }; module.exports=normalizeValue; /***/ }), /* 44 */ /***/ (function(module, exports, __webpack_require__) { var _extends=Object.assign||function(target){for(var i=1;i>> 0 === color && color >= 0 && color <= 0xffffffff) { return color; } return null; } // Ordered based on occurrences on Facebook codebase if ((match = matchers.hex6.exec(color))) { return parseInt(match[1] + 'ff', 16) >>> 0; } if (names.hasOwnProperty(color)) { return names[color]; } if ((match = matchers.rgb.exec(color))) { return ( parse255(match[1]) << 24 | // r parse255(match[2]) << 16 | // g parse255(match[3]) << 8 | // b 0x000000ff // a ) >>> 0; } if ((match = matchers.rgba.exec(color))) { return ( parse255(match[1]) << 24 | // r parse255(match[2]) << 16 | // g parse255(match[3]) << 8 | // b parse1(match[4]) // a ) >>> 0; } if ((match = matchers.hex3.exec(color))) { return parseInt( match[1] + match[1] + // r match[2] + match[2] + // g match[3] + match[3] + // b 'ff', // a 16 ) >>> 0; } // https://drafts.csswg.org/css-color-4/#hex-notation if ((match = matchers.hex8.exec(color))) { return parseInt(match[1], 16) >>> 0; } if ((match = matchers.hex4.exec(color))) { return parseInt( match[1] + match[1] + // r match[2] + match[2] + // g match[3] + match[3] + // b match[4] + match[4], // a 16 ) >>> 0; } if ((match = matchers.hsl.exec(color))) { return ( hslToRgb( parse360(match[1]), // h parsePercentage(match[2]), // s parsePercentage(match[3]) // l ) | 0x000000ff // a ) >>> 0; } if ((match = matchers.hsla.exec(color))) { return ( hslToRgb( parse360(match[1]), // h parsePercentage(match[2]), // s parsePercentage(match[3]) // l ) | parse1(match[4]) // a ) >>> 0; } return null; } function hue2rgb(p, q, t) { if (t < 0) { t += 1; } if (t > 1) { t -= 1; } if (t < 1 / 6) { return p + (q - p) * 6 * t; } if (t < 1 / 2) { return q; } if (t < 2 / 3) { return p + (q - p) * (2 / 3 - t) * 6; } return p; } function hslToRgb(h, s, l) { var q = l < 0.5 ? l * (1 + s) : l + s - l * s; var p = 2 * l - q; var r = hue2rgb(p, q, h + 1 / 3); var g = hue2rgb(p, q, h); var b = hue2rgb(p, q, h - 1 / 3); return ( Math.round(r * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b * 255) << 8 ); } // var INTEGER = '[-+]?\\d+'; var NUMBER = '[-+]?\\d*\\.?\\d+'; var PERCENTAGE = NUMBER + '%'; function toArray(arrayLike) { return Array.prototype.slice.call(arrayLike, 0); } function call() { return '\\(\\s*(' + toArray(arguments).join(')\\s*,\\s*(') + ')\\s*\\)'; } var matchers = { rgb: new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER)), rgba: new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER)), hsl: new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)), hsla: new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER)), hex3: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, hex4: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, hex6: /^#([0-9a-fA-F]{6})$/, hex8: /^#([0-9a-fA-F]{8})$/, }; function parse255(str) { var int = parseInt(str, 10); if (int < 0) { return 0; } if (int > 255) { return 255; } return int; } function parse360(str) { var int = parseFloat(str); return (((int % 360) + 360) % 360) / 360; } function parse1(str) { var num = parseFloat(str); if (num < 0) { return 0; } if (num > 1) { return 255; } return Math.round(num * 255); } function parsePercentage(str) { // parseFloat conveniently ignores the final % var int = parseFloat(str, 10); if (int < 0) { return 0; } if (int > 100) { return 1; } return int / 100; } var names = { transparent: 0x00000000, // http://www.w3.org/TR/css3-color/#svg-color aliceblue: 0xf0f8ffff, antiquewhite: 0xfaebd7ff, aqua: 0x00ffffff, aquamarine: 0x7fffd4ff, azure: 0xf0ffffff, beige: 0xf5f5dcff, bisque: 0xffe4c4ff, black: 0x000000ff, blanchedalmond: 0xffebcdff, blue: 0x0000ffff, blueviolet: 0x8a2be2ff, brown: 0xa52a2aff, burlywood: 0xdeb887ff, burntsienna: 0xea7e5dff, cadetblue: 0x5f9ea0ff, chartreuse: 0x7fff00ff, chocolate: 0xd2691eff, coral: 0xff7f50ff, cornflowerblue: 0x6495edff, cornsilk: 0xfff8dcff, crimson: 0xdc143cff, cyan: 0x00ffffff, darkblue: 0x00008bff, darkcyan: 0x008b8bff, darkgoldenrod: 0xb8860bff, darkgray: 0xa9a9a9ff, darkgreen: 0x006400ff, darkgrey: 0xa9a9a9ff, darkkhaki: 0xbdb76bff, darkmagenta: 0x8b008bff, darkolivegreen: 0x556b2fff, darkorange: 0xff8c00ff, darkorchid: 0x9932ccff, darkred: 0x8b0000ff, darksalmon: 0xe9967aff, darkseagreen: 0x8fbc8fff, darkslateblue: 0x483d8bff, darkslategray: 0x2f4f4fff, darkslategrey: 0x2f4f4fff, darkturquoise: 0x00ced1ff, darkviolet: 0x9400d3ff, deeppink: 0xff1493ff, deepskyblue: 0x00bfffff, dimgray: 0x696969ff, dimgrey: 0x696969ff, dodgerblue: 0x1e90ffff, firebrick: 0xb22222ff, floralwhite: 0xfffaf0ff, forestgreen: 0x228b22ff, fuchsia: 0xff00ffff, gainsboro: 0xdcdcdcff, ghostwhite: 0xf8f8ffff, gold: 0xffd700ff, goldenrod: 0xdaa520ff, gray: 0x808080ff, green: 0x008000ff, greenyellow: 0xadff2fff, grey: 0x808080ff, honeydew: 0xf0fff0ff, hotpink: 0xff69b4ff, indianred: 0xcd5c5cff, indigo: 0x4b0082ff, ivory: 0xfffff0ff, khaki: 0xf0e68cff, lavender: 0xe6e6faff, lavenderblush: 0xfff0f5ff, lawngreen: 0x7cfc00ff, lemonchiffon: 0xfffacdff, lightblue: 0xadd8e6ff, lightcoral: 0xf08080ff, lightcyan: 0xe0ffffff, lightgoldenrodyellow: 0xfafad2ff, lightgray: 0xd3d3d3ff, lightgreen: 0x90ee90ff, lightgrey: 0xd3d3d3ff, lightpink: 0xffb6c1ff, lightsalmon: 0xffa07aff, lightseagreen: 0x20b2aaff, lightskyblue: 0x87cefaff, lightslategray: 0x778899ff, lightslategrey: 0x778899ff, lightsteelblue: 0xb0c4deff, lightyellow: 0xffffe0ff, lime: 0x00ff00ff, limegreen: 0x32cd32ff, linen: 0xfaf0e6ff, magenta: 0xff00ffff, maroon: 0x800000ff, mediumaquamarine: 0x66cdaaff, mediumblue: 0x0000cdff, mediumorchid: 0xba55d3ff, mediumpurple: 0x9370dbff, mediumseagreen: 0x3cb371ff, mediumslateblue: 0x7b68eeff, mediumspringgreen: 0x00fa9aff, mediumturquoise: 0x48d1ccff, mediumvioletred: 0xc71585ff, midnightblue: 0x191970ff, mintcream: 0xf5fffaff, mistyrose: 0xffe4e1ff, moccasin: 0xffe4b5ff, navajowhite: 0xffdeadff, navy: 0x000080ff, oldlace: 0xfdf5e6ff, olive: 0x808000ff, olivedrab: 0x6b8e23ff, orange: 0xffa500ff, orangered: 0xff4500ff, orchid: 0xda70d6ff, palegoldenrod: 0xeee8aaff, palegreen: 0x98fb98ff, paleturquoise: 0xafeeeeff, palevioletred: 0xdb7093ff, papayawhip: 0xffefd5ff, peachpuff: 0xffdab9ff, peru: 0xcd853fff, pink: 0xffc0cbff, plum: 0xdda0ddff, powderblue: 0xb0e0e6ff, purple: 0x800080ff, rebeccapurple: 0x663399ff, red: 0xff0000ff, rosybrown: 0xbc8f8fff, royalblue: 0x4169e1ff, saddlebrown: 0x8b4513ff, salmon: 0xfa8072ff, sandybrown: 0xf4a460ff, seagreen: 0x2e8b57ff, seashell: 0xfff5eeff, sienna: 0xa0522dff, silver: 0xc0c0c0ff, skyblue: 0x87ceebff, slateblue: 0x6a5acdff, slategray: 0x708090ff, slategrey: 0x708090ff, snow: 0xfffafaff, springgreen: 0x00ff7fff, steelblue: 0x4682b4ff, tan: 0xd2b48cff, teal: 0x008080ff, thistle: 0xd8bfd8ff, tomato: 0xff6347ff, turquoise: 0x40e0d0ff, violet: 0xee82eeff, wheat: 0xf5deb3ff, white: 0xffffffff, whitesmoke: 0xf5f5f5ff, yellow: 0xffff00ff, yellowgreen: 0x9acd32ff, }; function rgba(colorInt) { var r = Math.round(((colorInt & 0xff000000) >>> 24)); var g = Math.round(((colorInt & 0x00ff0000) >>> 16)); var b = Math.round(((colorInt & 0x0000ff00) >>> 8)); var a = ((colorInt & 0x000000ff) >>> 0) / 255; return { r: r, g: g, b: b, a: a, }; }; normalizeColor.rgba = rgba; module.exports = normalizeColor; /***/ }), /* 51 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = __webpack_require__(234); /***/ }), /* 52 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ var _prodInvariant = __webpack_require__(2); var invariant = __webpack_require__(0); /** * Injectable ordering of event plugins. */ var eventPluginOrder = null; /** * Injectable mapping from names to event plugin modules. */ var namesToPlugins = {}; /** * Recomputes the plugin list using the injected plugins and plugin ordering. * * @private */ function recomputePluginOrdering() { if (!eventPluginOrder) { // Wait until an `eventPluginOrder` is injected. return; } for (var pluginName in namesToPlugins) { var pluginModule = namesToPlugins[pluginName]; var pluginIndex = eventPluginOrder.indexOf(pluginName); !(pluginIndex > -1) ? true ? invariant(false, 'EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `%s`.', pluginName) : _prodInvariant('96', pluginName) : void 0; if (EventPluginRegistry.plugins[pluginIndex]) { continue; } !pluginModule.extractEvents ? true ? invariant(false, 'EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `%s` does not.', pluginName) : _prodInvariant('97', pluginName) : void 0; EventPluginRegistry.plugins[pluginIndex] = pluginModule; var publishedEvents = pluginModule.eventTypes; for (var eventName in publishedEvents) { !publishEventForPlugin(publishedEvents[eventName], pluginModule, eventName) ? true ? invariant(false, 'EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.', eventName, pluginName) : _prodInvariant('98', eventName, pluginName) : void 0; } } } /** * Publishes an event so that it can be dispatched by the supplied plugin. * * @param {object} dispatchConfig Dispatch configuration for the event. * @param {object} PluginModule Plugin publishing the event. * @return {boolean} True if the event was successfully published. * @private */ function publishEventForPlugin(dispatchConfig, pluginModule, eventName) { !!EventPluginRegistry.eventNameDispatchConfigs.hasOwnProperty(eventName) ? true ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same event name, `%s`.', eventName) : _prodInvariant('99', eventName) : void 0; EventPluginRegistry.eventNameDispatchConfigs[eventName] = dispatchConfig; var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames; if (phasedRegistrationNames) { for (var phaseName in phasedRegistrationNames) { if (phasedRegistrationNames.hasOwnProperty(phaseName)) { var phasedRegistrationName = phasedRegistrationNames[phaseName]; publishRegistrationName(phasedRegistrationName, pluginModule, eventName); } } return true; } else if (dispatchConfig.registrationName) { publishRegistrationName(dispatchConfig.registrationName, pluginModule, eventName); return true; } return false; } /** * Publishes a registration name that is used to identify dispatched events and * can be used with `EventPluginHub.putListener` to register listeners. * * @param {string} registrationName Registration name to add. * @param {object} PluginModule Plugin publishing the event. * @private */ function publishRegistrationName(registrationName, pluginModule, eventName) { !!EventPluginRegistry.registrationNameModules[registrationName] ? true ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same registration name, `%s`.', registrationName) : _prodInvariant('100', registrationName) : void 0; EventPluginRegistry.registrationNameModules[registrationName] = pluginModule; EventPluginRegistry.registrationNameDependencies[registrationName] = pluginModule.eventTypes[eventName].dependencies; if (true) { var lowerCasedName = registrationName.toLowerCase(); EventPluginRegistry.possibleRegistrationNames[lowerCasedName] = registrationName; if (registrationName === 'onDoubleClick') { EventPluginRegistry.possibleRegistrationNames.ondblclick = registrationName; } } } /** * Registers plugins so that they can extract and dispatch events. * * @see {EventPluginHub} */ var EventPluginRegistry = { /** * Ordered list of injected plugins. */ plugins: [], /** * Mapping from event name to dispatch config */ eventNameDispatchConfigs: {}, /** * Mapping from registration name to plugin module */ registrationNameModules: {}, /** * Mapping from registration name to event name */ registrationNameDependencies: {}, /** * Mapping from lowercase registration names to the properly cased version, * used to warn in the case of missing event handlers. Available * only in __DEV__. * @type {Object} */ possibleRegistrationNames: true ? {} : null, // Trust the developer to only use possibleRegistrationNames in __DEV__ /** * Injects an ordering of plugins (by plugin name). This allows the ordering * to be decoupled from injection of the actual plugins so that ordering is * always deterministic regardless of packaging, on-the-fly injection, etc. * * @param {array} InjectedEventPluginOrder * @internal * @see {EventPluginHub.injection.injectEventPluginOrder} */ injectEventPluginOrder: function (injectedEventPluginOrder) { !!eventPluginOrder ? true ? invariant(false, 'EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.') : _prodInvariant('101') : void 0; // Clone the ordering so it cannot be dynamically mutated. eventPluginOrder = Array.prototype.slice.call(injectedEventPluginOrder); recomputePluginOrdering(); }, /** * Injects plugins to be used by `EventPluginHub`. The plugin names must be * in the ordering injected by `injectEventPluginOrder`. * * Plugins can be injected as part of page initialization or on-the-fly. * * @param {object} injectedNamesToPlugins Map from names to plugin modules. * @internal * @see {EventPluginHub.injection.injectEventPluginsByName} */ injectEventPluginsByName: function (injectedNamesToPlugins) { var isOrderingDirty = false; for (var pluginName in injectedNamesToPlugins) { if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) { continue; } var pluginModule = injectedNamesToPlugins[pluginName]; if (!namesToPlugins.hasOwnProperty(pluginName) || namesToPlugins[pluginName] !== pluginModule) { !!namesToPlugins[pluginName] ? true ? invariant(false, 'EventPluginRegistry: Cannot inject two different event plugins using the same name, `%s`.', pluginName) : _prodInvariant('102', pluginName) : void 0; namesToPlugins[pluginName] = pluginModule; isOrderingDirty = true; } } if (isOrderingDirty) { recomputePluginOrdering(); } }, /** * Looks up the plugin for the supplied event. * * @param {object} event A synthetic event. * @return {?object} The plugin that created the supplied event. * @internal */ getPluginModuleForEvent: function (event) { var dispatchConfig = event.dispatchConfig; if (dispatchConfig.registrationName) { return EventPluginRegistry.registrationNameModules[dispatchConfig.registrationName] || null; } if (dispatchConfig.phasedRegistrationNames !== undefined) { // pulling phasedRegistrationNames out of dispatchConfig helps Flow see // that it is not undefined. var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames; for (var phase in phasedRegistrationNames) { if (!phasedRegistrationNames.hasOwnProperty(phase)) { continue; } var pluginModule = EventPluginRegistry.registrationNameModules[phasedRegistrationNames[phase]]; if (pluginModule) { return pluginModule; } } } return null; }, /** * Exposed for unit testing. * @private */ _resetEventPlugins: function () { eventPluginOrder = null; for (var pluginName in namesToPlugins) { if (namesToPlugins.hasOwnProperty(pluginName)) { delete namesToPlugins[pluginName]; } } EventPluginRegistry.plugins.length = 0; var eventNameDispatchConfigs = EventPluginRegistry.eventNameDispatchConfigs; for (var eventName in eventNameDispatchConfigs) { if (eventNameDispatchConfigs.hasOwnProperty(eventName)) { delete eventNameDispatchConfigs[eventName]; } } var registrationNameModules = EventPluginRegistry.registrationNameModules; for (var registrationName in registrationNameModules) { if (registrationNameModules.hasOwnProperty(registrationName)) { delete registrationNameModules[registrationName]; } } if (true) { var possibleRegistrationNames = EventPluginRegistry.possibleRegistrationNames; for (var lowerCasedName in possibleRegistrationNames) { if (possibleRegistrationNames.hasOwnProperty(lowerCasedName)) { delete possibleRegistrationNames[lowerCasedName]; } } } } }; module.exports = EventPluginRegistry; /***/ }), /* 53 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _assign = __webpack_require__(6); var EventPluginRegistry = __webpack_require__(52); var ReactEventEmitterMixin = __webpack_require__(253); var ViewportMetrics = __webpack_require__(128); var getVendorPrefixedEventName = __webpack_require__(291); var isEventSupported = __webpack_require__(78); /** * Summary of `ReactBrowserEventEmitter` event handling: * * - Top-level delegation is used to trap most native browser events. This * may only occur in the main thread and is the responsibility of * ReactEventListener, which is injected and can therefore support pluggable * event sources. This is the only work that occurs in the main thread. * * - We normalize and de-duplicate events to account for browser quirks. This * may be done in the worker thread. * * - Forward these native events (with the associated top-level type used to * trap it) to `EventPluginHub`, which in turn will ask plugins if they want * to extract any synthetic events. * * - The `EventPluginHub` will then process each event by annotating them with * "dispatches", a sequence of listeners and IDs that care about that event. * * - The `EventPluginHub` then dispatches the events. * * Overview of React and the event system: * * +------------+ . * | DOM | . * +------------+ . * | . * v . * +------------+ . * | ReactEvent | . * | Listener | . * +------------+ . +-----------+ * | . +--------+|SimpleEvent| * | . | |Plugin | * +-----|------+ . v +-----------+ * | | | . +--------------+ +------------+ * | +-----------.--->|EventPluginHub| | Event | * | | . | | +-----------+ | Propagators| * | ReactEvent | . | | |TapEvent | |------------| * | Emitter | . | |<---+|Plugin | |other plugin| * | | . | | +-----------+ | utilities | * | +-----------.--->| | +------------+ * | | | . +--------------+ * +-----|------+ . ^ +-----------+ * | . | |Enter/Leave| * + . +-------+|Plugin | * +-------------+ . +-----------+ * | application | . * |-------------| . * | | . * | | . * +-------------+ . * . * React Core . General Purpose Event Plugin System */ var hasEventPageXY; var alreadyListeningTo = {}; var isMonitoringScrollValue = false; var reactTopListenersCounter = 0; // For events like 'submit' which don't consistently bubble (which we trap at a // lower node than `document`), binding at `document` would cause duplicate // events so we don't include them here var topEventMapping = { topAbort: 'abort', topAnimationEnd: getVendorPrefixedEventName('animationend') || 'animationend', topAnimationIteration: getVendorPrefixedEventName('animationiteration') || 'animationiteration', topAnimationStart: getVendorPrefixedEventName('animationstart') || 'animationstart', topBlur: 'blur', topCanPlay: 'canplay', topCanPlayThrough: 'canplaythrough', topChange: 'change', topClick: 'click', topCompositionEnd: 'compositionend', topCompositionStart: 'compositionstart', topCompositionUpdate: 'compositionupdate', topContextMenu: 'contextmenu', topCopy: 'copy', topCut: 'cut', topDoubleClick: 'dblclick', topDrag: 'drag', topDragEnd: 'dragend', topDragEnter: 'dragenter', topDragExit: 'dragexit', topDragLeave: 'dragleave', topDragOver: 'dragover', topDragStart: 'dragstart', topDrop: 'drop', topDurationChange: 'durationchange', topEmptied: 'emptied', topEncrypted: 'encrypted', topEnded: 'ended', topError: 'error', topFocus: 'focus', topInput: 'input', topKeyDown: 'keydown', topKeyPress: 'keypress', topKeyUp: 'keyup', topLoadedData: 'loadeddata', topLoadedMetadata: 'loadedmetadata', topLoadStart: 'loadstart', topMouseDown: 'mousedown', topMouseMove: 'mousemove', topMouseOut: 'mouseout', topMouseOver: 'mouseover', topMouseUp: 'mouseup', topPaste: 'paste', topPause: 'pause', topPlay: 'play', topPlaying: 'playing', topProgress: 'progress', topRateChange: 'ratechange', topScroll: 'scroll', topSeeked: 'seeked', topSeeking: 'seeking', topSelectionChange: 'selectionchange', topStalled: 'stalled', topSuspend: 'suspend', topTextInput: 'textInput', topTimeUpdate: 'timeupdate', topTouchCancel: 'touchcancel', topTouchEnd: 'touchend', topTouchMove: 'touchmove', topTouchStart: 'touchstart', topTransitionEnd: getVendorPrefixedEventName('transitionend') || 'transitionend', topVolumeChange: 'volumechange', topWaiting: 'waiting', topWheel: 'wheel' }; /** * To ensure no conflicts with other potential React instances on the page */ var topListenersIDKey = '_reactListenersID' + String(Math.random()).slice(2); function getListeningForDocument(mountAt) { // In IE8, `mountAt` is a host object and doesn't have `hasOwnProperty` // directly. if (!Object.prototype.hasOwnProperty.call(mountAt, topListenersIDKey)) { mountAt[topListenersIDKey] = reactTopListenersCounter++; alreadyListeningTo[mountAt[topListenersIDKey]] = {}; } return alreadyListeningTo[mountAt[topListenersIDKey]]; } /** * `ReactBrowserEventEmitter` is used to attach top-level event listeners. For * example: * * EventPluginHub.putListener('myID', 'onClick', myFunction); * * This would allocate a "registration" of `('onClick', myFunction)` on 'myID'. * * @internal */ var ReactBrowserEventEmitter = _assign({}, ReactEventEmitterMixin, { /** * Injectable event backend */ ReactEventListener: null, injection: { /** * @param {object} ReactEventListener */ injectReactEventListener: function (ReactEventListener) { ReactEventListener.setHandleTopLevel(ReactBrowserEventEmitter.handleTopLevel); ReactBrowserEventEmitter.ReactEventListener = ReactEventListener; } }, /** * Sets whether or not any created callbacks should be enabled. * * @param {boolean} enabled True if callbacks should be enabled. */ setEnabled: function (enabled) { if (ReactBrowserEventEmitter.ReactEventListener) { ReactBrowserEventEmitter.ReactEventListener.setEnabled(enabled); } }, /** * @return {boolean} True if callbacks are enabled. */ isEnabled: function () { return !!(ReactBrowserEventEmitter.ReactEventListener && ReactBrowserEventEmitter.ReactEventListener.isEnabled()); }, /** * We listen for bubbled touch events on the document object. * * Firefox v8.01 (and possibly others) exhibited strange behavior when * mounting `onmousemove` events at some node that was not the document * element. The symptoms were that if your mouse is not moving over something * contained within that mount point (for example on the background) the * top-level listeners for `onmousemove` won't be called. However, if you * register the `mousemove` on the document object, then it will of course * catch all `mousemove`s. This along with iOS quirks, justifies restricting * top-level listeners to the document object only, at least for these * movement types of events and possibly all events. * * @see http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html * * Also, `keyup`/`keypress`/`keydown` do not bubble to the window on IE, but * they bubble to document. * * @param {string} registrationName Name of listener (e.g. `onClick`). * @param {object} contentDocumentHandle Document which owns the container */ listenTo: function (registrationName, contentDocumentHandle) { var mountAt = contentDocumentHandle; var isListening = getListeningForDocument(mountAt); var dependencies = EventPluginRegistry.registrationNameDependencies[registrationName]; for (var i = 0; i < dependencies.length; i++) { var dependency = dependencies[i]; if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) { if (dependency === 'topWheel') { if (isEventSupported('wheel')) { ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'wheel', mountAt); } else if (isEventSupported('mousewheel')) { ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'mousewheel', mountAt); } else { // Firefox needs to capture a different mouse scroll event. // @see http://www.quirksmode.org/dom/events/tests/scroll.html ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'DOMMouseScroll', mountAt); } } else if (dependency === 'topScroll') { if (isEventSupported('scroll', true)) { ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topScroll', 'scroll', mountAt); } else { ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topScroll', 'scroll', ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE); } } else if (dependency === 'topFocus' || dependency === 'topBlur') { if (isEventSupported('focus', true)) { ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topFocus', 'focus', mountAt); ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topBlur', 'blur', mountAt); } else if (isEventSupported('focusin')) { // IE has `focusin` and `focusout` events which bubble. // @see http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topFocus', 'focusin', mountAt); ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topBlur', 'focusout', mountAt); } // to make sure blur and focus event listeners are only attached once isListening.topBlur = true; isListening.topFocus = true; } else if (topEventMapping.hasOwnProperty(dependency)) { ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(dependency, topEventMapping[dependency], mountAt); } isListening[dependency] = true; } } }, trapBubbledEvent: function (topLevelType, handlerBaseName, handle) { return ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelType, handlerBaseName, handle); }, trapCapturedEvent: function (topLevelType, handlerBaseName, handle) { return ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelType, handlerBaseName, handle); }, /** * Protect against document.createEvent() returning null * Some popup blocker extensions appear to do this: * https://github.com/facebook/react/issues/6887 */ supportsEventPageXY: function () { if (!document.createEvent) { return false; } var ev = document.createEvent('MouseEvent'); return ev != null && 'pageX' in ev; }, /** * Listens to window scroll and resize events. We cache scroll values so that * application code can access them without triggering reflows. * * ViewportMetrics is only used by SyntheticMouse/TouchEvent and only when * pageX/pageY isn't supported (legacy browsers). * * NOTE: Scroll events do not bubble. * * @see http://www.quirksmode.org/dom/events/scroll.html */ ensureScrollValueMonitoring: function () { if (hasEventPageXY === undefined) { hasEventPageXY = ReactBrowserEventEmitter.supportsEventPageXY(); } if (!hasEventPageXY && !isMonitoringScrollValue) { var refresh = ViewportMetrics.refreshScrollValues; ReactBrowserEventEmitter.ReactEventListener.monitorScrollValue(refresh); isMonitoringScrollValue = true; } } }); module.exports = ReactBrowserEventEmitter; /***/ }), /* 54 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var SyntheticUIEvent = __webpack_require__(42); var ViewportMetrics = __webpack_require__(128); var getEventModifierState = __webpack_require__(76); /** * @interface MouseEvent * @see http://www.w3.org/TR/DOM-Level-3-Events/ */ var MouseEventInterface = { screenX: null, screenY: null, clientX: null, clientY: null, ctrlKey: null, shiftKey: null, altKey: null, metaKey: null, getModifierState: getEventModifierState, button: function (event) { // Webkit, Firefox, IE9+ // which: 1 2 3 // button: 0 1 2 (standard) var button = event.button; if ('which' in event) { return button; } // IE<9 // which: undefined // button: 0 0 0 // button: 1 4 2 (onmouseup) return button === 2 ? 2 : button === 4 ? 1 : 0; }, buttons: null, relatedTarget: function (event) { return event.relatedTarget || (event.fromElement === event.srcElement ? event.toElement : event.fromElement); }, // "Proprietary" Interface. pageX: function (event) { return 'pageX' in event ? event.pageX : event.clientX + ViewportMetrics.currentScrollLeft; }, pageY: function (event) { return 'pageY' in event ? event.pageY : event.clientY + ViewportMetrics.currentScrollTop; } }; /** * @param {object} dispatchConfig Configuration used to dispatch this event. * @param {string} dispatchMarker Marker identifying the event target. * @param {object} nativeEvent Native browser event. * @extends {SyntheticUIEvent} */ function SyntheticMouseEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); } SyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface); module.exports = SyntheticMouseEvent; /***/ }), /* 55 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ var _prodInvariant = __webpack_require__(2); var invariant = __webpack_require__(0); var OBSERVED_ERROR = {}; /** * `Transaction` creates a black box that is able to wrap any method such that * certain invariants are maintained before and after the method is invoked * (Even if an exception is thrown while invoking the wrapped method). Whoever * instantiates a transaction can provide enforcers of the invariants at * creation time. The `Transaction` class itself will supply one additional * automatic invariant for you - the invariant that any transaction instance * should not be run while it is already being run. You would typically create a * single instance of a `Transaction` for reuse multiple times, that potentially * is used to wrap several different methods. Wrappers are extremely simple - * they only require implementing two methods. * *
 *                       wrappers (injected at creation time)
 *                                      +        +
 *                                      |        |
 *                    +-----------------|--------|--------------+
 *                    |                 v        |              |
 *                    |      +---------------+   |              |
 *                    |   +--|    wrapper1   |---|----+         |
 *                    |   |  +---------------+   v    |         |
 *                    |   |          +-------------+  |         |
 *                    |   |     +----|   wrapper2  |--------+   |
 *                    |   |     |    +-------------+  |     |   |
 *                    |   |     |                     |     |   |
 *                    |   v     v                     v     v   | wrapper
 *                    | +---+ +---+   +---------+   +---+ +---+ | invariants
 * perform(anyMethod) | |   | |   |   |         |   |   | |   | | maintained
 * +----------------->|-|---|-|---|-->|anyMethod|---|---|-|---|-|-------->
 *                    | |   | |   |   |         |   |   | |   | |
 *                    | |   | |   |   |         |   |   | |   | |
 *                    | |   | |   |   |         |   |   | |   | |
 *                    | +---+ +---+   +---------+   +---+ +---+ |
 *                    |  initialize                    close    |
 *                    +-----------------------------------------+
 * 
* * Use cases: * - Preserving the input selection ranges before/after reconciliation. * Restoring selection even in the event of an unexpected error. * - Deactivating events while rearranging the DOM, preventing blurs/focuses, * while guaranteeing that afterwards, the event system is reactivated. * - Flushing a queue of collected DOM mutations to the main UI thread after a * reconciliation takes place in a worker thread. * - Invoking any collected `componentDidUpdate` callbacks after rendering new * content. * - (Future use case): Wrapping particular flushes of the `ReactWorker` queue * to preserve the `scrollTop` (an automatic scroll aware DOM). * - (Future use case): Layout calculations before and after DOM updates. * * Transactional plugin API: * - A module that has an `initialize` method that returns any precomputation. * - and a `close` method that accepts the precomputation. `close` is invoked * when the wrapped process is completed, or has failed. * * @param {Array} transactionWrapper Wrapper modules * that implement `initialize` and `close`. * @return {Transaction} Single transaction for reuse in thread. * * @class Transaction */ var TransactionImpl = { /** * Sets up this instance so that it is prepared for collecting metrics. Does * so such that this setup method may be used on an instance that is already * initialized, in a way that does not consume additional memory upon reuse. * That can be useful if you decide to make your subclass of this mixin a * "PooledClass". */ reinitializeTransaction: function () { this.transactionWrappers = this.getTransactionWrappers(); if (this.wrapperInitData) { this.wrapperInitData.length = 0; } else { this.wrapperInitData = []; } this._isInTransaction = false; }, _isInTransaction: false, /** * @abstract * @return {Array} Array of transaction wrappers. */ getTransactionWrappers: null, isInTransaction: function () { return !!this._isInTransaction; }, /** * Executes the function within a safety window. Use this for the top level * methods that result in large amounts of computation/mutations that would * need to be safety checked. The optional arguments helps prevent the need * to bind in many cases. * * @param {function} method Member of scope to call. * @param {Object} scope Scope to invoke from. * @param {Object?=} a Argument to pass to the method. * @param {Object?=} b Argument to pass to the method. * @param {Object?=} c Argument to pass to the method. * @param {Object?=} d Argument to pass to the method. * @param {Object?=} e Argument to pass to the method. * @param {Object?=} f Argument to pass to the method. * * @return {*} Return value from `method`. */ perform: function (method, scope, a, b, c, d, e, f) { !!this.isInTransaction() ? true ? invariant(false, 'Transaction.perform(...): Cannot initialize a transaction when there is already an outstanding transaction.') : _prodInvariant('27') : void 0; var errorThrown; var ret; try { this._isInTransaction = true; // Catching errors makes debugging more difficult, so we start with // errorThrown set to true before setting it to false after calling // close -- if it's still set to true in the finally block, it means // one of these calls threw. errorThrown = true; this.initializeAll(0); ret = method.call(scope, a, b, c, d, e, f); errorThrown = false; } finally { try { if (errorThrown) { // If `method` throws, prefer to show that stack trace over any thrown // by invoking `closeAll`. try { this.closeAll(0); } catch (err) {} } else { // Since `method` didn't throw, we don't want to silence the exception // here. this.closeAll(0); } } finally { this._isInTransaction = false; } } return ret; }, initializeAll: function (startIndex) { var transactionWrappers = this.transactionWrappers; for (var i = startIndex; i < transactionWrappers.length; i++) { var wrapper = transactionWrappers[i]; try { // Catching errors makes debugging more difficult, so we start with the // OBSERVED_ERROR state before overwriting it with the real return value // of initialize -- if it's still set to OBSERVED_ERROR in the finally // block, it means wrapper.initialize threw. this.wrapperInitData[i] = OBSERVED_ERROR; this.wrapperInitData[i] = wrapper.initialize ? wrapper.initialize.call(this) : null; } finally { if (this.wrapperInitData[i] === OBSERVED_ERROR) { // The initializer for wrapper i threw an error; initialize the // remaining wrappers but silence any exceptions from them to ensure // that the first error is the one to bubble up. try { this.initializeAll(i + 1); } catch (err) {} } } } }, /** * Invokes each of `this.transactionWrappers.close[i]` functions, passing into * them the respective return values of `this.transactionWrappers.init[i]` * (`close`rs that correspond to initializers that failed will not be * invoked). */ closeAll: function (startIndex) { !this.isInTransaction() ? true ? invariant(false, 'Transaction.closeAll(): Cannot close transaction when none are open.') : _prodInvariant('28') : void 0; var transactionWrappers = this.transactionWrappers; for (var i = startIndex; i < transactionWrappers.length; i++) { var wrapper = transactionWrappers[i]; var initData = this.wrapperInitData[i]; var errorThrown; try { // Catching errors makes debugging more difficult, so we start with // errorThrown set to true before setting it to false after calling // close -- if it's still set to true in the finally block, it means // wrapper.close threw. errorThrown = true; if (initData !== OBSERVED_ERROR && wrapper.close) { wrapper.close.call(this, initData); } errorThrown = false; } finally { if (errorThrown) { // The closer for wrapper i threw an error; close the remaining // wrappers but silence any exceptions from them to ensure that the // first error is the one to bubble up. try { this.closeAll(i + 1); } catch (e) {} } } } this.wrapperInitData.length = 0; } }; module.exports = TransactionImpl; /***/ }), /* 56 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2016-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * Based on the escape-html library, which is used under the MIT License below: * * Copyright (c) 2012-2013 TJ Holowaychuk * Copyright (c) 2015 Andreas Lubbe * Copyright (c) 2015 Tiancheng "Timothy" Gu * * 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. * */ // code copied and modified from escape-html /** * Module variables. * @private */ var matchHtmlRegExp = /["'&<>]/; /** * Escape special characters in the given string of html. * * @param {string} string The string to escape for inserting into HTML * @return {string} * @public */ function escapeHtml(string) { var str = '' + string; var match = matchHtmlRegExp.exec(str); if (!match) { return str; } var escape; var html = ''; var index = 0; var lastIndex = 0; for (index = match.index; index < str.length; index++) { switch (str.charCodeAt(index)) { case 34: // " escape = '"'; break; case 38: // & escape = '&'; break; case 39: // ' escape = '''; // modified from escape-html; used to be ''' break; case 60: // < escape = '<'; break; case 62: // > escape = '>'; break; default: continue; } if (lastIndex !== index) { html += str.substring(lastIndex, index); } lastIndex = index + 1; html += escape; } return lastIndex !== index ? html + str.substring(lastIndex, index) : html; } // end code copied and modified from escape-html /** * Escapes text to prevent scripting attacks. * * @param {*} text Text value to escape. * @return {string} An escaped string. */ function escapeTextContentForBrowser(text) { if (typeof text === 'boolean' || typeof text === 'number') { // this shortcircuit helps perf for types that we know will never have // special characters, especially given that this function is used often // for numeric dom ids. return '' + text; } return escapeHtml(text); } module.exports = escapeTextContentForBrowser; /***/ }), /* 57 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var ExecutionEnvironment = __webpack_require__(4); var DOMNamespaces = __webpack_require__(68); var WHITESPACE_TEST = /^[ \r\n\t\f]/; var NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/; var createMicrosoftUnsafeLocalFunction = __webpack_require__(74); // SVG temp container for IE lacking innerHTML var reusableSVGContainer; /** * Set the innerHTML property of a node, ensuring that whitespace is preserved * even in IE8. * * @param {DOMElement} node * @param {string} html * @internal */ var setInnerHTML = createMicrosoftUnsafeLocalFunction(function (node, html) { // IE does not have innerHTML for SVG nodes, so instead we inject the // new markup in a temp node and then move the child nodes across into // the target node if (node.namespaceURI === DOMNamespaces.svg && !('innerHTML' in node)) { reusableSVGContainer = reusableSVGContainer || document.createElement('div'); reusableSVGContainer.innerHTML = '' + html + ''; var svgNode = reusableSVGContainer.firstChild; while (svgNode.firstChild) { node.appendChild(svgNode.firstChild); } } else { node.innerHTML = html; } }); if (ExecutionEnvironment.canUseDOM) { // IE8: When updating a just created node with innerHTML only leading // whitespace is removed. When updating an existing node with innerHTML // whitespace in root TextNodes is also collapsed. // @see quirksmode.org/bugreports/archives/2004/11/innerhtml_and_t.html // Feature detection; only IE8 is known to behave improperly like this. var testElement = document.createElement('div'); testElement.innerHTML = ' '; if (testElement.innerHTML === '') { setInnerHTML = function (node, html) { // Magic theory: IE8 supposedly differentiates between added and updated // nodes when processing innerHTML, innerHTML on updated nodes suffers // from worse whitespace behavior. Re-adding a node like this triggers // the initial and more favorable whitespace behavior. // TODO: What to do on a detached node? if (node.parentNode) { node.parentNode.replaceChild(node, node); } // We also implement a workaround for non-visible tags disappearing into // thin air on IE8, this only happens if there is no visible text // in-front of the non-visible tags. Piggyback on the whitespace fix // and simply check if any non-visible tags appear in the source. if (WHITESPACE_TEST.test(html) || html[0] === '<' && NONVISIBLE_TEST.test(html)) { // Recover leading whitespace by temporarily prepending any character. // \uFEFF has the potential advantage of being zero-width/invisible. // UglifyJS drops U+FEFF chars when parsing, so use String.fromCharCode // in hopes that this is preserved even if "\uFEFF" is transformed to // the actual Unicode character (by Babel, for example). // https://github.com/mishoo/UglifyJS2/blob/v2.4.20/lib/parse.js#L216 node.innerHTML = String.fromCharCode(0xFEFF) + html; // deleteData leaves an empty `TextNode` which offsets the index of all // children. Definitely want to avoid this. var textNode = node.firstChild; if (textNode.data.length === 1) { node.removeChild(textNode); } else { textNode.deleteData(0, 1); } } else { node.innerHTML = html; } }; } testElement = null; } module.exports = setInnerHTML; /***/ }), /* 58 */ /***/ (function(module, exports, __webpack_require__) { var _extends=Object.assign||function(target){for(var i=1;i=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;} var emptyObject={}; var ScrollView=(0,_createReactClass2.default)({ propTypes:_extends({},_ViewPropTypes2.default,{ contentContainerStyle:(0,_StyleSheetPropType2.default)(_ViewStylePropTypes2.default), horizontal:_propTypes.bool, keyboardDismissMode:(0,_propTypes.oneOf)(['none','interactive','on-drag']), onContentSizeChange:_propTypes.func, onScroll:_propTypes.func, pagingEnabled:_propTypes.bool, refreshControl:_propTypes.element, scrollEnabled:_propTypes.bool, scrollEventThrottle:_propTypes.number, style:(0,_StyleSheetPropType2.default)(_ViewStylePropTypes2.default)}), mixins:[_ScrollResponder2.default.Mixin], getInitialState:function getInitialState(){ return this.scrollResponderMixinGetInitialState(); }, setNativeProps:function setNativeProps(props){ this._scrollViewRef.setNativeProps(props); }, getScrollResponder:function getScrollResponder(){ return this; }, getScrollableNode:function getScrollableNode(){ return(0,_findNodeHandle2.default)(this._scrollViewRef); }, getInnerViewNode:function getInnerViewNode(){ return(0,_findNodeHandle2.default)(this._innerViewRef); }, scrollTo:function scrollTo( y, x, animated) { if(typeof y==='number'){ console.warn( '`scrollTo(y, x, animated)` is deprecated. Use `scrollTo({x: 5, y: 5, animated: true})` instead.'); }else{var _ref= y||emptyObject;x=_ref.x;y=_ref.y;animated=_ref.animated; } this.getScrollResponder().scrollResponderScrollTo({ x:x||0, y:y||0, animated:animated!==false}); }, scrollWithoutAnimationTo:function scrollWithoutAnimationTo(){var y=arguments.length>0&&arguments[0]!==undefined?arguments[0]:0;var x=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0; console.warn('`scrollWithoutAnimationTo` is deprecated. Use `scrollTo` instead'); this.scrollTo({x:x,y:y,animated:false}); }, render:function render(){var _props= this.props,contentContainerStyle=_props.contentContainerStyle,horizontal=_props.horizontal,onContentSizeChange=_props.onContentSizeChange,refreshControl=_props.refreshControl,keyboardDismissMode=_props.keyboardDismissMode,onScroll=_props.onScroll,pagingEnabled=_props.pagingEnabled,other=_objectWithoutProperties(_props,['contentContainerStyle','horizontal','onContentSizeChange','refreshControl','keyboardDismissMode','onScroll','pagingEnabled']); if("development"!=='production'&&this.props.style){ var style=_StyleSheet2.default.flatten(this.props.style); var childLayoutProps=['alignItems','justifyContent'].filter( function(prop){return style&&style[prop]!==undefined;}); (0,_invariant2.default)( childLayoutProps.length===0, 'ScrollView child layout ('+JSON.stringify(childLayoutProps)+') '+ 'must be applied through the contentContainerStyle prop.'); } var contentSizeChangeProps={}; if(onContentSizeChange){ contentSizeChangeProps={ onLayout:this._handleContentOnLayout}; } var contentContainer= _react2.default.createElement(_View2.default,_extends({}, contentSizeChangeProps,{ children:this.props.children, collapsable:false, ref:this._setInnerViewRef, style:[horizontal&&styles.contentContainerHorizontal,contentContainerStyle]})); var props=_extends({}, other,{ style:[styles.base,horizontal&&styles.baseHorizontal,this.props.style], onTouchStart:this.scrollResponderHandleTouchStart, onTouchMove:this.scrollResponderHandleTouchMove, onTouchEnd:this.scrollResponderHandleTouchEnd, onScrollBeginDrag:this.scrollResponderHandleScrollBeginDrag, onScrollEndDrag:this.scrollResponderHandleScrollEndDrag, onMomentumScrollBegin:this.scrollResponderHandleMomentumScrollBegin, onMomentumScrollEnd:this.scrollResponderHandleMomentumScrollEnd, onStartShouldSetResponder:this.scrollResponderHandleStartShouldSetResponder, onStartShouldSetResponderCapture:this.scrollResponderHandleStartShouldSetResponderCapture, onScrollShouldSetResponder:this.scrollResponderHandleScrollShouldSetResponder, onScroll:this._handleScroll, onResponderGrant:this.scrollResponderHandleResponderGrant, onResponderTerminationRequest:this.scrollResponderHandleTerminationRequest, onResponderTerminate:this.scrollResponderHandleTerminate, onResponderRelease:this.scrollResponderHandleResponderRelease, onResponderReject:this.scrollResponderHandleResponderReject}); var ScrollViewClass=_ScrollViewBase2.default; (0,_invariant2.default)(ScrollViewClass!==undefined,'ScrollViewClass must not be undefined'); if(refreshControl){ return _react2.default.cloneElement( refreshControl, {style:props.style}, _react2.default.createElement(ScrollViewClass,_extends({},props,{ref:this._setScrollViewRef,style:styles.base}), contentContainer)); } return( _react2.default.createElement(ScrollViewClass,_extends({},props,{ref:this._setScrollViewRef,style:props.style}), contentContainer)); }, _handleContentOnLayout:function _handleContentOnLayout(e){var _e$nativeEvent$layout= e.nativeEvent.layout,width=_e$nativeEvent$layout.width,height=_e$nativeEvent$layout.height; this.props.onContentSizeChange(width,height); }, _handleScroll:function _handleScroll(e){ if(true){ if(this.props.onScroll&&!this.props.scrollEventThrottle){ console.log( 'You specified `onScroll` on a but not '+ '`scrollEventThrottle`. You will only receive one event. '+ 'Using `16` you get all the events but be aware that it may '+ "cause frame drops, use a bigger number if you don't need as "+ 'much precision.'); } } if(this.props.keyboardDismissMode==='on-drag'){ (0,_dismissKeyboard2.default)(); } this.scrollResponderHandleScroll(e); }, _setInnerViewRef:function _setInnerViewRef(component){ this._innerViewRef=component; }, _setScrollViewRef:function _setScrollViewRef(component){ this._scrollViewRef=component; }}); var styles=_StyleSheet2.default.create({ base:{ flex:1, overflowX:'hidden', overflowY:'auto', WebkitOverflowScrolling:'touch', transform:[{translateZ:0}]}, baseHorizontal:{ flexDirection:'row', overflowX:'auto', overflowY:'hidden'}, contentContainerHorizontal:{ flexDirection:'row'}}); module.exports=ScrollView; /***/ }), /* 59 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _extends=Object.assign||function(target){for(var i=1;iLONG_PRESS_ALLOWED_MOVEMENT){ this._cancelLongPressDelayTimeout(); } } var isTouchWithinActive= pageX>positionOnActivate.left-pressExpandLeft&& pageY>positionOnActivate.top-pressExpandTop&& pageX1&&arguments[1]!==undefined?arguments[1]:1; if( color===undefined|| color===null|| opacity===1&&typeof color==='string'&&color.charAt(0)!=='#') { return color; } var int32Color=(0,_normalizeCssColor2.default)(color); if(int32Color===null){ return undefined; } var rgba=_normalizeCssColor2.default.rgba(int32Color); rgba.a=rgba.a.toFixed(1);var r=rgba.r,g=rgba.g,b=rgba.b,a=rgba.a; return'rgba('+r+','+g+','+b+','+a*opacity+')'; }; module.exports=processColor; /***/ }), /* 62 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _uniqueId=0; module.exports=function uniqueId(){ return String(_uniqueId++); }; /***/ }), /* 63 */ /***/ (function(module, exports) { /** * Returns a function, that, as long as it continues to be invoked, will not * be triggered. The function will be called after it stops being called for * N milliseconds. If `immediate` is passed, trigger the function on the * leading edge, instead of the trailing. The function also has a property 'clear' * that is a function which will clear the timer to prevent previously scheduled executions. * * @source underscore.js * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/ * @param {Function} function to wrap * @param {Number} timeout in ms (`100`) * @param {Boolean} whether to execute at the beginning (`false`) * @api public */ module.exports = function debounce(func, wait, immediate){ var timeout, args, context, timestamp, result; if (null == wait) wait = 100; function later() { var last = Date.now() - timestamp; if (last < wait && last >= 0) { timeout = setTimeout(later, wait - last); } else { timeout = null; if (!immediate) { result = func.apply(context, args); context = args = null; } } }; var debounced = function(){ context = this; args = arguments; timestamp = Date.now(); var callNow = immediate && !timeout; if (!timeout) timeout = setTimeout(later, wait); if (callNow) { result = func.apply(context, args); context = args = null; } return result; }; debounced.clear = function() { if (timeout) { clearTimeout(timeout); timeout = null; } }; return debounced; }; /***/ }), /* 64 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global) { /** * Copyright 2014-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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var emptyFunction = __webpack_require__(10); var nativeRequestAnimationFrame = __webpack_require__(199); var lastTime = 0; var requestAnimationFrame = nativeRequestAnimationFrame || function (callback) { var currTime = Date.now(); var timeDelay = Math.max(0, 16 - (currTime - lastTime)); lastTime = currTime + timeDelay; return global.setTimeout(function () { callback(Date.now()); }, timeDelay); }; // Works around a rare bug in Safari 6 where the first request is never invoked. requestAnimationFrame(emptyFunction); module.exports = requestAnimationFrame; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) /***/ }), /* 65 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (c) 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @typechecks * */ /*eslint-disable no-self-compare */ var hasOwnProperty = Object.prototype.hasOwnProperty; /** * inlined Object.is polyfill to avoid requiring consumers ship their own * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is */ function is(x, y) { // SameValue algorithm if (x === y) { // Steps 1-5, 7-10 // Steps 6.b-6.e: +0 != -0 // Added the nonzero y check to make Flow happy, but it is redundant return x !== 0 || y !== 0 || 1 / x === 1 / y; } else { // Step 6.a: NaN == NaN return x !== x && y !== y; } } /** * Performs equality by iterating through keys on an object and returning false * when any key has values which are not strictly equal between the arguments. * Returns true when the values of all keys are strictly equal. */ function shallowEqual(objA, objB) { if (is(objA, objB)) { return true; } if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) { return false; } var keysA = Object.keys(objA); var keysB = Object.keys(objB); if (keysA.length !== keysB.length) { return false; } // Test for A's keys different from B. for (var i = 0; i < keysA.length; i++) { if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) { return false; } } return true; } module.exports = shallowEqual; /***/ }), /* 66 */ /***/ (function(module, exports) { // shim for using process in browser var process = module.exports = {}; // cached from whatever global is present so that test runners that stub it // don't break things. But we need to wrap it in a try catch in case it is // wrapped in strict mode code which doesn't define any globals. It's inside a // function because try/catches deoptimize in certain engines. var cachedSetTimeout; var cachedClearTimeout; function defaultSetTimout() { throw new Error('setTimeout has not been defined'); } function defaultClearTimeout () { throw new Error('clearTimeout has not been defined'); } (function () { try { if (typeof setTimeout === 'function') { cachedSetTimeout = setTimeout; } else { cachedSetTimeout = defaultSetTimout; } } catch (e) { cachedSetTimeout = defaultSetTimout; } try { if (typeof clearTimeout === 'function') { cachedClearTimeout = clearTimeout; } else { cachedClearTimeout = defaultClearTimeout; } } catch (e) { cachedClearTimeout = defaultClearTimeout; } } ()) function runTimeout(fun) { if (cachedSetTimeout === setTimeout) { //normal enviroments in sane situations return setTimeout(fun, 0); } // if setTimeout wasn't available but was latter defined if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { cachedSetTimeout = setTimeout; return setTimeout(fun, 0); } try { // when when somebody has screwed with setTimeout but no I.E. maddness return cachedSetTimeout(fun, 0); } catch(e){ try { // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally return cachedSetTimeout.call(null, fun, 0); } catch(e){ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error return cachedSetTimeout.call(this, fun, 0); } } } function runClearTimeout(marker) { if (cachedClearTimeout === clearTimeout) { //normal enviroments in sane situations return clearTimeout(marker); } // if clearTimeout wasn't available but was latter defined if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { cachedClearTimeout = clearTimeout; return clearTimeout(marker); } try { // when when somebody has screwed with setTimeout but no I.E. maddness return cachedClearTimeout(marker); } catch (e){ try { // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally return cachedClearTimeout.call(null, marker); } catch (e){ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. // Some versions of I.E. have different rules for clearTimeout vs setTimeout return cachedClearTimeout.call(this, marker); } } } var queue = []; var draining = false; var currentQueue; var queueIndex = -1; function cleanUpNextTick() { if (!draining || !currentQueue) { return; } draining = false; if (currentQueue.length) { queue = currentQueue.concat(queue); } else { queueIndex = -1; } if (queue.length) { drainQueue(); } } function drainQueue() { if (draining) { return; } var timeout = runTimeout(cleanUpNextTick); draining = true; var len = queue.length; while(len) { currentQueue = queue; queue = []; while (++queueIndex < len) { if (currentQueue) { currentQueue[queueIndex].run(); } } queueIndex = -1; len = queue.length; } currentQueue = null; draining = false; runClearTimeout(timeout); } process.nextTick = function (fun) { var args = new Array(arguments.length - 1); if (arguments.length > 1) { for (var i = 1; i < arguments.length; i++) { args[i - 1] = arguments[i]; } } queue.push(new Item(fun, args)); if (queue.length === 1 && !draining) { runTimeout(drainQueue); } }; // v8 likes predictible objects function Item(fun, array) { this.fun = fun; this.array = array; } Item.prototype.run = function () { this.fun.apply(null, this.array); }; process.title = 'browser'; process.browser = true; process.env = {}; process.argv = []; process.version = ''; // empty string to avoid regexp issues process.versions = {}; function noop() {} process.on = noop; process.addListener = noop; process.once = noop; process.off = noop; process.removeListener = noop; process.removeAllListeners = noop; process.emit = noop; process.prependListener = noop; process.prependOnceListener = noop; process.listeners = function (name) { return [] } process.binding = function (name) { throw new Error('process.binding is not supported'); }; process.cwd = function () { return '/' }; process.chdir = function (dir) { throw new Error('process.chdir is not supported'); }; process.umask = function() { return 0; }; /***/ }), /* 67 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var DOMLazyTree = __webpack_require__(26); var Danger = __webpack_require__(226); var ReactDOMComponentTree = __webpack_require__(7); var ReactInstrumentation = __webpack_require__(11); var createMicrosoftUnsafeLocalFunction = __webpack_require__(74); var setInnerHTML = __webpack_require__(57); var setTextContent = __webpack_require__(135); function getNodeAfter(parentNode, node) { // Special case for text components, which return [open, close] comments // from getHostNode. if (Array.isArray(node)) { node = node[1]; } return node ? node.nextSibling : parentNode.firstChild; } /** * Inserts `childNode` as a child of `parentNode` at the `index`. * * @param {DOMElement} parentNode Parent node in which to insert. * @param {DOMElement} childNode Child node to insert. * @param {number} index Index at which to insert the child. * @internal */ var insertChildAt = createMicrosoftUnsafeLocalFunction(function (parentNode, childNode, referenceNode) { // We rely exclusively on `insertBefore(node, null)` instead of also using // `appendChild(node)`. (Using `undefined` is not allowed by all browsers so // we are careful to use `null`.) parentNode.insertBefore(childNode, referenceNode); }); function insertLazyTreeChildAt(parentNode, childTree, referenceNode) { DOMLazyTree.insertTreeBefore(parentNode, childTree, referenceNode); } function moveChild(parentNode, childNode, referenceNode) { if (Array.isArray(childNode)) { moveDelimitedText(parentNode, childNode[0], childNode[1], referenceNode); } else { insertChildAt(parentNode, childNode, referenceNode); } } function removeChild(parentNode, childNode) { if (Array.isArray(childNode)) { var closingComment = childNode[1]; childNode = childNode[0]; removeDelimitedText(parentNode, childNode, closingComment); parentNode.removeChild(closingComment); } parentNode.removeChild(childNode); } function moveDelimitedText(parentNode, openingComment, closingComment, referenceNode) { var node = openingComment; while (true) { var nextNode = node.nextSibling; insertChildAt(parentNode, node, referenceNode); if (node === closingComment) { break; } node = nextNode; } } function removeDelimitedText(parentNode, startNode, closingComment) { while (true) { var node = startNode.nextSibling; if (node === closingComment) { // The closing comment is removed by ReactMultiChild. break; } else { parentNode.removeChild(node); } } } function replaceDelimitedText(openingComment, closingComment, stringText) { var parentNode = openingComment.parentNode; var nodeAfterComment = openingComment.nextSibling; if (nodeAfterComment === closingComment) { // There are no text nodes between the opening and closing comments; insert // a new one if stringText isn't empty. if (stringText) { insertChildAt(parentNode, document.createTextNode(stringText), nodeAfterComment); } } else { if (stringText) { // Set the text content of the first node after the opening comment, and // remove all following nodes up until the closing comment. setTextContent(nodeAfterComment, stringText); removeDelimitedText(parentNode, nodeAfterComment, closingComment); } else { removeDelimitedText(parentNode, openingComment, closingComment); } } if (true) { ReactInstrumentation.debugTool.onHostOperation({ instanceID: ReactDOMComponentTree.getInstanceFromNode(openingComment)._debugID, type: 'replace text', payload: stringText }); } } var dangerouslyReplaceNodeWithMarkup = Danger.dangerouslyReplaceNodeWithMarkup; if (true) { dangerouslyReplaceNodeWithMarkup = function (oldChild, markup, prevInstance) { Danger.dangerouslyReplaceNodeWithMarkup(oldChild, markup); if (prevInstance._debugID !== 0) { ReactInstrumentation.debugTool.onHostOperation({ instanceID: prevInstance._debugID, type: 'replace with', payload: markup.toString() }); } else { var nextInstance = ReactDOMComponentTree.getInstanceFromNode(markup.node); if (nextInstance._debugID !== 0) { ReactInstrumentation.debugTool.onHostOperation({ instanceID: nextInstance._debugID, type: 'mount', payload: markup.toString() }); } } }; } /** * Operations for updating with DOM children. */ var DOMChildrenOperations = { dangerouslyReplaceNodeWithMarkup: dangerouslyReplaceNodeWithMarkup, replaceDelimitedText: replaceDelimitedText, /** * Updates a component's children by processing a series of updates. The * update configurations are each expected to have a `parentNode` property. * * @param {array} updates List of update configurations. * @internal */ processUpdates: function (parentNode, updates) { if (true) { var parentNodeDebugID = ReactDOMComponentTree.getInstanceFromNode(parentNode)._debugID; } for (var k = 0; k < updates.length; k++) { var update = updates[k]; switch (update.type) { case 'INSERT_MARKUP': insertLazyTreeChildAt(parentNode, update.content, getNodeAfter(parentNode, update.afterNode)); if (true) { ReactInstrumentation.debugTool.onHostOperation({ instanceID: parentNodeDebugID, type: 'insert child', payload: { toIndex: update.toIndex, content: update.content.toString() } }); } break; case 'MOVE_EXISTING': moveChild(parentNode, update.fromNode, getNodeAfter(parentNode, update.afterNode)); if (true) { ReactInstrumentation.debugTool.onHostOperation({ instanceID: parentNodeDebugID, type: 'move child', payload: { fromIndex: update.fromIndex, toIndex: update.toIndex } }); } break; case 'SET_MARKUP': setInnerHTML(parentNode, update.content); if (true) { ReactInstrumentation.debugTool.onHostOperation({ instanceID: parentNodeDebugID, type: 'replace children', payload: update.content.toString() }); } break; case 'TEXT_CONTENT': setTextContent(parentNode, update.content); if (true) { ReactInstrumentation.debugTool.onHostOperation({ instanceID: parentNodeDebugID, type: 'replace text', payload: update.content.toString() }); } break; case 'REMOVE_NODE': removeChild(parentNode, update.fromNode); if (true) { ReactInstrumentation.debugTool.onHostOperation({ instanceID: parentNodeDebugID, type: 'remove child', payload: { fromIndex: update.fromIndex } }); } break; } } } }; module.exports = DOMChildrenOperations; /***/ }), /* 68 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var DOMNamespaces = { html: 'http://www.w3.org/1999/xhtml', mathml: 'http://www.w3.org/1998/Math/MathML', svg: 'http://www.w3.org/2000/svg' }; module.exports = DOMNamespaces; /***/ }), /* 69 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ /** * Escape and wrap key so it is safe to use as a reactid * * @param {string} key to be escaped. * @return {string} the escaped key. */ function escape(key) { var escapeRegex = /[=:]/g; var escaperLookup = { '=': '=0', ':': '=2' }; var escapedString = ('' + key).replace(escapeRegex, function (match) { return escaperLookup[match]; }); return '$' + escapedString; } /** * Unescape and unwrap key for human-readable display * * @param {string} key to unescape. * @return {string} the unescaped key. */ function unescape(key) { var unescapeRegex = /(=0|=2)/g; var unescaperLookup = { '=0': '=', '=2': ':' }; var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1); return ('' + keySubstring).replace(unescapeRegex, function (match) { return unescaperLookup[match]; }); } var KeyEscapeUtils = { escape: escape, unescape: unescape }; module.exports = KeyEscapeUtils; /***/ }), /* 70 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _prodInvariant = __webpack_require__(2); var ReactPropTypesSecret = __webpack_require__(126); var propTypesFactory = __webpack_require__(220); var React = __webpack_require__(33); var PropTypes = propTypesFactory(React.isValidElement); var invariant = __webpack_require__(0); var warning = __webpack_require__(1); var hasReadOnlyValue = { 'button': true, 'checkbox': true, 'image': true, 'hidden': true, 'radio': true, 'reset': true, 'submit': true }; function _assertSingleLink(inputProps) { !(inputProps.checkedLink == null || inputProps.valueLink == null) ? true ? invariant(false, 'Cannot provide a checkedLink and a valueLink. If you want to use checkedLink, you probably don\'t want to use valueLink and vice versa.') : _prodInvariant('87') : void 0; } function _assertValueLink(inputProps) { _assertSingleLink(inputProps); !(inputProps.value == null && inputProps.onChange == null) ? true ? invariant(false, 'Cannot provide a valueLink and a value or onChange event. If you want to use value or onChange, you probably don\'t want to use valueLink.') : _prodInvariant('88') : void 0; } function _assertCheckedLink(inputProps) { _assertSingleLink(inputProps); !(inputProps.checked == null && inputProps.onChange == null) ? true ? invariant(false, 'Cannot provide a checkedLink and a checked property or onChange event. If you want to use checked or onChange, you probably don\'t want to use checkedLink') : _prodInvariant('89') : void 0; } var propTypes = { value: function (props, propName, componentName) { if (!props[propName] || hasReadOnlyValue[props.type] || props.onChange || props.readOnly || props.disabled) { return null; } return new Error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.'); }, checked: function (props, propName, componentName) { if (!props[propName] || props.onChange || props.readOnly || props.disabled) { return null; } return new Error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.'); }, onChange: PropTypes.func }; var loggedTypeFailures = {}; function getDeclarationErrorAddendum(owner) { if (owner) { var name = owner.getName(); if (name) { return ' Check the render method of `' + name + '`.'; } } return ''; } /** * Provide a linked `value` attribute for controlled forms. You should not use * this outside of the ReactDOM controlled form components. */ var LinkedValueUtils = { checkPropTypes: function (tagName, props, owner) { for (var propName in propTypes) { if (propTypes.hasOwnProperty(propName)) { var error = propTypes[propName](props, propName, tagName, 'prop', null, ReactPropTypesSecret); } if (error instanceof Error && !(error.message in loggedTypeFailures)) { // Only monitor this failure once because there tends to be a lot of the // same error. loggedTypeFailures[error.message] = true; var addendum = getDeclarationErrorAddendum(owner); true ? warning(false, 'Failed form propType: %s%s', error.message, addendum) : void 0; } } }, /** * @param {object} inputProps Props for form component * @return {*} current value of the input either from value prop or link. */ getValue: function (inputProps) { if (inputProps.valueLink) { _assertValueLink(inputProps); return inputProps.valueLink.value; } return inputProps.value; }, /** * @param {object} inputProps Props for form component * @return {*} current checked status of the input either from checked prop * or link. */ getChecked: function (inputProps) { if (inputProps.checkedLink) { _assertCheckedLink(inputProps); return inputProps.checkedLink.value; } return inputProps.checked; }, /** * @param {object} inputProps Props for form component * @param {SyntheticEvent} event change event to handle */ executeOnChange: function (inputProps, event) { if (inputProps.valueLink) { _assertValueLink(inputProps); return inputProps.valueLink.requestChange(event.target.value); } else if (inputProps.checkedLink) { _assertCheckedLink(inputProps); return inputProps.checkedLink.requestChange(event.target.checked); } else if (inputProps.onChange) { return inputProps.onChange.call(undefined, event); } } }; module.exports = LinkedValueUtils; /***/ }), /* 71 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2014-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ var _prodInvariant = __webpack_require__(2); var invariant = __webpack_require__(0); var injected = false; var ReactComponentEnvironment = { /** * Optionally injectable hook for swapping out mount images in the middle of * the tree. */ replaceNodeWithMarkup: null, /** * Optionally injectable hook for processing a queue of child updates. Will * later move into MultiChildComponents. */ processChildrenUpdates: null, injection: { injectEnvironment: function (environment) { !!injected ? true ? invariant(false, 'ReactCompositeComponent: injectEnvironment() can only be called once.') : _prodInvariant('104') : void 0; ReactComponentEnvironment.replaceNodeWithMarkup = environment.replaceNodeWithMarkup; ReactComponentEnvironment.processChildrenUpdates = environment.processChildrenUpdates; injected = true; } } }; module.exports = ReactComponentEnvironment; /***/ }), /* 72 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ var caughtError = null; /** * Call a function while guarding against errors that happens within it. * * @param {String} name of the guard to use for logging or debugging * @param {Function} func The function to invoke * @param {*} a First argument * @param {*} b Second argument */ function invokeGuardedCallback(name, func, a) { try { func(a); } catch (x) { if (caughtError === null) { caughtError = x; } } } var ReactErrorUtils = { invokeGuardedCallback: invokeGuardedCallback, /** * Invoked by ReactTestUtils.Simulate so that any errors thrown by the event * handler are sure to be rethrown by rethrowCaughtError. */ invokeGuardedCallbackWithCatch: invokeGuardedCallback, /** * During execution of guarded functions we will capture the first error which * we will rethrow to be handled by the top level error handler. */ rethrowCaughtError: function () { if (caughtError) { var error = caughtError; caughtError = null; throw error; } } }; if (true) { /** * To help development we can get better devtools integration by simulating a * real browser event. */ if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') { var fakeNode = document.createElement('react'); ReactErrorUtils.invokeGuardedCallback = function (name, func, a) { var boundFunc = func.bind(null, a); var evtType = 'react-' + name; fakeNode.addEventListener(evtType, boundFunc, false); var evt = document.createEvent('Event'); evt.initEvent(evtType, false, false); fakeNode.dispatchEvent(evt); fakeNode.removeEventListener(evtType, boundFunc, false); }; } } module.exports = ReactErrorUtils; /***/ }), /* 73 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2015-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _prodInvariant = __webpack_require__(2); var ReactCurrentOwner = __webpack_require__(17); var ReactInstanceMap = __webpack_require__(41); var ReactInstrumentation = __webpack_require__(11); var ReactUpdates = __webpack_require__(14); var invariant = __webpack_require__(0); var warning = __webpack_require__(1); function enqueueUpdate(internalInstance) { ReactUpdates.enqueueUpdate(internalInstance); } function formatUnexpectedArgument(arg) { var type = typeof arg; if (type !== 'object') { return type; } var displayName = arg.constructor && arg.constructor.name || type; var keys = Object.keys(arg); if (keys.length > 0 && keys.length < 20) { return displayName + ' (keys: ' + keys.join(', ') + ')'; } return displayName; } function getInternalInstanceReadyForUpdate(publicInstance, callerName) { var internalInstance = ReactInstanceMap.get(publicInstance); if (!internalInstance) { if (true) { var ctor = publicInstance.constructor; // Only warn when we have a callerName. Otherwise we should be silent. // We're probably calling from enqueueCallback. We don't want to warn // there because we already warned for the corresponding lifecycle method. true ? warning(!callerName, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, ctor && (ctor.displayName || ctor.name) || 'ReactClass') : void 0; } return null; } if (true) { true ? warning(ReactCurrentOwner.current == null, '%s(...): Cannot update during an existing state transition (such as ' + 'within `render` or another component\'s constructor). Render methods ' + 'should be a pure function of props and state; constructor ' + 'side-effects are an anti-pattern, but can be moved to ' + '`componentWillMount`.', callerName) : void 0; } return internalInstance; } /** * ReactUpdateQueue allows for state updates to be scheduled into a later * reconciliation step. */ var ReactUpdateQueue = { /** * Checks whether or not this composite component is mounted. * @param {ReactClass} publicInstance The instance we want to test. * @return {boolean} True if mounted, false otherwise. * @protected * @final */ isMounted: function (publicInstance) { if (true) { var owner = ReactCurrentOwner.current; if (owner !== null) { true ? warning(owner._warnedAboutRefsInRender, '%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component') : void 0; owner._warnedAboutRefsInRender = true; } } var internalInstance = ReactInstanceMap.get(publicInstance); if (internalInstance) { // During componentWillMount and render this will still be null but after // that will always render to something. At least for now. So we can use // this hack. return !!internalInstance._renderedComponent; } else { return false; } }, /** * Enqueue a callback that will be executed after all the pending updates * have processed. * * @param {ReactClass} publicInstance The instance to use as `this` context. * @param {?function} callback Called after state is updated. * @param {string} callerName Name of the calling function in the public API. * @internal */ enqueueCallback: function (publicInstance, callback, callerName) { ReactUpdateQueue.validateCallback(callback, callerName); var internalInstance = getInternalInstanceReadyForUpdate(publicInstance); // Previously we would throw an error if we didn't have an internal // instance. Since we want to make it a no-op instead, we mirror the same // behavior we have in other enqueue* methods. // We also need to ignore callbacks in componentWillMount. See // enqueueUpdates. if (!internalInstance) { return null; } if (internalInstance._pendingCallbacks) { internalInstance._pendingCallbacks.push(callback); } else { internalInstance._pendingCallbacks = [callback]; } // TODO: The callback here is ignored when setState is called from // componentWillMount. Either fix it or disallow doing so completely in // favor of getInitialState. Alternatively, we can disallow // componentWillMount during server-side rendering. enqueueUpdate(internalInstance); }, enqueueCallbackInternal: function (internalInstance, callback) { if (internalInstance._pendingCallbacks) { internalInstance._pendingCallbacks.push(callback); } else { internalInstance._pendingCallbacks = [callback]; } enqueueUpdate(internalInstance); }, /** * Forces an update. This should only be invoked when it is known with * certainty that we are **not** in a DOM transaction. * * You may want to call this when you know that some deeper aspect of the * component's state has changed but `setState` was not called. * * This will not invoke `shouldComponentUpdate`, but it will invoke * `componentWillUpdate` and `componentDidUpdate`. * * @param {ReactClass} publicInstance The instance that should rerender. * @internal */ enqueueForceUpdate: function (publicInstance) { var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'forceUpdate'); if (!internalInstance) { return; } internalInstance._pendingForceUpdate = true; enqueueUpdate(internalInstance); }, /** * Replaces all of the state. Always use this or `setState` to mutate state. * You should treat `this.state` as immutable. * * There is no guarantee that `this.state` will be immediately updated, so * accessing `this.state` after calling this method may return the old value. * * @param {ReactClass} publicInstance The instance that should rerender. * @param {object} completeState Next state. * @internal */ enqueueReplaceState: function (publicInstance, completeState, callback) { var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'replaceState'); if (!internalInstance) { return; } internalInstance._pendingStateQueue = [completeState]; internalInstance._pendingReplaceState = true; // Future-proof 15.5 if (callback !== undefined && callback !== null) { ReactUpdateQueue.validateCallback(callback, 'replaceState'); if (internalInstance._pendingCallbacks) { internalInstance._pendingCallbacks.push(callback); } else { internalInstance._pendingCallbacks = [callback]; } } enqueueUpdate(internalInstance); }, /** * Sets a subset of the state. This only exists because _pendingState is * internal. This provides a merging strategy that is not available to deep * properties which is confusing. TODO: Expose pendingState or don't use it * during the merge. * * @param {ReactClass} publicInstance The instance that should rerender. * @param {object} partialState Next partial state to be merged with state. * @internal */ enqueueSetState: function (publicInstance, partialState) { if (true) { ReactInstrumentation.debugTool.onSetState(); true ? warning(partialState != null, 'setState(...): You passed an undefined or null state object; ' + 'instead, use forceUpdate().') : void 0; } var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'setState'); if (!internalInstance) { return; } var queue = internalInstance._pendingStateQueue || (internalInstance._pendingStateQueue = []); queue.push(partialState); enqueueUpdate(internalInstance); }, enqueueElementInternal: function (internalInstance, nextElement, nextContext) { internalInstance._pendingElement = nextElement; // TODO: introduce _pendingContext instead of setting it directly. internalInstance._context = nextContext; enqueueUpdate(internalInstance); }, validateCallback: function (callback, callerName) { !(!callback || typeof callback === 'function') ? true ? invariant(false, '%s(...): Expected the last optional `callback` argument to be a function. Instead received: %s.', callerName, formatUnexpectedArgument(callback)) : _prodInvariant('122', callerName, formatUnexpectedArgument(callback)) : void 0; } }; module.exports = ReactUpdateQueue; /***/ }), /* 74 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ /* globals MSApp */ /** * Create a function which has 'unsafe' privileges (required by windows8 apps) */ var createMicrosoftUnsafeLocalFunction = function (func) { if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) { return function (arg0, arg1, arg2, arg3) { MSApp.execUnsafeLocalFunction(function () { return func(arg0, arg1, arg2, arg3); }); }; } else { return func; } }; module.exports = createMicrosoftUnsafeLocalFunction; /***/ }), /* 75 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ /** * `charCode` represents the actual "character code" and is safe to use with * `String.fromCharCode`. As such, only keys that correspond to printable * characters produce a valid `charCode`, the only exception to this is Enter. * The Tab-key is considered non-printable and does not have a `charCode`, * presumably because it does not produce a tab-character in browsers. * * @param {object} nativeEvent Native browser event. * @return {number} Normalized `charCode` property. */ function getEventCharCode(nativeEvent) { var charCode; var keyCode = nativeEvent.keyCode; if ('charCode' in nativeEvent) { charCode = nativeEvent.charCode; // FF does not set `charCode` for the Enter-key, check against `keyCode`. if (charCode === 0 && keyCode === 13) { charCode = 13; } } else { // IE8 does not implement `charCode`, but `keyCode` has the correct value. charCode = keyCode; } // Some non-printable keys are reported in `charCode`/`keyCode`, discard them. // Must not discard the (non-)printable Enter-key. if (charCode >= 32 || charCode === 13) { return charCode; } return 0; } module.exports = getEventCharCode; /***/ }), /* 76 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ /** * Translation from modifier key to the associated property in the event. * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers */ var modifierKeyToProp = { 'Alt': 'altKey', 'Control': 'ctrlKey', 'Meta': 'metaKey', 'Shift': 'shiftKey' }; // IE8 does not implement getModifierState so we simply map it to the only // modifier keys exposed by the event itself, does not support Lock-keys. // Currently, all major browsers except Chrome seems to support Lock-keys. function modifierStateGetter(keyArg) { var syntheticEvent = this; var nativeEvent = syntheticEvent.nativeEvent; if (nativeEvent.getModifierState) { return nativeEvent.getModifierState(keyArg); } var keyProp = modifierKeyToProp[keyArg]; return keyProp ? !!nativeEvent[keyProp] : false; } function getEventModifierState(nativeEvent) { return modifierStateGetter; } module.exports = getEventModifierState; /***/ }), /* 77 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ /** * Gets the target node from a native browser event by accounting for * inconsistencies in browser DOM APIs. * * @param {object} nativeEvent Native browser event. * @return {DOMEventTarget} Target node. */ function getEventTarget(nativeEvent) { var target = nativeEvent.target || nativeEvent.srcElement || window; // Normalize SVG element events #4963 if (target.correspondingUseElement) { target = target.correspondingUseElement; } // Safari may fire events on text nodes (Node.TEXT_NODE is 3). // @see http://www.quirksmode.org/js/events_properties.html return target.nodeType === 3 ? target.parentNode : target; } module.exports = getEventTarget; /***/ }), /* 78 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var ExecutionEnvironment = __webpack_require__(4); var useHasFeature; if (ExecutionEnvironment.canUseDOM) { useHasFeature = document.implementation && document.implementation.hasFeature && // always returns true in newer browsers as per the standard. // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature document.implementation.hasFeature('', '') !== true; } /** * Checks if an event is supported in the current execution environment. * * NOTE: This will not work correctly for non-generic events such as `change`, * `reset`, `load`, `error`, and `select`. * * Borrows from Modernizr. * * @param {string} eventNameSuffix Event name, e.g. "click". * @param {?boolean} capture Check if the capture phase is supported. * @return {boolean} True if the event is supported. * @internal * @license Modernizr 3.0.0pre (Custom Build) | MIT */ function isEventSupported(eventNameSuffix, capture) { if (!ExecutionEnvironment.canUseDOM || capture && !('addEventListener' in document)) { return false; } var eventName = 'on' + eventNameSuffix; var isSupported = eventName in document; if (!isSupported) { var element = document.createElement('div'); element.setAttribute(eventName, 'return;'); isSupported = typeof element[eventName] === 'function'; } if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') { // This is the only way to test support for the `wheel` event in IE9+. isSupported = document.implementation.hasFeature('Events.wheel', '3.0'); } return isSupported; } module.exports = isEventSupported; /***/ }), /* 79 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ /** * Given a `prevElement` and `nextElement`, determines if the existing * instance should be updated as opposed to being destroyed or replaced by a new * instance. Both arguments are elements. This ensures that this logic can * operate on stateless trees without any backing instance. * * @param {?object} prevElement * @param {?object} nextElement * @return {boolean} True if the existing instance should be updated. * @protected */ function shouldUpdateReactComponent(prevElement, nextElement) { var prevEmpty = prevElement === null || prevElement === false; var nextEmpty = nextElement === null || nextElement === false; if (prevEmpty || nextEmpty) { return prevEmpty === nextEmpty; } var prevType = typeof prevElement; var nextType = typeof nextElement; if (prevType === 'string' || prevType === 'number') { return nextType === 'string' || nextType === 'number'; } else { return nextType === 'object' && prevElement.type === nextElement.type && prevElement.key === nextElement.key; } } module.exports = shouldUpdateReactComponent; /***/ }), /* 80 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2015-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _assign = __webpack_require__(6); var emptyFunction = __webpack_require__(10); var warning = __webpack_require__(1); var validateDOMNesting = emptyFunction; if (true) { // This validation code was written based on the HTML5 parsing spec: // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope // // Note: this does not catch all invalid nesting, nor does it try to (as it's // not clear what practical benefit doing so provides); instead, we warn only // for cases where the parser will give a parse tree differing from what React // intended. For example,
is invalid but we don't warn // because it still parses correctly; we do warn for other cases like nested //

tags where the beginning of the second element implicitly closes the // first, causing a confusing mess. // https://html.spec.whatwg.org/multipage/syntax.html#special var specialTags = ['address', 'applet', 'area', 'article', 'aside', 'base', 'basefont', 'bgsound', 'blockquote', 'body', 'br', 'button', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dir', 'div', 'dl', 'dt', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'iframe', 'img', 'input', 'isindex', 'li', 'link', 'listing', 'main', 'marquee', 'menu', 'menuitem', 'meta', 'nav', 'noembed', 'noframes', 'noscript', 'object', 'ol', 'p', 'param', 'plaintext', 'pre', 'script', 'section', 'select', 'source', 'style', 'summary', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul', 'wbr', 'xmp']; // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope var inScopeTags = ['applet', 'caption', 'html', 'table', 'td', 'th', 'marquee', 'object', 'template', // https://html.spec.whatwg.org/multipage/syntax.html#html-integration-point // TODO: Distinguish by namespace here -- for , including it here // errs on the side of fewer warnings 'foreignObject', 'desc', 'title']; // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-button-scope var buttonScopeTags = inScopeTags.concat(['button']); // https://html.spec.whatwg.org/multipage/syntax.html#generate-implied-end-tags var impliedEndTags = ['dd', 'dt', 'li', 'option', 'optgroup', 'p', 'rp', 'rt']; var emptyAncestorInfo = { current: null, formTag: null, aTagInScope: null, buttonTagInScope: null, nobrTagInScope: null, pTagInButtonScope: null, listItemTagAutoclosing: null, dlItemTagAutoclosing: null }; var updatedAncestorInfo = function (oldInfo, tag, instance) { var ancestorInfo = _assign({}, oldInfo || emptyAncestorInfo); var info = { tag: tag, instance: instance }; if (inScopeTags.indexOf(tag) !== -1) { ancestorInfo.aTagInScope = null; ancestorInfo.buttonTagInScope = null; ancestorInfo.nobrTagInScope = null; } if (buttonScopeTags.indexOf(tag) !== -1) { ancestorInfo.pTagInButtonScope = null; } // See rules for 'li', 'dd', 'dt' start tags in // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody if (specialTags.indexOf(tag) !== -1 && tag !== 'address' && tag !== 'div' && tag !== 'p') { ancestorInfo.listItemTagAutoclosing = null; ancestorInfo.dlItemTagAutoclosing = null; } ancestorInfo.current = info; if (tag === 'form') { ancestorInfo.formTag = info; } if (tag === 'a') { ancestorInfo.aTagInScope = info; } if (tag === 'button') { ancestorInfo.buttonTagInScope = info; } if (tag === 'nobr') { ancestorInfo.nobrTagInScope = info; } if (tag === 'p') { ancestorInfo.pTagInButtonScope = info; } if (tag === 'li') { ancestorInfo.listItemTagAutoclosing = info; } if (tag === 'dd' || tag === 'dt') { ancestorInfo.dlItemTagAutoclosing = info; } return ancestorInfo; }; /** * Returns whether */ var isTagValidWithParent = function (tag, parentTag) { // First, let's check if we're in an unusual parsing mode... switch (parentTag) { // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inselect case 'select': return tag === 'option' || tag === 'optgroup' || tag === '#text'; case 'optgroup': return tag === 'option' || tag === '#text'; // Strictly speaking, seeing an <option> doesn't mean we're in a <select> // but case 'option': return tag === '#text'; // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption // No special behavior since these rules fall back to "in body" mode for // all except special table nodes which cause bad parsing behavior anyway. // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr case 'tr': return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template'; // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody case 'tbody': case 'thead': case 'tfoot': return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template'; // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup case 'colgroup': return tag === 'col' || tag === 'template'; // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable case 'table': return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template'; // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead case 'head': return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template'; // https://html.spec.whatwg.org/multipage/semantics.html#the-html-element case 'html': return tag === 'head' || tag === 'body'; case '#document': return tag === 'html'; } // Probably in the "in body" parsing mode, so we outlaw only tag combos // where the parsing rules cause implicit opens or closes to be added. // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody switch (tag) { case 'h1': case 'h2': case 'h3': case 'h4': case 'h5': case 'h6': return parentTag !== 'h1' && parentTag !== 'h2' && parentTag !== 'h3' && parentTag !== 'h4' && parentTag !== 'h5' && parentTag !== 'h6'; case 'rp': case 'rt': return impliedEndTags.indexOf(parentTag) === -1; case 'body': case 'caption': case 'col': case 'colgroup': case 'frame': case 'head': case 'html': case 'tbody': case 'td': case 'tfoot': case 'th': case 'thead': case 'tr': // These tags are only valid with a few parents that have special child // parsing rules -- if we're down here, then none of those matched and // so we allow it only if we don't know what the parent is, as all other // cases are invalid. return parentTag == null; } return true; }; /** * Returns whether */ var findInvalidAncestorForTag = function (tag, ancestorInfo) { switch (tag) { case 'address': case 'article': case 'aside': case 'blockquote': case 'center': case 'details': case 'dialog': case 'dir': case 'div': case 'dl': case 'fieldset': case 'figcaption': case 'figure': case 'footer': case 'header': case 'hgroup': case 'main': case 'menu': case 'nav': case 'ol': case 'p': case 'section': case 'summary': case 'ul': case 'pre': case 'listing': case 'table': case 'hr': case 'xmp': case 'h1': case 'h2': case 'h3': case 'h4': case 'h5': case 'h6': return ancestorInfo.pTagInButtonScope; case 'form': return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope; case 'li': return ancestorInfo.listItemTagAutoclosing; case 'dd': case 'dt': return ancestorInfo.dlItemTagAutoclosing; case 'button': return ancestorInfo.buttonTagInScope; case 'a': // Spec says something about storing a list of markers, but it sounds // equivalent to this check. return ancestorInfo.aTagInScope; case 'nobr': return ancestorInfo.nobrTagInScope; } return null; }; /** * Given a ReactCompositeComponent instance, return a list of its recursive * owners, starting at the root and ending with the instance itself. */ var findOwnerStack = function (instance) { if (!instance) { return []; } var stack = []; do { stack.push(instance); } while (instance = instance._currentElement._owner); stack.reverse(); return stack; }; var didWarn = {}; validateDOMNesting = function (childTag, childText, childInstance, ancestorInfo) { ancestorInfo = ancestorInfo || emptyAncestorInfo; var parentInfo = ancestorInfo.current; var parentTag = parentInfo && parentInfo.tag; if (childText != null) { true ? warning(childTag == null, 'validateDOMNesting: when childText is passed, childTag should be null') : void 0; childTag = '#text'; } var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo; var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo); var problematic = invalidParent || invalidAncestor; if (problematic) { var ancestorTag = problematic.tag; var ancestorInstance = problematic.instance; var childOwner = childInstance && childInstance._currentElement._owner; var ancestorOwner = ancestorInstance && ancestorInstance._currentElement._owner; var childOwners = findOwnerStack(childOwner); var ancestorOwners = findOwnerStack(ancestorOwner); var minStackLen = Math.min(childOwners.length, ancestorOwners.length); var i; var deepestCommon = -1; for (i = 0; i < minStackLen; i++) { if (childOwners[i] === ancestorOwners[i]) { deepestCommon = i; } else { break; } } var UNKNOWN = '(unknown)'; var childOwnerNames = childOwners.slice(deepestCommon + 1).map(function (inst) { return inst.getName() || UNKNOWN; }); var ancestorOwnerNames = ancestorOwners.slice(deepestCommon + 1).map(function (inst) { return inst.getName() || UNKNOWN; }); var ownerInfo = [].concat( // If the parent and child instances have a common owner ancestor, start // with that -- otherwise we just start with the parent's owners. deepestCommon !== -1 ? childOwners[deepestCommon].getName() || UNKNOWN : [], ancestorOwnerNames, ancestorTag, // If we're warning about an invalid (non-parent) ancestry, add '...' invalidAncestor ? ['...'] : [], childOwnerNames, childTag).join(' > '); var warnKey = !!invalidParent + '|' + childTag + '|' + ancestorTag + '|' + ownerInfo; if (didWarn[warnKey]) { return; } didWarn[warnKey] = true; var tagDisplayName = childTag; var whitespaceInfo = ''; if (childTag === '#text') { if (/\S/.test(childText)) { tagDisplayName = 'Text nodes'; } else { tagDisplayName = 'Whitespace text nodes'; whitespaceInfo = ' Make sure you don\'t have any extra whitespace between tags on ' + 'each line of your source code.'; } } else { tagDisplayName = '<' + childTag + '>'; } if (invalidParent) { var info = ''; if (ancestorTag === 'table' && childTag === 'tr') { info += ' Add a <tbody> to your code to match the DOM tree generated by ' + 'the browser.'; } true ? warning(false, 'validateDOMNesting(...): %s cannot appear as a child of <%s>.%s ' + 'See %s.%s', tagDisplayName, ancestorTag, whitespaceInfo, ownerInfo, info) : void 0; } else { true ? warning(false, 'validateDOMNesting(...): %s cannot appear as a descendant of ' + '<%s>. See %s.', tagDisplayName, ancestorTag, ownerInfo) : void 0; } } }; validateDOMNesting.updatedAncestorInfo = updatedAncestorInfo; // For testing validateDOMNesting.isTagValidInContext = function (tag, ancestorInfo) { ancestorInfo = ancestorInfo || emptyAncestorInfo; var parentInfo = ancestorInfo.current; var parentTag = parentInfo && parentInfo.tag; return isTagValidWithParent(tag, parentTag) && !findInvalidAncestorForTag(tag, ancestorInfo); }; } module.exports = validateDOMNesting; /***/ }), /* 81 */ /***/ (function(module, exports, __webpack_require__) { var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}(); var _ExecutionEnvironment=__webpack_require__(4); var _debounce=__webpack_require__(63);var _debounce2=_interopRequireDefault(_debounce); var _invariant=__webpack_require__(0);var _invariant2=_interopRequireDefault(_invariant);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}} var win=_ExecutionEnvironment.canUseDOM?window:{screen:{}}; var dimensions={};var Dimensions=function(){function Dimensions(){_classCallCheck(this,Dimensions);}_createClass(Dimensions,null,[{key:'get',value:function get( dimension){ (0,_invariant2.default)(dimensions[dimension],'No dimension set for key '+dimension); return dimensions[dimension]; }},{key:'set',value:function set() { dimensions.window={ fontScale:1, height:win.innerHeight, scale:win.devicePixelRatio||1, width:win.innerWidth}; dimensions.screen={ fontScale:1, height:win.screen.height, scale:win.devicePixelRatio||1, width:win.screen.width}; }}]);return Dimensions;}(); Dimensions.set(); if(_ExecutionEnvironment.canUseDOM){ window.addEventListener('resize',(0,_debounce2.default)(Dimensions.set,16),false); } module.exports=Dimensions; /***/ }), /* 82 */ /***/ (function(module, exports, __webpack_require__) { var _ExecutionEnvironment=__webpack_require__(4);var _ExecutionEnvironment2=_interopRequireDefault(_ExecutionEnvironment);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} var isPreferredLanguageRTL=false; var isRTLAllowed=true; var isRTLForced=false; var isRTL=function isRTL(){ if(isRTLForced){ return true; } return isRTLAllowed&&isPreferredLanguageRTL; }; var onChange=function onChange(){ if(_ExecutionEnvironment2.default.canUseDOM){ document.documentElement.setAttribute('dir',isRTL()?'rtl':'ltr'); } }; var I18nManager={ allowRTL:function allowRTL(bool){ isRTLAllowed=bool; onChange(); }, forceRTL:function forceRTL(bool){ isRTLForced=bool; onChange(); }, setPreferredLanguageRTL:function setPreferredLanguageRTL(bool){ isPreferredLanguageRTL=bool; onChange(); }, get isRTL(){ return isRTL(); }}; module.exports=I18nManager; /***/ }), /* 83 */ /***/ (function(module, exports, __webpack_require__) { var _StyleRegistry=__webpack_require__(308);var _StyleRegistry2=_interopRequireDefault(_StyleRegistry);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} var registry=new _StyleRegistry2.default(); module.exports=registry; /***/ }), /* 84 */ /***/ (function(module, exports, __webpack_require__) { 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;};var _ColorPropType=__webpack_require__(16);var _ColorPropType2=_interopRequireDefault(_ColorPropType); var _ViewStylePropTypes=__webpack_require__(44);var _ViewStylePropTypes2=_interopRequireDefault(_ViewStylePropTypes); var _propTypes=__webpack_require__(3);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} var numberOrString=(0,_propTypes.oneOfType)([_propTypes.number,_propTypes.string]); var ShadowOffsetPropType=(0,_propTypes.shape)({width:_propTypes.number,height:_propTypes.number}); var TextAlignPropType=(0,_propTypes.oneOf)(['center','inherit','justify','justify-all','left','right']); var WritingDirectionPropType=(0,_propTypes.oneOf)(['auto','ltr','rtl']); var TextOnlyStylePropTypes={ color:_ColorPropType2.default, fontFamily:_propTypes.string, fontFeatureSettings:_propTypes.string, fontSize:numberOrString, fontStyle:_propTypes.string, fontWeight:_propTypes.string, letterSpacing:numberOrString, lineHeight:numberOrString, textAlign:TextAlignPropType, textAlignVertical:(0,_propTypes.oneOf)(['auto','bottom','center','top']), textDecorationLine:_propTypes.string, textShadowColor:_ColorPropType2.default, textShadowOffset:ShadowOffsetPropType, textShadowRadius:_propTypes.number, writingDirection:WritingDirectionPropType, textIndent:numberOrString, textOverflow:_propTypes.string, textRendering:(0,_propTypes.oneOf)(['auto','geometricPrecision','optimizeLegibility','optimizeSpeed']), textTransform:(0,_propTypes.oneOf)(['capitalize','lowercase','none','uppercase']), unicodeBidi:(0,_propTypes.oneOf)([ 'normal', 'bidi-override', 'embed', 'isolate', 'isolate-override', 'plaintext']), whiteSpace:_propTypes.string, wordWrap:_propTypes.string, MozOsxFontSmoothing:_propTypes.string, WebkitFontSmoothing:_propTypes.string}; module.exports=_extends({},_ViewStylePropTypes2.default, TextOnlyStylePropTypes); /***/ }), /* 85 */ /***/ (function(module, exports, __webpack_require__) { 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;};var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _applyLayout=__webpack_require__(91);var _applyLayout2=_interopRequireDefault(_applyLayout); var _applyNativeMethods=__webpack_require__(21);var _applyNativeMethods2=_interopRequireDefault(_applyNativeMethods); var _BaseComponentPropTypes=__webpack_require__(151);var _BaseComponentPropTypes2=_interopRequireDefault(_BaseComponentPropTypes); var _react=__webpack_require__(5); var _createDOMElement=__webpack_require__(31);var _createDOMElement2=_interopRequireDefault(_createDOMElement); var _StyleSheet=__webpack_require__(8);var _StyleSheet2=_interopRequireDefault(_StyleSheet); var _StyleSheetPropType=__webpack_require__(32);var _StyleSheetPropType2=_interopRequireDefault(_StyleSheetPropType); var _TextStylePropTypes=__webpack_require__(84);var _TextStylePropTypes2=_interopRequireDefault(_TextStylePropTypes); var _propTypes=__webpack_require__(3);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}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;}var Text=function(_Component){_inherits(Text,_Component);function Text(){_classCallCheck(this,Text);return _possibleConstructorReturn(this,(Text.__proto__||Object.getPrototypeOf(Text)).apply(this,arguments));}_createClass(Text,[{key:'getChildContext',value:function getChildContext() { return{isInAParentText:true}; }},{key:'render',value:function render() {var _props= this.props,dir=_props.dir,numberOfLines=_props.numberOfLines,onPress=_props.onPress,selectable=_props.selectable,style=_props.style,adjustsFontSizeToFit=_props.adjustsFontSizeToFit,allowFontScaling=_props.allowFontScaling,ellipsizeMode=_props.ellipsizeMode,lineBreakMode=_props.lineBreakMode,minimumFontScale=_props.minimumFontScale,onLayout=_props.onLayout,suppressHighlighting=_props.suppressHighlighting,otherProps=_objectWithoutProperties(_props,['dir','numberOfLines','onPress','selectable','style','adjustsFontSizeToFit','allowFontScaling','ellipsizeMode','lineBreakMode','minimumFontScale','onLayout','suppressHighlighting']); if(onPress){ otherProps.accessible=true; otherProps.onClick=onPress; otherProps.onKeyDown=this._createEnterHandler(onPress); } otherProps.dir=dir!==undefined?dir:'auto'; otherProps.style=[ styles.initial, this.context.isInAParentText!==true&&styles.preserveWhitespace, style, selectable===false&&styles.notSelectable, numberOfLines===1&&styles.singleLineStyle, onPress&&styles.pressable]; return(0,_createDOMElement2.default)('div',otherProps); }},{key:'_createEnterHandler',value:function _createEnterHandler( fn){ return function(e){ if(e.keyCode===13){ fn&&fn(e); } }; }}]);return Text;}(_react.Component);Text.displayName='Text';Text.childContextTypes={isInAParentText:_propTypes.bool};Text.contextTypes={isInAParentText:_propTypes.bool}; true?Text.propTypes=_extends({},_BaseComponentPropTypes2.default,{accessibilityRole:(0,_propTypes.oneOf)(['button','heading','link','listitem']),children:_propTypes.any,numberOfLines:_propTypes.number,onLayout:_propTypes.func,onPress:_propTypes.func,selectable:_propTypes.bool,style:(0,_StyleSheetPropType2.default)(_TextStylePropTypes2.default)}):void 0; var styles=_StyleSheet2.default.create({ initial:{ borderWidth:0, color:'inherit', display:'inline', font:'inherit', margin:0, padding:0, textDecorationLine:'none', wordWrap:'break-word'}, preserveWhitespace:{ whiteSpace:'pre-wrap'}, notSelectable:{ userSelect:'none'}, pressable:{ cursor:'pointer'}, singleLineStyle:{ maxWidth:'100%', overflow:'hidden', textOverflow:'ellipsis', whiteSpace:'nowrap'}}); module.exports=(0,_applyLayout2.default)((0,_applyNativeMethods2.default)(Text)); /***/ }), /* 86 */ /***/ (function(module, exports, __webpack_require__) { var _UIManager=__webpack_require__(30);var _UIManager2=_interopRequireDefault(_UIManager);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} var TextInputState={ _currentlyFocusedNode:null, currentlyFocusedField:function currentlyFocusedField(){ if(document.activeElement!==this._currentlyFocusedNode){ this._currentlyFocusedNode=null; } return this._currentlyFocusedNode; }, focusTextInput:function focusTextInput(textFieldNode){ if(document.activeElement!==textFieldNode&&textFieldNode!==null){ this._currentlyFocusedNode=textFieldNode; _UIManager2.default.focus(textFieldNode); } }, blurTextInput:function blurTextInput(textFieldNode){ if(document.activeElement===textFieldNode&&textFieldNode!==null){ this._currentlyFocusedNode=null; _UIManager2.default.blur(textFieldNode); } }}; module.exports=TextInputState; /***/ }), /* 87 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; 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;}; var _createReactClass=__webpack_require__(49);var _createReactClass2=_interopRequireDefault(_createReactClass); var _propTypes=__webpack_require__(3);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}var EdgeInsetsPropType=__webpack_require__(92);var React=__webpack_require__(5);var TimerMixin=__webpack_require__(95);var Touchable=__webpack_require__(59);var ensurePositiveDelayProps=__webpack_require__(88);var warning=__webpack_require__(1);var StyleSheet=__webpack_require__(8); var PRESS_RETENTION_OFFSET={top:20,left:20,right:20,bottom:30}; var TouchableWithoutFeedback=(0,_createReactClass2.default)({ mixins:[TimerMixin,Touchable.Mixin], propTypes:{ accessible:_propTypes.bool, accessibilityLabel:_propTypes.string, accessibilityRole:_propTypes.string, disabled:_propTypes.bool, onPress:_propTypes.func, onPressIn:_propTypes.func, onPressOut:_propTypes.func, onLayout:_propTypes.func, onLongPress:_propTypes.func, delayPressIn:_propTypes.number, delayPressOut:_propTypes.number, delayLongPress:_propTypes.number, pressRetentionOffset:EdgeInsetsPropType, hitSlop:EdgeInsetsPropType}, getInitialState:function getInitialState(){ return this.touchableGetInitialState(); }, componentDidMount:function componentDidMount(){ ensurePositiveDelayProps(this.props); }, componentWillReceiveProps:function componentWillReceiveProps(nextProps){ ensurePositiveDelayProps(nextProps); }, touchableHandlePress:function touchableHandlePress(e){ this.props.onPress&&this.props.onPress(e); }, touchableHandleActivePressIn:function touchableHandleActivePressIn(e){ this.props.onPressIn&&this.props.onPressIn(e); }, touchableHandleActivePressOut:function touchableHandleActivePressOut(e){ this.props.onPressOut&&this.props.onPressOut(e); }, touchableHandleLongPress:function touchableHandleLongPress(e){ this.props.onLongPress&&this.props.onLongPress(e); }, touchableGetPressRectOffset:function touchableGetPressRectOffset(){ return this.props.pressRetentionOffset||PRESS_RETENTION_OFFSET; }, touchableGetHitSlop:function touchableGetHitSlop(){ return this.props.hitSlop; }, touchableGetHighlightDelayMS:function touchableGetHighlightDelayMS(){ return this.props.delayPressIn||0; }, touchableGetLongPressDelayMS:function touchableGetLongPressDelayMS(){ return this.props.delayLongPress===0?0:this.props.delayLongPress||500; }, touchableGetPressOutDelayMS:function touchableGetPressOutDelayMS(){ return this.props.delayPressOut||0; }, render:function render(){var _props= this.props,delayLongPress=_props.delayLongPress,delayPressIn=_props.delayPressIn,delayPressOut=_props.delayPressOut,onLongPress=_props.onLongPress,onPress=_props.onPress,onPressIn=_props.onPressIn,onPressOut=_props.onPressOut,pressRetentionOffset=_props.pressRetentionOffset,other=_objectWithoutProperties(_props,['delayLongPress','delayPressIn','delayPressOut','onLongPress','onPress','onPressIn','onPressOut','pressRetentionOffset']); var child=React.Children.only(this.props.children); var children=child.props.children; warning( !child.type||child.type.displayName!=='Text', 'TouchableWithoutFeedback does not work well with Text children. Wrap children in a View instead. See '+( child._owner&&child._owner.getName&&child._owner.getName()||'<unknown>')); if( "development"!=='production'&& Touchable.TOUCH_TARGET_DEBUG&& child.type&& child.type.displayName==='View') { children=React.Children.toArray(children); children.push(Touchable.renderDebugView({color:'red',hitSlop:this.props.hitSlop})); } var style=Touchable.TOUCH_TARGET_DEBUG&&child.type&&child.type.displayName==='Text'? [styles.root,this.props.disabled&&styles.disabled,child.props.style,{color:'red'}]: [styles.root,this.props.disabled&&styles.disabled,child.props.style]; return React.cloneElement(child,_extends({}, other,{ accessible:this.props.accessible!==false, onStartShouldSetResponder:this.touchableHandleStartShouldSetResponder, onResponderTerminationRequest:this.touchableHandleResponderTerminationRequest, onResponderGrant:this.touchableHandleResponderGrant, onResponderMove:this.touchableHandleResponderMove, onResponderRelease:this.touchableHandleResponderRelease, onResponderTerminate:this.touchableHandleResponderTerminate, style:style, children:children})); }}); var styles=StyleSheet.create({ root:{ cursor:'pointer'}, disabled:{ cursor:'default'}}); module.exports=TouchableWithoutFeedback; /***/ }), /* 88 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var invariant=__webpack_require__(0); var ensurePositiveDelayProps=function ensurePositiveDelayProps(props){ invariant( !(props.delayPressIn<0||props.delayPressOut<0||props.delayLongPress<0), 'Touchable components cannot have negative delay properties'); }; module.exports=ensurePositiveDelayProps; /***/ }), /* 89 */ /***/ (function(module, exports, __webpack_require__) { var _propsToAccessibilityComponent=__webpack_require__(337);var _propsToAccessibilityComponent2=_interopRequireDefault(_propsToAccessibilityComponent); var _propsToAriaRole=__webpack_require__(90);var _propsToAriaRole2=_interopRequireDefault(_propsToAriaRole); var _propsToTabIndex=__webpack_require__(338);var _propsToTabIndex2=_interopRequireDefault(_propsToTabIndex);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} module.exports={ propsToAccessibilityComponent:_propsToAccessibilityComponent2.default, propsToAriaRole:_propsToAriaRole2.default, propsToTabIndex:_propsToTabIndex2.default}; /***/ }), /* 90 */ /***/ (function(module, exports) { var accessibilityComponentTypeToRole={ button:'button', none:'presentation'}; var accessibilityTraitsToRole={ adjustable:'slider', button:'button', header:'heading', image:'img', link:'link', none:'presentation', search:'search', summary:'region'}; var propsToAriaRole=function propsToAriaRole(_ref) {var accessibilityComponentType=_ref.accessibilityComponentType,accessibilityRole=_ref.accessibilityRole,accessibilityTraits=_ref.accessibilityTraits; if(accessibilityRole){ return accessibilityRole; } if(accessibilityTraits){ var trait=Array.isArray(accessibilityTraits)?accessibilityTraits[0]:accessibilityTraits; return accessibilityTraitsToRole[trait]; } if(accessibilityComponentType){ return accessibilityComponentTypeToRole[accessibilityComponentType]; } }; module.exports=propsToAriaRole; /***/ }), /* 91 */ /***/ (function(module, exports, __webpack_require__) { var _ExecutionEnvironment=__webpack_require__(4); var _debounce=__webpack_require__(63);var _debounce2=_interopRequireDefault(_debounce);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} var emptyObject={}; var registry={}; var id=1; var guid=function guid(){return'r-'+id++;}; if(_ExecutionEnvironment.canUseDOM){ var triggerAll=function triggerAll(){ Object.keys(registry).forEach(function(key){ var instance=registry[key]; instance._handleLayout(); }); }; window.addEventListener('resize',(0,_debounce2.default)(triggerAll,16),false); } var safeOverride=function safeOverride(original,next){ if(original){ return function prototypeOverride(){ original.call(this); next.call(this); }; } return next; }; var applyLayout=function applyLayout(Component){ var componentDidMount=Component.prototype.componentDidMount; var componentDidUpdate=Component.prototype.componentDidUpdate; var componentWillUnmount=Component.prototype.componentWillUnmount; Component.prototype.componentDidMount=safeOverride( componentDidMount, function componentDidMount(){ this._layoutState=emptyObject; this._isMounted=true; this._onLayoutId=guid(); registry[this._onLayoutId]=this; this._handleLayout(); }); Component.prototype.componentDidUpdate=safeOverride( componentDidUpdate, function componentDidUpdate(){ this._handleLayout(); }); Component.prototype.componentWillUnmount=safeOverride( componentWillUnmount, function componentWillUnmount(){ this._isMounted=false; delete registry[this._onLayoutId]; }); Component.prototype._handleLayout=function(){var _this=this; var layout=this._layoutState;var onLayout=this.props.onLayout; if(onLayout){ this.measure(function(x,y,width,height){ if(!_this._isMounted)return; if( layout.x!==x||layout.y!==y||layout.width!==width||layout.height!==height) { _this._layoutState={x:x,y:y,width:width,height:height}; var nativeEvent={layout:_this._layoutState}; onLayout({nativeEvent:nativeEvent,timeStamp:Date.now()}); } }); } }; return Component; }; module.exports=applyLayout; /***/ }), /* 92 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _propTypes=__webpack_require__(3); var EdgeInsetsPropType=__webpack_require__(93)({ top:_propTypes.number, left:_propTypes.number, bottom:_propTypes.number, right:_propTypes.number}); module.exports=EdgeInsetsPropType; /***/ }), /* 93 */ /***/ (function(module, exports, __webpack_require__) { 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;}; var _invariant=__webpack_require__(0);var _invariant2=_interopRequireDefault(_invariant); var _ReactPropTypeLocationNames=__webpack_require__(94);var _ReactPropTypeLocationNames2=_interopRequireDefault(_ReactPropTypeLocationNames); var _ReactPropTypesSecret=__webpack_require__(157);var _ReactPropTypesSecret2=_interopRequireDefault(_ReactPropTypesSecret);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} function createStrictShapeTypeChecker( shapeTypes) { function checkType(isRequired,props,propName,componentName,location){ if(!props[propName]){ if(isRequired){ (0,_invariant2.default)( false, 'Required object `'+propName+'` was not specified in '+('`'+componentName+'`.')); } return; } var propValue=props[propName]; var propType=typeof propValue; var locationName=location&&_ReactPropTypeLocationNames2.default[location]||'(unknown)'; if(propType!=='object'){ (0,_invariant2.default)( false, 'Invalid '+locationName+' `'+propName+'` of type `'+propType+'` '+('supplied to `'+ componentName+'`, expected `object`.')); } var allKeys=_extends({},props[propName],shapeTypes); for(var key in allKeys){ var checker=shapeTypes[key]; if(!checker){ (0,_invariant2.default)( false, 'Invalid props.'+propName+' key `'+key+'` supplied to `'+componentName+'`.'+'\nBad object: '+ JSON.stringify(props[propName],null,' ')+'\nValid keys: '+ JSON.stringify(Object.keys(shapeTypes),null,' ')); } var error=checker(propValue,key,componentName,location,null,_ReactPropTypesSecret2.default); if(error){ (0,_invariant2.default)( false, error.message+'\nBad object: '+JSON.stringify(props[propName],null,' ')); } } } function chainedCheckType( props, propName, componentName, location) { return checkType(false,props,propName,componentName,location); } chainedCheckType.isRequired=checkType.bind(null,true); return chainedCheckType; } module.exports=createStrictShapeTypeChecker; /***/ }), /* 94 */ /***/ (function(module, exports, __webpack_require__) { var ReactPropTypeLocationNames={}; if(true){ ReactPropTypeLocationNames={ prop:'prop', context:'context', childContext:'child context'}; } module.exports=ReactPropTypeLocationNames; /***/ }), /* 95 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global) {/* * Copyright (c) 2015-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var GLOBAL = typeof window === 'undefined' ? global : window; var setter = function(_setter, _clearer, array) { return function(callback, delta) { var id = _setter(function() { _clearer.call(this, id); callback.apply(this, arguments); }.bind(this), delta); if (!this[array]) { this[array] = [id]; } else { this[array].push(id); } return id; }; }; var clearer = function(_clearer, array) { return function(id) { if (this[array]) { var index = this[array].indexOf(id); if (index !== -1) { this[array].splice(index, 1); } } _clearer(id); }; }; var _timeouts = 'TimerMixin_timeouts'; var _clearTimeout = clearer(GLOBAL.clearTimeout, _timeouts); var _setTimeout = setter(GLOBAL.setTimeout, _clearTimeout, _timeouts); var _intervals = 'TimerMixin_intervals'; var _clearInterval = clearer(GLOBAL.clearInterval, _intervals); var _setInterval = setter(GLOBAL.setInterval, function() {/* noop */}, _intervals); var _immediates = 'TimerMixin_immediates'; var _clearImmediate = clearer(GLOBAL.clearImmediate, _immediates); var _setImmediate = setter(GLOBAL.setImmediate, _clearImmediate, _immediates); var _rafs = 'TimerMixin_rafs'; var _cancelAnimationFrame = clearer(GLOBAL.cancelAnimationFrame, _rafs); var _requestAnimationFrame = setter(GLOBAL.requestAnimationFrame, _cancelAnimationFrame, _rafs); var TimerMixin = { componentWillUnmount: function() { this[_timeouts] && this[_timeouts].forEach(function(id) { GLOBAL.clearTimeout(id); }); this[_timeouts] = null; this[_intervals] && this[_intervals].forEach(function(id) { GLOBAL.clearInterval(id); }); this[_intervals] = null; this[_immediates] && this[_immediates].forEach(function(id) { GLOBAL.clearImmediate(id); }); this[_immediates] = null; this[_rafs] && this[_rafs].forEach(function(id) { GLOBAL.cancelAnimationFrame(id); }); this[_rafs] = null; }, setTimeout: _setTimeout, clearTimeout: _clearTimeout, setInterval: _setInterval, clearInterval: _clearInterval, setImmediate: _setImmediate, clearImmediate: _clearImmediate, requestAnimationFrame: _requestAnimationFrame, cancelAnimationFrame: _cancelAnimationFrame, }; module.exports = TimerMixin; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) /***/ }), /* 96 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ var canDefineProperty = false; if (true) { try { // $FlowFixMe https://github.com/facebook/flow/issues/285 Object.defineProperty({}, 'x', { get: function () {} }); canDefineProperty = true; } catch (x) { // IE will fail on defineProperty } } module.exports = canDefineProperty; /***/ }), /* 97 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ function getComponentName(instanceOrFiber) { if (typeof instanceOrFiber.getName === 'function') { // Stack reconciler var instance = instanceOrFiber; return instance.getName(); } if (typeof instanceOrFiber.tag === 'number') { // Fiber reconciler var fiber = instanceOrFiber; var type = fiber.type; if (typeof type === 'string') { return type; } if (typeof type === 'function') { return type.displayName || type.name; } } return null; } module.exports = getComponentName; /***/ }), /* 98 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ /* global Symbol */ var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. /** * Returns the iterator method function contained on the iterable object. * * Be sure to invoke the function with the iterable as context: * * var iteratorFn = getIteratorFn(myIterable); * if (iteratorFn) { * var iterator = iteratorFn.call(myIterable); * ... * } * * @param {?object} maybeIterable * @return {?function} */ function getIteratorFn(maybeIterable) { var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); if (typeof iteratorFn === 'function') { return iteratorFn; } } module.exports = getIteratorFn; /***/ }), /* 99 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; 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;};var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}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;} var Animated=__webpack_require__(9); var AnimatedStyle=__webpack_require__(170);var AnimatedProps=function(_Animated){_inherits(AnimatedProps,_Animated); function AnimatedProps( props, callback) {_classCallCheck(this,AnimatedProps);var _this=_possibleConstructorReturn(this,(AnimatedProps.__proto__||Object.getPrototypeOf(AnimatedProps)).call(this)); if(props.style){ props=_extends({}, props,{ style:new AnimatedStyle(props.style)}); } _this._props=props; _this._callback=callback; _this.__attach();return _this; }_createClass(AnimatedProps,[{key:'__getValue',value:function __getValue() { var props={}; for(var key in this._props){ var value=this._props[key]; if(value instanceof Animated){ props[key]=value.__getValue(); }else{ props[key]=value; } } return props; }},{key:'__getAnimatedValue',value:function __getAnimatedValue() { var props={}; for(var key in this._props){ var value=this._props[key]; if(value instanceof Animated){ props[key]=value.__getAnimatedValue(); } } return props; }},{key:'__attach',value:function __attach() { for(var key in this._props){ var value=this._props[key]; if(value instanceof Animated){ value.__addChild(this); } } }},{key:'__detach',value:function __detach() { for(var key in this._props){ var value=this._props[key]; if(value instanceof Animated){ value.__removeChild(this); } } }},{key:'update',value:function update() { this._callback(); }}]);return AnimatedProps;}(Animated); module.exports=AnimatedProps; /***/ }), /* 100 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}} var _bezier=__webpack_require__(180);var Easing=function(){function Easing(){_classCallCheck(this,Easing);}_createClass(Easing,null,[{key:'step0',value:function step0( n){ return n>0?1:0; }},{key:'step1',value:function step1( n){ return n>=1?1:0; }},{key:'linear',value:function linear( t){ return t; }},{key:'ease',value:function ease( t){ return _ease(t); }},{key:'quad',value:function quad( t){ return t*t; }},{key:'cubic',value:function cubic( t){ return t*t*t; }},{key:'poly',value:function poly( n){ return function(t){return Math.pow(t,n);}; }},{key:'sin',value:function sin( t){ return 1-Math.cos(t*Math.PI/2); }},{key:'circle',value:function circle( t){ return 1-Math.sqrt(1-t*t); }},{key:'exp',value:function exp( t){ return Math.pow(2,10*(t-1)); }},{key:'elastic',value:function elastic() {var bounciness=arguments.length>0&&arguments[0]!==undefined?arguments[0]:1; var p=bounciness*Math.PI; return function(t){return 1-Math.pow(Math.cos(t*Math.PI/2),3)*Math.cos(t*p);}; }},{key:'back',value:function back( s){ if(s===undefined){ s=1.70158; } return function(t){return t*t*((s+1)*t-s);}; }},{key:'bounce',value:function bounce( t){ if(t<1/2.75){ return 7.5625*t*t; } if(t<2/2.75){ t-=1.5/2.75; return 7.5625*t*t+0.75; } if(t<2.5/2.75){ t-=2.25/2.75; return 7.5625*t*t+0.9375; } t-=2.625/2.75; return 7.5625*t*t+0.984375; }},{key:'bezier',value:function bezier( x1, y1, x2, y2) { return _bezier(x1,y1,x2,y2); }},{key:'in',value:function _in( easing) { return easing; }},{key:'out',value:function out( easing) { return function(t){return 1-easing(1-t);}; }},{key:'inOut',value:function inOut( easing) { return function(t){ if(t<0.5){ return easing(t*2)/2; } return 1-easing((1-t)*2)/2; }; }}]);return Easing;}(); var _ease=Easing.bezier(0.42,0,1,1); module.exports=Easing; /***/ }), /* 101 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var ApplyAnimatedValues={ current:function ApplyAnimatedValues(instance,props){ if(instance.setNativeProps){ instance.setNativeProps(props); }else{ return false; } }, inject:function inject(apply){ ApplyAnimatedValues.current=apply; }}; module.exports=ApplyAnimatedValues; /***/ }), /* 102 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var FlattenStyle={ current:function current(style){return style;}, inject:function inject(flatten){ FlattenStyle.current=flatten; }}; module.exports=FlattenStyle; /***/ }), /* 103 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var InteractionManager={ current:{ createInteractionHandle:function createInteractionHandle(){}, clearInteractionHandle:function clearInteractionHandle(){}}, inject:function inject(manager){ InteractionManager.current=manager; }}; module.exports=InteractionManager; /***/ }), /* 104 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = function (arr, predicate, ctx) { if (typeof Array.prototype.findIndex === 'function') { return arr.findIndex(predicate, ctx); } if (typeof predicate !== 'function') { throw new TypeError('predicate must be a function'); } var list = Object(arr); var len = list.length; if (len === 0) { return -1; } for (var i = 0; i < len; i++) { if (predicate.call(ctx, list[i], i, list)) { return i; } } return -1; }; /***/ }), /* 105 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (c) 2013-present, Facebook, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * @typechecks */ var emptyFunction = __webpack_require__(10); /** * Upstream version of event listener. Does not take into account specific * nature of platform. */ var EventListener = { /** * Listen to DOM events during the bubble phase. * * @param {DOMEventTarget} target DOM element to register listener on. * @param {string} eventType Event type, e.g. 'click' or 'mouseover'. * @param {function} callback Callback function. * @return {object} Object with a `remove` method. */ listen: function listen(target, eventType, callback) { if (target.addEventListener) { target.addEventListener(eventType, callback, false); return { remove: function remove() { target.removeEventListener(eventType, callback, false); } }; } else if (target.attachEvent) { target.attachEvent('on' + eventType, callback); return { remove: function remove() { target.detachEvent('on' + eventType, callback); } }; } }, /** * Listen to DOM events during the capture phase. * * @param {DOMEventTarget} target DOM element to register listener on. * @param {string} eventType Event type, e.g. 'click' or 'mouseover'. * @param {function} callback Callback function. * @return {object} Object with a `remove` method. */ capture: function capture(target, eventType, callback) { if (target.addEventListener) { target.addEventListener(eventType, callback, true); return { remove: function remove() { target.removeEventListener(eventType, callback, true); } }; } else { if (true) { console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.'); } return { remove: emptyFunction }; } }, registerDefault: function registerDefault() {} }; module.exports = EventListener; /***/ }), /* 106 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (c) 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @typechecks */ var camelize = __webpack_require__(188); var msPattern = /^-ms-/; /** * Camelcases a hyphenated CSS property name, for example: * * > camelizeStyleName('background-color') * < "backgroundColor" * > camelizeStyleName('-moz-transition') * < "MozTransition" * > camelizeStyleName('-ms-transition') * < "msTransition" * * As Andi Smith suggests * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix * is converted to lowercase `ms`. * * @param {string} string * @return {string} */ function camelizeStyleName(string) { return camelize(string.replace(msPattern, 'ms-')); } module.exports = camelizeStyleName; /***/ }), /* 107 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (c) 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ /** * @param {DOMElement} node input/textarea to focus */ function focusNode(node) { // IE8 can throw "Can't move focus to the control because it is invisible, // not enabled, or of a type that does not accept the focus." for all kinds of // reasons that are too expensive and fragile to test. try { node.focus(); } catch (e) {} } module.exports = focusNode; /***/ }), /* 108 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (c) 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @typechecks */ /* eslint-disable fb-www/typeof-undefined */ /** * Same as document.activeElement but wraps in a try-catch block. In IE it is * not safe to call document.activeElement if there is nothing focused. * * The activeElement will be null only if the document or document body is not * yet defined. * * @param {?DOMDocument} doc Defaults to current document. * @return {?DOMElement} */ function getActiveElement(doc) /*?DOMElement*/{ doc = doc || (typeof document !== 'undefined' ? document : undefined); if (typeof doc === 'undefined') { return null; } try { return doc.activeElement || doc.body; } catch (e) { return doc.body; } } module.exports = getActiveElement; /***/ }), /* 109 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (c) 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ /* eslint-disable fb-www/typeof-undefined */ /* eslint-disable no-unused-vars */ var invariant = __webpack_require__(0); /** * Checks if a value is empty. */ function isEmpty(value) { if (Array.isArray(value)) { return value.length === 0; } else if (typeof value === 'object') { if (value) { !(!isIterable(value) || value.size === undefined) ? true ? invariant(false, 'isEmpty() does not support iterable collections.') : invariant(false) : void 0; for (var _ in value) { return false; } } return true; } else { return !value; } } function isIterable(value) { if (typeof Symbol === 'undefined') { return false; } return value[Symbol.iterator]; } module.exports = isEmpty; /***/ }), /* 110 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var uppercasePattern = /[A-Z]/g; var msPattern = /^ms-/; var cache = {}; function hyphenateStyleName(string) { return string in cache ? cache[string] : cache[string] = string .replace(uppercasePattern, '-$&') .toLowerCase() .replace(msPattern, '-ms-'); } module.exports = hyphenateStyleName; /***/ }), /* 111 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createPrefixer = __webpack_require__(202); var _createPrefixer2 = _interopRequireDefault(_createPrefixer); var _staticData = __webpack_require__(213); var _staticData2 = _interopRequireDefault(_staticData); var _cursor = __webpack_require__(204); var _cursor2 = _interopRequireDefault(_cursor); var _crossFade = __webpack_require__(203); var _crossFade2 = _interopRequireDefault(_crossFade); var _filter = __webpack_require__(205); var _filter2 = _interopRequireDefault(_filter); var _flex = __webpack_require__(206); var _flex2 = _interopRequireDefault(_flex); var _flexboxOld = __webpack_require__(207); var _flexboxOld2 = _interopRequireDefault(_flexboxOld); var _gradient = __webpack_require__(208); var _gradient2 = _interopRequireDefault(_gradient); var _imageSet = __webpack_require__(209); var _imageSet2 = _interopRequireDefault(_imageSet); var _position = __webpack_require__(210); var _position2 = _interopRequireDefault(_position); var _sizing = __webpack_require__(211); var _sizing2 = _interopRequireDefault(_sizing); var _transition = __webpack_require__(212); var _transition2 = _interopRequireDefault(_transition); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var plugins = [_crossFade2.default, _cursor2.default, _filter2.default, _flexboxOld2.default, _gradient2.default, _imageSet2.default, _position2.default, _sizing2.default, _transition2.default, _flex2.default]; exports.default = (0, _createPrefixer2.default)({ prefixMap: _staticData2.default.prefixMap, plugins: plugins }); module.exports = exports['default']; /***/ }), /* 112 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = capitalizeString; function capitalizeString(str) { return str.charAt(0).toUpperCase() + str.slice(1); } module.exports = exports["default"]; /***/ }), /* 113 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ var emptyFunction = __webpack_require__(10); var invariant = __webpack_require__(0); var warning = __webpack_require__(1); var ReactPropTypesSecret = __webpack_require__(114); var checkPropTypes = __webpack_require__(219); module.exports = function(isValidElement, throwOnDirectAccess) { /* global Symbol */ var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. /** * Returns the iterator method function contained on the iterable object. * * Be sure to invoke the function with the iterable as context: * * var iteratorFn = getIteratorFn(myIterable); * if (iteratorFn) { * var iterator = iteratorFn.call(myIterable); * ... * } * * @param {?object} maybeIterable * @return {?function} */ function getIteratorFn(maybeIterable) { var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); if (typeof iteratorFn === 'function') { return iteratorFn; } } /** * Collection of methods that allow declaration and validation of props that are * supplied to React components. Example usage: * * var Props = require('ReactPropTypes'); * var MyArticle = React.createClass({ * propTypes: { * // An optional string prop named "description". * description: Props.string, * * // A required enum prop named "category". * category: Props.oneOf(['News','Photos']).isRequired, * * // A prop named "dialog" that requires an instance of Dialog. * dialog: Props.instanceOf(Dialog).isRequired * }, * render: function() { ... } * }); * * A more formal specification of how these methods are used: * * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) * decl := ReactPropTypes.{type}(.isRequired)? * * Each and every declaration produces a function with the same signature. This * allows the creation of custom validation functions. For example: * * var MyLink = React.createClass({ * propTypes: { * // An optional string or URI prop named "href". * href: function(props, propName, componentName) { * var propValue = props[propName]; * if (propValue != null && typeof propValue !== 'string' && * !(propValue instanceof URI)) { * return new Error( * 'Expected a string or an URI for ' + propName + ' in ' + * componentName * ); * } * } * }, * render: function() {...} * }); * * @internal */ var ANONYMOUS = '<<anonymous>>'; // Important! // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. var ReactPropTypes = { array: createPrimitiveTypeChecker('array'), bool: createPrimitiveTypeChecker('boolean'), func: createPrimitiveTypeChecker('function'), number: createPrimitiveTypeChecker('number'), object: createPrimitiveTypeChecker('object'), string: createPrimitiveTypeChecker('string'), symbol: createPrimitiveTypeChecker('symbol'), any: createAnyTypeChecker(), arrayOf: createArrayOfTypeChecker, element: createElementTypeChecker(), instanceOf: createInstanceTypeChecker, node: createNodeChecker(), objectOf: createObjectOfTypeChecker, oneOf: createEnumTypeChecker, oneOfType: createUnionTypeChecker, shape: createShapeTypeChecker }; /** * inlined Object.is polyfill to avoid requiring consumers ship their own * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is */ /*eslint-disable no-self-compare*/ function is(x, y) { // SameValue algorithm if (x === y) { // Steps 1-5, 7-10 // Steps 6.b-6.e: +0 != -0 return x !== 0 || 1 / x === 1 / y; } else { // Step 6.a: NaN == NaN return x !== x && y !== y; } } /*eslint-enable no-self-compare*/ /** * We use an Error-like object for backward compatibility as people may call * PropTypes directly and inspect their output. However, we don't use real * Errors anymore. We don't inspect their stack anyway, and creating them * is prohibitively expensive if they are created too often, such as what * happens in oneOfType() for any type before the one that matched. */ function PropTypeError(message) { this.message = message; this.stack = ''; } // Make `instanceof Error` still work for returned errors. PropTypeError.prototype = Error.prototype; function createChainableTypeChecker(validate) { if (true) { var manualPropTypeCallCache = {}; var manualPropTypeWarningCount = 0; } function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { componentName = componentName || ANONYMOUS; propFullName = propFullName || propName; if (secret !== ReactPropTypesSecret) { if (throwOnDirectAccess) { // New behavior only for users of `prop-types` package invariant( false, 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use `PropTypes.checkPropTypes()` to call them. ' + 'Read more at http://fb.me/use-check-prop-types' ); } else if ("development" !== 'production' && typeof console !== 'undefined') { // Old behavior for people using React.PropTypes var cacheKey = componentName + ':' + propName; if ( !manualPropTypeCallCache[cacheKey] && // Avoid spamming the console because they are often not actionable except for lib authors manualPropTypeWarningCount < 3 ) { warning( false, 'You are manually calling a React.PropTypes validation ' + 'function for the `%s` prop on `%s`. This is deprecated ' + 'and will throw in the standalone `prop-types` package. ' + 'You may be seeing this warning due to a third-party PropTypes ' + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.', propFullName, componentName ); manualPropTypeCallCache[cacheKey] = true; manualPropTypeWarningCount++; } } } if (props[propName] == null) { if (isRequired) { if (props[propName] === null) { return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); } return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); } return null; } else { return validate(props, propName, componentName, location, propFullName); } } var chainedCheckType = checkType.bind(null, false); chainedCheckType.isRequired = checkType.bind(null, true); return chainedCheckType; } function createPrimitiveTypeChecker(expectedType) { function validate(props, propName, componentName, location, propFullName, secret) { var propValue = props[propName]; var propType = getPropType(propValue); if (propType !== expectedType) { // `propValue` being instance of, say, date/regexp, pass the 'object' // check, but we can offer a more precise error message here rather than // 'of type `object`'. var preciseType = getPreciseType(propValue); return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); } return null; } return createChainableTypeChecker(validate); } function createAnyTypeChecker() { return createChainableTypeChecker(emptyFunction.thatReturnsNull); } function createArrayOfTypeChecker(typeChecker) { function validate(props, propName, componentName, location, propFullName) { if (typeof typeChecker !== 'function') { return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); } var propValue = props[propName]; if (!Array.isArray(propValue)) { var propType = getPropType(propValue); return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); } for (var i = 0; i < propValue.length; i++) { var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); if (error instanceof Error) { return error; } } return null; } return createChainableTypeChecker(validate); } function createElementTypeChecker() { function validate(props, propName, componentName, location, propFullName) { var propValue = props[propName]; if (!isValidElement(propValue)) { var propType = getPropType(propValue); return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); } return null; } return createChainableTypeChecker(validate); } function createInstanceTypeChecker(expectedClass) { function validate(props, propName, componentName, location, propFullName) { if (!(props[propName] instanceof expectedClass)) { var expectedClassName = expectedClass.name || ANONYMOUS; var actualClassName = getClassName(props[propName]); return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); } return null; } return createChainableTypeChecker(validate); } function createEnumTypeChecker(expectedValues) { if (!Array.isArray(expectedValues)) { true ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0; return emptyFunction.thatReturnsNull; } function validate(props, propName, componentName, location, propFullName) { var propValue = props[propName]; for (var i = 0; i < expectedValues.length; i++) { if (is(propValue, expectedValues[i])) { return null; } } var valuesString = JSON.stringify(expectedValues); return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); } return createChainableTypeChecker(validate); } function createObjectOfTypeChecker(typeChecker) { function validate(props, propName, componentName, location, propFullName) { if (typeof typeChecker !== 'function') { return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); } var propValue = props[propName]; var propType = getPropType(propValue); if (propType !== 'object') { return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); } for (var key in propValue) { if (propValue.hasOwnProperty(key)) { var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); if (error instanceof Error) { return error; } } } return null; } return createChainableTypeChecker(validate); } function createUnionTypeChecker(arrayOfTypeCheckers) { if (!Array.isArray(arrayOfTypeCheckers)) { true ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; return emptyFunction.thatReturnsNull; } for (var i = 0; i < arrayOfTypeCheckers.length; i++) { var checker = arrayOfTypeCheckers[i]; if (typeof checker !== 'function') { warning( false, 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' + 'received %s at index %s.', getPostfixForTypeWarning(checker), i ); return emptyFunction.thatReturnsNull; } } function validate(props, propName, componentName, location, propFullName) { for (var i = 0; i < arrayOfTypeCheckers.length; i++) { var checker = arrayOfTypeCheckers[i]; if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) { return null; } } return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); } return createChainableTypeChecker(validate); } function createNodeChecker() { function validate(props, propName, componentName, location, propFullName) { if (!isNode(props[propName])) { return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); } return null; } return createChainableTypeChecker(validate); } function createShapeTypeChecker(shapeTypes) { function validate(props, propName, componentName, location, propFullName) { var propValue = props[propName]; var propType = getPropType(propValue); if (propType !== 'object') { return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); } for (var key in shapeTypes) { var checker = shapeTypes[key]; if (!checker) { continue; } var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); if (error) { return error; } } return null; } return createChainableTypeChecker(validate); } function isNode(propValue) { switch (typeof propValue) { case 'number': case 'string': case 'undefined': return true; case 'boolean': return !propValue; case 'object': if (Array.isArray(propValue)) { return propValue.every(isNode); } if (propValue === null || isValidElement(propValue)) { return true; } var iteratorFn = getIteratorFn(propValue); if (iteratorFn) { var iterator = iteratorFn.call(propValue); var step; if (iteratorFn !== propValue.entries) { while (!(step = iterator.next()).done) { if (!isNode(step.value)) { return false; } } } else { // Iterator will provide entry [k,v] tuples rather than values. while (!(step = iterator.next()).done) { var entry = step.value; if (entry) { if (!isNode(entry[1])) { return false; } } } } } else { return false; } return true; default: return false; } } function isSymbol(propType, propValue) { // Native Symbol. if (propType === 'symbol') { return true; } // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' if (propValue['@@toStringTag'] === 'Symbol') { return true; } // Fallback for non-spec compliant Symbols which are polyfilled. if (typeof Symbol === 'function' && propValue instanceof Symbol) { return true; } return false; } // Equivalent of `typeof` but with special handling for array and regexp. function getPropType(propValue) { var propType = typeof propValue; if (Array.isArray(propValue)) { return 'array'; } if (propValue instanceof RegExp) { // Old webkits (at least until Android 4.0) return 'function' rather than // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ // passes PropTypes.object. return 'object'; } if (isSymbol(propType, propValue)) { return 'symbol'; } return propType; } // This handles more types than `getPropType`. Only used for error messages. // See `createPrimitiveTypeChecker`. function getPreciseType(propValue) { if (typeof propValue === 'undefined' || propValue === null) { return '' + propValue; } var propType = getPropType(propValue); if (propType === 'object') { if (propValue instanceof Date) { return 'date'; } else if (propValue instanceof RegExp) { return 'regexp'; } } return propType; } // Returns a string that is postfixed to a warning about an invalid type. // For example, "undefined" or "of type array" function getPostfixForTypeWarning(value) { var type = getPreciseType(value); switch (type) { case 'array': case 'object': return 'an ' + type; case 'boolean': case 'date': case 'regexp': return 'a ' + type; default: return type; } } // Returns class name of the object, if any. function getClassName(propValue) { if (!propValue.constructor || !propValue.constructor.name) { return ANONYMOUS; } return propValue.constructor.name; } ReactPropTypes.checkPropTypes = checkPropTypes; ReactPropTypes.PropTypes = ReactPropTypes; return ReactPropTypes; }; /***/ }), /* 114 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; module.exports = ReactPropTypesSecret; /***/ }), /* 115 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ /** * CSS properties which accept numbers but are not in units of "px". */ var isUnitlessNumber = { animationIterationCount: true, borderImageOutset: true, borderImageSlice: true, borderImageWidth: true, boxFlex: true, boxFlexGroup: true, boxOrdinalGroup: true, columnCount: true, flex: true, flexGrow: true, flexPositive: true, flexShrink: true, flexNegative: true, flexOrder: true, gridRow: true, gridColumn: true, fontWeight: true, lineClamp: true, lineHeight: true, opacity: true, order: true, orphans: true, tabSize: true, widows: true, zIndex: true, zoom: true, // SVG-related properties fillOpacity: true, floodOpacity: true, stopOpacity: true, strokeDasharray: true, strokeDashoffset: true, strokeMiterlimit: true, strokeOpacity: true, strokeWidth: true }; /** * @param {string} prefix vendor-specific prefix, eg: Webkit * @param {string} key style name, eg: transitionDuration * @return {string} style name prefixed with `prefix`, properly camelCased, eg: * WebkitTransitionDuration */ function prefixKey(prefix, key) { return prefix + key.charAt(0).toUpperCase() + key.substring(1); } /** * Support style names that may come passed in prefixed by adding permutations * of vendor prefixes. */ var prefixes = ['Webkit', 'ms', 'Moz', 'O']; // Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an // infinite loop, because it iterates over the newly added props too. Object.keys(isUnitlessNumber).forEach(function (prop) { prefixes.forEach(function (prefix) { isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop]; }); }); /** * Most style properties can be unset by doing .style[prop] = '' but IE8 * doesn't like doing that with shorthand properties so for the properties that * IE8 breaks on, which are listed here, we instead unset each of the * individual properties. See http://bugs.jquery.com/ticket/12385. * The 4-value 'clock' properties like margin, padding, border-width seem to * behave without any problems. Curiously, list-style works too without any * special prodding. */ var shorthandPropertyExpansions = { background: { backgroundAttachment: true, backgroundColor: true, backgroundImage: true, backgroundPositionX: true, backgroundPositionY: true, backgroundRepeat: true }, backgroundPosition: { backgroundPositionX: true, backgroundPositionY: true }, border: { borderWidth: true, borderStyle: true, borderColor: true }, borderBottom: { borderBottomWidth: true, borderBottomStyle: true, borderBottomColor: true }, borderLeft: { borderLeftWidth: true, borderLeftStyle: true, borderLeftColor: true }, borderRight: { borderRightWidth: true, borderRightStyle: true, borderRightColor: true }, borderTop: { borderTopWidth: true, borderTopStyle: true, borderTopColor: true }, font: { fontStyle: true, fontVariant: true, fontWeight: true, fontSize: true, lineHeight: true, fontFamily: true }, outline: { outlineWidth: true, outlineStyle: true, outlineColor: true } }; var CSSProperty = { isUnitlessNumber: isUnitlessNumber, shorthandPropertyExpansions: shorthandPropertyExpansions }; module.exports = CSSProperty; /***/ }), /* 116 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ var _prodInvariant = __webpack_require__(2); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var PooledClass = __webpack_require__(24); var invariant = __webpack_require__(0); /** * A specialized pseudo-event module to help keep track of components waiting to * be notified when their DOM representations are available for use. * * This implements `PooledClass`, so you should never need to instantiate this. * Instead, use `CallbackQueue.getPooled()`. * * @class ReactMountReady * @implements PooledClass * @internal */ var CallbackQueue = function () { function CallbackQueue(arg) { _classCallCheck(this, CallbackQueue); this._callbacks = null; this._contexts = null; this._arg = arg; } /** * Enqueues a callback to be invoked when `notifyAll` is invoked. * * @param {function} callback Invoked when `notifyAll` is invoked. * @param {?object} context Context to call `callback` with. * @internal */ CallbackQueue.prototype.enqueue = function enqueue(callback, context) { this._callbacks = this._callbacks || []; this._callbacks.push(callback); this._contexts = this._contexts || []; this._contexts.push(context); }; /** * Invokes all enqueued callbacks and clears the queue. This is invoked after * the DOM representation of a component has been created or updated. * * @internal */ CallbackQueue.prototype.notifyAll = function notifyAll() { var callbacks = this._callbacks; var contexts = this._contexts; var arg = this._arg; if (callbacks && contexts) { !(callbacks.length === contexts.length) ? true ? invariant(false, 'Mismatched list of contexts in callback queue') : _prodInvariant('24') : void 0; this._callbacks = null; this._contexts = null; for (var i = 0; i < callbacks.length; i++) { callbacks[i].call(contexts[i], arg); } callbacks.length = 0; contexts.length = 0; } }; CallbackQueue.prototype.checkpoint = function checkpoint() { return this._callbacks ? this._callbacks.length : 0; }; CallbackQueue.prototype.rollback = function rollback(len) { if (this._callbacks && this._contexts) { this._callbacks.length = len; this._contexts.length = len; } }; /** * Resets the internal queue. * * @internal */ CallbackQueue.prototype.reset = function reset() { this._callbacks = null; this._contexts = null; }; /** * `PooledClass` looks for this. */ CallbackQueue.prototype.destructor = function destructor() { this.reset(); }; return CallbackQueue; }(); module.exports = PooledClass.addPoolingTo(CallbackQueue); /***/ }), /* 117 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var DOMProperty = __webpack_require__(20); var ReactDOMComponentTree = __webpack_require__(7); var ReactInstrumentation = __webpack_require__(11); var quoteAttributeValueForBrowser = __webpack_require__(292); var warning = __webpack_require__(1); var VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + DOMProperty.ATTRIBUTE_NAME_START_CHAR + '][' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$'); var illegalAttributeNameCache = {}; var validatedAttributeNameCache = {}; function isAttributeNameSafe(attributeName) { if (validatedAttributeNameCache.hasOwnProperty(attributeName)) { return true; } if (illegalAttributeNameCache.hasOwnProperty(attributeName)) { return false; } if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) { validatedAttributeNameCache[attributeName] = true; return true; } illegalAttributeNameCache[attributeName] = true; true ? warning(false, 'Invalid attribute name: `%s`', attributeName) : void 0; return false; } function shouldIgnoreValue(propertyInfo, value) { return value == null || propertyInfo.hasBooleanValue && !value || propertyInfo.hasNumericValue && isNaN(value) || propertyInfo.hasPositiveNumericValue && value < 1 || propertyInfo.hasOverloadedBooleanValue && value === false; } /** * Operations for dealing with DOM properties. */ var DOMPropertyOperations = { /** * Creates markup for the ID property. * * @param {string} id Unescaped ID. * @return {string} Markup string. */ createMarkupForID: function (id) { return DOMProperty.ID_ATTRIBUTE_NAME + '=' + quoteAttributeValueForBrowser(id); }, setAttributeForID: function (node, id) { node.setAttribute(DOMProperty.ID_ATTRIBUTE_NAME, id); }, createMarkupForRoot: function () { return DOMProperty.ROOT_ATTRIBUTE_NAME + '=""'; }, setAttributeForRoot: function (node) { node.setAttribute(DOMProperty.ROOT_ATTRIBUTE_NAME, ''); }, /** * Creates markup for a property. * * @param {string} name * @param {*} value * @return {?string} Markup string, or null if the property was invalid. */ createMarkupForProperty: function (name, value) { var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null; if (propertyInfo) { if (shouldIgnoreValue(propertyInfo, value)) { return ''; } var attributeName = propertyInfo.attributeName; if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) { return attributeName + '=""'; } return attributeName + '=' + quoteAttributeValueForBrowser(value); } else if (DOMProperty.isCustomAttribute(name)) { if (value == null) { return ''; } return name + '=' + quoteAttributeValueForBrowser(value); } return null; }, /** * Creates markup for a custom property. * * @param {string} name * @param {*} value * @return {string} Markup string, or empty string if the property was invalid. */ createMarkupForCustomAttribute: function (name, value) { if (!isAttributeNameSafe(name) || value == null) { return ''; } return name + '=' + quoteAttributeValueForBrowser(value); }, /** * Sets the value for a property on a node. * * @param {DOMElement} node * @param {string} name * @param {*} value */ setValueForProperty: function (node, name, value) { var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null; if (propertyInfo) { var mutationMethod = propertyInfo.mutationMethod; if (mutationMethod) { mutationMethod(node, value); } else if (shouldIgnoreValue(propertyInfo, value)) { this.deleteValueForProperty(node, name); return; } else if (propertyInfo.mustUseProperty) { // Contrary to `setAttribute`, object properties are properly // `toString`ed by IE8/9. node[propertyInfo.propertyName] = value; } else { var attributeName = propertyInfo.attributeName; var namespace = propertyInfo.attributeNamespace; // `setAttribute` with objects becomes only `[object]` in IE8/9, // ('' + value) makes it output the correct toString()-value. if (namespace) { node.setAttributeNS(namespace, attributeName, '' + value); } else if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) { node.setAttribute(attributeName, ''); } else { node.setAttribute(attributeName, '' + value); } } } else if (DOMProperty.isCustomAttribute(name)) { DOMPropertyOperations.setValueForAttribute(node, name, value); return; } if (true) { var payload = {}; payload[name] = value; ReactInstrumentation.debugTool.onHostOperation({ instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID, type: 'update attribute', payload: payload }); } }, setValueForAttribute: function (node, name, value) { if (!isAttributeNameSafe(name)) { return; } if (value == null) { node.removeAttribute(name); } else { node.setAttribute(name, '' + value); } if (true) { var payload = {}; payload[name] = value; ReactInstrumentation.debugTool.onHostOperation({ instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID, type: 'update attribute', payload: payload }); } }, /** * Deletes an attributes from a node. * * @param {DOMElement} node * @param {string} name */ deleteValueForAttribute: function (node, name) { node.removeAttribute(name); if (true) { ReactInstrumentation.debugTool.onHostOperation({ instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID, type: 'remove attribute', payload: name }); } }, /** * Deletes the value for a property on a node. * * @param {DOMElement} node * @param {string} name */ deleteValueForProperty: function (node, name) { var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null; if (propertyInfo) { var mutationMethod = propertyInfo.mutationMethod; if (mutationMethod) { mutationMethod(node, undefined); } else if (propertyInfo.mustUseProperty) { var propName = propertyInfo.propertyName; if (propertyInfo.hasBooleanValue) { node[propName] = false; } else { node[propName] = ''; } } else { node.removeAttribute(propertyInfo.attributeName); } } else if (DOMProperty.isCustomAttribute(name)) { node.removeAttribute(name); } if (true) { ReactInstrumentation.debugTool.onHostOperation({ instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID, type: 'remove attribute', payload: name }); } } }; module.exports = DOMPropertyOperations; /***/ }), /* 118 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2015-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var ReactDOMComponentFlags = { hasCachedChildNodes: 1 << 0 }; module.exports = ReactDOMComponentFlags; /***/ }), /* 119 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _assign = __webpack_require__(6); var LinkedValueUtils = __webpack_require__(70); var ReactDOMComponentTree = __webpack_require__(7); var ReactUpdates = __webpack_require__(14); var warning = __webpack_require__(1); var didWarnValueLink = false; var didWarnValueDefaultValue = false; function updateOptionsIfPendingUpdateAndMounted() { if (this._rootNodeID && this._wrapperState.pendingUpdate) { this._wrapperState.pendingUpdate = false; var props = this._currentElement.props; var value = LinkedValueUtils.getValue(props); if (value != null) { updateOptions(this, Boolean(props.multiple), value); } } } function getDeclarationErrorAddendum(owner) { if (owner) { var name = owner.getName(); if (name) { return ' Check the render method of `' + name + '`.'; } } return ''; } var valuePropNames = ['value', 'defaultValue']; /** * Validation function for `value` and `defaultValue`. * @private */ function checkSelectPropTypes(inst, props) { var owner = inst._currentElement._owner; LinkedValueUtils.checkPropTypes('select', props, owner); if (props.valueLink !== undefined && !didWarnValueLink) { true ? warning(false, '`valueLink` prop on `select` is deprecated; set `value` and `onChange` instead.') : void 0; didWarnValueLink = true; } for (var i = 0; i < valuePropNames.length; i++) { var propName = valuePropNames[i]; if (props[propName] == null) { continue; } var isArray = Array.isArray(props[propName]); if (props.multiple && !isArray) { true ? warning(false, 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum(owner)) : void 0; } else if (!props.multiple && isArray) { true ? warning(false, 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum(owner)) : void 0; } } } /** * @param {ReactDOMComponent} inst * @param {boolean} multiple * @param {*} propValue A stringable (with `multiple`, a list of stringables). * @private */ function updateOptions(inst, multiple, propValue) { var selectedValue, i; var options = ReactDOMComponentTree.getNodeFromInstance(inst).options; if (multiple) { selectedValue = {}; for (i = 0; i < propValue.length; i++) { selectedValue['' + propValue[i]] = true; } for (i = 0; i < options.length; i++) { var selected = selectedValue.hasOwnProperty(options[i].value); if (options[i].selected !== selected) { options[i].selected = selected; } } } else { // Do not set `select.value` as exact behavior isn't consistent across all // browsers for all cases. selectedValue = '' + propValue; for (i = 0; i < options.length; i++) { if (options[i].value === selectedValue) { options[i].selected = true; return; } } if (options.length) { options[0].selected = true; } } } /** * Implements a <select> host component that allows optionally setting the * props `value` and `defaultValue`. If `multiple` is false, the prop must be a * stringable. If `multiple` is true, the prop must be an array of stringables. * * If `value` is not supplied (or null/undefined), user actions that change the * selected option will trigger updates to the rendered options. * * If it is supplied (and not null/undefined), the rendered options will not * update in response to user actions. Instead, the `value` prop must change in * order for the rendered options to update. * * If `defaultValue` is provided, any options with the supplied values will be * selected. */ var ReactDOMSelect = { getHostProps: function (inst, props) { return _assign({}, props, { onChange: inst._wrapperState.onChange, value: undefined }); }, mountWrapper: function (inst, props) { if (true) { checkSelectPropTypes(inst, props); } var value = LinkedValueUtils.getValue(props); inst._wrapperState = { pendingUpdate: false, initialValue: value != null ? value : props.defaultValue, listeners: null, onChange: _handleChange.bind(inst), wasMultiple: Boolean(props.multiple) }; if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) { true ? warning(false, 'Select elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled select ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0; didWarnValueDefaultValue = true; } }, getSelectValueContext: function (inst) { // ReactDOMOption looks at this initial value so the initial generated // markup has correct `selected` attributes return inst._wrapperState.initialValue; }, postUpdateWrapper: function (inst) { var props = inst._currentElement.props; // After the initial mount, we control selected-ness manually so don't pass // this value down inst._wrapperState.initialValue = undefined; var wasMultiple = inst._wrapperState.wasMultiple; inst._wrapperState.wasMultiple = Boolean(props.multiple); var value = LinkedValueUtils.getValue(props); if (value != null) { inst._wrapperState.pendingUpdate = false; updateOptions(inst, Boolean(props.multiple), value); } else if (wasMultiple !== Boolean(props.multiple)) { // For simplicity, reapply `defaultValue` if `multiple` is toggled. if (props.defaultValue != null) { updateOptions(inst, Boolean(props.multiple), props.defaultValue); } else { // Revert the select back to its default unselected state. updateOptions(inst, Boolean(props.multiple), props.multiple ? [] : ''); } } } }; function _handleChange(event) { var props = this._currentElement.props; var returnValue = LinkedValueUtils.executeOnChange(props, event); if (this._rootNodeID) { this._wrapperState.pendingUpdate = true; } ReactUpdates.asap(updateOptionsIfPendingUpdateAndMounted, this); return returnValue; } module.exports = ReactDOMSelect; /***/ }), /* 120 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2014-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var emptyComponentFactory; var ReactEmptyComponentInjection = { injectEmptyComponentFactory: function (factory) { emptyComponentFactory = factory; } }; var ReactEmptyComponent = { create: function (instantiate) { return emptyComponentFactory(instantiate); } }; ReactEmptyComponent.injection = ReactEmptyComponentInjection; module.exports = ReactEmptyComponent; /***/ }), /* 121 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ var ReactFeatureFlags = { // When true, call console.time() before and .timeEnd() after each top-level // render (both initial renders and updates). Useful when looking at prod-mode // timeline profiles in Chrome, for example. logTopLevelRenders: false }; module.exports = ReactFeatureFlags; /***/ }), /* 122 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2014-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _prodInvariant = __webpack_require__(2); var invariant = __webpack_require__(0); var genericComponentClass = null; var textComponentClass = null; var ReactHostComponentInjection = { // This accepts a class that receives the tag string. This is a catch all // that can render any kind of tag. injectGenericComponentClass: function (componentClass) { genericComponentClass = componentClass; }, // This accepts a text component class that takes the text string to be // rendered as props. injectTextComponentClass: function (componentClass) { textComponentClass = componentClass; } }; /** * Get a host internal component class for a specific tag. * * @param {ReactElement} element The element to create. * @return {function} The internal class constructor function. */ function createInternalComponent(element) { !genericComponentClass ? true ? invariant(false, 'There is no registered component for the tag %s', element.type) : _prodInvariant('111', element.type) : void 0; return new genericComponentClass(element); } /** * @param {ReactText} text * @return {ReactComponent} */ function createInstanceForText(text) { return new textComponentClass(text); } /** * @param {ReactComponent} component * @return {boolean} */ function isTextComponent(component) { return component instanceof textComponentClass; } var ReactHostComponent = { createInternalComponent: createInternalComponent, createInstanceForText: createInstanceForText, isTextComponent: isTextComponent, injection: ReactHostComponentInjection }; module.exports = ReactHostComponent; /***/ }), /* 123 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var ReactDOMSelection = __webpack_require__(244); var containsNode = __webpack_require__(189); var focusNode = __webpack_require__(107); var getActiveElement = __webpack_require__(108); function isInDocument(node) { return containsNode(document.documentElement, node); } /** * @ReactInputSelection: React input selection module. Based on Selection.js, * but modified to be suitable for react and has a couple of bug fixes (doesn't * assume buttons have range selections allowed). * Input selection module for React. */ var ReactInputSelection = { hasSelectionCapabilities: function (elem) { var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase(); return nodeName && (nodeName === 'input' && elem.type === 'text' || nodeName === 'textarea' || elem.contentEditable === 'true'); }, getSelectionInformation: function () { var focusedElem = getActiveElement(); return { focusedElem: focusedElem, selectionRange: ReactInputSelection.hasSelectionCapabilities(focusedElem) ? ReactInputSelection.getSelection(focusedElem) : null }; }, /** * @restoreSelection: If any selection information was potentially lost, * restore it. This is useful when performing operations that could remove dom * nodes and place them back in, resulting in focus being lost. */ restoreSelection: function (priorSelectionInformation) { var curFocusedElem = getActiveElement(); var priorFocusedElem = priorSelectionInformation.focusedElem; var priorSelectionRange = priorSelectionInformation.selectionRange; if (curFocusedElem !== priorFocusedElem && isInDocument(priorFocusedElem)) { if (ReactInputSelection.hasSelectionCapabilities(priorFocusedElem)) { ReactInputSelection.setSelection(priorFocusedElem, priorSelectionRange); } focusNode(priorFocusedElem); } }, /** * @getSelection: Gets the selection bounds of a focused textarea, input or * contentEditable node. * -@input: Look up selection bounds of this input * -@return {start: selectionStart, end: selectionEnd} */ getSelection: function (input) { var selection; if ('selectionStart' in input) { // Modern browser with input or textarea. selection = { start: input.selectionStart, end: input.selectionEnd }; } else if (document.selection && input.nodeName && input.nodeName.toLowerCase() === 'input') { // IE8 input. var range = document.selection.createRange(); // There can only be one selection per document in IE, so it must // be in our element. if (range.parentElement() === input) { selection = { start: -range.moveStart('character', -input.value.length), end: -range.moveEnd('character', -input.value.length) }; } } else { // Content editable or old IE textarea. selection = ReactDOMSelection.getOffsets(input); } return selection || { start: 0, end: 0 }; }, /** * @setSelection: Sets the selection bounds of a textarea or input and focuses * the input. * -@input Set selection bounds of this input or textarea * -@offsets Object of same form that is returned from get* */ setSelection: function (input, offsets) { var start = offsets.start; var end = offsets.end; if (end === undefined) { end = start; } if ('selectionStart' in input) { input.selectionStart = start; input.selectionEnd = Math.min(end, input.value.length); } else if (document.selection && input.nodeName && input.nodeName.toLowerCase() === 'input') { var range = input.createTextRange(); range.collapse(true); range.moveStart('character', start); range.moveEnd('character', end - start); range.select(); } else { ReactDOMSelection.setOffsets(input, offsets); } } }; module.exports = ReactInputSelection; /***/ }), /* 124 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _prodInvariant = __webpack_require__(2); var DOMLazyTree = __webpack_require__(26); var DOMProperty = __webpack_require__(20); var React = __webpack_require__(33); var ReactBrowserEventEmitter = __webpack_require__(53); var ReactCurrentOwner = __webpack_require__(17); var ReactDOMComponentTree = __webpack_require__(7); var ReactDOMContainerInfo = __webpack_require__(236); var ReactDOMFeatureFlags = __webpack_require__(238); var ReactFeatureFlags = __webpack_require__(121); var ReactInstanceMap = __webpack_require__(41); var ReactInstrumentation = __webpack_require__(11); var ReactMarkupChecksum = __webpack_require__(258); var ReactReconciler = __webpack_require__(29); var ReactUpdateQueue = __webpack_require__(73); var ReactUpdates = __webpack_require__(14); var emptyObject = __webpack_require__(38); var instantiateReactComponent = __webpack_require__(133); var invariant = __webpack_require__(0); var setInnerHTML = __webpack_require__(57); var shouldUpdateReactComponent = __webpack_require__(79); var warning = __webpack_require__(1); var ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME; var ROOT_ATTR_NAME = DOMProperty.ROOT_ATTRIBUTE_NAME; var ELEMENT_NODE_TYPE = 1; var DOC_NODE_TYPE = 9; var DOCUMENT_FRAGMENT_NODE_TYPE = 11; var instancesByReactRootID = {}; /** * Finds the index of the first character * that's not common between the two given strings. * * @return {number} the index of the character where the strings diverge */ function firstDifferenceIndex(string1, string2) { var minLen = Math.min(string1.length, string2.length); for (var i = 0; i < minLen; i++) { if (string1.charAt(i) !== string2.charAt(i)) { return i; } } return string1.length === string2.length ? -1 : minLen; } /** * @param {DOMElement|DOMDocument} container DOM element that may contain * a React component * @return {?*} DOM element that may have the reactRoot ID, or null. */ function getReactRootElementInContainer(container) { if (!container) { return null; } if (container.nodeType === DOC_NODE_TYPE) { return container.documentElement; } else { return container.firstChild; } } function internalGetID(node) { // If node is something like a window, document, or text node, none of // which support attributes or a .getAttribute method, gracefully return // the empty string, as if the attribute were missing. return node.getAttribute && node.getAttribute(ATTR_NAME) || ''; } /** * Mounts this component and inserts it into the DOM. * * @param {ReactComponent} componentInstance The instance to mount. * @param {DOMElement} container DOM element to mount into. * @param {ReactReconcileTransaction} transaction * @param {boolean} shouldReuseMarkup If true, do not insert markup */ function mountComponentIntoNode(wrapperInstance, container, transaction, shouldReuseMarkup, context) { var markerName; if (ReactFeatureFlags.logTopLevelRenders) { var wrappedElement = wrapperInstance._currentElement.props.child; var type = wrappedElement.type; markerName = 'React mount: ' + (typeof type === 'string' ? type : type.displayName || type.name); console.time(markerName); } var markup = ReactReconciler.mountComponent(wrapperInstance, transaction, null, ReactDOMContainerInfo(wrapperInstance, container), context, 0 /* parentDebugID */ ); if (markerName) { console.timeEnd(markerName); } wrapperInstance._renderedComponent._topLevelWrapper = wrapperInstance; ReactMount._mountImageIntoNode(markup, container, wrapperInstance, shouldReuseMarkup, transaction); } /** * Batched mount. * * @param {ReactComponent} componentInstance The instance to mount. * @param {DOMElement} container DOM element to mount into. * @param {boolean} shouldReuseMarkup If true, do not insert markup */ function batchedMountComponentIntoNode(componentInstance, container, shouldReuseMarkup, context) { var transaction = ReactUpdates.ReactReconcileTransaction.getPooled( /* useCreateElement */ !shouldReuseMarkup && ReactDOMFeatureFlags.useCreateElement); transaction.perform(mountComponentIntoNode, null, componentInstance, container, transaction, shouldReuseMarkup, context); ReactUpdates.ReactReconcileTransaction.release(transaction); } /** * Unmounts a component and removes it from the DOM. * * @param {ReactComponent} instance React component instance. * @param {DOMElement} container DOM element to unmount from. * @final * @internal * @see {ReactMount.unmountComponentAtNode} */ function unmountComponentFromNode(instance, container, safely) { if (true) { ReactInstrumentation.debugTool.onBeginFlush(); } ReactReconciler.unmountComponent(instance, safely); if (true) { ReactInstrumentation.debugTool.onEndFlush(); } if (container.nodeType === DOC_NODE_TYPE) { container = container.documentElement; } // http://jsperf.com/emptying-a-node while (container.lastChild) { container.removeChild(container.lastChild); } } /** * True if the supplied DOM node has a direct React-rendered child that is * not a React root element. Useful for warning in `render`, * `unmountComponentAtNode`, etc. * * @param {?DOMElement} node The candidate DOM node. * @return {boolean} True if the DOM element contains a direct child that was * rendered by React but is not a root element. * @internal */ function hasNonRootReactChild(container) { var rootEl = getReactRootElementInContainer(container); if (rootEl) { var inst = ReactDOMComponentTree.getInstanceFromNode(rootEl); return !!(inst && inst._hostParent); } } /** * True if the supplied DOM node is a React DOM element and * it has been rendered by another copy of React. * * @param {?DOMElement} node The candidate DOM node. * @return {boolean} True if the DOM has been rendered by another copy of React * @internal */ function nodeIsRenderedByOtherInstance(container) { var rootEl = getReactRootElementInContainer(container); return !!(rootEl && isReactNode(rootEl) && !ReactDOMComponentTree.getInstanceFromNode(rootEl)); } /** * True if the supplied DOM node is a valid node element. * * @param {?DOMElement} node The candidate DOM node. * @return {boolean} True if the DOM is a valid DOM node. * @internal */ function isValidContainer(node) { return !!(node && (node.nodeType === ELEMENT_NODE_TYPE || node.nodeType === DOC_NODE_TYPE || node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)); } /** * True if the supplied DOM node is a valid React node element. * * @param {?DOMElement} node The candidate DOM node. * @return {boolean} True if the DOM is a valid React DOM node. * @internal */ function isReactNode(node) { return isValidContainer(node) && (node.hasAttribute(ROOT_ATTR_NAME) || node.hasAttribute(ATTR_NAME)); } function getHostRootInstanceInContainer(container) { var rootEl = getReactRootElementInContainer(container); var prevHostInstance = rootEl && ReactDOMComponentTree.getInstanceFromNode(rootEl); return prevHostInstance && !prevHostInstance._hostParent ? prevHostInstance : null; } function getTopLevelWrapperInContainer(container) { var root = getHostRootInstanceInContainer(container); return root ? root._hostContainerInfo._topLevelWrapper : null; } /** * Temporary (?) hack so that we can store all top-level pending updates on * composites instead of having to worry about different types of components * here. */ var topLevelRootCounter = 1; var TopLevelWrapper = function () { this.rootID = topLevelRootCounter++; }; TopLevelWrapper.prototype.isReactComponent = {}; if (true) { TopLevelWrapper.displayName = 'TopLevelWrapper'; } TopLevelWrapper.prototype.render = function () { return this.props.child; }; TopLevelWrapper.isReactTopLevelWrapper = true; /** * Mounting is the process of initializing a React component by creating its * representative DOM elements and inserting them into a supplied `container`. * Any prior content inside `container` is destroyed in the process. * * ReactMount.render( * component, * document.getElementById('container') * ); * * <div id="container"> <-- Supplied `container`. * <div data-reactid=".3"> <-- Rendered reactRoot of React * // ... component. * </div> * </div> * * Inside of `container`, the first element rendered is the "reactRoot". */ var ReactMount = { TopLevelWrapper: TopLevelWrapper, /** * Used by devtools. The keys are not important. */ _instancesByReactRootID: instancesByReactRootID, /** * This is a hook provided to support rendering React components while * ensuring that the apparent scroll position of its `container` does not * change. * * @param {DOMElement} container The `container` being rendered into. * @param {function} renderCallback This must be called once to do the render. */ scrollMonitor: function (container, renderCallback) { renderCallback(); }, /** * Take a component that's already mounted into the DOM and replace its props * @param {ReactComponent} prevComponent component instance already in the DOM * @param {ReactElement} nextElement component instance to render * @param {DOMElement} container container to render into * @param {?function} callback function triggered on completion */ _updateRootComponent: function (prevComponent, nextElement, nextContext, container, callback) { ReactMount.scrollMonitor(container, function () { ReactUpdateQueue.enqueueElementInternal(prevComponent, nextElement, nextContext); if (callback) { ReactUpdateQueue.enqueueCallbackInternal(prevComponent, callback); } }); return prevComponent; }, /** * Render a new component into the DOM. Hooked by hooks! * * @param {ReactElement} nextElement element to render * @param {DOMElement} container container to render into * @param {boolean} shouldReuseMarkup if we should skip the markup insertion * @return {ReactComponent} nextComponent */ _renderNewRootComponent: function (nextElement, container, shouldReuseMarkup, context) { // Various parts of our code (such as ReactCompositeComponent's // _renderValidatedComponent) assume that calls to render aren't nested; // verify that that's the case. true ? warning(ReactCurrentOwner.current == null, '_renderNewRootComponent(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from ' + 'render is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0; !isValidContainer(container) ? true ? invariant(false, '_registerComponent(...): Target container is not a DOM element.') : _prodInvariant('37') : void 0; ReactBrowserEventEmitter.ensureScrollValueMonitoring(); var componentInstance = instantiateReactComponent(nextElement, false); // The initial render is synchronous but any updates that happen during // rendering, in componentWillMount or componentDidMount, will be batched // according to the current batching strategy. ReactUpdates.batchedUpdates(batchedMountComponentIntoNode, componentInstance, container, shouldReuseMarkup, context); var wrapperID = componentInstance._instance.rootID; instancesByReactRootID[wrapperID] = componentInstance; return componentInstance; }, /** * Renders a React component into the DOM in the supplied `container`. * * If the React component was previously rendered into `container`, this will * perform an update on it and only mutate the DOM as necessary to reflect the * latest React component. * * @param {ReactComponent} parentComponent The conceptual parent of this render tree. * @param {ReactElement} nextElement Component element to render. * @param {DOMElement} container DOM element to render into. * @param {?function} callback function triggered on completion * @return {ReactComponent} Component instance rendered in `container`. */ renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) { !(parentComponent != null && ReactInstanceMap.has(parentComponent)) ? true ? invariant(false, 'parentComponent must be a valid React Component') : _prodInvariant('38') : void 0; return ReactMount._renderSubtreeIntoContainer(parentComponent, nextElement, container, callback); }, _renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) { ReactUpdateQueue.validateCallback(callback, 'ReactDOM.render'); !React.isValidElement(nextElement) ? true ? invariant(false, 'ReactDOM.render(): Invalid component element.%s', typeof nextElement === 'string' ? ' Instead of passing a string like \'div\', pass ' + 'React.createElement(\'div\') or <div />.' : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' : // Check if it quacks like an element nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : _prodInvariant('39', typeof nextElement === 'string' ? ' Instead of passing a string like \'div\', pass ' + 'React.createElement(\'div\') or <div />.' : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' : nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : void 0; true ? warning(!container || !container.tagName || container.tagName.toUpperCase() !== 'BODY', 'render(): Rendering components directly into document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try rendering into a container element created ' + 'for your app.') : void 0; var nextWrappedElement = React.createElement(TopLevelWrapper, { child: nextElement }); var nextContext; if (parentComponent) { var parentInst = ReactInstanceMap.get(parentComponent); nextContext = parentInst._processChildContext(parentInst._context); } else { nextContext = emptyObject; } var prevComponent = getTopLevelWrapperInContainer(container); if (prevComponent) { var prevWrappedElement = prevComponent._currentElement; var prevElement = prevWrappedElement.props.child; if (shouldUpdateReactComponent(prevElement, nextElement)) { var publicInst = prevComponent._renderedComponent.getPublicInstance(); var updatedCallback = callback && function () { callback.call(publicInst); }; ReactMount._updateRootComponent(prevComponent, nextWrappedElement, nextContext, container, updatedCallback); return publicInst; } else { ReactMount.unmountComponentAtNode(container); } } var reactRootElement = getReactRootElementInContainer(container); var containerHasReactMarkup = reactRootElement && !!internalGetID(reactRootElement); var containerHasNonRootReactChild = hasNonRootReactChild(container); if (true) { true ? warning(!containerHasNonRootReactChild, 'render(...): Replacing React-rendered children with a new root ' + 'component. If you intended to update the children of this node, ' + 'you should instead have the existing children update their state ' + 'and render the new components instead of calling ReactDOM.render.') : void 0; if (!containerHasReactMarkup || reactRootElement.nextSibling) { var rootElementSibling = reactRootElement; while (rootElementSibling) { if (internalGetID(rootElementSibling)) { true ? warning(false, 'render(): Target node has markup rendered by React, but there ' + 'are unrelated nodes as well. This is most commonly caused by ' + 'white-space inserted around server-rendered markup.') : void 0; break; } rootElementSibling = rootElementSibling.nextSibling; } } } var shouldReuseMarkup = containerHasReactMarkup && !prevComponent && !containerHasNonRootReactChild; var component = ReactMount._renderNewRootComponent(nextWrappedElement, container, shouldReuseMarkup, nextContext)._renderedComponent.getPublicInstance(); if (callback) { callback.call(component); } return component; }, /** * Renders a React component into the DOM in the supplied `container`. * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.render * * If the React component was previously rendered into `container`, this will * perform an update on it and only mutate the DOM as necessary to reflect the * latest React component. * * @param {ReactElement} nextElement Component element to render. * @param {DOMElement} container DOM element to render into. * @param {?function} callback function triggered on completion * @return {ReactComponent} Component instance rendered in `container`. */ render: function (nextElement, container, callback) { return ReactMount._renderSubtreeIntoContainer(null, nextElement, container, callback); }, /** * Unmounts and destroys the React component rendered in the `container`. * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.unmountcomponentatnode * * @param {DOMElement} container DOM element containing a React component. * @return {boolean} True if a component was found in and unmounted from * `container` */ unmountComponentAtNode: function (container) { // Various parts of our code (such as ReactCompositeComponent's // _renderValidatedComponent) assume that calls to render aren't nested; // verify that that's the case. (Strictly speaking, unmounting won't cause a // render but we still don't expect to be in a render call here.) true ? warning(ReactCurrentOwner.current == null, 'unmountComponentAtNode(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from render ' + 'is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0; !isValidContainer(container) ? true ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : _prodInvariant('40') : void 0; if (true) { true ? warning(!nodeIsRenderedByOtherInstance(container), 'unmountComponentAtNode(): The node you\'re attempting to unmount ' + 'was rendered by another copy of React.') : void 0; } var prevComponent = getTopLevelWrapperInContainer(container); if (!prevComponent) { // Check if the node being unmounted was rendered by React, but isn't a // root node. var containerHasNonRootReactChild = hasNonRootReactChild(container); // Check if the container itself is a React root node. var isContainerReactRoot = container.nodeType === 1 && container.hasAttribute(ROOT_ATTR_NAME); if (true) { true ? warning(!containerHasNonRootReactChild, 'unmountComponentAtNode(): The node you\'re attempting to unmount ' + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.') : void 0; } return false; } delete instancesByReactRootID[prevComponent._instance.rootID]; ReactUpdates.batchedUpdates(unmountComponentFromNode, prevComponent, container, false); return true; }, _mountImageIntoNode: function (markup, container, instance, shouldReuseMarkup, transaction) { !isValidContainer(container) ? true ? invariant(false, 'mountComponentIntoNode(...): Target container is not valid.') : _prodInvariant('41') : void 0; if (shouldReuseMarkup) { var rootElement = getReactRootElementInContainer(container); if (ReactMarkupChecksum.canReuseMarkup(markup, rootElement)) { ReactDOMComponentTree.precacheNode(instance, rootElement); return; } else { var checksum = rootElement.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME); rootElement.removeAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME); var rootMarkup = rootElement.outerHTML; rootElement.setAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME, checksum); var normalizedMarkup = markup; if (true) { // because rootMarkup is retrieved from the DOM, various normalizations // will have occurred which will not be present in `markup`. Here, // insert markup into a <div> or <iframe> depending on the container // type to perform the same normalizations before comparing. var normalizer; if (container.nodeType === ELEMENT_NODE_TYPE) { normalizer = document.createElement('div'); normalizer.innerHTML = markup; normalizedMarkup = normalizer.innerHTML; } else { normalizer = document.createElement('iframe'); document.body.appendChild(normalizer); normalizer.contentDocument.write(markup); normalizedMarkup = normalizer.contentDocument.documentElement.outerHTML; document.body.removeChild(normalizer); } } var diffIndex = firstDifferenceIndex(normalizedMarkup, rootMarkup); var difference = ' (client) ' + normalizedMarkup.substring(diffIndex - 20, diffIndex + 20) + '\n (server) ' + rootMarkup.substring(diffIndex - 20, diffIndex + 20); !(container.nodeType !== DOC_NODE_TYPE) ? true ? invariant(false, 'You\'re trying to render a component to the document using server rendering but the checksum was invalid. This usually means you rendered a different component type or props on the client from the one on the server, or your render() methods are impure. React cannot handle this case due to cross-browser quirks by rendering at the document root. You should look for environment dependent code in your components and ensure the props are the same client and server side:\n%s', difference) : _prodInvariant('42', difference) : void 0; if (true) { true ? warning(false, 'React attempted to reuse markup in a container but the ' + 'checksum was invalid. This generally means that you are ' + 'using server rendering and the markup generated on the ' + 'server was not what the client was expecting. React injected ' + 'new markup to compensate which works but you have lost many ' + 'of the benefits of server rendering. Instead, figure out ' + 'why the markup being generated is different on the client ' + 'or server:\n%s', difference) : void 0; } } } !(container.nodeType !== DOC_NODE_TYPE) ? true ? invariant(false, 'You\'re trying to render a component to the document but you didn\'t use server rendering. We can\'t do this without using server rendering due to cross-browser quirks. See ReactDOMServer.renderToString() for server rendering.') : _prodInvariant('43') : void 0; if (transaction.useCreateElement) { while (container.lastChild) { container.removeChild(container.lastChild); } DOMLazyTree.insertTreeBefore(container, markup, null); } else { setInnerHTML(container, markup); ReactDOMComponentTree.precacheNode(instance, container.firstChild); } if (true) { var hostNode = ReactDOMComponentTree.getInstanceFromNode(container.firstChild); if (hostNode._debugID !== 0) { ReactInstrumentation.debugTool.onHostOperation({ instanceID: hostNode._debugID, type: 'mount', payload: markup.toString() }); } } } }; module.exports = ReactMount; /***/ }), /* 125 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ var _prodInvariant = __webpack_require__(2); var React = __webpack_require__(33); var invariant = __webpack_require__(0); var ReactNodeTypes = { HOST: 0, COMPOSITE: 1, EMPTY: 2, getType: function (node) { if (node === null || node === false) { return ReactNodeTypes.EMPTY; } else if (React.isValidElement(node)) { if (typeof node.type === 'function') { return ReactNodeTypes.COMPOSITE; } else { return ReactNodeTypes.HOST; } } true ? true ? invariant(false, 'Unexpected node: %s', node) : _prodInvariant('26', node) : void 0; } }; module.exports = ReactNodeTypes; /***/ }), /* 126 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; module.exports = ReactPropTypesSecret; /***/ }), /* 127 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ var _prodInvariant = __webpack_require__(2); var EventPluginUtils = __webpack_require__(40); var invariant = __webpack_require__(0); var warning = __webpack_require__(1); var isEndish = EventPluginUtils.isEndish, isMoveish = EventPluginUtils.isMoveish, isStartish = EventPluginUtils.isStartish; /** * Tracks the position and time of each active touch by `touch.identifier`. We * should typically only see IDs in the range of 1-20 because IDs get recycled * when touches end and start again. */ var MAX_TOUCH_BANK = 20; var touchBank = []; var touchHistory = { touchBank: touchBank, numberActiveTouches: 0, // If there is only one active touch, we remember its location. This prevents // us having to loop through all of the touches all the time in the most // common case. indexOfSingleActiveTouch: -1, mostRecentTimeStamp: 0 }; function timestampForTouch(touch) { // The legacy internal implementation provides "timeStamp", which has been // renamed to "timestamp". Let both work for now while we iron it out // TODO (evv): rename timeStamp to timestamp in internal code return touch.timeStamp || touch.timestamp; } /** * TODO: Instead of making gestures recompute filtered velocity, we could * include a built in velocity computation that can be reused globally. */ function createTouchRecord(touch) { return { touchActive: true, startPageX: touch.pageX, startPageY: touch.pageY, startTimeStamp: timestampForTouch(touch), currentPageX: touch.pageX, currentPageY: touch.pageY, currentTimeStamp: timestampForTouch(touch), previousPageX: touch.pageX, previousPageY: touch.pageY, previousTimeStamp: timestampForTouch(touch) }; } function resetTouchRecord(touchRecord, touch) { touchRecord.touchActive = true; touchRecord.startPageX = touch.pageX; touchRecord.startPageY = touch.pageY; touchRecord.startTimeStamp = timestampForTouch(touch); touchRecord.currentPageX = touch.pageX; touchRecord.currentPageY = touch.pageY; touchRecord.currentTimeStamp = timestampForTouch(touch); touchRecord.previousPageX = touch.pageX; touchRecord.previousPageY = touch.pageY; touchRecord.previousTimeStamp = timestampForTouch(touch); } function getTouchIdentifier(_ref) { var identifier = _ref.identifier; !(identifier != null) ? true ? invariant(false, 'Touch object is missing identifier.') : _prodInvariant('138') : void 0; true ? warning(identifier <= MAX_TOUCH_BANK, 'Touch identifier %s is greater than maximum supported %s which causes ' + 'performance issues backfilling array locations for all of the indices.', identifier, MAX_TOUCH_BANK) : void 0; return identifier; } function recordTouchStart(touch) { var identifier = getTouchIdentifier(touch); var touchRecord = touchBank[identifier]; if (touchRecord) { resetTouchRecord(touchRecord, touch); } else { touchBank[identifier] = createTouchRecord(touch); } touchHistory.mostRecentTimeStamp = timestampForTouch(touch); } function recordTouchMove(touch) { var touchRecord = touchBank[getTouchIdentifier(touch)]; if (touchRecord) { touchRecord.touchActive = true; touchRecord.previousPageX = touchRecord.currentPageX; touchRecord.previousPageY = touchRecord.currentPageY; touchRecord.previousTimeStamp = touchRecord.currentTimeStamp; touchRecord.currentPageX = touch.pageX; touchRecord.currentPageY = touch.pageY; touchRecord.currentTimeStamp = timestampForTouch(touch); touchHistory.mostRecentTimeStamp = timestampForTouch(touch); } else { console.error('Cannot record touch move without a touch start.\n' + 'Touch Move: %s\n', 'Touch Bank: %s', printTouch(touch), printTouchBank()); } } function recordTouchEnd(touch) { var touchRecord = touchBank[getTouchIdentifier(touch)]; if (touchRecord) { touchRecord.touchActive = false; touchRecord.previousPageX = touchRecord.currentPageX; touchRecord.previousPageY = touchRecord.currentPageY; touchRecord.previousTimeStamp = touchRecord.currentTimeStamp; touchRecord.currentPageX = touch.pageX; touchRecord.currentPageY = touch.pageY; touchRecord.currentTimeStamp = timestampForTouch(touch); touchHistory.mostRecentTimeStamp = timestampForTouch(touch); } else { console.error('Cannot record touch end without a touch start.\n' + 'Touch End: %s\n', 'Touch Bank: %s', printTouch(touch), printTouchBank()); } } function printTouch(touch) { return JSON.stringify({ identifier: touch.identifier, pageX: touch.pageX, pageY: touch.pageY, timestamp: timestampForTouch(touch) }); } function printTouchBank() { var printed = JSON.stringify(touchBank.slice(0, MAX_TOUCH_BANK)); if (touchBank.length > MAX_TOUCH_BANK) { printed += ' (original size: ' + touchBank.length + ')'; } return printed; } var ResponderTouchHistoryStore = { recordTouchTrack: function (topLevelType, nativeEvent) { if (isMoveish(topLevelType)) { nativeEvent.changedTouches.forEach(recordTouchMove); } else if (isStartish(topLevelType)) { nativeEvent.changedTouches.forEach(recordTouchStart); touchHistory.numberActiveTouches = nativeEvent.touches.length; if (touchHistory.numberActiveTouches === 1) { touchHistory.indexOfSingleActiveTouch = nativeEvent.touches[0].identifier; } } else if (isEndish(topLevelType)) { nativeEvent.changedTouches.forEach(recordTouchEnd); touchHistory.numberActiveTouches = nativeEvent.touches.length; if (touchHistory.numberActiveTouches === 1) { for (var i = 0; i < touchBank.length; i++) { var touchTrackToCheck = touchBank[i]; if (touchTrackToCheck != null && touchTrackToCheck.touchActive) { touchHistory.indexOfSingleActiveTouch = i; break; } } if (true) { var activeRecord = touchBank[touchHistory.indexOfSingleActiveTouch]; true ? warning(activeRecord != null && activeRecord.touchActive, 'Cannot find single active touch.') : void 0; } } } }, touchHistory: touchHistory }; module.exports = ResponderTouchHistoryStore; /***/ }), /* 128 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var ViewportMetrics = { currentScrollLeft: 0, currentScrollTop: 0, refreshScrollValues: function (scrollPosition) { ViewportMetrics.currentScrollLeft = scrollPosition.x; ViewportMetrics.currentScrollTop = scrollPosition.y; } }; module.exports = ViewportMetrics; /***/ }), /* 129 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2014-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ var _prodInvariant = __webpack_require__(2); var invariant = __webpack_require__(0); /** * Accumulates items that must not be null or undefined into the first one. This * is used to conserve memory by avoiding array allocations, and thus sacrifices * API cleanness. Since `current` can be null before being passed in and not * null after this function, make sure to assign it back to `current`: * * `a = accumulateInto(a, b);` * * This API should be sparingly used. Try `accumulate` for something cleaner. * * @return {*|array<*>} An accumulation of items. */ function accumulateInto(current, next) { !(next != null) ? true ? invariant(false, 'accumulateInto(...): Accumulated items must not be null or undefined.') : _prodInvariant('30') : void 0; if (current == null) { return next; } // Both are not empty. Warning: Never call x.concat(y) when you are not // certain that x is an Array (x could be a string with concat method). if (Array.isArray(current)) { if (Array.isArray(next)) { current.push.apply(current, next); return current; } current.push(next); return current; } if (Array.isArray(next)) { // A bit too dangerous to mutate `next`. return [current].concat(next); } return [current, next]; } module.exports = accumulateInto; /***/ }), /* 130 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ /** * @param {array} arr an "accumulation" of items which is either an Array or * a single item. Useful when paired with the `accumulate` module. This is a * simple utility that allows us to reason about a collection of items, but * handling the case when there is exactly one item (and we do not need to * allocate an array). */ function forEachAccumulated(arr, cb, scope) { if (Array.isArray(arr)) { arr.forEach(cb, scope); } else if (arr) { cb.call(scope, arr); } } module.exports = forEachAccumulated; /***/ }), /* 131 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var ReactNodeTypes = __webpack_require__(125); function getHostComponentFromComposite(inst) { var type; while ((type = inst._renderedNodeType) === ReactNodeTypes.COMPOSITE) { inst = inst._renderedComponent; } if (type === ReactNodeTypes.HOST) { return inst._renderedComponent; } else if (type === ReactNodeTypes.EMPTY) { return null; } } module.exports = getHostComponentFromComposite; /***/ }), /* 132 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var ExecutionEnvironment = __webpack_require__(4); var contentKey = null; /** * Gets the key used to access text content on a DOM node. * * @return {?string} Key used to access text content. * @internal */ function getTextContentAccessor() { if (!contentKey && ExecutionEnvironment.canUseDOM) { // Prefer textContent to innerText because many browsers support both but // SVG <text> elements don't support innerText even when <div> does. contentKey = 'textContent' in document.documentElement ? 'textContent' : 'innerText'; } return contentKey; } module.exports = getTextContentAccessor; /***/ }), /* 133 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _prodInvariant = __webpack_require__(2), _assign = __webpack_require__(6); var ReactCompositeComponent = __webpack_require__(233); var ReactEmptyComponent = __webpack_require__(120); var ReactHostComponent = __webpack_require__(122); var getNextDebugID = __webpack_require__(360); var invariant = __webpack_require__(0); var warning = __webpack_require__(1); // To avoid a cyclic dependency, we create the final class in this module var ReactCompositeComponentWrapper = function (element) { this.construct(element); }; function getDeclarationErrorAddendum(owner) { if (owner) { var name = owner.getName(); if (name) { return ' Check the render method of `' + name + '`.'; } } return ''; } /** * Check if the type reference is a known internal type. I.e. not a user * provided composite type. * * @param {function} type * @return {boolean} Returns true if this is a valid internal type. */ function isInternalComponentType(type) { return typeof type === 'function' && typeof type.prototype !== 'undefined' && typeof type.prototype.mountComponent === 'function' && typeof type.prototype.receiveComponent === 'function'; } /** * Given a ReactNode, create an instance that will actually be mounted. * * @param {ReactNode} node * @param {boolean} shouldHaveDebugID * @return {object} A new instance of the element's constructor. * @protected */ function instantiateReactComponent(node, shouldHaveDebugID) { var instance; if (node === null || node === false) { instance = ReactEmptyComponent.create(instantiateReactComponent); } else if (typeof node === 'object') { var element = node; var type = element.type; if (typeof type !== 'function' && typeof type !== 'string') { var info = ''; if (true) { if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) { info += ' You likely forgot to export your component from the file ' + 'it\'s defined in.'; } } info += getDeclarationErrorAddendum(element._owner); true ? true ? invariant(false, 'Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s', type == null ? type : typeof type, info) : _prodInvariant('130', type == null ? type : typeof type, info) : void 0; } // Special case string values if (typeof element.type === 'string') { instance = ReactHostComponent.createInternalComponent(element); } else if (isInternalComponentType(element.type)) { // This is temporarily available for custom components that are not string // representations. I.e. ART. Once those are updated to use the string // representation, we can drop this code path. instance = new element.type(element); // We renamed this. Allow the old name for compat. :( if (!instance.getHostNode) { instance.getHostNode = instance.getNativeNode; } } else { instance = new ReactCompositeComponentWrapper(element); } } else if (typeof node === 'string' || typeof node === 'number') { instance = ReactHostComponent.createInstanceForText(node); } else { true ? true ? invariant(false, 'Encountered invalid React node of type %s', typeof node) : _prodInvariant('131', typeof node) : void 0; } if (true) { true ? warning(typeof instance.mountComponent === 'function' && typeof instance.receiveComponent === 'function' && typeof instance.getHostNode === 'function' && typeof instance.unmountComponent === 'function', 'Only React Components can be mounted.') : void 0; } // These two fields are used by the DOM and ART diffing algorithms // respectively. Instead of using expandos on components, we should be // storing the state needed by the diffing algorithms elsewhere. instance._mountIndex = 0; instance._mountImage = null; if (true) { instance._debugID = shouldHaveDebugID ? getNextDebugID() : 0; } // Internal instances should fully constructed at this point, so they should // not get any new fields added to them at this point. if (true) { if (Object.preventExtensions) { Object.preventExtensions(instance); } } return instance; } _assign(ReactCompositeComponentWrapper.prototype, ReactCompositeComponent, { _instantiateReactComponent: instantiateReactComponent }); module.exports = instantiateReactComponent; /***/ }), /* 134 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ /** * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary */ var supportedInputTypes = { 'color': true, 'date': true, 'datetime': true, 'datetime-local': true, 'email': true, 'month': true, 'number': true, 'password': true, 'range': true, 'search': true, 'tel': true, 'text': true, 'time': true, 'url': true, 'week': true }; function isTextInputElement(elem) { var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase(); if (nodeName === 'input') { return !!supportedInputTypes[elem.type]; } if (nodeName === 'textarea') { return true; } return false; } module.exports = isTextInputElement; /***/ }), /* 135 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var ExecutionEnvironment = __webpack_require__(4); var escapeTextContentForBrowser = __webpack_require__(56); var setInnerHTML = __webpack_require__(57); /** * Set the textContent property of a node, ensuring that whitespace is preserved * even in IE8. innerText is a poor substitute for textContent and, among many * issues, inserts <br> instead of the literal newline chars. innerHTML behaves * as it should. * * @param {DOMElement} node * @param {string} text * @internal */ var setTextContent = function (node, text) { if (text) { var firstChild = node.firstChild; if (firstChild && firstChild === node.lastChild && firstChild.nodeType === 3) { firstChild.nodeValue = text; return; } } node.textContent = text; }; if (ExecutionEnvironment.canUseDOM) { if (!('textContent' in document.documentElement)) { setTextContent = function (node, text) { if (node.nodeType === 3) { node.nodeValue = text; return; } setInnerHTML(node, escapeTextContentForBrowser(text)); }; } } module.exports = setTextContent; /***/ }), /* 136 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _prodInvariant = __webpack_require__(2); var ReactCurrentOwner = __webpack_require__(17); var REACT_ELEMENT_TYPE = __webpack_require__(252); var getIteratorFn = __webpack_require__(289); var invariant = __webpack_require__(0); var KeyEscapeUtils = __webpack_require__(69); var warning = __webpack_require__(1); var SEPARATOR = '.'; var SUBSEPARATOR = ':'; /** * This is inlined from ReactElement since this file is shared between * isomorphic and renderers. We could extract this to a * */ /** * TODO: Test that a single child and an array with one item have the same key * pattern. */ var didWarnAboutMaps = false; /** * Generate a key string that identifies a component within a set. * * @param {*} component A component that could contain a manual key. * @param {number} index Index that is used if a manual key is not provided. * @return {string} */ function getComponentKey(component, index) { // Do some typechecking here since we call this blindly. We want to ensure // that we don't block potential future ES APIs. if (component && typeof component === 'object' && component.key != null) { // Explicit key return KeyEscapeUtils.escape(component.key); } // Implicit key determined by the index in the set return index.toString(36); } /** * @param {?*} children Children tree container. * @param {!string} nameSoFar Name of the key path so far. * @param {!function} callback Callback to invoke with each child found. * @param {?*} traverseContext Used to pass information throughout the traversal * process. * @return {!number} The number of children in this subtree. */ function traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) { var type = typeof children; if (type === 'undefined' || type === 'boolean') { // All of the above are perceived as null. children = null; } if (children === null || type === 'string' || type === 'number' || // The following is inlined from ReactElement. This means we can optimize // some checks. React Fiber also inlines this logic for similar purposes. type === 'object' && children.$$typeof === REACT_ELEMENT_TYPE) { callback(traverseContext, children, // If it's the only child, treat the name as if it was wrapped in an array // so that it's consistent if the number of children grows. nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar); return 1; } var child; var nextName; var subtreeCount = 0; // Count of children found in the current subtree. var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR; if (Array.isArray(children)) { for (var i = 0; i < children.length; i++) { child = children[i]; nextName = nextNamePrefix + getComponentKey(child, i); subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); } } else { var iteratorFn = getIteratorFn(children); if (iteratorFn) { var iterator = iteratorFn.call(children); var step; if (iteratorFn !== children.entries) { var ii = 0; while (!(step = iterator.next()).done) { child = step.value; nextName = nextNamePrefix + getComponentKey(child, ii++); subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); } } else { if (true) { var mapsAsChildrenAddendum = ''; if (ReactCurrentOwner.current) { var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName(); if (mapsAsChildrenOwnerName) { mapsAsChildrenAddendum = ' Check the render method of `' + mapsAsChildrenOwnerName + '`.'; } } true ? warning(didWarnAboutMaps, 'Using Maps as children is not yet fully supported. It is an ' + 'experimental feature that might be removed. Convert it to a ' + 'sequence / iterable of keyed ReactElements instead.%s', mapsAsChildrenAddendum) : void 0; didWarnAboutMaps = true; } // Iterator will provide entry [k,v] tuples rather than values. while (!(step = iterator.next()).done) { var entry = step.value; if (entry) { child = entry[1]; nextName = nextNamePrefix + KeyEscapeUtils.escape(entry[0]) + SUBSEPARATOR + getComponentKey(child, 0); subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); } } } } else if (type === 'object') { var addendum = ''; if (true) { addendum = ' If you meant to render a collection of children, use an array ' + 'instead or wrap the object using createFragment(object) from the ' + 'React add-ons.'; if (children._isReactElement) { addendum = ' It looks like you\'re using an element created by a different ' + 'version of React. Make sure to use only one copy of React.'; } if (ReactCurrentOwner.current) { var name = ReactCurrentOwner.current.getName(); if (name) { addendum += ' Check the render method of `' + name + '`.'; } } } var childrenString = String(children); true ? true ? invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : _prodInvariant('31', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : void 0; } } return subtreeCount; } /** * Traverses children that are typically specified as `props.children`, but * might also be specified through attributes: * * - `traverseAllChildren(this.props.children, ...)` * - `traverseAllChildren(this.props.leftPanelChildren, ...)` * * The `traverseContext` is an optional argument that is passed through the * entire traversal. It can be used to store accumulations or anything else that * the callback might find relevant. * * @param {?*} children Children tree object. * @param {!function} callback To invoke upon traversing each child. * @param {?*} traverseContext Context for traversal. * @return {!number} The number of children in this subtree. */ function traverseAllChildren(children, callback, traverseContext) { if (children == null) { return 0; } return traverseAllChildrenImpl(children, '', callback, traverseContext); } module.exports = traverseAllChildren; /***/ }), /* 137 */ /***/ (function(module, exports) { var Platform={ OS:'web', select:function select(obj){return'web'in obj?obj.web:obj.default;}}; module.exports=Platform; /***/ }), /* 138 */ /***/ (function(module, exports, __webpack_require__) { var _ReactNativePropRegistry=__webpack_require__(145);var _ReactNativePropRegistry2=_interopRequireDefault(_ReactNativePropRegistry); var _invariant=__webpack_require__(0);var _invariant2=_interopRequireDefault(_invariant);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} function getStyle(style){ if(typeof style==='number'){ return _ReactNativePropRegistry2.default.getByID(style); } return style; } function flattenStyle(style){ if(!style){ return undefined; } if(true){ (0,_invariant2.default)(style!==true,'style may be false but not true'); } if(!Array.isArray(style)){ return getStyle(style); } var result={}; for(var i=0,styleLength=style.length;i<styleLength;++i){ var computedStyle=flattenStyle(style[i]); if(computedStyle){ for(var key in computedStyle){ var value=computedStyle[key]; result[key]=value; } } } return result; } module.exports=flattenStyle; /***/ }), /* 139 */ /***/ (function(module, exports) { var ImageResizeMode={ center:'center', contain:'contain', cover:'cover', none:'none', repeat:'repeat', stretch:'stretch'}; module.exports=ImageResizeMode; /***/ }), /* 140 */ /***/ (function(module, exports, __webpack_require__) { 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;};var _BorderPropTypes=__webpack_require__(152);var _BorderPropTypes2=_interopRequireDefault(_BorderPropTypes); var _ColorPropType=__webpack_require__(16);var _ColorPropType2=_interopRequireDefault(_ColorPropType); var _ImageResizeMode=__webpack_require__(139);var _ImageResizeMode2=_interopRequireDefault(_ImageResizeMode); var _LayoutPropTypes=__webpack_require__(153);var _LayoutPropTypes2=_interopRequireDefault(_LayoutPropTypes); var _ShadowPropTypes=__webpack_require__(154);var _ShadowPropTypes2=_interopRequireDefault(_ShadowPropTypes); var _TransformPropTypes=__webpack_require__(155);var _TransformPropTypes2=_interopRequireDefault(_TransformPropTypes); var _propTypes=__webpack_require__(3);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} module.exports=_extends({},_BorderPropTypes2.default,_LayoutPropTypes2.default,_ShadowPropTypes2.default,_TransformPropTypes2.default,{ backgroundColor:_ColorPropType2.default, opacity:_propTypes.number, resizeMode:(0,_propTypes.oneOf)(Object.keys(_ImageResizeMode2.default)), overlayColor:_propTypes.string, tintColor:_ColorPropType2.default, boxShadow:_propTypes.string}); /***/ }), /* 141 */ /***/ (function(module, exports, __webpack_require__) { 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;};var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}(); var _applyNativeMethods=__webpack_require__(21);var _applyNativeMethods2=_interopRequireDefault(_applyNativeMethods); var _createDOMElement=__webpack_require__(31);var _createDOMElement2=_interopRequireDefault(_createDOMElement); var _ImageLoader=__webpack_require__(339);var _ImageLoader2=_interopRequireDefault(_ImageLoader); var _ImageResizeMode=__webpack_require__(139);var _ImageResizeMode2=_interopRequireDefault(_ImageResizeMode); var _ImageStylePropTypes=__webpack_require__(140);var _ImageStylePropTypes2=_interopRequireDefault(_ImageStylePropTypes); var _ImageUriCache=__webpack_require__(323);var _ImageUriCache2=_interopRequireDefault(_ImageUriCache); var _requestIdleCallback=__webpack_require__(346);var _requestIdleCallback2=_interopRequireDefault(_requestIdleCallback); var _StyleSheet=__webpack_require__(8);var _StyleSheet2=_interopRequireDefault(_StyleSheet); var _StyleSheetPropType=__webpack_require__(32);var _StyleSheetPropType2=_interopRequireDefault(_StyleSheetPropType); var _View=__webpack_require__(12);var _View2=_interopRequireDefault(_View); var _ViewPropTypes=__webpack_require__(19);var _ViewPropTypes2=_interopRequireDefault(_ViewPropTypes); var _propTypes=__webpack_require__(3); var _react=__webpack_require__(5);var _react2=_interopRequireDefault(_react);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}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;} var emptyObject={}; var STATUS_ERRORED='ERRORED'; var STATUS_LOADED='LOADED'; var STATUS_LOADING='LOADING'; var STATUS_PENDING='PENDING'; var STATUS_IDLE='IDLE'; var ImageSourcePropType=(0,_propTypes.oneOfType)([ (0,_propTypes.shape)({ height:_propTypes.number, uri:_propTypes.string.isRequired, width:_propTypes.number}),_propTypes.string]); var getImageState=function getImageState(uri,isPreviouslyLoaded){ return isPreviouslyLoaded?STATUS_LOADED:uri?STATUS_PENDING:STATUS_IDLE; }; var resolveAssetDimensions=function resolveAssetDimensions(source){ if(typeof source==='object'){var height=source.height,width=source.width; return{height:height,width:width}; } }; var resolveAssetSource=function resolveAssetSource(source){ return(typeof source==='object'?source.uri:source)||null; };var Image=function(_Component){_inherits(Image,_Component);_createClass(Image,null,[{key:'getSize',value:function getSize( uri,success,failure){ _ImageLoader2.default.getSize(uri,success,failure); }},{key:'prefetch',value:function prefetch( uri){ return _ImageLoader2.default.prefetch(uri); }}]); function Image(props,context){_classCallCheck(this,Image);var _this=_possibleConstructorReturn(this,(Image.__proto__||Object.getPrototypeOf(Image)).call(this, props,context));_this. _onError=function(){var _this$props= _this.props,onError=_this$props.onError,source=_this$props.source; _this._updateImageState(STATUS_ERRORED); if(onError){ onError({ nativeEvent:{ error:'Failed to load resource '+resolveAssetSource(source)+' (404)'}}); } _this._onLoadEnd(); };_this. _onLoad=function(e){var _this$props2= _this.props,onLoad=_this$props2.onLoad,source=_this$props2.source; var event={nativeEvent:e}; _ImageUriCache2.default.add(resolveAssetSource(source)); _this._updateImageState(STATUS_LOADED); if(onLoad){ onLoad(event); } _this._onLoadEnd(); };var uri=resolveAssetSource(props.source);var isPreviouslyLoaded=_ImageUriCache2.default.has(uri);_this.state={shouldDisplaySource:isPreviouslyLoaded};_this._imageState=getImageState(uri,isPreviouslyLoaded);isPreviouslyLoaded&&_ImageUriCache2.default.add(uri);_this._isMounted=false;return _this;}_createClass(Image,[{key:'componentDidMount',value:function componentDidMount(){this._isMounted=true;if(this._imageState===STATUS_PENDING){this._createImageLoader();}}},{key:'componentDidUpdate',value:function componentDidUpdate(){if(this._imageState===STATUS_PENDING){this._createImageLoader();}}},{key:'componentWillReceiveProps',value:function componentWillReceiveProps(nextProps){var uri=resolveAssetSource(this.props.source);var nextUri=resolveAssetSource(nextProps.source);if(uri!==nextUri){_ImageUriCache2.default.remove(uri);var isPreviouslyLoaded=_ImageUriCache2.default.has(nextUri);isPreviouslyLoaded&&_ImageUriCache2.default.add(uri);this._updateImageState(getImageState(uri,isPreviouslyLoaded));}}},{key:'componentWillUnmount',value:function componentWillUnmount(){_ImageUriCache2.default.remove(resolveAssetSource(this.props.source));this._destroyImageLoader();this._isMounted=false;}},{key:'render',value:function render(){var shouldDisplaySource=this.state.shouldDisplaySource;var _props=this.props,accessibilityLabel=_props.accessibilityLabel,accessible=_props.accessible,children=_props.children,defaultSource=_props.defaultSource,onLayout=_props.onLayout,source=_props.source,testID=_props.testID,onError=_props.onError,onLoad=_props.onLoad,onLoadEnd=_props.onLoadEnd,onLoadStart=_props.onLoadStart,resizeMode=_props.resizeMode,other=_objectWithoutProperties(_props,['accessibilityLabel','accessible','children','defaultSource','onLayout','source','testID','onError','onLoad','onLoadEnd','onLoadStart','resizeMode']);var displayImage=resolveAssetSource(shouldDisplaySource?source:defaultSource);var imageSizeStyle=resolveAssetDimensions(shouldDisplaySource?source:defaultSource);var backgroundImage=displayImage?'url("'+displayImage+'")':null;var originalStyle=_StyleSheet2.default.flatten(this.props.style);var finalResizeMode=resizeMode||originalStyle.resizeMode||_ImageResizeMode2.default.cover;var style=_StyleSheet2.default.flatten([styles.initial,imageSizeStyle,originalStyle,resizeModeStyles[finalResizeMode],backgroundImage&&{backgroundImage:backgroundImage}]);delete style.resizeMode;var hiddenImage=displayImage?(0,_createDOMElement2.default)('img',{src:displayImage,style:[_StyleSheet2.default.absoluteFill,styles.img]}):null;return _react2.default.createElement(_View2.default,_extends({},other,{accessibilityLabel:accessibilityLabel,accessible:accessible,onLayout:onLayout,style:style,testID:testID}),hiddenImage,children);}},{key:'_createImageLoader',value:function _createImageLoader(){var _this2=this;this._destroyImageLoader();this._loadRequest=(0,_requestIdleCallback2.default)(function(){var uri=resolveAssetSource(_this2.props.source);_this2._imageRequestId=_ImageLoader2.default.load(uri,_this2._onLoad,_this2._onError);_this2._onLoadStart();});}},{key:'_destroyImageLoader',value:function _destroyImageLoader(){if(this._loadRequest){(0,_requestIdleCallback.cancelIdleCallback)(this._loadRequest);this._loadRequest=null;}if(this._imageRequestId){_ImageLoader2.default.abort(this._imageRequestId);this._imageRequestId=null;}}},{key:'_onLoadEnd',value:function _onLoadEnd() {var onLoadEnd=this.props.onLoadEnd; if(onLoadEnd){ onLoadEnd(); } }},{key:'_onLoadStart',value:function _onLoadStart() {var onLoadStart=this.props.onLoadStart; this._updateImageState(STATUS_LOADING); if(onLoadStart){ onLoadStart(); } }},{key:'_updateImageState',value:function _updateImageState( status){ this._imageState=status; var shouldDisplaySource= this._imageState===STATUS_LOADED||this._imageState===STATUS_LOADING; if(shouldDisplaySource!==this.state.shouldDisplaySource){ if(this._isMounted){ this.setState(function(){return{shouldDisplaySource:shouldDisplaySource};}); } } }}]);return Image;}(_react.Component);Image.displayName='Image';Image.defaultProps={style:emptyObject};Image.resizeMode=_ImageResizeMode2.default; true?Image.propTypes=_extends({},_ViewPropTypes2.default,{children:_propTypes.any,defaultSource:ImageSourcePropType,onError:_propTypes.func,onLayout:_propTypes.func,onLoad:_propTypes.func,onLoadEnd:_propTypes.func,onLoadStart:_propTypes.func,resizeMode:(0,_propTypes.oneOf)(Object.keys(_ImageResizeMode2.default)),source:ImageSourcePropType,style:(0,_StyleSheetPropType2.default)(_ImageStylePropTypes2.default)}):void 0; var styles=_StyleSheet2.default.create({ initial:{ backgroundColor:'transparent', backgroundPosition:'center', backgroundRepeat:'no-repeat', backgroundSize:'cover', zIndex:0}, img:{ height:'100%', opacity:0, width:'100%', zIndex:-1}}); var resizeModeStyles=_StyleSheet2.default.create({ center:{ backgroundSize:'auto', backgroundPosition:'center'}, contain:{ backgroundSize:'contain'}, cover:{ backgroundSize:'cover'}, none:{ backgroundSize:'auto'}, repeat:{ backgroundSize:'auto', backgroundRepeat:'repeat'}, stretch:{ backgroundSize:'100% 100%'}}); module.exports=(0,_applyNativeMethods2.default)(Image); /***/ }), /* 142 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}} var invariant=__webpack_require__(0); var isEmpty=__webpack_require__(109); var warning=__webpack_require__(1); function defaultGetRowData(dataBlob,sectionID,rowID){ return dataBlob[sectionID][rowID]; } function defaultGetSectionHeaderData(dataBlob,sectionID){ return dataBlob[sectionID]; }var ListViewDataSource=function(){ function ListViewDataSource(params){_classCallCheck(this,ListViewDataSource); invariant( params&&typeof params.rowHasChanged==='function', 'Must provide a rowHasChanged function.'); this._rowHasChanged=params.rowHasChanged; this._getRowData=params.getRowData||defaultGetRowData; this._sectionHeaderHasChanged=params.sectionHeaderHasChanged; this._getSectionHeaderData=params.getSectionHeaderData||defaultGetSectionHeaderData; this._dataBlob=null; this._dirtyRows=[]; this._dirtySections=[]; this._cachedRowCount=0; this.rowIdentities=[]; this.sectionIdentities=[]; }_createClass(ListViewDataSource,[{key:'cloneWithRows',value:function cloneWithRows( dataBlob, rowIdentities) { var rowIds=rowIdentities?[rowIdentities]:null; if(!this._sectionHeaderHasChanged){ this._sectionHeaderHasChanged=function(){return false;}; } return this.cloneWithRowsAndSections({s1:dataBlob},['s1'],rowIds); }},{key:'cloneWithRowsAndSections',value:function cloneWithRowsAndSections( dataBlob, sectionIdentities, rowIdentities) { invariant( typeof this._sectionHeaderHasChanged==='function', 'Must provide a sectionHeaderHasChanged function with section data.'); var newSource=new ListViewDataSource({ getRowData:this._getRowData, getSectionHeaderData:this._getSectionHeaderData, rowHasChanged:this._rowHasChanged, sectionHeaderHasChanged:this._sectionHeaderHasChanged}); newSource._dataBlob=dataBlob; if(sectionIdentities){ newSource.sectionIdentities=sectionIdentities; }else{ newSource.sectionIdentities=Object.keys(dataBlob); } if(rowIdentities){ newSource.rowIdentities=rowIdentities; }else{ newSource.rowIdentities=[]; newSource.sectionIdentities.forEach(function(sectionID){ newSource.rowIdentities.push(Object.keys(dataBlob[sectionID])); }); } newSource._cachedRowCount=countRows(newSource.rowIdentities); newSource._calculateDirtyArrays(this._dataBlob,this.sectionIdentities,this.rowIdentities); return newSource; }},{key:'getRowCount',value:function getRowCount() { return this._cachedRowCount; }},{key:'getRowAndSectionCount',value:function getRowAndSectionCount() { return this._cachedRowCount+this.sectionIdentities.length; }},{key:'rowShouldUpdate',value:function rowShouldUpdate( sectionIndex,rowIndex){ var needsUpdate=this._dirtyRows[sectionIndex][rowIndex]; warning( needsUpdate!==undefined, 'missing dirtyBit for section, row: '+sectionIndex+', '+rowIndex); return needsUpdate; }},{key:'getRowData',value:function getRowData( sectionIndex,rowIndex){ var sectionID=this.sectionIdentities[sectionIndex]; var rowID=this.rowIdentities[sectionIndex][rowIndex]; warning( sectionID!==undefined&&rowID!==undefined, 'rendering invalid section, row: '+sectionIndex+', '+rowIndex); return this._getRowData(this._dataBlob,sectionID,rowID); }},{key:'getRowIDForFlatIndex',value:function getRowIDForFlatIndex( index){ var accessIndex=index; for(var ii=0;ii<this.sectionIdentities.length;ii++){ if(accessIndex>=this.rowIdentities[ii].length){ accessIndex-=this.rowIdentities[ii].length; }else{ return this.rowIdentities[ii][accessIndex]; } } return null; }},{key:'getSectionIDForFlatIndex',value:function getSectionIDForFlatIndex( index){ var accessIndex=index; for(var ii=0;ii<this.sectionIdentities.length;ii++){ if(accessIndex>=this.rowIdentities[ii].length){ accessIndex-=this.rowIdentities[ii].length; }else{ return this.sectionIdentities[ii]; } } return null; }},{key:'getSectionLengths',value:function getSectionLengths() { var results=[]; for(var ii=0;ii<this.sectionIdentities.length;ii++){ results.push(this.rowIdentities[ii].length); } return results; }},{key:'sectionHeaderShouldUpdate',value:function sectionHeaderShouldUpdate( sectionIndex){ var needsUpdate=this._dirtySections[sectionIndex]; warning(needsUpdate!==undefined,'missing dirtyBit for section: '+sectionIndex); return needsUpdate; }},{key:'getSectionHeaderData',value:function getSectionHeaderData( sectionIndex){ if(!this._getSectionHeaderData){ return null; } var sectionID=this.sectionIdentities[sectionIndex]; warning(sectionID!==undefined,'renderSection called on invalid section: '+sectionIndex); return this._getSectionHeaderData(this._dataBlob,sectionID); }},{key:'_calculateDirtyArrays',value:function _calculateDirtyArrays( prevDataBlob, prevSectionIDs, prevRowIDs) { var prevSectionsHash=keyedDictionaryFromArray(prevSectionIDs); var prevRowsHash={}; for(var ii=0;ii<prevRowIDs.length;ii++){ var sectionID=prevSectionIDs[ii]; warning(!prevRowsHash[sectionID],'SectionID appears more than once: '+sectionID); prevRowsHash[sectionID]=keyedDictionaryFromArray(prevRowIDs[ii]); } this._dirtySections=[]; this._dirtyRows=[]; var dirty; for(var sIndex=0;sIndex<this.sectionIdentities.length;sIndex++){ var sectionID=this.sectionIdentities[sIndex]; dirty=!prevSectionsHash[sectionID]; var sectionHeaderHasChanged=this._sectionHeaderHasChanged; if(!dirty&§ionHeaderHasChanged){ dirty=sectionHeaderHasChanged( this._getSectionHeaderData(prevDataBlob,sectionID), this._getSectionHeaderData(this._dataBlob,sectionID)); } this._dirtySections.push(!!dirty); this._dirtyRows[sIndex]=[]; for(var rIndex=0;rIndex<this.rowIdentities[sIndex].length;rIndex++){ var rowID=this.rowIdentities[sIndex][rIndex]; dirty= !prevSectionsHash[sectionID]|| !prevRowsHash[sectionID][rowID]|| this._rowHasChanged( this._getRowData(prevDataBlob,sectionID,rowID), this._getRowData(this._dataBlob,sectionID,rowID)); this._dirtyRows[sIndex].push(!!dirty); } } }}]);return ListViewDataSource;}(); function countRows(allRowIDs){ var totalRows=0; for(var sectionIdx=0;sectionIdx<allRowIDs.length;sectionIdx++){ var rowIDs=allRowIDs[sectionIdx]; totalRows+=rowIDs.length; } return totalRows; } function keyedDictionaryFromArray(arr){ if(isEmpty(arr)){ return{}; } var result={}; for(var ii=0;ii<arr.length;ii++){ var key=arr[ii]; warning(!result[key],'Value appears more than once in array: '+key); result[key]=true; } return result; } module.exports=ListViewDataSource; /***/ }), /* 143 */ /***/ (function(module, exports, __webpack_require__) { 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;};var _TextStylePropTypes=__webpack_require__(84);var _TextStylePropTypes2=_interopRequireDefault(_TextStylePropTypes); var _propTypes=__webpack_require__(3);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} var TextInputOnlyStylePropTypes={ resize:(0,_propTypes.oneOf)(['none','vertical','horizontal','both'])}; module.exports=_extends({},_TextStylePropTypes2.default, TextInputOnlyStylePropTypes); /***/ }), /* 144 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; 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;}; var _createReactClass=__webpack_require__(49);var _createReactClass2=_interopRequireDefault(_createReactClass); var _propTypes=__webpack_require__(3);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}var NativeMethodsMixin=__webpack_require__(60);var React=__webpack_require__(5);var StyleSheet=__webpack_require__(8);var TimerMixin=__webpack_require__(95);var Touchable=__webpack_require__(59);var TouchableWithoutFeedback=__webpack_require__(87);var View=__webpack_require__(12); var ensurePositiveDelayProps=__webpack_require__(88); var flattenStyle=StyleSheet.flatten; var PRESS_RETENTION_OFFSET={top:20,left:20,right:20,bottom:30}; var TouchableOpacity=(0,_createReactClass2.default)({ mixins:[TimerMixin,Touchable.Mixin,NativeMethodsMixin], propTypes:_extends({}, TouchableWithoutFeedback.propTypes,{ activeOpacity:_propTypes.number, focusedOpacity:_propTypes.number}), getDefaultProps:function getDefaultProps(){ return{ activeOpacity:0.2, focusedOpacity:0.7}; }, getInitialState:function getInitialState(){ return this.touchableGetInitialState(); }, componentDidMount:function componentDidMount(){ ensurePositiveDelayProps(this.props); }, componentWillReceiveProps:function componentWillReceiveProps(nextProps){ ensurePositiveDelayProps(nextProps); }, setOpacityTo:function setOpacityTo(value,duration){ this.setNativeProps({ style:{ opacity:value, transitionDuration:duration/1000+'s'}}); }, touchableHandleActivePressIn:function touchableHandleActivePressIn(e){ if(e.dispatchConfig.registrationName==='onResponderGrant'){ this._opacityActive(0); }else{ this._opacityActive(150); } this.props.onPressIn&&this.props.onPressIn(e); }, touchableHandleActivePressOut:function touchableHandleActivePressOut(e){ this._opacityInactive(250); this.props.onPressOut&&this.props.onPressOut(e); }, touchableHandlePress:function touchableHandlePress(e){ this.props.onPress&&this.props.onPress(e); }, touchableHandleLongPress:function touchableHandleLongPress(e){ this.props.onLongPress&&this.props.onLongPress(e); }, touchableGetPressRectOffset:function touchableGetPressRectOffset(){ return this.props.pressRetentionOffset||PRESS_RETENTION_OFFSET; }, touchableGetHitSlop:function touchableGetHitSlop(){ return this.props.hitSlop; }, touchableGetHighlightDelayMS:function touchableGetHighlightDelayMS(){ return this.props.delayPressIn||0; }, touchableGetLongPressDelayMS:function touchableGetLongPressDelayMS(){ return this.props.delayLongPress===0?0:this.props.delayLongPress||500; }, touchableGetPressOutDelayMS:function touchableGetPressOutDelayMS(){ return this.props.delayPressOut; }, _opacityActive:function _opacityActive(duration){ this.setOpacityTo(this.props.activeOpacity,duration); }, _opacityInactive:function _opacityInactive(duration){ var childStyle=flattenStyle(this.props.style)||{}; this.setOpacityTo(childStyle.opacity===undefined?1:childStyle.opacity,duration); }, _opacityFocused:function _opacityFocused(){ this.setOpacityTo(this.props.focusedOpacity); }, _onKeyEnter:function _onKeyEnter(e,callback){ var ENTER=13; if((e.type==='keypress'?e.charCode:e.keyCode)===ENTER){ callback&&callback(e); e.stopPropagation(); } }, render:function render(){var _this=this;var _props= this.props,activeOpacity=_props.activeOpacity,focusedOpacity=_props.focusedOpacity,delayLongPress=_props.delayLongPress,delayPressIn=_props.delayPressIn,delayPressOut=_props.delayPressOut,onLongPress=_props.onLongPress,onPress=_props.onPress,onPressIn=_props.onPressIn,onPressOut=_props.onPressOut,pressRetentionOffset=_props.pressRetentionOffset,other=_objectWithoutProperties(_props,['activeOpacity','focusedOpacity','delayLongPress','delayPressIn','delayPressOut','onLongPress','onPress','onPressIn','onPressOut','pressRetentionOffset']); return( React.createElement(View,_extends({}, other,{ accessible:this.props.accessible!==false, style:[styles.root,this.props.disabled&&styles.disabled,this.props.style], onKeyDown:function onKeyDown(e){ _this._onKeyEnter(e,_this.touchableHandleActivePressIn); }, onKeyPress:function onKeyPress(e){ _this._onKeyEnter(e,_this.touchableHandlePress); }, onKeyUp:function onKeyUp(e){ _this._onKeyEnter(e,_this.touchableHandleActivePressOut); }, onStartShouldSetResponder:this.touchableHandleStartShouldSetResponder, onResponderTerminationRequest:this.touchableHandleResponderTerminationRequest, onResponderGrant:this.touchableHandleResponderGrant, onResponderMove:this.touchableHandleResponderMove, onResponderRelease:this.touchableHandleResponderRelease, onResponderTerminate:this.touchableHandleResponderTerminate}), this.props.children, Touchable.renderDebugView({color:'blue',hitSlop:this.props.hitSlop}))); }}); var styles=StyleSheet.create({ root:{ cursor:'pointer', transitionProperty:'opacity', transitionDuration:'0.15s', userSelect:'none'}, disabled:{ cursor:'default'}}); module.exports=TouchableOpacity; /***/ }), /* 145 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}} var emptyObject={}; var objects={}; var prefix='r'; var uniqueID=1; var createKey=function createKey(id){return prefix+'-'+id;};var ReactNativePropRegistry=function(){function ReactNativePropRegistry(){_classCallCheck(this,ReactNativePropRegistry);}_createClass(ReactNativePropRegistry,null,[{key:'register',value:function register( object){ var id=uniqueID++; if(true){ Object.freeze(object); } var key=createKey(id); objects[key]=object; return id; }},{key:'getByID',value:function getByID( id){ if(!id){ return emptyObject; } var key=createKey(id); var object=objects[key]; if(!object){ console.warn('Invalid style with id `'+id+'`. Skipping ...'); return emptyObject; } return object; }}]);return ReactNativePropRegistry;}(); module.exports=ReactNativePropRegistry; /***/ }), /* 146 */ /***/ (function(module, exports, __webpack_require__) { var _AccessibilityUtil=__webpack_require__(89);var _AccessibilityUtil2=_interopRequireDefault(_AccessibilityUtil); var _StyleSheet=__webpack_require__(8);var _StyleSheet2=_interopRequireDefault(_StyleSheet); var _registry=__webpack_require__(83);var _registry2=_interopRequireDefault(_registry);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;} var emptyObject={}; var styles=_StyleSheet2.default.create({ buttonReset:{ appearance:'none', backgroundColor:'transparent', color:'inherit', font:'inherit', textAlign:'inherit'}, linkReset:{ backgroundColor:'transparent', color:'inherit', textDecorationLine:'none'}, listReset:{ listStyle:'none'}}); var pointerEventStyles=_StyleSheet2.default.create({ auto:{ pointerEvents:'auto'}, 'box-none':{ pointerEvents:'box-none'}, 'box-only':{ pointerEvents:'box-only'}, none:{ pointerEvents:'none'}}); var resolver=function resolver(style){return _registry2.default.resolve(style);}; var createDOMProps=function createDOMProps(rnProps){var resolveStyle=arguments.length>1&&arguments[1]!==undefined?arguments[1]:resolver; var props=rnProps||emptyObject;var accessibilityLabel= props.accessibilityLabel,accessibilityLiveRegion=props.accessibilityLiveRegion,accessible=props.accessible,importantForAccessibility=props.importantForAccessibility,pointerEvents=props.pointerEvents,rnStyle=props.style,testID=props.testID,type=props.type,accessibilityComponentType=props.accessibilityComponentType,accessibilityRole=props.accessibilityRole,accessibilityTraits=props.accessibilityTraits,domProps=_objectWithoutProperties(props,['accessibilityLabel','accessibilityLiveRegion','accessible','importantForAccessibility','pointerEvents','style','testID','type','accessibilityComponentType','accessibilityRole','accessibilityTraits']); var role=_AccessibilityUtil2.default.propsToAriaRole(props); var pointerEventStyle=pointerEvents!==undefined&&pointerEventStyles[pointerEvents]; var reactNativeStyle=[ role==='button'&&styles.buttonReset|| role==='link'&&styles.linkReset|| role==='list'&&styles.listReset, rnStyle, pointerEventStyle];var _ref= resolveStyle(reactNativeStyle)||emptyObject,className=_ref.className,style=_ref.style; if(accessible===true){ domProps.tabIndex=_AccessibilityUtil2.default.propsToTabIndex(props); } if(typeof accessibilityLabel==='string'){ domProps['aria-label']=accessibilityLabel; } if(typeof accessibilityLiveRegion==='string'){ domProps['aria-live']=accessibilityLiveRegion==='none'?'off':accessibilityLiveRegion; } if(typeof className==='string'&&className!==''){ domProps.className=domProps.className?domProps.className+' '+className:className; } if(importantForAccessibility==='no-hide-descendants'){ domProps['aria-hidden']=true; } if(typeof role==='string'){ domProps.role=role; if(role==='button'){ domProps.type='button'; }else if(role==='link'&&domProps.target==='_blank'){ domProps.rel=(domProps.rel||'')+' noopener noreferrer'; } } if(style!=null){ domProps.style=style; } if(typeof testID==='string'){ domProps['data-testid']=testID; } if(typeof type==='string'){ domProps.type=type; } return domProps; }; module.exports=createDOMProps; /***/ }), /* 147 */ /***/ (function(module, exports) { var hasOwnProperty=Object.prototype.hasOwnProperty; var mapKeyValue=function mapKeyValue(obj,fn){ var result=[]; for(var key in obj){ if(hasOwnProperty.call(obj,key)){ var r=fn(key,obj[key]); r&&result.push(r); } } return result; }; module.exports=mapKeyValue; /***/ }), /* 148 */ /***/ (function(module, exports) { Object.defineProperty(exports,"__esModule",{value:true});var CSS_UNIT_RE=/^[+-]?\d*(?:\.\d+)?(?:[Ee][+-]?\d+)?(%|\w*)/; var getUnit=function getUnit(str){return str.match(CSS_UNIT_RE)[1];}; var isNumeric=function isNumeric(n){ return!isNaN(parseFloat(n))&&isFinite(n); }; var multiplyStyleLengthValue=function multiplyStyleLengthValue(value,multiple){ if(typeof value==='string'){ var number=parseFloat(value,10)*multiple; var unit=getUnit(value); return''+number+unit; }else if(isNumeric(value)){ return value*multiple; } };exports.default= multiplyStyleLengthValue; /***/ }), /* 149 */ /***/ (function(module, exports) { var emptyArray=[]; var normalizeTouches=function normalizeTouches(){var touches=arguments.length>0&&arguments[0]!==undefined?arguments[0]:emptyArray;return( Array.prototype.slice.call(touches).map(function(touch){ var identifier=touch.identifier>20?touch.identifier%20:touch.identifier; var rect=touch.target&&touch.target.getBoundingClientRect(); var locationX=touch.pageX-rect.left; var locationY=touch.pageY-rect.top; return{ _normalized:true, clientX:touch.clientX, clientY:touch.clientY, force:touch.force, locationX:locationX, locationY:locationY, identifier:identifier, pageX:touch.pageX, pageY:touch.pageY, radiusX:touch.radiusX, radiusY:touch.radiusY, rotationAngle:touch.rotationAngle, screenX:touch.screenX, screenY:touch.screenY, target:touch.target, timestamp:Date.now()}; }));}; function normalizeTouchEvent(nativeEvent){ var changedTouches=normalizeTouches(nativeEvent.changedTouches); var touches=normalizeTouches(nativeEvent.touches); var event={ _normalized:true, changedTouches:changedTouches, pageX:nativeEvent.pageX, pageY:nativeEvent.pageY, preventDefault:nativeEvent.preventDefault.bind(nativeEvent), stopImmediatePropagation:nativeEvent.stopImmediatePropagation.bind(nativeEvent), stopPropagation:nativeEvent.stopPropagation.bind(nativeEvent), target:nativeEvent.target, timestamp:Date.now(), touches:touches}; if(changedTouches[0]){ event.identifier=changedTouches[0].identifier; event.pageX=changedTouches[0].pageX; event.pageY=changedTouches[0].pageY; event.locationX=changedTouches[0].locationX; event.locationY=changedTouches[0].locationY; } return event; } function normalizeMouseEvent(nativeEvent){ var touches=[ { _normalized:true, clientX:nativeEvent.clientX, clientY:nativeEvent.clientY, force:nativeEvent.force, locationX:nativeEvent.clientX, locationY:nativeEvent.clientY, identifier:0, pageX:nativeEvent.pageX, pageY:nativeEvent.pageY, screenX:nativeEvent.screenX, screenY:nativeEvent.screenY, target:nativeEvent.target, timestamp:Date.now()}]; return{ _normalized:true, changedTouches:touches, identifier:touches[0].identifier, locationX:nativeEvent.offsetX, locationY:nativeEvent.offsetY, pageX:nativeEvent.pageX, pageY:nativeEvent.pageY, preventDefault:nativeEvent.preventDefault.bind(nativeEvent), stopImmediatePropagation:nativeEvent.stopImmediatePropagation.bind(nativeEvent), stopPropagation:nativeEvent.stopPropagation.bind(nativeEvent), target:nativeEvent.target, timestamp:touches[0].timestamp, touches:nativeEvent.type==='mouseup'?emptyArray:touches}; } function normalizeNativeEvent(nativeEvent){ if(nativeEvent._normalized){ return nativeEvent; } var eventType=nativeEvent.type||''; var mouse=eventType.indexOf('mouse')>=0; return mouse?normalizeMouseEvent(nativeEvent):normalizeTouchEvent(nativeEvent); } module.exports=normalizeNativeEvent; /***/ }), /* 150 */ /***/ (function(module, exports) { var unitlessNumbers={ animationIterationCount:true, borderImageOutset:true, borderImageSlice:true, borderImageWidth:true, boxFlex:true, boxFlexGroup:true, boxOrdinalGroup:true, columnCount:true, flex:true, flexGrow:true, flexOrder:true, flexPositive:true, flexShrink:true, flexNegative:true, fontWeight:true, gridRow:true, gridColumn:true, lineClamp:true, opacity:true, order:true, orphans:true, tabSize:true, widows:true, zIndex:true, zoom:true, fillOpacity:true, floodOpacity:true, stopOpacity:true, strokeDasharray:true, strokeDashoffset:true, strokeMiterlimit:true, strokeOpacity:true, strokeWidth:true, scale:true, scaleX:true, scaleY:true, scaleZ:true, shadowOpacity:true}; module.exports=unitlessNumbers; /***/ }), /* 151 */ /***/ (function(module, exports, __webpack_require__) { var _propTypes=__webpack_require__(3); var BaseComponentPropTypes={ accessibilityLabel:_propTypes.string, accessibilityLiveRegion:(0,_propTypes.oneOf)(['assertive','none','polite']), accessibilityRole:_propTypes.string, accessible:_propTypes.bool, importantForAccessibility:(0,_propTypes.oneOf)(['auto','no','no-hide-descendants','yes']), style:(0,_propTypes.oneOfType)([_propTypes.array,_propTypes.number,_propTypes.object]), testID:_propTypes.string}; module.exports=BaseComponentPropTypes; /***/ }), /* 152 */ /***/ (function(module, exports, __webpack_require__) { var _ColorPropType=__webpack_require__(16);var _ColorPropType2=_interopRequireDefault(_ColorPropType); var _propTypes=__webpack_require__(3);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} var numberOrString=(0,_propTypes.oneOfType)([_propTypes.number,_propTypes.string]); var BorderStylePropType=(0,_propTypes.oneOf)(['solid','dotted','dashed']); var BorderPropTypes={ borderColor:_ColorPropType2.default, borderTopColor:_ColorPropType2.default, borderRightColor:_ColorPropType2.default, borderBottomColor:_ColorPropType2.default, borderLeftColor:_ColorPropType2.default, borderRadius:numberOrString, borderTopLeftRadius:numberOrString, borderTopRightRadius:numberOrString, borderBottomLeftRadius:numberOrString, borderBottomRightRadius:numberOrString, borderStyle:BorderStylePropType, borderTopStyle:BorderStylePropType, borderRightStyle:BorderStylePropType, borderBottomStyle:BorderStylePropType, borderLeftStyle:BorderStylePropType}; module.exports=BorderPropTypes; /***/ }), /* 153 */ /***/ (function(module, exports, __webpack_require__) { var _propTypes=__webpack_require__(3); var OverflowPropType=(0,_propTypes.oneOf)(['auto','hidden','scroll','visible']); var hiddenOrVisible=(0,_propTypes.oneOf)(['hidden','visible']); var numberOrString=(0,_propTypes.oneOfType)([_propTypes.number,_propTypes.string]); var LayoutPropTypes={ alignContent:(0,_propTypes.oneOf)([ 'center', 'flex-end', 'flex-start', 'space-around', 'space-between', 'stretch']), alignItems:(0,_propTypes.oneOf)(['baseline','center','flex-end','flex-start','stretch']), alignSelf:(0,_propTypes.oneOf)(['auto','baseline','center','flex-end','flex-start','stretch']), backfaceVisibility:hiddenOrVisible, borderWidth:numberOrString, borderBottomWidth:numberOrString, borderLeftWidth:numberOrString, borderRightWidth:numberOrString, borderTopWidth:numberOrString, bottom:numberOrString, boxSizing:_propTypes.string, direction:(0,_propTypes.oneOf)(['inherit','ltr','rtl']), display:_propTypes.string, flex:_propTypes.number, flexBasis:numberOrString, flexDirection:(0,_propTypes.oneOf)(['column','column-reverse','row','row-reverse']), flexGrow:_propTypes.number, flexShrink:_propTypes.number, flexWrap:(0,_propTypes.oneOf)(['nowrap','wrap','wrap-reverse']), height:numberOrString, justifyContent:(0,_propTypes.oneOf)(['center','flex-end','flex-start','space-around','space-between']), left:numberOrString, margin:numberOrString, marginBottom:numberOrString, marginHorizontal:numberOrString, marginLeft:numberOrString, marginRight:numberOrString, marginTop:numberOrString, marginVertical:numberOrString, maxHeight:numberOrString, maxWidth:numberOrString, minHeight:numberOrString, minWidth:numberOrString, order:_propTypes.number, overflow:OverflowPropType, overflowX:OverflowPropType, overflowY:OverflowPropType, padding:numberOrString, paddingBottom:numberOrString, paddingHorizontal:numberOrString, paddingLeft:numberOrString, paddingRight:numberOrString, paddingTop:numberOrString, paddingVertical:numberOrString, position:(0,_propTypes.oneOf)(['absolute','fixed','relative','static']), right:numberOrString, top:numberOrString, visibility:hiddenOrVisible, width:numberOrString, zIndex:_propTypes.number, aspectRatio:_propTypes.number, gridAutoColumns:_propTypes.string, gridAutoFlow:_propTypes.string, gridAutoRows:_propTypes.string, gridColumnEnd:_propTypes.string, gridColumnGap:_propTypes.string, gridColumnStart:_propTypes.string, gridRowEnd:_propTypes.string, gridRowGap:_propTypes.string, gridRowStart:_propTypes.string, gridTemplateColumns:_propTypes.string, gridTemplateRows:_propTypes.string, gridTemplateAreas:_propTypes.string}; module.exports=LayoutPropTypes; /***/ }), /* 154 */ /***/ (function(module, exports, __webpack_require__) { var _ColorPropType=__webpack_require__(16);var _ColorPropType2=_interopRequireDefault(_ColorPropType); var _propTypes=__webpack_require__(3);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} var numberOrString=(0,_propTypes.oneOfType)([_propTypes.number,_propTypes.string]); var ShadowPropTypes={ shadowColor:_ColorPropType2.default, shadowOffset:(0,_propTypes.shape)({ width:numberOrString, height:numberOrString}), shadowOpacity:_propTypes.number, shadowRadius:numberOrString, shadowSpread:numberOrString}; module.exports=ShadowPropTypes; /***/ }), /* 155 */ /***/ (function(module, exports, __webpack_require__) { var _propTypes=__webpack_require__(3); var numberOrString=(0,_propTypes.oneOfType)([_propTypes.number,_propTypes.string]); var TransformPropTypes={ transform:(0,_propTypes.arrayOf)( (0,_propTypes.oneOfType)([ (0,_propTypes.shape)({perspective:numberOrString}), (0,_propTypes.shape)({rotate:_propTypes.string}), (0,_propTypes.shape)({rotateX:_propTypes.string}), (0,_propTypes.shape)({rotateY:_propTypes.string}), (0,_propTypes.shape)({rotateZ:_propTypes.string}), (0,_propTypes.shape)({scale:_propTypes.number}), (0,_propTypes.shape)({scaleX:_propTypes.number}), (0,_propTypes.shape)({scaleY:_propTypes.number}), (0,_propTypes.shape)({skewX:_propTypes.string}), (0,_propTypes.shape)({skewY:_propTypes.string}), (0,_propTypes.shape)({translateX:numberOrString}), (0,_propTypes.shape)({translateY:numberOrString}), (0,_propTypes.shape)({translateZ:numberOrString}), (0,_propTypes.shape)({translate3d:_propTypes.string})])), transformOrigin:_propTypes.string}; module.exports=TransformPropTypes; /***/ }), /* 156 */ /***/ (function(module, exports, __webpack_require__) { var invariant=__webpack_require__(0); var twoArgumentPooler=function twoArgumentPooler(a1,a2){ var Klass=this; if(Klass.instancePool.length){ var instance=Klass.instancePool.pop(); Klass.call(instance,a1,a2); return instance; }else{ return new Klass(a1,a2); } }; var standardReleaser=function standardReleaser(instance){ var Klass=this; instance.destructor(); if(Klass.instancePool.length<Klass.poolSize){ Klass.instancePool.push(instance); } }; var DEFAULT_POOL_SIZE=10; var DEFAULT_POOLER=twoArgumentPooler; var addPoolingTo=function addPoolingTo(CopyConstructor,pooler){ var NewKlass=CopyConstructor; NewKlass.instancePool=[]; NewKlass.getPooled=pooler||DEFAULT_POOLER; if(!NewKlass.poolSize){ NewKlass.poolSize=DEFAULT_POOL_SIZE; } NewKlass.release=standardReleaser; return NewKlass; }; var PooledClass={ addPoolingTo:addPoolingTo, twoArgumentPooler:twoArgumentPooler}; module.exports=PooledClass; /***/ }), /* 157 */ /***/ (function(module, exports) { var ReactPropTypesSecret='SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; module.exports=ReactPropTypesSecret; /***/ }), /* 158 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _prodInvariant = __webpack_require__(22), _assign = __webpack_require__(6); var ReactNoopUpdateQueue = __webpack_require__(163); var canDefineProperty = __webpack_require__(96); var emptyObject = __webpack_require__(38); var invariant = __webpack_require__(0); var warning = __webpack_require__(1); /** * Base class helpers for the updating state of a component. */ function ReactComponent(props, context, updater) { this.props = props; this.context = context; this.refs = emptyObject; // We initialize the default updater but the real one gets injected by the // renderer. this.updater = updater || ReactNoopUpdateQueue; } ReactComponent.prototype.isReactComponent = {}; /** * Sets a subset of the state. Always use this to mutate * state. You should treat `this.state` as immutable. * * There is no guarantee that `this.state` will be immediately updated, so * accessing `this.state` after calling this method may return the old value. * * There is no guarantee that calls to `setState` will run synchronously, * as they may eventually be batched together. You can provide an optional * callback that will be executed when the call to setState is actually * completed. * * When a function is provided to setState, it will be called at some point in * the future (not synchronously). It will be called with the up to date * component arguments (state, props, context). These values can be different * from this.* because your function may be called after receiveProps but before * shouldComponentUpdate, and this new state, props, and context will not yet be * assigned to this. * * @param {object|function} partialState Next partial state or function to * produce next partial state to be merged with current state. * @param {?function} callback Called after state is updated. * @final * @protected */ ReactComponent.prototype.setState = function (partialState, callback) { !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? true ? invariant(false, 'setState(...): takes an object of state variables to update or a function which returns an object of state variables.') : _prodInvariant('85') : void 0; this.updater.enqueueSetState(this, partialState, callback, 'setState'); }; /** * Forces an update. This should only be invoked when it is known with * certainty that we are **not** in a DOM transaction. * * You may want to call this when you know that some deeper aspect of the * component's state has changed but `setState` was not called. * * This will not invoke `shouldComponentUpdate`, but it will invoke * `componentWillUpdate` and `componentDidUpdate`. * * @param {?function} callback Called after update is complete. * @final * @protected */ ReactComponent.prototype.forceUpdate = function (callback) { this.updater.enqueueForceUpdate(this, callback, 'forceUpdate'); }; /** * Deprecated APIs. These APIs used to exist on classic React classes but since * we would like to deprecate them, we're not going to move them over to this * modern base class. Instead, we define a getter that warns if it's accessed. */ if (true) { var deprecatedAPIs = { isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'], replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).'] }; var defineDeprecationWarning = function (methodName, info) { if (canDefineProperty) { Object.defineProperty(ReactComponent.prototype, methodName, { get: function () { true ? warning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]) : void 0; return undefined; } }); } }; for (var fnName in deprecatedAPIs) { if (deprecatedAPIs.hasOwnProperty(fnName)) { defineDeprecationWarning(fnName, deprecatedAPIs[fnName]); } } } /** * Base class helpers for the updating state of a component. */ function ReactPureComponent(props, context, updater) { // Duplicated from ReactComponent. this.props = props; this.context = context; this.refs = emptyObject; // We initialize the default updater but the real one gets injected by the // renderer. this.updater = updater || ReactNoopUpdateQueue; } function ComponentDummy() {} ComponentDummy.prototype = ReactComponent.prototype; ReactPureComponent.prototype = new ComponentDummy(); ReactPureComponent.prototype.constructor = ReactPureComponent; // Avoid an extra prototype jump for these methods. _assign(ReactPureComponent.prototype, ReactComponent.prototype); ReactPureComponent.prototype.isPureReactComponent = true; module.exports = { Component: ReactComponent, PureComponent: ReactPureComponent }; /***/ }), /* 159 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ var ReactDebugCurrentFrame = {}; if (true) { var _require = __webpack_require__(13), getStackAddendumByID = _require.getStackAddendumByID, getCurrentStackAddendum = _require.getCurrentStackAddendum; var _require2 = __webpack_require__(162), getStackAddendumByWorkInProgressFiber = _require2.getStackAddendumByWorkInProgressFiber; // Component that is being worked on ReactDebugCurrentFrame.current = null; // Element that is being cloned or created ReactDebugCurrentFrame.element = null; ReactDebugCurrentFrame.getStackAddendum = function () { var stack = null; var current = ReactDebugCurrentFrame.current; var element = ReactDebugCurrentFrame.element; if (current !== null) { if (typeof current === 'number') { // DebugID from Stack. var debugID = current; stack = getStackAddendumByID(debugID); } else if (typeof current.tag === 'number') { // This is a Fiber. // The stack will only be correct if this is a work in progress // version and we're calling it during reconciliation. var workInProgress = current; stack = getStackAddendumByWorkInProgressFiber(workInProgress); } } else if (element !== null) { stack = getCurrentStackAddendum(element); } return stack; }; } module.exports = ReactDebugCurrentFrame; /***/ }), /* 160 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2014-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ // The Symbol used to tag the ReactElement type. If there is no native Symbol // nor polyfill, then a plain number is used for performance. var REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7; module.exports = REACT_ELEMENT_TYPE; /***/ }), /* 161 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2014-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ /** * ReactElementValidator provides a wrapper around a element factory * which validates the props passed to the element. This is intended to be * used only in DEV and could be replaced by a static type checker for languages * that support it. */ var ReactCurrentOwner = __webpack_require__(17); var ReactElement = __webpack_require__(25); var checkReactTypeSpec = __webpack_require__(359); var canDefineProperty = __webpack_require__(96); var getComponentName = __webpack_require__(97); var getIteratorFn = __webpack_require__(98); if (true) { var warning = __webpack_require__(1); var ReactDebugCurrentFrame = __webpack_require__(159); var _require = __webpack_require__(13), getCurrentStackAddendum = _require.getCurrentStackAddendum; } function getDeclarationErrorAddendum() { if (ReactCurrentOwner.current) { var name = getComponentName(ReactCurrentOwner.current); if (name) { return '\n\nCheck the render method of `' + name + '`.'; } } return ''; } function getSourceInfoErrorAddendum(elementProps) { if (elementProps !== null && elementProps !== undefined && elementProps.__source !== undefined) { var source = elementProps.__source; var fileName = source.fileName.replace(/^.*[\\\/]/, ''); var lineNumber = source.lineNumber; return '\n\nCheck your code at ' + fileName + ':' + lineNumber + '.'; } return ''; } /** * Warn if there's no key explicitly set on dynamic arrays of children or * object keys are not valid. This allows us to keep track of children between * updates. */ var ownerHasKeyUseWarning = {}; function getCurrentComponentErrorInfo(parentType) { var info = getDeclarationErrorAddendum(); if (!info) { var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name; if (parentName) { info = '\n\nCheck the top-level render call using <' + parentName + '>.'; } } return info; } /** * Warn if the element doesn't have an explicit key assigned to it. * This element is in an array. The array could grow and shrink or be * reordered. All children that haven't already been validated are required to * have a "key" property assigned to it. Error statuses are cached so a warning * will only be shown once. * * @internal * @param {ReactElement} element Element that requires a key. * @param {*} parentType element's parent's type. */ function validateExplicitKey(element, parentType) { if (!element._store || element._store.validated || element.key != null) { return; } element._store.validated = true; var memoizer = ownerHasKeyUseWarning.uniqueKey || (ownerHasKeyUseWarning.uniqueKey = {}); var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType); if (memoizer[currentComponentErrorInfo]) { return; } memoizer[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a // property, it may be the creator of the child that's responsible for // assigning it a key. var childOwner = ''; if (element && element._owner && element._owner !== ReactCurrentOwner.current) { // Give the component that originally created this child. childOwner = ' It was passed a child from ' + getComponentName(element._owner) + '.'; } true ? warning(false, 'Each child in an array or iterator should have a unique "key" prop.' + '%s%s See https://fb.me/react-warning-keys for more information.%s', currentComponentErrorInfo, childOwner, getCurrentStackAddendum(element)) : void 0; } /** * Ensure that every element either is passed in a static location, in an * array with an explicit keys property defined, or in an object literal * with valid key property. * * @internal * @param {ReactNode} node Statically passed child of any type. * @param {*} parentType node's parent's type. */ function validateChildKeys(node, parentType) { if (typeof node !== 'object') { return; } if (Array.isArray(node)) { for (var i = 0; i < node.length; i++) { var child = node[i]; if (ReactElement.isValidElement(child)) { validateExplicitKey(child, parentType); } } } else if (ReactElement.isValidElement(node)) { // This element was passed in a valid location. if (node._store) { node._store.validated = true; } } else if (node) { var iteratorFn = getIteratorFn(node); // Entry iterators provide implicit keys. if (iteratorFn) { if (iteratorFn !== node.entries) { var iterator = iteratorFn.call(node); var step; while (!(step = iterator.next()).done) { if (ReactElement.isValidElement(step.value)) { validateExplicitKey(step.value, parentType); } } } } } } /** * Given an element, validate that its props follow the propTypes definition, * provided by the type. * * @param {ReactElement} element */ function validatePropTypes(element) { var componentClass = element.type; if (typeof componentClass !== 'function') { return; } var name = componentClass.displayName || componentClass.name; // ReactNative `View.propTypes` have been deprecated in favor of `ViewPropTypes`. // In their place a temporary getter has been added with a deprecated warning message. // Avoid triggering that warning during validation using the temporary workaround, __propTypesSecretDontUseThesePlease. // TODO (bvaughn) Revert this particular change any time after April 1 ReactNative RC is tagged. var propTypes = typeof componentClass.__propTypesSecretDontUseThesePlease === 'object' ? componentClass.__propTypesSecretDontUseThesePlease : componentClass.propTypes; if (propTypes) { checkReactTypeSpec(propTypes, element.props, 'prop', name); } if (typeof componentClass.getDefaultProps === 'function') { true ? warning(componentClass.getDefaultProps.isReactClassApproved, 'getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.') : void 0; } } var ReactElementValidator = { createElement: function (type, props, children) { var validType = typeof type === 'string' || typeof type === 'function'; // We warn in this case but don't throw. We expect the element creation to // succeed and there will likely be errors in render. if (!validType) { var info = ''; if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) { info += ' You likely forgot to export your component from the file ' + "it's defined in."; } var sourceInfo = getSourceInfoErrorAddendum(props); if (sourceInfo) { info += sourceInfo; } else { info += getDeclarationErrorAddendum(); } info += getCurrentStackAddendum(); true ? warning(false, 'React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', type == null ? type : typeof type, info) : void 0; } var element = ReactElement.createElement.apply(this, arguments); // The result can be nullish if a mock or a custom function is used. // TODO: Drop this when these are no longer allowed as the type argument. if (element == null) { return element; } if (true) { ReactDebugCurrentFrame.element = element; } // Skip key warning if the type isn't valid since our key validation logic // doesn't expect a non-string/function type and can throw confusing errors. // We don't want exception behavior to differ between dev and prod. // (Rendering will throw with a helpful message and as soon as the type is // fixed, the key warnings will appear.) if (validType) { for (var i = 2; i < arguments.length; i++) { validateChildKeys(arguments[i], type); } } validatePropTypes(element); if (true) { ReactDebugCurrentFrame.element = null; } return element; }, createFactory: function (type) { var validatedFactory = ReactElementValidator.createElement.bind(null, type); // Legacy hook TODO: Warn if this is accessed validatedFactory.type = type; if (true) { if (canDefineProperty) { Object.defineProperty(validatedFactory, 'type', { enumerable: false, get: function () { true ? warning(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.') : void 0; Object.defineProperty(this, 'type', { value: type }); return type; } }); } } return validatedFactory; }, cloneElement: function (element, props, children) { var newElement = ReactElement.cloneElement.apply(this, arguments); if (true) { ReactDebugCurrentFrame.element = newElement; } for (var i = 2; i < arguments.length; i++) { validateChildKeys(arguments[i], newElement.type); } validatePropTypes(newElement); if (true) { ReactDebugCurrentFrame.element = null; } return newElement; } }; module.exports = ReactElementValidator; /***/ }), /* 162 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2016-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ var ReactTypeOfWork = __webpack_require__(357); var IndeterminateComponent = ReactTypeOfWork.IndeterminateComponent, FunctionalComponent = ReactTypeOfWork.FunctionalComponent, ClassComponent = ReactTypeOfWork.ClassComponent, HostComponent = ReactTypeOfWork.HostComponent; var getComponentName = __webpack_require__(97); function describeComponentFrame(name, source, ownerName) { return '\n in ' + (name || 'Unknown') + (source ? ' (at ' + source.fileName.replace(/^.*[\\\/]/, '') + ':' + source.lineNumber + ')' : ownerName ? ' (created by ' + ownerName + ')' : ''); } function describeFiber(fiber) { switch (fiber.tag) { case IndeterminateComponent: case FunctionalComponent: case ClassComponent: case HostComponent: var owner = fiber._debugOwner; var source = fiber._debugSource; var name = getComponentName(fiber); var ownerName = null; if (owner) { ownerName = getComponentName(owner); } return describeComponentFrame(name, source, ownerName); default: return ''; } } // This function can only be called with a work-in-progress fiber and // only during begin or complete phase. Do not call it under any other // circumstances. function getStackAddendumByWorkInProgressFiber(workInProgress) { var info = ''; var node = workInProgress; do { info += describeFiber(node); // Otherwise this return pointer might point to the wrong tree: node = node['return']; } while (node); return info; } module.exports = { getStackAddendumByWorkInProgressFiber: getStackAddendumByWorkInProgressFiber, describeComponentFrame: describeComponentFrame }; /***/ }), /* 163 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2015-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var warning = __webpack_require__(1); function warnNoop(publicInstance, callerName) { if (true) { var constructor = publicInstance.constructor; true ? warning(false, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op.\n\nPlease check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0; } } /** * This is the abstract API for an update queue. */ var ReactNoopUpdateQueue = { /** * Checks whether or not this composite component is mounted. * @param {ReactClass} publicInstance The instance we want to test. * @return {boolean} True if mounted, false otherwise. * @protected * @final */ isMounted: function (publicInstance) { return false; }, /** * Forces an update. This should only be invoked when it is known with * certainty that we are **not** in a DOM transaction. * * You may want to call this when you know that some deeper aspect of the * component's state has changed but `setState` was not called. * * This will not invoke `shouldComponentUpdate`, but it will invoke * `componentWillUpdate` and `componentDidUpdate`. * * @param {ReactClass} publicInstance The instance that should rerender. * @param {?function} callback Called after component is updated. * @param {?string} Name of the calling function in the public API. * @internal */ enqueueForceUpdate: function (publicInstance, callback, callerName) { warnNoop(publicInstance, 'forceUpdate'); }, /** * Replaces all of the state. Always use this or `setState` to mutate state. * You should treat `this.state` as immutable. * * There is no guarantee that `this.state` will be immediately updated, so * accessing `this.state` after calling this method may return the old value. * * @param {ReactClass} publicInstance The instance that should rerender. * @param {object} completeState Next state. * @param {?function} callback Called after component is updated. * @param {?string} Name of the calling function in the public API. * @internal */ enqueueReplaceState: function (publicInstance, completeState, callback, callerName) { warnNoop(publicInstance, 'replaceState'); }, /** * Sets a subset of the state. This only exists because _pendingState is * internal. This provides a merging strategy that is not available to deep * properties which is confusing. TODO: Expose pendingState or don't use it * during the merge. * * @param {ReactClass} publicInstance The instance that should rerender. * @param {object} partialState Next partial state to be merged with state. * @param {?function} callback Called after component is updated. * @param {?string} Name of the calling function in the public API. * @internal */ enqueueSetState: function (publicInstance, partialState, callback, callerName) { warnNoop(publicInstance, 'setState'); } }; module.exports = ReactNoopUpdateQueue; /***/ }), /* 164 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; module.exports = ReactPropTypesSecret; /***/ }), /* 165 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _prodInvariant = __webpack_require__(22); var ReactPropTypesSecret = __webpack_require__(164); var invariant = __webpack_require__(0); var warning = __webpack_require__(1); var loggedTypeFailures = {}; /** * Assert that the values match with the type specs. * Error messages are memorized and will only be shown once. * * @param {object} typeSpecs Map of name to a ReactPropType * @param {object} values Runtime values that need to be type-checked * @param {string} location e.g. "prop", "context", "child context" * @param {string} componentName Name of the component for error messages. * @param {?Function} getStack Returns the component stack. * @private */ function checkPropTypes(typeSpecs, values, location, componentName, getStack) { if (true) { for (var typeSpecName in typeSpecs) { if (typeSpecs.hasOwnProperty(typeSpecName)) { var error; // Prop type validation may throw. In case they do, we don't want to // fail the render phase where it didn't fail before. So we log it. // After these have been cleaned up, we'll let them throw. try { // This is intentionally an invariant that gets caught. It's the same // behavior as without this statement except with a better message. !(typeof typeSpecs[typeSpecName] === 'function') ? true ? invariant(false, '%s: %s type `%s` is invalid; it must be a function, usually from React.PropTypes.', componentName || 'React class', location, typeSpecName) : _prodInvariant('84', componentName || 'React class', location, typeSpecName) : void 0; error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); } catch (ex) { error = ex; } true ? warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error) : void 0; if (error instanceof Error && !(error.message in loggedTypeFailures)) { // Only monitor this failure once because there tends to be a lot of the // same error. loggedTypeFailures[error.message] = true; var stack = getStack ? getStack() : ''; true ? warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '') : void 0; } } } } } module.exports = checkPropTypes; /***/ }), /* 166 */ /***/ (function(module, exports, __webpack_require__) { var _module=__webpack_require__(336); var ReactNative={ findNodeHandle:_module.findNodeHandle, render:_module.render, unmountComponentAtNode:_module.unmountComponentAtNode, createDOMElement:_module.createDOMElement, NativeModules:_module.NativeModules, processColor:_module.processColor, Animated:_module.Animated, AppRegistry:_module.AppRegistry, AppState:_module.AppState, AsyncStorage:_module.AsyncStorage, BackAndroid:_module.BackAndroid, Clipboard:_module.Clipboard, Dimensions:_module.Dimensions, Easing:_module.Easing, I18nManager:_module.I18nManager, InteractionManager:_module.InteractionManager, Linking:_module.Linking, NetInfo:_module.NetInfo, PanResponder:_module.PanResponder, PixelRatio:_module.PixelRatio, Platform:_module.Platform, StyleSheet:_module.StyleSheet, UIManager:_module.UIManager, Vibration:_module.Vibration, ActivityIndicator:_module.ActivityIndicator, Button:_module.Button, Image:_module.Image, ListView:_module.ListView, ProgressBar:_module.ProgressBar, ScrollView:_module.ScrollView, StatusBar:_module.StatusBar, Switch:_module.Switch, Text:_module.Text, TextInput:_module.TextInput, Touchable:_module.Touchable, TouchableHighlight:_module.TouchableHighlight, TouchableOpacity:_module.TouchableOpacity, TouchableWithoutFeedback:_module.TouchableWithoutFeedback, View:_module.View, ColorPropType:_module.ColorPropType, EdgeInsetsPropType:_module.EdgeInsetsPropType, PointPropType:_module.PointPropType, ViewPropTypes:_module.ViewPropTypes}; module.exports=ReactNative; /***/ }), /* 167 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}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;} var AnimatedWithChildren=__webpack_require__(18); var Animated=__webpack_require__(9); var AnimatedValue=__webpack_require__(23); var Interpolation=__webpack_require__(36); var AnimatedInterpolation=__webpack_require__(46);var AnimatedAddition=function(_AnimatedWithChildren){_inherits(AnimatedAddition,_AnimatedWithChildren); function AnimatedAddition(a,b){_classCallCheck(this,AnimatedAddition);var _this=_possibleConstructorReturn(this,(AnimatedAddition.__proto__||Object.getPrototypeOf(AnimatedAddition)).call(this)); _this._a=typeof a==='number'?new AnimatedValue(a):a; _this._b=typeof b==='number'?new AnimatedValue(b):b; _this._listeners={};return _this; }_createClass(AnimatedAddition,[{key:'__getValue',value:function __getValue() { return this._a.__getValue()+this._b.__getValue(); }},{key:'addListener',value:function addListener( callback){var _this2=this; if(!this._aListener&&this._a.addListener){ this._aListener=this._a.addListener(function(){ for(var key in _this2._listeners){ _this2._listeners[key]({value:_this2.__getValue()}); } }); } if(!this._bListener&&this._b.addListener){ this._bListener=this._b.addListener(function(){ for(var key in _this2._listeners){ _this2._listeners[key]({value:_this2.__getValue()}); } }); } var id=guid(); this._listeners[id]=callback; return id; }},{key:'removeListener',value:function removeListener( id){ delete this._listeners[id]; }},{key:'interpolate',value:function interpolate( config){ return new AnimatedInterpolation(this,Interpolation.create(config)); }},{key:'__attach',value:function __attach() { this._a.__addChild(this); this._b.__addChild(this); }},{key:'__detach',value:function __detach() { this._a.__removeChild(this); this._b.__removeChild(this); }}]);return AnimatedAddition;}(AnimatedWithChildren); module.exports=AnimatedAddition; /***/ }), /* 168 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}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;} var Animated=__webpack_require__(9); var AnimatedWithChildren=__webpack_require__(18); var AnimatedInterpolation=__webpack_require__(46); var Interpolation=__webpack_require__(36);var AnimatedModulo=function(_AnimatedWithChildren){_inherits(AnimatedModulo,_AnimatedWithChildren); function AnimatedModulo(a,modulus){_classCallCheck(this,AnimatedModulo);var _this=_possibleConstructorReturn(this,(AnimatedModulo.__proto__||Object.getPrototypeOf(AnimatedModulo)).call(this)); _this._a=a; _this._modulus=modulus; _this._listeners={};return _this; }_createClass(AnimatedModulo,[{key:'__getValue',value:function __getValue() { return(this._a.__getValue()%this._modulus+this._modulus)%this._modulus; }},{key:'addListener',value:function addListener( callback){var _this2=this; if(!this._aListener){ this._aListener=this._a.addListener(function(){ for(var key in _this2._listeners){ _this2._listeners[key]({value:_this2.__getValue()}); } }); } var id=guid(); this._listeners[id]=callback; return id; }},{key:'removeListener',value:function removeListener( id){ delete this._listeners[id]; }},{key:'interpolate',value:function interpolate( config){ return new AnimatedInterpolation(this,Interpolation.create(config)); }},{key:'__attach',value:function __attach() { this._a.__addChild(this); }},{key:'__detach',value:function __detach() { this._a.__removeChild(this); }}]);return AnimatedModulo;}(AnimatedWithChildren); module.exports=AnimatedModulo; /***/ }), /* 169 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}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;} var AnimatedWithChildren=__webpack_require__(18); var Animated=__webpack_require__(9); var AnimatedValue=__webpack_require__(23); var AnimatedInterpolation=__webpack_require__(46); var Interpolation=__webpack_require__(36);var AnimatedMultiplication=function(_AnimatedWithChildren){_inherits(AnimatedMultiplication,_AnimatedWithChildren); function AnimatedMultiplication(a,b){_classCallCheck(this,AnimatedMultiplication);var _this=_possibleConstructorReturn(this,(AnimatedMultiplication.__proto__||Object.getPrototypeOf(AnimatedMultiplication)).call(this)); _this._a=typeof a==='number'?new AnimatedValue(a):a; _this._b=typeof b==='number'?new AnimatedValue(b):b; _this._listeners={};return _this; }_createClass(AnimatedMultiplication,[{key:'__getValue',value:function __getValue() { return this._a.__getValue()*this._b.__getValue(); }},{key:'addListener',value:function addListener( callback){var _this2=this; if(!this._aListener&&this._a.addListener){ this._aListener=this._a.addListener(function(){ for(var key in _this2._listeners){ _this2._listeners[key]({value:_this2.__getValue()}); } }); } if(!this._bListener&&this._b.addListener){ this._bListener=this._b.addListener(function(){ for(var key in _this2._listeners){ _this2._listeners[key]({value:_this2.__getValue()}); } }); } var id=guid(); this._listeners[id]=callback; return id; }},{key:'removeListener',value:function removeListener( id){ delete this._listeners[id]; }},{key:'interpolate',value:function interpolate( config){ return new AnimatedInterpolation(this,Interpolation.create(config)); }},{key:'__attach',value:function __attach() { this._a.__addChild(this); this._b.__addChild(this); }},{key:'__detach',value:function __detach() { this._a.__removeChild(this); this._b.__removeChild(this); }}]);return AnimatedMultiplication;}(AnimatedWithChildren); module.exports=AnimatedMultiplication; /***/ }), /* 170 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; 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;};var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}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;} var Animated=__webpack_require__(9); var AnimatedWithChildren=__webpack_require__(18); var AnimatedTransform=__webpack_require__(173); var FlattenStyle=__webpack_require__(102);var AnimatedStyle=function(_AnimatedWithChildren){_inherits(AnimatedStyle,_AnimatedWithChildren); function AnimatedStyle(style){_classCallCheck(this,AnimatedStyle);var _this=_possibleConstructorReturn(this,(AnimatedStyle.__proto__||Object.getPrototypeOf(AnimatedStyle)).call(this)); style=FlattenStyle.current(style)||{}; if(style.transform&&!(style.transform instanceof Animated)){ style=_extends({}, style,{ transform:new AnimatedTransform(style.transform)}); } _this._style=style;return _this; }_createClass(AnimatedStyle,[{key:'__getValue',value:function __getValue() { var style={}; for(var key in this._style){ var value=this._style[key]; if(value instanceof Animated){ style[key]=value.__getValue(); }else{ style[key]=value; } } return style; }},{key:'__getAnimatedValue',value:function __getAnimatedValue() { var style={}; for(var key in this._style){ var value=this._style[key]; if(value instanceof Animated){ style[key]=value.__getAnimatedValue(); } } return style; }},{key:'__attach',value:function __attach() { for(var key in this._style){ var value=this._style[key]; if(value instanceof Animated){ value.__addChild(this); } } }},{key:'__detach',value:function __detach() { for(var key in this._style){ var value=this._style[key]; if(value instanceof Animated){ value.__removeChild(this); } } }}]);return AnimatedStyle;}(AnimatedWithChildren); module.exports=AnimatedStyle; /***/ }), /* 171 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}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;} var Animated=__webpack_require__(9); var AnimatedWithChildren=__webpack_require__(18);var AnimatedTemplate=function(_AnimatedWithChildren){_inherits(AnimatedTemplate,_AnimatedWithChildren); function AnimatedTemplate(strings,values){_classCallCheck(this,AnimatedTemplate);var _this=_possibleConstructorReturn(this,(AnimatedTemplate.__proto__||Object.getPrototypeOf(AnimatedTemplate)).call(this)); _this._strings=strings; _this._values=values;return _this; }_createClass(AnimatedTemplate,[{key:'__transformValue',value:function __transformValue( value){ if(value instanceof Animated){ return value.__getValue(); }else{ return value; } }},{key:'__getValue',value:function __getValue() { var value=this._strings[0]; for(var i=0;i<this._values.length;++i){ value+=this.__transformValue(this._values[i])+this._strings[1+i]; } return value; }},{key:'__attach',value:function __attach() { for(var i=0;i<this._values.length;++i){ if(this._values[i]instanceof Animated){ this._values[i].__addChild(this); } } }},{key:'__detach',value:function __detach() { for(var i=0;i<this._values.length;++i){ if(this._values[i]instanceof Animated){ this._values[i].__removeChild(this); } } }}]);return AnimatedTemplate;}(AnimatedWithChildren); module.exports=AnimatedTemplate; /***/ }), /* 172 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; 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;};var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}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;} var Animated=__webpack_require__(9); var AnimatedValue=__webpack_require__(23);var AnimatedTracking=function(_Animated){_inherits(AnimatedTracking,_Animated); function AnimatedTracking( value, parent, animationClass, animationConfig, callback) {_classCallCheck(this,AnimatedTracking);var _this=_possibleConstructorReturn(this,(AnimatedTracking.__proto__||Object.getPrototypeOf(AnimatedTracking)).call(this)); _this._value=value; _this._parent=parent; _this._animationClass=animationClass; _this._animationConfig=animationConfig; _this._callback=callback; _this.__attach();return _this; }_createClass(AnimatedTracking,[{key:'__getValue',value:function __getValue() { return this._parent.__getValue(); }},{key:'__attach',value:function __attach() { this._parent.__addChild(this); }},{key:'__detach',value:function __detach() { this._parent.__removeChild(this); }},{key:'update',value:function update() { this._value.animate(new this._animationClass(_extends({}, this._animationConfig,{ toValue:this._animationConfig.toValue.__getValue()})), this._callback); }}]);return AnimatedTracking;}(Animated); module.exports=AnimatedTracking; /***/ }), /* 173 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}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;} var Animated=__webpack_require__(9); var AnimatedWithChildren=__webpack_require__(18);var AnimatedTransform=function(_AnimatedWithChildren){_inherits(AnimatedTransform,_AnimatedWithChildren); function AnimatedTransform(transforms){_classCallCheck(this,AnimatedTransform);var _this=_possibleConstructorReturn(this,(AnimatedTransform.__proto__||Object.getPrototypeOf(AnimatedTransform)).call(this)); _this._transforms=transforms;return _this; }_createClass(AnimatedTransform,[{key:'__getValue',value:function __getValue() { return this._transforms.map(function(transform){ var result={}; for(var key in transform){ var value=transform[key]; if(value instanceof Animated){ result[key]=value.__getValue(); }else{ result[key]=value; } } return result; }); }},{key:'__getAnimatedValue',value:function __getAnimatedValue() { return this._transforms.map(function(transform){ var result={}; for(var key in transform){ var value=transform[key]; if(value instanceof Animated){ result[key]=value.__getAnimatedValue(); }else{ result[key]=value; } } return result; }); }},{key:'__attach',value:function __attach() {var _this2=this; this._transforms.forEach(function(transform){ for(var key in transform){ var value=transform[key]; if(value instanceof Animated){ value.__addChild(_this2); } } }); }},{key:'__detach',value:function __detach() {var _this3=this; this._transforms.forEach(function(transform){ for(var key in transform){ var value=transform[key]; if(value instanceof Animated){ value.__removeChild(_this3); } } }); }}]);return AnimatedTransform;}(AnimatedWithChildren); module.exports=AnimatedTransform; /***/ }), /* 174 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}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;} var Animated=__webpack_require__(9); var AnimatedValue=__webpack_require__(23); var AnimatedWithChildren=__webpack_require__(18); var invariant=__webpack_require__(39); var guid=__webpack_require__(62);var AnimatedValueXY=function(_AnimatedWithChildren){_inherits(AnimatedValueXY,_AnimatedWithChildren); function AnimatedValueXY(valueIn){_classCallCheck(this,AnimatedValueXY);var _this=_possibleConstructorReturn(this,(AnimatedValueXY.__proto__||Object.getPrototypeOf(AnimatedValueXY)).call(this)); var value=valueIn||{x:0,y:0}; if(typeof value.x==='number'&&typeof value.y==='number'){ _this.x=new AnimatedValue(value.x); _this.y=new AnimatedValue(value.y); }else{ invariant( value.x instanceof AnimatedValue&& value.y instanceof AnimatedValue, 'AnimatedValueXY must be initalized with an object of numbers or '+ 'AnimatedValues.'); _this.x=value.x; _this.y=value.y; } _this._listeners={};return _this; }_createClass(AnimatedValueXY,[{key:'setValue',value:function setValue( value){ this.x.setValue(value.x); this.y.setValue(value.y); }},{key:'setOffset',value:function setOffset( offset){ this.x.setOffset(offset.x); this.y.setOffset(offset.y); }},{key:'flattenOffset',value:function flattenOffset() { this.x.flattenOffset(); this.y.flattenOffset(); }},{key:'__getValue',value:function __getValue() { return{ x:this.x.__getValue(), y:this.y.__getValue()}; }},{key:'stopAnimation',value:function stopAnimation( callback){ this.x.stopAnimation(); this.y.stopAnimation(); callback&&callback(this.__getValue()); }},{key:'addListener',value:function addListener( callback){var _this2=this; var id=guid(); var jointCallback=function jointCallback(_ref){var number=_ref.value; callback(_this2.__getValue()); }; this._listeners[id]={ x:this.x.addListener(jointCallback), y:this.y.addListener(jointCallback)}; return id; }},{key:'removeListener',value:function removeListener( id){ this.x.removeListener(this._listeners[id].x); this.y.removeListener(this._listeners[id].y); delete this._listeners[id]; }},{key:'getLayout',value:function getLayout() { return{ left:this.x, top:this.y}; }},{key:'getTranslateTransform',value:function getTranslateTransform() { return[ {translateX:this.x}, {translateY:this.y}]; }}]);return AnimatedValueXY;}(AnimatedWithChildren); module.exports=AnimatedValueXY; /***/ }), /* 175 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}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;} var Animation=__webpack_require__(35); var RequestAnimationFrame=__webpack_require__(48); var CancelAnimationFrame=__webpack_require__(47);var DecayAnimation=function(_Animation){_inherits(DecayAnimation,_Animation); function DecayAnimation( config) {_classCallCheck(this,DecayAnimation);var _this=_possibleConstructorReturn(this,(DecayAnimation.__proto__||Object.getPrototypeOf(DecayAnimation)).call(this)); _this._deceleration=config.deceleration!==undefined?config.deceleration:0.998; _this._velocity=config.velocity; _this.__isInteraction=config.isInteraction!==undefined?config.isInteraction:true;return _this; }_createClass(DecayAnimation,[{key:'start',value:function start( fromValue, onUpdate, onEnd) { this.__active=true; this._lastValue=fromValue; this._fromValue=fromValue; this._onUpdate=onUpdate; this.__onEnd=onEnd; this._startTime=Date.now(); this._animationFrame=RequestAnimationFrame.current(this.onUpdate.bind(this)); }},{key:'onUpdate',value:function onUpdate() { var now=Date.now(); var value=this._fromValue+ this._velocity/(1-this._deceleration)*( 1-Math.exp(-(1-this._deceleration)*(now-this._startTime))); this._onUpdate(value); if(Math.abs(this._lastValue-value)<0.1){ this.__debouncedOnEnd({finished:true}); return; } this._lastValue=value; if(this.__active){ this._animationFrame=RequestAnimationFrame.current(this.onUpdate.bind(this)); } }},{key:'stop',value:function stop() { this.__active=false; CancelAnimationFrame.current(this._animationFrame); this.__debouncedOnEnd({finished:false}); }}]);return DecayAnimation;}(Animation); module.exports=DecayAnimation; /***/ }), /* 176 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function SetPolyfill(){ this._cache=[]; } SetPolyfill.prototype.add=function(e){ if(this._cache.indexOf(e)===-1){ this._cache.push(e); } }; SetPolyfill.prototype.forEach=function(cb){ this._cache.forEach(cb); }; module.exports=SetPolyfill; /***/ }), /* 177 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}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;} var Animation=__webpack_require__(35); var AnimatedValue=__webpack_require__(23); var RequestAnimationFrame=__webpack_require__(48); var CancelAnimationFrame=__webpack_require__(47); var invariant=__webpack_require__(39); var SpringConfig=__webpack_require__(178); function withDefault(value,defaultValue){ if(value===undefined||value===null){ return defaultValue; } return value; }var SpringAnimation=function(_Animation){_inherits(SpringAnimation,_Animation); function SpringAnimation( config) {_classCallCheck(this,SpringAnimation);var _this=_possibleConstructorReturn(this,(SpringAnimation.__proto__||Object.getPrototypeOf(SpringAnimation)).call(this)); _this._overshootClamping=withDefault(config.overshootClamping,false); _this._restDisplacementThreshold=withDefault(config.restDisplacementThreshold,0.001); _this._restSpeedThreshold=withDefault(config.restSpeedThreshold,0.001); _this._initialVelocity=config.velocity; _this._lastVelocity=withDefault(config.velocity,0); _this._toValue=config.toValue; _this.__isInteraction=config.isInteraction!==undefined?config.isInteraction:true; var springConfig; if(config.bounciness!==undefined||config.speed!==undefined){ invariant( config.tension===undefined&&config.friction===undefined, 'You can only define bounciness/speed or tension/friction but not both'); springConfig=SpringConfig.fromBouncinessAndSpeed( withDefault(config.bounciness,8), withDefault(config.speed,12)); }else{ springConfig=SpringConfig.fromOrigamiTensionAndFriction( withDefault(config.tension,40), withDefault(config.friction,7)); } _this._tension=springConfig.tension; _this._friction=springConfig.friction;return _this; }_createClass(SpringAnimation,[{key:'start',value:function start( fromValue, onUpdate, onEnd, previousAnimation) { this.__active=true; this._startPosition=fromValue; this._lastPosition=this._startPosition; this._onUpdate=onUpdate; this.__onEnd=onEnd; this._lastTime=Date.now(); if(previousAnimation instanceof SpringAnimation){ var internalState=previousAnimation.getInternalState(); this._lastPosition=internalState.lastPosition; this._lastVelocity=internalState.lastVelocity; this._lastTime=internalState.lastTime; } if(this._initialVelocity!==undefined&& this._initialVelocity!==null){ this._lastVelocity=this._initialVelocity; } this.onUpdate(); }},{key:'getInternalState',value:function getInternalState() { return{ lastPosition:this._lastPosition, lastVelocity:this._lastVelocity, lastTime:this._lastTime}; }},{key:'onUpdate',value:function onUpdate() { var position=this._lastPosition; var velocity=this._lastVelocity; var tempPosition=this._lastPosition; var tempVelocity=this._lastVelocity; var MAX_STEPS=64; var now=Date.now(); if(now>this._lastTime+MAX_STEPS){ now=this._lastTime+MAX_STEPS; } var TIMESTEP_MSEC=1; var numSteps=Math.floor((now-this._lastTime)/TIMESTEP_MSEC); for(var i=0;i<numSteps;++i){ var step=TIMESTEP_MSEC/1000; var aVelocity=velocity; var aAcceleration=this._tension*(this._toValue-tempPosition)-this._friction*tempVelocity; var tempPosition=position+aVelocity*step/2; var tempVelocity=velocity+aAcceleration*step/2; var bVelocity=tempVelocity; var bAcceleration=this._tension*(this._toValue-tempPosition)-this._friction*tempVelocity; tempPosition=position+bVelocity*step/2; tempVelocity=velocity+bAcceleration*step/2; var cVelocity=tempVelocity; var cAcceleration=this._tension*(this._toValue-tempPosition)-this._friction*tempVelocity; tempPosition=position+cVelocity*step/2; tempVelocity=velocity+cAcceleration*step/2; var dVelocity=tempVelocity; var dAcceleration=this._tension*(this._toValue-tempPosition)-this._friction*tempVelocity; tempPosition=position+cVelocity*step/2; tempVelocity=velocity+cAcceleration*step/2; var dxdt=(aVelocity+2*(bVelocity+cVelocity)+dVelocity)/6; var dvdt=(aAcceleration+2*(bAcceleration+cAcceleration)+dAcceleration)/6; position+=dxdt*step; velocity+=dvdt*step; } this._lastTime=now; this._lastPosition=position; this._lastVelocity=velocity; this._onUpdate(position); if(!this.__active){ return; } var isOvershooting=false; if(this._overshootClamping&&this._tension!==0){ if(this._startPosition<this._toValue){ isOvershooting=position>this._toValue; }else{ isOvershooting=position<this._toValue; } } var isVelocity=Math.abs(velocity)<=this._restSpeedThreshold; var isDisplacement=true; if(this._tension!==0){ isDisplacement=Math.abs(this._toValue-position)<=this._restDisplacementThreshold; } if(isOvershooting||isVelocity&&isDisplacement){ if(this._tension!==0){ this._onUpdate(this._toValue); } this.__debouncedOnEnd({finished:true}); return; } this._animationFrame=RequestAnimationFrame.current(this.onUpdate.bind(this)); }},{key:'stop',value:function stop() { this.__active=false; CancelAnimationFrame.current(this._animationFrame); this.__debouncedOnEnd({finished:false}); }}]);return SpringAnimation;}(Animation); module.exports=SpringAnimation; /***/ }), /* 178 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function tensionFromOrigamiValue(oValue){ return(oValue-30)*3.62+194; } function frictionFromOrigamiValue(oValue){ return(oValue-8)*3+25; } function fromOrigamiTensionAndFriction( tension, friction) { return{ tension:tensionFromOrigamiValue(tension), friction:frictionFromOrigamiValue(friction)}; } function fromBouncinessAndSpeed( bounciness, speed) { function normalize(value,startValue,endValue){ return(value-startValue)/(endValue-startValue); } function projectNormal(n,start,end){ return start+n*(end-start); } function linearInterpolation(t,start,end){ return t*end+(1-t)*start; } function quadraticOutInterpolation(t,start,end){ return linearInterpolation(2*t-t*t,start,end); } function b3Friction1(x){ return 0.0007*Math.pow(x,3)- 0.031*Math.pow(x,2)+0.64*x+1.28; } function b3Friction2(x){ return 0.000044*Math.pow(x,3)- 0.006*Math.pow(x,2)+0.36*x+2; } function b3Friction3(x){ return 0.00000045*Math.pow(x,3)- 0.000332*Math.pow(x,2)+0.1078*x+5.84; } function b3Nobounce(tension){ if(tension<=18){ return b3Friction1(tension); }else if(tension>18&&tension<=44){ return b3Friction2(tension); }else{ return b3Friction3(tension); } } var b=normalize(bounciness/1.7,0,20); b=projectNormal(b,0,0.8); var s=normalize(speed/1.7,0,20); var bouncyTension=projectNormal(s,0.5,200); var bouncyFriction=quadraticOutInterpolation( b, b3Nobounce(bouncyTension), 0.01); return{ tension:tensionFromOrigamiValue(bouncyTension), friction:frictionFromOrigamiValue(bouncyFriction)}; } module.exports={ fromOrigamiTensionAndFriction:fromOrigamiTensionAndFriction, fromBouncinessAndSpeed:fromBouncinessAndSpeed}; /***/ }), /* 179 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}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;} var Animation=__webpack_require__(35); var AnimatedValue=__webpack_require__(23); var Easing=__webpack_require__(100); var RequestAnimationFrame=__webpack_require__(48); var CancelAnimationFrame=__webpack_require__(47); var easeInOut=Easing.inOut(Easing.ease);var TimingAnimation=function(_Animation){_inherits(TimingAnimation,_Animation); function TimingAnimation( config) {_classCallCheck(this,TimingAnimation);var _this=_possibleConstructorReturn(this,(TimingAnimation.__proto__||Object.getPrototypeOf(TimingAnimation)).call(this)); _this._toValue=config.toValue; _this._easing=config.easing!==undefined?config.easing:easeInOut; _this._duration=config.duration!==undefined?config.duration:500; _this._delay=config.delay!==undefined?config.delay:0; _this.__isInteraction=config.isInteraction!==undefined?config.isInteraction:true;return _this; }_createClass(TimingAnimation,[{key:'start',value:function start( fromValue, onUpdate, onEnd) {var _this2=this; this.__active=true; this._fromValue=fromValue; this._onUpdate=onUpdate; this.__onEnd=onEnd; var start=function start(){ if(_this2._duration===0){ _this2._onUpdate(_this2._toValue); _this2.__debouncedOnEnd({finished:true}); }else{ _this2._startTime=Date.now(); _this2._animationFrame=RequestAnimationFrame.current(_this2.onUpdate.bind(_this2)); } }; if(this._delay){ this._timeout=setTimeout(start,this._delay); }else{ start(); } }},{key:'onUpdate',value:function onUpdate() { var now=Date.now(); if(now>=this._startTime+this._duration){ if(this._duration===0){ this._onUpdate(this._toValue); }else{ this._onUpdate( this._fromValue+this._easing(1)*(this._toValue-this._fromValue)); } this.__debouncedOnEnd({finished:true}); return; } this._onUpdate( this._fromValue+ this._easing((now-this._startTime)/this._duration)*( this._toValue-this._fromValue)); if(this.__active){ this._animationFrame=RequestAnimationFrame.current(this.onUpdate.bind(this)); } }},{key:'stop',value:function stop() { this.__active=false; clearTimeout(this._timeout); CancelAnimationFrame.current(this._animationFrame); this.__debouncedOnEnd({finished:false}); }}]);return TimingAnimation;}(Animation); module.exports=TimingAnimation; /***/ }), /* 180 */ /***/ (function(module, exports) { var NEWTON_ITERATIONS=4; var NEWTON_MIN_SLOPE=0.001; var SUBDIVISION_PRECISION=0.0000001; var SUBDIVISION_MAX_ITERATIONS=10; var kSplineTableSize=11; var kSampleStepSize=1.0/(kSplineTableSize-1.0); var float32ArraySupported=typeof Float32Array==='function'; function A(aA1,aA2){return 1.0-3.0*aA2+3.0*aA1;} function B(aA1,aA2){return 3.0*aA2-6.0*aA1;} function C(aA1){return 3.0*aA1;} function calcBezier(aT,aA1,aA2){return((A(aA1,aA2)*aT+B(aA1,aA2))*aT+C(aA1))*aT;} function getSlope(aT,aA1,aA2){return 3.0*A(aA1,aA2)*aT*aT+2.0*B(aA1,aA2)*aT+C(aA1);} function binarySubdivide(aX,aA,aB,mX1,mX2){ var currentX,currentT,i=0; do{ currentT=aA+(aB-aA)/2.0; currentX=calcBezier(currentT,mX1,mX2)-aX; if(currentX>0.0){ aB=currentT; }else{ aA=currentT; } }while(Math.abs(currentX)>SUBDIVISION_PRECISION&&++i<SUBDIVISION_MAX_ITERATIONS); return currentT; } function newtonRaphsonIterate(aX,aGuessT,mX1,mX2){ for(var i=0;i<NEWTON_ITERATIONS;++i){ var currentSlope=getSlope(aGuessT,mX1,mX2); if(currentSlope===0.0){ return aGuessT; } var currentX=calcBezier(aGuessT,mX1,mX2)-aX; aGuessT-=currentX/currentSlope; } return aGuessT; } module.exports=function bezier(mX1,mY1,mX2,mY2){ if(!(0<=mX1&&mX1<=1&&0<=mX2&&mX2<=1)){ throw new Error('bezier x values must be in [0, 1] range'); } var sampleValues=float32ArraySupported?new Float32Array(kSplineTableSize):new Array(kSplineTableSize); if(mX1!==mY1||mX2!==mY2){ for(var i=0;i<kSplineTableSize;++i){ sampleValues[i]=calcBezier(i*kSampleStepSize,mX1,mX2); } } function getTForX(aX){ var intervalStart=0.0; var currentSample=1; var lastSample=kSplineTableSize-1; for(;currentSample!==lastSample&&sampleValues[currentSample]<=aX;++currentSample){ intervalStart+=kSampleStepSize; } --currentSample; var dist=(aX-sampleValues[currentSample])/(sampleValues[currentSample+1]-sampleValues[currentSample]); var guessForT=intervalStart+dist*kSampleStepSize; var initialSlope=getSlope(guessForT,mX1,mX2); if(initialSlope>=NEWTON_MIN_SLOPE){ return newtonRaphsonIterate(aX,guessForT,mX1,mX2); }else if(initialSlope===0.0){ return guessForT; }else{ return binarySubdivide(aX,intervalStart,intervalStart+kSampleStepSize,mX1,mX2); } } return function BezierEasing(x){ if(mX1===mY1&&mX2===mY2){ return x; } if(x===0){ return 0; } if(x===1){ return 1; } return calcBezier(getTForX(x),mY1,mY2); }; }; /***/ }), /* 181 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; 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;};var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}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;} var React=__webpack_require__(5); var AnimatedProps=__webpack_require__(99); var ApplyAnimatedValues=__webpack_require__(101); function createAnimatedComponent(Component){ var refName='node';var AnimatedComponent=function(_React$Component){_inherits(AnimatedComponent,_React$Component);function AnimatedComponent(){_classCallCheck(this,AnimatedComponent);return _possibleConstructorReturn(this,(AnimatedComponent.__proto__||Object.getPrototypeOf(AnimatedComponent)).apply(this,arguments));}_createClass(AnimatedComponent,[{key:'componentWillUnmount',value:function componentWillUnmount() { this._propsAnimated&&this._propsAnimated.__detach(); }},{key:'setNativeProps',value:function setNativeProps( props){ var didUpdate=ApplyAnimatedValues.current(this.refs[refName],props,this); if(didUpdate===false){ this.forceUpdate(); } }},{key:'componentWillMount',value:function componentWillMount() { this.attachProps(this.props); }},{key:'attachProps',value:function attachProps( nextProps){var _this2=this; var oldPropsAnimated=this._propsAnimated; var callback=function callback(){ var didUpdate=ApplyAnimatedValues.current(_this2.refs[refName],_this2._propsAnimated.__getAnimatedValue(),_this2); if(didUpdate===false){ _this2.forceUpdate(); } }; this._propsAnimated=new AnimatedProps( nextProps, callback); oldPropsAnimated&&oldPropsAnimated.__detach(); }},{key:'componentWillReceiveProps',value:function componentWillReceiveProps( nextProps){ this.attachProps(nextProps); }},{key:'render',value:function render() { return( React.createElement(Component,_extends({}, this._propsAnimated.__getValue(),{ ref:refName}))); }}]);return AnimatedComponent;}(React.Component); AnimatedComponent.propTypes={ style:function style(props,propName,componentName){ if(!Component.propTypes){ return; } }}; return AnimatedComponent; } module.exports=createAnimatedComponent; /***/ }), /* 182 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; 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;}; var invariant=__webpack_require__(39); var Animated=__webpack_require__(9); var AnimatedValue=__webpack_require__(23); var AnimatedValueXY=__webpack_require__(174); var AnimatedAddition=__webpack_require__(167); var AnimatedMultiplication=__webpack_require__(169); var AnimatedModulo=__webpack_require__(168); var AnimatedTemplate=__webpack_require__(171); var AnimatedTracking=__webpack_require__(172); var isAnimated=__webpack_require__(183); var Animation=__webpack_require__(35); var TimingAnimation=__webpack_require__(179); var DecayAnimation=__webpack_require__(175); var SpringAnimation=__webpack_require__(177); var maybeVectorAnim=function maybeVectorAnim( value, config, anim) { if(value instanceof AnimatedValueXY){ var configX=_extends({},config); var configY=_extends({},config); for(var key in config){var _config$key= config[key],x=_config$key.x,y=_config$key.y; if(x!==undefined&&y!==undefined){ configX[key]=x; configY[key]=y; } } var aX=anim(value.x,configX); var aY=anim(value.y,configY); return parallel([aX,aY],{stopTogether:false}); } return null; }; var spring=function spring( value, config) { return maybeVectorAnim(value,config,spring)||{ start:function start(callback){ var singleValue=value; var singleConfig=config; singleValue.stopTracking(); if(config.toValue instanceof Animated){ singleValue.track(new AnimatedTracking( singleValue, config.toValue, SpringAnimation, singleConfig, callback)); }else{ singleValue.animate(new SpringAnimation(singleConfig),callback); } }, stop:function stop(){ value.stopAnimation(); }}; }; var timing=function timing( value, config) { return maybeVectorAnim(value,config,timing)||{ start:function start(callback){ var singleValue=value; var singleConfig=config; singleValue.stopTracking(); if(config.toValue instanceof Animated){ singleValue.track(new AnimatedTracking( singleValue, config.toValue, TimingAnimation, singleConfig, callback)); }else{ singleValue.animate(new TimingAnimation(singleConfig),callback); } }, stop:function stop(){ value.stopAnimation(); }}; }; var decay=function decay( value, config) { return maybeVectorAnim(value,config,decay)||{ start:function start(callback){ var singleValue=value; var singleConfig=config; singleValue.stopTracking(); singleValue.animate(new DecayAnimation(singleConfig),callback); }, stop:function stop(){ value.stopAnimation(); }}; }; var sequence=function sequence( animations) { var current=0; return{ start:function start(callback){ var onComplete=function onComplete(result){ if(!result.finished){ callback&&callback(result); return; } current++; if(current===animations.length){ callback&&callback(result); return; } animations[current].start(onComplete); }; if(animations.length===0){ callback&&callback({finished:true}); }else{ animations[current].start(onComplete); } }, stop:function stop(){ if(current<animations.length){ animations[current].stop(); } }}; }; var parallel=function parallel( animations, config) { var doneCount=0; var hasEnded={}; var stopTogether=!(config&&config.stopTogether===false); var result={ start:function start(callback){ if(doneCount===animations.length){ callback&&callback({finished:true}); return; } animations.forEach(function(animation,idx){ var cb=function cb(endResult){ hasEnded[idx]=true; doneCount++; if(doneCount===animations.length){ doneCount=0; callback&&callback(endResult); return; } if(!endResult.finished&&stopTogether){ result.stop(); } }; if(!animation){ cb({finished:true}); }else{ animation.start(cb); } }); }, stop:function stop(){ animations.forEach(function(animation,idx){ !hasEnded[idx]&&animation.stop(); hasEnded[idx]=true; }); }}; return result; }; var delay=function delay(time){ return timing(new AnimatedValue(0),{toValue:0,delay:time,duration:0}); }; var stagger=function stagger( time, animations) { return parallel(animations.map(function(animation,i){ return sequence([ delay(time*i), animation]); })); }; var event=function event( argMapping, config) { return function(){for(var _len=arguments.length,args=Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];} var traverse=function traverse(recMapping,recEvt,key){ if(typeof recEvt==='number'){ invariant( recMapping instanceof AnimatedValue, 'Bad mapping of type '+typeof recMapping+' for key '+key+ ', event value must map to AnimatedValue'); recMapping.setValue(recEvt); return; } invariant( typeof recMapping==='object', 'Bad mapping of type '+typeof recMapping+' for key '+key); invariant( typeof recEvt==='object', 'Bad event of type '+typeof recEvt+' for key '+key); for(var key in recMapping){ traverse(recMapping[key],recEvt[key],key); } }; argMapping.forEach(function(mapping,idx){ traverse(mapping,args[idx],'arg'+idx); }); if(config&&config.listener){ config.listener.apply(null,args); } }; }; module.exports={ Value:AnimatedValue, ValueXY:AnimatedValueXY, decay:decay, timing:timing, spring:spring, add:function add(a,b){ return new AnimatedAddition(a,b); }, multiply:function multiply(a,b){ return new AnimatedMultiplication(a,b); }, modulo:function modulo(a,modulus){ return new AnimatedModulo(a,modulus); }, template:function template(strings){for(var _len2=arguments.length,values=Array(_len2>1?_len2-1:0),_key2=1;_key2<_len2;_key2++){values[_key2-1]=arguments[_key2];} return new AnimatedTemplate(strings,values); }, delay:delay, sequence:sequence, parallel:parallel, stagger:stagger, event:event, isAnimated:isAnimated, createAnimatedComponent:__webpack_require__(181), inject:{ ApplyAnimatedValues:__webpack_require__(101).inject, InteractionManager:__webpack_require__(103).inject, FlattenStyle:__webpack_require__(102).inject, RequestAnimationFrame:__webpack_require__(48).inject, CancelAnimationFrame:__webpack_require__(47).inject}, __PropsOnlyForTests:__webpack_require__(99)}; /***/ }), /* 183 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var Animated=__webpack_require__(9); function isAnimated(obj){ return obj instanceof Animated; } module.exports=isAnimated; /***/ }), /* 184 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _assign = __webpack_require__(6); var emptyObject = __webpack_require__(38); var _invariant = __webpack_require__(0); if (true) { var warning = __webpack_require__(1); } var MIXINS_KEY = 'mixins'; // Helper function to allow the creation of anonymous functions which do not // have .name set to the name of the variable being assigned to. function identity(fn) { return fn; } var ReactPropTypeLocationNames; if (true) { ReactPropTypeLocationNames = { prop: 'prop', context: 'context', childContext: 'child context', }; } else { ReactPropTypeLocationNames = {}; } function factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) { /** * Policies that describe methods in `ReactClassInterface`. */ var injectedMixins = []; /** * Composite components are higher-level components that compose other composite * or host components. * * To create a new type of `ReactClass`, pass a specification of * your new class to `React.createClass`. The only requirement of your class * specification is that you implement a `render` method. * * var MyComponent = React.createClass({ * render: function() { * return <div>Hello World</div>; * } * }); * * The class specification supports a specific protocol of methods that have * special meaning (e.g. `render`). See `ReactClassInterface` for * more the comprehensive protocol. Any other properties and methods in the * class specification will be available on the prototype. * * @interface ReactClassInterface * @internal */ var ReactClassInterface = { /** * An array of Mixin objects to include when defining your component. * * @type {array} * @optional */ mixins: 'DEFINE_MANY', /** * An object containing properties and methods that should be defined on * the component's constructor instead of its prototype (static methods). * * @type {object} * @optional */ statics: 'DEFINE_MANY', /** * Definition of prop types for this component. * * @type {object} * @optional */ propTypes: 'DEFINE_MANY', /** * Definition of context types for this component. * * @type {object} * @optional */ contextTypes: 'DEFINE_MANY', /** * Definition of context types this component sets for its children. * * @type {object} * @optional */ childContextTypes: 'DEFINE_MANY', // ==== Definition methods ==== /** * Invoked when the component is mounted. Values in the mapping will be set on * `this.props` if that prop is not specified (i.e. using an `in` check). * * This method is invoked before `getInitialState` and therefore cannot rely * on `this.state` or use `this.setState`. * * @return {object} * @optional */ getDefaultProps: 'DEFINE_MANY_MERGED', /** * Invoked once before the component is mounted. The return value will be used * as the initial value of `this.state`. * * getInitialState: function() { * return { * isOn: false, * fooBaz: new BazFoo() * } * } * * @return {object} * @optional */ getInitialState: 'DEFINE_MANY_MERGED', /** * @return {object} * @optional */ getChildContext: 'DEFINE_MANY_MERGED', /** * Uses props from `this.props` and state from `this.state` to render the * structure of the component. * * No guarantees are made about when or how often this method is invoked, so * it must not have side effects. * * render: function() { * var name = this.props.name; * return <div>Hello, {name}!</div>; * } * * @return {ReactComponent} * @nosideeffects * @required */ render: 'DEFINE_ONCE', // ==== Delegate methods ==== /** * Invoked when the component is initially created and about to be mounted. * This may have side effects, but any external subscriptions or data created * by this method must be cleaned up in `componentWillUnmount`. * * @optional */ componentWillMount: 'DEFINE_MANY', /** * Invoked when the component has been mounted and has a DOM representation. * However, there is no guarantee that the DOM node is in the document. * * Use this as an opportunity to operate on the DOM when the component has * been mounted (initialized and rendered) for the first time. * * @param {DOMElement} rootNode DOM element representing the component. * @optional */ componentDidMount: 'DEFINE_MANY', /** * Invoked before the component receives new props. * * Use this as an opportunity to react to a prop transition by updating the * state using `this.setState`. Current props are accessed via `this.props`. * * componentWillReceiveProps: function(nextProps, nextContext) { * this.setState({ * likesIncreasing: nextProps.likeCount > this.props.likeCount * }); * } * * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop * transition may cause a state change, but the opposite is not true. If you * need it, you are probably looking for `componentWillUpdate`. * * @param {object} nextProps * @optional */ componentWillReceiveProps: 'DEFINE_MANY', /** * Invoked while deciding if the component should be updated as a result of * receiving new props, state and/or context. * * Use this as an opportunity to `return false` when you're certain that the * transition to the new props/state/context will not require a component * update. * * shouldComponentUpdate: function(nextProps, nextState, nextContext) { * return !equal(nextProps, this.props) || * !equal(nextState, this.state) || * !equal(nextContext, this.context); * } * * @param {object} nextProps * @param {?object} nextState * @param {?object} nextContext * @return {boolean} True if the component should update. * @optional */ shouldComponentUpdate: 'DEFINE_ONCE', /** * Invoked when the component is about to update due to a transition from * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState` * and `nextContext`. * * Use this as an opportunity to perform preparation before an update occurs. * * NOTE: You **cannot** use `this.setState()` in this method. * * @param {object} nextProps * @param {?object} nextState * @param {?object} nextContext * @param {ReactReconcileTransaction} transaction * @optional */ componentWillUpdate: 'DEFINE_MANY', /** * Invoked when the component's DOM representation has been updated. * * Use this as an opportunity to operate on the DOM when the component has * been updated. * * @param {object} prevProps * @param {?object} prevState * @param {?object} prevContext * @param {DOMElement} rootNode DOM element representing the component. * @optional */ componentDidUpdate: 'DEFINE_MANY', /** * Invoked when the component is about to be removed from its parent and have * its DOM representation destroyed. * * Use this as an opportunity to deallocate any external resources. * * NOTE: There is no `componentDidUnmount` since your component will have been * destroyed by that point. * * @optional */ componentWillUnmount: 'DEFINE_MANY', // ==== Advanced methods ==== /** * Updates the component's currently mounted DOM representation. * * By default, this implements React's rendering and reconciliation algorithm. * Sophisticated clients may wish to override this. * * @param {ReactReconcileTransaction} transaction * @internal * @overridable */ updateComponent: 'OVERRIDE_BASE' }; /** * Mapping from class specification keys to special processing functions. * * Although these are declared like instance properties in the specification * when defining classes using `React.createClass`, they are actually static * and are accessible on the constructor instead of the prototype. Despite * being static, they must be defined outside of the "statics" key under * which all other static methods are defined. */ var RESERVED_SPEC_KEYS = { displayName: function (Constructor, displayName) { Constructor.displayName = displayName; }, mixins: function (Constructor, mixins) { if (mixins) { for (var i = 0; i < mixins.length; i++) { mixSpecIntoComponent(Constructor, mixins[i]); } } }, childContextTypes: function (Constructor, childContextTypes) { if (true) { validateTypeDef(Constructor, childContextTypes, 'childContext'); } Constructor.childContextTypes = _assign({}, Constructor.childContextTypes, childContextTypes); }, contextTypes: function (Constructor, contextTypes) { if (true) { validateTypeDef(Constructor, contextTypes, 'context'); } Constructor.contextTypes = _assign({}, Constructor.contextTypes, contextTypes); }, /** * Special case getDefaultProps which should move into statics but requires * automatic merging. */ getDefaultProps: function (Constructor, getDefaultProps) { if (Constructor.getDefaultProps) { Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, getDefaultProps); } else { Constructor.getDefaultProps = getDefaultProps; } }, propTypes: function (Constructor, propTypes) { if (true) { validateTypeDef(Constructor, propTypes, 'prop'); } Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes); }, statics: function (Constructor, statics) { mixStaticSpecIntoComponent(Constructor, statics); }, autobind: function () {} }; function validateTypeDef(Constructor, typeDef, location) { for (var propName in typeDef) { if (typeDef.hasOwnProperty(propName)) { // use a warning instead of an _invariant so components // don't show up in prod but only in __DEV__ true ? warning(typeof typeDef[propName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', Constructor.displayName || 'ReactClass', ReactPropTypeLocationNames[location], propName) : void 0; } } } function validateMethodOverride(isAlreadyDefined, name) { var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null; // Disallow overriding of base class methods unless explicitly allowed. if (ReactClassMixin.hasOwnProperty(name)) { _invariant(specPolicy === 'OVERRIDE_BASE', 'ReactClassInterface: You are attempting to override ' + '`%s` from your class specification. Ensure that your method names ' + 'do not overlap with React methods.', name); } // Disallow defining methods more than once unless explicitly allowed. if (isAlreadyDefined) { _invariant(specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED', 'ReactClassInterface: You are attempting to define ' + '`%s` on your component more than once. This conflict may be due ' + 'to a mixin.', name); } } /** * Mixin helper which handles policy validation and reserved * specification keys when building React classes. */ function mixSpecIntoComponent(Constructor, spec) { if (!spec) { if (true) { var typeofSpec = typeof spec; var isMixinValid = typeofSpec === 'object' && spec !== null; true ? warning(isMixinValid, '%s: You\'re attempting to include a mixin that is either null ' + 'or not an object. Check the mixins included by the component, ' + 'as well as any mixins they include themselves. ' + 'Expected object but got %s.', Constructor.displayName || 'ReactClass', spec === null ? null : typeofSpec) : void 0; } return; } _invariant(typeof spec !== 'function', 'ReactClass: You\'re attempting to ' + 'use a component class or function as a mixin. Instead, just use a ' + 'regular object.'); _invariant(!isValidElement(spec), 'ReactClass: You\'re attempting to ' + 'use a component as a mixin. Instead, just use a regular object.'); var proto = Constructor.prototype; var autoBindPairs = proto.__reactAutoBindPairs; // By handling mixins before any other properties, we ensure the same // chaining order is applied to methods with DEFINE_MANY policy, whether // mixins are listed before or after these methods in the spec. if (spec.hasOwnProperty(MIXINS_KEY)) { RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins); } for (var name in spec) { if (!spec.hasOwnProperty(name)) { continue; } if (name === MIXINS_KEY) { // We have already handled mixins in a special case above. continue; } var property = spec[name]; var isAlreadyDefined = proto.hasOwnProperty(name); validateMethodOverride(isAlreadyDefined, name); if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) { RESERVED_SPEC_KEYS[name](Constructor, property); } else { // Setup methods on prototype: // The following member methods should not be automatically bound: // 1. Expected ReactClass methods (in the "interface"). // 2. Overridden methods (that were mixed in). var isReactClassMethod = ReactClassInterface.hasOwnProperty(name); var isFunction = typeof property === 'function'; var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false; if (shouldAutoBind) { autoBindPairs.push(name, property); proto[name] = property; } else { if (isAlreadyDefined) { var specPolicy = ReactClassInterface[name]; // These cases should already be caught by validateMethodOverride. _invariant(isReactClassMethod && (specPolicy === 'DEFINE_MANY_MERGED' || specPolicy === 'DEFINE_MANY'), 'ReactClass: Unexpected spec policy %s for key %s ' + 'when mixing in component specs.', specPolicy, name); // For methods which are defined more than once, call the existing // methods before calling the new property, merging if appropriate. if (specPolicy === 'DEFINE_MANY_MERGED') { proto[name] = createMergedResultFunction(proto[name], property); } else if (specPolicy === 'DEFINE_MANY') { proto[name] = createChainedFunction(proto[name], property); } } else { proto[name] = property; if (true) { // Add verbose displayName to the function, which helps when looking // at profiling tools. if (typeof property === 'function' && spec.displayName) { proto[name].displayName = spec.displayName + '_' + name; } } } } } } } function mixStaticSpecIntoComponent(Constructor, statics) { if (!statics) { return; } for (var name in statics) { var property = statics[name]; if (!statics.hasOwnProperty(name)) { continue; } var isReserved = name in RESERVED_SPEC_KEYS; _invariant(!isReserved, 'ReactClass: You are attempting to define a reserved ' + 'property, `%s`, that shouldn\'t be on the "statics" key. Define it ' + 'as an instance property instead; it will still be accessible on the ' + 'constructor.', name); var isInherited = name in Constructor; _invariant(!isInherited, 'ReactClass: You are attempting to define ' + '`%s` on your component more than once. This conflict may be ' + 'due to a mixin.', name); Constructor[name] = property; } } /** * Merge two objects, but throw if both contain the same key. * * @param {object} one The first object, which is mutated. * @param {object} two The second object * @return {object} one after it has been mutated to contain everything in two. */ function mergeIntoWithNoDuplicateKeys(one, two) { _invariant(one && two && typeof one === 'object' && typeof two === 'object', 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'); for (var key in two) { if (two.hasOwnProperty(key)) { _invariant(one[key] === undefined, 'mergeIntoWithNoDuplicateKeys(): ' + 'Tried to merge two objects with the same key: `%s`. This conflict ' + 'may be due to a mixin; in particular, this may be caused by two ' + 'getInitialState() or getDefaultProps() methods returning objects ' + 'with clashing keys.', key); one[key] = two[key]; } } return one; } /** * Creates a function that invokes two functions and merges their return values. * * @param {function} one Function to invoke first. * @param {function} two Function to invoke second. * @return {function} Function that invokes the two argument functions. * @private */ function createMergedResultFunction(one, two) { return function mergedResult() { var a = one.apply(this, arguments); var b = two.apply(this, arguments); if (a == null) { return b; } else if (b == null) { return a; } var c = {}; mergeIntoWithNoDuplicateKeys(c, a); mergeIntoWithNoDuplicateKeys(c, b); return c; }; } /** * Creates a function that invokes two functions and ignores their return vales. * * @param {function} one Function to invoke first. * @param {function} two Function to invoke second. * @return {function} Function that invokes the two argument functions. * @private */ function createChainedFunction(one, two) { return function chainedFunction() { one.apply(this, arguments); two.apply(this, arguments); }; } /** * Binds a method to the component. * * @param {object} component Component whose method is going to be bound. * @param {function} method Method to be bound. * @return {function} The bound method. */ function bindAutoBindMethod(component, method) { var boundMethod = method.bind(component); if (true) { boundMethod.__reactBoundContext = component; boundMethod.__reactBoundMethod = method; boundMethod.__reactBoundArguments = null; var componentName = component.constructor.displayName; var _bind = boundMethod.bind; boundMethod.bind = function (newThis) { for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } // User is trying to bind() an autobound method; we effectively will // ignore the value of "this" that the user is trying to use, so // let's warn. if (newThis !== component && newThis !== null) { true ? warning(false, 'bind(): React component methods may only be bound to the ' + 'component instance. See %s', componentName) : void 0; } else if (!args.length) { true ? warning(false, '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 %s', componentName) : void 0; return boundMethod; } var reboundMethod = _bind.apply(boundMethod, arguments); reboundMethod.__reactBoundContext = component; reboundMethod.__reactBoundMethod = method; reboundMethod.__reactBoundArguments = args; return reboundMethod; }; } return boundMethod; } /** * Binds all auto-bound methods in a component. * * @param {object} component Component whose method is going to be bound. */ function bindAutoBindMethods(component) { var pairs = component.__reactAutoBindPairs; for (var i = 0; i < pairs.length; i += 2) { var autoBindKey = pairs[i]; var method = pairs[i + 1]; component[autoBindKey] = bindAutoBindMethod(component, method); } } var IsMountedMixin = { componentDidMount: function () { this.__isMounted = true; }, componentWillUnmount: function () { this.__isMounted = false; } }; /** * Add more to the ReactClass base class. These are all legacy features and * therefore not already part of the modern ReactComponent. */ var ReactClassMixin = { /** * TODO: This will be deprecated because state should always keep a consistent * type signature and the only use case for this, is to avoid that. */ replaceState: function (newState, callback) { this.updater.enqueueReplaceState(this, newState, callback); }, /** * Checks whether or not this composite component is mounted. * @return {boolean} True if mounted, false otherwise. * @protected * @final */ isMounted: function () { if (true) { true ? warning(this.__didWarnIsMounted, '%s: isMounted is deprecated. Instead, make sure to clean up ' + 'subscriptions and pending requests in componentWillUnmount to ' + 'prevent memory leaks.', this.constructor && this.constructor.displayName || this.name || 'Component') : void 0; this.__didWarnIsMounted = true; } return !!this.__isMounted; } }; var ReactClassComponent = function () {}; _assign(ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin); /** * Creates a composite component class given a class specification. * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass * * @param {object} spec Class specification (which must define `render`). * @return {function} Component constructor function. * @public */ function createClass(spec) { // To keep our warnings more understandable, we'll use a little hack here to // ensure that Constructor.name !== 'Constructor'. This makes sure we don't // unnecessarily identify a class without displayName as 'Constructor'. var Constructor = identity(function (props, context, updater) { // This constructor gets overridden by mocks. The argument is used // by mocks to assert on what gets mounted. if (true) { true ? warning(this instanceof Constructor, 'Something is calling a React component directly. Use a factory or ' + 'JSX instead. See: https://fb.me/react-legacyfactory') : void 0; } // Wire up auto-binding if (this.__reactAutoBindPairs.length) { bindAutoBindMethods(this); } this.props = props; this.context = context; this.refs = emptyObject; this.updater = updater || ReactNoopUpdateQueue; this.state = null; // ReactClasses doesn't have constructors. Instead, they use the // getInitialState and componentWillMount methods for initialization. var initialState = this.getInitialState ? this.getInitialState() : null; if (true) { // We allow auto-mocks to proceed as if they're returning null. if (initialState === undefined && this.getInitialState._isMockFunction) { // This is probably bad practice. Consider warning here and // deprecating this convenience. initialState = null; } } _invariant(typeof initialState === 'object' && !Array.isArray(initialState), '%s.getInitialState(): must return an object or null', Constructor.displayName || 'ReactCompositeComponent'); this.state = initialState; }); Constructor.prototype = new ReactClassComponent(); Constructor.prototype.constructor = Constructor; Constructor.prototype.__reactAutoBindPairs = []; injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor)); mixSpecIntoComponent(Constructor, IsMountedMixin); mixSpecIntoComponent(Constructor, spec); // Initialize the defaultProps property after all mixins have been merged. if (Constructor.getDefaultProps) { Constructor.defaultProps = Constructor.getDefaultProps(); } if (true) { // This is a tag to indicate that the use of these method names is ok, // since it's used with createClass. If it's not, then it's likely a // mistake so we'll warn you to use the static property, property // initializer or constructor respectively. if (Constructor.getDefaultProps) { Constructor.getDefaultProps.isReactClassApproved = {}; } if (Constructor.prototype.getInitialState) { Constructor.prototype.getInitialState.isReactClassApproved = {}; } } _invariant(Constructor.prototype.render, 'createClass(...): Class specification must implement a `render` method.'); if (true) { true ? warning(!Constructor.prototype.componentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', spec.displayName || 'A component') : void 0; true ? warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component') : void 0; } // Reduce time spent doing lookups by setting these on the prototype. for (var methodName in ReactClassInterface) { if (!Constructor.prototype[methodName]) { Constructor.prototype[methodName] = null; } } return Constructor; } return createClass; } module.exports = factory; /***/ }), /* 185 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = hyphenateProperty; var _hyphenateStyleName = __webpack_require__(110); var _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function hyphenateProperty(property) { return (0, _hyphenateStyleName2.default)(property); } module.exports = exports['default']; /***/ }), /* 186 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var isObj = __webpack_require__(218); var hasOwnProperty = Object.prototype.hasOwnProperty; var propIsEnumerable = Object.prototype.propertyIsEnumerable; function toObject(val) { if (val === null || val === undefined) { throw new TypeError('Sources cannot be null or undefined'); } return Object(val); } function assignKey(to, from, key) { var val = from[key]; if (val === undefined || val === null) { return; } if (hasOwnProperty.call(to, key)) { if (to[key] === undefined || to[key] === null) { throw new TypeError('Cannot convert undefined or null to object (' + key + ')'); } } if (!hasOwnProperty.call(to, key) || !isObj(val)) { to[key] = val; } else { to[key] = assign(Object(to[key]), from[key]); } } function assign(to, from) { if (to === from) { return to; } from = Object(from); for (var key in from) { if (hasOwnProperty.call(from, key)) { assignKey(to, from, key); } } if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(from); for (var i = 0; i < symbols.length; i++) { if (propIsEnumerable.call(from, symbols[i])) { assignKey(to, from, symbols[i]); } } } return to; } module.exports = function deepAssign(target) { target = toObject(target); for (var s = 1; s < arguments.length; s++) { assign(target, arguments[s]); } return target; }; /***/ }), /* 187 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (c) 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var TouchEventUtils = { /** * Utility function for common case of extracting out the primary touch from a * touch event. * - `touchEnd` events usually do not have the `touches` property. * http://stackoverflow.com/questions/3666929/ * mobile-sarai-touchend-event-not-firing-when-last-touch-is-removed * * @param {Event} nativeEvent Native event that may or may not be a touch. * @return {TouchesObject?} an object with pageX and pageY or null. */ extractSingleTouch: function extractSingleTouch(nativeEvent) { var touches = nativeEvent.touches; var changedTouches = nativeEvent.changedTouches; var hasTouches = touches && touches.length > 0; var hasChangedTouches = changedTouches && changedTouches.length > 0; return !hasTouches && hasChangedTouches ? changedTouches[0] : hasTouches ? touches[0] : nativeEvent; } }; module.exports = TouchEventUtils; /***/ }), /* 188 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (c) 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @typechecks */ var _hyphenPattern = /-(.)/g; /** * Camelcases a hyphenated string, for example: * * > camelize('background-color') * < "backgroundColor" * * @param {string} string * @return {string} */ function camelize(string) { return string.replace(_hyphenPattern, function (_, character) { return character.toUpperCase(); }); } module.exports = camelize; /***/ }), /* 189 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (c) 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ var isTextNode = __webpack_require__(197); /*eslint-disable no-bitwise */ /** * Checks if a given DOM node contains or is another DOM node. */ function containsNode(outerNode, innerNode) { if (!outerNode || !innerNode) { return false; } else if (outerNode === innerNode) { return true; } else if (isTextNode(outerNode)) { return false; } else if (isTextNode(innerNode)) { return containsNode(outerNode, innerNode.parentNode); } else if ('contains' in outerNode) { return outerNode.contains(innerNode); } else if (outerNode.compareDocumentPosition) { return !!(outerNode.compareDocumentPosition(innerNode) & 16); } else { return false; } } module.exports = containsNode; /***/ }), /* 190 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (c) 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @typechecks */ var invariant = __webpack_require__(0); /** * Convert array-like objects to arrays. * * This API assumes the caller knows the contents of the data type. For less * well defined inputs use createArrayFromMixed. * * @param {object|function|filelist} obj * @return {array} */ function toArray(obj) { var length = obj.length; // Some browsers builtin objects can report typeof 'function' (e.g. NodeList // in old versions of Safari). !(!Array.isArray(obj) && (typeof obj === 'object' || typeof obj === 'function')) ? true ? invariant(false, 'toArray: Array-like object expected') : invariant(false) : void 0; !(typeof length === 'number') ? true ? invariant(false, 'toArray: Object needs a length property') : invariant(false) : void 0; !(length === 0 || length - 1 in obj) ? true ? invariant(false, 'toArray: Object should have keys for indices') : invariant(false) : void 0; !(typeof obj.callee !== 'function') ? true ? invariant(false, 'toArray: Object can\'t be `arguments`. Use rest params ' + '(function(...args) {}) or Array.from() instead.') : invariant(false) : void 0; // Old IE doesn't give collections access to hasOwnProperty. Assume inputs // without method will throw during the slice call and skip straight to the // fallback. if (obj.hasOwnProperty) { try { return Array.prototype.slice.call(obj); } catch (e) { // IE < 9 does not support Array#slice on collections objects } } // Fall back to copying key by key. This assumes all keys have a value, // so will not preserve sparsely populated inputs. var ret = Array(length); for (var ii = 0; ii < length; ii++) { ret[ii] = obj[ii]; } return ret; } /** * Perform a heuristic test to determine if an object is "array-like". * * A monk asked Joshu, a Zen master, "Has a dog Buddha nature?" * Joshu replied: "Mu." * * This function determines if its argument has "array nature": it returns * true if the argument is an actual array, an `arguments' object, or an * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()). * * It will return false for other array-like objects like Filelist. * * @param {*} obj * @return {boolean} */ function hasArrayNature(obj) { return ( // not null/false !!obj && ( // arrays are objects, NodeLists are functions in Safari typeof obj == 'object' || typeof obj == 'function') && // quacks like an array 'length' in obj && // not window !('setInterval' in obj) && // no DOM node should be considered an array-like // a 'select' element has 'length' and 'item' properties on IE8 typeof obj.nodeType != 'number' && ( // a real array Array.isArray(obj) || // arguments 'callee' in obj || // HTMLCollection/NodeList 'item' in obj) ); } /** * Ensure that the argument is an array by wrapping it in an array if it is not. * Creates a copy of the argument if it is already an array. * * This is mostly useful idiomatically: * * var createArrayFromMixed = require('createArrayFromMixed'); * * function takesOneOrMoreThings(things) { * things = createArrayFromMixed(things); * ... * } * * This allows you to treat `things' as an array, but accept scalars in the API. * * If you need to convert an array-like object, like `arguments`, into an array * use toArray instead. * * @param {*} obj * @return {array} */ function createArrayFromMixed(obj) { if (!hasArrayNature(obj)) { return [obj]; } else if (Array.isArray(obj)) { return obj.slice(); } else { return toArray(obj); } } module.exports = createArrayFromMixed; /***/ }), /* 191 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (c) 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @typechecks */ /*eslint-disable fb-www/unsafe-html*/ var ExecutionEnvironment = __webpack_require__(4); var createArrayFromMixed = __webpack_require__(190); var getMarkupWrap = __webpack_require__(192); var invariant = __webpack_require__(0); /** * Dummy container used to render all markup. */ var dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null; /** * Pattern used by `getNodeName`. */ var nodeNamePattern = /^\s*<(\w+)/; /** * Extracts the `nodeName` of the first element in a string of markup. * * @param {string} markup String of markup. * @return {?string} Node name of the supplied markup. */ function getNodeName(markup) { var nodeNameMatch = markup.match(nodeNamePattern); return nodeNameMatch && nodeNameMatch[1].toLowerCase(); } /** * Creates an array containing the nodes rendered from the supplied markup. The * optionally supplied `handleScript` function will be invoked once for each * <script> element that is rendered. If no `handleScript` function is supplied, * an exception is thrown if any <script> elements are rendered. * * @param {string} markup A string of valid HTML markup. * @param {?function} handleScript Invoked once for each rendered <script>. * @return {array<DOMElement|DOMTextNode>} An array of rendered nodes. */ function createNodesFromMarkup(markup, handleScript) { var node = dummyNode; !!!dummyNode ? true ? invariant(false, 'createNodesFromMarkup dummy not initialized') : invariant(false) : void 0; var nodeName = getNodeName(markup); var wrap = nodeName && getMarkupWrap(nodeName); if (wrap) { node.innerHTML = wrap[1] + markup + wrap[2]; var wrapDepth = wrap[0]; while (wrapDepth--) { node = node.lastChild; } } else { node.innerHTML = markup; } var scripts = node.getElementsByTagName('script'); if (scripts.length) { !handleScript ? true ? invariant(false, 'createNodesFromMarkup(...): Unexpected <script> element rendered.') : invariant(false) : void 0; createArrayFromMixed(scripts).forEach(handleScript); } var nodes = Array.from(node.childNodes); while (node.lastChild) { node.removeChild(node.lastChild); } return nodes; } module.exports = createNodesFromMarkup; /***/ }), /* 192 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (c) 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ /*eslint-disable fb-www/unsafe-html */ var ExecutionEnvironment = __webpack_require__(4); var invariant = __webpack_require__(0); /** * Dummy container used to detect which wraps are necessary. */ var dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null; /** * Some browsers cannot use `innerHTML` to render certain elements standalone, * so we wrap them, render the wrapped nodes, then extract the desired node. * * In IE8, certain elements cannot render alone, so wrap all elements ('*'). */ var shouldWrap = {}; var selectWrap = [1, '<select multiple="true">', '</select>']; var tableWrap = [1, '<table>', '</table>']; var trWrap = [3, '<table><tbody><tr>', '</tr></tbody></table>']; var svgWrap = [1, '<svg xmlns="http://www.w3.org/2000/svg">', '</svg>']; var markupWrap = { '*': [1, '?<div>', '</div>'], 'area': [1, '<map>', '</map>'], 'col': [2, '<table><tbody></tbody><colgroup>', '</colgroup></table>'], 'legend': [1, '<fieldset>', '</fieldset>'], 'param': [1, '<object>', '</object>'], 'tr': [2, '<table><tbody>', '</tbody></table>'], 'optgroup': selectWrap, 'option': selectWrap, 'caption': tableWrap, 'colgroup': tableWrap, 'tbody': tableWrap, 'tfoot': tableWrap, 'thead': tableWrap, 'td': trWrap, 'th': trWrap }; // Initialize the SVG elements since we know they'll always need to be wrapped // consistently. If they are created inside a <div> they will be initialized in // the wrong namespace (and will not display). var svgElements = ['circle', 'clipPath', 'defs', 'ellipse', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'text', 'tspan']; svgElements.forEach(function (nodeName) { markupWrap[nodeName] = svgWrap; shouldWrap[nodeName] = true; }); /** * Gets the markup wrap configuration for the supplied `nodeName`. * * NOTE: This lazily detects which wraps are necessary for the current browser. * * @param {string} nodeName Lowercase `nodeName`. * @return {?array} Markup wrap configuration, if applicable. */ function getMarkupWrap(nodeName) { !!!dummyNode ? true ? invariant(false, 'Markup wrapping node not initialized') : invariant(false) : void 0; if (!markupWrap.hasOwnProperty(nodeName)) { nodeName = '*'; } if (!shouldWrap.hasOwnProperty(nodeName)) { if (nodeName === '*') { dummyNode.innerHTML = '<link />'; } else { dummyNode.innerHTML = '<' + nodeName + '></' + nodeName + '>'; } shouldWrap[nodeName] = !dummyNode.firstChild; } return shouldWrap[nodeName] ? markupWrap[nodeName] : null; } module.exports = getMarkupWrap; /***/ }), /* 193 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (c) 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @typechecks */ /** * Gets the scroll position of the supplied element or window. * * The return values are unbounded, unlike `getScrollPosition`. This means they * may be negative or exceed the element boundaries (which is possible using * inertial scrolling). * * @param {DOMWindow|DOMElement} scrollable * @return {object} Map with `x` and `y` keys. */ function getUnboundedScrollPosition(scrollable) { if (scrollable.Window && scrollable instanceof scrollable.Window) { return { x: scrollable.pageXOffset || scrollable.document.documentElement.scrollLeft, y: scrollable.pageYOffset || scrollable.document.documentElement.scrollTop }; } return { x: scrollable.scrollLeft, y: scrollable.scrollTop }; } module.exports = getUnboundedScrollPosition; /***/ }), /* 194 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (c) 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @typechecks */ var _uppercasePattern = /([A-Z])/g; /** * Hyphenates a camelcased string, for example: * * > hyphenate('backgroundColor') * < "background-color" * * For CSS style names, use `hyphenateStyleName` instead which works properly * with all vendor prefixes, including `ms`. * * @param {string} string * @return {string} */ function hyphenate(string) { return string.replace(_uppercasePattern, '-$1').toLowerCase(); } module.exports = hyphenate; /***/ }), /* 195 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (c) 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @typechecks */ var hyphenate = __webpack_require__(194); var msPattern = /^ms-/; /** * Hyphenates a camelcased CSS property name, for example: * * > hyphenateStyleName('backgroundColor') * < "background-color" * > hyphenateStyleName('MozTransition') * < "-moz-transition" * > hyphenateStyleName('msTransition') * < "-ms-transition" * * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix * is converted to `-ms-`. * * @param {string} string * @return {string} */ function hyphenateStyleName(string) { return hyphenate(string).replace(msPattern, '-ms-'); } module.exports = hyphenateStyleName; /***/ }), /* 196 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (c) 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @typechecks */ /** * @param {*} object The object to check. * @return {boolean} Whether or not the object is a DOM node. */ function isNode(object) { var doc = object ? object.ownerDocument || object : document; var defaultView = doc.defaultView || window; return !!(object && (typeof defaultView.Node === 'function' ? object instanceof defaultView.Node : typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string')); } module.exports = isNode; /***/ }), /* 197 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (c) 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @typechecks */ var isNode = __webpack_require__(196); /** * @param {*} object The object to check. * @return {boolean} Whether or not the object is a DOM text node. */ function isTextNode(object) { return isNode(object) && object.nodeType == 3; } module.exports = isTextNode; /***/ }), /* 198 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (c) 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * * @typechecks static-only */ /** * Memoizes the return value of a function that accepts one string argument. */ function memoizeStringOnly(callback) { var cache = {}; return function (string) { if (!cache.hasOwnProperty(string)) { cache[string] = callback.call(this, string); } return cache[string]; }; } module.exports = memoizeStringOnly; /***/ }), /* 199 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global) { /** * Copyright (c) 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var nativeRequestAnimationFrame = global.requestAnimationFrame || global.webkitRequestAnimationFrame || global.mozRequestAnimationFrame || global.oRequestAnimationFrame || global.msRequestAnimationFrame; module.exports = nativeRequestAnimationFrame; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) /***/ }), /* 200 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (c) 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @typechecks */ var ExecutionEnvironment = __webpack_require__(4); var performance; if (ExecutionEnvironment.canUseDOM) { performance = window.performance || window.msPerformance || window.webkitPerformance; } module.exports = performance || {}; /***/ }), /* 201 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (c) 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @typechecks */ var performance = __webpack_require__(200); var performanceNow; /** * Detect if we can use `window.performance.now()` and gracefully fallback to * `Date.now()` if it doesn't exist. We need to support Firefox < 15 for now * because of Facebook's testing infrastructure. */ if (performance.now) { performanceNow = function performanceNow() { return performance.now(); }; } else { performanceNow = function performanceNow() { return Date.now(); }; } module.exports = performanceNow; /***/ }), /* 202 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = createPrefixer; var _prefixProperty = __webpack_require__(216); var _prefixProperty2 = _interopRequireDefault(_prefixProperty); var _prefixValue = __webpack_require__(217); var _prefixValue2 = _interopRequireDefault(_prefixValue); var _addNewValuesOnly = __webpack_require__(214); var _addNewValuesOnly2 = _interopRequireDefault(_addNewValuesOnly); var _isObject = __webpack_require__(215); var _isObject2 = _interopRequireDefault(_isObject); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function createPrefixer(_ref) { var prefixMap = _ref.prefixMap, plugins = _ref.plugins; function prefixAll(style) { for (var property in style) { var value = style[property]; // handle nested objects if ((0, _isObject2.default)(value)) { style[property] = prefixAll(value); // handle array values } else if (Array.isArray(value)) { var combinedValue = []; for (var i = 0, len = value.length; i < len; ++i) { var processedValue = (0, _prefixValue2.default)(plugins, property, value[i], style, prefixMap); (0, _addNewValuesOnly2.default)(combinedValue, processedValue || value[i]); } // only modify the value if it was touched // by any plugin to prevent unnecessary mutations if (combinedValue.length > 0) { style[property] = combinedValue; } } else { var _processedValue = (0, _prefixValue2.default)(plugins, property, value, style, prefixMap); // only modify the value if it was touched // by any plugin to prevent unnecessary mutations if (_processedValue) { style[property] = _processedValue; } (0, _prefixProperty2.default)(prefixMap, property, style); } } return style; } return prefixAll; } module.exports = exports['default']; /***/ }), /* 203 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = crossFade; var _isPrefixedValue = __webpack_require__(37); var _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // http://caniuse.com/#search=cross-fade var prefixes = ['-webkit-', '']; function crossFade(property, value) { if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('cross-fade(') > -1) { return prefixes.map(function (prefix) { return value.replace(/cross-fade\(/g, prefix + 'cross-fade('); }); } } module.exports = exports['default']; /***/ }), /* 204 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = cursor; var prefixes = ['-webkit-', '-moz-', '']; var values = { 'zoom-in': true, 'zoom-out': true, grab: true, grabbing: true }; function cursor(property, value) { if (property === 'cursor' && values.hasOwnProperty(value)) { return prefixes.map(function (prefix) { return prefix + value; }); } } module.exports = exports['default']; /***/ }), /* 205 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = filter; var _isPrefixedValue = __webpack_require__(37); var _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // http://caniuse.com/#feat=css-filter-function var prefixes = ['-webkit-', '']; function filter(property, value) { if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('filter(') > -1) { return prefixes.map(function (prefix) { return value.replace(/filter\(/g, prefix + 'filter('); }); } } module.exports = exports['default']; /***/ }), /* 206 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = flex; var values = { flex: true, 'inline-flex': true }; function flex(property, value) { if (property === 'display' && values.hasOwnProperty(value)) { return ['-webkit-box', '-moz-box', '-ms-' + value + 'box', '-webkit-' + value, value]; } } module.exports = exports['default']; /***/ }), /* 207 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = flexboxOld; var alternativeValues = { 'space-around': 'justify', 'space-between': 'justify', 'flex-start': 'start', 'flex-end': 'end', 'wrap-reverse': 'multiple', wrap: 'multiple' }; var alternativeProps = { alignItems: 'WebkitBoxAlign', justifyContent: 'WebkitBoxPack', flexWrap: 'WebkitBoxLines' }; function flexboxOld(property, value, style) { if (property === 'flexDirection' && typeof value === 'string') { if (value.indexOf('column') > -1) { style.WebkitBoxOrient = 'vertical'; } else { style.WebkitBoxOrient = 'horizontal'; } if (value.indexOf('reverse') > -1) { style.WebkitBoxDirection = 'reverse'; } else { style.WebkitBoxDirection = 'normal'; } } if (alternativeProps.hasOwnProperty(property)) { style[alternativeProps[property]] = alternativeValues[value] || value; } } module.exports = exports['default']; /***/ }), /* 208 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = gradient; var _isPrefixedValue = __webpack_require__(37); var _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var prefixes = ['-webkit-', '-moz-', '']; var values = /linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient/; function gradient(property, value) { if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && values.test(value)) { return prefixes.map(function (prefix) { return prefix + value; }); } } module.exports = exports['default']; /***/ }), /* 209 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = imageSet; var _isPrefixedValue = __webpack_require__(37); var _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // http://caniuse.com/#feat=css-image-set var prefixes = ['-webkit-', '']; function imageSet(property, value) { if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('image-set(') > -1) { return prefixes.map(function (prefix) { return value.replace(/image-set\(/g, prefix + 'image-set('); }); } } module.exports = exports['default']; /***/ }), /* 210 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = position; function position(property, value) { if (property === 'position' && value === 'sticky') { return ['-webkit-sticky', 'sticky']; } } module.exports = exports['default']; /***/ }), /* 211 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = sizing; var prefixes = ['-webkit-', '-moz-', '']; var properties = { maxHeight: true, maxWidth: true, width: true, height: true, columnWidth: true, minWidth: true, minHeight: true }; var values = { 'min-content': true, 'max-content': true, 'fill-available': true, 'fit-content': true, 'contain-floats': true }; function sizing(property, value) { if (properties.hasOwnProperty(property) && values.hasOwnProperty(value)) { return prefixes.map(function (prefix) { return prefix + value; }); } } module.exports = exports['default']; /***/ }), /* 212 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = transition; var _hyphenateProperty = __webpack_require__(185); var _hyphenateProperty2 = _interopRequireDefault(_hyphenateProperty); var _isPrefixedValue = __webpack_require__(37); var _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue); var _capitalizeString = __webpack_require__(112); var _capitalizeString2 = _interopRequireDefault(_capitalizeString); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var properties = { transition: true, transitionProperty: true, WebkitTransition: true, WebkitTransitionProperty: true, MozTransition: true, MozTransitionProperty: true }; var prefixMapping = { Webkit: '-webkit-', Moz: '-moz-', ms: '-ms-' }; function prefixValue(value, propertyPrefixMap) { if ((0, _isPrefixedValue2.default)(value)) { return value; } // only split multi values, not cubic beziers var multipleValues = value.split(/,(?![^()]*(?:\([^()]*\))?\))/g); for (var i = 0, len = multipleValues.length; i < len; ++i) { var singleValue = multipleValues[i]; var values = [singleValue]; for (var property in propertyPrefixMap) { var dashCaseProperty = (0, _hyphenateProperty2.default)(property); if (singleValue.indexOf(dashCaseProperty) > -1 && dashCaseProperty !== 'order') { var prefixes = propertyPrefixMap[property]; for (var j = 0, pLen = prefixes.length; j < pLen; ++j) { // join all prefixes and create a new value values.unshift(singleValue.replace(dashCaseProperty, prefixMapping[prefixes[j]] + dashCaseProperty)); } } } multipleValues[i] = values.join(','); } return multipleValues.join(','); } function transition(property, value, style, propertyPrefixMap) { // also check for already prefixed transitions if (typeof value === 'string' && properties.hasOwnProperty(property)) { var outputValue = prefixValue(value, propertyPrefixMap); // if the property is already prefixed var webkitOutput = outputValue.split(/,(?![^()]*(?:\([^()]*\))?\))/g).filter(function (val) { return !/-moz-|-ms-/.test(val); }).join(','); if (property.indexOf('Webkit') > -1) { return webkitOutput; } var mozOutput = outputValue.split(/,(?![^()]*(?:\([^()]*\))?\))/g).filter(function (val) { return !/-webkit-|-ms-/.test(val); }).join(','); if (property.indexOf('Moz') > -1) { return mozOutput; } style['Webkit' + (0, _capitalizeString2.default)(property)] = webkitOutput; style['Moz' + (0, _capitalizeString2.default)(property)] = mozOutput; return outputValue; } } module.exports = exports['default']; /***/ }), /* 213 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var w = ["Webkit"]; var m = ["Moz"]; var ms = ["ms"]; var wm = ["Webkit", "Moz"]; var wms = ["Webkit", "ms"]; var wmms = ["Webkit", "Moz", "ms"]; exports.default = { plugins: [], prefixMap: { "appearance": wm, "userSelect": wmms, "textEmphasisPosition": w, "textEmphasis": w, "textEmphasisStyle": w, "textEmphasisColor": w, "boxDecorationBreak": w, "clipPath": w, "maskImage": w, "maskMode": w, "maskRepeat": w, "maskPosition": w, "maskClip": w, "maskOrigin": w, "maskSize": w, "maskComposite": w, "mask": w, "maskBorderSource": w, "maskBorderMode": w, "maskBorderSlice": w, "maskBorderWidth": w, "maskBorderOutset": w, "maskBorderRepeat": w, "maskBorder": w, "maskType": w, "textDecorationStyle": w, "textDecorationSkip": w, "textDecorationLine": w, "textDecorationColor": w, "filter": w, "fontFeatureSettings": w, "breakAfter": wmms, "breakBefore": wmms, "breakInside": wmms, "columnCount": wm, "columnFill": wm, "columnGap": wm, "columnRule": wm, "columnRuleColor": wm, "columnRuleStyle": wm, "columnRuleWidth": wm, "columns": wm, "columnSpan": wm, "columnWidth": wm, "flex": w, "flexBasis": w, "flexDirection": w, "flexGrow": w, "flexFlow": w, "flexShrink": w, "flexWrap": w, "alignContent": w, "alignItems": w, "alignSelf": w, "justifyContent": w, "order": w, "transform": w, "transformOrigin": w, "transformOriginX": w, "transformOriginY": w, "backfaceVisibility": w, "perspective": w, "perspectiveOrigin": w, "transformStyle": w, "transformOriginZ": w, "animation": w, "animationDelay": w, "animationDirection": w, "animationFillMode": w, "animationDuration": w, "animationIterationCount": w, "animationName": w, "animationPlayState": w, "animationTimingFunction": w, "backdropFilter": w, "fontKerning": w, "scrollSnapType": wms, "scrollSnapPointsX": wms, "scrollSnapPointsY": wms, "scrollSnapDestination": wms, "scrollSnapCoordinate": wms, "shapeImageThreshold": w, "shapeImageMargin": w, "shapeImageOutside": w, "hyphens": wmms, "flowInto": wms, "flowFrom": wms, "regionFragment": wms, "textAlignLast": m, "tabSize": m, "wrapFlow": ms, "wrapThrough": ms, "wrapMargin": ms, "gridTemplateColumns": ms, "gridTemplateRows": ms, "gridTemplateAreas": ms, "gridTemplate": ms, "gridAutoColumns": ms, "gridAutoRows": ms, "gridAutoFlow": ms, "grid": ms, "gridRowStart": ms, "gridColumnStart": ms, "gridRowEnd": ms, "gridRow": ms, "gridColumn": ms, "gridColumnEnd": ms, "gridColumnGap": ms, "gridRowGap": ms, "gridArea": ms, "gridGap": ms, "textSizeAdjust": wms, "borderImage": w, "borderImageOutset": w, "borderImageRepeat": w, "borderImageSlice": w, "borderImageSource": w, "borderImageWidth": w, "transitionDelay": w, "transitionDuration": w, "transitionProperty": w, "transitionTimingFunction": w } }; module.exports = exports["default"]; /***/ }), /* 214 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = addNewValuesOnly; function addIfNew(list, value) { if (list.indexOf(value) === -1) { list.push(value); } } function addNewValuesOnly(list, values) { if (Array.isArray(values)) { for (var i = 0, len = values.length; i < len; ++i) { addIfNew(list, values[i]); } } else { addIfNew(list, values); } } module.exports = exports["default"]; /***/ }), /* 215 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = isObject; function isObject(value) { return value instanceof Object && !Array.isArray(value); } module.exports = exports["default"]; /***/ }), /* 216 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = prefixProperty; var _capitalizeString = __webpack_require__(112); var _capitalizeString2 = _interopRequireDefault(_capitalizeString); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function prefixProperty(prefixProperties, property, style) { if (prefixProperties.hasOwnProperty(property)) { var requiredPrefixes = prefixProperties[property]; for (var i = 0, len = requiredPrefixes.length; i < len; ++i) { style[requiredPrefixes[i] + (0, _capitalizeString2.default)(property)] = style[property]; } } } module.exports = exports['default']; /***/ }), /* 217 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = prefixValue; function prefixValue(plugins, property, value, style, metaData) { for (var i = 0, len = plugins.length; i < len; ++i) { var processedValue = plugins[i](property, value, style, metaData); // we can stop processing if a value is returned // as all plugin criteria are unique if (processedValue) { return processedValue; } } } module.exports = exports["default"]; /***/ }), /* 218 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = function (x) { var type = typeof x; return x !== null && (type === 'object' || type === 'function'); }; /***/ }), /* 219 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ if (true) { var invariant = __webpack_require__(0); var warning = __webpack_require__(1); var ReactPropTypesSecret = __webpack_require__(114); var loggedTypeFailures = {}; } /** * Assert that the values match with the type specs. * Error messages are memorized and will only be shown once. * * @param {object} typeSpecs Map of name to a ReactPropType * @param {object} values Runtime values that need to be type-checked * @param {string} location e.g. "prop", "context", "child context" * @param {string} componentName Name of the component for error messages. * @param {?Function} getStack Returns the component stack. * @private */ function checkPropTypes(typeSpecs, values, location, componentName, getStack) { if (true) { for (var typeSpecName in typeSpecs) { if (typeSpecs.hasOwnProperty(typeSpecName)) { var error; // Prop type validation may throw. In case they do, we don't want to // fail the render phase where it didn't fail before. So we log it. // After these have been cleaned up, we'll let them throw. try { // This is intentionally an invariant that gets caught. It's the same // behavior as without this statement except with a better message. invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName); error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); } catch (ex) { error = ex; } warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error); if (error instanceof Error && !(error.message in loggedTypeFailures)) { // Only monitor this failure once because there tends to be a lot of the // same error. loggedTypeFailures[error.message] = true; var stack = getStack ? getStack() : ''; warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : ''); } } } } } module.exports = checkPropTypes; /***/ }), /* 220 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ // React 15.5 references this module, and assumes PropTypes are still callable in production. // Therefore we re-export development-only version with all the PropTypes checks here. // However if one is migrating to the `prop-types` npm library, they will go through the // `index.js` entry point, and it will branch depending on the environment. var factory = __webpack_require__(113); module.exports = function(isValidElement) { // It is still allowed in 15.5. var throwOnDirectAccess = false; return factory(isValidElement, throwOnDirectAccess); }; /***/ }), /* 221 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var ARIADOMPropertyConfig = { Properties: { // Global States and Properties 'aria-current': 0, // state 'aria-details': 0, 'aria-disabled': 0, // state 'aria-hidden': 0, // state 'aria-invalid': 0, // state 'aria-keyshortcuts': 0, 'aria-label': 0, 'aria-roledescription': 0, // Widget Attributes 'aria-autocomplete': 0, 'aria-checked': 0, 'aria-expanded': 0, 'aria-haspopup': 0, 'aria-level': 0, 'aria-modal': 0, 'aria-multiline': 0, 'aria-multiselectable': 0, 'aria-orientation': 0, 'aria-placeholder': 0, 'aria-pressed': 0, 'aria-readonly': 0, 'aria-required': 0, 'aria-selected': 0, 'aria-sort': 0, 'aria-valuemax': 0, 'aria-valuemin': 0, 'aria-valuenow': 0, 'aria-valuetext': 0, // Live Region Attributes 'aria-atomic': 0, 'aria-busy': 0, 'aria-live': 0, 'aria-relevant': 0, // Drag-and-Drop Attributes 'aria-dropeffect': 0, 'aria-grabbed': 0, // Relationship Attributes 'aria-activedescendant': 0, 'aria-colcount': 0, 'aria-colindex': 0, 'aria-colspan': 0, 'aria-controls': 0, 'aria-describedby': 0, 'aria-errormessage': 0, 'aria-flowto': 0, 'aria-labelledby': 0, 'aria-owns': 0, 'aria-posinset': 0, 'aria-rowcount': 0, 'aria-rowindex': 0, 'aria-rowspan': 0, 'aria-setsize': 0 }, DOMAttributeNames: {}, DOMPropertyNames: {} }; module.exports = ARIADOMPropertyConfig; /***/ }), /* 222 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var ReactDOMComponentTree = __webpack_require__(7); var focusNode = __webpack_require__(107); var AutoFocusUtils = { focusDOMComponent: function () { focusNode(ReactDOMComponentTree.getNodeFromInstance(this)); } }; module.exports = AutoFocusUtils; /***/ }), /* 223 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var EventPropagators = __webpack_require__(28); var ExecutionEnvironment = __webpack_require__(4); var FallbackCompositionState = __webpack_require__(229); var SyntheticCompositionEvent = __webpack_require__(274); var SyntheticInputEvent = __webpack_require__(277); var END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space var START_KEYCODE = 229; var canUseCompositionEvent = ExecutionEnvironment.canUseDOM && 'CompositionEvent' in window; var documentMode = null; if (ExecutionEnvironment.canUseDOM && 'documentMode' in document) { documentMode = document.documentMode; } // Webkit offers a very useful `textInput` event that can be used to // directly represent `beforeInput`. The IE `textinput` event is not as // useful, so we don't use it. var canUseTextInputEvent = ExecutionEnvironment.canUseDOM && 'TextEvent' in window && !documentMode && !isPresto(); // In IE9+, we have access to composition events, but the data supplied // by the native compositionend event may be incorrect. Japanese ideographic // spaces, for instance (\u3000) are not recorded correctly. var useFallbackCompositionData = ExecutionEnvironment.canUseDOM && (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11); /** * Opera <= 12 includes TextEvent in window, but does not fire * text input events. Rely on keypress instead. */ function isPresto() { var opera = window.opera; return typeof opera === 'object' && typeof opera.version === 'function' && parseInt(opera.version(), 10) <= 12; } var SPACEBAR_CODE = 32; var SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE); // Events and their corresponding property names. var eventTypes = { beforeInput: { phasedRegistrationNames: { bubbled: 'onBeforeInput', captured: 'onBeforeInputCapture' }, dependencies: ['topCompositionEnd', 'topKeyPress', 'topTextInput', 'topPaste'] }, compositionEnd: { phasedRegistrationNames: { bubbled: 'onCompositionEnd', captured: 'onCompositionEndCapture' }, dependencies: ['topBlur', 'topCompositionEnd', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown'] }, compositionStart: { phasedRegistrationNames: { bubbled: 'onCompositionStart', captured: 'onCompositionStartCapture' }, dependencies: ['topBlur', 'topCompositionStart', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown'] }, compositionUpdate: { phasedRegistrationNames: { bubbled: 'onCompositionUpdate', captured: 'onCompositionUpdateCapture' }, dependencies: ['topBlur', 'topCompositionUpdate', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown'] } }; // Track whether we've ever handled a keypress on the space key. var hasSpaceKeypress = false; /** * Return whether a native keypress event is assumed to be a command. * This is required because Firefox fires `keypress` events for key commands * (cut, copy, select-all, etc.) even though no character is inserted. */ function isKeypressCommand(nativeEvent) { return (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) && // ctrlKey && altKey is equivalent to AltGr, and is not a command. !(nativeEvent.ctrlKey && nativeEvent.altKey); } /** * Translate native top level events into event types. * * @param {string} topLevelType * @return {object} */ function getCompositionEventType(topLevelType) { switch (topLevelType) { case 'topCompositionStart': return eventTypes.compositionStart; case 'topCompositionEnd': return eventTypes.compositionEnd; case 'topCompositionUpdate': return eventTypes.compositionUpdate; } } /** * Does our fallback best-guess model think this event signifies that * composition has begun? * * @param {string} topLevelType * @param {object} nativeEvent * @return {boolean} */ function isFallbackCompositionStart(topLevelType, nativeEvent) { return topLevelType === 'topKeyDown' && nativeEvent.keyCode === START_KEYCODE; } /** * Does our fallback mode think that this event is the end of composition? * * @param {string} topLevelType * @param {object} nativeEvent * @return {boolean} */ function isFallbackCompositionEnd(topLevelType, nativeEvent) { switch (topLevelType) { case 'topKeyUp': // Command keys insert or clear IME input. return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1; case 'topKeyDown': // Expect IME keyCode on each keydown. If we get any other // code we must have exited earlier. return nativeEvent.keyCode !== START_KEYCODE; case 'topKeyPress': case 'topMouseDown': case 'topBlur': // Events are not possible without cancelling IME. return true; default: return false; } } /** * Google Input Tools provides composition data via a CustomEvent, * with the `data` property populated in the `detail` object. If this * is available on the event object, use it. If not, this is a plain * composition event and we have nothing special to extract. * * @param {object} nativeEvent * @return {?string} */ function getDataFromCustomEvent(nativeEvent) { var detail = nativeEvent.detail; if (typeof detail === 'object' && 'data' in detail) { return detail.data; } return null; } // Track the current IME composition fallback object, if any. var currentComposition = null; /** * @return {?object} A SyntheticCompositionEvent. */ function extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) { var eventType; var fallbackData; if (canUseCompositionEvent) { eventType = getCompositionEventType(topLevelType); } else if (!currentComposition) { if (isFallbackCompositionStart(topLevelType, nativeEvent)) { eventType = eventTypes.compositionStart; } } else if (isFallbackCompositionEnd(topLevelType, nativeEvent)) { eventType = eventTypes.compositionEnd; } if (!eventType) { return null; } if (useFallbackCompositionData) { // The current composition is stored statically and must not be // overwritten while composition continues. if (!currentComposition && eventType === eventTypes.compositionStart) { currentComposition = FallbackCompositionState.getPooled(nativeEventTarget); } else if (eventType === eventTypes.compositionEnd) { if (currentComposition) { fallbackData = currentComposition.getData(); } } } var event = SyntheticCompositionEvent.getPooled(eventType, targetInst, nativeEvent, nativeEventTarget); if (fallbackData) { // Inject data generated from fallback path into the synthetic event. // This matches the property of native CompositionEventInterface. event.data = fallbackData; } else { var customData = getDataFromCustomEvent(nativeEvent); if (customData !== null) { event.data = customData; } } EventPropagators.accumulateTwoPhaseDispatches(event); return event; } /** * @param {string} topLevelType Record from `EventConstants`. * @param {object} nativeEvent Native browser event. * @return {?string} The string corresponding to this `beforeInput` event. */ function getNativeBeforeInputChars(topLevelType, nativeEvent) { switch (topLevelType) { case 'topCompositionEnd': return getDataFromCustomEvent(nativeEvent); case 'topKeyPress': /** * If native `textInput` events are available, our goal is to make * use of them. However, there is a special case: the spacebar key. * In Webkit, preventing default on a spacebar `textInput` event * cancels character insertion, but it *also* causes the browser * to fall back to its default spacebar behavior of scrolling the * page. * * Tracking at: * https://code.google.com/p/chromium/issues/detail?id=355103 * * To avoid this issue, use the keypress event as if no `textInput` * event is available. */ var which = nativeEvent.which; if (which !== SPACEBAR_CODE) { return null; } hasSpaceKeypress = true; return SPACEBAR_CHAR; case 'topTextInput': // Record the characters to be added to the DOM. var chars = nativeEvent.data; // If it's a spacebar character, assume that we have already handled // it at the keypress level and bail immediately. Android Chrome // doesn't give us keycodes, so we need to blacklist it. if (chars === SPACEBAR_CHAR && hasSpaceKeypress) { return null; } return chars; default: // For other native event types, do nothing. return null; } } /** * For browsers that do not provide the `textInput` event, extract the * appropriate string to use for SyntheticInputEvent. * * @param {string} topLevelType Record from `EventConstants`. * @param {object} nativeEvent Native browser event. * @return {?string} The fallback string for this `beforeInput` event. */ function getFallbackBeforeInputChars(topLevelType, nativeEvent) { // If we are currently composing (IME) and using a fallback to do so, // try to extract the composed characters from the fallback object. // If composition event is available, we extract a string only at // compositionevent, otherwise extract it at fallback events. if (currentComposition) { if (topLevelType === 'topCompositionEnd' || !canUseCompositionEvent && isFallbackCompositionEnd(topLevelType, nativeEvent)) { var chars = currentComposition.getData(); FallbackCompositionState.release(currentComposition); currentComposition = null; return chars; } return null; } switch (topLevelType) { case 'topPaste': // If a paste event occurs after a keypress, throw out the input // chars. Paste events should not lead to BeforeInput events. return null; case 'topKeyPress': /** * As of v27, Firefox may fire keypress events even when no character * will be inserted. A few possibilities: * * - `which` is `0`. Arrow keys, Esc key, etc. * * - `which` is the pressed key code, but no char is available. * Ex: 'AltGr + d` in Polish. There is no modified character for * this key combination and no character is inserted into the * document, but FF fires the keypress for char code `100` anyway. * No `input` event will occur. * * - `which` is the pressed key code, but a command combination is * being used. Ex: `Cmd+C`. No character is inserted, and no * `input` event will occur. */ if (nativeEvent.which && !isKeypressCommand(nativeEvent)) { return String.fromCharCode(nativeEvent.which); } return null; case 'topCompositionEnd': return useFallbackCompositionData ? null : nativeEvent.data; default: return null; } } /** * Extract a SyntheticInputEvent for `beforeInput`, based on either native * `textInput` or fallback behavior. * * @return {?object} A SyntheticInputEvent. */ function extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) { var chars; if (canUseTextInputEvent) { chars = getNativeBeforeInputChars(topLevelType, nativeEvent); } else { chars = getFallbackBeforeInputChars(topLevelType, nativeEvent); } // If no characters are being inserted, no BeforeInput event should // be fired. if (!chars) { return null; } var event = SyntheticInputEvent.getPooled(eventTypes.beforeInput, targetInst, nativeEvent, nativeEventTarget); event.data = chars; EventPropagators.accumulateTwoPhaseDispatches(event); return event; } /** * Create an `onBeforeInput` event to match * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents. * * This event plugin is based on the native `textInput` event * available in Chrome, Safari, Opera, and IE. This event fires after * `onKeyPress` and `onCompositionEnd`, but before `onInput`. * * `beforeInput` is spec'd but not implemented in any browsers, and * the `input` event does not provide any useful information about what has * actually been added, contrary to the spec. Thus, `textInput` is the best * available event to identify the characters that have actually been inserted * into the target node. * * This plugin is also responsible for emitting `composition` events, thus * allowing us to share composition fallback code for both `beforeInput` and * `composition` event types. */ var BeforeInputEventPlugin = { eventTypes: eventTypes, extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) { return [extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget), extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget)]; } }; module.exports = BeforeInputEventPlugin; /***/ }), /* 224 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var CSSProperty = __webpack_require__(115); var ExecutionEnvironment = __webpack_require__(4); var ReactInstrumentation = __webpack_require__(11); var camelizeStyleName = __webpack_require__(106); var dangerousStyleValue = __webpack_require__(285); var hyphenateStyleName = __webpack_require__(195); var memoizeStringOnly = __webpack_require__(198); var warning = __webpack_require__(1); var processStyleName = memoizeStringOnly(function (styleName) { return hyphenateStyleName(styleName); }); var hasShorthandPropertyBug = false; var styleFloatAccessor = 'cssFloat'; if (ExecutionEnvironment.canUseDOM) { var tempStyle = document.createElement('div').style; try { // IE8 throws "Invalid argument." if resetting shorthand style properties. tempStyle.font = ''; } catch (e) { hasShorthandPropertyBug = true; } // IE8 only supports accessing cssFloat (standard) as styleFloat if (document.documentElement.style.cssFloat === undefined) { styleFloatAccessor = 'styleFloat'; } } if (true) { // 'msTransform' is correct, but the other prefixes should be capitalized var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/; // style values shouldn't contain a semicolon var badStyleValueWithSemicolonPattern = /;\s*$/; var warnedStyleNames = {}; var warnedStyleValues = {}; var warnedForNaNValue = false; var warnHyphenatedStyleName = function (name, owner) { if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) { return; } warnedStyleNames[name] = true; true ? warning(false, 'Unsupported style property %s. Did you mean %s?%s', name, camelizeStyleName(name), checkRenderMessage(owner)) : void 0; }; var warnBadVendoredStyleName = function (name, owner) { if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) { return; } warnedStyleNames[name] = true; true ? warning(false, 'Unsupported vendor-prefixed style property %s. Did you mean %s?%s', name, name.charAt(0).toUpperCase() + name.slice(1), checkRenderMessage(owner)) : void 0; }; var warnStyleValueWithSemicolon = function (name, value, owner) { if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) { return; } warnedStyleValues[value] = true; true ? warning(false, 'Style property values shouldn\'t contain a semicolon.%s ' + 'Try "%s: %s" instead.', checkRenderMessage(owner), name, value.replace(badStyleValueWithSemicolonPattern, '')) : void 0; }; var warnStyleValueIsNaN = function (name, value, owner) { if (warnedForNaNValue) { return; } warnedForNaNValue = true; true ? warning(false, '`NaN` is an invalid value for the `%s` css style property.%s', name, checkRenderMessage(owner)) : void 0; }; var checkRenderMessage = function (owner) { if (owner) { var name = owner.getName(); if (name) { return ' Check the render method of `' + name + '`.'; } } return ''; }; /** * @param {string} name * @param {*} value * @param {ReactDOMComponent} component */ var warnValidStyle = function (name, value, component) { var owner; if (component) { owner = component._currentElement._owner; } if (name.indexOf('-') > -1) { warnHyphenatedStyleName(name, owner); } else if (badVendoredStyleNamePattern.test(name)) { warnBadVendoredStyleName(name, owner); } else if (badStyleValueWithSemicolonPattern.test(value)) { warnStyleValueWithSemicolon(name, value, owner); } if (typeof value === 'number' && isNaN(value)) { warnStyleValueIsNaN(name, value, owner); } }; } /** * Operations for dealing with CSS properties. */ var CSSPropertyOperations = { /** * Serializes a mapping of style properties for use as inline styles: * * > createMarkupForStyles({width: '200px', height: 0}) * "width:200px;height:0;" * * Undefined values are ignored so that declarative programming is easier. * The result should be HTML-escaped before insertion into the DOM. * * @param {object} styles * @param {ReactDOMComponent} component * @return {?string} */ createMarkupForStyles: function (styles, component) { var serialized = ''; for (var styleName in styles) { if (!styles.hasOwnProperty(styleName)) { continue; } var styleValue = styles[styleName]; if (true) { warnValidStyle(styleName, styleValue, component); } if (styleValue != null) { serialized += processStyleName(styleName) + ':'; serialized += dangerousStyleValue(styleName, styleValue, component) + ';'; } } return serialized || null; }, /** * Sets the value for multiple styles on a node. If a value is specified as * '' (empty string), the corresponding style property will be unset. * * @param {DOMElement} node * @param {object} styles * @param {ReactDOMComponent} component */ setValueForStyles: function (node, styles, component) { if (true) { ReactInstrumentation.debugTool.onHostOperation({ instanceID: component._debugID, type: 'update styles', payload: styles }); } var style = node.style; for (var styleName in styles) { if (!styles.hasOwnProperty(styleName)) { continue; } if (true) { warnValidStyle(styleName, styles[styleName], component); } var styleValue = dangerousStyleValue(styleName, styles[styleName], component); if (styleName === 'float' || styleName === 'cssFloat') { styleName = styleFloatAccessor; } if (styleValue) { style[styleName] = styleValue; } else { var expansion = hasShorthandPropertyBug && CSSProperty.shorthandPropertyExpansions[styleName]; if (expansion) { // Shorthand property that IE8 won't like unsetting, so unset each // component to placate it for (var individualStyleName in expansion) { style[individualStyleName] = ''; } } else { style[styleName] = ''; } } } } }; module.exports = CSSPropertyOperations; /***/ }), /* 225 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var EventPluginHub = __webpack_require__(27); var EventPropagators = __webpack_require__(28); var ExecutionEnvironment = __webpack_require__(4); var ReactDOMComponentTree = __webpack_require__(7); var ReactUpdates = __webpack_require__(14); var SyntheticEvent = __webpack_require__(15); var getEventTarget = __webpack_require__(77); var isEventSupported = __webpack_require__(78); var isTextInputElement = __webpack_require__(134); var eventTypes = { change: { phasedRegistrationNames: { bubbled: 'onChange', captured: 'onChangeCapture' }, dependencies: ['topBlur', 'topChange', 'topClick', 'topFocus', 'topInput', 'topKeyDown', 'topKeyUp', 'topSelectionChange'] } }; /** * For IE shims */ var activeElement = null; var activeElementInst = null; var activeElementValue = null; var activeElementValueProp = null; /** * SECTION: handle `change` event */ function shouldUseChangeEvent(elem) { var nodeName = elem.nodeName && elem.nodeName.toLowerCase(); return nodeName === 'select' || nodeName === 'input' && elem.type === 'file'; } var doesChangeEventBubble = false; if (ExecutionEnvironment.canUseDOM) { // See `handleChange` comment below doesChangeEventBubble = isEventSupported('change') && (!document.documentMode || document.documentMode > 8); } function manualDispatchChangeEvent(nativeEvent) { var event = SyntheticEvent.getPooled(eventTypes.change, activeElementInst, nativeEvent, getEventTarget(nativeEvent)); EventPropagators.accumulateTwoPhaseDispatches(event); // If change and propertychange bubbled, we'd just bind to it like all the // other events and have it go through ReactBrowserEventEmitter. Since it // doesn't, we manually listen for the events and so we have to enqueue and // process the abstract event manually. // // Batching is necessary here in order to ensure that all event handlers run // before the next rerender (including event handlers attached to ancestor // elements instead of directly on the input). Without this, controlled // components don't work properly in conjunction with event bubbling because // the component is rerendered and the value reverted before all the event // handlers can run. See https://github.com/facebook/react/issues/708. ReactUpdates.batchedUpdates(runEventInBatch, event); } function runEventInBatch(event) { EventPluginHub.enqueueEvents(event); EventPluginHub.processEventQueue(false); } function startWatchingForChangeEventIE8(target, targetInst) { activeElement = target; activeElementInst = targetInst; activeElement.attachEvent('onchange', manualDispatchChangeEvent); } function stopWatchingForChangeEventIE8() { if (!activeElement) { return; } activeElement.detachEvent('onchange', manualDispatchChangeEvent); activeElement = null; activeElementInst = null; } function getTargetInstForChangeEvent(topLevelType, targetInst) { if (topLevelType === 'topChange') { return targetInst; } } function handleEventsForChangeEventIE8(topLevelType, target, targetInst) { if (topLevelType === 'topFocus') { // stopWatching() should be a noop here but we call it just in case we // missed a blur event somehow. stopWatchingForChangeEventIE8(); startWatchingForChangeEventIE8(target, targetInst); } else if (topLevelType === 'topBlur') { stopWatchingForChangeEventIE8(); } } /** * SECTION: handle `input` event */ var isInputEventSupported = false; if (ExecutionEnvironment.canUseDOM) { // IE9 claims to support the input event but fails to trigger it when // deleting text, so we ignore its input events. // IE10+ fire input events to often, such when a placeholder // changes or when an input with a placeholder is focused. isInputEventSupported = isEventSupported('input') && (!document.documentMode || document.documentMode > 11); } /** * (For IE <=11) Replacement getter/setter for the `value` property that gets * set on the active element. */ var newValueProp = { get: function () { return activeElementValueProp.get.call(this); }, set: function (val) { // Cast to a string so we can do equality checks. activeElementValue = '' + val; activeElementValueProp.set.call(this, val); } }; /** * (For IE <=11) Starts tracking propertychange events on the passed-in element * and override the value property so that we can distinguish user events from * value changes in JS. */ function startWatchingForValueChange(target, targetInst) { activeElement = target; activeElementInst = targetInst; activeElementValue = target.value; activeElementValueProp = Object.getOwnPropertyDescriptor(target.constructor.prototype, 'value'); // Not guarded in a canDefineProperty check: IE8 supports defineProperty only // on DOM elements Object.defineProperty(activeElement, 'value', newValueProp); if (activeElement.attachEvent) { activeElement.attachEvent('onpropertychange', handlePropertyChange); } else { activeElement.addEventListener('propertychange', handlePropertyChange, false); } } /** * (For IE <=11) Removes the event listeners from the currently-tracked element, * if any exists. */ function stopWatchingForValueChange() { if (!activeElement) { return; } // delete restores the original property definition delete activeElement.value; if (activeElement.detachEvent) { activeElement.detachEvent('onpropertychange', handlePropertyChange); } else { activeElement.removeEventListener('propertychange', handlePropertyChange, false); } activeElement = null; activeElementInst = null; activeElementValue = null; activeElementValueProp = null; } /** * (For IE <=11) Handles a propertychange event, sending a `change` event if * the value of the active element has changed. */ function handlePropertyChange(nativeEvent) { if (nativeEvent.propertyName !== 'value') { return; } var value = nativeEvent.srcElement.value; if (value === activeElementValue) { return; } activeElementValue = value; manualDispatchChangeEvent(nativeEvent); } /** * If a `change` event should be fired, returns the target's ID. */ function getTargetInstForInputEvent(topLevelType, targetInst) { if (topLevelType === 'topInput') { // In modern browsers (i.e., not IE8 or IE9), the input event is exactly // what we want so fall through here and trigger an abstract event return targetInst; } } function handleEventsForInputEventIE(topLevelType, target, targetInst) { if (topLevelType === 'topFocus') { // In IE8, we can capture almost all .value changes by adding a // propertychange handler and looking for events with propertyName // equal to 'value' // In IE9-11, propertychange fires for most input events but is buggy and // doesn't fire when text is deleted, but conveniently, selectionchange // appears to fire in all of the remaining cases so we catch those and // forward the event if the value has changed // In either case, we don't want to call the event handler if the value // is changed from JS so we redefine a setter for `.value` that updates // our activeElementValue variable, allowing us to ignore those changes // // stopWatching() should be a noop here but we call it just in case we // missed a blur event somehow. stopWatchingForValueChange(); startWatchingForValueChange(target, targetInst); } else if (topLevelType === 'topBlur') { stopWatchingForValueChange(); } } // For IE8 and IE9. function getTargetInstForInputEventIE(topLevelType, targetInst) { if (topLevelType === 'topSelectionChange' || topLevelType === 'topKeyUp' || topLevelType === 'topKeyDown') { // On the selectionchange event, the target is just document which isn't // helpful for us so just check activeElement instead. // // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire // propertychange on the first input event after setting `value` from a // script and fires only keydown, keypress, keyup. Catching keyup usually // gets it and catching keydown lets us fire an event for the first // keystroke if user does a key repeat (it'll be a little delayed: right // before the second keystroke). Other input methods (e.g., paste) seem to // fire selectionchange normally. if (activeElement && activeElement.value !== activeElementValue) { activeElementValue = activeElement.value; return activeElementInst; } } } /** * SECTION: handle `click` event */ function shouldUseClickEvent(elem) { // Use the `click` event to detect changes to checkbox and radio inputs. // This approach works across all browsers, whereas `change` does not fire // until `blur` in IE8. return elem.nodeName && elem.nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio'); } function getTargetInstForClickEvent(topLevelType, targetInst) { if (topLevelType === 'topClick') { return targetInst; } } function handleControlledInputBlur(inst, node) { // TODO: In IE, inst is occasionally null. Why? if (inst == null) { return; } // Fiber and ReactDOM keep wrapper state in separate places var state = inst._wrapperState || node._wrapperState; if (!state || !state.controlled || node.type !== 'number') { return; } // If controlled, assign the value attribute to the current value on blur var value = '' + node.value; if (node.getAttribute('value') !== value) { node.setAttribute('value', value); } } /** * This plugin creates an `onChange` event that normalizes change events * across form elements. This event fires at a time when it's possible to * change the element's value without seeing a flicker. * * Supported elements are: * - input (see `isTextInputElement`) * - textarea * - select */ var ChangeEventPlugin = { eventTypes: eventTypes, extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) { var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window; var getTargetInstFunc, handleEventFunc; if (shouldUseChangeEvent(targetNode)) { if (doesChangeEventBubble) { getTargetInstFunc = getTargetInstForChangeEvent; } else { handleEventFunc = handleEventsForChangeEventIE8; } } else if (isTextInputElement(targetNode)) { if (isInputEventSupported) { getTargetInstFunc = getTargetInstForInputEvent; } else { getTargetInstFunc = getTargetInstForInputEventIE; handleEventFunc = handleEventsForInputEventIE; } } else if (shouldUseClickEvent(targetNode)) { getTargetInstFunc = getTargetInstForClickEvent; } if (getTargetInstFunc) { var inst = getTargetInstFunc(topLevelType, targetInst); if (inst) { var event = SyntheticEvent.getPooled(eventTypes.change, inst, nativeEvent, nativeEventTarget); event.type = 'change'; EventPropagators.accumulateTwoPhaseDispatches(event); return event; } } if (handleEventFunc) { handleEventFunc(topLevelType, targetNode, targetInst); } // When blurring, set the value attribute for number inputs if (topLevelType === 'topBlur') { handleControlledInputBlur(targetInst, targetNode); } } }; module.exports = ChangeEventPlugin; /***/ }), /* 226 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _prodInvariant = __webpack_require__(2); var DOMLazyTree = __webpack_require__(26); var ExecutionEnvironment = __webpack_require__(4); var createNodesFromMarkup = __webpack_require__(191); var emptyFunction = __webpack_require__(10); var invariant = __webpack_require__(0); var Danger = { /** * Replaces a node with a string of markup at its current position within its * parent. The markup must render into a single root node. * * @param {DOMElement} oldChild Child node to replace. * @param {string} markup Markup to render in place of the child node. * @internal */ dangerouslyReplaceNodeWithMarkup: function (oldChild, markup) { !ExecutionEnvironment.canUseDOM ? true ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot render markup in a worker thread. Make sure `window` and `document` are available globally before requiring React when unit testing or use ReactDOMServer.renderToString() for server rendering.') : _prodInvariant('56') : void 0; !markup ? true ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Missing markup.') : _prodInvariant('57') : void 0; !(oldChild.nodeName !== 'HTML') ? true ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot replace markup of the <html> node. This is because browser quirks make this unreliable and/or slow. If you want to render to the root you must use server rendering. See ReactDOMServer.renderToString().') : _prodInvariant('58') : void 0; if (typeof markup === 'string') { var newChild = createNodesFromMarkup(markup, emptyFunction)[0]; oldChild.parentNode.replaceChild(newChild, oldChild); } else { DOMLazyTree.replaceChildWithTree(oldChild, markup); } } }; module.exports = Danger; /***/ }), /* 227 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ /** * Module that is injectable into `EventPluginHub`, that specifies a * deterministic ordering of `EventPlugin`s. A convenient way to reason about * plugins, without having to package every one of them. This is better than * having plugins be ordered in the same order that they are injected because * that ordering would be influenced by the packaging order. * `ResponderEventPlugin` must occur before `SimpleEventPlugin` so that * preventing default on events is convenient in `SimpleEventPlugin` handlers. */ var DefaultEventPluginOrder = ['ResponderEventPlugin', 'SimpleEventPlugin', 'TapEventPlugin', 'EnterLeaveEventPlugin', 'ChangeEventPlugin', 'SelectEventPlugin', 'BeforeInputEventPlugin']; module.exports = DefaultEventPluginOrder; /***/ }), /* 228 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var EventPropagators = __webpack_require__(28); var ReactDOMComponentTree = __webpack_require__(7); var SyntheticMouseEvent = __webpack_require__(54); var eventTypes = { mouseEnter: { registrationName: 'onMouseEnter', dependencies: ['topMouseOut', 'topMouseOver'] }, mouseLeave: { registrationName: 'onMouseLeave', dependencies: ['topMouseOut', 'topMouseOver'] } }; var EnterLeaveEventPlugin = { eventTypes: eventTypes, /** * For almost every interaction we care about, there will be both a top-level * `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that * we do not extract duplicate events. However, moving the mouse into the * browser from outside will not fire a `mouseout` event. In this case, we use * the `mouseover` top-level event. */ extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) { if (topLevelType === 'topMouseOver' && (nativeEvent.relatedTarget || nativeEvent.fromElement)) { return null; } if (topLevelType !== 'topMouseOut' && topLevelType !== 'topMouseOver') { // Must not be a mouse in or mouse out - ignoring. return null; } var win; if (nativeEventTarget.window === nativeEventTarget) { // `nativeEventTarget` is probably a window object. win = nativeEventTarget; } else { // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8. var doc = nativeEventTarget.ownerDocument; if (doc) { win = doc.defaultView || doc.parentWindow; } else { win = window; } } var from; var to; if (topLevelType === 'topMouseOut') { from = targetInst; var related = nativeEvent.relatedTarget || nativeEvent.toElement; to = related ? ReactDOMComponentTree.getClosestInstanceFromNode(related) : null; } else { // Moving to a node from outside the window. from = null; to = targetInst; } if (from === to) { // Nothing pertains to our managed components. return null; } var fromNode = from == null ? win : ReactDOMComponentTree.getNodeFromInstance(from); var toNode = to == null ? win : ReactDOMComponentTree.getNodeFromInstance(to); var leave = SyntheticMouseEvent.getPooled(eventTypes.mouseLeave, from, nativeEvent, nativeEventTarget); leave.type = 'mouseleave'; leave.target = fromNode; leave.relatedTarget = toNode; var enter = SyntheticMouseEvent.getPooled(eventTypes.mouseEnter, to, nativeEvent, nativeEventTarget); enter.type = 'mouseenter'; enter.target = toNode; enter.relatedTarget = fromNode; EventPropagators.accumulateEnterLeaveDispatches(leave, enter, from, to); return [leave, enter]; } }; module.exports = EnterLeaveEventPlugin; /***/ }), /* 229 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _assign = __webpack_require__(6); var PooledClass = __webpack_require__(24); var getTextContentAccessor = __webpack_require__(132); /** * This helper class stores information about text content of a target node, * allowing comparison of content before and after a given event. * * Identify the node where selection currently begins, then observe * both its text content and its current position in the DOM. Since the * browser may natively replace the target node during composition, we can * use its position to find its replacement. * * @param {DOMEventTarget} root */ function FallbackCompositionState(root) { this._root = root; this._startText = this.getText(); this._fallbackText = null; } _assign(FallbackCompositionState.prototype, { destructor: function () { this._root = null; this._startText = null; this._fallbackText = null; }, /** * Get current text of input. * * @return {string} */ getText: function () { if ('value' in this._root) { return this._root.value; } return this._root[getTextContentAccessor()]; }, /** * Determine the differing substring between the initially stored * text content and the current content. * * @return {string} */ getData: function () { if (this._fallbackText) { return this._fallbackText; } var start; var startValue = this._startText; var startLength = startValue.length; var end; var endValue = this.getText(); var endLength = endValue.length; for (start = 0; start < startLength; start++) { if (startValue[start] !== endValue[start]) { break; } } var minEnd = startLength - start; for (end = 1; end <= minEnd; end++) { if (startValue[startLength - end] !== endValue[endLength - end]) { break; } } var sliceTail = end > 1 ? 1 - end : undefined; this._fallbackText = endValue.slice(start, sliceTail); return this._fallbackText; } }); PooledClass.addPoolingTo(FallbackCompositionState); module.exports = FallbackCompositionState; /***/ }), /* 230 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var DOMProperty = __webpack_require__(20); var MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY; var HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE; var HAS_NUMERIC_VALUE = DOMProperty.injection.HAS_NUMERIC_VALUE; var HAS_POSITIVE_NUMERIC_VALUE = DOMProperty.injection.HAS_POSITIVE_NUMERIC_VALUE; var HAS_OVERLOADED_BOOLEAN_VALUE = DOMProperty.injection.HAS_OVERLOADED_BOOLEAN_VALUE; var HTMLDOMPropertyConfig = { isCustomAttribute: RegExp.prototype.test.bind(new RegExp('^(data|aria)-[' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$')), Properties: { /** * Standard Properties */ accept: 0, acceptCharset: 0, accessKey: 0, action: 0, allowFullScreen: HAS_BOOLEAN_VALUE, allowTransparency: 0, alt: 0, // specifies target context for links with `preload` type as: 0, async: HAS_BOOLEAN_VALUE, autoComplete: 0, // autoFocus is polyfilled/normalized by AutoFocusUtils // autoFocus: HAS_BOOLEAN_VALUE, autoPlay: HAS_BOOLEAN_VALUE, capture: HAS_BOOLEAN_VALUE, cellPadding: 0, cellSpacing: 0, charSet: 0, challenge: 0, checked: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, cite: 0, classID: 0, className: 0, cols: HAS_POSITIVE_NUMERIC_VALUE, colSpan: 0, content: 0, contentEditable: 0, contextMenu: 0, controls: HAS_BOOLEAN_VALUE, coords: 0, crossOrigin: 0, data: 0, // For `<object />` acts as `src`. dateTime: 0, 'default': HAS_BOOLEAN_VALUE, defer: HAS_BOOLEAN_VALUE, dir: 0, disabled: HAS_BOOLEAN_VALUE, download: HAS_OVERLOADED_BOOLEAN_VALUE, draggable: 0, encType: 0, form: 0, formAction: 0, formEncType: 0, formMethod: 0, formNoValidate: HAS_BOOLEAN_VALUE, formTarget: 0, frameBorder: 0, headers: 0, height: 0, hidden: HAS_BOOLEAN_VALUE, high: 0, href: 0, hrefLang: 0, htmlFor: 0, httpEquiv: 0, icon: 0, id: 0, inputMode: 0, integrity: 0, is: 0, keyParams: 0, keyType: 0, kind: 0, label: 0, lang: 0, list: 0, loop: HAS_BOOLEAN_VALUE, low: 0, manifest: 0, marginHeight: 0, marginWidth: 0, max: 0, maxLength: 0, media: 0, mediaGroup: 0, method: 0, min: 0, minLength: 0, // Caution; `option.selected` is not updated if `select.multiple` is // disabled with `removeAttribute`. multiple: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, muted: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, name: 0, nonce: 0, noValidate: HAS_BOOLEAN_VALUE, open: HAS_BOOLEAN_VALUE, optimum: 0, pattern: 0, placeholder: 0, playsInline: HAS_BOOLEAN_VALUE, poster: 0, preload: 0, profile: 0, radioGroup: 0, readOnly: HAS_BOOLEAN_VALUE, referrerPolicy: 0, rel: 0, required: HAS_BOOLEAN_VALUE, reversed: HAS_BOOLEAN_VALUE, role: 0, rows: HAS_POSITIVE_NUMERIC_VALUE, rowSpan: HAS_NUMERIC_VALUE, sandbox: 0, scope: 0, scoped: HAS_BOOLEAN_VALUE, scrolling: 0, seamless: HAS_BOOLEAN_VALUE, selected: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, shape: 0, size: HAS_POSITIVE_NUMERIC_VALUE, sizes: 0, span: HAS_POSITIVE_NUMERIC_VALUE, spellCheck: 0, src: 0, srcDoc: 0, srcLang: 0, srcSet: 0, start: HAS_NUMERIC_VALUE, step: 0, style: 0, summary: 0, tabIndex: 0, target: 0, title: 0, // Setting .type throws on non-<input> tags type: 0, useMap: 0, value: 0, width: 0, wmode: 0, wrap: 0, /** * RDFa Properties */ about: 0, datatype: 0, inlist: 0, prefix: 0, // property is also supported for OpenGraph in meta tags. property: 0, resource: 0, 'typeof': 0, vocab: 0, /** * Non-standard Properties */ // autoCapitalize and autoCorrect are supported in Mobile Safari for // keyboard hints. autoCapitalize: 0, autoCorrect: 0, // autoSave allows WebKit/Blink to persist values of input fields on page reloads autoSave: 0, // color is for Safari mask-icon link color: 0, // itemProp, itemScope, itemType are for // Microdata support. See http://schema.org/docs/gs.html itemProp: 0, itemScope: HAS_BOOLEAN_VALUE, itemType: 0, // itemID and itemRef are for Microdata support as well but // only specified in the WHATWG spec document. See // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api itemID: 0, itemRef: 0, // results show looking glass icon and recent searches on input // search fields in WebKit/Blink results: 0, // IE-only attribute that specifies security restrictions on an iframe // as an alternative to the sandbox attribute on IE<10 security: 0, // IE-only attribute that controls focus behavior unselectable: 0 }, DOMAttributeNames: { acceptCharset: 'accept-charset', className: 'class', htmlFor: 'for', httpEquiv: 'http-equiv' }, DOMPropertyNames: {}, DOMMutationMethods: { value: function (node, value) { if (value == null) { return node.removeAttribute('value'); } // Number inputs get special treatment due to some edge cases in // Chrome. Let everything else assign the value attribute as normal. // https://github.com/facebook/react/issues/7253#issuecomment-236074326 if (node.type !== 'number' || node.hasAttribute('value') === false) { node.setAttribute('value', '' + value); } else if (node.validity && !node.validity.badInput && node.ownerDocument.activeElement !== node) { // Don't assign an attribute if validation reports bad // input. Chrome will clear the value. Additionally, don't // operate on inputs that have focus, otherwise Chrome might // strip off trailing decimal places and cause the user's // cursor position to jump to the beginning of the input. // // In ReactDOMInput, we have an onBlur event that will trigger // this function again when focus is lost. node.setAttribute('value', '' + value); } } } }; module.exports = HTMLDOMPropertyConfig; /***/ }), /* 231 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(process) {/** * Copyright 2014-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var ReactReconciler = __webpack_require__(29); var instantiateReactComponent = __webpack_require__(133); var KeyEscapeUtils = __webpack_require__(69); var shouldUpdateReactComponent = __webpack_require__(79); var traverseAllChildren = __webpack_require__(136); var warning = __webpack_require__(1); var ReactComponentTreeHook; if (typeof process !== 'undefined' && process.env && "development" === 'test') { // Temporary hack. // Inline requires don't work well with Jest: // https://github.com/facebook/react/issues/7240 // Remove the inline requires when we don't need them anymore: // https://github.com/facebook/react/pull/7178 ReactComponentTreeHook = __webpack_require__(13); } function instantiateChild(childInstances, child, name, selfDebugID) { // We found a component instance. var keyUnique = childInstances[name] === undefined; if (true) { if (!ReactComponentTreeHook) { ReactComponentTreeHook = __webpack_require__(13); } if (!keyUnique) { true ? warning(false, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0; } } if (child != null && keyUnique) { childInstances[name] = instantiateReactComponent(child, true); } } /** * ReactChildReconciler provides helpers for initializing or updating a set of * children. Its output is suitable for passing it onto ReactMultiChild which * does diffed reordering and insertion. */ var ReactChildReconciler = { /** * Generates a "mount image" for each of the supplied children. In the case * of `ReactDOMComponent`, a mount image is a string of markup. * * @param {?object} nestedChildNodes Nested child maps. * @return {?object} A set of child instances. * @internal */ instantiateChildren: function (nestedChildNodes, transaction, context, selfDebugID // 0 in production and for roots ) { if (nestedChildNodes == null) { return null; } var childInstances = {}; if (true) { traverseAllChildren(nestedChildNodes, function (childInsts, child, name) { return instantiateChild(childInsts, child, name, selfDebugID); }, childInstances); } else { traverseAllChildren(nestedChildNodes, instantiateChild, childInstances); } return childInstances; }, /** * Updates the rendered children and returns a new set of children. * * @param {?object} prevChildren Previously initialized set of children. * @param {?object} nextChildren Flat child element maps. * @param {ReactReconcileTransaction} transaction * @param {object} context * @return {?object} A new set of child instances. * @internal */ updateChildren: function (prevChildren, nextChildren, mountImages, removedNodes, transaction, hostParent, hostContainerInfo, context, selfDebugID // 0 in production and for roots ) { // We currently don't have a way to track moves here but if we use iterators // instead of for..in we can zip the iterators and check if an item has // moved. // TODO: If nothing has changed, return the prevChildren object so that we // can quickly bailout if nothing has changed. if (!nextChildren && !prevChildren) { return; } var name; var prevChild; for (name in nextChildren) { if (!nextChildren.hasOwnProperty(name)) { continue; } prevChild = prevChildren && prevChildren[name]; var prevElement = prevChild && prevChild._currentElement; var nextElement = nextChildren[name]; if (prevChild != null && shouldUpdateReactComponent(prevElement, nextElement)) { ReactReconciler.receiveComponent(prevChild, nextElement, transaction, context); nextChildren[name] = prevChild; } else { if (prevChild) { removedNodes[name] = ReactReconciler.getHostNode(prevChild); ReactReconciler.unmountComponent(prevChild, false); } // The child must be instantiated before it's mounted. var nextChildInstance = instantiateReactComponent(nextElement, true); nextChildren[name] = nextChildInstance; // Creating mount image now ensures refs are resolved in right order // (see https://github.com/facebook/react/pull/7101 for explanation). var nextChildMountImage = ReactReconciler.mountComponent(nextChildInstance, transaction, hostParent, hostContainerInfo, context, selfDebugID); mountImages.push(nextChildMountImage); } } // Unmount children that are no longer present. for (name in prevChildren) { if (prevChildren.hasOwnProperty(name) && !(nextChildren && nextChildren.hasOwnProperty(name))) { prevChild = prevChildren[name]; removedNodes[name] = ReactReconciler.getHostNode(prevChild); ReactReconciler.unmountComponent(prevChild, false); } } }, /** * Unmounts all rendered children. This should be used to clean up children * when this component is unmounted. * * @param {?object} renderedChildren Previously initialized set of children. * @internal */ unmountChildren: function (renderedChildren, safely) { for (var name in renderedChildren) { if (renderedChildren.hasOwnProperty(name)) { var renderedChild = renderedChildren[name]; ReactReconciler.unmountComponent(renderedChild, safely); } } } }; module.exports = ReactChildReconciler; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(66))) /***/ }), /* 232 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var DOMChildrenOperations = __webpack_require__(67); var ReactDOMIDOperations = __webpack_require__(239); /** * Abstracts away all functionality of the reconciler that requires knowledge of * the browser context. TODO: These callers should be refactored to avoid the * need for this injection. */ var ReactComponentBrowserEnvironment = { processChildrenUpdates: ReactDOMIDOperations.dangerouslyProcessChildrenUpdates, replaceNodeWithMarkup: DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup }; module.exports = ReactComponentBrowserEnvironment; /***/ }), /* 233 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _prodInvariant = __webpack_require__(2), _assign = __webpack_require__(6); var React = __webpack_require__(33); var ReactComponentEnvironment = __webpack_require__(71); var ReactCurrentOwner = __webpack_require__(17); var ReactErrorUtils = __webpack_require__(72); var ReactInstanceMap = __webpack_require__(41); var ReactInstrumentation = __webpack_require__(11); var ReactNodeTypes = __webpack_require__(125); var ReactReconciler = __webpack_require__(29); if (true) { var checkReactTypeSpec = __webpack_require__(284); } var emptyObject = __webpack_require__(38); var invariant = __webpack_require__(0); var shallowEqual = __webpack_require__(65); var shouldUpdateReactComponent = __webpack_require__(79); var warning = __webpack_require__(1); var CompositeTypes = { ImpureClass: 0, PureClass: 1, StatelessFunctional: 2 }; function StatelessComponent(Component) {} StatelessComponent.prototype.render = function () { var Component = ReactInstanceMap.get(this)._currentElement.type; var element = Component(this.props, this.context, this.updater); warnIfInvalidElement(Component, element); return element; }; function warnIfInvalidElement(Component, element) { if (true) { true ? warning(element === null || element === false || React.isValidElement(element), '%s(...): A valid React element (or null) must be returned. You may have ' + 'returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : void 0; true ? warning(!Component.childContextTypes, '%s(...): childContextTypes cannot be defined on a functional component.', Component.displayName || Component.name || 'Component') : void 0; } } function shouldConstruct(Component) { return !!(Component.prototype && Component.prototype.isReactComponent); } function isPureComponent(Component) { return !!(Component.prototype && Component.prototype.isPureReactComponent); } // Separated into a function to contain deoptimizations caused by try/finally. function measureLifeCyclePerf(fn, debugID, timerType) { if (debugID === 0) { // Top-level wrappers (see ReactMount) and empty components (see // ReactDOMEmptyComponent) are invisible to hooks and devtools. // Both are implementation details that should go away in the future. return fn(); } ReactInstrumentation.debugTool.onBeginLifeCycleTimer(debugID, timerType); try { return fn(); } finally { ReactInstrumentation.debugTool.onEndLifeCycleTimer(debugID, timerType); } } /** * ------------------ The Life-Cycle of a Composite Component ------------------ * * - constructor: Initialization of state. The instance is now retained. * - componentWillMount * - render * - [children's constructors] * - [children's componentWillMount and render] * - [children's componentDidMount] * - componentDidMount * * Update Phases: * - componentWillReceiveProps (only called if parent updated) * - shouldComponentUpdate * - componentWillUpdate * - render * - [children's constructors or receive props phases] * - componentDidUpdate * * - componentWillUnmount * - [children's componentWillUnmount] * - [children destroyed] * - (destroyed): The instance is now blank, released by React and ready for GC. * * ----------------------------------------------------------------------------- */ /** * An incrementing ID assigned to each component when it is mounted. This is * used to enforce the order in which `ReactUpdates` updates dirty components. * * @private */ var nextMountID = 1; /** * @lends {ReactCompositeComponent.prototype} */ var ReactCompositeComponent = { /** * Base constructor for all composite component. * * @param {ReactElement} element * @final * @internal */ construct: function (element) { this._currentElement = element; this._rootNodeID = 0; this._compositeType = null; this._instance = null; this._hostParent = null; this._hostContainerInfo = null; // See ReactUpdateQueue this._updateBatchNumber = null; this._pendingElement = null; this._pendingStateQueue = null; this._pendingReplaceState = false; this._pendingForceUpdate = false; this._renderedNodeType = null; this._renderedComponent = null; this._context = null; this._mountOrder = 0; this._topLevelWrapper = null; // See ReactUpdates and ReactUpdateQueue. this._pendingCallbacks = null; // ComponentWillUnmount shall only be called once this._calledComponentWillUnmount = false; if (true) { this._warnedAboutRefsInRender = false; } }, /** * Initializes the component, renders markup, and registers event listeners. * * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction * @param {?object} hostParent * @param {?object} hostContainerInfo * @param {?object} context * @return {?string} Rendered markup to be inserted into the DOM. * @final * @internal */ mountComponent: function (transaction, hostParent, hostContainerInfo, context) { var _this = this; this._context = context; this._mountOrder = nextMountID++; this._hostParent = hostParent; this._hostContainerInfo = hostContainerInfo; var publicProps = this._currentElement.props; var publicContext = this._processContext(context); var Component = this._currentElement.type; var updateQueue = transaction.getUpdateQueue(); // Initialize the public class var doConstruct = shouldConstruct(Component); var inst = this._constructComponent(doConstruct, publicProps, publicContext, updateQueue); var renderedElement; // Support functional components if (!doConstruct && (inst == null || inst.render == null)) { renderedElement = inst; warnIfInvalidElement(Component, renderedElement); !(inst === null || inst === false || React.isValidElement(inst)) ? true ? invariant(false, '%s(...): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : _prodInvariant('105', Component.displayName || Component.name || 'Component') : void 0; inst = new StatelessComponent(Component); this._compositeType = CompositeTypes.StatelessFunctional; } else { if (isPureComponent(Component)) { this._compositeType = CompositeTypes.PureClass; } else { this._compositeType = CompositeTypes.ImpureClass; } } if (true) { // This will throw later in _renderValidatedComponent, but add an early // warning now to help debugging if (inst.render == null) { true ? warning(false, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', Component.displayName || Component.name || 'Component') : void 0; } var propsMutated = inst.props !== publicProps; var componentName = Component.displayName || Component.name || 'Component'; true ? warning(inst.props === undefined || !propsMutated, '%s(...): When calling super() in `%s`, make sure to pass ' + 'up the same props that your component\'s constructor was passed.', componentName, componentName) : void 0; } // These should be set up in the constructor, but as a convenience for // simpler class abstractions, we set them up after the fact. inst.props = publicProps; inst.context = publicContext; inst.refs = emptyObject; inst.updater = updateQueue; this._instance = inst; // Store a reference from the instance back to the internal representation ReactInstanceMap.set(inst, this); if (true) { // Since plain JS classes are defined without any special initialization // logic, we can not catch common errors early. Therefore, we have to // catch them here, at initialization time, instead. true ? warning(!inst.getInitialState || inst.getInitialState.isReactClassApproved || inst.state, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', this.getName() || 'a component') : void 0; true ? warning(!inst.getDefaultProps || inst.getDefaultProps.isReactClassApproved, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', this.getName() || 'a component') : void 0; true ? warning(!inst.propTypes, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', this.getName() || 'a component') : void 0; true ? warning(!inst.contextTypes, 'contextTypes was defined as an instance property on %s. Use a ' + 'static property to define contextTypes instead.', this.getName() || 'a component') : void 0; true ? warning(typeof inst.componentShouldUpdate !== 'function', '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', this.getName() || 'A component') : void 0; true ? warning(typeof inst.componentDidUnmount !== 'function', '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', this.getName() || 'A component') : void 0; true ? warning(typeof inst.componentWillRecieveProps !== 'function', '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', this.getName() || 'A component') : void 0; } var initialState = inst.state; if (initialState === undefined) { inst.state = initialState = null; } !(typeof initialState === 'object' && !Array.isArray(initialState)) ? true ? invariant(false, '%s.state: must be set to an object or null', this.getName() || 'ReactCompositeComponent') : _prodInvariant('106', this.getName() || 'ReactCompositeComponent') : void 0; this._pendingStateQueue = null; this._pendingReplaceState = false; this._pendingForceUpdate = false; var markup; if (inst.unstable_handleError) { markup = this.performInitialMountWithErrorHandling(renderedElement, hostParent, hostContainerInfo, transaction, context); } else { markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context); } if (inst.componentDidMount) { if (true) { transaction.getReactMountReady().enqueue(function () { measureLifeCyclePerf(function () { return inst.componentDidMount(); }, _this._debugID, 'componentDidMount'); }); } else { transaction.getReactMountReady().enqueue(inst.componentDidMount, inst); } } return markup; }, _constructComponent: function (doConstruct, publicProps, publicContext, updateQueue) { if (true) { ReactCurrentOwner.current = this; try { return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue); } finally { ReactCurrentOwner.current = null; } } else { return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue); } }, _constructComponentWithoutOwner: function (doConstruct, publicProps, publicContext, updateQueue) { var Component = this._currentElement.type; if (doConstruct) { if (true) { return measureLifeCyclePerf(function () { return new Component(publicProps, publicContext, updateQueue); }, this._debugID, 'ctor'); } else { return new Component(publicProps, publicContext, updateQueue); } } // This can still be an instance in case of factory components // but we'll count this as time spent rendering as the more common case. if (true) { return measureLifeCyclePerf(function () { return Component(publicProps, publicContext, updateQueue); }, this._debugID, 'render'); } else { return Component(publicProps, publicContext, updateQueue); } }, performInitialMountWithErrorHandling: function (renderedElement, hostParent, hostContainerInfo, transaction, context) { var markup; var checkpoint = transaction.checkpoint(); try { markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context); } catch (e) { // Roll back to checkpoint, handle error (which may add items to the transaction), and take a new checkpoint transaction.rollback(checkpoint); this._instance.unstable_handleError(e); if (this._pendingStateQueue) { this._instance.state = this._processPendingState(this._instance.props, this._instance.context); } checkpoint = transaction.checkpoint(); this._renderedComponent.unmountComponent(true); transaction.rollback(checkpoint); // Try again - we've informed the component about the error, so they can render an error message this time. // If this throws again, the error will bubble up (and can be caught by a higher error boundary). markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context); } return markup; }, performInitialMount: function (renderedElement, hostParent, hostContainerInfo, transaction, context) { var inst = this._instance; var debugID = 0; if (true) { debugID = this._debugID; } if (inst.componentWillMount) { if (true) { measureLifeCyclePerf(function () { return inst.componentWillMount(); }, debugID, 'componentWillMount'); } else { inst.componentWillMount(); } // When mounting, calls to `setState` by `componentWillMount` will set // `this._pendingStateQueue` without triggering a re-render. if (this._pendingStateQueue) { inst.state = this._processPendingState(inst.props, inst.context); } } // If not a stateless component, we now render if (renderedElement === undefined) { renderedElement = this._renderValidatedComponent(); } var nodeType = ReactNodeTypes.getType(renderedElement); this._renderedNodeType = nodeType; var child = this._instantiateReactComponent(renderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */ ); this._renderedComponent = child; var markup = ReactReconciler.mountComponent(child, transaction, hostParent, hostContainerInfo, this._processChildContext(context), debugID); if (true) { if (debugID !== 0) { var childDebugIDs = child._debugID !== 0 ? [child._debugID] : []; ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs); } } return markup; }, getHostNode: function () { return ReactReconciler.getHostNode(this._renderedComponent); }, /** * Releases any resources allocated by `mountComponent`. * * @final * @internal */ unmountComponent: function (safely) { if (!this._renderedComponent) { return; } var inst = this._instance; if (inst.componentWillUnmount && !inst._calledComponentWillUnmount) { inst._calledComponentWillUnmount = true; if (safely) { var name = this.getName() + '.componentWillUnmount()'; ReactErrorUtils.invokeGuardedCallback(name, inst.componentWillUnmount.bind(inst)); } else { if (true) { measureLifeCyclePerf(function () { return inst.componentWillUnmount(); }, this._debugID, 'componentWillUnmount'); } else { inst.componentWillUnmount(); } } } if (this._renderedComponent) { ReactReconciler.unmountComponent(this._renderedComponent, safely); this._renderedNodeType = null; this._renderedComponent = null; this._instance = null; } // Reset pending fields // Even if this component is scheduled for another update in ReactUpdates, // it would still be ignored because these fields are reset. this._pendingStateQueue = null; this._pendingReplaceState = false; this._pendingForceUpdate = false; this._pendingCallbacks = null; this._pendingElement = null; // These fields do not really need to be reset since this object is no // longer accessible. this._context = null; this._rootNodeID = 0; this._topLevelWrapper = null; // Delete the reference from the instance to this internal representation // which allow the internals to be properly cleaned up even if the user // leaks a reference to the public instance. ReactInstanceMap.remove(inst); // Some existing components rely on inst.props even after they've been // destroyed (in event handlers). // TODO: inst.props = null; // TODO: inst.state = null; // TODO: inst.context = null; }, /** * Filters the context object to only contain keys specified in * `contextTypes` * * @param {object} context * @return {?object} * @private */ _maskContext: function (context) { var Component = this._currentElement.type; var contextTypes = Component.contextTypes; if (!contextTypes) { return emptyObject; } var maskedContext = {}; for (var contextName in contextTypes) { maskedContext[contextName] = context[contextName]; } return maskedContext; }, /** * Filters the context object to only contain keys specified in * `contextTypes`, and asserts that they are valid. * * @param {object} context * @return {?object} * @private */ _processContext: function (context) { var maskedContext = this._maskContext(context); if (true) { var Component = this._currentElement.type; if (Component.contextTypes) { this._checkContextTypes(Component.contextTypes, maskedContext, 'context'); } } return maskedContext; }, /** * @param {object} currentContext * @return {object} * @private */ _processChildContext: function (currentContext) { var Component = this._currentElement.type; var inst = this._instance; var childContext; if (inst.getChildContext) { if (true) { ReactInstrumentation.debugTool.onBeginProcessingChildContext(); try { childContext = inst.getChildContext(); } finally { ReactInstrumentation.debugTool.onEndProcessingChildContext(); } } else { childContext = inst.getChildContext(); } } if (childContext) { !(typeof Component.childContextTypes === 'object') ? true ? invariant(false, '%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().', this.getName() || 'ReactCompositeComponent') : _prodInvariant('107', this.getName() || 'ReactCompositeComponent') : void 0; if (true) { this._checkContextTypes(Component.childContextTypes, childContext, 'child context'); } for (var name in childContext) { !(name in Component.childContextTypes) ? true ? invariant(false, '%s.getChildContext(): key "%s" is not defined in childContextTypes.', this.getName() || 'ReactCompositeComponent', name) : _prodInvariant('108', this.getName() || 'ReactCompositeComponent', name) : void 0; } return _assign({}, currentContext, childContext); } return currentContext; }, /** * Assert that the context types are valid * * @param {object} typeSpecs Map of context field to a ReactPropType * @param {object} values Runtime values that need to be type-checked * @param {string} location e.g. "prop", "context", "child context" * @private */ _checkContextTypes: function (typeSpecs, values, location) { if (true) { checkReactTypeSpec(typeSpecs, values, location, this.getName(), null, this._debugID); } }, receiveComponent: function (nextElement, transaction, nextContext) { var prevElement = this._currentElement; var prevContext = this._context; this._pendingElement = null; this.updateComponent(transaction, prevElement, nextElement, prevContext, nextContext); }, /** * If any of `_pendingElement`, `_pendingStateQueue`, or `_pendingForceUpdate` * is set, update the component. * * @param {ReactReconcileTransaction} transaction * @internal */ performUpdateIfNecessary: function (transaction) { if (this._pendingElement != null) { ReactReconciler.receiveComponent(this, this._pendingElement, transaction, this._context); } else if (this._pendingStateQueue !== null || this._pendingForceUpdate) { this.updateComponent(transaction, this._currentElement, this._currentElement, this._context, this._context); } else { this._updateBatchNumber = null; } }, /** * Perform an update to a mounted component. The componentWillReceiveProps and * shouldComponentUpdate methods are called, then (assuming the update isn't * skipped) the remaining update lifecycle methods are called and the DOM * representation is updated. * * By default, this implements React's rendering and reconciliation algorithm. * Sophisticated clients may wish to override this. * * @param {ReactReconcileTransaction} transaction * @param {ReactElement} prevParentElement * @param {ReactElement} nextParentElement * @internal * @overridable */ updateComponent: function (transaction, prevParentElement, nextParentElement, prevUnmaskedContext, nextUnmaskedContext) { var inst = this._instance; !(inst != null) ? true ? invariant(false, 'Attempted to update component `%s` that has already been unmounted (or failed to mount).', this.getName() || 'ReactCompositeComponent') : _prodInvariant('136', this.getName() || 'ReactCompositeComponent') : void 0; var willReceive = false; var nextContext; // Determine if the context has changed or not if (this._context === nextUnmaskedContext) { nextContext = inst.context; } else { nextContext = this._processContext(nextUnmaskedContext); willReceive = true; } var prevProps = prevParentElement.props; var nextProps = nextParentElement.props; // Not a simple state update but a props update if (prevParentElement !== nextParentElement) { willReceive = true; } // An update here will schedule an update but immediately set // _pendingStateQueue which will ensure that any state updates gets // immediately reconciled instead of waiting for the next batch. if (willReceive && inst.componentWillReceiveProps) { if (true) { measureLifeCyclePerf(function () { return inst.componentWillReceiveProps(nextProps, nextContext); }, this._debugID, 'componentWillReceiveProps'); } else { inst.componentWillReceiveProps(nextProps, nextContext); } } var nextState = this._processPendingState(nextProps, nextContext); var shouldUpdate = true; if (!this._pendingForceUpdate) { if (inst.shouldComponentUpdate) { if (true) { shouldUpdate = measureLifeCyclePerf(function () { return inst.shouldComponentUpdate(nextProps, nextState, nextContext); }, this._debugID, 'shouldComponentUpdate'); } else { shouldUpdate = inst.shouldComponentUpdate(nextProps, nextState, nextContext); } } else { if (this._compositeType === CompositeTypes.PureClass) { shouldUpdate = !shallowEqual(prevProps, nextProps) || !shallowEqual(inst.state, nextState); } } } if (true) { true ? warning(shouldUpdate !== undefined, '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', this.getName() || 'ReactCompositeComponent') : void 0; } this._updateBatchNumber = null; if (shouldUpdate) { this._pendingForceUpdate = false; // Will set `this.props`, `this.state` and `this.context`. this._performComponentUpdate(nextParentElement, nextProps, nextState, nextContext, transaction, nextUnmaskedContext); } else { // If it's determined that a component should not update, we still want // to set props and state but we shortcut the rest of the update. this._currentElement = nextParentElement; this._context = nextUnmaskedContext; inst.props = nextProps; inst.state = nextState; inst.context = nextContext; } }, _processPendingState: function (props, context) { var inst = this._instance; var queue = this._pendingStateQueue; var replace = this._pendingReplaceState; this._pendingReplaceState = false; this._pendingStateQueue = null; if (!queue) { return inst.state; } if (replace && queue.length === 1) { return queue[0]; } var nextState = _assign({}, replace ? queue[0] : inst.state); for (var i = replace ? 1 : 0; i < queue.length; i++) { var partial = queue[i]; _assign(nextState, typeof partial === 'function' ? partial.call(inst, nextState, props, context) : partial); } return nextState; }, /** * Merges new props and state, notifies delegate methods of update and * performs update. * * @param {ReactElement} nextElement Next element * @param {object} nextProps Next public object to set as properties. * @param {?object} nextState Next object to set as state. * @param {?object} nextContext Next public object to set as context. * @param {ReactReconcileTransaction} transaction * @param {?object} unmaskedContext * @private */ _performComponentUpdate: function (nextElement, nextProps, nextState, nextContext, transaction, unmaskedContext) { var _this2 = this; var inst = this._instance; var hasComponentDidUpdate = Boolean(inst.componentDidUpdate); var prevProps; var prevState; var prevContext; if (hasComponentDidUpdate) { prevProps = inst.props; prevState = inst.state; prevContext = inst.context; } if (inst.componentWillUpdate) { if (true) { measureLifeCyclePerf(function () { return inst.componentWillUpdate(nextProps, nextState, nextContext); }, this._debugID, 'componentWillUpdate'); } else { inst.componentWillUpdate(nextProps, nextState, nextContext); } } this._currentElement = nextElement; this._context = unmaskedContext; inst.props = nextProps; inst.state = nextState; inst.context = nextContext; this._updateRenderedComponent(transaction, unmaskedContext); if (hasComponentDidUpdate) { if (true) { transaction.getReactMountReady().enqueue(function () { measureLifeCyclePerf(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), _this2._debugID, 'componentDidUpdate'); }); } else { transaction.getReactMountReady().enqueue(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), inst); } } }, /** * Call the component's `render` method and update the DOM accordingly. * * @param {ReactReconcileTransaction} transaction * @internal */ _updateRenderedComponent: function (transaction, context) { var prevComponentInstance = this._renderedComponent; var prevRenderedElement = prevComponentInstance._currentElement; var nextRenderedElement = this._renderValidatedComponent(); var debugID = 0; if (true) { debugID = this._debugID; } if (shouldUpdateReactComponent(prevRenderedElement, nextRenderedElement)) { ReactReconciler.receiveComponent(prevComponentInstance, nextRenderedElement, transaction, this._processChildContext(context)); } else { var oldHostNode = ReactReconciler.getHostNode(prevComponentInstance); ReactReconciler.unmountComponent(prevComponentInstance, false); var nodeType = ReactNodeTypes.getType(nextRenderedElement); this._renderedNodeType = nodeType; var child = this._instantiateReactComponent(nextRenderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */ ); this._renderedComponent = child; var nextMarkup = ReactReconciler.mountComponent(child, transaction, this._hostParent, this._hostContainerInfo, this._processChildContext(context), debugID); if (true) { if (debugID !== 0) { var childDebugIDs = child._debugID !== 0 ? [child._debugID] : []; ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs); } } this._replaceNodeWithMarkup(oldHostNode, nextMarkup, prevComponentInstance); } }, /** * Overridden in shallow rendering. * * @protected */ _replaceNodeWithMarkup: function (oldHostNode, nextMarkup, prevInstance) { ReactComponentEnvironment.replaceNodeWithMarkup(oldHostNode, nextMarkup, prevInstance); }, /** * @protected */ _renderValidatedComponentWithoutOwnerOrContext: function () { var inst = this._instance; var renderedElement; if (true) { renderedElement = measureLifeCyclePerf(function () { return inst.render(); }, this._debugID, 'render'); } else { renderedElement = inst.render(); } if (true) { // We allow auto-mocks to proceed as if they're returning null. if (renderedElement === undefined && inst.render._isMockFunction) { // This is probably bad practice. Consider warning here and // deprecating this convenience. renderedElement = null; } } return renderedElement; }, /** * @private */ _renderValidatedComponent: function () { var renderedElement; if (true) { ReactCurrentOwner.current = this; try { renderedElement = this._renderValidatedComponentWithoutOwnerOrContext(); } finally { ReactCurrentOwner.current = null; } } else { renderedElement = this._renderValidatedComponentWithoutOwnerOrContext(); } !( // TODO: An `isValidNode` function would probably be more appropriate renderedElement === null || renderedElement === false || React.isValidElement(renderedElement)) ? true ? invariant(false, '%s.render(): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', this.getName() || 'ReactCompositeComponent') : _prodInvariant('109', this.getName() || 'ReactCompositeComponent') : void 0; return renderedElement; }, /** * Lazily allocates the refs object and stores `component` as `ref`. * * @param {string} ref Reference name. * @param {component} component Component to store as `ref`. * @final * @private */ attachRef: function (ref, component) { var inst = this.getPublicInstance(); !(inst != null) ? true ? invariant(false, 'Stateless function components cannot have refs.') : _prodInvariant('110') : void 0; var publicComponentInstance = component.getPublicInstance(); if (true) { var componentName = component && component.getName ? component.getName() : 'a component'; true ? warning(publicComponentInstance != null || component._compositeType !== CompositeTypes.StatelessFunctional, 'Stateless function components cannot be given refs ' + '(See ref "%s" in %s created by %s). ' + 'Attempts to access this ref will fail.', ref, componentName, this.getName()) : void 0; } var refs = inst.refs === emptyObject ? inst.refs = {} : inst.refs; refs[ref] = publicComponentInstance; }, /** * Detaches a reference name. * * @param {string} ref Name to dereference. * @final * @private */ detachRef: function (ref) { var refs = this.getPublicInstance().refs; delete refs[ref]; }, /** * Get a text description of the component that can be used to identify it * in error messages. * @return {string} The name or null. * @internal */ getName: function () { var type = this._currentElement.type; var constructor = this._instance && this._instance.constructor; return type.displayName || constructor && constructor.displayName || type.name || constructor && constructor.name || null; }, /** * Get the publicly accessible representation of this component - i.e. what * is exposed by refs and returned by render. Can be null for stateless * components. * * @return {ReactComponent} the public component instance. * @internal */ getPublicInstance: function () { var inst = this._instance; if (this._compositeType === CompositeTypes.StatelessFunctional) { return null; } return inst; }, // Stub _instantiateReactComponent: null }; module.exports = ReactCompositeComponent; /***/ }), /* 234 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ /* globals __REACT_DEVTOOLS_GLOBAL_HOOK__*/ var ReactDOMComponentTree = __webpack_require__(7); var ReactDefaultInjection = __webpack_require__(251); var ReactMount = __webpack_require__(124); var ReactReconciler = __webpack_require__(29); var ReactUpdates = __webpack_require__(14); var ReactVersion = __webpack_require__(266); var findDOMNode = __webpack_require__(286); var getHostComponentFromComposite = __webpack_require__(131); var renderSubtreeIntoContainer = __webpack_require__(293); var warning = __webpack_require__(1); ReactDefaultInjection.inject(); var ReactDOM = { findDOMNode: findDOMNode, render: ReactMount.render, unmountComponentAtNode: ReactMount.unmountComponentAtNode, version: ReactVersion, /* eslint-disable camelcase */ unstable_batchedUpdates: ReactUpdates.batchedUpdates, unstable_renderSubtreeIntoContainer: renderSubtreeIntoContainer }; // Inject the runtime into a devtools global hook regardless of browser. // Allows for debugging when the hook is injected on the page. if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') { __REACT_DEVTOOLS_GLOBAL_HOOK__.inject({ ComponentTree: { getClosestInstanceFromNode: ReactDOMComponentTree.getClosestInstanceFromNode, getNodeFromInstance: function (inst) { // inst is an internal instance (but could be a composite) if (inst._renderedComponent) { inst = getHostComponentFromComposite(inst); } if (inst) { return ReactDOMComponentTree.getNodeFromInstance(inst); } else { return null; } } }, Mount: ReactMount, Reconciler: ReactReconciler }); } if (true) { var ExecutionEnvironment = __webpack_require__(4); if (ExecutionEnvironment.canUseDOM && window.top === window.self) { // First check if devtools is not installed if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') { // If we're in Chrome or Firefox, provide a download link if not installed. if (navigator.userAgent.indexOf('Chrome') > -1 && navigator.userAgent.indexOf('Edge') === -1 || navigator.userAgent.indexOf('Firefox') > -1) { // Firefox does not have the issue with devtools loaded over file:// var showFileUrlMessage = window.location.protocol.indexOf('http') === -1 && navigator.userAgent.indexOf('Firefox') === -1; console.debug('Download the React DevTools ' + (showFileUrlMessage ? 'and use an HTTP server (instead of a file: URL) ' : '') + 'for a better development experience: ' + 'https://fb.me/react-devtools'); } } var testFunc = function testFn() {}; true ? warning((testFunc.name || testFunc.toString()).indexOf('testFn') !== -1, 'It looks like you\'re using a minified copy of the development build ' + 'of React. When deploying React apps to production, make sure to use ' + 'the production build which skips development warnings and is faster. ' + 'See https://fb.me/react-minification for more details.') : void 0; // If we're in IE8, check to see if we are in compatibility mode and provide // information on preventing compatibility mode var ieCompatibilityMode = document.documentMode && document.documentMode < 8; true ? warning(!ieCompatibilityMode, 'Internet Explorer is running in compatibility mode; please add the ' + 'following tag to your HTML to prevent this from happening: ' + '<meta http-equiv="X-UA-Compatible" content="IE=edge" />') : void 0; var expectedFeatures = [ // shims Array.isArray, Array.prototype.every, Array.prototype.forEach, Array.prototype.indexOf, Array.prototype.map, Date.now, Function.prototype.bind, Object.keys, String.prototype.trim]; for (var i = 0; i < expectedFeatures.length; i++) { if (!expectedFeatures[i]) { true ? warning(false, 'One or more ES5 shims expected by React are not available: ' + 'https://fb.me/react-warning-polyfills') : void 0; break; } } } } if (true) { var ReactInstrumentation = __webpack_require__(11); var ReactDOMUnknownPropertyHook = __webpack_require__(248); var ReactDOMNullInputValuePropHook = __webpack_require__(242); var ReactDOMInvalidARIAHook = __webpack_require__(241); ReactInstrumentation.debugTool.addHook(ReactDOMUnknownPropertyHook); ReactInstrumentation.debugTool.addHook(ReactDOMNullInputValuePropHook); ReactInstrumentation.debugTool.addHook(ReactDOMInvalidARIAHook); } module.exports = ReactDOM; /***/ }), /* 235 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ /* global hasOwnProperty:true */ var _prodInvariant = __webpack_require__(2), _assign = __webpack_require__(6); var AutoFocusUtils = __webpack_require__(222); var CSSPropertyOperations = __webpack_require__(224); var DOMLazyTree = __webpack_require__(26); var DOMNamespaces = __webpack_require__(68); var DOMProperty = __webpack_require__(20); var DOMPropertyOperations = __webpack_require__(117); var EventPluginHub = __webpack_require__(27); var EventPluginRegistry = __webpack_require__(52); var ReactBrowserEventEmitter = __webpack_require__(53); var ReactDOMComponentFlags = __webpack_require__(118); var ReactDOMComponentTree = __webpack_require__(7); var ReactDOMInput = __webpack_require__(240); var ReactDOMOption = __webpack_require__(243); var ReactDOMSelect = __webpack_require__(119); var ReactDOMTextarea = __webpack_require__(246); var ReactInstrumentation = __webpack_require__(11); var ReactMultiChild = __webpack_require__(259); var ReactServerRenderingTransaction = __webpack_require__(264); var emptyFunction = __webpack_require__(10); var escapeTextContentForBrowser = __webpack_require__(56); var invariant = __webpack_require__(0); var isEventSupported = __webpack_require__(78); var shallowEqual = __webpack_require__(65); var validateDOMNesting = __webpack_require__(80); var warning = __webpack_require__(1); var Flags = ReactDOMComponentFlags; var deleteListener = EventPluginHub.deleteListener; var getNode = ReactDOMComponentTree.getNodeFromInstance; var listenTo = ReactBrowserEventEmitter.listenTo; var registrationNameModules = EventPluginRegistry.registrationNameModules; // For quickly matching children type, to test if can be treated as content. var CONTENT_TYPES = { 'string': true, 'number': true }; var STYLE = 'style'; var HTML = '__html'; var RESERVED_PROPS = { children: null, dangerouslySetInnerHTML: null, suppressContentEditableWarning: null }; // Node type for document fragments (Node.DOCUMENT_FRAGMENT_NODE). var DOC_FRAGMENT_TYPE = 11; function getDeclarationErrorAddendum(internalInstance) { if (internalInstance) { var owner = internalInstance._currentElement._owner || null; if (owner) { var name = owner.getName(); if (name) { return ' This DOM node was rendered by `' + name + '`.'; } } } return ''; } function friendlyStringify(obj) { if (typeof obj === 'object') { if (Array.isArray(obj)) { return '[' + obj.map(friendlyStringify).join(', ') + ']'; } else { var pairs = []; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var keyEscaped = /^[a-z$_][\w$_]*$/i.test(key) ? key : JSON.stringify(key); pairs.push(keyEscaped + ': ' + friendlyStringify(obj[key])); } } return '{' + pairs.join(', ') + '}'; } } else if (typeof obj === 'string') { return JSON.stringify(obj); } else if (typeof obj === 'function') { return '[function object]'; } // Differs from JSON.stringify in that undefined because undefined and that // inf and nan don't become null return String(obj); } var styleMutationWarning = {}; function checkAndWarnForMutatedStyle(style1, style2, component) { if (style1 == null || style2 == null) { return; } if (shallowEqual(style1, style2)) { return; } var componentName = component._tag; var owner = component._currentElement._owner; var ownerName; if (owner) { ownerName = owner.getName(); } var hash = ownerName + '|' + componentName; if (styleMutationWarning.hasOwnProperty(hash)) { return; } styleMutationWarning[hash] = true; true ? warning(false, '`%s` was passed a style object that has previously been mutated. ' + 'Mutating `style` is deprecated. Consider cloning it beforehand. Check ' + 'the `render` %s. Previous style: %s. Mutated style: %s.', componentName, owner ? 'of `' + ownerName + '`' : 'using <' + componentName + '>', friendlyStringify(style1), friendlyStringify(style2)) : void 0; } /** * @param {object} component * @param {?object} props */ function assertValidProps(component, props) { if (!props) { return; } // Note the use of `==` which checks for null or undefined. if (voidElementTags[component._tag]) { !(props.children == null && props.dangerouslySetInnerHTML == null) ? true ? invariant(false, '%s is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.%s', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : _prodInvariant('137', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : void 0; } if (props.dangerouslySetInnerHTML != null) { !(props.children == null) ? true ? invariant(false, 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.') : _prodInvariant('60') : void 0; !(typeof props.dangerouslySetInnerHTML === 'object' && HTML in props.dangerouslySetInnerHTML) ? true ? invariant(false, '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://fb.me/react-invariant-dangerously-set-inner-html for more information.') : _prodInvariant('61') : void 0; } if (true) { true ? warning(props.innerHTML == null, 'Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.') : void 0; true ? warning(props.suppressContentEditableWarning || !props.contentEditable || props.children == null, 'A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.') : void 0; true ? warning(props.onFocusIn == null && props.onFocusOut == null, 'React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.') : void 0; } !(props.style == null || typeof props.style === 'object') ? true ? invariant(false, 'The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + \'em\'}} when using JSX.%s', getDeclarationErrorAddendum(component)) : _prodInvariant('62', getDeclarationErrorAddendum(component)) : void 0; } function enqueuePutListener(inst, registrationName, listener, transaction) { if (transaction instanceof ReactServerRenderingTransaction) { return; } if (true) { // IE8 has no API for event capturing and the `onScroll` event doesn't // bubble. true ? warning(registrationName !== 'onScroll' || isEventSupported('scroll', true), 'This browser doesn\'t support the `onScroll` event') : void 0; } var containerInfo = inst._hostContainerInfo; var isDocumentFragment = containerInfo._node && containerInfo._node.nodeType === DOC_FRAGMENT_TYPE; var doc = isDocumentFragment ? containerInfo._node : containerInfo._ownerDocument; listenTo(registrationName, doc); transaction.getReactMountReady().enqueue(putListener, { inst: inst, registrationName: registrationName, listener: listener }); } function putListener() { var listenerToPut = this; EventPluginHub.putListener(listenerToPut.inst, listenerToPut.registrationName, listenerToPut.listener); } function inputPostMount() { var inst = this; ReactDOMInput.postMountWrapper(inst); } function textareaPostMount() { var inst = this; ReactDOMTextarea.postMountWrapper(inst); } function optionPostMount() { var inst = this; ReactDOMOption.postMountWrapper(inst); } var setAndValidateContentChildDev = emptyFunction; if (true) { setAndValidateContentChildDev = function (content) { var hasExistingContent = this._contentDebugID != null; var debugID = this._debugID; // This ID represents the inlined child that has no backing instance: var contentDebugID = -debugID; if (content == null) { if (hasExistingContent) { ReactInstrumentation.debugTool.onUnmountComponent(this._contentDebugID); } this._contentDebugID = null; return; } validateDOMNesting(null, String(content), this, this._ancestorInfo); this._contentDebugID = contentDebugID; if (hasExistingContent) { ReactInstrumentation.debugTool.onBeforeUpdateComponent(contentDebugID, content); ReactInstrumentation.debugTool.onUpdateComponent(contentDebugID); } else { ReactInstrumentation.debugTool.onBeforeMountComponent(contentDebugID, content, debugID); ReactInstrumentation.debugTool.onMountComponent(contentDebugID); ReactInstrumentation.debugTool.onSetChildren(debugID, [contentDebugID]); } }; } // There are so many media events, it makes sense to just // maintain a list rather than create a `trapBubbledEvent` for each var mediaEvents = { topAbort: 'abort', topCanPlay: 'canplay', topCanPlayThrough: 'canplaythrough', topDurationChange: 'durationchange', topEmptied: 'emptied', topEncrypted: 'encrypted', topEnded: 'ended', topError: 'error', topLoadedData: 'loadeddata', topLoadedMetadata: 'loadedmetadata', topLoadStart: 'loadstart', topPause: 'pause', topPlay: 'play', topPlaying: 'playing', topProgress: 'progress', topRateChange: 'ratechange', topSeeked: 'seeked', topSeeking: 'seeking', topStalled: 'stalled', topSuspend: 'suspend', topTimeUpdate: 'timeupdate', topVolumeChange: 'volumechange', topWaiting: 'waiting' }; function trapBubbledEventsLocal() { var inst = this; // If a component renders to null or if another component fatals and causes // the state of the tree to be corrupted, `node` here can be null. !inst._rootNodeID ? true ? invariant(false, 'Must be mounted to trap events') : _prodInvariant('63') : void 0; var node = getNode(inst); !node ? true ? invariant(false, 'trapBubbledEvent(...): Requires node to be rendered.') : _prodInvariant('64') : void 0; switch (inst._tag) { case 'iframe': case 'object': inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topLoad', 'load', node)]; break; case 'video': case 'audio': inst._wrapperState.listeners = []; // Create listener for each media event for (var event in mediaEvents) { if (mediaEvents.hasOwnProperty(event)) { inst._wrapperState.listeners.push(ReactBrowserEventEmitter.trapBubbledEvent(event, mediaEvents[event], node)); } } break; case 'source': inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topError', 'error', node)]; break; case 'img': inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topError', 'error', node), ReactBrowserEventEmitter.trapBubbledEvent('topLoad', 'load', node)]; break; case 'form': inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topReset', 'reset', node), ReactBrowserEventEmitter.trapBubbledEvent('topSubmit', 'submit', node)]; break; case 'input': case 'select': case 'textarea': inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topInvalid', 'invalid', node)]; break; } } function postUpdateSelectWrapper() { ReactDOMSelect.postUpdateWrapper(this); } // For HTML, certain tags should omit their close tag. We keep a whitelist for // those special-case tags. var omittedCloseTags = { 'area': true, 'base': true, 'br': true, 'col': true, 'embed': true, 'hr': true, 'img': true, 'input': true, 'keygen': true, 'link': true, 'meta': true, 'param': true, 'source': true, 'track': true, 'wbr': true }; var newlineEatingTags = { 'listing': true, 'pre': true, 'textarea': true }; // For HTML, certain tags cannot have children. This has the same purpose as // `omittedCloseTags` except that `menuitem` should still have its closing tag. var voidElementTags = _assign({ 'menuitem': true }, omittedCloseTags); // We accept any tag to be rendered but since this gets injected into arbitrary // HTML, we want to make sure that it's a safe tag. // http://www.w3.org/TR/REC-xml/#NT-Name var VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/; // Simplified subset var validatedTagCache = {}; var hasOwnProperty = {}.hasOwnProperty; function validateDangerousTag(tag) { if (!hasOwnProperty.call(validatedTagCache, tag)) { !VALID_TAG_REGEX.test(tag) ? true ? invariant(false, 'Invalid tag: %s', tag) : _prodInvariant('65', tag) : void 0; validatedTagCache[tag] = true; } } function isCustomComponent(tagName, props) { return tagName.indexOf('-') >= 0 || props.is != null; } var globalIdCounter = 1; /** * Creates a new React class that is idempotent and capable of containing other * React components. It accepts event listeners and DOM properties that are * valid according to `DOMProperty`. * * - Event listeners: `onClick`, `onMouseDown`, etc. * - DOM properties: `className`, `name`, `title`, etc. * * The `style` property functions differently from the DOM API. It accepts an * object mapping of style properties to values. * * @constructor ReactDOMComponent * @extends ReactMultiChild */ function ReactDOMComponent(element) { var tag = element.type; validateDangerousTag(tag); this._currentElement = element; this._tag = tag.toLowerCase(); this._namespaceURI = null; this._renderedChildren = null; this._previousStyle = null; this._previousStyleCopy = null; this._hostNode = null; this._hostParent = null; this._rootNodeID = 0; this._domID = 0; this._hostContainerInfo = null; this._wrapperState = null; this._topLevelWrapper = null; this._flags = 0; if (true) { this._ancestorInfo = null; setAndValidateContentChildDev.call(this, null); } } ReactDOMComponent.displayName = 'ReactDOMComponent'; ReactDOMComponent.Mixin = { /** * Generates root tag markup then recurses. This method has side effects and * is not idempotent. * * @internal * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction * @param {?ReactDOMComponent} the parent component instance * @param {?object} info about the host container * @param {object} context * @return {string} The computed markup. */ mountComponent: function (transaction, hostParent, hostContainerInfo, context) { this._rootNodeID = globalIdCounter++; this._domID = hostContainerInfo._idCounter++; this._hostParent = hostParent; this._hostContainerInfo = hostContainerInfo; var props = this._currentElement.props; switch (this._tag) { case 'audio': case 'form': case 'iframe': case 'img': case 'link': case 'object': case 'source': case 'video': this._wrapperState = { listeners: null }; transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this); break; case 'input': ReactDOMInput.mountWrapper(this, props, hostParent); props = ReactDOMInput.getHostProps(this, props); transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this); break; case 'option': ReactDOMOption.mountWrapper(this, props, hostParent); props = ReactDOMOption.getHostProps(this, props); break; case 'select': ReactDOMSelect.mountWrapper(this, props, hostParent); props = ReactDOMSelect.getHostProps(this, props); transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this); break; case 'textarea': ReactDOMTextarea.mountWrapper(this, props, hostParent); props = ReactDOMTextarea.getHostProps(this, props); transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this); break; } assertValidProps(this, props); // We create tags in the namespace of their parent container, except HTML // tags get no namespace. var namespaceURI; var parentTag; if (hostParent != null) { namespaceURI = hostParent._namespaceURI; parentTag = hostParent._tag; } else if (hostContainerInfo._tag) { namespaceURI = hostContainerInfo._namespaceURI; parentTag = hostContainerInfo._tag; } if (namespaceURI == null || namespaceURI === DOMNamespaces.svg && parentTag === 'foreignobject') { namespaceURI = DOMNamespaces.html; } if (namespaceURI === DOMNamespaces.html) { if (this._tag === 'svg') { namespaceURI = DOMNamespaces.svg; } else if (this._tag === 'math') { namespaceURI = DOMNamespaces.mathml; } } this._namespaceURI = namespaceURI; if (true) { var parentInfo; if (hostParent != null) { parentInfo = hostParent._ancestorInfo; } else if (hostContainerInfo._tag) { parentInfo = hostContainerInfo._ancestorInfo; } if (parentInfo) { // parentInfo should always be present except for the top-level // component when server rendering validateDOMNesting(this._tag, null, this, parentInfo); } this._ancestorInfo = validateDOMNesting.updatedAncestorInfo(parentInfo, this._tag, this); } var mountImage; if (transaction.useCreateElement) { var ownerDocument = hostContainerInfo._ownerDocument; var el; if (namespaceURI === DOMNamespaces.html) { if (this._tag === 'script') { // Create the script via .innerHTML so its "parser-inserted" flag is // set to true and it does not execute var div = ownerDocument.createElement('div'); var type = this._currentElement.type; div.innerHTML = '<' + type + '></' + type + '>'; el = div.removeChild(div.firstChild); } else if (props.is) { el = ownerDocument.createElement(this._currentElement.type, props.is); } else { // Separate else branch instead of using `props.is || undefined` above becuase of a Firefox bug. // See discussion in https://github.com/facebook/react/pull/6896 // and discussion in https://bugzilla.mozilla.org/show_bug.cgi?id=1276240 el = ownerDocument.createElement(this._currentElement.type); } } else { el = ownerDocument.createElementNS(namespaceURI, this._currentElement.type); } ReactDOMComponentTree.precacheNode(this, el); this._flags |= Flags.hasCachedChildNodes; if (!this._hostParent) { DOMPropertyOperations.setAttributeForRoot(el); } this._updateDOMProperties(null, props, transaction); var lazyTree = DOMLazyTree(el); this._createInitialChildren(transaction, props, context, lazyTree); mountImage = lazyTree; } else { var tagOpen = this._createOpenTagMarkupAndPutListeners(transaction, props); var tagContent = this._createContentMarkup(transaction, props, context); if (!tagContent && omittedCloseTags[this._tag]) { mountImage = tagOpen + '/>'; } else { mountImage = tagOpen + '>' + tagContent + '</' + this._currentElement.type + '>'; } } switch (this._tag) { case 'input': transaction.getReactMountReady().enqueue(inputPostMount, this); if (props.autoFocus) { transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this); } break; case 'textarea': transaction.getReactMountReady().enqueue(textareaPostMount, this); if (props.autoFocus) { transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this); } break; case 'select': if (props.autoFocus) { transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this); } break; case 'button': if (props.autoFocus) { transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this); } break; case 'option': transaction.getReactMountReady().enqueue(optionPostMount, this); break; } return mountImage; }, /** * Creates markup for the open tag and all attributes. * * This method has side effects because events get registered. * * Iterating over object properties is faster than iterating over arrays. * @see http://jsperf.com/obj-vs-arr-iteration * * @private * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction * @param {object} props * @return {string} Markup of opening tag. */ _createOpenTagMarkupAndPutListeners: function (transaction, props) { var ret = '<' + this._currentElement.type; for (var propKey in props) { if (!props.hasOwnProperty(propKey)) { continue; } var propValue = props[propKey]; if (propValue == null) { continue; } if (registrationNameModules.hasOwnProperty(propKey)) { if (propValue) { enqueuePutListener(this, propKey, propValue, transaction); } } else { if (propKey === STYLE) { if (propValue) { if (true) { // See `_updateDOMProperties`. style block this._previousStyle = propValue; } propValue = this._previousStyleCopy = _assign({}, props.style); } propValue = CSSPropertyOperations.createMarkupForStyles(propValue, this); } var markup = null; if (this._tag != null && isCustomComponent(this._tag, props)) { if (!RESERVED_PROPS.hasOwnProperty(propKey)) { markup = DOMPropertyOperations.createMarkupForCustomAttribute(propKey, propValue); } } else { markup = DOMPropertyOperations.createMarkupForProperty(propKey, propValue); } if (markup) { ret += ' ' + markup; } } } // For static pages, no need to put React ID and checksum. Saves lots of // bytes. if (transaction.renderToStaticMarkup) { return ret; } if (!this._hostParent) { ret += ' ' + DOMPropertyOperations.createMarkupForRoot(); } ret += ' ' + DOMPropertyOperations.createMarkupForID(this._domID); return ret; }, /** * Creates markup for the content between the tags. * * @private * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction * @param {object} props * @param {object} context * @return {string} Content markup. */ _createContentMarkup: function (transaction, props, context) { var ret = ''; // Intentional use of != to avoid catching zero/false. var innerHTML = props.dangerouslySetInnerHTML; if (innerHTML != null) { if (innerHTML.__html != null) { ret = innerHTML.__html; } } else { var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null; var childrenToUse = contentToUse != null ? null : props.children; if (contentToUse != null) { // TODO: Validate that text is allowed as a child of this node ret = escapeTextContentForBrowser(contentToUse); if (true) { setAndValidateContentChildDev.call(this, contentToUse); } } else if (childrenToUse != null) { var mountImages = this.mountChildren(childrenToUse, transaction, context); ret = mountImages.join(''); } } if (newlineEatingTags[this._tag] && ret.charAt(0) === '\n') { // text/html ignores the first character in these tags if it's a newline // Prefer to break application/xml over text/html (for now) by adding // a newline specifically to get eaten by the parser. (Alternately for // textareas, replacing "^\n" with "\r\n" doesn't get eaten, and the first // \r is normalized out by HTMLTextAreaElement#value.) // See: <http://www.w3.org/TR/html-polyglot/#newlines-in-textarea-and-pre> // See: <http://www.w3.org/TR/html5/syntax.html#element-restrictions> // See: <http://www.w3.org/TR/html5/syntax.html#newlines> // See: Parsing of "textarea" "listing" and "pre" elements // from <http://www.w3.org/TR/html5/syntax.html#parsing-main-inbody> return '\n' + ret; } else { return ret; } }, _createInitialChildren: function (transaction, props, context, lazyTree) { // Intentional use of != to avoid catching zero/false. var innerHTML = props.dangerouslySetInnerHTML; if (innerHTML != null) { if (innerHTML.__html != null) { DOMLazyTree.queueHTML(lazyTree, innerHTML.__html); } } else { var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null; var childrenToUse = contentToUse != null ? null : props.children; // TODO: Validate that text is allowed as a child of this node if (contentToUse != null) { // Avoid setting textContent when the text is empty. In IE11 setting // textContent on a text area will cause the placeholder to not // show within the textarea until it has been focused and blurred again. // https://github.com/facebook/react/issues/6731#issuecomment-254874553 if (contentToUse !== '') { if (true) { setAndValidateContentChildDev.call(this, contentToUse); } DOMLazyTree.queueText(lazyTree, contentToUse); } } else if (childrenToUse != null) { var mountImages = this.mountChildren(childrenToUse, transaction, context); for (var i = 0; i < mountImages.length; i++) { DOMLazyTree.queueChild(lazyTree, mountImages[i]); } } } }, /** * Receives a next element and updates the component. * * @internal * @param {ReactElement} nextElement * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction * @param {object} context */ receiveComponent: function (nextElement, transaction, context) { var prevElement = this._currentElement; this._currentElement = nextElement; this.updateComponent(transaction, prevElement, nextElement, context); }, /** * Updates a DOM component after it has already been allocated and * attached to the DOM. Reconciles the root DOM node, then recurses. * * @param {ReactReconcileTransaction} transaction * @param {ReactElement} prevElement * @param {ReactElement} nextElement * @internal * @overridable */ updateComponent: function (transaction, prevElement, nextElement, context) { var lastProps = prevElement.props; var nextProps = this._currentElement.props; switch (this._tag) { case 'input': lastProps = ReactDOMInput.getHostProps(this, lastProps); nextProps = ReactDOMInput.getHostProps(this, nextProps); break; case 'option': lastProps = ReactDOMOption.getHostProps(this, lastProps); nextProps = ReactDOMOption.getHostProps(this, nextProps); break; case 'select': lastProps = ReactDOMSelect.getHostProps(this, lastProps); nextProps = ReactDOMSelect.getHostProps(this, nextProps); break; case 'textarea': lastProps = ReactDOMTextarea.getHostProps(this, lastProps); nextProps = ReactDOMTextarea.getHostProps(this, nextProps); break; } assertValidProps(this, nextProps); this._updateDOMProperties(lastProps, nextProps, transaction); this._updateDOMChildren(lastProps, nextProps, transaction, context); switch (this._tag) { case 'input': // Update the wrapper around inputs *after* updating props. This has to // happen after `_updateDOMProperties`. Otherwise HTML5 input validations // raise warnings and prevent the new value from being assigned. ReactDOMInput.updateWrapper(this); break; case 'textarea': ReactDOMTextarea.updateWrapper(this); break; case 'select': // <select> value update needs to occur after <option> children // reconciliation transaction.getReactMountReady().enqueue(postUpdateSelectWrapper, this); break; } }, /** * Reconciles the properties by detecting differences in property values and * updating the DOM as necessary. This function is probably the single most * critical path for performance optimization. * * TODO: Benchmark whether checking for changed values in memory actually * improves performance (especially statically positioned elements). * TODO: Benchmark the effects of putting this at the top since 99% of props * do not change for a given reconciliation. * TODO: Benchmark areas that can be improved with caching. * * @private * @param {object} lastProps * @param {object} nextProps * @param {?DOMElement} node */ _updateDOMProperties: function (lastProps, nextProps, transaction) { var propKey; var styleName; var styleUpdates; for (propKey in lastProps) { if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey) || lastProps[propKey] == null) { continue; } if (propKey === STYLE) { var lastStyle = this._previousStyleCopy; for (styleName in lastStyle) { if (lastStyle.hasOwnProperty(styleName)) { styleUpdates = styleUpdates || {}; styleUpdates[styleName] = ''; } } this._previousStyleCopy = null; } else if (registrationNameModules.hasOwnProperty(propKey)) { if (lastProps[propKey]) { // Only call deleteListener if there was a listener previously or // else willDeleteListener gets called when there wasn't actually a // listener (e.g., onClick={null}) deleteListener(this, propKey); } } else if (isCustomComponent(this._tag, lastProps)) { if (!RESERVED_PROPS.hasOwnProperty(propKey)) { DOMPropertyOperations.deleteValueForAttribute(getNode(this), propKey); } } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) { DOMPropertyOperations.deleteValueForProperty(getNode(this), propKey); } } for (propKey in nextProps) { var nextProp = nextProps[propKey]; var lastProp = propKey === STYLE ? this._previousStyleCopy : lastProps != null ? lastProps[propKey] : undefined; if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp || nextProp == null && lastProp == null) { continue; } if (propKey === STYLE) { if (nextProp) { if (true) { checkAndWarnForMutatedStyle(this._previousStyleCopy, this._previousStyle, this); this._previousStyle = nextProp; } nextProp = this._previousStyleCopy = _assign({}, nextProp); } else { this._previousStyleCopy = null; } if (lastProp) { // Unset styles on `lastProp` but not on `nextProp`. for (styleName in lastProp) { if (lastProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) { styleUpdates = styleUpdates || {}; styleUpdates[styleName] = ''; } } // Update styles that changed since `lastProp`. for (styleName in nextProp) { if (nextProp.hasOwnProperty(styleName) && lastProp[styleName] !== nextProp[styleName]) { styleUpdates = styleUpdates || {}; styleUpdates[styleName] = nextProp[styleName]; } } } else { // Relies on `updateStylesByID` not mutating `styleUpdates`. styleUpdates = nextProp; } } else if (registrationNameModules.hasOwnProperty(propKey)) { if (nextProp) { enqueuePutListener(this, propKey, nextProp, transaction); } else if (lastProp) { deleteListener(this, propKey); } } else if (isCustomComponent(this._tag, nextProps)) { if (!RESERVED_PROPS.hasOwnProperty(propKey)) { DOMPropertyOperations.setValueForAttribute(getNode(this), propKey, nextProp); } } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) { var node = getNode(this); // If we're updating to null or undefined, we should remove the property // from the DOM node instead of inadvertently setting to a string. This // brings us in line with the same behavior we have on initial render. if (nextProp != null) { DOMPropertyOperations.setValueForProperty(node, propKey, nextProp); } else { DOMPropertyOperations.deleteValueForProperty(node, propKey); } } } if (styleUpdates) { CSSPropertyOperations.setValueForStyles(getNode(this), styleUpdates, this); } }, /** * Reconciles the children with the various properties that affect the * children content. * * @param {object} lastProps * @param {object} nextProps * @param {ReactReconcileTransaction} transaction * @param {object} context */ _updateDOMChildren: function (lastProps, nextProps, transaction, context) { var lastContent = CONTENT_TYPES[typeof lastProps.children] ? lastProps.children : null; var nextContent = CONTENT_TYPES[typeof nextProps.children] ? nextProps.children : null; var lastHtml = lastProps.dangerouslySetInnerHTML && lastProps.dangerouslySetInnerHTML.__html; var nextHtml = nextProps.dangerouslySetInnerHTML && nextProps.dangerouslySetInnerHTML.__html; // Note the use of `!=` which checks for null or undefined. var lastChildren = lastContent != null ? null : lastProps.children; var nextChildren = nextContent != null ? null : nextProps.children; // If we're switching from children to content/html or vice versa, remove // the old content var lastHasContentOrHtml = lastContent != null || lastHtml != null; var nextHasContentOrHtml = nextContent != null || nextHtml != null; if (lastChildren != null && nextChildren == null) { this.updateChildren(null, transaction, context); } else if (lastHasContentOrHtml && !nextHasContentOrHtml) { this.updateTextContent(''); if (true) { ReactInstrumentation.debugTool.onSetChildren(this._debugID, []); } } if (nextContent != null) { if (lastContent !== nextContent) { this.updateTextContent('' + nextContent); if (true) { setAndValidateContentChildDev.call(this, nextContent); } } } else if (nextHtml != null) { if (lastHtml !== nextHtml) { this.updateMarkup('' + nextHtml); } if (true) { ReactInstrumentation.debugTool.onSetChildren(this._debugID, []); } } else if (nextChildren != null) { if (true) { setAndValidateContentChildDev.call(this, null); } this.updateChildren(nextChildren, transaction, context); } }, getHostNode: function () { return getNode(this); }, /** * Destroys all event registrations for this instance. Does not remove from * the DOM. That must be done by the parent. * * @internal */ unmountComponent: function (safely) { switch (this._tag) { case 'audio': case 'form': case 'iframe': case 'img': case 'link': case 'object': case 'source': case 'video': var listeners = this._wrapperState.listeners; if (listeners) { for (var i = 0; i < listeners.length; i++) { listeners[i].remove(); } } break; case 'html': case 'head': case 'body': /** * Components like <html> <head> and <body> can't be removed or added * easily in a cross-browser way, however it's valuable to be able to * take advantage of React's reconciliation for styling and <title> * management. So we just document it and throw in dangerous cases. */ true ? true ? invariant(false, '<%s> tried to unmount. Because of cross-browser quirks it is impossible to unmount some top-level components (eg <html>, <head>, and <body>) reliably and efficiently. To fix this, have a single top-level component that never unmounts render these elements.', this._tag) : _prodInvariant('66', this._tag) : void 0; break; } this.unmountChildren(safely); ReactDOMComponentTree.uncacheNode(this); EventPluginHub.deleteAllListeners(this); this._rootNodeID = 0; this._domID = 0; this._wrapperState = null; if (true) { setAndValidateContentChildDev.call(this, null); } }, getPublicInstance: function () { return getNode(this); } }; _assign(ReactDOMComponent.prototype, ReactDOMComponent.Mixin, ReactMultiChild.Mixin); module.exports = ReactDOMComponent; /***/ }), /* 236 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var validateDOMNesting = __webpack_require__(80); var DOC_NODE_TYPE = 9; function ReactDOMContainerInfo(topLevelWrapper, node) { var info = { _topLevelWrapper: topLevelWrapper, _idCounter: 1, _ownerDocument: node ? node.nodeType === DOC_NODE_TYPE ? node : node.ownerDocument : null, _node: node, _tag: node ? node.nodeName.toLowerCase() : null, _namespaceURI: node ? node.namespaceURI : null }; if (true) { info._ancestorInfo = node ? validateDOMNesting.updatedAncestorInfo(null, info._tag, null) : null; } return info; } module.exports = ReactDOMContainerInfo; /***/ }), /* 237 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2014-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _assign = __webpack_require__(6); var DOMLazyTree = __webpack_require__(26); var ReactDOMComponentTree = __webpack_require__(7); var ReactDOMEmptyComponent = function (instantiate) { // ReactCompositeComponent uses this: this._currentElement = null; // ReactDOMComponentTree uses these: this._hostNode = null; this._hostParent = null; this._hostContainerInfo = null; this._domID = 0; }; _assign(ReactDOMEmptyComponent.prototype, { mountComponent: function (transaction, hostParent, hostContainerInfo, context) { var domID = hostContainerInfo._idCounter++; this._domID = domID; this._hostParent = hostParent; this._hostContainerInfo = hostContainerInfo; var nodeValue = ' react-empty: ' + this._domID + ' '; if (transaction.useCreateElement) { var ownerDocument = hostContainerInfo._ownerDocument; var node = ownerDocument.createComment(nodeValue); ReactDOMComponentTree.precacheNode(this, node); return DOMLazyTree(node); } else { if (transaction.renderToStaticMarkup) { // Normally we'd insert a comment node, but since this is a situation // where React won't take over (static pages), we can simply return // nothing. return ''; } return '<!--' + nodeValue + '-->'; } }, receiveComponent: function () {}, getHostNode: function () { return ReactDOMComponentTree.getNodeFromInstance(this); }, unmountComponent: function () { ReactDOMComponentTree.uncacheNode(this); } }); module.exports = ReactDOMEmptyComponent; /***/ }), /* 238 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var ReactDOMFeatureFlags = { useCreateElement: true, useFiber: false }; module.exports = ReactDOMFeatureFlags; /***/ }), /* 239 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var DOMChildrenOperations = __webpack_require__(67); var ReactDOMComponentTree = __webpack_require__(7); /** * Operations used to process updates to DOM nodes. */ var ReactDOMIDOperations = { /** * Updates a component's children by processing a series of updates. * * @param {array<object>} updates List of update configurations. * @internal */ dangerouslyProcessChildrenUpdates: function (parentInst, updates) { var node = ReactDOMComponentTree.getNodeFromInstance(parentInst); DOMChildrenOperations.processUpdates(node, updates); } }; module.exports = ReactDOMIDOperations; /***/ }), /* 240 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _prodInvariant = __webpack_require__(2), _assign = __webpack_require__(6); var DOMPropertyOperations = __webpack_require__(117); var LinkedValueUtils = __webpack_require__(70); var ReactDOMComponentTree = __webpack_require__(7); var ReactUpdates = __webpack_require__(14); var invariant = __webpack_require__(0); var warning = __webpack_require__(1); var didWarnValueLink = false; var didWarnCheckedLink = false; var didWarnValueDefaultValue = false; var didWarnCheckedDefaultChecked = false; var didWarnControlledToUncontrolled = false; var didWarnUncontrolledToControlled = false; function forceUpdateIfMounted() { if (this._rootNodeID) { // DOM component is still mounted; update ReactDOMInput.updateWrapper(this); } } function isControlled(props) { var usesChecked = props.type === 'checkbox' || props.type === 'radio'; return usesChecked ? props.checked != null : props.value != null; } /** * Implements an <input> host component that allows setting these optional * props: `checked`, `value`, `defaultChecked`, and `defaultValue`. * * If `checked` or `value` are not supplied (or null/undefined), user actions * that affect the checked state or value will trigger updates to the element. * * If they are supplied (and not null/undefined), the rendered element will not * trigger updates to the element. Instead, the props must change in order for * the rendered element to be updated. * * The rendered element will be initialized as unchecked (or `defaultChecked`) * with an empty value (or `defaultValue`). * * @see http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html */ var ReactDOMInput = { getHostProps: function (inst, props) { var value = LinkedValueUtils.getValue(props); var checked = LinkedValueUtils.getChecked(props); var hostProps = _assign({ // Make sure we set .type before any other properties (setting .value // before .type means .value is lost in IE11 and below) type: undefined, // Make sure we set .step before .value (setting .value before .step // means .value is rounded on mount, based upon step precision) step: undefined, // Make sure we set .min & .max before .value (to ensure proper order // in corner cases such as min or max deriving from value, e.g. Issue #7170) min: undefined, max: undefined }, props, { defaultChecked: undefined, defaultValue: undefined, value: value != null ? value : inst._wrapperState.initialValue, checked: checked != null ? checked : inst._wrapperState.initialChecked, onChange: inst._wrapperState.onChange }); return hostProps; }, mountWrapper: function (inst, props) { if (true) { LinkedValueUtils.checkPropTypes('input', props, inst._currentElement._owner); var owner = inst._currentElement._owner; if (props.valueLink !== undefined && !didWarnValueLink) { true ? warning(false, '`valueLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0; didWarnValueLink = true; } if (props.checkedLink !== undefined && !didWarnCheckedLink) { true ? warning(false, '`checkedLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0; didWarnCheckedLink = true; } if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) { true ? warning(false, '%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0; didWarnCheckedDefaultChecked = true; } if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) { true ? warning(false, '%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0; didWarnValueDefaultValue = true; } } var defaultValue = props.defaultValue; inst._wrapperState = { initialChecked: props.checked != null ? props.checked : props.defaultChecked, initialValue: props.value != null ? props.value : defaultValue, listeners: null, onChange: _handleChange.bind(inst), controlled: isControlled(props) }; }, updateWrapper: function (inst) { var props = inst._currentElement.props; if (true) { var controlled = isControlled(props); var owner = inst._currentElement._owner; if (!inst._wrapperState.controlled && controlled && !didWarnUncontrolledToControlled) { true ? warning(false, '%s is changing an uncontrolled input of type %s to be controlled. ' + 'Input elements should not switch from uncontrolled to controlled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0; didWarnUncontrolledToControlled = true; } if (inst._wrapperState.controlled && !controlled && !didWarnControlledToUncontrolled) { true ? warning(false, '%s is changing a controlled input of type %s to be uncontrolled. ' + 'Input elements should not switch from controlled to uncontrolled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0; didWarnControlledToUncontrolled = true; } } // TODO: Shouldn't this be getChecked(props)? var checked = props.checked; if (checked != null) { DOMPropertyOperations.setValueForProperty(ReactDOMComponentTree.getNodeFromInstance(inst), 'checked', checked || false); } var node = ReactDOMComponentTree.getNodeFromInstance(inst); var value = LinkedValueUtils.getValue(props); if (value != null) { if (value === 0 && node.value === '') { node.value = '0'; // Note: IE9 reports a number inputs as 'text', so check props instead. } else if (props.type === 'number') { // Simulate `input.valueAsNumber`. IE9 does not support it var valueAsNumber = parseFloat(node.value, 10) || 0; // eslint-disable-next-line if (value != valueAsNumber) { // Cast `value` to a string to ensure the value is set correctly. While // browsers typically do this as necessary, jsdom doesn't. node.value = '' + value; } // eslint-disable-next-line } else if (value != node.value) { // Cast `value` to a string to ensure the value is set correctly. While // browsers typically do this as necessary, jsdom doesn't. node.value = '' + value; } } else { if (props.value == null && props.defaultValue != null) { // In Chrome, assigning defaultValue to certain input types triggers input validation. // For number inputs, the display value loses trailing decimal points. For email inputs, // Chrome raises "The specified value <x> is not a valid email address". // // Here we check to see if the defaultValue has actually changed, avoiding these problems // when the user is inputting text // // https://github.com/facebook/react/issues/7253 if (node.defaultValue !== '' + props.defaultValue) { node.defaultValue = '' + props.defaultValue; } } if (props.checked == null && props.defaultChecked != null) { node.defaultChecked = !!props.defaultChecked; } } }, postMountWrapper: function (inst) { var props = inst._currentElement.props; // This is in postMount because we need access to the DOM node, which is not // available until after the component has mounted. var node = ReactDOMComponentTree.getNodeFromInstance(inst); // Detach value from defaultValue. We won't do anything if we're working on // submit or reset inputs as those values & defaultValues are linked. They // are not resetable nodes so this operation doesn't matter and actually // removes browser-default values (eg "Submit Query") when no value is // provided. switch (props.type) { case 'submit': case 'reset': break; case 'color': case 'date': case 'datetime': case 'datetime-local': case 'month': case 'time': case 'week': // This fixes the no-show issue on iOS Safari and Android Chrome: // https://github.com/facebook/react/issues/7233 node.value = ''; node.value = node.defaultValue; break; default: node.value = node.value; break; } // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug // this is needed to work around a chrome bug where setting defaultChecked // will sometimes influence the value of checked (even after detachment). // Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416 // We need to temporarily unset name to avoid disrupting radio button groups. var name = node.name; if (name !== '') { node.name = ''; } node.defaultChecked = !node.defaultChecked; node.defaultChecked = !node.defaultChecked; if (name !== '') { node.name = name; } } }; function _handleChange(event) { var props = this._currentElement.props; var returnValue = LinkedValueUtils.executeOnChange(props, event); // Here we use asap to wait until all updates have propagated, which // is important when using controlled components within layers: // https://github.com/facebook/react/issues/1698 ReactUpdates.asap(forceUpdateIfMounted, this); var name = props.name; if (props.type === 'radio' && name != null) { var rootNode = ReactDOMComponentTree.getNodeFromInstance(this); var queryRoot = rootNode; while (queryRoot.parentNode) { queryRoot = queryRoot.parentNode; } // If `rootNode.form` was non-null, then we could try `form.elements`, // but that sometimes behaves strangely in IE8. We could also try using // `form.getElementsByName`, but that will only return direct children // and won't include inputs that use the HTML5 `form=` attribute. Since // the input might not even be in a form, let's just use the global // `querySelectorAll` to ensure we don't miss anything. var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type="radio"]'); for (var i = 0; i < group.length; i++) { var otherNode = group[i]; if (otherNode === rootNode || otherNode.form !== rootNode.form) { continue; } // This will throw if radio buttons rendered by different copies of React // and the same name are rendered into the same form (same as #1939). // That's probably okay; we don't support it just as we don't support // mixing React radio buttons with non-React ones. var otherInstance = ReactDOMComponentTree.getInstanceFromNode(otherNode); !otherInstance ? true ? invariant(false, 'ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.') : _prodInvariant('90') : void 0; // If this is a controlled radio button group, forcing the input that // was previously checked to update will cause it to be come re-checked // as appropriate. ReactUpdates.asap(forceUpdateIfMounted, otherInstance); } } return returnValue; } module.exports = ReactDOMInput; /***/ }), /* 241 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var DOMProperty = __webpack_require__(20); var ReactComponentTreeHook = __webpack_require__(13); var warning = __webpack_require__(1); var warnedProperties = {}; var rARIA = new RegExp('^(aria)-[' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$'); function validateProperty(tagName, name, debugID) { if (warnedProperties.hasOwnProperty(name) && warnedProperties[name]) { return true; } if (rARIA.test(name)) { var lowerCasedName = name.toLowerCase(); var standardName = DOMProperty.getPossibleStandardName.hasOwnProperty(lowerCasedName) ? DOMProperty.getPossibleStandardName[lowerCasedName] : null; // If this is an aria-* attribute, but is not listed in the known DOM // DOM properties, then it is an invalid aria-* attribute. if (standardName == null) { warnedProperties[name] = true; return false; } // aria-* attributes should be lowercase; suggest the lowercase version. if (name !== standardName) { true ? warning(false, 'Unknown ARIA attribute %s. Did you mean %s?%s', name, standardName, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; warnedProperties[name] = true; return true; } } return true; } function warnInvalidARIAProps(debugID, element) { var invalidProps = []; for (var key in element.props) { var isValid = validateProperty(element.type, key, debugID); if (!isValid) { invalidProps.push(key); } } var unknownPropString = invalidProps.map(function (prop) { return '`' + prop + '`'; }).join(', '); if (invalidProps.length === 1) { true ? warning(false, 'Invalid aria prop %s on <%s> tag. ' + 'For details, see https://fb.me/invalid-aria-prop%s', unknownPropString, element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; } else if (invalidProps.length > 1) { true ? warning(false, 'Invalid aria props %s on <%s> tag. ' + 'For details, see https://fb.me/invalid-aria-prop%s', unknownPropString, element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; } } function handleElement(debugID, element) { if (element == null || typeof element.type !== 'string') { return; } if (element.type.indexOf('-') >= 0 || element.props.is) { return; } warnInvalidARIAProps(debugID, element); } var ReactDOMInvalidARIAHook = { onBeforeMountComponent: function (debugID, element) { if (true) { handleElement(debugID, element); } }, onBeforeUpdateComponent: function (debugID, element) { if (true) { handleElement(debugID, element); } } }; module.exports = ReactDOMInvalidARIAHook; /***/ }), /* 242 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var ReactComponentTreeHook = __webpack_require__(13); var warning = __webpack_require__(1); var didWarnValueNull = false; function handleElement(debugID, element) { if (element == null) { return; } if (element.type !== 'input' && element.type !== 'textarea' && element.type !== 'select') { return; } if (element.props != null && element.props.value === null && !didWarnValueNull) { true ? warning(false, '`value` prop on `%s` should not be null. ' + 'Consider using the empty string to clear the component or `undefined` ' + 'for uncontrolled components.%s', element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; didWarnValueNull = true; } } var ReactDOMNullInputValuePropHook = { onBeforeMountComponent: function (debugID, element) { handleElement(debugID, element); }, onBeforeUpdateComponent: function (debugID, element) { handleElement(debugID, element); } }; module.exports = ReactDOMNullInputValuePropHook; /***/ }), /* 243 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _assign = __webpack_require__(6); var React = __webpack_require__(33); var ReactDOMComponentTree = __webpack_require__(7); var ReactDOMSelect = __webpack_require__(119); var warning = __webpack_require__(1); var didWarnInvalidOptionChildren = false; function flattenChildren(children) { var content = ''; // Flatten children and warn if they aren't strings or numbers; // invalid types are ignored. React.Children.forEach(children, function (child) { if (child == null) { return; } if (typeof child === 'string' || typeof child === 'number') { content += child; } else if (!didWarnInvalidOptionChildren) { didWarnInvalidOptionChildren = true; true ? warning(false, 'Only strings and numbers are supported as <option> children.') : void 0; } }); return content; } /** * Implements an <option> host component that warns when `selected` is set. */ var ReactDOMOption = { mountWrapper: function (inst, props, hostParent) { // TODO (yungsters): Remove support for `selected` in <option>. if (true) { true ? warning(props.selected == null, 'Use the `defaultValue` or `value` props on <select> instead of ' + 'setting `selected` on <option>.') : void 0; } // Look up whether this option is 'selected' var selectValue = null; if (hostParent != null) { var selectParent = hostParent; if (selectParent._tag === 'optgroup') { selectParent = selectParent._hostParent; } if (selectParent != null && selectParent._tag === 'select') { selectValue = ReactDOMSelect.getSelectValueContext(selectParent); } } // If the value is null (e.g., no specified value or after initial mount) // or missing (e.g., for <datalist>), we don't change props.selected var selected = null; if (selectValue != null) { var value; if (props.value != null) { value = props.value + ''; } else { value = flattenChildren(props.children); } selected = false; if (Array.isArray(selectValue)) { // multiple for (var i = 0; i < selectValue.length; i++) { if ('' + selectValue[i] === value) { selected = true; break; } } } else { selected = '' + selectValue === value; } } inst._wrapperState = { selected: selected }; }, postMountWrapper: function (inst) { // value="" should make a value attribute (#6219) var props = inst._currentElement.props; if (props.value != null) { var node = ReactDOMComponentTree.getNodeFromInstance(inst); node.setAttribute('value', props.value); } }, getHostProps: function (inst, props) { var hostProps = _assign({ selected: undefined, children: undefined }, props); // Read state only from initial mount because <select> updates value // manually; we need the initial state only for server rendering if (inst._wrapperState.selected != null) { hostProps.selected = inst._wrapperState.selected; } var content = flattenChildren(props.children); if (content) { hostProps.children = content; } return hostProps; } }; module.exports = ReactDOMOption; /***/ }), /* 244 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var ExecutionEnvironment = __webpack_require__(4); var getNodeForCharacterOffset = __webpack_require__(290); var getTextContentAccessor = __webpack_require__(132); /** * While `isCollapsed` is available on the Selection object and `collapsed` * is available on the Range object, IE11 sometimes gets them wrong. * If the anchor/focus nodes and offsets are the same, the range is collapsed. */ function isCollapsed(anchorNode, anchorOffset, focusNode, focusOffset) { return anchorNode === focusNode && anchorOffset === focusOffset; } /** * Get the appropriate anchor and focus node/offset pairs for IE. * * The catch here is that IE's selection API doesn't provide information * about whether the selection is forward or backward, so we have to * behave as though it's always forward. * * IE text differs from modern selection in that it behaves as though * block elements end with a new line. This means character offsets will * differ between the two APIs. * * @param {DOMElement} node * @return {object} */ function getIEOffsets(node) { var selection = document.selection; var selectedRange = selection.createRange(); var selectedLength = selectedRange.text.length; // Duplicate selection so we can move range without breaking user selection. var fromStart = selectedRange.duplicate(); fromStart.moveToElementText(node); fromStart.setEndPoint('EndToStart', selectedRange); var startOffset = fromStart.text.length; var endOffset = startOffset + selectedLength; return { start: startOffset, end: endOffset }; } /** * @param {DOMElement} node * @return {?object} */ function getModernOffsets(node) { var selection = window.getSelection && window.getSelection(); if (!selection || selection.rangeCount === 0) { return null; } var anchorNode = selection.anchorNode; var anchorOffset = selection.anchorOffset; var focusNode = selection.focusNode; var focusOffset = selection.focusOffset; var currentRange = selection.getRangeAt(0); // In Firefox, range.startContainer and range.endContainer can be "anonymous // divs", e.g. the up/down buttons on an <input type="number">. Anonymous // divs do not seem to expose properties, triggering a "Permission denied // error" if any of its properties are accessed. The only seemingly possible // way to avoid erroring is to access a property that typically works for // non-anonymous divs and catch any error that may otherwise arise. See // https://bugzilla.mozilla.org/show_bug.cgi?id=208427 try { /* eslint-disable no-unused-expressions */ currentRange.startContainer.nodeType; currentRange.endContainer.nodeType; /* eslint-enable no-unused-expressions */ } catch (e) { return null; } // If the node and offset values are the same, the selection is collapsed. // `Selection.isCollapsed` is available natively, but IE sometimes gets // this value wrong. var isSelectionCollapsed = isCollapsed(selection.anchorNode, selection.anchorOffset, selection.focusNode, selection.focusOffset); var rangeLength = isSelectionCollapsed ? 0 : currentRange.toString().length; var tempRange = currentRange.cloneRange(); tempRange.selectNodeContents(node); tempRange.setEnd(currentRange.startContainer, currentRange.startOffset); var isTempRangeCollapsed = isCollapsed(tempRange.startContainer, tempRange.startOffset, tempRange.endContainer, tempRange.endOffset); var start = isTempRangeCollapsed ? 0 : tempRange.toString().length; var end = start + rangeLength; // Detect whether the selection is backward. var detectionRange = document.createRange(); detectionRange.setStart(anchorNode, anchorOffset); detectionRange.setEnd(focusNode, focusOffset); var isBackward = detectionRange.collapsed; return { start: isBackward ? end : start, end: isBackward ? start : end }; } /** * @param {DOMElement|DOMTextNode} node * @param {object} offsets */ function setIEOffsets(node, offsets) { var range = document.selection.createRange().duplicate(); var start, end; if (offsets.end === undefined) { start = offsets.start; end = start; } else if (offsets.start > offsets.end) { start = offsets.end; end = offsets.start; } else { start = offsets.start; end = offsets.end; } range.moveToElementText(node); range.moveStart('character', start); range.setEndPoint('EndToStart', range); range.moveEnd('character', end - start); range.select(); } /** * In modern non-IE browsers, we can support both forward and backward * selections. * * Note: IE10+ supports the Selection object, but it does not support * the `extend` method, which means that even in modern IE, it's not possible * to programmatically create a backward selection. Thus, for all IE * versions, we use the old IE API to create our selections. * * @param {DOMElement|DOMTextNode} node * @param {object} offsets */ function setModernOffsets(node, offsets) { if (!window.getSelection) { return; } var selection = window.getSelection(); var length = node[getTextContentAccessor()].length; var start = Math.min(offsets.start, length); var end = offsets.end === undefined ? start : Math.min(offsets.end, length); // IE 11 uses modern selection, but doesn't support the extend method. // Flip backward selections, so we can set with a single range. if (!selection.extend && start > end) { var temp = end; end = start; start = temp; } var startMarker = getNodeForCharacterOffset(node, start); var endMarker = getNodeForCharacterOffset(node, end); if (startMarker && endMarker) { var range = document.createRange(); range.setStart(startMarker.node, startMarker.offset); selection.removeAllRanges(); if (start > end) { selection.addRange(range); selection.extend(endMarker.node, endMarker.offset); } else { range.setEnd(endMarker.node, endMarker.offset); selection.addRange(range); } } } var useIEOffsets = ExecutionEnvironment.canUseDOM && 'selection' in document && !('getSelection' in window); var ReactDOMSelection = { /** * @param {DOMElement} node */ getOffsets: useIEOffsets ? getIEOffsets : getModernOffsets, /** * @param {DOMElement|DOMTextNode} node * @param {object} offsets */ setOffsets: useIEOffsets ? setIEOffsets : setModernOffsets }; module.exports = ReactDOMSelection; /***/ }), /* 245 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _prodInvariant = __webpack_require__(2), _assign = __webpack_require__(6); var DOMChildrenOperations = __webpack_require__(67); var DOMLazyTree = __webpack_require__(26); var ReactDOMComponentTree = __webpack_require__(7); var escapeTextContentForBrowser = __webpack_require__(56); var invariant = __webpack_require__(0); var validateDOMNesting = __webpack_require__(80); /** * Text nodes violate a couple assumptions that React makes about components: * * - When mounting text into the DOM, adjacent text nodes are merged. * - Text nodes cannot be assigned a React root ID. * * This component is used to wrap strings between comment nodes so that they * can undergo the same reconciliation that is applied to elements. * * TODO: Investigate representing React components in the DOM with text nodes. * * @class ReactDOMTextComponent * @extends ReactComponent * @internal */ var ReactDOMTextComponent = function (text) { // TODO: This is really a ReactText (ReactNode), not a ReactElement this._currentElement = text; this._stringText = '' + text; // ReactDOMComponentTree uses these: this._hostNode = null; this._hostParent = null; // Properties this._domID = 0; this._mountIndex = 0; this._closingComment = null; this._commentNodes = null; }; _assign(ReactDOMTextComponent.prototype, { /** * Creates the markup for this text node. This node is not intended to have * any features besides containing text content. * * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction * @return {string} Markup for this text node. * @internal */ mountComponent: function (transaction, hostParent, hostContainerInfo, context) { if (true) { var parentInfo; if (hostParent != null) { parentInfo = hostParent._ancestorInfo; } else if (hostContainerInfo != null) { parentInfo = hostContainerInfo._ancestorInfo; } if (parentInfo) { // parentInfo should always be present except for the top-level // component when server rendering validateDOMNesting(null, this._stringText, this, parentInfo); } } var domID = hostContainerInfo._idCounter++; var openingValue = ' react-text: ' + domID + ' '; var closingValue = ' /react-text '; this._domID = domID; this._hostParent = hostParent; if (transaction.useCreateElement) { var ownerDocument = hostContainerInfo._ownerDocument; var openingComment = ownerDocument.createComment(openingValue); var closingComment = ownerDocument.createComment(closingValue); var lazyTree = DOMLazyTree(ownerDocument.createDocumentFragment()); DOMLazyTree.queueChild(lazyTree, DOMLazyTree(openingComment)); if (this._stringText) { DOMLazyTree.queueChild(lazyTree, DOMLazyTree(ownerDocument.createTextNode(this._stringText))); } DOMLazyTree.queueChild(lazyTree, DOMLazyTree(closingComment)); ReactDOMComponentTree.precacheNode(this, openingComment); this._closingComment = closingComment; return lazyTree; } else { var escapedText = escapeTextContentForBrowser(this._stringText); if (transaction.renderToStaticMarkup) { // Normally we'd wrap this between comment nodes for the reasons stated // above, but since this is a situation where React won't take over // (static pages), we can simply return the text as it is. return escapedText; } return '<!--' + openingValue + '-->' + escapedText + '<!--' + closingValue + '-->'; } }, /** * Updates this component by updating the text content. * * @param {ReactText} nextText The next text content * @param {ReactReconcileTransaction} transaction * @internal */ receiveComponent: function (nextText, transaction) { if (nextText !== this._currentElement) { this._currentElement = nextText; var nextStringText = '' + nextText; if (nextStringText !== this._stringText) { // TODO: Save this as pending props and use performUpdateIfNecessary // and/or updateComponent to do the actual update for consistency with // other component types? this._stringText = nextStringText; var commentNodes = this.getHostNode(); DOMChildrenOperations.replaceDelimitedText(commentNodes[0], commentNodes[1], nextStringText); } } }, getHostNode: function () { var hostNode = this._commentNodes; if (hostNode) { return hostNode; } if (!this._closingComment) { var openingComment = ReactDOMComponentTree.getNodeFromInstance(this); var node = openingComment.nextSibling; while (true) { !(node != null) ? true ? invariant(false, 'Missing closing comment for text component %s', this._domID) : _prodInvariant('67', this._domID) : void 0; if (node.nodeType === 8 && node.nodeValue === ' /react-text ') { this._closingComment = node; break; } node = node.nextSibling; } } hostNode = [this._hostNode, this._closingComment]; this._commentNodes = hostNode; return hostNode; }, unmountComponent: function () { this._closingComment = null; this._commentNodes = null; ReactDOMComponentTree.uncacheNode(this); } }); module.exports = ReactDOMTextComponent; /***/ }), /* 246 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _prodInvariant = __webpack_require__(2), _assign = __webpack_require__(6); var LinkedValueUtils = __webpack_require__(70); var ReactDOMComponentTree = __webpack_require__(7); var ReactUpdates = __webpack_require__(14); var invariant = __webpack_require__(0); var warning = __webpack_require__(1); var didWarnValueLink = false; var didWarnValDefaultVal = false; function forceUpdateIfMounted() { if (this._rootNodeID) { // DOM component is still mounted; update ReactDOMTextarea.updateWrapper(this); } } /** * Implements a <textarea> host component that allows setting `value`, and * `defaultValue`. This differs from the traditional DOM API because value is * usually set as PCDATA children. * * If `value` is not supplied (or null/undefined), user actions that affect the * value will trigger updates to the element. * * If `value` is supplied (and not null/undefined), the rendered element will * not trigger updates to the element. Instead, the `value` prop must change in * order for the rendered element to be updated. * * The rendered element will be initialized with an empty value, the prop * `defaultValue` if specified, or the children content (deprecated). */ var ReactDOMTextarea = { getHostProps: function (inst, props) { !(props.dangerouslySetInnerHTML == null) ? true ? invariant(false, '`dangerouslySetInnerHTML` does not make sense on <textarea>.') : _prodInvariant('91') : void 0; // Always set children to the same thing. In IE9, the selection range will // get reset if `textContent` is mutated. We could add a check in setTextContent // to only set the value if/when the value differs from the node value (which would // completely solve this IE9 bug), but Sebastian+Ben seemed to like this solution. // The value can be a boolean or object so that's why it's forced to be a string. var hostProps = _assign({}, props, { value: undefined, defaultValue: undefined, children: '' + inst._wrapperState.initialValue, onChange: inst._wrapperState.onChange }); return hostProps; }, mountWrapper: function (inst, props) { if (true) { LinkedValueUtils.checkPropTypes('textarea', props, inst._currentElement._owner); if (props.valueLink !== undefined && !didWarnValueLink) { true ? warning(false, '`valueLink` prop on `textarea` is deprecated; set `value` and `onChange` instead.') : void 0; didWarnValueLink = true; } if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValDefaultVal) { true ? warning(false, 'Textarea elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled textarea ' + 'and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0; didWarnValDefaultVal = true; } } var value = LinkedValueUtils.getValue(props); var initialValue = value; // Only bother fetching default value if we're going to use it if (value == null) { var defaultValue = props.defaultValue; // TODO (yungsters): Remove support for children content in <textarea>. var children = props.children; if (children != null) { if (true) { true ? warning(false, 'Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.') : void 0; } !(defaultValue == null) ? true ? invariant(false, 'If you supply `defaultValue` on a <textarea>, do not pass children.') : _prodInvariant('92') : void 0; if (Array.isArray(children)) { !(children.length <= 1) ? true ? invariant(false, '<textarea> can only have at most one child.') : _prodInvariant('93') : void 0; children = children[0]; } defaultValue = '' + children; } if (defaultValue == null) { defaultValue = ''; } initialValue = defaultValue; } inst._wrapperState = { initialValue: '' + initialValue, listeners: null, onChange: _handleChange.bind(inst) }; }, updateWrapper: function (inst) { var props = inst._currentElement.props; var node = ReactDOMComponentTree.getNodeFromInstance(inst); var value = LinkedValueUtils.getValue(props); if (value != null) { // Cast `value` to a string to ensure the value is set correctly. While // browsers typically do this as necessary, jsdom doesn't. var newValue = '' + value; // To avoid side effects (such as losing text selection), only set value if changed if (newValue !== node.value) { node.value = newValue; } if (props.defaultValue == null) { node.defaultValue = newValue; } } if (props.defaultValue != null) { node.defaultValue = props.defaultValue; } }, postMountWrapper: function (inst) { // This is in postMount because we need access to the DOM node, which is not // available until after the component has mounted. var node = ReactDOMComponentTree.getNodeFromInstance(inst); var textContent = node.textContent; // Only set node.value if textContent is equal to the expected // initial value. In IE10/IE11 there is a bug where the placeholder attribute // will populate textContent as well. // https://developer.microsoft.com/microsoft-edge/platform/issues/101525/ if (textContent === inst._wrapperState.initialValue) { node.value = textContent; } } }; function _handleChange(event) { var props = this._currentElement.props; var returnValue = LinkedValueUtils.executeOnChange(props, event); ReactUpdates.asap(forceUpdateIfMounted, this); return returnValue; } module.exports = ReactDOMTextarea; /***/ }), /* 247 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2015-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _prodInvariant = __webpack_require__(2); var invariant = __webpack_require__(0); /** * Return the lowest common ancestor of A and B, or null if they are in * different trees. */ function getLowestCommonAncestor(instA, instB) { !('_hostNode' in instA) ? true ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0; !('_hostNode' in instB) ? true ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0; var depthA = 0; for (var tempA = instA; tempA; tempA = tempA._hostParent) { depthA++; } var depthB = 0; for (var tempB = instB; tempB; tempB = tempB._hostParent) { depthB++; } // If A is deeper, crawl up. while (depthA - depthB > 0) { instA = instA._hostParent; depthA--; } // If B is deeper, crawl up. while (depthB - depthA > 0) { instB = instB._hostParent; depthB--; } // Walk in lockstep until we find a match. var depth = depthA; while (depth--) { if (instA === instB) { return instA; } instA = instA._hostParent; instB = instB._hostParent; } return null; } /** * Return if A is an ancestor of B. */ function isAncestor(instA, instB) { !('_hostNode' in instA) ? true ? invariant(false, 'isAncestor: Invalid argument.') : _prodInvariant('35') : void 0; !('_hostNode' in instB) ? true ? invariant(false, 'isAncestor: Invalid argument.') : _prodInvariant('35') : void 0; while (instB) { if (instB === instA) { return true; } instB = instB._hostParent; } return false; } /** * Return the parent instance of the passed-in instance. */ function getParentInstance(inst) { !('_hostNode' in inst) ? true ? invariant(false, 'getParentInstance: Invalid argument.') : _prodInvariant('36') : void 0; return inst._hostParent; } /** * Simulates the traversal of a two-phase, capture/bubble event dispatch. */ function traverseTwoPhase(inst, fn, arg) { var path = []; while (inst) { path.push(inst); inst = inst._hostParent; } var i; for (i = path.length; i-- > 0;) { fn(path[i], 'captured', arg); } for (i = 0; i < path.length; i++) { fn(path[i], 'bubbled', arg); } } /** * Traverses the ID hierarchy and invokes the supplied `cb` on any IDs that * should would receive a `mouseEnter` or `mouseLeave` event. * * Does not invoke the callback on the nearest common ancestor because nothing * "entered" or "left" that element. */ function traverseEnterLeave(from, to, fn, argFrom, argTo) { var common = from && to ? getLowestCommonAncestor(from, to) : null; var pathFrom = []; while (from && from !== common) { pathFrom.push(from); from = from._hostParent; } var pathTo = []; while (to && to !== common) { pathTo.push(to); to = to._hostParent; } var i; for (i = 0; i < pathFrom.length; i++) { fn(pathFrom[i], 'bubbled', argFrom); } for (i = pathTo.length; i-- > 0;) { fn(pathTo[i], 'captured', argTo); } } module.exports = { isAncestor: isAncestor, getLowestCommonAncestor: getLowestCommonAncestor, getParentInstance: getParentInstance, traverseTwoPhase: traverseTwoPhase, traverseEnterLeave: traverseEnterLeave }; /***/ }), /* 248 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var DOMProperty = __webpack_require__(20); var EventPluginRegistry = __webpack_require__(52); var ReactComponentTreeHook = __webpack_require__(13); var warning = __webpack_require__(1); if (true) { var reactProps = { children: true, dangerouslySetInnerHTML: true, key: true, ref: true, autoFocus: true, defaultValue: true, valueLink: true, defaultChecked: true, checkedLink: true, innerHTML: true, suppressContentEditableWarning: true, onFocusIn: true, onFocusOut: true }; var warnedProperties = {}; var validateProperty = function (tagName, name, debugID) { if (DOMProperty.properties.hasOwnProperty(name) || DOMProperty.isCustomAttribute(name)) { return true; } if (reactProps.hasOwnProperty(name) && reactProps[name] || warnedProperties.hasOwnProperty(name) && warnedProperties[name]) { return true; } if (EventPluginRegistry.registrationNameModules.hasOwnProperty(name)) { return true; } warnedProperties[name] = true; var lowerCasedName = name.toLowerCase(); // data-* attributes should be lowercase; suggest the lowercase version var standardName = DOMProperty.isCustomAttribute(lowerCasedName) ? lowerCasedName : DOMProperty.getPossibleStandardName.hasOwnProperty(lowerCasedName) ? DOMProperty.getPossibleStandardName[lowerCasedName] : null; var registrationName = EventPluginRegistry.possibleRegistrationNames.hasOwnProperty(lowerCasedName) ? EventPluginRegistry.possibleRegistrationNames[lowerCasedName] : null; if (standardName != null) { true ? warning(false, 'Unknown DOM property %s. Did you mean %s?%s', name, standardName, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; return true; } else if (registrationName != null) { true ? warning(false, 'Unknown event handler property %s. Did you mean `%s`?%s', name, registrationName, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; return true; } else { // We were unable to guess which prop the user intended. // It is likely that the user was just blindly spreading/forwarding props // Components should be careful to only render valid props/attributes. // Warning will be invoked in warnUnknownProperties to allow grouping. return false; } }; } var warnUnknownProperties = function (debugID, element) { var unknownProps = []; for (var key in element.props) { var isValid = validateProperty(element.type, key, debugID); if (!isValid) { unknownProps.push(key); } } var unknownPropString = unknownProps.map(function (prop) { return '`' + prop + '`'; }).join(', '); if (unknownProps.length === 1) { true ? warning(false, 'Unknown prop %s on <%s> tag. Remove this prop from the element. ' + 'For details, see https://fb.me/react-unknown-prop%s', unknownPropString, element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; } else if (unknownProps.length > 1) { true ? warning(false, 'Unknown props %s on <%s> tag. Remove these props from the element. ' + 'For details, see https://fb.me/react-unknown-prop%s', unknownPropString, element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0; } }; function handleElement(debugID, element) { if (element == null || typeof element.type !== 'string') { return; } if (element.type.indexOf('-') >= 0 || element.props.is) { return; } warnUnknownProperties(debugID, element); } var ReactDOMUnknownPropertyHook = { onBeforeMountComponent: function (debugID, element) { handleElement(debugID, element); }, onBeforeUpdateComponent: function (debugID, element) { handleElement(debugID, element); } }; module.exports = ReactDOMUnknownPropertyHook; /***/ }), /* 249 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2016-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ var ReactInvalidSetStateWarningHook = __webpack_require__(257); var ReactHostOperationHistoryHook = __webpack_require__(255); var ReactComponentTreeHook = __webpack_require__(13); var ExecutionEnvironment = __webpack_require__(4); var performanceNow = __webpack_require__(201); var warning = __webpack_require__(1); var hooks = []; var didHookThrowForEvent = {}; function callHook(event, fn, context, arg1, arg2, arg3, arg4, arg5) { try { fn.call(context, arg1, arg2, arg3, arg4, arg5); } catch (e) { true ? warning(didHookThrowForEvent[event], 'Exception thrown by hook while handling %s: %s', event, e + '\n' + e.stack) : void 0; didHookThrowForEvent[event] = true; } } function emitEvent(event, arg1, arg2, arg3, arg4, arg5) { for (var i = 0; i < hooks.length; i++) { var hook = hooks[i]; var fn = hook[event]; if (fn) { callHook(event, fn, hook, arg1, arg2, arg3, arg4, arg5); } } } var isProfiling = false; var flushHistory = []; var lifeCycleTimerStack = []; var currentFlushNesting = 0; var currentFlushMeasurements = []; var currentFlushStartTime = 0; var currentTimerDebugID = null; var currentTimerStartTime = 0; var currentTimerNestedFlushDuration = 0; var currentTimerType = null; var lifeCycleTimerHasWarned = false; function clearHistory() { ReactComponentTreeHook.purgeUnmountedComponents(); ReactHostOperationHistoryHook.clearHistory(); } function getTreeSnapshot(registeredIDs) { return registeredIDs.reduce(function (tree, id) { var ownerID = ReactComponentTreeHook.getOwnerID(id); var parentID = ReactComponentTreeHook.getParentID(id); tree[id] = { displayName: ReactComponentTreeHook.getDisplayName(id), text: ReactComponentTreeHook.getText(id), updateCount: ReactComponentTreeHook.getUpdateCount(id), childIDs: ReactComponentTreeHook.getChildIDs(id), // Text nodes don't have owners but this is close enough. ownerID: ownerID || parentID && ReactComponentTreeHook.getOwnerID(parentID) || 0, parentID: parentID }; return tree; }, {}); } function resetMeasurements() { var previousStartTime = currentFlushStartTime; var previousMeasurements = currentFlushMeasurements; var previousOperations = ReactHostOperationHistoryHook.getHistory(); if (currentFlushNesting === 0) { currentFlushStartTime = 0; currentFlushMeasurements = []; clearHistory(); return; } if (previousMeasurements.length || previousOperations.length) { var registeredIDs = ReactComponentTreeHook.getRegisteredIDs(); flushHistory.push({ duration: performanceNow() - previousStartTime, measurements: previousMeasurements || [], operations: previousOperations || [], treeSnapshot: getTreeSnapshot(registeredIDs) }); } clearHistory(); currentFlushStartTime = performanceNow(); currentFlushMeasurements = []; } function checkDebugID(debugID) { var allowRoot = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; if (allowRoot && debugID === 0) { return; } if (!debugID) { true ? warning(false, 'ReactDebugTool: debugID may not be empty.') : void 0; } } function beginLifeCycleTimer(debugID, timerType) { if (currentFlushNesting === 0) { return; } if (currentTimerType && !lifeCycleTimerHasWarned) { true ? warning(false, 'There is an internal error in the React performance measurement code. ' + 'Did not expect %s timer to start while %s timer is still in ' + 'progress for %s instance.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another') : void 0; lifeCycleTimerHasWarned = true; } currentTimerStartTime = performanceNow(); currentTimerNestedFlushDuration = 0; currentTimerDebugID = debugID; currentTimerType = timerType; } function endLifeCycleTimer(debugID, timerType) { if (currentFlushNesting === 0) { return; } if (currentTimerType !== timerType && !lifeCycleTimerHasWarned) { true ? warning(false, 'There is an internal error in the React performance measurement code. ' + 'We did not expect %s timer to stop while %s timer is still in ' + 'progress for %s instance. Please report this as a bug in React.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another') : void 0; lifeCycleTimerHasWarned = true; } if (isProfiling) { currentFlushMeasurements.push({ timerType: timerType, instanceID: debugID, duration: performanceNow() - currentTimerStartTime - currentTimerNestedFlushDuration }); } currentTimerStartTime = 0; currentTimerNestedFlushDuration = 0; currentTimerDebugID = null; currentTimerType = null; } function pauseCurrentLifeCycleTimer() { var currentTimer = { startTime: currentTimerStartTime, nestedFlushStartTime: performanceNow(), debugID: currentTimerDebugID, timerType: currentTimerType }; lifeCycleTimerStack.push(currentTimer); currentTimerStartTime = 0; currentTimerNestedFlushDuration = 0; currentTimerDebugID = null; currentTimerType = null; } function resumeCurrentLifeCycleTimer() { var _lifeCycleTimerStack$ = lifeCycleTimerStack.pop(), startTime = _lifeCycleTimerStack$.startTime, nestedFlushStartTime = _lifeCycleTimerStack$.nestedFlushStartTime, debugID = _lifeCycleTimerStack$.debugID, timerType = _lifeCycleTimerStack$.timerType; var nestedFlushDuration = performanceNow() - nestedFlushStartTime; currentTimerStartTime = startTime; currentTimerNestedFlushDuration += nestedFlushDuration; currentTimerDebugID = debugID; currentTimerType = timerType; } var lastMarkTimeStamp = 0; var canUsePerformanceMeasure = typeof performance !== 'undefined' && typeof performance.mark === 'function' && typeof performance.clearMarks === 'function' && typeof performance.measure === 'function' && typeof performance.clearMeasures === 'function'; function shouldMark(debugID) { if (!isProfiling || !canUsePerformanceMeasure) { return false; } var element = ReactComponentTreeHook.getElement(debugID); if (element == null || typeof element !== 'object') { return false; } var isHostElement = typeof element.type === 'string'; if (isHostElement) { return false; } return true; } function markBegin(debugID, markType) { if (!shouldMark(debugID)) { return; } var markName = debugID + '::' + markType; lastMarkTimeStamp = performanceNow(); performance.mark(markName); } function markEnd(debugID, markType) { if (!shouldMark(debugID)) { return; } var markName = debugID + '::' + markType; var displayName = ReactComponentTreeHook.getDisplayName(debugID) || 'Unknown'; // Chrome has an issue of dropping markers recorded too fast: // https://bugs.chromium.org/p/chromium/issues/detail?id=640652 // To work around this, we will not report very small measurements. // I determined the magic number by tweaking it back and forth. // 0.05ms was enough to prevent the issue, but I set it to 0.1ms to be safe. // When the bug is fixed, we can `measure()` unconditionally if we want to. var timeStamp = performanceNow(); if (timeStamp - lastMarkTimeStamp > 0.1) { var measurementName = displayName + ' [' + markType + ']'; performance.measure(measurementName, markName); } performance.clearMarks(markName); performance.clearMeasures(measurementName); } var ReactDebugTool = { addHook: function (hook) { hooks.push(hook); }, removeHook: function (hook) { for (var i = 0; i < hooks.length; i++) { if (hooks[i] === hook) { hooks.splice(i, 1); i--; } } }, isProfiling: function () { return isProfiling; }, beginProfiling: function () { if (isProfiling) { return; } isProfiling = true; flushHistory.length = 0; resetMeasurements(); ReactDebugTool.addHook(ReactHostOperationHistoryHook); }, endProfiling: function () { if (!isProfiling) { return; } isProfiling = false; resetMeasurements(); ReactDebugTool.removeHook(ReactHostOperationHistoryHook); }, getFlushHistory: function () { return flushHistory; }, onBeginFlush: function () { currentFlushNesting++; resetMeasurements(); pauseCurrentLifeCycleTimer(); emitEvent('onBeginFlush'); }, onEndFlush: function () { resetMeasurements(); currentFlushNesting--; resumeCurrentLifeCycleTimer(); emitEvent('onEndFlush'); }, onBeginLifeCycleTimer: function (debugID, timerType) { checkDebugID(debugID); emitEvent('onBeginLifeCycleTimer', debugID, timerType); markBegin(debugID, timerType); beginLifeCycleTimer(debugID, timerType); }, onEndLifeCycleTimer: function (debugID, timerType) { checkDebugID(debugID); endLifeCycleTimer(debugID, timerType); markEnd(debugID, timerType); emitEvent('onEndLifeCycleTimer', debugID, timerType); }, onBeginProcessingChildContext: function () { emitEvent('onBeginProcessingChildContext'); }, onEndProcessingChildContext: function () { emitEvent('onEndProcessingChildContext'); }, onHostOperation: function (operation) { checkDebugID(operation.instanceID); emitEvent('onHostOperation', operation); }, onSetState: function () { emitEvent('onSetState'); }, onSetChildren: function (debugID, childDebugIDs) { checkDebugID(debugID); childDebugIDs.forEach(checkDebugID); emitEvent('onSetChildren', debugID, childDebugIDs); }, onBeforeMountComponent: function (debugID, element, parentDebugID) { checkDebugID(debugID); checkDebugID(parentDebugID, true); emitEvent('onBeforeMountComponent', debugID, element, parentDebugID); markBegin(debugID, 'mount'); }, onMountComponent: function (debugID) { checkDebugID(debugID); markEnd(debugID, 'mount'); emitEvent('onMountComponent', debugID); }, onBeforeUpdateComponent: function (debugID, element) { checkDebugID(debugID); emitEvent('onBeforeUpdateComponent', debugID, element); markBegin(debugID, 'update'); }, onUpdateComponent: function (debugID) { checkDebugID(debugID); markEnd(debugID, 'update'); emitEvent('onUpdateComponent', debugID); }, onBeforeUnmountComponent: function (debugID) { checkDebugID(debugID); emitEvent('onBeforeUnmountComponent', debugID); markBegin(debugID, 'unmount'); }, onUnmountComponent: function (debugID) { checkDebugID(debugID); markEnd(debugID, 'unmount'); emitEvent('onUnmountComponent', debugID); }, onTestEvent: function () { emitEvent('onTestEvent'); } }; // TODO remove these when RN/www gets updated ReactDebugTool.addDevtool = ReactDebugTool.addHook; ReactDebugTool.removeDevtool = ReactDebugTool.removeHook; ReactDebugTool.addHook(ReactInvalidSetStateWarningHook); ReactDebugTool.addHook(ReactComponentTreeHook); var url = ExecutionEnvironment.canUseDOM && window.location.href || ''; if (/[?&]react_perf\b/.test(url)) { ReactDebugTool.beginProfiling(); } module.exports = ReactDebugTool; /***/ }), /* 250 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _assign = __webpack_require__(6); var ReactUpdates = __webpack_require__(14); var Transaction = __webpack_require__(55); var emptyFunction = __webpack_require__(10); var RESET_BATCHED_UPDATES = { initialize: emptyFunction, close: function () { ReactDefaultBatchingStrategy.isBatchingUpdates = false; } }; var FLUSH_BATCHED_UPDATES = { initialize: emptyFunction, close: ReactUpdates.flushBatchedUpdates.bind(ReactUpdates) }; var TRANSACTION_WRAPPERS = [FLUSH_BATCHED_UPDATES, RESET_BATCHED_UPDATES]; function ReactDefaultBatchingStrategyTransaction() { this.reinitializeTransaction(); } _assign(ReactDefaultBatchingStrategyTransaction.prototype, Transaction, { getTransactionWrappers: function () { return TRANSACTION_WRAPPERS; } }); var transaction = new ReactDefaultBatchingStrategyTransaction(); var ReactDefaultBatchingStrategy = { isBatchingUpdates: false, /** * Call the provided function in a context within which calls to `setState` * and friends are batched such that components aren't updated unnecessarily. */ batchedUpdates: function (callback, a, b, c, d, e) { var alreadyBatchingUpdates = ReactDefaultBatchingStrategy.isBatchingUpdates; ReactDefaultBatchingStrategy.isBatchingUpdates = true; // The code is written this way to avoid extra allocations if (alreadyBatchingUpdates) { return callback(a, b, c, d, e); } else { return transaction.perform(callback, null, a, b, c, d, e); } } }; module.exports = ReactDefaultBatchingStrategy; /***/ }), /* 251 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var ARIADOMPropertyConfig = __webpack_require__(221); var BeforeInputEventPlugin = __webpack_require__(223); var ChangeEventPlugin = __webpack_require__(225); var DefaultEventPluginOrder = __webpack_require__(227); var EnterLeaveEventPlugin = __webpack_require__(228); var HTMLDOMPropertyConfig = __webpack_require__(230); var ReactComponentBrowserEnvironment = __webpack_require__(232); var ReactDOMComponent = __webpack_require__(235); var ReactDOMComponentTree = __webpack_require__(7); var ReactDOMEmptyComponent = __webpack_require__(237); var ReactDOMTreeTraversal = __webpack_require__(247); var ReactDOMTextComponent = __webpack_require__(245); var ReactDefaultBatchingStrategy = __webpack_require__(250); var ReactEventListener = __webpack_require__(254); var ReactInjection = __webpack_require__(256); var ReactReconcileTransaction = __webpack_require__(262); var SVGDOMPropertyConfig = __webpack_require__(269); var SelectEventPlugin = __webpack_require__(270); var SimpleEventPlugin = __webpack_require__(271); var alreadyInjected = false; function inject() { if (alreadyInjected) { // TODO: This is currently true because these injections are shared between // the client and the server package. They should be built independently // and not share any injection state. Then this problem will be solved. return; } alreadyInjected = true; ReactInjection.EventEmitter.injectReactEventListener(ReactEventListener); /** * Inject modules for resolving DOM hierarchy and plugin ordering. */ ReactInjection.EventPluginHub.injectEventPluginOrder(DefaultEventPluginOrder); ReactInjection.EventPluginUtils.injectComponentTree(ReactDOMComponentTree); ReactInjection.EventPluginUtils.injectTreeTraversal(ReactDOMTreeTraversal); /** * Some important event plugins included by default (without having to require * them). */ ReactInjection.EventPluginHub.injectEventPluginsByName({ SimpleEventPlugin: SimpleEventPlugin, EnterLeaveEventPlugin: EnterLeaveEventPlugin, ChangeEventPlugin: ChangeEventPlugin, SelectEventPlugin: SelectEventPlugin, BeforeInputEventPlugin: BeforeInputEventPlugin }); ReactInjection.HostComponent.injectGenericComponentClass(ReactDOMComponent); ReactInjection.HostComponent.injectTextComponentClass(ReactDOMTextComponent); ReactInjection.DOMProperty.injectDOMPropertyConfig(ARIADOMPropertyConfig); ReactInjection.DOMProperty.injectDOMPropertyConfig(HTMLDOMPropertyConfig); ReactInjection.DOMProperty.injectDOMPropertyConfig(SVGDOMPropertyConfig); ReactInjection.EmptyComponent.injectEmptyComponentFactory(function (instantiate) { return new ReactDOMEmptyComponent(instantiate); }); ReactInjection.Updates.injectReconcileTransaction(ReactReconcileTransaction); ReactInjection.Updates.injectBatchingStrategy(ReactDefaultBatchingStrategy); ReactInjection.Component.injectEnvironment(ReactComponentBrowserEnvironment); } module.exports = { inject: inject }; /***/ }), /* 252 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2014-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ // The Symbol used to tag the ReactElement type. If there is no native Symbol // nor polyfill, then a plain number is used for performance. var REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7; module.exports = REACT_ELEMENT_TYPE; /***/ }), /* 253 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var EventPluginHub = __webpack_require__(27); function runEventQueueInBatch(events) { EventPluginHub.enqueueEvents(events); EventPluginHub.processEventQueue(false); } var ReactEventEmitterMixin = { /** * Streams a fired top-level event to `EventPluginHub` where plugins have the * opportunity to create `ReactEvent`s to be dispatched. */ handleTopLevel: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) { var events = EventPluginHub.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget); runEventQueueInBatch(events); } }; module.exports = ReactEventEmitterMixin; /***/ }), /* 254 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _assign = __webpack_require__(6); var EventListener = __webpack_require__(105); var ExecutionEnvironment = __webpack_require__(4); var PooledClass = __webpack_require__(24); var ReactDOMComponentTree = __webpack_require__(7); var ReactUpdates = __webpack_require__(14); var getEventTarget = __webpack_require__(77); var getUnboundedScrollPosition = __webpack_require__(193); /** * Find the deepest React component completely containing the root of the * passed-in instance (for use when entire React trees are nested within each * other). If React trees are not nested, returns null. */ function findParent(inst) { // TODO: It may be a good idea to cache this to prevent unnecessary DOM // traversal, but caching is difficult to do correctly without using a // mutation observer to listen for all DOM changes. while (inst._hostParent) { inst = inst._hostParent; } var rootNode = ReactDOMComponentTree.getNodeFromInstance(inst); var container = rootNode.parentNode; return ReactDOMComponentTree.getClosestInstanceFromNode(container); } // Used to store ancestor hierarchy in top level callback function TopLevelCallbackBookKeeping(topLevelType, nativeEvent) { this.topLevelType = topLevelType; this.nativeEvent = nativeEvent; this.ancestors = []; } _assign(TopLevelCallbackBookKeeping.prototype, { destructor: function () { this.topLevelType = null; this.nativeEvent = null; this.ancestors.length = 0; } }); PooledClass.addPoolingTo(TopLevelCallbackBookKeeping, PooledClass.twoArgumentPooler); function handleTopLevelImpl(bookKeeping) { var nativeEventTarget = getEventTarget(bookKeeping.nativeEvent); var targetInst = ReactDOMComponentTree.getClosestInstanceFromNode(nativeEventTarget); // Loop through the hierarchy, in case there's any nested components. // It's important that we build the array of ancestors before calling any // event handlers, because event handlers can modify the DOM, leading to // inconsistencies with ReactMount's node cache. See #1105. var ancestor = targetInst; do { bookKeeping.ancestors.push(ancestor); ancestor = ancestor && findParent(ancestor); } while (ancestor); for (var i = 0; i < bookKeeping.ancestors.length; i++) { targetInst = bookKeeping.ancestors[i]; ReactEventListener._handleTopLevel(bookKeeping.topLevelType, targetInst, bookKeeping.nativeEvent, getEventTarget(bookKeeping.nativeEvent)); } } function scrollValueMonitor(cb) { var scrollPosition = getUnboundedScrollPosition(window); cb(scrollPosition); } var ReactEventListener = { _enabled: true, _handleTopLevel: null, WINDOW_HANDLE: ExecutionEnvironment.canUseDOM ? window : null, setHandleTopLevel: function (handleTopLevel) { ReactEventListener._handleTopLevel = handleTopLevel; }, setEnabled: function (enabled) { ReactEventListener._enabled = !!enabled; }, isEnabled: function () { return ReactEventListener._enabled; }, /** * Traps top-level events by using event bubbling. * * @param {string} topLevelType Record from `EventConstants`. * @param {string} handlerBaseName Event name (e.g. "click"). * @param {object} element Element on which to attach listener. * @return {?object} An object with a remove function which will forcefully * remove the listener. * @internal */ trapBubbledEvent: function (topLevelType, handlerBaseName, element) { if (!element) { return null; } return EventListener.listen(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType)); }, /** * Traps a top-level event by using event capturing. * * @param {string} topLevelType Record from `EventConstants`. * @param {string} handlerBaseName Event name (e.g. "click"). * @param {object} element Element on which to attach listener. * @return {?object} An object with a remove function which will forcefully * remove the listener. * @internal */ trapCapturedEvent: function (topLevelType, handlerBaseName, element) { if (!element) { return null; } return EventListener.capture(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType)); }, monitorScrollValue: function (refresh) { var callback = scrollValueMonitor.bind(null, refresh); EventListener.listen(window, 'scroll', callback); }, dispatchEvent: function (topLevelType, nativeEvent) { if (!ReactEventListener._enabled) { return; } var bookKeeping = TopLevelCallbackBookKeeping.getPooled(topLevelType, nativeEvent); try { // Event queue being processed in the same cycle allows // `preventDefault`. ReactUpdates.batchedUpdates(handleTopLevelImpl, bookKeeping); } finally { TopLevelCallbackBookKeeping.release(bookKeeping); } } }; module.exports = ReactEventListener; /***/ }), /* 255 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2016-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ var history = []; var ReactHostOperationHistoryHook = { onHostOperation: function (operation) { history.push(operation); }, clearHistory: function () { if (ReactHostOperationHistoryHook._preventClearing) { // Should only be used for tests. return; } history = []; }, getHistory: function () { return history; } }; module.exports = ReactHostOperationHistoryHook; /***/ }), /* 256 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var DOMProperty = __webpack_require__(20); var EventPluginHub = __webpack_require__(27); var EventPluginUtils = __webpack_require__(40); var ReactComponentEnvironment = __webpack_require__(71); var ReactEmptyComponent = __webpack_require__(120); var ReactBrowserEventEmitter = __webpack_require__(53); var ReactHostComponent = __webpack_require__(122); var ReactUpdates = __webpack_require__(14); var ReactInjection = { Component: ReactComponentEnvironment.injection, DOMProperty: DOMProperty.injection, EmptyComponent: ReactEmptyComponent.injection, EventPluginHub: EventPluginHub.injection, EventPluginUtils: EventPluginUtils.injection, EventEmitter: ReactBrowserEventEmitter.injection, HostComponent: ReactHostComponent.injection, Updates: ReactUpdates.injection }; module.exports = ReactInjection; /***/ }), /* 257 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2016-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ var warning = __webpack_require__(1); if (true) { var processingChildContext = false; var warnInvalidSetState = function () { true ? warning(!processingChildContext, 'setState(...): Cannot call setState() inside getChildContext()') : void 0; }; } var ReactInvalidSetStateWarningHook = { onBeginProcessingChildContext: function () { processingChildContext = true; }, onEndProcessingChildContext: function () { processingChildContext = false; }, onSetState: function () { warnInvalidSetState(); } }; module.exports = ReactInvalidSetStateWarningHook; /***/ }), /* 258 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var adler32 = __webpack_require__(283); var TAG_END = /\/?>/; var COMMENT_START = /^<\!\-\-/; var ReactMarkupChecksum = { CHECKSUM_ATTR_NAME: 'data-react-checksum', /** * @param {string} markup Markup string * @return {string} Markup string with checksum attribute attached */ addChecksumToMarkup: function (markup) { var checksum = adler32(markup); // Add checksum (handle both parent tags, comments and self-closing tags) if (COMMENT_START.test(markup)) { return markup; } else { return markup.replace(TAG_END, ' ' + ReactMarkupChecksum.CHECKSUM_ATTR_NAME + '="' + checksum + '"$&'); } }, /** * @param {string} markup to use * @param {DOMElement} element root React element * @returns {boolean} whether or not the markup is the same */ canReuseMarkup: function (markup, element) { var existingChecksum = element.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME); existingChecksum = existingChecksum && parseInt(existingChecksum, 10); var markupChecksum = adler32(markup); return markupChecksum === existingChecksum; } }; module.exports = ReactMarkupChecksum; /***/ }), /* 259 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _prodInvariant = __webpack_require__(2); var ReactComponentEnvironment = __webpack_require__(71); var ReactInstanceMap = __webpack_require__(41); var ReactInstrumentation = __webpack_require__(11); var ReactCurrentOwner = __webpack_require__(17); var ReactReconciler = __webpack_require__(29); var ReactChildReconciler = __webpack_require__(231); var emptyFunction = __webpack_require__(10); var flattenChildren = __webpack_require__(287); var invariant = __webpack_require__(0); /** * Make an update for markup to be rendered and inserted at a supplied index. * * @param {string} markup Markup that renders into an element. * @param {number} toIndex Destination index. * @private */ function makeInsertMarkup(markup, afterNode, toIndex) { // NOTE: Null values reduce hidden classes. return { type: 'INSERT_MARKUP', content: markup, fromIndex: null, fromNode: null, toIndex: toIndex, afterNode: afterNode }; } /** * Make an update for moving an existing element to another index. * * @param {number} fromIndex Source index of the existing element. * @param {number} toIndex Destination index of the element. * @private */ function makeMove(child, afterNode, toIndex) { // NOTE: Null values reduce hidden classes. return { type: 'MOVE_EXISTING', content: null, fromIndex: child._mountIndex, fromNode: ReactReconciler.getHostNode(child), toIndex: toIndex, afterNode: afterNode }; } /** * Make an update for removing an element at an index. * * @param {number} fromIndex Index of the element to remove. * @private */ function makeRemove(child, node) { // NOTE: Null values reduce hidden classes. return { type: 'REMOVE_NODE', content: null, fromIndex: child._mountIndex, fromNode: node, toIndex: null, afterNode: null }; } /** * Make an update for setting the markup of a node. * * @param {string} markup Markup that renders into an element. * @private */ function makeSetMarkup(markup) { // NOTE: Null values reduce hidden classes. return { type: 'SET_MARKUP', content: markup, fromIndex: null, fromNode: null, toIndex: null, afterNode: null }; } /** * Make an update for setting the text content. * * @param {string} textContent Text content to set. * @private */ function makeTextContent(textContent) { // NOTE: Null values reduce hidden classes. return { type: 'TEXT_CONTENT', content: textContent, fromIndex: null, fromNode: null, toIndex: null, afterNode: null }; } /** * Push an update, if any, onto the queue. Creates a new queue if none is * passed and always returns the queue. Mutative. */ function enqueue(queue, update) { if (update) { queue = queue || []; queue.push(update); } return queue; } /** * Processes any enqueued updates. * * @private */ function processQueue(inst, updateQueue) { ReactComponentEnvironment.processChildrenUpdates(inst, updateQueue); } var setChildrenForInstrumentation = emptyFunction; if (true) { var getDebugID = function (inst) { if (!inst._debugID) { // Check for ART-like instances. TODO: This is silly/gross. var internal; if (internal = ReactInstanceMap.get(inst)) { inst = internal; } } return inst._debugID; }; setChildrenForInstrumentation = function (children) { var debugID = getDebugID(this); // TODO: React Native empty components are also multichild. // This means they still get into this method but don't have _debugID. if (debugID !== 0) { ReactInstrumentation.debugTool.onSetChildren(debugID, children ? Object.keys(children).map(function (key) { return children[key]._debugID; }) : []); } }; } /** * ReactMultiChild are capable of reconciling multiple children. * * @class ReactMultiChild * @internal */ var ReactMultiChild = { /** * Provides common functionality for components that must reconcile multiple * children. This is used by `ReactDOMComponent` to mount, update, and * unmount child components. * * @lends {ReactMultiChild.prototype} */ Mixin: { _reconcilerInstantiateChildren: function (nestedChildren, transaction, context) { if (true) { var selfDebugID = getDebugID(this); if (this._currentElement) { try { ReactCurrentOwner.current = this._currentElement._owner; return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context, selfDebugID); } finally { ReactCurrentOwner.current = null; } } } return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context); }, _reconcilerUpdateChildren: function (prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context) { var nextChildren; var selfDebugID = 0; if (true) { selfDebugID = getDebugID(this); if (this._currentElement) { try { ReactCurrentOwner.current = this._currentElement._owner; nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID); } finally { ReactCurrentOwner.current = null; } ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID); return nextChildren; } } nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID); ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID); return nextChildren; }, /** * Generates a "mount image" for each of the supplied children. In the case * of `ReactDOMComponent`, a mount image is a string of markup. * * @param {?object} nestedChildren Nested child maps. * @return {array} An array of mounted representations. * @internal */ mountChildren: function (nestedChildren, transaction, context) { var children = this._reconcilerInstantiateChildren(nestedChildren, transaction, context); this._renderedChildren = children; var mountImages = []; var index = 0; for (var name in children) { if (children.hasOwnProperty(name)) { var child = children[name]; var selfDebugID = 0; if (true) { selfDebugID = getDebugID(this); } var mountImage = ReactReconciler.mountComponent(child, transaction, this, this._hostContainerInfo, context, selfDebugID); child._mountIndex = index++; mountImages.push(mountImage); } } if (true) { setChildrenForInstrumentation.call(this, children); } return mountImages; }, /** * Replaces any rendered children with a text content string. * * @param {string} nextContent String of content. * @internal */ updateTextContent: function (nextContent) { var prevChildren = this._renderedChildren; // Remove any rendered children. ReactChildReconciler.unmountChildren(prevChildren, false); for (var name in prevChildren) { if (prevChildren.hasOwnProperty(name)) { true ? true ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0; } } // Set new text content. var updates = [makeTextContent(nextContent)]; processQueue(this, updates); }, /** * Replaces any rendered children with a markup string. * * @param {string} nextMarkup String of markup. * @internal */ updateMarkup: function (nextMarkup) { var prevChildren = this._renderedChildren; // Remove any rendered children. ReactChildReconciler.unmountChildren(prevChildren, false); for (var name in prevChildren) { if (prevChildren.hasOwnProperty(name)) { true ? true ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0; } } var updates = [makeSetMarkup(nextMarkup)]; processQueue(this, updates); }, /** * Updates the rendered children with new children. * * @param {?object} nextNestedChildrenElements Nested child element maps. * @param {ReactReconcileTransaction} transaction * @internal */ updateChildren: function (nextNestedChildrenElements, transaction, context) { // Hook used by React ART this._updateChildren(nextNestedChildrenElements, transaction, context); }, /** * @param {?object} nextNestedChildrenElements Nested child element maps. * @param {ReactReconcileTransaction} transaction * @final * @protected */ _updateChildren: function (nextNestedChildrenElements, transaction, context) { var prevChildren = this._renderedChildren; var removedNodes = {}; var mountImages = []; var nextChildren = this._reconcilerUpdateChildren(prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context); if (!nextChildren && !prevChildren) { return; } var updates = null; var name; // `nextIndex` will increment for each child in `nextChildren`, but // `lastIndex` will be the last index visited in `prevChildren`. var nextIndex = 0; var lastIndex = 0; // `nextMountIndex` will increment for each newly mounted child. var nextMountIndex = 0; var lastPlacedNode = null; for (name in nextChildren) { if (!nextChildren.hasOwnProperty(name)) { continue; } var prevChild = prevChildren && prevChildren[name]; var nextChild = nextChildren[name]; if (prevChild === nextChild) { updates = enqueue(updates, this.moveChild(prevChild, lastPlacedNode, nextIndex, lastIndex)); lastIndex = Math.max(prevChild._mountIndex, lastIndex); prevChild._mountIndex = nextIndex; } else { if (prevChild) { // Update `lastIndex` before `_mountIndex` gets unset by unmounting. lastIndex = Math.max(prevChild._mountIndex, lastIndex); // The `removedNodes` loop below will actually remove the child. } // The child must be instantiated before it's mounted. updates = enqueue(updates, this._mountChildAtIndex(nextChild, mountImages[nextMountIndex], lastPlacedNode, nextIndex, transaction, context)); nextMountIndex++; } nextIndex++; lastPlacedNode = ReactReconciler.getHostNode(nextChild); } // Remove children that are no longer present. for (name in removedNodes) { if (removedNodes.hasOwnProperty(name)) { updates = enqueue(updates, this._unmountChild(prevChildren[name], removedNodes[name])); } } if (updates) { processQueue(this, updates); } this._renderedChildren = nextChildren; if (true) { setChildrenForInstrumentation.call(this, nextChildren); } }, /** * Unmounts all rendered children. This should be used to clean up children * when this component is unmounted. It does not actually perform any * backend operations. * * @internal */ unmountChildren: function (safely) { var renderedChildren = this._renderedChildren; ReactChildReconciler.unmountChildren(renderedChildren, safely); this._renderedChildren = null; }, /** * Moves a child component to the supplied index. * * @param {ReactComponent} child Component to move. * @param {number} toIndex Destination index of the element. * @param {number} lastIndex Last index visited of the siblings of `child`. * @protected */ moveChild: function (child, afterNode, toIndex, lastIndex) { // If the index of `child` is less than `lastIndex`, then it needs to // be moved. Otherwise, we do not need to move it because a child will be // inserted or moved before `child`. if (child._mountIndex < lastIndex) { return makeMove(child, afterNode, toIndex); } }, /** * Creates a child component. * * @param {ReactComponent} child Component to create. * @param {string} mountImage Markup to insert. * @protected */ createChild: function (child, afterNode, mountImage) { return makeInsertMarkup(mountImage, afterNode, child._mountIndex); }, /** * Removes a child component. * * @param {ReactComponent} child Child to remove. * @protected */ removeChild: function (child, node) { return makeRemove(child, node); }, /** * Mounts a child with the supplied name. * * NOTE: This is part of `updateChildren` and is here for readability. * * @param {ReactComponent} child Component to mount. * @param {string} name Name of the child. * @param {number} index Index at which to insert the child. * @param {ReactReconcileTransaction} transaction * @private */ _mountChildAtIndex: function (child, mountImage, afterNode, index, transaction, context) { child._mountIndex = index; return this.createChild(child, afterNode, mountImage); }, /** * Unmounts a rendered child. * * NOTE: This is part of `updateChildren` and is here for readability. * * @param {ReactComponent} child Component to unmount. * @private */ _unmountChild: function (child, node) { var update = this.removeChild(child, node); child._mountIndex = null; return update; } } }; module.exports = ReactMultiChild; /***/ }), /* 260 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ var _prodInvariant = __webpack_require__(2); var invariant = __webpack_require__(0); /** * @param {?object} object * @return {boolean} True if `object` is a valid owner. * @final */ function isValidOwner(object) { return !!(object && typeof object.attachRef === 'function' && typeof object.detachRef === 'function'); } /** * ReactOwners are capable of storing references to owned components. * * All components are capable of //being// referenced by owner components, but * only ReactOwner components are capable of //referencing// owned components. * The named reference is known as a "ref". * * Refs are available when mounted and updated during reconciliation. * * var MyComponent = React.createClass({ * render: function() { * return ( * <div onClick={this.handleClick}> * <CustomComponent ref="custom" /> * </div> * ); * }, * handleClick: function() { * this.refs.custom.handleClick(); * }, * componentDidMount: function() { * this.refs.custom.initialize(); * } * }); * * Refs should rarely be used. When refs are used, they should only be done to * control data that is not handled by React's data flow. * * @class ReactOwner */ var ReactOwner = { /** * Adds a component by ref to an owner component. * * @param {ReactComponent} component Component to reference. * @param {string} ref Name by which to refer to the component. * @param {ReactOwner} owner Component on which to record the ref. * @final * @internal */ addComponentAsRefTo: function (component, ref, owner) { !isValidOwner(owner) ? true ? invariant(false, 'addComponentAsRefTo(...): Only a ReactOwner can have refs. You might be adding a ref to a component that was not created inside a component\'s `render` method, or you have multiple copies of React loaded (details: https://fb.me/react-refs-must-have-owner).') : _prodInvariant('119') : void 0; owner.attachRef(ref, component); }, /** * Removes a component by ref from an owner component. * * @param {ReactComponent} component Component to dereference. * @param {string} ref Name of the ref to remove. * @param {ReactOwner} owner Component on which the ref is recorded. * @final * @internal */ removeComponentAsRefFrom: function (component, ref, owner) { !isValidOwner(owner) ? true ? invariant(false, 'removeComponentAsRefFrom(...): Only a ReactOwner can have refs. You might be removing a ref to a component that was not created inside a component\'s `render` method, or you have multiple copies of React loaded (details: https://fb.me/react-refs-must-have-owner).') : _prodInvariant('120') : void 0; var ownerPublicInstance = owner.getPublicInstance(); // Check that `component`'s owner is still alive and that `component` is still the current ref // because we do not want to detach the ref if another component stole it. if (ownerPublicInstance && ownerPublicInstance.refs[ref] === component.getPublicInstance()) { owner.detachRef(ref); } } }; module.exports = ReactOwner; /***/ }), /* 261 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ var ReactPropTypeLocationNames = {}; if (true) { ReactPropTypeLocationNames = { prop: 'prop', context: 'context', childContext: 'child context' }; } module.exports = ReactPropTypeLocationNames; /***/ }), /* 262 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _assign = __webpack_require__(6); var CallbackQueue = __webpack_require__(116); var PooledClass = __webpack_require__(24); var ReactBrowserEventEmitter = __webpack_require__(53); var ReactInputSelection = __webpack_require__(123); var ReactInstrumentation = __webpack_require__(11); var Transaction = __webpack_require__(55); var ReactUpdateQueue = __webpack_require__(73); /** * Ensures that, when possible, the selection range (currently selected text * input) is not disturbed by performing the transaction. */ var SELECTION_RESTORATION = { /** * @return {Selection} Selection information. */ initialize: ReactInputSelection.getSelectionInformation, /** * @param {Selection} sel Selection information returned from `initialize`. */ close: ReactInputSelection.restoreSelection }; /** * Suppresses events (blur/focus) that could be inadvertently dispatched due to * high level DOM manipulations (like temporarily removing a text input from the * DOM). */ var EVENT_SUPPRESSION = { /** * @return {boolean} The enabled status of `ReactBrowserEventEmitter` before * the reconciliation. */ initialize: function () { var currentlyEnabled = ReactBrowserEventEmitter.isEnabled(); ReactBrowserEventEmitter.setEnabled(false); return currentlyEnabled; }, /** * @param {boolean} previouslyEnabled Enabled status of * `ReactBrowserEventEmitter` before the reconciliation occurred. `close` * restores the previous value. */ close: function (previouslyEnabled) { ReactBrowserEventEmitter.setEnabled(previouslyEnabled); } }; /** * Provides a queue for collecting `componentDidMount` and * `componentDidUpdate` callbacks during the transaction. */ var ON_DOM_READY_QUEUEING = { /** * Initializes the internal `onDOMReady` queue. */ initialize: function () { this.reactMountReady.reset(); }, /** * After DOM is flushed, invoke all registered `onDOMReady` callbacks. */ close: function () { this.reactMountReady.notifyAll(); } }; /** * Executed within the scope of the `Transaction` instance. Consider these as * being member methods, but with an implied ordering while being isolated from * each other. */ var TRANSACTION_WRAPPERS = [SELECTION_RESTORATION, EVENT_SUPPRESSION, ON_DOM_READY_QUEUEING]; if (true) { TRANSACTION_WRAPPERS.push({ initialize: ReactInstrumentation.debugTool.onBeginFlush, close: ReactInstrumentation.debugTool.onEndFlush }); } /** * Currently: * - The order that these are listed in the transaction is critical: * - Suppresses events. * - Restores selection range. * * Future: * - Restore document/overflow scroll positions that were unintentionally * modified via DOM insertions above the top viewport boundary. * - Implement/integrate with customized constraint based layout system and keep * track of which dimensions must be remeasured. * * @class ReactReconcileTransaction */ function ReactReconcileTransaction(useCreateElement) { this.reinitializeTransaction(); // Only server-side rendering really needs this option (see // `ReactServerRendering`), but server-side uses // `ReactServerRenderingTransaction` instead. This option is here so that it's // accessible and defaults to false when `ReactDOMComponent` and // `ReactDOMTextComponent` checks it in `mountComponent`.` this.renderToStaticMarkup = false; this.reactMountReady = CallbackQueue.getPooled(null); this.useCreateElement = useCreateElement; } var Mixin = { /** * @see Transaction * @abstract * @final * @return {array<object>} List of operation wrap procedures. * TODO: convert to array<TransactionWrapper> */ getTransactionWrappers: function () { return TRANSACTION_WRAPPERS; }, /** * @return {object} The queue to collect `onDOMReady` callbacks with. */ getReactMountReady: function () { return this.reactMountReady; }, /** * @return {object} The queue to collect React async events. */ getUpdateQueue: function () { return ReactUpdateQueue; }, /** * Save current transaction state -- if the return value from this method is * passed to `rollback`, the transaction will be reset to that state. */ checkpoint: function () { // reactMountReady is the our only stateful wrapper return this.reactMountReady.checkpoint(); }, rollback: function (checkpoint) { this.reactMountReady.rollback(checkpoint); }, /** * `PooledClass` looks for this, and will invoke this before allowing this * instance to be reused. */ destructor: function () { CallbackQueue.release(this.reactMountReady); this.reactMountReady = null; } }; _assign(ReactReconcileTransaction.prototype, Transaction, Mixin); PooledClass.addPoolingTo(ReactReconcileTransaction); module.exports = ReactReconcileTransaction; /***/ }), /* 263 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ var ReactOwner = __webpack_require__(260); var ReactRef = {}; function attachRef(ref, component, owner) { if (typeof ref === 'function') { ref(component.getPublicInstance()); } else { // Legacy ref ReactOwner.addComponentAsRefTo(component, ref, owner); } } function detachRef(ref, component, owner) { if (typeof ref === 'function') { ref(null); } else { // Legacy ref ReactOwner.removeComponentAsRefFrom(component, ref, owner); } } ReactRef.attachRefs = function (instance, element) { if (element === null || typeof element !== 'object') { return; } var ref = element.ref; if (ref != null) { attachRef(ref, instance, element._owner); } }; ReactRef.shouldUpdateRefs = function (prevElement, nextElement) { // If either the owner or a `ref` has changed, make sure the newest owner // has stored a reference to `this`, and the previous owner (if different) // has forgotten the reference to `this`. We use the element instead // of the public this.props because the post processing cannot determine // a ref. The ref conceptually lives on the element. // TODO: Should this even be possible? The owner cannot change because // it's forbidden by shouldUpdateReactComponent. The ref can change // if you swap the keys of but not the refs. Reconsider where this check // is made. It probably belongs where the key checking and // instantiateReactComponent is done. var prevRef = null; var prevOwner = null; if (prevElement !== null && typeof prevElement === 'object') { prevRef = prevElement.ref; prevOwner = prevElement._owner; } var nextRef = null; var nextOwner = null; if (nextElement !== null && typeof nextElement === 'object') { nextRef = nextElement.ref; nextOwner = nextElement._owner; } return prevRef !== nextRef || // If owner changes but we have an unchanged function ref, don't update refs typeof nextRef === 'string' && nextOwner !== prevOwner; }; ReactRef.detachRefs = function (instance, element) { if (element === null || typeof element !== 'object') { return; } var ref = element.ref; if (ref != null) { detachRef(ref, instance, element._owner); } }; module.exports = ReactRef; /***/ }), /* 264 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2014-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _assign = __webpack_require__(6); var PooledClass = __webpack_require__(24); var Transaction = __webpack_require__(55); var ReactInstrumentation = __webpack_require__(11); var ReactServerUpdateQueue = __webpack_require__(265); /** * Executed within the scope of the `Transaction` instance. Consider these as * being member methods, but with an implied ordering while being isolated from * each other. */ var TRANSACTION_WRAPPERS = []; if (true) { TRANSACTION_WRAPPERS.push({ initialize: ReactInstrumentation.debugTool.onBeginFlush, close: ReactInstrumentation.debugTool.onEndFlush }); } var noopCallbackQueue = { enqueue: function () {} }; /** * @class ReactServerRenderingTransaction * @param {boolean} renderToStaticMarkup */ function ReactServerRenderingTransaction(renderToStaticMarkup) { this.reinitializeTransaction(); this.renderToStaticMarkup = renderToStaticMarkup; this.useCreateElement = false; this.updateQueue = new ReactServerUpdateQueue(this); } var Mixin = { /** * @see Transaction * @abstract * @final * @return {array} Empty list of operation wrap procedures. */ getTransactionWrappers: function () { return TRANSACTION_WRAPPERS; }, /** * @return {object} The queue to collect `onDOMReady` callbacks with. */ getReactMountReady: function () { return noopCallbackQueue; }, /** * @return {object} The queue to collect React async events. */ getUpdateQueue: function () { return this.updateQueue; }, /** * `PooledClass` looks for this, and will invoke this before allowing this * instance to be reused. */ destructor: function () {}, checkpoint: function () {}, rollback: function () {} }; _assign(ReactServerRenderingTransaction.prototype, Transaction, Mixin); PooledClass.addPoolingTo(ReactServerRenderingTransaction); module.exports = ReactServerRenderingTransaction; /***/ }), /* 265 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2015-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var ReactUpdateQueue = __webpack_require__(73); var warning = __webpack_require__(1); function warnNoop(publicInstance, callerName) { if (true) { var constructor = publicInstance.constructor; true ? warning(false, '%s(...): Can only update a mounting component. ' + 'This usually means you called %s() outside componentWillMount() on the server. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0; } } /** * This is the update queue used for server rendering. * It delegates to ReactUpdateQueue while server rendering is in progress and * switches to ReactNoopUpdateQueue after the transaction has completed. * @class ReactServerUpdateQueue * @param {Transaction} transaction */ var ReactServerUpdateQueue = function () { function ReactServerUpdateQueue(transaction) { _classCallCheck(this, ReactServerUpdateQueue); this.transaction = transaction; } /** * Checks whether or not this composite component is mounted. * @param {ReactClass} publicInstance The instance we want to test. * @return {boolean} True if mounted, false otherwise. * @protected * @final */ ReactServerUpdateQueue.prototype.isMounted = function isMounted(publicInstance) { return false; }; /** * Enqueue a callback that will be executed after all the pending updates * have processed. * * @param {ReactClass} publicInstance The instance to use as `this` context. * @param {?function} callback Called after state is updated. * @internal */ ReactServerUpdateQueue.prototype.enqueueCallback = function enqueueCallback(publicInstance, callback, callerName) { if (this.transaction.isInTransaction()) { ReactUpdateQueue.enqueueCallback(publicInstance, callback, callerName); } }; /** * Forces an update. This should only be invoked when it is known with * certainty that we are **not** in a DOM transaction. * * You may want to call this when you know that some deeper aspect of the * component's state has changed but `setState` was not called. * * This will not invoke `shouldComponentUpdate`, but it will invoke * `componentWillUpdate` and `componentDidUpdate`. * * @param {ReactClass} publicInstance The instance that should rerender. * @internal */ ReactServerUpdateQueue.prototype.enqueueForceUpdate = function enqueueForceUpdate(publicInstance) { if (this.transaction.isInTransaction()) { ReactUpdateQueue.enqueueForceUpdate(publicInstance); } else { warnNoop(publicInstance, 'forceUpdate'); } }; /** * Replaces all of the state. Always use this or `setState` to mutate state. * You should treat `this.state` as immutable. * * There is no guarantee that `this.state` will be immediately updated, so * accessing `this.state` after calling this method may return the old value. * * @param {ReactClass} publicInstance The instance that should rerender. * @param {object|function} completeState Next state. * @internal */ ReactServerUpdateQueue.prototype.enqueueReplaceState = function enqueueReplaceState(publicInstance, completeState) { if (this.transaction.isInTransaction()) { ReactUpdateQueue.enqueueReplaceState(publicInstance, completeState); } else { warnNoop(publicInstance, 'replaceState'); } }; /** * Sets a subset of the state. This only exists because _pendingState is * internal. This provides a merging strategy that is not available to deep * properties which is confusing. TODO: Expose pendingState or don't use it * during the merge. * * @param {ReactClass} publicInstance The instance that should rerender. * @param {object|function} partialState Next partial state to be merged with state. * @internal */ ReactServerUpdateQueue.prototype.enqueueSetState = function enqueueSetState(publicInstance, partialState) { if (this.transaction.isInTransaction()) { ReactUpdateQueue.enqueueSetState(publicInstance, partialState); } else { warnNoop(publicInstance, 'setState'); } }; return ReactServerUpdateQueue; }(); module.exports = ReactServerUpdateQueue; /***/ }), /* 266 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ module.exports = '15.5.4'; /***/ }), /* 267 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var EventPluginUtils = __webpack_require__(40); var EventPropagators = __webpack_require__(28); var ResponderSyntheticEvent = __webpack_require__(268); var ResponderTouchHistoryStore = __webpack_require__(127); var accumulate = __webpack_require__(282); var isStartish = EventPluginUtils.isStartish; var isMoveish = EventPluginUtils.isMoveish; var isEndish = EventPluginUtils.isEndish; var executeDirectDispatch = EventPluginUtils.executeDirectDispatch; var hasDispatches = EventPluginUtils.hasDispatches; var executeDispatchesInOrderStopAtTrue = EventPluginUtils.executeDispatchesInOrderStopAtTrue; /** * Instance of element that should respond to touch/move types of interactions, * as indicated explicitly by relevant callbacks. */ var responderInst = null; /** * Count of current touches. A textInput should become responder iff the * selection changes while there is a touch on the screen. */ var trackedTouchCount = 0; /** * Last reported number of active touches. */ var previousActiveTouches = 0; var changeResponder = function (nextResponderInst, blockHostResponder) { var oldResponderInst = responderInst; responderInst = nextResponderInst; if (ResponderEventPlugin.GlobalResponderHandler !== null) { ResponderEventPlugin.GlobalResponderHandler.onChange(oldResponderInst, nextResponderInst, blockHostResponder); } }; var eventTypes = { /** * On a `touchStart`/`mouseDown`, is it desired that this element become the * responder? */ startShouldSetResponder: { phasedRegistrationNames: { bubbled: 'onStartShouldSetResponder', captured: 'onStartShouldSetResponderCapture' } }, /** * On a `scroll`, is it desired that this element become the responder? This * is usually not needed, but should be used to retroactively infer that a * `touchStart` had occurred during momentum scroll. During a momentum scroll, * a touch start will be immediately followed by a scroll event if the view is * currently scrolling. * * TODO: This shouldn't bubble. */ scrollShouldSetResponder: { phasedRegistrationNames: { bubbled: 'onScrollShouldSetResponder', captured: 'onScrollShouldSetResponderCapture' } }, /** * On text selection change, should this element become the responder? This * is needed for text inputs or other views with native selection, so the * JS view can claim the responder. * * TODO: This shouldn't bubble. */ selectionChangeShouldSetResponder: { phasedRegistrationNames: { bubbled: 'onSelectionChangeShouldSetResponder', captured: 'onSelectionChangeShouldSetResponderCapture' } }, /** * On a `touchMove`/`mouseMove`, is it desired that this element become the * responder? */ moveShouldSetResponder: { phasedRegistrationNames: { bubbled: 'onMoveShouldSetResponder', captured: 'onMoveShouldSetResponderCapture' } }, /** * Direct responder events dispatched directly to responder. Do not bubble. */ responderStart: { registrationName: 'onResponderStart' }, responderMove: { registrationName: 'onResponderMove' }, responderEnd: { registrationName: 'onResponderEnd' }, responderRelease: { registrationName: 'onResponderRelease' }, responderTerminationRequest: { registrationName: 'onResponderTerminationRequest' }, responderGrant: { registrationName: 'onResponderGrant' }, responderReject: { registrationName: 'onResponderReject' }, responderTerminate: { registrationName: 'onResponderTerminate' } }; /** * * Responder System: * ---------------- * * - A global, solitary "interaction lock" on a view. * - If a node becomes the responder, it should convey visual feedback * immediately to indicate so, either by highlighting or moving accordingly. * - To be the responder means, that touches are exclusively important to that * responder view, and no other view. * - While touches are still occurring, the responder lock can be transferred to * a new view, but only to increasingly "higher" views (meaning ancestors of * the current responder). * * Responder being granted: * ------------------------ * * - Touch starts, moves, and scrolls can cause an ID to become the responder. * - We capture/bubble `startShouldSetResponder`/`moveShouldSetResponder` to * the "appropriate place". * - If nothing is currently the responder, the "appropriate place" is the * initiating event's `targetID`. * - If something *is* already the responder, the "appropriate place" is the * first common ancestor of the event target and the current `responderInst`. * - Some negotiation happens: See the timing diagram below. * - Scrolled views automatically become responder. The reasoning is that a * platform scroll view that isn't built on top of the responder system has * began scrolling, and the active responder must now be notified that the * interaction is no longer locked to it - the system has taken over. * * - Responder being released: * As soon as no more touches that *started* inside of descendants of the * *current* responderInst, an `onResponderRelease` event is dispatched to the * current responder, and the responder lock is released. * * TODO: * - on "end", a callback hook for `onResponderEndShouldRemainResponder` that * determines if the responder lock should remain. * - If a view shouldn't "remain" the responder, any active touches should by * default be considered "dead" and do not influence future negotiations or * bubble paths. It should be as if those touches do not exist. * -- For multitouch: Usually a translate-z will choose to "remain" responder * after one out of many touches ended. For translate-y, usually the view * doesn't wish to "remain" responder after one of many touches end. * - Consider building this on top of a `stopPropagation` model similar to * `W3C` events. * - Ensure that `onResponderTerminate` is called on touch cancels, whether or * not `onResponderTerminationRequest` returns `true` or `false`. * */ /* Negotiation Performed +-----------------------+ / \ Process low level events to + Current Responder + wantsResponderID determine who to perform negot-| (if any exists at all) | iation/transition | Otherwise just pass through| -------------------------------+----------------------------+------------------+ Bubble to find first ID | | to return true:wantsResponderID| | | | +-------------+ | | | onTouchStart| | | +------+------+ none | | | return| | +-----------v-------------+true| +------------------------+ | |onStartShouldSetResponder|----->|onResponderStart (cur) |<-----------+ +-----------+-------------+ | +------------------------+ | | | | | +--------+-------+ | returned true for| false:REJECT +-------->|onResponderReject | wantsResponderID | | | +----------------+ | (now attempt | +------------------+-----+ | | handoff) | | onResponder | | +------------------->| TerminationRequest| | | +------------------+-----+ | | | | +----------------+ | true:GRANT +-------->|onResponderGrant| | | +--------+-------+ | +------------------------+ | | | | onResponderTerminate |<-----------+ | +------------------+-----+ | | | | +----------------+ | +-------->|onResponderStart| | | +----------------+ Bubble to find first ID | | to return true:wantsResponderID| | | | +-------------+ | | | onTouchMove | | | +------+------+ none | | | return| | +-----------v-------------+true| +------------------------+ | |onMoveShouldSetResponder |----->|onResponderMove (cur) |<-----------+ +-----------+-------------+ | +------------------------+ | | | | | +--------+-------+ | returned true for| false:REJECT +-------->|onResponderRejec| | wantsResponderID | | | +----------------+ | (now attempt | +------------------+-----+ | | handoff) | | onResponder | | +------------------->| TerminationRequest| | | +------------------+-----+ | | | | +----------------+ | true:GRANT +-------->|onResponderGrant| | | +--------+-------+ | +------------------------+ | | | | onResponderTerminate |<-----------+ | +------------------+-----+ | | | | +----------------+ | +-------->|onResponderMove | | | +----------------+ | | | | Some active touch started| | inside current responder | +------------------------+ | +------------------------->| onResponderEnd | | | | +------------------------+ | +---+---------+ | | | onTouchEnd | | | +---+---------+ | | | | +------------------------+ | +------------------------->| onResponderEnd | | No active touches started| +-----------+------------+ | inside current responder | | | | v | | +------------------------+ | | | onResponderRelease | | | +------------------------+ | | | + + */ /** * A note about event ordering in the `EventPluginHub`. * * Suppose plugins are injected in the following order: * * `[R, S, C]` * * To help illustrate the example, assume `S` is `SimpleEventPlugin` (for * `onClick` etc) and `R` is `ResponderEventPlugin`. * * "Deferred-Dispatched Events": * * - The current event plugin system will traverse the list of injected plugins, * in order, and extract events by collecting the plugin's return value of * `extractEvents()`. * - These events that are returned from `extractEvents` are "deferred * dispatched events". * - When returned from `extractEvents`, deferred-dispatched events contain an * "accumulation" of deferred dispatches. * - These deferred dispatches are accumulated/collected before they are * returned, but processed at a later time by the `EventPluginHub` (hence the * name deferred). * * In the process of returning their deferred-dispatched events, event plugins * themselves can dispatch events on-demand without returning them from * `extractEvents`. Plugins might want to do this, so that they can use event * dispatching as a tool that helps them decide which events should be extracted * in the first place. * * "On-Demand-Dispatched Events": * * - On-demand-dispatched events are not returned from `extractEvents`. * - On-demand-dispatched events are dispatched during the process of returning * the deferred-dispatched events. * - They should not have side effects. * - They should be avoided, and/or eventually be replaced with another * abstraction that allows event plugins to perform multiple "rounds" of event * extraction. * * Therefore, the sequence of event dispatches becomes: * * - `R`s on-demand events (if any) (dispatched by `R` on-demand) * - `S`s on-demand events (if any) (dispatched by `S` on-demand) * - `C`s on-demand events (if any) (dispatched by `C` on-demand) * - `R`s extracted events (if any) (dispatched by `EventPluginHub`) * - `S`s extracted events (if any) (dispatched by `EventPluginHub`) * - `C`s extracted events (if any) (dispatched by `EventPluginHub`) * * In the case of `ResponderEventPlugin`: If the `startShouldSetResponder` * on-demand dispatch returns `true` (and some other details are satisfied) the * `onResponderGrant` deferred dispatched event is returned from * `extractEvents`. The sequence of dispatch executions in this case * will appear as follows: * * - `startShouldSetResponder` (`ResponderEventPlugin` dispatches on-demand) * - `touchStartCapture` (`EventPluginHub` dispatches as usual) * - `touchStart` (`EventPluginHub` dispatches as usual) * - `responderGrant/Reject` (`EventPluginHub` dispatches as usual) */ function setResponderAndExtractTransfer(topLevelType, targetInst, nativeEvent, nativeEventTarget) { var shouldSetEventType = isStartish(topLevelType) ? eventTypes.startShouldSetResponder : isMoveish(topLevelType) ? eventTypes.moveShouldSetResponder : topLevelType === 'topSelectionChange' ? eventTypes.selectionChangeShouldSetResponder : eventTypes.scrollShouldSetResponder; // TODO: stop one short of the current responder. var bubbleShouldSetFrom = !responderInst ? targetInst : EventPluginUtils.getLowestCommonAncestor(responderInst, targetInst); // When capturing/bubbling the "shouldSet" event, we want to skip the target // (deepest ID) if it happens to be the current responder. The reasoning: // It's strange to get an `onMoveShouldSetResponder` when you're *already* // the responder. var skipOverBubbleShouldSetFrom = bubbleShouldSetFrom === responderInst; var shouldSetEvent = ResponderSyntheticEvent.getPooled(shouldSetEventType, bubbleShouldSetFrom, nativeEvent, nativeEventTarget); shouldSetEvent.touchHistory = ResponderTouchHistoryStore.touchHistory; if (skipOverBubbleShouldSetFrom) { EventPropagators.accumulateTwoPhaseDispatchesSkipTarget(shouldSetEvent); } else { EventPropagators.accumulateTwoPhaseDispatches(shouldSetEvent); } var wantsResponderInst = executeDispatchesInOrderStopAtTrue(shouldSetEvent); if (!shouldSetEvent.isPersistent()) { shouldSetEvent.constructor.release(shouldSetEvent); } if (!wantsResponderInst || wantsResponderInst === responderInst) { return null; } var extracted; var grantEvent = ResponderSyntheticEvent.getPooled(eventTypes.responderGrant, wantsResponderInst, nativeEvent, nativeEventTarget); grantEvent.touchHistory = ResponderTouchHistoryStore.touchHistory; EventPropagators.accumulateDirectDispatches(grantEvent); var blockHostResponder = executeDirectDispatch(grantEvent) === true; if (responderInst) { var terminationRequestEvent = ResponderSyntheticEvent.getPooled(eventTypes.responderTerminationRequest, responderInst, nativeEvent, nativeEventTarget); terminationRequestEvent.touchHistory = ResponderTouchHistoryStore.touchHistory; EventPropagators.accumulateDirectDispatches(terminationRequestEvent); var shouldSwitch = !hasDispatches(terminationRequestEvent) || executeDirectDispatch(terminationRequestEvent); if (!terminationRequestEvent.isPersistent()) { terminationRequestEvent.constructor.release(terminationRequestEvent); } if (shouldSwitch) { var terminateEvent = ResponderSyntheticEvent.getPooled(eventTypes.responderTerminate, responderInst, nativeEvent, nativeEventTarget); terminateEvent.touchHistory = ResponderTouchHistoryStore.touchHistory; EventPropagators.accumulateDirectDispatches(terminateEvent); extracted = accumulate(extracted, [grantEvent, terminateEvent]); changeResponder(wantsResponderInst, blockHostResponder); } else { var rejectEvent = ResponderSyntheticEvent.getPooled(eventTypes.responderReject, wantsResponderInst, nativeEvent, nativeEventTarget); rejectEvent.touchHistory = ResponderTouchHistoryStore.touchHistory; EventPropagators.accumulateDirectDispatches(rejectEvent); extracted = accumulate(extracted, rejectEvent); } } else { extracted = accumulate(extracted, grantEvent); changeResponder(wantsResponderInst, blockHostResponder); } return extracted; } /** * A transfer is a negotiation between a currently set responder and the next * element to claim responder status. Any start event could trigger a transfer * of responderInst. Any move event could trigger a transfer. * * @param {string} topLevelType Record from `EventConstants`. * @return {boolean} True if a transfer of responder could possibly occur. */ function canTriggerTransfer(topLevelType, topLevelInst, nativeEvent) { return topLevelInst && ( // responderIgnoreScroll: We are trying to migrate away from specifically // tracking native scroll events here and responderIgnoreScroll indicates we // will send topTouchCancel to handle canceling touch events instead topLevelType === 'topScroll' && !nativeEvent.responderIgnoreScroll || trackedTouchCount > 0 && topLevelType === 'topSelectionChange' || isStartish(topLevelType) || isMoveish(topLevelType)); } /** * Returns whether or not this touch end event makes it such that there are no * longer any touches that started inside of the current `responderInst`. * * @param {NativeEvent} nativeEvent Native touch end event. * @return {boolean} Whether or not this touch end event ends the responder. */ function noResponderTouches(nativeEvent) { var touches = nativeEvent.touches; if (!touches || touches.length === 0) { return true; } for (var i = 0; i < touches.length; i++) { var activeTouch = touches[i]; var target = activeTouch.target; if (target !== null && target !== undefined && target !== 0) { // Is the original touch location inside of the current responder? var targetInst = EventPluginUtils.getInstanceFromNode(target); if (EventPluginUtils.isAncestor(responderInst, targetInst)) { return false; } } } return true; } var ResponderEventPlugin = { /* For unit testing only */ _getResponderID: function () { return responderInst ? responderInst._rootNodeID : null; }, eventTypes: eventTypes, /** * We must be resilient to `targetInst` being `null` on `touchMove` or * `touchEnd`. On certain platforms, this means that a native scroll has * assumed control and the original touch targets are destroyed. */ extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) { if (isStartish(topLevelType)) { trackedTouchCount += 1; } else if (isEndish(topLevelType)) { if (trackedTouchCount >= 0) { trackedTouchCount -= 1; } else { console.error('Ended a touch event which was not counted in `trackedTouchCount`.'); return null; } } ResponderTouchHistoryStore.recordTouchTrack(topLevelType, nativeEvent); var extracted = canTriggerTransfer(topLevelType, targetInst, nativeEvent) ? setResponderAndExtractTransfer(topLevelType, targetInst, nativeEvent, nativeEventTarget) : null; // Responder may or may not have transferred on a new touch start/move. // Regardless, whoever is the responder after any potential transfer, we // direct all touch start/move/ends to them in the form of // `onResponderMove/Start/End`. These will be called for *every* additional // finger that move/start/end, dispatched directly to whoever is the // current responder at that moment, until the responder is "released". // // These multiple individual change touch events are are always bookended // by `onResponderGrant`, and one of // (`onResponderRelease/onResponderTerminate`). var isResponderTouchStart = responderInst && isStartish(topLevelType); var isResponderTouchMove = responderInst && isMoveish(topLevelType); var isResponderTouchEnd = responderInst && isEndish(topLevelType); var incrementalTouch = isResponderTouchStart ? eventTypes.responderStart : isResponderTouchMove ? eventTypes.responderMove : isResponderTouchEnd ? eventTypes.responderEnd : null; if (incrementalTouch) { var gesture = ResponderSyntheticEvent.getPooled(incrementalTouch, responderInst, nativeEvent, nativeEventTarget); gesture.touchHistory = ResponderTouchHistoryStore.touchHistory; EventPropagators.accumulateDirectDispatches(gesture); extracted = accumulate(extracted, gesture); } var isResponderTerminate = responderInst && topLevelType === 'topTouchCancel'; var isResponderRelease = responderInst && !isResponderTerminate && isEndish(topLevelType) && noResponderTouches(nativeEvent); var finalTouch = isResponderTerminate ? eventTypes.responderTerminate : isResponderRelease ? eventTypes.responderRelease : null; if (finalTouch) { var finalEvent = ResponderSyntheticEvent.getPooled(finalTouch, responderInst, nativeEvent, nativeEventTarget); finalEvent.touchHistory = ResponderTouchHistoryStore.touchHistory; EventPropagators.accumulateDirectDispatches(finalEvent); extracted = accumulate(extracted, finalEvent); changeResponder(null); } var numberActiveTouches = ResponderTouchHistoryStore.touchHistory.numberActiveTouches; if (ResponderEventPlugin.GlobalInteractionHandler && numberActiveTouches !== previousActiveTouches) { ResponderEventPlugin.GlobalInteractionHandler.onChange(numberActiveTouches); } previousActiveTouches = numberActiveTouches; return extracted; }, GlobalResponderHandler: null, GlobalInteractionHandler: null, injection: { /** * @param {{onChange: (ReactID, ReactID) => void} GlobalResponderHandler * Object that handles any change in responder. Use this to inject * integration with an existing touch handling system etc. */ injectGlobalResponderHandler: function (GlobalResponderHandler) { ResponderEventPlugin.GlobalResponderHandler = GlobalResponderHandler; }, /** * @param {{onChange: (numberActiveTouches) => void} GlobalInteractionHandler * Object that handles any change in the number of active touches. */ injectGlobalInteractionHandler: function (GlobalInteractionHandler) { ResponderEventPlugin.GlobalInteractionHandler = GlobalInteractionHandler; } } }; module.exports = ResponderEventPlugin; /***/ }), /* 268 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var SyntheticEvent = __webpack_require__(15); /** * `touchHistory` isn't actually on the native event, but putting it in the * interface will ensure that it is cleaned up when pooled/destroyed. The * `ResponderEventPlugin` will populate it appropriately. */ var ResponderEventInterface = { touchHistory: function (nativeEvent) { return null; // Actually doesn't even look at the native event. } }; /** * @param {object} dispatchConfig Configuration used to dispatch this event. * @param {string} dispatchMarker Marker identifying the event target. * @param {object} nativeEvent Native event. * @extends {SyntheticEvent} */ function ResponderSyntheticEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); } SyntheticEvent.augmentClass(ResponderSyntheticEvent, ResponderEventInterface); module.exports = ResponderSyntheticEvent; /***/ }), /* 269 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var NS = { xlink: 'http://www.w3.org/1999/xlink', xml: 'http://www.w3.org/XML/1998/namespace' }; // We use attributes for everything SVG so let's avoid some duplication and run // code instead. // The following are all specified in the HTML config already so we exclude here. // - class (as className) // - color // - height // - id // - lang // - max // - media // - method // - min // - name // - style // - target // - type // - width var ATTRS = { accentHeight: 'accent-height', accumulate: 0, additive: 0, alignmentBaseline: 'alignment-baseline', allowReorder: 'allowReorder', alphabetic: 0, amplitude: 0, arabicForm: 'arabic-form', ascent: 0, attributeName: 'attributeName', attributeType: 'attributeType', autoReverse: 'autoReverse', azimuth: 0, baseFrequency: 'baseFrequency', baseProfile: 'baseProfile', baselineShift: 'baseline-shift', bbox: 0, begin: 0, bias: 0, by: 0, calcMode: 'calcMode', capHeight: 'cap-height', clip: 0, clipPath: 'clip-path', clipRule: 'clip-rule', clipPathUnits: 'clipPathUnits', colorInterpolation: 'color-interpolation', colorInterpolationFilters: 'color-interpolation-filters', colorProfile: 'color-profile', colorRendering: 'color-rendering', contentScriptType: 'contentScriptType', contentStyleType: 'contentStyleType', cursor: 0, cx: 0, cy: 0, d: 0, decelerate: 0, descent: 0, diffuseConstant: 'diffuseConstant', direction: 0, display: 0, divisor: 0, dominantBaseline: 'dominant-baseline', dur: 0, dx: 0, dy: 0, edgeMode: 'edgeMode', elevation: 0, enableBackground: 'enable-background', end: 0, exponent: 0, externalResourcesRequired: 'externalResourcesRequired', fill: 0, fillOpacity: 'fill-opacity', fillRule: 'fill-rule', filter: 0, filterRes: 'filterRes', filterUnits: 'filterUnits', floodColor: 'flood-color', floodOpacity: 'flood-opacity', focusable: 0, fontFamily: 'font-family', fontSize: 'font-size', fontSizeAdjust: 'font-size-adjust', fontStretch: 'font-stretch', fontStyle: 'font-style', fontVariant: 'font-variant', fontWeight: 'font-weight', format: 0, from: 0, fx: 0, fy: 0, g1: 0, g2: 0, glyphName: 'glyph-name', glyphOrientationHorizontal: 'glyph-orientation-horizontal', glyphOrientationVertical: 'glyph-orientation-vertical', glyphRef: 'glyphRef', gradientTransform: 'gradientTransform', gradientUnits: 'gradientUnits', hanging: 0, horizAdvX: 'horiz-adv-x', horizOriginX: 'horiz-origin-x', ideographic: 0, imageRendering: 'image-rendering', 'in': 0, in2: 0, intercept: 0, k: 0, k1: 0, k2: 0, k3: 0, k4: 0, kernelMatrix: 'kernelMatrix', kernelUnitLength: 'kernelUnitLength', kerning: 0, keyPoints: 'keyPoints', keySplines: 'keySplines', keyTimes: 'keyTimes', lengthAdjust: 'lengthAdjust', letterSpacing: 'letter-spacing', lightingColor: 'lighting-color', limitingConeAngle: 'limitingConeAngle', local: 0, markerEnd: 'marker-end', markerMid: 'marker-mid', markerStart: 'marker-start', markerHeight: 'markerHeight', markerUnits: 'markerUnits', markerWidth: 'markerWidth', mask: 0, maskContentUnits: 'maskContentUnits', maskUnits: 'maskUnits', mathematical: 0, mode: 0, numOctaves: 'numOctaves', offset: 0, opacity: 0, operator: 0, order: 0, orient: 0, orientation: 0, origin: 0, overflow: 0, overlinePosition: 'overline-position', overlineThickness: 'overline-thickness', paintOrder: 'paint-order', panose1: 'panose-1', pathLength: 'pathLength', patternContentUnits: 'patternContentUnits', patternTransform: 'patternTransform', patternUnits: 'patternUnits', pointerEvents: 'pointer-events', points: 0, pointsAtX: 'pointsAtX', pointsAtY: 'pointsAtY', pointsAtZ: 'pointsAtZ', preserveAlpha: 'preserveAlpha', preserveAspectRatio: 'preserveAspectRatio', primitiveUnits: 'primitiveUnits', r: 0, radius: 0, refX: 'refX', refY: 'refY', renderingIntent: 'rendering-intent', repeatCount: 'repeatCount', repeatDur: 'repeatDur', requiredExtensions: 'requiredExtensions', requiredFeatures: 'requiredFeatures', restart: 0, result: 0, rotate: 0, rx: 0, ry: 0, scale: 0, seed: 0, shapeRendering: 'shape-rendering', slope: 0, spacing: 0, specularConstant: 'specularConstant', specularExponent: 'specularExponent', speed: 0, spreadMethod: 'spreadMethod', startOffset: 'startOffset', stdDeviation: 'stdDeviation', stemh: 0, stemv: 0, stitchTiles: 'stitchTiles', stopColor: 'stop-color', stopOpacity: 'stop-opacity', strikethroughPosition: 'strikethrough-position', strikethroughThickness: 'strikethrough-thickness', string: 0, stroke: 0, strokeDasharray: 'stroke-dasharray', strokeDashoffset: 'stroke-dashoffset', strokeLinecap: 'stroke-linecap', strokeLinejoin: 'stroke-linejoin', strokeMiterlimit: 'stroke-miterlimit', strokeOpacity: 'stroke-opacity', strokeWidth: 'stroke-width', surfaceScale: 'surfaceScale', systemLanguage: 'systemLanguage', tableValues: 'tableValues', targetX: 'targetX', targetY: 'targetY', textAnchor: 'text-anchor', textDecoration: 'text-decoration', textRendering: 'text-rendering', textLength: 'textLength', to: 0, transform: 0, u1: 0, u2: 0, underlinePosition: 'underline-position', underlineThickness: 'underline-thickness', unicode: 0, unicodeBidi: 'unicode-bidi', unicodeRange: 'unicode-range', unitsPerEm: 'units-per-em', vAlphabetic: 'v-alphabetic', vHanging: 'v-hanging', vIdeographic: 'v-ideographic', vMathematical: 'v-mathematical', values: 0, vectorEffect: 'vector-effect', version: 0, vertAdvY: 'vert-adv-y', vertOriginX: 'vert-origin-x', vertOriginY: 'vert-origin-y', viewBox: 'viewBox', viewTarget: 'viewTarget', visibility: 0, widths: 0, wordSpacing: 'word-spacing', writingMode: 'writing-mode', x: 0, xHeight: 'x-height', x1: 0, x2: 0, xChannelSelector: 'xChannelSelector', xlinkActuate: 'xlink:actuate', xlinkArcrole: 'xlink:arcrole', xlinkHref: 'xlink:href', xlinkRole: 'xlink:role', xlinkShow: 'xlink:show', xlinkTitle: 'xlink:title', xlinkType: 'xlink:type', xmlBase: 'xml:base', xmlns: 0, xmlnsXlink: 'xmlns:xlink', xmlLang: 'xml:lang', xmlSpace: 'xml:space', y: 0, y1: 0, y2: 0, yChannelSelector: 'yChannelSelector', z: 0, zoomAndPan: 'zoomAndPan' }; var SVGDOMPropertyConfig = { Properties: {}, DOMAttributeNamespaces: { xlinkActuate: NS.xlink, xlinkArcrole: NS.xlink, xlinkHref: NS.xlink, xlinkRole: NS.xlink, xlinkShow: NS.xlink, xlinkTitle: NS.xlink, xlinkType: NS.xlink, xmlBase: NS.xml, xmlLang: NS.xml, xmlSpace: NS.xml }, DOMAttributeNames: {} }; Object.keys(ATTRS).forEach(function (key) { SVGDOMPropertyConfig.Properties[key] = 0; if (ATTRS[key]) { SVGDOMPropertyConfig.DOMAttributeNames[key] = ATTRS[key]; } }); module.exports = SVGDOMPropertyConfig; /***/ }), /* 270 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var EventPropagators = __webpack_require__(28); var ExecutionEnvironment = __webpack_require__(4); var ReactDOMComponentTree = __webpack_require__(7); var ReactInputSelection = __webpack_require__(123); var SyntheticEvent = __webpack_require__(15); var getActiveElement = __webpack_require__(108); var isTextInputElement = __webpack_require__(134); var shallowEqual = __webpack_require__(65); var skipSelectionChangeEvent = ExecutionEnvironment.canUseDOM && 'documentMode' in document && document.documentMode <= 11; var eventTypes = { select: { phasedRegistrationNames: { bubbled: 'onSelect', captured: 'onSelectCapture' }, dependencies: ['topBlur', 'topContextMenu', 'topFocus', 'topKeyDown', 'topKeyUp', 'topMouseDown', 'topMouseUp', 'topSelectionChange'] } }; var activeElement = null; var activeElementInst = null; var lastSelection = null; var mouseDown = false; // Track whether a listener exists for this plugin. If none exist, we do // not extract events. See #3639. var hasListener = false; /** * Get an object which is a unique representation of the current selection. * * The return value will not be consistent across nodes or browsers, but * two identical selections on the same node will return identical objects. * * @param {DOMElement} node * @return {object} */ function getSelection(node) { if ('selectionStart' in node && ReactInputSelection.hasSelectionCapabilities(node)) { return { start: node.selectionStart, end: node.selectionEnd }; } else if (window.getSelection) { var selection = window.getSelection(); return { anchorNode: selection.anchorNode, anchorOffset: selection.anchorOffset, focusNode: selection.focusNode, focusOffset: selection.focusOffset }; } else if (document.selection) { var range = document.selection.createRange(); return { parentElement: range.parentElement(), text: range.text, top: range.boundingTop, left: range.boundingLeft }; } } /** * Poll selection to see whether it's changed. * * @param {object} nativeEvent * @return {?SyntheticEvent} */ function constructSelectEvent(nativeEvent, nativeEventTarget) { // Ensure we have the right element, and that the user is not dragging a // selection (this matches native `select` event behavior). In HTML5, select // fires only on input and textarea thus if there's no focused element we // won't dispatch. if (mouseDown || activeElement == null || activeElement !== getActiveElement()) { return null; } // Only fire when selection has actually changed. var currentSelection = getSelection(activeElement); if (!lastSelection || !shallowEqual(lastSelection, currentSelection)) { lastSelection = currentSelection; var syntheticEvent = SyntheticEvent.getPooled(eventTypes.select, activeElementInst, nativeEvent, nativeEventTarget); syntheticEvent.type = 'select'; syntheticEvent.target = activeElement; EventPropagators.accumulateTwoPhaseDispatches(syntheticEvent); return syntheticEvent; } return null; } /** * This plugin creates an `onSelect` event that normalizes select events * across form elements. * * Supported elements are: * - input (see `isTextInputElement`) * - textarea * - contentEditable * * This differs from native browser implementations in the following ways: * - Fires on contentEditable fields as well as inputs. * - Fires for collapsed selection. * - Fires after user input. */ var SelectEventPlugin = { eventTypes: eventTypes, extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) { if (!hasListener) { return null; } var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window; switch (topLevelType) { // Track the input node that has focus. case 'topFocus': if (isTextInputElement(targetNode) || targetNode.contentEditable === 'true') { activeElement = targetNode; activeElementInst = targetInst; lastSelection = null; } break; case 'topBlur': activeElement = null; activeElementInst = null; lastSelection = null; break; // Don't fire the event while the user is dragging. This matches the // semantics of the native select event. case 'topMouseDown': mouseDown = true; break; case 'topContextMenu': case 'topMouseUp': mouseDown = false; return constructSelectEvent(nativeEvent, nativeEventTarget); // Chrome and IE fire non-standard event when selection is changed (and // sometimes when it hasn't). IE's event fires out of order with respect // to key and input events on deletion, so we discard it. // // Firefox doesn't support selectionchange, so check selection status // after each key entry. The selection changes after keydown and before // keyup, but we check on keydown as well in the case of holding down a // key, when multiple keydown events are fired but only one keyup is. // This is also our approach for IE handling, for the reason above. case 'topSelectionChange': if (skipSelectionChangeEvent) { break; } // falls through case 'topKeyDown': case 'topKeyUp': return constructSelectEvent(nativeEvent, nativeEventTarget); } return null; }, didPutListener: function (inst, registrationName, listener) { if (registrationName === 'onSelect') { hasListener = true; } } }; module.exports = SelectEventPlugin; /***/ }), /* 271 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ var _prodInvariant = __webpack_require__(2); var EventListener = __webpack_require__(105); var EventPropagators = __webpack_require__(28); var ReactDOMComponentTree = __webpack_require__(7); var SyntheticAnimationEvent = __webpack_require__(272); var SyntheticClipboardEvent = __webpack_require__(273); var SyntheticEvent = __webpack_require__(15); var SyntheticFocusEvent = __webpack_require__(276); var SyntheticKeyboardEvent = __webpack_require__(278); var SyntheticMouseEvent = __webpack_require__(54); var SyntheticDragEvent = __webpack_require__(275); var SyntheticTouchEvent = __webpack_require__(279); var SyntheticTransitionEvent = __webpack_require__(280); var SyntheticUIEvent = __webpack_require__(42); var SyntheticWheelEvent = __webpack_require__(281); var emptyFunction = __webpack_require__(10); var getEventCharCode = __webpack_require__(75); var invariant = __webpack_require__(0); /** * Turns * ['abort', ...] * into * eventTypes = { * 'abort': { * phasedRegistrationNames: { * bubbled: 'onAbort', * captured: 'onAbortCapture', * }, * dependencies: ['topAbort'], * }, * ... * }; * topLevelEventsToDispatchConfig = { * 'topAbort': { sameConfig } * }; */ var eventTypes = {}; var topLevelEventsToDispatchConfig = {}; ['abort', 'animationEnd', 'animationIteration', 'animationStart', 'blur', 'canPlay', 'canPlayThrough', 'click', 'contextMenu', 'copy', 'cut', 'doubleClick', 'drag', 'dragEnd', 'dragEnter', 'dragExit', 'dragLeave', 'dragOver', 'dragStart', 'drop', 'durationChange', 'emptied', 'encrypted', 'ended', 'error', 'focus', 'input', 'invalid', 'keyDown', 'keyPress', 'keyUp', 'load', 'loadedData', 'loadedMetadata', 'loadStart', 'mouseDown', 'mouseMove', 'mouseOut', 'mouseOver', 'mouseUp', 'paste', 'pause', 'play', 'playing', 'progress', 'rateChange', 'reset', 'scroll', 'seeked', 'seeking', 'stalled', 'submit', 'suspend', 'timeUpdate', 'touchCancel', 'touchEnd', 'touchMove', 'touchStart', 'transitionEnd', 'volumeChange', 'waiting', 'wheel'].forEach(function (event) { var capitalizedEvent = event[0].toUpperCase() + event.slice(1); var onEvent = 'on' + capitalizedEvent; var topEvent = 'top' + capitalizedEvent; var type = { phasedRegistrationNames: { bubbled: onEvent, captured: onEvent + 'Capture' }, dependencies: [topEvent] }; eventTypes[event] = type; topLevelEventsToDispatchConfig[topEvent] = type; }); var onClickListeners = {}; function getDictionaryKey(inst) { // Prevents V8 performance issue: // https://github.com/facebook/react/pull/7232 return '.' + inst._rootNodeID; } function isInteractive(tag) { return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea'; } var SimpleEventPlugin = { eventTypes: eventTypes, extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) { var dispatchConfig = topLevelEventsToDispatchConfig[topLevelType]; if (!dispatchConfig) { return null; } var EventConstructor; switch (topLevelType) { case 'topAbort': case 'topCanPlay': case 'topCanPlayThrough': case 'topDurationChange': case 'topEmptied': case 'topEncrypted': case 'topEnded': case 'topError': case 'topInput': case 'topInvalid': case 'topLoad': case 'topLoadedData': case 'topLoadedMetadata': case 'topLoadStart': case 'topPause': case 'topPlay': case 'topPlaying': case 'topProgress': case 'topRateChange': case 'topReset': case 'topSeeked': case 'topSeeking': case 'topStalled': case 'topSubmit': case 'topSuspend': case 'topTimeUpdate': case 'topVolumeChange': case 'topWaiting': // HTML Events // @see http://www.w3.org/TR/html5/index.html#events-0 EventConstructor = SyntheticEvent; break; case 'topKeyPress': // Firefox creates a keypress event for function keys too. This removes // the unwanted keypress events. Enter is however both printable and // non-printable. One would expect Tab to be as well (but it isn't). if (getEventCharCode(nativeEvent) === 0) { return null; } /* falls through */ case 'topKeyDown': case 'topKeyUp': EventConstructor = SyntheticKeyboardEvent; break; case 'topBlur': case 'topFocus': EventConstructor = SyntheticFocusEvent; break; case 'topClick': // Firefox creates a click event on right mouse clicks. This removes the // unwanted click events. if (nativeEvent.button === 2) { return null; } /* falls through */ case 'topDoubleClick': case 'topMouseDown': case 'topMouseMove': case 'topMouseUp': // TODO: Disabled elements should not respond to mouse events /* falls through */ case 'topMouseOut': case 'topMouseOver': case 'topContextMenu': EventConstructor = SyntheticMouseEvent; break; case 'topDrag': case 'topDragEnd': case 'topDragEnter': case 'topDragExit': case 'topDragLeave': case 'topDragOver': case 'topDragStart': case 'topDrop': EventConstructor = SyntheticDragEvent; break; case 'topTouchCancel': case 'topTouchEnd': case 'topTouchMove': case 'topTouchStart': EventConstructor = SyntheticTouchEvent; break; case 'topAnimationEnd': case 'topAnimationIteration': case 'topAnimationStart': EventConstructor = SyntheticAnimationEvent; break; case 'topTransitionEnd': EventConstructor = SyntheticTransitionEvent; break; case 'topScroll': EventConstructor = SyntheticUIEvent; break; case 'topWheel': EventConstructor = SyntheticWheelEvent; break; case 'topCopy': case 'topCut': case 'topPaste': EventConstructor = SyntheticClipboardEvent; break; } !EventConstructor ? true ? invariant(false, 'SimpleEventPlugin: Unhandled event type, `%s`.', topLevelType) : _prodInvariant('86', topLevelType) : void 0; var event = EventConstructor.getPooled(dispatchConfig, targetInst, nativeEvent, nativeEventTarget); EventPropagators.accumulateTwoPhaseDispatches(event); return event; }, didPutListener: function (inst, registrationName, listener) { // Mobile Safari does not fire properly bubble click events on // non-interactive elements, which means delegated click listeners do not // fire. The workaround for this bug involves attaching an empty click // listener on the target node. // http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html if (registrationName === 'onClick' && !isInteractive(inst._tag)) { var key = getDictionaryKey(inst); var node = ReactDOMComponentTree.getNodeFromInstance(inst); if (!onClickListeners[key]) { onClickListeners[key] = EventListener.listen(node, 'click', emptyFunction); } } }, willDeleteListener: function (inst, registrationName) { if (registrationName === 'onClick' && !isInteractive(inst._tag)) { var key = getDictionaryKey(inst); onClickListeners[key].remove(); delete onClickListeners[key]; } } }; module.exports = SimpleEventPlugin; /***/ }), /* 272 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var SyntheticEvent = __webpack_require__(15); /** * @interface Event * @see http://www.w3.org/TR/css3-animations/#AnimationEvent-interface * @see https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent */ var AnimationEventInterface = { animationName: null, elapsedTime: null, pseudoElement: null }; /** * @param {object} dispatchConfig Configuration used to dispatch this event. * @param {string} dispatchMarker Marker identifying the event target. * @param {object} nativeEvent Native browser event. * @extends {SyntheticEvent} */ function SyntheticAnimationEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); } SyntheticEvent.augmentClass(SyntheticAnimationEvent, AnimationEventInterface); module.exports = SyntheticAnimationEvent; /***/ }), /* 273 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var SyntheticEvent = __webpack_require__(15); /** * @interface Event * @see http://www.w3.org/TR/clipboard-apis/ */ var ClipboardEventInterface = { clipboardData: function (event) { return 'clipboardData' in event ? event.clipboardData : window.clipboardData; } }; /** * @param {object} dispatchConfig Configuration used to dispatch this event. * @param {string} dispatchMarker Marker identifying the event target. * @param {object} nativeEvent Native browser event. * @extends {SyntheticUIEvent} */ function SyntheticClipboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); } SyntheticEvent.augmentClass(SyntheticClipboardEvent, ClipboardEventInterface); module.exports = SyntheticClipboardEvent; /***/ }), /* 274 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var SyntheticEvent = __webpack_require__(15); /** * @interface Event * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents */ var CompositionEventInterface = { data: null }; /** * @param {object} dispatchConfig Configuration used to dispatch this event. * @param {string} dispatchMarker Marker identifying the event target. * @param {object} nativeEvent Native browser event. * @extends {SyntheticUIEvent} */ function SyntheticCompositionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); } SyntheticEvent.augmentClass(SyntheticCompositionEvent, CompositionEventInterface); module.exports = SyntheticCompositionEvent; /***/ }), /* 275 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var SyntheticMouseEvent = __webpack_require__(54); /** * @interface DragEvent * @see http://www.w3.org/TR/DOM-Level-3-Events/ */ var DragEventInterface = { dataTransfer: null }; /** * @param {object} dispatchConfig Configuration used to dispatch this event. * @param {string} dispatchMarker Marker identifying the event target. * @param {object} nativeEvent Native browser event. * @extends {SyntheticUIEvent} */ function SyntheticDragEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { return SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); } SyntheticMouseEvent.augmentClass(SyntheticDragEvent, DragEventInterface); module.exports = SyntheticDragEvent; /***/ }), /* 276 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var SyntheticUIEvent = __webpack_require__(42); /** * @interface FocusEvent * @see http://www.w3.org/TR/DOM-Level-3-Events/ */ var FocusEventInterface = { relatedTarget: null }; /** * @param {object} dispatchConfig Configuration used to dispatch this event. * @param {string} dispatchMarker Marker identifying the event target. * @param {object} nativeEvent Native browser event. * @extends {SyntheticUIEvent} */ function SyntheticFocusEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); } SyntheticUIEvent.augmentClass(SyntheticFocusEvent, FocusEventInterface); module.exports = SyntheticFocusEvent; /***/ }), /* 277 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var SyntheticEvent = __webpack_require__(15); /** * @interface Event * @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105 * /#events-inputevents */ var InputEventInterface = { data: null }; /** * @param {object} dispatchConfig Configuration used to dispatch this event. * @param {string} dispatchMarker Marker identifying the event target. * @param {object} nativeEvent Native browser event. * @extends {SyntheticUIEvent} */ function SyntheticInputEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); } SyntheticEvent.augmentClass(SyntheticInputEvent, InputEventInterface); module.exports = SyntheticInputEvent; /***/ }), /* 278 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var SyntheticUIEvent = __webpack_require__(42); var getEventCharCode = __webpack_require__(75); var getEventKey = __webpack_require__(288); var getEventModifierState = __webpack_require__(76); /** * @interface KeyboardEvent * @see http://www.w3.org/TR/DOM-Level-3-Events/ */ var KeyboardEventInterface = { key: getEventKey, location: null, ctrlKey: null, shiftKey: null, altKey: null, metaKey: null, repeat: null, locale: null, getModifierState: getEventModifierState, // Legacy Interface charCode: function (event) { // `charCode` is the result of a KeyPress event and represents the value of // the actual printable character. // KeyPress is deprecated, but its replacement is not yet final and not // implemented in any major browser. Only KeyPress has charCode. if (event.type === 'keypress') { return getEventCharCode(event); } return 0; }, keyCode: function (event) { // `keyCode` is the result of a KeyDown/Up event and represents the value of // physical keyboard key. // The actual meaning of the value depends on the users' keyboard layout // which cannot be detected. Assuming that it is a US keyboard layout // provides a surprisingly accurate mapping for US and European users. // Due to this, it is left to the user to implement at this time. if (event.type === 'keydown' || event.type === 'keyup') { return event.keyCode; } return 0; }, which: function (event) { // `which` is an alias for either `keyCode` or `charCode` depending on the // type of the event. if (event.type === 'keypress') { return getEventCharCode(event); } if (event.type === 'keydown' || event.type === 'keyup') { return event.keyCode; } return 0; } }; /** * @param {object} dispatchConfig Configuration used to dispatch this event. * @param {string} dispatchMarker Marker identifying the event target. * @param {object} nativeEvent Native browser event. * @extends {SyntheticUIEvent} */ function SyntheticKeyboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); } SyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface); module.exports = SyntheticKeyboardEvent; /***/ }), /* 279 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var SyntheticUIEvent = __webpack_require__(42); var getEventModifierState = __webpack_require__(76); /** * @interface TouchEvent * @see http://www.w3.org/TR/touch-events/ */ var TouchEventInterface = { touches: null, targetTouches: null, changedTouches: null, altKey: null, metaKey: null, ctrlKey: null, shiftKey: null, getModifierState: getEventModifierState }; /** * @param {object} dispatchConfig Configuration used to dispatch this event. * @param {string} dispatchMarker Marker identifying the event target. * @param {object} nativeEvent Native browser event. * @extends {SyntheticUIEvent} */ function SyntheticTouchEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); } SyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface); module.exports = SyntheticTouchEvent; /***/ }), /* 280 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var SyntheticEvent = __webpack_require__(15); /** * @interface Event * @see http://www.w3.org/TR/2009/WD-css3-transitions-20090320/#transition-events- * @see https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent */ var TransitionEventInterface = { propertyName: null, elapsedTime: null, pseudoElement: null }; /** * @param {object} dispatchConfig Configuration used to dispatch this event. * @param {string} dispatchMarker Marker identifying the event target. * @param {object} nativeEvent Native browser event. * @extends {SyntheticEvent} */ function SyntheticTransitionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); } SyntheticEvent.augmentClass(SyntheticTransitionEvent, TransitionEventInterface); module.exports = SyntheticTransitionEvent; /***/ }), /* 281 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var SyntheticMouseEvent = __webpack_require__(54); /** * @interface WheelEvent * @see http://www.w3.org/TR/DOM-Level-3-Events/ */ var WheelEventInterface = { deltaX: function (event) { return 'deltaX' in event ? event.deltaX : // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive). 'wheelDeltaX' in event ? -event.wheelDeltaX : 0; }, deltaY: function (event) { return 'deltaY' in event ? event.deltaY : // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive). 'wheelDeltaY' in event ? -event.wheelDeltaY : // Fallback to `wheelDelta` for IE<9 and normalize (down is positive). 'wheelDelta' in event ? -event.wheelDelta : 0; }, deltaZ: null, // Browsers without "deltaMode" is reporting in raw wheel delta where one // notch on the scroll is always +/- 120, roughly equivalent to pixels. // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size. deltaMode: null }; /** * @param {object} dispatchConfig Configuration used to dispatch this event. * @param {string} dispatchMarker Marker identifying the event target. * @param {object} nativeEvent Native browser event. * @extends {SyntheticMouseEvent} */ function SyntheticWheelEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { return SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); } SyntheticMouseEvent.augmentClass(SyntheticWheelEvent, WheelEventInterface); module.exports = SyntheticWheelEvent; /***/ }), /* 282 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ var _prodInvariant = __webpack_require__(2); var invariant = __webpack_require__(0); /** * Accumulates items that must not be null or undefined. * * This is used to conserve memory by avoiding array allocations. * * @return {*|array<*>} An accumulation of items. */ function accumulate(current, next) { !(next != null) ? true ? invariant(false, 'accumulate(...): Accumulated items must be not be null or undefined.') : _prodInvariant('29') : void 0; if (current == null) { return next; } // Both are not empty. Warning: Never call x.concat(y) when you are not // certain that x is an Array (x could be a string with concat method). if (Array.isArray(current)) { return current.concat(next); } if (Array.isArray(next)) { return [current].concat(next); } return [current, next]; } module.exports = accumulate; /***/ }), /* 283 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ var MOD = 65521; // adler32 is not cryptographically strong, and is only used to sanity check that // markup generated on the server matches the markup generated on the client. // This implementation (a modified version of the SheetJS version) has been optimized // for our use case, at the expense of conforming to the adler32 specification // for non-ascii inputs. function adler32(data) { var a = 1; var b = 0; var i = 0; var l = data.length; var m = l & ~0x3; while (i < m) { var n = Math.min(i + 4096, m); for (; i < n; i += 4) { b += (a += data.charCodeAt(i)) + (a += data.charCodeAt(i + 1)) + (a += data.charCodeAt(i + 2)) + (a += data.charCodeAt(i + 3)); } a %= MOD; b %= MOD; } for (; i < l; i++) { b += a += data.charCodeAt(i); } a %= MOD; b %= MOD; return a | b << 16; } module.exports = adler32; /***/ }), /* 284 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(process) {/** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _prodInvariant = __webpack_require__(2); var ReactPropTypeLocationNames = __webpack_require__(261); var ReactPropTypesSecret = __webpack_require__(126); var invariant = __webpack_require__(0); var warning = __webpack_require__(1); var ReactComponentTreeHook; if (typeof process !== 'undefined' && process.env && "development" === 'test') { // Temporary hack. // Inline requires don't work well with Jest: // https://github.com/facebook/react/issues/7240 // Remove the inline requires when we don't need them anymore: // https://github.com/facebook/react/pull/7178 ReactComponentTreeHook = __webpack_require__(13); } var loggedTypeFailures = {}; /** * Assert that the values match with the type specs. * Error messages are memorized and will only be shown once. * * @param {object} typeSpecs Map of name to a ReactPropType * @param {object} values Runtime values that need to be type-checked * @param {string} location e.g. "prop", "context", "child context" * @param {string} componentName Name of the component for error messages. * @param {?object} element The React element that is being type-checked * @param {?number} debugID The React component instance that is being type-checked * @private */ function checkReactTypeSpec(typeSpecs, values, location, componentName, element, debugID) { for (var typeSpecName in typeSpecs) { if (typeSpecs.hasOwnProperty(typeSpecName)) { var error; // Prop type validation may throw. In case they do, we don't want to // fail the render phase where it didn't fail before. So we log it. // After these have been cleaned up, we'll let them throw. try { // This is intentionally an invariant that gets caught. It's the same // behavior as without this statement except with a better message. !(typeof typeSpecs[typeSpecName] === 'function') ? true ? invariant(false, '%s: %s type `%s` is invalid; it must be a function, usually from React.PropTypes.', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName) : _prodInvariant('84', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName) : void 0; error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); } catch (ex) { error = ex; } true ? warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName, typeof error) : void 0; if (error instanceof Error && !(error.message in loggedTypeFailures)) { // Only monitor this failure once because there tends to be a lot of the // same error. loggedTypeFailures[error.message] = true; var componentStackInfo = ''; if (true) { if (!ReactComponentTreeHook) { ReactComponentTreeHook = __webpack_require__(13); } if (debugID !== null) { componentStackInfo = ReactComponentTreeHook.getStackAddendumByID(debugID); } else if (element !== null) { componentStackInfo = ReactComponentTreeHook.getCurrentStackAddendum(element); } } true ? warning(false, 'Failed %s type: %s%s', location, error.message, componentStackInfo) : void 0; } } } } module.exports = checkReactTypeSpec; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(66))) /***/ }), /* 285 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var CSSProperty = __webpack_require__(115); var warning = __webpack_require__(1); var isUnitlessNumber = CSSProperty.isUnitlessNumber; var styleWarnings = {}; /** * Convert a value into the proper css writable value. The style name `name` * should be logical (no hyphens), as specified * in `CSSProperty.isUnitlessNumber`. * * @param {string} name CSS property name such as `topMargin`. * @param {*} value CSS property value such as `10px`. * @param {ReactDOMComponent} component * @return {string} Normalized style value with dimensions applied. */ function dangerousStyleValue(name, value, component) { // Note that we've removed escapeTextForBrowser() calls here since the // whole string will be escaped when the attribute is injected into // the markup. If you provide unsafe user data here they can inject // arbitrary CSS which may be problematic (I couldn't repro this): // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/ // This is not an XSS hole but instead a potential CSS injection issue // which has lead to a greater discussion about how we're going to // trust URLs moving forward. See #2115901 var isEmpty = value == null || typeof value === 'boolean' || value === ''; if (isEmpty) { return ''; } var isNonNumeric = isNaN(value); if (isNonNumeric || value === 0 || isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name]) { return '' + value; // cast to string } if (typeof value === 'string') { if (true) { // Allow '0' to pass through without warning. 0 is already special and // doesn't require units, so we don't need to warn about it. if (component && value !== '0') { var owner = component._currentElement._owner; var ownerName = owner ? owner.getName() : null; if (ownerName && !styleWarnings[ownerName]) { styleWarnings[ownerName] = {}; } var warned = false; if (ownerName) { var warnings = styleWarnings[ownerName]; warned = warnings[name]; if (!warned) { warnings[name] = true; } } if (!warned) { true ? warning(false, 'a `%s` tag (owner: `%s`) was passed a numeric string value ' + 'for CSS property `%s` (value: `%s`) which will be treated ' + 'as a unitless number in a future version of React.', component._currentElement.type, ownerName || 'unknown', name, value) : void 0; } } } value = value.trim(); } return value + 'px'; } module.exports = dangerousStyleValue; /***/ }), /* 286 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _prodInvariant = __webpack_require__(2); var ReactCurrentOwner = __webpack_require__(17); var ReactDOMComponentTree = __webpack_require__(7); var ReactInstanceMap = __webpack_require__(41); var getHostComponentFromComposite = __webpack_require__(131); var invariant = __webpack_require__(0); var warning = __webpack_require__(1); /** * Returns the DOM node rendered by this element. * * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.finddomnode * * @param {ReactComponent|DOMElement} componentOrElement * @return {?DOMElement} The root node of this element. */ function findDOMNode(componentOrElement) { if (true) { var owner = ReactCurrentOwner.current; if (owner !== null) { true ? warning(owner._warnedAboutRefsInRender, '%s is accessing findDOMNode inside its render(). ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component') : void 0; owner._warnedAboutRefsInRender = true; } } if (componentOrElement == null) { return null; } if (componentOrElement.nodeType === 1) { return componentOrElement; } var inst = ReactInstanceMap.get(componentOrElement); if (inst) { inst = getHostComponentFromComposite(inst); return inst ? ReactDOMComponentTree.getNodeFromInstance(inst) : null; } if (typeof componentOrElement.render === 'function') { true ? true ? invariant(false, 'findDOMNode was called on an unmounted component.') : _prodInvariant('44') : void 0; } else { true ? true ? invariant(false, 'Element appears to be neither ReactComponent nor DOMNode (keys: %s)', Object.keys(componentOrElement)) : _prodInvariant('45', Object.keys(componentOrElement)) : void 0; } } module.exports = findDOMNode; /***/ }), /* 287 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(process) {/** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ var KeyEscapeUtils = __webpack_require__(69); var traverseAllChildren = __webpack_require__(136); var warning = __webpack_require__(1); var ReactComponentTreeHook; if (typeof process !== 'undefined' && process.env && "development" === 'test') { // Temporary hack. // Inline requires don't work well with Jest: // https://github.com/facebook/react/issues/7240 // Remove the inline requires when we don't need them anymore: // https://github.com/facebook/react/pull/7178 ReactComponentTreeHook = __webpack_require__(13); } /** * @param {function} traverseContext Context passed through traversal. * @param {?ReactComponent} child React child component. * @param {!string} name String name of key path to child. * @param {number=} selfDebugID Optional debugID of the current internal instance. */ function flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID) { // We found a component instance. if (traverseContext && typeof traverseContext === 'object') { var result = traverseContext; var keyUnique = result[name] === undefined; if (true) { if (!ReactComponentTreeHook) { ReactComponentTreeHook = __webpack_require__(13); } if (!keyUnique) { true ? warning(false, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0; } } if (keyUnique && child != null) { result[name] = child; } } } /** * Flattens children that are typically specified as `props.children`. Any null * children will not be included in the resulting object. * @return {!object} flattened children keyed by name. */ function flattenChildren(children, selfDebugID) { if (children == null) { return children; } var result = {}; if (true) { traverseAllChildren(children, function (traverseContext, child, name) { return flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID); }, result); } else { traverseAllChildren(children, flattenSingleChildIntoContext, result); } return result; } module.exports = flattenChildren; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(66))) /***/ }), /* 288 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var getEventCharCode = __webpack_require__(75); /** * Normalization of deprecated HTML5 `key` values * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names */ var normalizeKey = { 'Esc': 'Escape', 'Spacebar': ' ', 'Left': 'ArrowLeft', 'Up': 'ArrowUp', 'Right': 'ArrowRight', 'Down': 'ArrowDown', 'Del': 'Delete', 'Win': 'OS', 'Menu': 'ContextMenu', 'Apps': 'ContextMenu', 'Scroll': 'ScrollLock', 'MozPrintableKey': 'Unidentified' }; /** * Translation from legacy `keyCode` to HTML5 `key` * Only special keys supported, all others depend on keyboard layout or browser * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names */ var translateToKey = { 8: 'Backspace', 9: 'Tab', 12: 'Clear', 13: 'Enter', 16: 'Shift', 17: 'Control', 18: 'Alt', 19: 'Pause', 20: 'CapsLock', 27: 'Escape', 32: ' ', 33: 'PageUp', 34: 'PageDown', 35: 'End', 36: 'Home', 37: 'ArrowLeft', 38: 'ArrowUp', 39: 'ArrowRight', 40: 'ArrowDown', 45: 'Insert', 46: 'Delete', 112: 'F1', 113: 'F2', 114: 'F3', 115: 'F4', 116: 'F5', 117: 'F6', 118: 'F7', 119: 'F8', 120: 'F9', 121: 'F10', 122: 'F11', 123: 'F12', 144: 'NumLock', 145: 'ScrollLock', 224: 'Meta' }; /** * @param {object} nativeEvent Native browser event. * @return {string} Normalized `key` property. */ function getEventKey(nativeEvent) { if (nativeEvent.key) { // Normalize inconsistent values reported by browsers due to // implementations of a working draft specification. // FireFox implements `key` but returns `MozPrintableKey` for all // printable characters (normalized to `Unidentified`), ignore it. var key = normalizeKey[nativeEvent.key] || nativeEvent.key; if (key !== 'Unidentified') { return key; } } // Browser does not implement `key`, polyfill as much of it as we can. if (nativeEvent.type === 'keypress') { var charCode = getEventCharCode(nativeEvent); // The enter-key is technically both printable and non-printable and can // thus be captured by `keypress`, no other non-printable key should. return charCode === 13 ? 'Enter' : String.fromCharCode(charCode); } if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') { // While user keyboard layout determines the actual meaning of each // `keyCode` value, almost all function keys have a universal value. return translateToKey[nativeEvent.keyCode] || 'Unidentified'; } return ''; } module.exports = getEventKey; /***/ }), /* 289 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ /* global Symbol */ var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. /** * Returns the iterator method function contained on the iterable object. * * Be sure to invoke the function with the iterable as context: * * var iteratorFn = getIteratorFn(myIterable); * if (iteratorFn) { * var iterator = iteratorFn.call(myIterable); * ... * } * * @param {?object} maybeIterable * @return {?function} */ function getIteratorFn(maybeIterable) { var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); if (typeof iteratorFn === 'function') { return iteratorFn; } } module.exports = getIteratorFn; /***/ }), /* 290 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ /** * Given any node return the first leaf node without children. * * @param {DOMElement|DOMTextNode} node * @return {DOMElement|DOMTextNode} */ function getLeafNode(node) { while (node && node.firstChild) { node = node.firstChild; } return node; } /** * Get the next sibling within a container. This will walk up the * DOM if a node's siblings have been exhausted. * * @param {DOMElement|DOMTextNode} node * @return {?DOMElement|DOMTextNode} */ function getSiblingNode(node) { while (node) { if (node.nextSibling) { return node.nextSibling; } node = node.parentNode; } } /** * Get object describing the nodes which contain characters at offset. * * @param {DOMElement|DOMTextNode} root * @param {number} offset * @return {?object} */ function getNodeForCharacterOffset(root, offset) { var node = getLeafNode(root); var nodeStart = 0; var nodeEnd = 0; while (node) { if (node.nodeType === 3) { nodeEnd = nodeStart + node.textContent.length; if (nodeStart <= offset && nodeEnd >= offset) { return { node: node, offset: offset - nodeStart }; } nodeStart = nodeEnd; } node = getLeafNode(getSiblingNode(node)); } } module.exports = getNodeForCharacterOffset; /***/ }), /* 291 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var ExecutionEnvironment = __webpack_require__(4); /** * Generate a mapping of standard vendor prefixes using the defined style property and event name. * * @param {string} styleProp * @param {string} eventName * @returns {object} */ function makePrefixMap(styleProp, eventName) { var prefixes = {}; prefixes[styleProp.toLowerCase()] = eventName.toLowerCase(); prefixes['Webkit' + styleProp] = 'webkit' + eventName; prefixes['Moz' + styleProp] = 'moz' + eventName; prefixes['ms' + styleProp] = 'MS' + eventName; prefixes['O' + styleProp] = 'o' + eventName.toLowerCase(); return prefixes; } /** * A list of event names to a configurable list of vendor prefixes. */ var vendorPrefixes = { animationend: makePrefixMap('Animation', 'AnimationEnd'), animationiteration: makePrefixMap('Animation', 'AnimationIteration'), animationstart: makePrefixMap('Animation', 'AnimationStart'), transitionend: makePrefixMap('Transition', 'TransitionEnd') }; /** * Event names that have already been detected and prefixed (if applicable). */ var prefixedEventNames = {}; /** * Element to check for prefixes on. */ var style = {}; /** * Bootstrap if a DOM exists. */ if (ExecutionEnvironment.canUseDOM) { style = document.createElement('div').style; // On some platforms, in particular some releases of Android 4.x, // the un-prefixed "animation" and "transition" properties are defined on the // style object but the events that fire will still be prefixed, so we need // to check if the un-prefixed events are usable, and if not remove them from the map. if (!('AnimationEvent' in window)) { delete vendorPrefixes.animationend.animation; delete vendorPrefixes.animationiteration.animation; delete vendorPrefixes.animationstart.animation; } // Same as above if (!('TransitionEvent' in window)) { delete vendorPrefixes.transitionend.transition; } } /** * Attempts to determine the correct vendor prefixed event name. * * @param {string} eventName * @returns {string} */ function getVendorPrefixedEventName(eventName) { if (prefixedEventNames[eventName]) { return prefixedEventNames[eventName]; } else if (!vendorPrefixes[eventName]) { return eventName; } var prefixMap = vendorPrefixes[eventName]; for (var styleProp in prefixMap) { if (prefixMap.hasOwnProperty(styleProp) && styleProp in style) { return prefixedEventNames[eventName] = prefixMap[styleProp]; } } return ''; } module.exports = getVendorPrefixedEventName; /***/ }), /* 292 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var escapeTextContentForBrowser = __webpack_require__(56); /** * Escapes attribute value to prevent scripting attacks. * * @param {*} value Value to escape. * @return {string} An escaped string. */ function quoteAttributeValueForBrowser(value) { return '"' + escapeTextContentForBrowser(value) + '"'; } module.exports = quoteAttributeValueForBrowser; /***/ }), /* 293 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var ReactMount = __webpack_require__(124); module.exports = ReactMount.renderSubtreeIntoContainer; /***/ }), /* 294 */ /***/ (function(module, exports, __webpack_require__) { 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;};var _animated=__webpack_require__(182);var _animated2=_interopRequireDefault(_animated); var _Image=__webpack_require__(141);var _Image2=_interopRequireDefault(_Image); var _ScrollView=__webpack_require__(58);var _ScrollView2=_interopRequireDefault(_ScrollView); var _StyleSheet=__webpack_require__(8);var _StyleSheet2=_interopRequireDefault(_StyleSheet); var _Text=__webpack_require__(85);var _Text2=_interopRequireDefault(_Text); var _View=__webpack_require__(12);var _View2=_interopRequireDefault(_View);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} _animated2.default.inject.FlattenStyle(_StyleSheet2.default.flatten); module.exports=_extends({},_animated2.default,{ Image:_animated2.default.createAnimatedComponent(_Image2.default), ScrollView:_animated2.default.createAnimatedComponent(_ScrollView2.default), Text:_animated2.default.createAnimatedComponent(_Text2.default), View:_animated2.default.createAnimatedComponent(_View2.default)}); /***/ }), /* 295 */ /***/ (function(module, exports, __webpack_require__) { 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;};var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _StyleSheet=__webpack_require__(8);var _StyleSheet2=_interopRequireDefault(_StyleSheet); var _View=__webpack_require__(12);var _View2=_interopRequireDefault(_View); var _propTypes=__webpack_require__(3); var _react=__webpack_require__(5);var _react2=_interopRequireDefault(_react);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}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;}var ReactNativeApp=function(_Component){_inherits(ReactNativeApp,_Component);function ReactNativeApp(){_classCallCheck(this,ReactNativeApp);return _possibleConstructorReturn(this,(ReactNativeApp.__proto__||Object.getPrototypeOf(ReactNativeApp)).apply(this,arguments));}_createClass(ReactNativeApp,[{key:'render',value:function render() {var _props= this.props,initialProps=_props.initialProps,RootComponent=_props.rootComponent,rootTag=_props.rootTag; return( _react2.default.createElement(_View2.default,{style:styles.appContainer}, _react2.default.createElement(RootComponent,_extends({},initialProps,{rootTag:rootTag})))); }}]);return ReactNativeApp;}(_react.Component); true?ReactNativeApp.propTypes={initialProps:_propTypes.object,rootComponent:_propTypes.any.isRequired,rootTag:_propTypes.any}:void 0; var styles=_StyleSheet2.default.create({ appContainer:{ position:'absolute', left:0, top:0, right:0, bottom:0}}); module.exports=ReactNativeApp; /***/ }), /* 296 */ /***/ (function(module, exports, __webpack_require__) { 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;};var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}(); var _react=__webpack_require__(5); var _invariant=__webpack_require__(0);var _invariant2=_interopRequireDefault(_invariant); var _reactDom=__webpack_require__(51); var _renderApplication=__webpack_require__(297);var _renderApplication2=_interopRequireDefault(_renderApplication);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}} var emptyObject={}; var runnables={};var AppRegistry=function(){function AppRegistry(){_classCallCheck(this,AppRegistry);}_createClass(AppRegistry,null,[{key:'getAppKeys',value:function getAppKeys() { return Object.keys(runnables); }},{key:'getApplication',value:function getApplication( appKey,appParameters){ (0,_invariant2.default)( runnables[appKey]&&runnables[appKey].getApplication, 'Application '+appKey+' has not been registered. '+ 'This is either due to an import error during initialization or failure to call AppRegistry.registerComponent.'); return runnables[appKey].getApplication(appParameters); }},{key:'registerComponent',value:function registerComponent( appKey,getComponentFunc){ runnables[appKey]={ getApplication:function getApplication(){var _ref=arguments.length>0&&arguments[0]!==undefined?arguments[0]:emptyObject,initialProps=_ref.initialProps;return( (0,_renderApplication.getApplication)(getComponentFunc(),initialProps));}, run:function run(_ref2){var _ref2$initialProps=_ref2.initialProps,initialProps=_ref2$initialProps===undefined?emptyObject:_ref2$initialProps,rootTag=_ref2.rootTag;return( (0,_renderApplication2.default)(getComponentFunc(),initialProps,rootTag));}}; return appKey; }},{key:'registerConfig',value:function registerConfig( config){ config.forEach(function(_ref3){var appKey=_ref3.appKey,component=_ref3.component,run=_ref3.run; if(run){ AppRegistry.registerRunnable(appKey,run); }else{ (0,_invariant2.default)(component,'No component provider passed in'); AppRegistry.registerComponent(appKey,component); } }); }},{key:'registerRunnable',value:function registerRunnable( appKey,run){ runnables[appKey]={run:run}; return appKey; }},{key:'runApplication',value:function runApplication( appKey,appParameters){ var isDevelopment="development"!=='production'; var params=_extends({},appParameters); params.rootTag='#'+params.rootTag.id; console.log( 'Running application "'+appKey+'" with appParams: '+JSON.stringify(params)+'. '+('development-level warnings are '+( isDevelopment?'ON':'OFF')+', ')+('performance optimizations are '+( isDevelopment?'OFF':'ON'))); (0,_invariant2.default)( runnables[appKey]&&runnables[appKey].run, 'Application "'+appKey+'" has not been registered. '+ 'This is either due to an import error during initialization or failure to call AppRegistry.registerComponent.'); runnables[appKey].run(appParameters); }},{key:'unmountApplicationComponentAtRootTag',value:function unmountApplicationComponentAtRootTag( rootTag){ (0,_reactDom.unmountComponentAtNode)(rootTag); }}]);return AppRegistry;}(); module.exports=AppRegistry; /***/ }), /* 297 */ /***/ (function(module, exports, __webpack_require__) { Object.defineProperty(exports,"__esModule",{value:true});exports.default= renderApplication;exports. getApplication=getApplication;var _invariant=__webpack_require__(0);var _invariant2=_interopRequireDefault(_invariant);var _reactDom=__webpack_require__(51);var _ReactNativeApp=__webpack_require__(295);var _ReactNativeApp2=_interopRequireDefault(_ReactNativeApp);var _StyleSheet=__webpack_require__(8);var _StyleSheet2=_interopRequireDefault(_StyleSheet);var _react=__webpack_require__(5);var _react2=_interopRequireDefault(_react);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function renderApplication(RootComponent,initialProps,rootTag){(0,_invariant2.default)(rootTag,'Expect to have a valid rootTag, instead got ',rootTag);var component=_react2.default.createElement(_ReactNativeApp2.default,{initialProps:initialProps,rootComponent:RootComponent,rootTag:rootTag});(0,_reactDom.render)(component,rootTag);}function getApplication(RootComponent,initialProps){ var element=_react2.default.createElement(_ReactNativeApp2.default,{initialProps:initialProps,rootComponent:RootComponent}); var stylesheet=_StyleSheet2.default.renderToString(); return{element:element,stylesheet:stylesheet}; } /***/ }), /* 298 */ /***/ (function(module, exports, __webpack_require__) { var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _ExecutionEnvironment=__webpack_require__(4);var _ExecutionEnvironment2=_interopRequireDefault(_ExecutionEnvironment); var _arrayFindIndex=__webpack_require__(104);var _arrayFindIndex2=_interopRequireDefault(_arrayFindIndex); var _invariant=__webpack_require__(0);var _invariant2=_interopRequireDefault(_invariant);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}} var EVENT_TYPES=['change']; var VISIBILITY_CHANGE_EVENT='visibilitychange'; var AppStates={ BACKGROUND:'background', ACTIVE:'active'}; var listeners=[];var AppState=function(){function AppState(){_classCallCheck(this,AppState);}_createClass(AppState,null,[{key:'addEventListener',value:function addEventListener( type,handler){ if(AppState.isAvailable){ (0,_invariant2.default)( EVENT_TYPES.indexOf(type)!==-1, 'Trying to subscribe to unknown event: "%s"', type); var callback=function callback(){return handler(AppState.currentState);}; listeners.push([handler,callback]); document.addEventListener(VISIBILITY_CHANGE_EVENT,callback,false); } }},{key:'removeEventListener',value:function removeEventListener( type,handler){ if(AppState.isAvailable){ (0,_invariant2.default)( EVENT_TYPES.indexOf(type)!==-1, 'Trying to remove listener for unknown event: "%s"', type); var listenerIndex=(0,_arrayFindIndex2.default)(listeners,function(pair){return pair[0]===handler;}); (0,_invariant2.default)( listenerIndex!==-1, 'Trying to remove AppState listener for unregistered handler'); var callback=listeners[listenerIndex][1]; document.removeEventListener(VISIBILITY_CHANGE_EVENT,callback,false); listeners.splice(listenerIndex,1); } }},{key:'currentState',get:function get(){if(!AppState.isAvailable){return AppState.ACTIVE;}switch(document.visibilityState){case'hidden':case'prerender':case'unloaded':return AppStates.BACKGROUND;default:return AppStates.ACTIVE;}}}]);return AppState;}();AppState.isAvailable=_ExecutionEnvironment2.default.canUseDOM&&document.visibilityState; module.exports=AppState; /***/ }), /* 299 */ /***/ (function(module, exports, __webpack_require__) { var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}(); var _deepAssign=__webpack_require__(186);var _deepAssign2=_interopRequireDefault(_deepAssign);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}} var mergeLocalStorageItem=function mergeLocalStorageItem(key,value){ var oldValue=window.localStorage.getItem(key); var oldObject=JSON.parse(oldValue); var newObject=JSON.parse(value); var nextValue=JSON.stringify((0,_deepAssign2.default)({},oldObject,newObject)); window.localStorage.setItem(key,nextValue); }; var createPromise=function createPromise(getValue,callback){ return new Promise(function(resolve,reject){ try{ var value=getValue(); if(callback){ callback(null,value); } resolve(value); }catch(err){ if(callback){ callback(err); } reject(err); } }); }; var createPromiseAll=function createPromiseAll(promises,callback,processResult){ return Promise.all(promises).then( function(result){ var value=processResult?processResult(result):null; callback&&callback(null,value); return Promise.resolve(value); }, function(errors){ callback&&callback(errors); return Promise.reject(errors); }); };var AsyncStorage=function(){function AsyncStorage(){_classCallCheck(this,AsyncStorage);}_createClass(AsyncStorage,null,[{key:'clear',value:function clear( callback){ return createPromise(function(){ window.localStorage.clear(); },callback); }},{key:'getAllKeys',value:function getAllKeys( callback){ return createPromise(function(){ var numberOfKeys=window.localStorage.length; var keys=[]; for(var i=0;i<numberOfKeys;i+=1){ var key=window.localStorage.key(i); keys.push(key); } return keys; },callback); }},{key:'getItem',value:function getItem( key,callback){ return createPromise(function(){ return window.localStorage.getItem(key); },callback); }},{key:'multiGet',value:function multiGet( keys,callback){ var promises=keys.map(function(key){return AsyncStorage.getItem(key);}); var processResult=function processResult(result){return result.map(function(value,i){return[keys[i],value];});}; return createPromiseAll(promises,callback,processResult); }},{key:'setItem',value:function setItem( key,value,callback){ return createPromise(function(){ window.localStorage.setItem(key,value); },callback); }},{key:'multiSet',value:function multiSet( keyValuePairs,callback){ var promises=keyValuePairs.map(function(item){return AsyncStorage.setItem(item[0],item[1]);}); return createPromiseAll(promises,callback); }},{key:'mergeItem',value:function mergeItem( key,value,callback){ return createPromise(function(){ mergeLocalStorageItem(key,value); },callback); }},{key:'multiMerge',value:function multiMerge( keyValuePairs,callback){ var promises=keyValuePairs.map(function(item){return AsyncStorage.mergeItem(item[0],item[1]);}); return createPromiseAll(promises,callback); }},{key:'removeItem',value:function removeItem( key,callback){ return createPromise(function(){ return window.localStorage.removeItem(key); },callback); }},{key:'multiRemove',value:function multiRemove( keys,callback){ var promises=keys.map(function(key){return AsyncStorage.removeItem(key);}); return createPromiseAll(promises,callback); }}]);return AsyncStorage;}(); module.exports=AsyncStorage; /***/ }), /* 300 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function emptyFunction(){} var BackAndroid={ exitApp:emptyFunction, addEventListener:function addEventListener(){ return{ remove:emptyFunction}; }, removeEventListener:emptyFunction}; module.exports=BackAndroid; /***/ }), /* 301 */ /***/ (function(module, exports) { var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var Clipboard=function(){function Clipboard(){_classCallCheck(this,Clipboard);}_createClass(Clipboard,null,[{key:'isSupported',value:function isSupported() { return( typeof document.queryCommandSupported==='function'&&document.queryCommandSupported('copy')); }},{key:'getString',value:function getString() { return Promise.resolve(''); }},{key:'setString',value:function setString( text){ var success=false; var node=document.createElement('span'); node.textContent=text; node.style.position='absolute'; node.style.opacity='0'; document.body.appendChild(node); var selection=window.getSelection(); selection.removeAllRanges(); var range=document.createRange(); range.selectNodeContents(node); selection.addRange(range); try{ document.execCommand('copy'); success=true; }catch(e){} selection.removeAllRanges(); document.body.removeChild(node); return success; }}]);return Clipboard;}(); module.exports=Clipboard; /***/ }), /* 302 */ /***/ (function(module, exports, __webpack_require__) { var _invariant=__webpack_require__(0);var _invariant2=_interopRequireDefault(_invariant);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} var InteractionManager={ Events:{ interactionStart:'interactionStart', interactionComplete:'interactionComplete'}, runAfterInteractions:function runAfterInteractions(callback){ (0,_invariant2.default)(typeof callback==='function','Must specify a function to schedule.'); callback(); }, createInteractionHandle:function createInteractionHandle(){ return 1; }, clearInteractionHandle:function clearInteractionHandle(handle){ (0,_invariant2.default)(!!handle,'Must provide a handle to clear.'); }, addListener:function addListener(){}}; module.exports=InteractionManager; /***/ }), /* 303 */ /***/ (function(module, exports) { var Linking={ addEventListener:function addEventListener(){}, removeEventListener:function removeEventListener(){}, canOpenURL:function canOpenURL(){ return Promise.resolve(true); }, getInitialURL:function getInitialURL(){ return Promise.resolve(''); }, openURL:function openURL(url){ try{ iframeOpen(url); return Promise.resolve(); }catch(e){ return Promise.reject(e); } }}; var iframeOpen=function iframeOpen(url){ var noOpener=url.indexOf('mailto:')!==0; var iframe=document.createElement('iframe'); iframe.style.display='none'; document.body.appendChild(iframe); var iframeDoc=iframe.contentDocument||iframe.contentWindow.document; var script=iframeDoc.createElement('script'); script.text='\n window.parent = null; window.top = null; window.frameElement = null;\n var child = window.open("'+ url+'"); '+(noOpener&&'child.opener = null')+';\n '; iframeDoc.body.appendChild(script); document.body.removeChild(iframe); }; module.exports=Linking; /***/ }), /* 304 */ /***/ (function(module, exports, __webpack_require__) { var _slicedToArray=function(){function sliceIterator(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[typeof Symbol==='function'?Symbol.iterator:'@@iterator'](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"])_i["return"]();}finally{if(_d)throw _e;}}return _arr;}return function(arr,i){if(Array.isArray(arr)){return arr;}else if((typeof Symbol==='function'?Symbol.iterator:'@@iterator')in Object(arr)){return sliceIterator(arr,i);}else{throw new TypeError("Invalid attempt to destructure non-iterable instance");}};}(); var _ExecutionEnvironment=__webpack_require__(4);var _ExecutionEnvironment2=_interopRequireDefault(_ExecutionEnvironment); var _arrayFindIndex=__webpack_require__(104);var _arrayFindIndex2=_interopRequireDefault(_arrayFindIndex); var _invariant=__webpack_require__(0);var _invariant2=_interopRequireDefault(_invariant);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} var connection= _ExecutionEnvironment2.default.canUseDOM&&( window.navigator.connection|| window.navigator.mozConnection|| window.navigator.webkitConnection); var eventTypes=['change']; var connectionListeners=[]; var NetInfo={ addEventListener:function addEventListener(type,handler){ (0,_invariant2.default)(eventTypes.indexOf(type)!==-1,'Trying to subscribe to unknown event: "%s"',type); if(!connection){ console.error( 'Network Connection API is not supported. Not listening for connection type changes.'); return{ remove:function remove(){}}; } connection.addEventListener(type,handler); return{ remove:function remove(){return NetInfo.removeEventListener(type,handler);}}; }, removeEventListener:function removeEventListener(type,handler){ (0,_invariant2.default)(eventTypes.indexOf(type)!==-1,'Trying to subscribe to unknown event: "%s"',type); if(!connection){ return; } connection.removeEventListener(type,handler); }, fetch:function fetch(){ return new Promise(function(resolve,reject){ try{ resolve(connection.type); }catch(err){ resolve('unknown'); } }); }, isConnected:{ addEventListener:function addEventListener(type,handler){ (0,_invariant2.default)( eventTypes.indexOf(type)!==-1, 'Trying to subscribe to unknown event: "%s"', type); var onlineCallback=function onlineCallback(){return handler(true);}; var offlineCallback=function offlineCallback(){return handler(false);}; connectionListeners.push([handler,onlineCallback,offlineCallback]); window.addEventListener('online',onlineCallback,false); window.addEventListener('offline',offlineCallback,false); return{ remove:function remove(){return NetInfo.isConnected.removeEventListener(type,handler);}}; }, removeEventListener:function removeEventListener(type,handler){ (0,_invariant2.default)( eventTypes.indexOf(type)!==-1, 'Trying to subscribe to unknown event: "%s"', type); var listenerIndex=(0,_arrayFindIndex2.default)(connectionListeners,function(pair){return pair[0]===handler;}); (0,_invariant2.default)( listenerIndex!==-1, 'Trying to remove NetInfo connection listener for unregistered handler');var _connectionListeners$=_slicedToArray( connectionListeners[listenerIndex],3),onlineCallback=_connectionListeners$[1],offlineCallback=_connectionListeners$[2]; window.removeEventListener('online',onlineCallback,false); window.removeEventListener('offline',offlineCallback,false); connectionListeners.splice(listenerIndex,1); }, fetch:function fetch(){ return new Promise(function(resolve,reject){ try{ resolve(window.navigator.onLine); }catch(err){ resolve(true); } }); }}}; module.exports=NetInfo; /***/ }), /* 305 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var TouchHistoryMath=__webpack_require__(349); var currentCentroidXOfTouchesChangedAfter=TouchHistoryMath.currentCentroidXOfTouchesChangedAfter; var currentCentroidYOfTouchesChangedAfter=TouchHistoryMath.currentCentroidYOfTouchesChangedAfter; var previousCentroidXOfTouchesChangedAfter= TouchHistoryMath.previousCentroidXOfTouchesChangedAfter; var previousCentroidYOfTouchesChangedAfter= TouchHistoryMath.previousCentroidYOfTouchesChangedAfter; var currentCentroidX=TouchHistoryMath.currentCentroidX; var currentCentroidY=TouchHistoryMath.currentCentroidY; var PanResponder={ _initializeGestureState:function _initializeGestureState(gestureState){ gestureState.moveX=0; gestureState.moveY=0; gestureState.x0=0; gestureState.y0=0; gestureState.dx=0; gestureState.dy=0; gestureState.vx=0; gestureState.vy=0; gestureState.numberActiveTouches=0; gestureState._accountsForMovesUpTo=0; }, _updateGestureStateOnMove:function _updateGestureStateOnMove(gestureState,touchHistory){ gestureState.numberActiveTouches=touchHistory.numberActiveTouches; gestureState.moveX=currentCentroidXOfTouchesChangedAfter( touchHistory, gestureState._accountsForMovesUpTo); gestureState.moveY=currentCentroidYOfTouchesChangedAfter( touchHistory, gestureState._accountsForMovesUpTo); var movedAfter=gestureState._accountsForMovesUpTo; var prevX=previousCentroidXOfTouchesChangedAfter(touchHistory,movedAfter); var x=currentCentroidXOfTouchesChangedAfter(touchHistory,movedAfter); var prevY=previousCentroidYOfTouchesChangedAfter(touchHistory,movedAfter); var y=currentCentroidYOfTouchesChangedAfter(touchHistory,movedAfter); var nextDX=gestureState.dx+(x-prevX); var nextDY=gestureState.dy+(y-prevY); var dt=touchHistory.mostRecentTimeStamp-gestureState._accountsForMovesUpTo; gestureState.vx=(nextDX-gestureState.dx)/dt; gestureState.vy=(nextDY-gestureState.dy)/dt; gestureState.dx=nextDX; gestureState.dy=nextDY; gestureState._accountsForMovesUpTo=touchHistory.mostRecentTimeStamp; }, create:function create(config){ var gestureState={ stateID:Math.random()}; PanResponder._initializeGestureState(gestureState); var panHandlers={ onStartShouldSetResponder:function onStartShouldSetResponder(e){ return config.onStartShouldSetPanResponder===undefined? false: config.onStartShouldSetPanResponder(e,gestureState); }, onMoveShouldSetResponder:function onMoveShouldSetResponder(e){ return config.onMoveShouldSetPanResponder===undefined? false: config.onMoveShouldSetPanResponder(e,gestureState); }, onStartShouldSetResponderCapture:function onStartShouldSetResponderCapture(e){ if(e.nativeEvent.touches){ if(e.nativeEvent.touches.length===1){ PanResponder._initializeGestureState(gestureState); } }else if( e.nativeEvent.originalEvent&&e.nativeEvent.originalEvent.type==='mousedown') { PanResponder._initializeGestureState(gestureState); } gestureState.numberActiveTouches=e.touchHistory.numberActiveTouches; return config.onStartShouldSetPanResponderCapture!==undefined? config.onStartShouldSetPanResponderCapture(e,gestureState): false; }, onMoveShouldSetResponderCapture:function onMoveShouldSetResponderCapture(e){ var touchHistory=e.touchHistory; if(gestureState._accountsForMovesUpTo===touchHistory.mostRecentTimeStamp){ return false; } PanResponder._updateGestureStateOnMove(gestureState,touchHistory); return config.onMoveShouldSetPanResponderCapture? config.onMoveShouldSetPanResponderCapture(e,gestureState): false; }, onResponderGrant:function onResponderGrant(e){ gestureState.x0=currentCentroidX(e.touchHistory); gestureState.y0=currentCentroidY(e.touchHistory); gestureState.dx=0; gestureState.dy=0; config.onPanResponderGrant&&config.onPanResponderGrant(e,gestureState); return config.onShouldBlockNativeResponder===undefined? true: config.onShouldBlockNativeResponder(); }, onResponderReject:function onResponderReject(e){ config.onPanResponderReject&&config.onPanResponderReject(e,gestureState); }, onResponderRelease:function onResponderRelease(e){ config.onPanResponderRelease&&config.onPanResponderRelease(e,gestureState); PanResponder._initializeGestureState(gestureState); }, onResponderStart:function onResponderStart(e){ var touchHistory=e.touchHistory; gestureState.numberActiveTouches=touchHistory.numberActiveTouches; config.onPanResponderStart&&config.onPanResponderStart(e,gestureState); }, onResponderMove:function onResponderMove(e){ var touchHistory=e.touchHistory; if(gestureState._accountsForMovesUpTo===touchHistory.mostRecentTimeStamp){ return; } PanResponder._updateGestureStateOnMove(gestureState,touchHistory); config.onPanResponderMove&&config.onPanResponderMove(e,gestureState); }, onResponderEnd:function onResponderEnd(e){ var touchHistory=e.touchHistory; gestureState.numberActiveTouches=touchHistory.numberActiveTouches; config.onPanResponderEnd&&config.onPanResponderEnd(e,gestureState); }, onResponderTerminate:function onResponderTerminate(e){ config.onPanResponderTerminate&&config.onPanResponderTerminate(e,gestureState); PanResponder._initializeGestureState(gestureState); }, onResponderTerminationRequest:function onResponderTerminationRequest(e){ return config.onPanResponderTerminationRequest===undefined? true: config.onPanResponderTerminationRequest(e,gestureState); }}; return{panHandlers:panHandlers}; }}; module.exports=PanResponder; /***/ }), /* 306 */ /***/ (function(module, exports, __webpack_require__) { var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}(); var _Dimensions=__webpack_require__(81);var _Dimensions2=_interopRequireDefault(_Dimensions);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var PixelRatio=function(){function PixelRatio(){_classCallCheck(this,PixelRatio);}_createClass(PixelRatio,null,[{key:'get',value:function get() { return _Dimensions2.default.get('window').scale; }},{key:'getFontScale',value:function getFontScale() { return _Dimensions2.default.get('window').fontScale||PixelRatio.get(); }},{key:'getPixelSizeForLayoutSize',value:function getPixelSizeForLayoutSize( layoutSize){ return Math.round(layoutSize*PixelRatio.get()); }},{key:'roundToNearestPixel',value:function roundToNearestPixel( layoutSize){ var ratio=PixelRatio.get(); return Math.round(layoutSize*ratio)/ratio; }}]);return PixelRatio;}(); module.exports=PixelRatio; /***/ }), /* 307 */ /***/ (function(module, exports, __webpack_require__) { var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _ExecutionEnvironment=__webpack_require__(4); var _generateCss2=__webpack_require__(312);var _generateCss3=_interopRequireDefault(_generateCss2); var _hash=__webpack_require__(313);var _hash2=_interopRequireDefault(_hash); var _requestAnimationFrame=__webpack_require__(64);var _requestAnimationFrame2=_interopRequireDefault(_requestAnimationFrame); var _staticCss=__webpack_require__(319);var _staticCss2=_interopRequireDefault(_staticCss);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;} var emptyObject={}; var STYLE_ELEMENT_ID='react-native-stylesheet'; var createClassName=function createClassName(prop,value){ var hashed=(0,_hash2.default)(prop+value); return true?'rn-'+prop+'-'+hashed:'rn-'+hashed; }; var createCssRule=function createCssRule(className,prop,value){ var css=(0,_generateCss3.default)(_defineProperty({},prop,value)); var selector='.'+className; return selector+'{'+css+'}'; }; var pointerEvents={ auto:createClassName('pointerEvents','auto'), boxNone:createClassName('pointerEvents','box-none'), boxOnly:createClassName('pointerEvents','box-only'), none:createClassName('pointerEvents','none')}; var pointerEventsCss= '.'+pointerEvents.auto+'{pointer-events:auto;}\n'+('.'+ pointerEvents.boxNone+'{pointer-events:none;}\n')+('.'+ pointerEvents.boxNone+' *{pointer-events:auto;}\n')+('.'+ pointerEvents.boxOnly+'{pointer-events:auto;}\n')+('.'+ pointerEvents.boxOnly+' *{pointer-events:none;}\n')+('.'+ pointerEvents.none+'{pointer-events:none;}');var StyleManager=function(){ function StyleManager(){var _byClassName;_classCallCheck(this,StyleManager); var pointerEventsPropName='pointerEvents'; this.cache={ byClassName:(_byClassName={},_defineProperty(_byClassName, pointerEvents.auto,{prop:pointerEventsPropName,value:'auto'}),_defineProperty(_byClassName, pointerEvents.boxNone,{ prop:pointerEventsPropName, value:'box-none'}),_defineProperty(_byClassName, pointerEvents.boxOnly,{ prop:pointerEventsPropName, value:'box-only'}),_defineProperty(_byClassName, pointerEvents.none,{prop:pointerEventsPropName,value:'none'}),_byClassName), byProp:{ pointerEvents:{ auto:pointerEvents.auto, 'box-none':pointerEvents.boxNone, 'box-only':pointerEvents.boxOnly, none:pointerEvents.none}}}; if(_ExecutionEnvironment.canUseDOM){ var prerenderedStyleSheet=document.getElementById(STYLE_ELEMENT_ID); if(prerenderedStyleSheet){ this.mainSheet=prerenderedStyleSheet; }else{ document.head.insertAdjacentHTML('afterbegin',this.getStyleSheetHtml()); this.mainSheet=document.getElementById(STYLE_ELEMENT_ID); } } }_createClass(StyleManager,[{key:'getClassName',value:function getClassName( prop,value){ var cache=this.cache.byProp; return cache[prop]&&cache[prop].hasOwnProperty(value)&&cache[prop][value]; }},{key:'getDeclaration',value:function getDeclaration( className){ var cache=this.cache.byClassName; return cache[className]||emptyObject; }},{key:'getStyleSheetHtml',value:function getStyleSheetHtml() {var _this=this; var cache=this.cache.byProp; var mainSheetTextContext=Object.keys(cache). reduce(function(rules,prop){ if(prop!=='pointerEvents'){ Object.keys(cache[prop]).forEach(function(value){ var className=_this.getClassName(prop,value); rules.push(createCssRule(className,prop,value)); }); } return rules; },[]). join('\n'); var staticSheet='<style id="react-native-stylesheet-static">\n'+_staticCss2.default+'\n'+pointerEventsCss+'\n</style>'; var mainSheet='<style id="'+STYLE_ELEMENT_ID+'">\n'+mainSheetTextContext+'\n</style>'; return staticSheet+'\n'+mainSheet; }},{key:'setDeclaration',value:function setDeclaration( prop,value){var _this2=this; var className=this.getClassName(prop,value); if(!className){ className=createClassName(prop,value); this._addToCache(className,prop,value); if(_ExecutionEnvironment.canUseDOM){ (0,_requestAnimationFrame2.default)(function(){ var sheet=_this2.mainSheet.sheet; if(_this2.mainSheet.textContent.indexOf(className)===-1){ var rule=createCssRule(className,prop,value); sheet.insertRule(rule,sheet.cssRules.length); } }); } } return className; }},{key:'_addToCache',value:function _addToCache( className,prop,value){ var cache=this.cache; if(!cache.byProp[prop]){ cache.byProp[prop]={}; } cache.byProp[prop][value]=className; cache.byClassName[className]={prop:prop,value:value}; }}]);return StyleManager;}(); module.exports=StyleManager; /***/ }), /* 308 */ /***/ (function(module, exports, __webpack_require__) { 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;};var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}(); var _createReactDOMStyle=__webpack_require__(310);var _createReactDOMStyle2=_interopRequireDefault(_createReactDOMStyle); var _flattenArray=__webpack_require__(343);var _flattenArray2=_interopRequireDefault(_flattenArray); var _flattenStyle=__webpack_require__(138);var _flattenStyle2=_interopRequireDefault(_flattenStyle); var _I18nManager=__webpack_require__(82);var _I18nManager2=_interopRequireDefault(_I18nManager); var _mapKeyValue=__webpack_require__(147);var _mapKeyValue2=_interopRequireDefault(_mapKeyValue); var _prefixInlineStyles=__webpack_require__(315);var _prefixInlineStyles2=_interopRequireDefault(_prefixInlineStyles); var _ReactNativePropRegistry=__webpack_require__(145);var _ReactNativePropRegistry2=_interopRequireDefault(_ReactNativePropRegistry); var _StyleManager=__webpack_require__(307);var _StyleManager2=_interopRequireDefault(_StyleManager);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}} var vendorPrefixPattern=/^(webkit|moz|ms)/; var createCacheKey=function createCacheKey(id){ var prefix=_I18nManager2.default.isRTL?'rtl':'ltr'; return prefix+'-'+id; }; var classListToString=function classListToString(list){return list.join(' ').trim();};var StyleRegistry=function(){ function StyleRegistry(){_classCallCheck(this,StyleRegistry); this.cache={}; this.styleManager=new _StyleManager2.default(); }_createClass(StyleRegistry,[{key:'getStyleSheetHtml',value:function getStyleSheetHtml() { return this.styleManager.getStyleSheetHtml(); }},{key:'register',value:function register( flatStyle){var _this=this; var id=_ReactNativePropRegistry2.default.register(flatStyle); var key=createCacheKey(id); var style=(0,_createReactDOMStyle2.default)(flatStyle); var classList=(0,_mapKeyValue2.default)(style,function(prop,value){ if(value!=null){ return _this.styleManager.setDeclaration(prop,value); } }); var className=classList.join(' ').trim(); this.cache[key]={classList:classList,className:className}; return id; }},{key:'resolve',value:function resolve( reactNativeStyle){ if(!reactNativeStyle){ return undefined; } if(typeof reactNativeStyle==='number'){ var _key=createCacheKey(reactNativeStyle); return this._resolveStyleIfNeeded(_key,reactNativeStyle); } if(!Array.isArray(reactNativeStyle)){ return this._resolveStyle(reactNativeStyle); } var flatArray=(0,_flattenArray2.default)(reactNativeStyle); var isArrayOfNumbers=true; for(var i=0;i<flatArray.length;i++){ if(typeof flatArray[i]!=='number'){ isArrayOfNumbers=false; break; } } var key=isArrayOfNumbers?createCacheKey(flatArray.join('-')):null; return this._resolveStyleIfNeeded(key,flatArray); }},{key:'resolveStateful',value:function resolveStateful( rnStyleNext,_ref){var _this2=this;var domClassList=_ref.classList,domStyle=_ref.style;var _domClassList$reduce= domClassList.reduce( function(styleProps,className){var _styleManager$getDecl= _this2.styleManager.getDeclaration(className),prop=_styleManager$getDecl.prop,value=_styleManager$getDecl.value; if(prop){ styleProps.style[prop]=value; }else{ styleProps.classList.push(className); } return styleProps; }, {classList:[],style:{}}),rnClassList=_domClassList$reduce.classList,rnStyle=_domClassList$reduce.style; var rdomStyle=Object.keys(domStyle).reduce(function(acc,styleName){ var value=domStyle[styleName]; if(value!==''){ var reactStyleName=vendorPrefixPattern.test(styleName)? styleName.charAt(0).toUpperCase()+styleName.slice(1): styleName; acc[reactStyleName]=value; } return acc; },{});var _resolve= this.resolve([ rnStyle, rnStyleNext]),rdomClassListNext=_resolve.classList,rdomStyleNext=_resolve.style; var style=_extends({},rdomStyle); rdomClassListNext.forEach(function(className){var _styleManager$getDecl2= _this2.styleManager.getDeclaration(className),prop=_styleManager$getDecl2.prop; if(style[prop]){ style[prop]=''; } }); _extends(style,rdomStyleNext); var className=classListToString(rdomClassListNext.concat(rnClassList)); return{className:className,style:style}; }},{key:'_resolveStyle',value:function _resolveStyle( reactNativeStyle){var _this3=this; var domStyle=(0,_createReactDOMStyle2.default)((0,_flattenStyle2.default)(reactNativeStyle)); var props=Object.keys(domStyle).reduce( function(props,styleProp){ var value=domStyle[styleProp]; if(value!=null){ var className=_this3.styleManager.getClassName(styleProp,value); if(className){ props.classList.push(className); }else{ if(!props.style){ props.style={}; } props.style[styleProp]=value; } } return props; }, {classList:[]}); props.className=classListToString(props.classList); if(props.style){ props.style=(0,_prefixInlineStyles2.default)(props.style); } return props; }},{key:'_resolveStyleIfNeeded',value:function _resolveStyleIfNeeded( key,style){ if(key){ if(!this.cache[key]){ this.cache[key]=this._resolveStyle(style); } return this.cache[key]; } return this._resolveStyle(style); }}]);return StyleRegistry;}(); module.exports=StyleRegistry; /***/ }), /* 309 */ /***/ (function(module, exports, __webpack_require__) { var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}(); var _ImageStylePropTypes=__webpack_require__(140);var _ImageStylePropTypes2=_interopRequireDefault(_ImageStylePropTypes); var _ReactPropTypeLocationNames=__webpack_require__(94);var _ReactPropTypeLocationNames2=_interopRequireDefault(_ReactPropTypeLocationNames); var _ReactPropTypesSecret=__webpack_require__(157);var _ReactPropTypesSecret2=_interopRequireDefault(_ReactPropTypesSecret); var _TextInputStylePropTypes=__webpack_require__(143);var _TextInputStylePropTypes2=_interopRequireDefault(_TextInputStylePropTypes); var _TextStylePropTypes=__webpack_require__(84);var _TextStylePropTypes2=_interopRequireDefault(_TextStylePropTypes); var _ViewStylePropTypes=__webpack_require__(44);var _ViewStylePropTypes2=_interopRequireDefault(_ViewStylePropTypes); var _warning=__webpack_require__(1);var _warning2=_interopRequireDefault(_warning); var _propTypes=__webpack_require__(3);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var StyleSheetValidation=function(){function StyleSheetValidation(){_classCallCheck(this,StyleSheetValidation);}_createClass(StyleSheetValidation,null,[{key:'validateStyleProp',value:function validateStyleProp( prop,style,caller){ if(true){ if(allStylePropTypes[prop]===undefined){ var message1='"'+prop+'" is not a valid style property.'; var message2= '\nValid style props: '+ JSON.stringify(Object.keys(allStylePropTypes).sort(),null,' '); styleError(message1,style,caller,message2); }else{ var error=allStylePropTypes[prop]( style, prop, caller, _ReactPropTypeLocationNames2.default.prop, null,_ReactPropTypesSecret2.default); if(error){ styleError(error.message,style,caller); } } } }},{key:'validateStyle',value:function validateStyle( name,styles){ if(true){ for(var prop in styles[name]){ StyleSheetValidation.validateStyleProp(prop,styles[name],'StyleSheet '+name); } } }},{key:'addValidStylePropTypes',value:function addValidStylePropTypes( stylePropTypes){ for(var key in stylePropTypes){ allStylePropTypes[key]=stylePropTypes[key]; } }}]);return StyleSheetValidation;}(); var styleError=function styleError(message1,style,caller,message2){ (0,_warning2.default)( false, message1+ '\n'+( caller||'<<unknown>>')+ ': '+ JSON.stringify(style,null,' ')+( message2||'')); }; var allStylePropTypes={}; StyleSheetValidation.addValidStylePropTypes(_ImageStylePropTypes2.default); StyleSheetValidation.addValidStylePropTypes(_TextStylePropTypes2.default); StyleSheetValidation.addValidStylePropTypes(_TextInputStylePropTypes2.default); StyleSheetValidation.addValidStylePropTypes(_ViewStylePropTypes2.default); StyleSheetValidation.addValidStylePropTypes({ appearance:_propTypes.string, clear:_propTypes.string, cursor:_propTypes.string, float:(0,_propTypes.oneOf)(['left','none','right']), font:_propTypes.string, listStyle:_propTypes.string, pointerEvents:_propTypes.string}); module.exports=StyleSheetValidation; /***/ }), /* 310 */ /***/ (function(module, exports, __webpack_require__) { var _expandStyle=__webpack_require__(311);var _expandStyle2=_interopRequireDefault(_expandStyle); var _i18nStyle=__webpack_require__(314);var _i18nStyle2=_interopRequireDefault(_i18nStyle);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} var createReactDOMStyle=function createReactDOMStyle(flattenedReactNativeStyle){return( (0,_expandStyle2.default)((0,_i18nStyle2.default)(flattenedReactNativeStyle)));}; module.exports=createReactDOMStyle; /***/ }), /* 311 */ /***/ (function(module, exports, __webpack_require__) { var _normalizeValue=__webpack_require__(43);var _normalizeValue2=_interopRequireDefault(_normalizeValue); var _processColor=__webpack_require__(61);var _processColor2=_interopRequireDefault(_processColor); var _resolveBoxShadow=__webpack_require__(316);var _resolveBoxShadow2=_interopRequireDefault(_resolveBoxShadow); var _resolveTextShadow=__webpack_require__(317);var _resolveTextShadow2=_interopRequireDefault(_resolveTextShadow); var _resolveTransform=__webpack_require__(318);var _resolveTransform2=_interopRequireDefault(_resolveTransform);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} var emptyObject={}; var styleShortFormProperties={ borderColor:['borderTopColor','borderRightColor','borderBottomColor','borderLeftColor'], borderRadius:[ 'borderTopLeftRadius', 'borderTopRightRadius', 'borderBottomRightRadius', 'borderBottomLeftRadius'], borderStyle:['borderTopStyle','borderRightStyle','borderBottomStyle','borderLeftStyle'], borderWidth:['borderTopWidth','borderRightWidth','borderBottomWidth','borderLeftWidth'], margin:['marginTop','marginRight','marginBottom','marginLeft'], marginHorizontal:['marginRight','marginLeft'], marginVertical:['marginTop','marginBottom'], overflow:['overflowX','overflowY'], padding:['paddingTop','paddingRight','paddingBottom','paddingLeft'], paddingHorizontal:['paddingRight','paddingLeft'], paddingVertical:['paddingTop','paddingBottom'], textDecorationLine:['textDecoration'], writingDirection:['direction']}; var colorProps={ backgroundColor:true, borderColor:true, borderTopColor:true, borderRightColor:true, borderBottomColor:true, borderLeftColor:true, color:true}; var alphaSortProps=function alphaSortProps(propsArray){return( propsArray.sort(function(a,b){ if(a<b){ return-1; } if(a>b){ return 1; } return 0; }));}; var createReducer=function createReducer(style,styleProps){ var hasResolvedBoxShadow=false; var hasResolvedTextShadow=false; return function(resolvedStyle,prop){ var value=(0,_normalizeValue2.default)(prop,style[prop]); if(value==null){ return resolvedStyle; } switch(prop){ case'display':{ resolvedStyle.display=value; if(style.display==='flex'&&style.flex==null&&style.flexShrink==null){ resolvedStyle.flexShrink=0; } break; } case'aspectRatio': case'elevation': case'overlayColor': case'resizeMode': case'tintColor':{ break; } case'flex':{ resolvedStyle.flexGrow=value; resolvedStyle.flexShrink=1; resolvedStyle.flexBasis='auto'; break; } case'shadowColor': case'shadowOffset': case'shadowOpacity': case'shadowRadius':{ if(!hasResolvedBoxShadow){ (0,_resolveBoxShadow2.default)(resolvedStyle,style); } hasResolvedBoxShadow=true; break; } case'textAlignVertical':{ resolvedStyle.verticalAlign=value==='center'?'middle':value; break; } case'textShadowColor': case'textShadowOffset': case'textShadowRadius':{ if(!hasResolvedTextShadow){ (0,_resolveTextShadow2.default)(resolvedStyle,style); } hasResolvedTextShadow=true; break; } case'transform':{ (0,_resolveTransform2.default)(resolvedStyle,style); break; } default:{ var finalValue=value; if(colorProps[prop]){ finalValue=(0,_processColor2.default)(value); } var longFormProperties=styleShortFormProperties[prop]; if(longFormProperties){ longFormProperties.forEach(function(longForm,i){ if(styleProps.indexOf(longForm)===-1){ resolvedStyle[longForm]=finalValue; } }); }else{ resolvedStyle[prop]=finalValue; } }} return resolvedStyle; }; }; var expandStyle=function expandStyle(style){ if(!style){ return emptyObject; } var styleProps=Object.keys(style); var sortedStyleProps=alphaSortProps(styleProps); var reducer=createReducer(style,styleProps); var resolvedStyle=sortedStyleProps.reduce(reducer,{}); return resolvedStyle; }; module.exports=expandStyle; /***/ }), /* 312 */ /***/ (function(module, exports, __webpack_require__) { var _hyphenateStyleName=__webpack_require__(110);var _hyphenateStyleName2=_interopRequireDefault(_hyphenateStyleName); var _mapKeyValue=__webpack_require__(147);var _mapKeyValue2=_interopRequireDefault(_mapKeyValue); var _normalizeValue=__webpack_require__(43);var _normalizeValue2=_interopRequireDefault(_normalizeValue); var _static=__webpack_require__(111);var _static2=_interopRequireDefault(_static);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} var createDeclarationString=function createDeclarationString(prop,val){ var name=(0,_hyphenateStyleName2.default)(prop); var value=(0,_normalizeValue2.default)(prop,val); if(Array.isArray(val)){ return val.map(function(v){return name+':'+v;}).join(';'); } return name+':'+value; }; var generateCss=function generateCss(style){return( (0,_mapKeyValue2.default)((0,_static2.default)(style),createDeclarationString).sort().join(';'));}; module.exports=generateCss; /***/ }), /* 313 */ /***/ (function(module, exports) { function murmurhash2_32_gc(str,seed){ var l=str.length,h=seed^l,i=0,k; while(l>=4){ k= str.charCodeAt(i)&0xff| (str.charCodeAt(++i)&0xff)<<8| (str.charCodeAt(++i)&0xff)<<16| (str.charCodeAt(++i)&0xff)<<24; k=(k&0xffff)*0x5bd1e995+(((k>>>16)*0x5bd1e995&0xffff)<<16); k^=k>>>24; k=(k&0xffff)*0x5bd1e995+(((k>>>16)*0x5bd1e995&0xffff)<<16); h=(h&0xffff)*0x5bd1e995+(((h>>>16)*0x5bd1e995&0xffff)<<16)^k; l-=4; ++i; } switch(l){ case 3: h^=(str.charCodeAt(i+2)&0xff)<<16; case 2: h^=(str.charCodeAt(i+1)&0xff)<<8; case 1: h^=str.charCodeAt(i)&0xff; h=(h&0xffff)*0x5bd1e995+(((h>>>16)*0x5bd1e995&0xffff)<<16);} h^=h>>>13; h=(h&0xffff)*0x5bd1e995+(((h>>>16)*0x5bd1e995&0xffff)<<16); h^=h>>>15; return h>>>0; } module.exports=function(str){return murmurhash2_32_gc(str,1).toString(36);}; /***/ }), /* 314 */ /***/ (function(module, exports, __webpack_require__) { var _I18nManager=__webpack_require__(82);var _I18nManager2=_interopRequireDefault(_I18nManager); var _multiplyStyleLengthValue=__webpack_require__(148);var _multiplyStyleLengthValue2=_interopRequireDefault(_multiplyStyleLengthValue);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} var emptyObject={}; var PROPERTIES_TO_SWAP={ borderTopLeftRadius:'borderTopRightRadius', borderTopRightRadius:'borderTopLeftRadius', borderBottomLeftRadius:'borderBottomRightRadius', borderBottomRightRadius:'borderBottomLeftRadius', borderLeftColor:'borderRightColor', borderLeftStyle:'borderRightStyle', borderLeftWidth:'borderRightWidth', borderRightColor:'borderLeftColor', borderRightWidth:'borderLeftWidth', borderRightStyle:'borderLeftStyle', left:'right', marginLeft:'marginRight', marginRight:'marginLeft', paddingLeft:'paddingRight', paddingRight:'paddingLeft', right:'left'}; var PROPERTIES_SWAP_LEFT_RIGHT={ clear:true, float:true, textAlign:true}; var additiveInverse=function additiveInverse(value){return(0,_multiplyStyleLengthValue2.default)(value,-1);}; var flipProperty=function flipProperty(prop){ return PROPERTIES_TO_SWAP.hasOwnProperty(prop)?PROPERTIES_TO_SWAP[prop]:prop; }; var flipTransform=function flipTransform(transform){ var translateX=transform.translateX; if(translateX!=null){ transform.translateX=additiveInverse(translateX); } return transform; }; var swapLeftRight=function swapLeftRight(value){ return value==='left'?'right':value==='right'?'left':value; }; var i18nStyle=function i18nStyle(originalStyle){ if(!_I18nManager2.default.isRTL){ return originalStyle; } var style=originalStyle||emptyObject; var nextStyle={}; for(var prop in style){ if(!Object.prototype.hasOwnProperty.call(style,prop)){ continue; } if(PROPERTIES_TO_SWAP[prop]){ var newProp=flipProperty(prop); nextStyle[newProp]=style[prop]; }else if(PROPERTIES_SWAP_LEFT_RIGHT[prop]){ nextStyle[prop]=swapLeftRight(style[prop]); }else if(prop==='textShadowOffset'){ nextStyle[prop]=style[prop]; nextStyle[prop].width=additiveInverse(style[prop].width); }else if(prop==='transform'){ nextStyle[prop]=style[prop].map(flipTransform); }else{ nextStyle[prop]=style[prop]; } } return nextStyle; }; module.exports=i18nStyle; /***/ }), /* 315 */ /***/ (function(module, exports, __webpack_require__) { var _static=__webpack_require__(111);var _static2=_interopRequireDefault(_static);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} var prefixInlineStyles=function prefixInlineStyles(style){ var prefixedStyles=(0,_static2.default)(style); Object.keys(prefixedStyles).forEach(function(prop){ var value=prefixedStyles[prop]; if(Array.isArray(value)){ prefixedStyles[prop]=value[value.length-1]; } }); return prefixedStyles; }; module.exports=prefixInlineStyles; /***/ }), /* 316 */ /***/ (function(module, exports, __webpack_require__) { var _normalizeValue=__webpack_require__(43);var _normalizeValue2=_interopRequireDefault(_normalizeValue); var _processColor=__webpack_require__(61);var _processColor2=_interopRequireDefault(_processColor);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} var defaultOffset={height:0,width:0}; var resolveBoxShadow=function resolveBoxShadow(resolvedStyle,style){var _ref= style.shadowOffset||defaultOffset,height=_ref.height,width=_ref.width; var offsetX=(0,_normalizeValue2.default)(null,width); var offsetY=(0,_normalizeValue2.default)(null,height); var blurRadius=(0,_normalizeValue2.default)(null,style.shadowRadius||0); var color=(0,_processColor2.default)(style.shadowColor,style.shadowOpacity); if(color){ var boxShadow=offsetX+' '+offsetY+' '+blurRadius+' '+color; resolvedStyle.boxShadow=style.boxShadow?style.boxShadow+', '+boxShadow:boxShadow; }else if(style.boxShadow){ resolvedStyle.boxShadow=style.boxShadow; } }; module.exports=resolveBoxShadow; /***/ }), /* 317 */ /***/ (function(module, exports, __webpack_require__) { var _normalizeValue=__webpack_require__(43);var _normalizeValue2=_interopRequireDefault(_normalizeValue); var _processColor=__webpack_require__(61);var _processColor2=_interopRequireDefault(_processColor);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} var defaultOffset={height:0,width:0}; var resolveTextShadow=function resolveTextShadow(resolvedStyle,style){var _ref= style.textShadowOffset||defaultOffset,height=_ref.height,width=_ref.width; var offsetX=(0,_normalizeValue2.default)(null,width); var offsetY=(0,_normalizeValue2.default)(null,height); var blurRadius=(0,_normalizeValue2.default)(null,style.textShadowRadius||0); var color=(0,_processColor2.default)(style.textShadowColor); if(color){ resolvedStyle.textShadow=offsetX+' '+offsetY+' '+blurRadius+' '+color; } }; module.exports=resolveTextShadow; /***/ }), /* 318 */ /***/ (function(module, exports, __webpack_require__) { var _normalizeValue=__webpack_require__(43);var _normalizeValue2=_interopRequireDefault(_normalizeValue);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} var mapTransform=function mapTransform(transform){ var type=Object.keys(transform)[0]; var value=(0,_normalizeValue2.default)(type,transform[type]); return type+'('+value+')'; }; var convertTransformMatrix=function convertTransformMatrix(transformMatrix){ var matrix=transformMatrix.join(','); return'matrix3d('+matrix+')'; }; var resolveTransform=function resolveTransform(resolvedStyle,style){ if(Array.isArray(style.transform)){ var transform=style.transform.map(mapTransform).join(' '); resolvedStyle.transform=transform; }else if(style.transformMatrix){ var _transform=convertTransformMatrix(style.transformMatrix); resolvedStyle.transform=_transform; } }; module.exports=resolveTransform; /***/ }), /* 319 */ /***/ (function(module, exports) { module.exports= 'html{'+ 'font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;'+ '-webkit-tap-highlight-color:rgba(0,0,0,0);'+ '}\n'+ 'body{margin:0;}\n'+ 'button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}\n'+ 'input::-webkit-inner-spin-button,input::-webkit-outer-spin-button,'+ 'input::-webkit-search-cancel-button,input::-webkit-search-decoration,'+ 'input::-webkit-search-results-button,input::-webkit-search-results-decoration{display:none;}\n'+ '@keyframes rn-ActivityIndicator-animation{'+ '0%{-webkit-transform:rotate(0deg);transform:rotate(0deg);}'+ '100%{-webkit-transform:rotate(360deg);transform:rotate(360deg);}'+ '}\n'+ '@keyframes rn-ProgressBar-animation{'+ '0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);}'+ '100%{-webkit-transform:translateX(400%);transform:translateX(400%);}'+ '}'; /***/ }), /* 320 */ /***/ (function(module, exports) { var _vibrate=function _vibrate(pattern){ if('vibrate'in window.navigator){ if(typeof pattern==='number'||Array.isArray(pattern)){ window.navigator.vibrate(pattern); }else{ throw new Error('Vibration pattern should be a number or array'); } } }; var Vibration={ cancel:function cancel(){ _vibrate(0); }, vibrate:function vibrate(pattern){ _vibrate(pattern); }}; module.exports=Vibration; /***/ }), /* 321 */ /***/ (function(module, exports, __webpack_require__) { 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;};var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _applyNativeMethods=__webpack_require__(21);var _applyNativeMethods2=_interopRequireDefault(_applyNativeMethods); var _StyleSheet=__webpack_require__(8);var _StyleSheet2=_interopRequireDefault(_StyleSheet); var _View=__webpack_require__(12);var _View2=_interopRequireDefault(_View); var _ViewPropTypes=__webpack_require__(19);var _ViewPropTypes2=_interopRequireDefault(_ViewPropTypes); var _propTypes=__webpack_require__(3); var _react=__webpack_require__(5);var _react2=_interopRequireDefault(_react);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}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;}var ActivityIndicator=function(_Component){_inherits(ActivityIndicator,_Component);function ActivityIndicator(){_classCallCheck(this,ActivityIndicator);return _possibleConstructorReturn(this,(ActivityIndicator.__proto__||Object.getPrototypeOf(ActivityIndicator)).apply(this,arguments));}_createClass(ActivityIndicator,[{key:'render',value:function render() {var _props= this.props,animating=_props.animating,color=_props.color,hidesWhenStopped=_props.hidesWhenStopped,size=_props.size,style=_props.style,other=_objectWithoutProperties(_props,['animating','color','hidesWhenStopped','size','style']); var svg= _react2.default.createElement('svg',{height:'100%',viewBox:'0 0 32 32',width:'100%'}, _react2.default.createElement('circle',{ cx:'16', cy:'16', fill:'none', r:'14', strokeWidth:'4', style:{ stroke:color, opacity:0.2}}), _react2.default.createElement('circle',{ cx:'16', cy:'16', fill:'none', r:'14', strokeWidth:'4', style:{ stroke:color, strokeDasharray:80, strokeDashoffset:60}})); return( _react2.default.createElement(_View2.default,_extends({}, other,{ accessibilityRole:'progressbar', 'aria-valuemax':'1', 'aria-valuemin':'0', style:[styles.container,style,typeof size==='number'&&{height:size,width:size}]}), _react2.default.createElement(_View2.default,{ children:svg, style:[ indicatorSizes[size], styles.animation, !animating&&styles.animationPause, !animating&&hidesWhenStopped&&styles.hidesWhenStopped]}))); }}]);return ActivityIndicator;}(_react.Component);ActivityIndicator.displayName='ActivityIndicator';ActivityIndicator.defaultProps={animating:true,color:'#1976D2',hidesWhenStopped:true,size:'small'}; true?ActivityIndicator.propTypes=_extends({},_ViewPropTypes2.default,{animating:_propTypes.bool,color:_propTypes.string,hidesWhenStopped:_propTypes.bool,size:(0,_propTypes.oneOfType)([(0,_propTypes.oneOf)(['small','large']),_propTypes.number])}):void 0; var styles=_StyleSheet2.default.create({ container:{ alignItems:'center', justifyContent:'center'}, hidesWhenStopped:{ visibility:'hidden'}, animation:{ animationDuration:'0.75s', animationName:'rn-ActivityIndicator-animation', animationTimingFunction:'linear', animationIterationCount:'infinite'}, animationPause:{ animationPlayState:'paused'}}); var indicatorSizes=_StyleSheet2.default.create({ small:{ width:20, height:20}, large:{ width:36, height:36}}); module.exports=(0,_applyNativeMethods2.default)(ActivityIndicator); /***/ }), /* 322 */ /***/ (function(module, exports, __webpack_require__) { var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _ColorPropType=__webpack_require__(16);var _ColorPropType2=_interopRequireDefault(_ColorPropType); var _StyleSheet=__webpack_require__(8);var _StyleSheet2=_interopRequireDefault(_StyleSheet); var _TouchableOpacity=__webpack_require__(144);var _TouchableOpacity2=_interopRequireDefault(_TouchableOpacity); var _Text=__webpack_require__(85);var _Text2=_interopRequireDefault(_Text); var _propTypes=__webpack_require__(3); var _react=__webpack_require__(5);var _react2=_interopRequireDefault(_react);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}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;}var Button=function(_Component){_inherits(Button,_Component);function Button(){_classCallCheck(this,Button);return _possibleConstructorReturn(this,(Button.__proto__||Object.getPrototypeOf(Button)).apply(this,arguments));}_createClass(Button,[{key:'render',value:function render() {var _props= this.props,accessibilityLabel=_props.accessibilityLabel,color=_props.color,disabled=_props.disabled,onPress=_props.onPress,testID=_props.testID,title=_props.title; return( _react2.default.createElement(_TouchableOpacity2.default,{ accessibilityLabel:accessibilityLabel, accessibilityRole:'button', disabled:disabled, onPress:onPress, style:[ styles.button, color&&{backgroundColor:color}, disabled&&styles.buttonDisabled], testID:testID}, _react2.default.createElement(_Text2.default,{style:[styles.text,disabled&&styles.textDisabled]}, title))); }}]);return Button;}(_react.Component); true?Button.propTypes={accessibilityLabel:_propTypes.string,color:_ColorPropType2.default,disabled:_propTypes.bool,onPress:_propTypes.func.isRequired,testID:_propTypes.string,title:_propTypes.string.isRequired}:void 0; var styles=_StyleSheet2.default.create({ button:{ backgroundColor:'#2196F3', borderRadius:2}, text:{ textAlign:'center', color:'#fff', padding:8, fontWeight:'500'}, buttonDisabled:{ backgroundColor:'#dfdfdf'}, textDisabled:{ color:'#a1a1a1'}}); module.exports=Button; /***/ }), /* 323 */ /***/ (function(module, exports) { var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var ImageUriCache=function(){function ImageUriCache(){_classCallCheck(this,ImageUriCache);}_createClass(ImageUriCache,null,[{key:"has",value:function has( uri){ var entries=ImageUriCache._entries; var isDataUri=/^data:/.test(uri); return isDataUri||Boolean(entries[uri]); }},{key:"add",value:function add( uri){ var entries=ImageUriCache._entries; var lastUsedTimestamp=Date.now(); if(entries[uri]){ entries[uri].lastUsedTimestamp=lastUsedTimestamp; entries[uri].refCount+=1; }else{ entries[uri]={ lastUsedTimestamp:lastUsedTimestamp, refCount:1}; } }},{key:"remove",value:function remove( uri){ var entries=ImageUriCache._entries; if(entries[uri]){ entries[uri].refCount-=1; } ImageUriCache._cleanUpIfNeeded(); }},{key:"_cleanUpIfNeeded",value:function _cleanUpIfNeeded() { var entries=ImageUriCache._entries; var imageUris=Object.keys(entries); if(imageUris.length+1>ImageUriCache._maximumEntries){ var leastRecentlyUsedKey=void 0; var leastRecentlyUsedEntry=void 0; imageUris.forEach(function(uri){ var entry=entries[uri]; if( (!leastRecentlyUsedEntry|| entry.lastUsedTimestamp<leastRecentlyUsedEntry.lastUsedTimestamp)&& entry.refCount===0) { leastRecentlyUsedKey=uri; leastRecentlyUsedEntry=entry; } }); if(leastRecentlyUsedKey){ delete entries[leastRecentlyUsedKey]; } } }}]);return ImageUriCache;}();ImageUriCache._maximumEntries=256;ImageUriCache._entries={}; module.exports=ImageUriCache; /***/ }), /* 324 */ /***/ (function(module, exports, __webpack_require__) { 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;};var _ListViewDataSource=__webpack_require__(142);var _ListViewDataSource2=_interopRequireDefault(_ListViewDataSource); var _ScrollView=__webpack_require__(58);var _ScrollView2=_interopRequireDefault(_ScrollView); var _propTypes=__webpack_require__(3);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}exports.default=_extends({}, _ScrollView2.default.propTypes,{ dataSource:(0,_propTypes.instanceOf)(_ListViewDataSource2.default).isRequired, renderSeparator:_propTypes.func, renderRow:_propTypes.func.isRequired, initialListSize:_propTypes.number, onEndReached:_propTypes.func, onEndReachedThreshold:_propTypes.number, pageSize:_propTypes.number, renderFooter:_propTypes.func, renderHeader:_propTypes.func, renderSectionHeader:_propTypes.func, renderScrollComponent:_propTypes.func.isRequired, scrollRenderAheadDistance:_propTypes.number, onChangeVisibleRows:_propTypes.func, removeClippedSubviews:_propTypes.bool, stickyHeaderIndices:(0,_propTypes.arrayOf)(_propTypes.number)}); /***/ }), /* 325 */ /***/ (function(module, exports, __webpack_require__) { 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;};var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _applyNativeMethods=__webpack_require__(21);var _applyNativeMethods2=_interopRequireDefault(_applyNativeMethods); var _ListViewDataSource=__webpack_require__(142);var _ListViewDataSource2=_interopRequireDefault(_ListViewDataSource); var _ListViewPropTypes=__webpack_require__(324);var _ListViewPropTypes2=_interopRequireDefault(_ListViewPropTypes); var _ScrollView=__webpack_require__(58);var _ScrollView2=_interopRequireDefault(_ScrollView); var _StaticRenderer=__webpack_require__(328);var _StaticRenderer2=_interopRequireDefault(_StaticRenderer); var _react=__webpack_require__(5);var _react2=_interopRequireDefault(_react); var _isEmpty=__webpack_require__(109);var _isEmpty2=_interopRequireDefault(_isEmpty); var _requestAnimationFrame=__webpack_require__(64);var _requestAnimationFrame2=_interopRequireDefault(_requestAnimationFrame);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}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;} var DEFAULT_PAGE_SIZE=1; var DEFAULT_INITIAL_ROWS=10; var DEFAULT_SCROLL_RENDER_AHEAD=1000; var DEFAULT_END_REACHED_THRESHOLD=1000; var DEFAULT_SCROLL_CALLBACK_THROTTLE=50;var ListView=function(_Component){_inherits(ListView,_Component); function ListView(props){_classCallCheck(this,ListView);var _this=_possibleConstructorReturn(this,(ListView.__proto__||Object.getPrototypeOf(ListView)).call(this, props));_initialiseProps.call(_this); _this.state={ curRenderedRowsCount:_this.props.initialListSize, highlightedRow:{}}; _this.onRowHighlighted=function(sectionId,rowId){return _this._onRowHighlighted(sectionId,rowId);}; _this.scrollProperties={};return _this; }_createClass(ListView,[{key:'componentWillMount',value:function componentWillMount() { this.scrollProperties={ visibleLength:null, contentLength:null, offset:0}; this._childFrames=[]; this._visibleRows={}; this._prevRenderedRowsCount=0; this._sentEndForContentLength=null; }},{key:'componentDidMount',value:function componentDidMount() {var _this2=this; (0,_requestAnimationFrame2.default)(function(){ _this2._measureAndUpdateScrollProps(); }); }},{key:'componentWillReceiveProps',value:function componentWillReceiveProps( nextProps){var _this3=this; if( this.props.dataSource!==nextProps.dataSource|| this.props.initialListSize!==nextProps.initialListSize) { this.setState( function(state,props){ _this3._prevRenderedRowsCount=0; return{ curRenderedRowsCount:Math.min( Math.max(state.curRenderedRowsCount,props.initialListSize), props.enableEmptySections? props.dataSource.getRowAndSectionCount(): props.dataSource.getRowCount())}; }, function(){return _this3._renderMoreRowsIfNeeded();}); } }},{key:'componentDidUpdate',value:function componentDidUpdate() {var _this4=this; (0,_requestAnimationFrame2.default)(function(){ _this4._measureAndUpdateScrollProps(); }); }},{key:'getScrollResponder',value:function getScrollResponder() { return this._scrollViewRef&&this._scrollViewRef.getScrollResponder(); }},{key:'scrollTo',value:function scrollTo() {var _scrollViewRef; return this._scrollViewRef&&(_scrollViewRef=this._scrollViewRef).scrollTo.apply(_scrollViewRef,arguments); }},{key:'setNativeProps',value:function setNativeProps( props){ return this._scrollViewRef&&this._scrollViewRef.setNativeProps(props); }},{key:'render',value:function render() { var children=[];var _props= this.props,dataSource=_props.dataSource,enableEmptySections=_props.enableEmptySections,renderFooter=_props.renderFooter,renderHeader=_props.renderHeader,renderScrollComponent=_props.renderScrollComponent,renderSectionHeader=_props.renderSectionHeader,renderSeparator=_props.renderSeparator,initialListSize=_props.initialListSize,onChangeVisibleRows=_props.onChangeVisibleRows,onEndReached=_props.onEndReached,onEndReachedThreshold=_props.onEndReachedThreshold,onKeyboardDidHide=_props.onKeyboardDidHide,onKeyboardDidShow=_props.onKeyboardDidShow,onKeyboardWillHide=_props.onKeyboardWillHide,onKeyboardWillShow=_props.onKeyboardWillShow,pageSize=_props.pageSize,renderRow=_props.renderRow,scrollRenderAheadDistance=_props.scrollRenderAheadDistance,stickyHeaderIndices=_props.stickyHeaderIndices,scrollProps=_objectWithoutProperties(_props,['dataSource','enableEmptySections','renderFooter','renderHeader','renderScrollComponent','renderSectionHeader','renderSeparator','initialListSize','onChangeVisibleRows','onEndReached','onEndReachedThreshold','onKeyboardDidHide','onKeyboardDidShow','onKeyboardWillHide','onKeyboardWillShow','pageSize','renderRow','scrollRenderAheadDistance','stickyHeaderIndices']); var allRowIDs=dataSource.rowIdentities; var rowCount=0; var sectionHeaderIndices=[]; var header=renderHeader&&renderHeader(); var footer=renderFooter&&renderFooter(); var totalIndex=header?1:0; for(var sectionIdx=0;sectionIdx<allRowIDs.length;sectionIdx++){ var sectionID=dataSource.sectionIdentities[sectionIdx]; var rowIDs=allRowIDs[sectionIdx]; if(rowIDs.length===0){ if(enableEmptySections===undefined){ var warning=__webpack_require__(1); warning( false, 'In next release empty section headers will be rendered.'+ " In this release you can use 'enableEmptySections' flag to render empty section headers."); continue; }else{ var invariant=__webpack_require__(0); invariant( enableEmptySections, "In next release 'enableEmptySections' flag will be deprecated,"+ ' empty section headers will always be rendered. If empty section headers'+ ' are not desirable their indices should be excluded from sectionIDs object.'+ " In this release 'enableEmptySections' may only have value 'true'"+ ' to allow empty section headers rendering.'); } } if(renderSectionHeader){ var shouldUpdateHeader= rowCount>=this._prevRenderedRowsCount&& dataSource.sectionHeaderShouldUpdate(sectionIdx); children.push( _react2.default.createElement(_StaticRenderer2.default,{ key:'s_'+sectionID, render:this.renderSectionHeaderFn( dataSource.getSectionHeaderData(sectionIdx), sectionID), shouldUpdate:!!shouldUpdateHeader})); sectionHeaderIndices.push(totalIndex++); } for(var rowIdx=0;rowIdx<rowIDs.length;rowIdx++){ var rowID=rowIDs[rowIdx]; var comboID=sectionID+'_'+rowID; var shouldUpdateRow= rowCount>=this._prevRenderedRowsCount&&dataSource.rowShouldUpdate(sectionIdx,rowIdx); var row= _react2.default.createElement(_StaticRenderer2.default,{ key:'r_'+comboID, render:this.renderRowFn(dataSource.getRowData(sectionIdx,rowIdx),sectionID,rowID), shouldUpdate:!!shouldUpdateRow}); children.push(row); totalIndex++; if( renderSeparator&&(rowIdx!==rowIDs.length-1||sectionIdx===allRowIDs.length-1)) { var adjacentRowHighlighted= this.state.highlightedRow.sectionID===sectionID&&( this.state.highlightedRow.rowID===rowID|| this.state.highlightedRow.rowID===rowIDs[rowIdx+1]); var separator=renderSeparator(sectionID,rowID,adjacentRowHighlighted); if(separator){ children.push(separator); totalIndex++; } } if(++rowCount===this.state.curRenderedRowsCount){ break; } } if(rowCount>=this.state.curRenderedRowsCount){ break; } } scrollProps.onScroll=this._onScroll; return _react2.default.cloneElement( renderScrollComponent(scrollProps), { ref:this._setScrollViewRef, onContentSizeChange:this._onContentSizeChange, onLayout:this._onLayout}, header, children, footer); }},{key:'_measureAndUpdateScrollProps',value:function _measureAndUpdateScrollProps() { var scrollComponent=this.getScrollResponder(); if(!scrollComponent||!scrollComponent.getInnerViewNode){ return; } this._updateVisibleRows(); }},{key:'_updateVisibleRows',value:function _updateVisibleRows( updatedFrames){var _this5=this; if(!this.props.onChangeVisibleRows){ return; } if(updatedFrames){ updatedFrames.forEach(function(newFrame){ _this5._childFrames[newFrame.index]=_extends({},newFrame); }); } var isVertical=!this.props.horizontal; var dataSource=this.props.dataSource; var visibleMin=this.scrollProperties.offset; var visibleMax=visibleMin+this.scrollProperties.visibleLength; var allRowIDs=dataSource.rowIdentities; var header=this.props.renderHeader&&this.props.renderHeader(); var totalIndex=header?1:0; var visibilityChanged=false; var changedRows={}; for(var sectionIdx=0;sectionIdx<allRowIDs.length;sectionIdx++){ var rowIDs=allRowIDs[sectionIdx]; if(rowIDs.length===0){ continue; } var sectionID=dataSource.sectionIdentities[sectionIdx]; if(this.props.renderSectionHeader){ totalIndex++; } var visibleSection=this._visibleRows[sectionID]; if(!visibleSection){ visibleSection={}; } for(var rowIdx=0;rowIdx<rowIDs.length;rowIdx++){ var rowID=rowIDs[rowIdx]; var frame=this._childFrames[totalIndex]; totalIndex++; if( this.props.renderSeparator&&( rowIdx!==rowIDs.length-1||sectionIdx===allRowIDs.length-1)) { totalIndex++; } if(!frame){ break; } var rowVisible=visibleSection[rowID]; var min=isVertical?frame.y:frame.x; var max=min+(isVertical?frame.height:frame.width); if(!min&&!max||min===max){ break; } if(min>visibleMax||max<visibleMin){ if(rowVisible){ visibilityChanged=true; delete visibleSection[rowID]; if(!changedRows[sectionID]){ changedRows[sectionID]={}; } changedRows[sectionID][rowID]=false; } }else if(!rowVisible){ visibilityChanged=true; visibleSection[rowID]=true; if(!changedRows[sectionID]){ changedRows[sectionID]={}; } changedRows[sectionID][rowID]=true; } } if(!(0,_isEmpty2.default)(visibleSection)){ this._visibleRows[sectionID]=visibleSection; }else if(this._visibleRows[sectionID]){ delete this._visibleRows[sectionID]; } } visibilityChanged&&this.props.onChangeVisibleRows(this._visibleRows,changedRows); }},{key:'_getDistanceFromEnd',value:function _getDistanceFromEnd( scrollProperties){ return( scrollProperties.contentLength-scrollProperties.visibleLength-scrollProperties.offset); }},{key:'_maybeCallOnEndReached',value:function _maybeCallOnEndReached( event){ if( this.props.onEndReached&& this.scrollProperties.contentLength!==this._sentEndForContentLength&& this._getDistanceFromEnd(this.scrollProperties)<this.props.onEndReachedThreshold&& this.state.curRenderedRowsCount===( this.props.enableEmptySections? this.props.dataSource.getRowAndSectionCount(): this.props.dataSource.getRowCount())) { this._sentEndForContentLength=this.scrollProperties.contentLength; this.props.onEndReached(event); return true; } return false; }},{key:'_renderMoreRowsIfNeeded',value:function _renderMoreRowsIfNeeded() { if( this.scrollProperties.contentLength===null|| this.scrollProperties.visibleLength===null|| this.state.curRenderedRowsCount===( this.props.enableEmptySections? this.props.dataSource.getRowAndSectionCount(): this.props.dataSource.getRowCount())) { this._maybeCallOnEndReached(); return; } var distanceFromEnd=this._getDistanceFromEnd(this.scrollProperties); if(distanceFromEnd<this.props.scrollRenderAheadDistance){ this._pageInNewRows(); } }},{key:'_pageInNewRows',value:function _pageInNewRows() {var _this6=this; this.setState( function(state,props){ var rowsToRender=Math.min( state.curRenderedRowsCount+props.pageSize, props.enableEmptySections? props.dataSource.getRowAndSectionCount(): props.dataSource.getRowCount()); _this6._prevRenderedRowsCount=state.curRenderedRowsCount; return{ curRenderedRowsCount:rowsToRender}; }, function(){ _this6._measureAndUpdateScrollProps(); _this6._prevRenderedRowsCount=_this6.state.curRenderedRowsCount; }); }}]);return ListView;}(_react.Component);ListView.defaultProps={initialListSize:DEFAULT_INITIAL_ROWS,pageSize:DEFAULT_PAGE_SIZE,renderScrollComponent:function renderScrollComponent(props){return _react2.default.createElement(_ScrollView2.default,props);},scrollRenderAheadDistance:DEFAULT_SCROLL_RENDER_AHEAD,onEndReachedThreshold:DEFAULT_END_REACHED_THRESHOLD,scrollEventThrottle:DEFAULT_SCROLL_CALLBACK_THROTTLE,removeClippedSubviews:true,stickyHeaderIndices:[]};ListView.DataSource=_ListViewDataSource2.default;var _initialiseProps=function _initialiseProps(){var _this7=this;this._onRowHighlighted=function(sectionId,rowId){_this7.setState({highlightedRow:{sectionId:sectionId,rowId:rowId}});};this.renderSectionHeaderFn=function(data,sectionID){return function(){return _this7.props.renderSectionHeader(data,sectionID);};};this.renderRowFn=function(data,sectionID,rowID){return function(){return _this7.props.renderRow(data,sectionID,rowID,_this7._onRowHighlighted);};};this._onLayout=function(event){var _event$nativeEvent$la=event.nativeEvent.layout,width=_event$nativeEvent$la.width,height=_event$nativeEvent$la.height;var visibleLength=!_this7.props.horizontal?height:width;if(visibleLength!==_this7.scrollProperties.visibleLength){_this7.scrollProperties.visibleLength=visibleLength;_this7._updateVisibleRows();_this7._renderMoreRowsIfNeeded();}_this7.props.onLayout&&_this7.props.onLayout(event);};this._onContentSizeChange=function(width,height){var contentLength=!_this7.props.horizontal?height:width;if(contentLength!==_this7.scrollProperties.contentLength){_this7.scrollProperties.contentLength=contentLength;_this7._updateVisibleRows();_this7._renderMoreRowsIfNeeded();}_this7.props.onContentSizeChange&&_this7.props.onContentSizeChange(width,height);};this. _onScroll=function(e){ var isVertical=!_this7.props.horizontal; _this7.scrollProperties.visibleLength= e.nativeEvent.layoutMeasurement[isVertical?'height':'width']; _this7.scrollProperties.contentLength= e.nativeEvent.contentSize[isVertical?'height':'width']; _this7.scrollProperties.offset=e.nativeEvent.contentOffset[isVertical?'y':'x']; _this7._updateVisibleRows(e.nativeEvent.updatedChildFrames); if(!_this7._maybeCallOnEndReached(e)){ _this7._renderMoreRowsIfNeeded(); } if( _this7.props.onEndReached&& _this7._getDistanceFromEnd(_this7.scrollProperties)>_this7.props.onEndReachedThreshold) { _this7._sentEndForContentLength=null; } _this7.props.onScroll&&_this7.props.onScroll(e); };this. _setScrollViewRef=function(component){ _this7._scrollViewRef=component; };}; true?ListView.propTypes=_ListViewPropTypes2.default:void 0; module.exports=(0,_applyNativeMethods2.default)(ListView); /***/ }), /* 326 */ /***/ (function(module, exports, __webpack_require__) { 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;};var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _applyNativeMethods=__webpack_require__(21);var _applyNativeMethods2=_interopRequireDefault(_applyNativeMethods); var _ColorPropType=__webpack_require__(16);var _ColorPropType2=_interopRequireDefault(_ColorPropType); var _StyleSheet=__webpack_require__(8);var _StyleSheet2=_interopRequireDefault(_StyleSheet); var _View=__webpack_require__(12);var _View2=_interopRequireDefault(_View); var _ViewPropTypes=__webpack_require__(19);var _ViewPropTypes2=_interopRequireDefault(_ViewPropTypes); var _react=__webpack_require__(5);var _react2=_interopRequireDefault(_react); var _propTypes=__webpack_require__(3);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}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;}var ProgressBar=function(_Component){_inherits(ProgressBar,_Component);function ProgressBar(){var _ref;var _temp,_this,_ret;_classCallCheck(this,ProgressBar);for(var _len=arguments.length,args=Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}return _ret=(_temp=(_this=_possibleConstructorReturn(this,(_ref=ProgressBar.__proto__||Object.getPrototypeOf(ProgressBar)).call.apply(_ref,[this].concat(args))),_this),_this. _setProgressRef=function(component){ _this._progressRef=component; },_this. _updateProgressWidth=function(){var _this$props= _this.props,indeterminate=_this$props.indeterminate,progress=_this$props.progress; var percentageProgress=indeterminate?50:progress*100; var width=indeterminate?'25%':percentageProgress+'%'; _this._progressRef.setNativeProps({ style:{width:width}}); },_temp),_possibleConstructorReturn(_this,_ret);}_createClass(ProgressBar,[{key:'componentDidMount',value:function componentDidMount(){this._updateProgressWidth();}},{key:'componentDidUpdate',value:function componentDidUpdate(){this._updateProgressWidth();}},{key:'render',value:function render(){var _props=this.props,color=_props.color,indeterminate=_props.indeterminate,progress=_props.progress,trackColor=_props.trackColor,style=_props.style,other=_objectWithoutProperties(_props,['color','indeterminate','progress','trackColor','style']);var percentageProgress=progress*100;return _react2.default.createElement(_View2.default,_extends({},other,{accessibilityRole:'progressbar','aria-valuemax':'100','aria-valuemin':'0','aria-valuenow':indeterminate?null:percentageProgress,style:[styles.track,style,{backgroundColor:trackColor}]}),_react2.default.createElement(_View2.default,{ref:this._setProgressRef,style:[styles.progress,indeterminate&&styles.animation,{backgroundColor:color}]}));}}]);return ProgressBar;}(_react.Component);ProgressBar.displayName='ProgressBar';ProgressBar.defaultProps={color:'#1976D2',indeterminate:false,progress:0,trackColor:'transparent'}; true?ProgressBar.propTypes=_extends({},_ViewPropTypes2.default,{color:_ColorPropType2.default,indeterminate:_propTypes.bool,progress:_propTypes.number,trackColor:_ColorPropType2.default}):void 0; var styles=_StyleSheet2.default.create({ track:{ height:5, overflow:'hidden', userSelect:'none'}, progress:{ height:'100%'}, animation:{ animationDuration:'1s', animationName:'rn-ProgressBar-animation', animationTimingFunction:'linear', animationIterationCount:'infinite'}}); module.exports=(0,_applyNativeMethods2.default)(ProgressBar); /***/ }), /* 327 */ /***/ (function(module, exports, __webpack_require__) { 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;};var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}(); var _debounce=__webpack_require__(63);var _debounce2=_interopRequireDefault(_debounce); var _View=__webpack_require__(12);var _View2=_interopRequireDefault(_View); var _ViewPropTypes=__webpack_require__(19);var _ViewPropTypes2=_interopRequireDefault(_ViewPropTypes); var _react=__webpack_require__(5);var _react2=_interopRequireDefault(_react); var _propTypes=__webpack_require__(3);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}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;} var normalizeScrollEvent=function normalizeScrollEvent(e){return{ nativeEvent:{ contentOffset:{ get x(){ return e.target.scrollLeft; }, get y(){ return e.target.scrollTop; }}, contentSize:{ get height(){ return e.target.scrollHeight; }, get width(){ return e.target.scrollWidth; }}, layoutMeasurement:{ get height(){ return e.target.offsetHeight; }, get width(){ return e.target.offsetWidth; }}}, timeStamp:Date.now()};};var ScrollViewBase=function(_Component){_inherits(ScrollViewBase,_Component); function ScrollViewBase(props){_classCallCheck(this,ScrollViewBase);var _this=_possibleConstructorReturn(this,(ScrollViewBase.__proto__||Object.getPrototypeOf(ScrollViewBase)).call(this, props));_this. _handlePreventableScrollEvent=function(handler){ return function(e){ if(!_this.props.scrollEnabled){ e.preventDefault(); }else{ if(handler){ handler(e); } } }; };_this. _handleScroll=function(e){ e.persist();var scrollEventThrottle=_this.props.scrollEventThrottle; _this._debouncedOnScrollEnd(e); if(_this._state.isScrolling){ if(_this._shouldEmitScrollEvent(_this._state.scrollLastTick,scrollEventThrottle)){ _this._handleScrollTick(e); } }else{ _this._handleScrollStart(e); } };_this._debouncedOnScrollEnd=(0,_debounce2.default)(_this._handleScrollEnd,100);_this._state={isScrolling:false};return _this;}_createClass(ScrollViewBase,[{key:'_handleScrollStart',value:function _handleScrollStart( e){ this._state.isScrolling=true; this._state.scrollLastTick=Date.now(); }},{key:'_handleScrollTick',value:function _handleScrollTick( e){var onScroll=this.props.onScroll; this._state.scrollLastTick=Date.now(); if(onScroll){ onScroll(normalizeScrollEvent(e)); } }},{key:'_handleScrollEnd',value:function _handleScrollEnd( e){var onScroll=this.props.onScroll; this._state.isScrolling=false; if(onScroll){ onScroll(normalizeScrollEvent(e)); } }},{key:'_shouldEmitScrollEvent',value:function _shouldEmitScrollEvent( lastTick,eventThrottle){ var timeSinceLastTick=Date.now()-lastTick; return eventThrottle>0&&timeSinceLastTick>=eventThrottle; }},{key:'render',value:function render() {var _props= this.props,onMomentumScrollBegin=_props.onMomentumScrollBegin,onMomentumScrollEnd=_props.onMomentumScrollEnd,onScrollBeginDrag=_props.onScrollBeginDrag,onScrollEndDrag=_props.onScrollEndDrag,removeClippedSubviews=_props.removeClippedSubviews,scrollEnabled=_props.scrollEnabled,scrollEventThrottle=_props.scrollEventThrottle,showsHorizontalScrollIndicator=_props.showsHorizontalScrollIndicator,showsVerticalScrollIndicator=_props.showsVerticalScrollIndicator,other=_objectWithoutProperties(_props,['onMomentumScrollBegin','onMomentumScrollEnd','onScrollBeginDrag','onScrollEndDrag','removeClippedSubviews','scrollEnabled','scrollEventThrottle','showsHorizontalScrollIndicator','showsVerticalScrollIndicator']); return( _react2.default.createElement(_View2.default,_extends({}, other,{ onScroll:this._handleScroll, onTouchMove:this._handlePreventableScrollEvent(this.props.onTouchMove), onWheel:this._handlePreventableScrollEvent(this.props.onWheel)}))); }}]);return ScrollViewBase;}(_react.Component);ScrollViewBase.defaultProps={scrollEnabled:true,scrollEventThrottle:0};exports.default=ScrollViewBase; true?ScrollViewBase.propTypes=_extends({},_ViewPropTypes2.default,{onMomentumScrollBegin:_propTypes.func,onMomentumScrollEnd:_propTypes.func,onScroll:_propTypes.func,onScrollBeginDrag:_propTypes.func,onScrollEndDrag:_propTypes.func,onTouchMove:_propTypes.func,onWheel:_propTypes.func,removeClippedSubviews:_propTypes.bool,scrollEnabled:_propTypes.bool,scrollEventThrottle:_propTypes.number,showsHorizontalScrollIndicator:_propTypes.bool,showsVerticalScrollIndicator:_propTypes.bool}):void 0; /***/ }), /* 328 */ /***/ (function(module, exports, __webpack_require__) { var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}(); var _react=__webpack_require__(5); var _propTypes=__webpack_require__(3);function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}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;}var StaticRenderer=function(_Component){_inherits(StaticRenderer,_Component);function StaticRenderer(){_classCallCheck(this,StaticRenderer);return _possibleConstructorReturn(this,(StaticRenderer.__proto__||Object.getPrototypeOf(StaticRenderer)).apply(this,arguments));}_createClass(StaticRenderer,[{key:'shouldComponentUpdate',value:function shouldComponentUpdate( nextProps){ return nextProps.shouldUpdate; }},{key:'render',value:function render() { return this.props.render(); }}]);return StaticRenderer;}(_react.Component); true?StaticRenderer.propTypes={render:_propTypes.func.isRequired,shouldUpdate:_propTypes.bool.isRequired}:void 0; module.exports=StaticRenderer; /***/ }), /* 329 */ /***/ (function(module, exports, __webpack_require__) { var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _react=__webpack_require__(5);function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}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;}var StatusBar=function(_Component){_inherits(StatusBar,_Component);function StatusBar(){_classCallCheck(this,StatusBar);return _possibleConstructorReturn(this,(StatusBar.__proto__||Object.getPrototypeOf(StatusBar)).apply(this,arguments));}_createClass(StatusBar,[{key:'render',value:function render() { return null; }}],[{key:'setBackgroundColor',value:function setBackgroundColor(){}},{key:'setBarStyle',value:function setBarStyle(){}},{key:'setHidden',value:function setHidden(){}},{key:'setNetworkActivityIndicatorVisible',value:function setNetworkActivityIndicatorVisible(){}},{key:'setTranslucent',value:function setTranslucent(){}}]);return StatusBar;}(_react.Component); module.exports=StatusBar; /***/ }), /* 330 */ /***/ (function(module, exports, __webpack_require__) { 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;};var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _applyNativeMethods=__webpack_require__(21);var _applyNativeMethods2=_interopRequireDefault(_applyNativeMethods); var _ColorPropType=__webpack_require__(16);var _ColorPropType2=_interopRequireDefault(_ColorPropType); var _createDOMElement=__webpack_require__(31);var _createDOMElement2=_interopRequireDefault(_createDOMElement); var _multiplyStyleLengthValue=__webpack_require__(148);var _multiplyStyleLengthValue2=_interopRequireDefault(_multiplyStyleLengthValue); var _StyleSheet=__webpack_require__(8);var _StyleSheet2=_interopRequireDefault(_StyleSheet); var _UIManager=__webpack_require__(30);var _UIManager2=_interopRequireDefault(_UIManager); var _View=__webpack_require__(12);var _View2=_interopRequireDefault(_View); var _ViewPropTypes=__webpack_require__(19);var _ViewPropTypes2=_interopRequireDefault(_ViewPropTypes); var _react=__webpack_require__(5);var _react2=_interopRequireDefault(_react); var _propTypes=__webpack_require__(3);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}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;} var emptyObject={}; var thumbDefaultBoxShadow='0px 1px 3px rgba(0,0,0,0.5)'; var thumbFocusedBoxShadow=thumbDefaultBoxShadow+', 0 0 0 10px rgba(0,0,0,0.1)';var Switch=function(_PureComponent){_inherits(Switch,_PureComponent);function Switch(){var _ref;var _temp,_this,_ret;_classCallCheck(this,Switch);for(var _len=arguments.length,args=Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}return _ret=(_temp=(_this=_possibleConstructorReturn(this,(_ref=Switch.__proto__||Object.getPrototypeOf(Switch)).call.apply(_ref,[this].concat(args))),_this),_this. _handleChange=function(event){var onValueChange=_this.props.onValueChange; onValueChange&&onValueChange(event.nativeEvent.target.checked); },_this. _handleFocusState=function(event){ var isFocused=event.nativeEvent.type==='focus'; var boxShadow=isFocused?thumbFocusedBoxShadow:thumbDefaultBoxShadow; _this._thumb.setNativeProps({style:{boxShadow:boxShadow}}); },_this. _setCheckboxRef=function(component){ _this._checkbox=component; },_this. _setThumbRef=function(component){ _this._thumb=component; },_temp),_possibleConstructorReturn(_this,_ret);}_createClass(Switch,[{key:'blur',value:function blur(){_UIManager2.default.blur(this._checkbox);}},{key:'focus',value:function focus(){_UIManager2.default.focus(this._checkbox);}},{key:'render',value:function render(){var _props=this.props,activeThumbColor=_props.activeThumbColor,activeTrackColor=_props.activeTrackColor,disabled=_props.disabled,onValueChange=_props.onValueChange,style=_props.style,thumbColor=_props.thumbColor,trackColor=_props.trackColor,value=_props.value,onTintColor=_props.onTintColor,thumbTintColor=_props.thumbTintColor,tintColor=_props.tintColor,other=_objectWithoutProperties(_props,['activeThumbColor','activeTrackColor','disabled','onValueChange','style','thumbColor','trackColor','value','onTintColor','thumbTintColor','tintColor']);var _StyleSheet$flatten=_StyleSheet2.default.flatten(style),styleHeight=_StyleSheet$flatten.height,styleWidth=_StyleSheet$flatten.width;var height=styleHeight||20;var minWidth=(0,_multiplyStyleLengthValue2.default)(height,2);var width=styleWidth>minWidth?styleWidth:minWidth;var trackBorderRadius=(0,_multiplyStyleLengthValue2.default)(height,0.5);var trackCurrentColor=value?activeTrackColor:trackColor;var thumbCurrentColor=value?activeThumbColor:thumbColor;var thumbHeight=height;var thumbWidth=thumbHeight;var rootStyle=[styles.root,style,{height:height,width:width},disabled&&styles.cursorDefault];var trackStyle=[styles.track,{backgroundColor:trackCurrentColor,borderRadius:trackBorderRadius},disabled&&styles.disabledTrack];var thumbStyle=[styles.thumb,{backgroundColor:thumbCurrentColor,height:thumbHeight,width:thumbWidth},disabled&&styles.disabledThumb];var nativeControl=(0,_createDOMElement2.default)('input',{checked:value,disabled:disabled,onBlur:this._handleFocusState,onChange:this._handleChange,onFocus:this._handleFocusState,ref:this._setCheckboxRef,style:[styles.nativeControl,styles.cursorInherit],type:'checkbox'});return _react2.default.createElement(_View2.default,_extends({},other,{style:rootStyle}),_react2.default.createElement(_View2.default,{style:trackStyle}),_react2.default.createElement(_View2.default,{ref:this._setThumbRef,style:[thumbStyle,value&&styles.thumbOn,{marginLeft:value?(0,_multiplyStyleLengthValue2.default)(thumbWidth,-1):0}]}),nativeControl);}}]);return Switch;}(_react.PureComponent);Switch.displayName='Switch';Switch.defaultProps={activeThumbColor:'#009688',activeTrackColor:'#A3D3CF',disabled:false,style:emptyObject,thumbColor:'#FAFAFA',trackColor:'#939393',value:false}; true?Switch.propTypes=_extends({},_ViewPropTypes2.default,{activeThumbColor:_ColorPropType2.default,activeTrackColor:_ColorPropType2.default,disabled:_propTypes.bool,onValueChange:_propTypes.func,thumbColor:_ColorPropType2.default,trackColor:_ColorPropType2.default,value:_propTypes.bool}):void 0; var styles=_StyleSheet2.default.create({ root:{ cursor:'pointer', userSelect:'none'}, cursorDefault:{ cursor:'default'}, cursorInherit:{ cursor:'inherit'}, track:_extends({}, _StyleSheet2.default.absoluteFillObject,{ height:'70%', margin:'auto', transitionDuration:'0.1s', width:'90%'}), disabledTrack:{ backgroundColor:'#D5D5D5'}, thumb:{ alignSelf:'flex-start', borderRadius:'100%', boxShadow:thumbDefaultBoxShadow, left:'0%', transform:[{translateZ:0}], transitionDuration:'0.1s'}, thumbOn:{ left:'100%'}, disabledThumb:{ backgroundColor:'#BDBDBD'}, nativeControl:_extends({}, _StyleSheet2.default.absoluteFillObject,{ height:'100%', margin:0, opacity:0, padding:0, width:'100%'})}); module.exports=(0,_applyNativeMethods2.default)(Switch); /***/ }), /* 331 */ /***/ (function(module, exports, __webpack_require__) { 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;};var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _applyLayout=__webpack_require__(91);var _applyLayout2=_interopRequireDefault(_applyLayout); var _applyNativeMethods=__webpack_require__(21);var _applyNativeMethods2=_interopRequireDefault(_applyNativeMethods); var _react=__webpack_require__(5); var _NativeMethodsMixin=__webpack_require__(60);var _NativeMethodsMixin2=_interopRequireDefault(_NativeMethodsMixin); var _createDOMElement=__webpack_require__(31);var _createDOMElement2=_interopRequireDefault(_createDOMElement); var _findNodeHandle=__webpack_require__(45);var _findNodeHandle2=_interopRequireDefault(_findNodeHandle); var _StyleSheet=__webpack_require__(8);var _StyleSheet2=_interopRequireDefault(_StyleSheet); var _StyleSheetPropType=__webpack_require__(32);var _StyleSheetPropType2=_interopRequireDefault(_StyleSheetPropType); var _TextInputStylePropTypes=__webpack_require__(143);var _TextInputStylePropTypes2=_interopRequireDefault(_TextInputStylePropTypes); var _TextInputState=__webpack_require__(86);var _TextInputState2=_interopRequireDefault(_TextInputState); var _ViewPropTypes=__webpack_require__(19);var _ViewPropTypes2=_interopRequireDefault(_ViewPropTypes); var _propTypes=__webpack_require__(3);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}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;} var emptyObject={}; var normalizeEventHandler=function normalizeEventHandler(handler){return function(e){ if(handler){ e.nativeEvent.text=e.target.value; return handler(e); } };}; var isSelectionStale=function isSelectionStale(node,selection){ if(node&&selection){var selectionEnd=node.selectionEnd,selectionStart=node.selectionStart;var start=selection.start,end=selection.end; return start!==selectionStart||end!==selectionEnd; } return false; }; var setSelection=function setSelection(node,selection){ try{ if(isSelectionStale(node,selection)){var start=selection.start,end=selection.end; node.setSelectionRange(start,end||start); } }catch(e){} };var TextInput=function(_Component){_inherits(TextInput,_Component);function TextInput(){var _ref;var _temp,_this,_ret;_classCallCheck(this,TextInput);for(var _len=arguments.length,args=Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}return _ret=(_temp=(_this=_possibleConstructorReturn(this,(_ref=TextInput.__proto__||Object.getPrototypeOf(TextInput)).call.apply(_ref,[this].concat(args))),_this),_this. _handleBlur=function(e){var onBlur=_this.props.onBlur; if(onBlur){ onBlur(e); } },_this. _handleChange=function(e){var _this$props= _this.props,onChange=_this$props.onChange,onChangeText=_this$props.onChangeText;var text=e.nativeEvent.text; if(onChange){ onChange(e); } if(onChangeText){ onChangeText(text); } },_this. _handleFocus=function(e){var _this$props2= _this.props,clearTextOnFocus=_this$props2.clearTextOnFocus,onFocus=_this$props2.onFocus,selectTextOnFocus=_this$props2.selectTextOnFocus; var node=_this._node; if(onFocus){ onFocus(e); } if(clearTextOnFocus){ _this.clear(); } if(selectTextOnFocus){ node&&node.select(); } },_this. _handleKeyPress=function(e){var _this$props3= _this.props,blurOnSubmit=_this$props3.blurOnSubmit,multiline=_this$props3.multiline,onKeyPress=_this$props3.onKeyPress,onSubmitEditing=_this$props3.onSubmitEditing; var blurOnSubmitDefault=!multiline; var shouldBlurOnSubmit=blurOnSubmit==null?blurOnSubmitDefault:blurOnSubmit; if(onKeyPress){ onKeyPress(e); } if(!e.isDefaultPrevented()&&e.which===13){ if(onSubmitEditing){ onSubmitEditing(e); } if(shouldBlurOnSubmit){ _this.blur(); } } },_this. _handleSelectionChange=function(e){var _this$props4= _this.props,onSelectionChange=_this$props4.onSelectionChange,_this$props4$selectio=_this$props4.selection,selection=_this$props4$selectio===undefined?emptyObject:_this$props4$selectio; if(onSelectionChange){ try{ var node=e.target; if(isSelectionStale(node,selection)){var selectionStart=node.selectionStart,selectionEnd=node.selectionEnd; e.nativeEvent.selection={ start:selectionStart, end:selectionEnd}; onSelectionChange(e); } }catch(e){} } },_this. _setNode=function(component){ _this._node=(0,_findNodeHandle2.default)(component); },_temp),_possibleConstructorReturn(_this,_ret);}_createClass(TextInput,[{key:'blur',value:function blur(){_TextInputState2.default.blurTextInput(this._node);}},{key:'clear',value:function clear(){this._node.value='';}},{key:'focus',value:function focus(){_TextInputState2.default.focusTextInput(this._node);}},{key:'isFocused',value:function isFocused(){return _TextInputState2.default.currentlyFocusedField()===this._node;}},{key:'setNativeProps',value:function setNativeProps(props){_NativeMethodsMixin2.default.setNativeProps.call(this,props);}},{key:'componentDidMount',value:function componentDidMount(){setSelection(this._node,this.props.selection);}},{key:'componentDidUpdate',value:function componentDidUpdate(){setSelection(this._node,this.props.selection);}},{key:'render',value:function render(){var _props=this.props,autoCorrect=_props.autoCorrect,editable=_props.editable,keyboardType=_props.keyboardType,multiline=_props.multiline,numberOfLines=_props.numberOfLines,secureTextEntry=_props.secureTextEntry,style=_props.style,blurOnSubmit=_props.blurOnSubmit,caretHidden=_props.caretHidden,clearButtonMode=_props.clearButtonMode,clearTextOnFocus=_props.clearTextOnFocus,dataDetectorTypes=_props.dataDetectorTypes,enablesReturnKeyAutomatically=_props.enablesReturnKeyAutomatically,keyboardAppearance=_props.keyboardAppearance,onChangeText=_props.onChangeText,onContentSizeChange=_props.onContentSizeChange,onEndEditing=_props.onEndEditing,onLayout=_props.onLayout,onSelectionChange=_props.onSelectionChange,onSubmitEditing=_props.onSubmitEditing,placeholderTextColor=_props.placeholderTextColor,returnKeyType=_props.returnKeyType,selection=_props.selection,selectionColor=_props.selectionColor,selectTextOnFocus=_props.selectTextOnFocus,textBreakStrategy=_props.textBreakStrategy,underlineColorAndroid=_props.underlineColorAndroid,otherProps=_objectWithoutProperties(_props,['autoCorrect','editable','keyboardType','multiline','numberOfLines','secureTextEntry','style','blurOnSubmit','caretHidden','clearButtonMode','clearTextOnFocus','dataDetectorTypes','enablesReturnKeyAutomatically','keyboardAppearance','onChangeText','onContentSizeChange','onEndEditing','onLayout','onSelectionChange','onSubmitEditing','placeholderTextColor','returnKeyType','selection','selectionColor','selectTextOnFocus','textBreakStrategy','underlineColorAndroid']);var type=void 0;switch(keyboardType){case'email-address':type='email';break;case'number-pad':case'numeric':type='number';break;case'phone-pad':type='tel';break;case'search':case'web-search':type='search';break;case'url':type='url';break;default:type='text';}if(secureTextEntry){type='password';}var component=multiline?'textarea':'input';_extends(otherProps,{autoCorrect:autoCorrect?'on':'off',dir:'auto',onBlur:normalizeEventHandler(this._handleBlur),onChange:normalizeEventHandler(this._handleChange),onFocus:normalizeEventHandler(this._handleFocus),onKeyPress:normalizeEventHandler(this._handleKeyPress),onSelect:normalizeEventHandler(this._handleSelectionChange),readOnly:!editable,ref:this._setNode,style:[styles.initial,style]});if(multiline){otherProps.rows=numberOfLines;}else{otherProps.type=type;}return(0,_createDOMElement2.default)(component,otherProps);}}]);return TextInput;}(_react.Component);TextInput.displayName='TextInput';TextInput.defaultProps={autoCapitalize:'sentences',autoComplete:'on',autoCorrect:true,editable:true,keyboardType:'default',multiline:false,numberOfLines:2,secureTextEntry:false,style:emptyObject};TextInput.State=_TextInputState2.default; true?TextInput.propTypes=_extends({},_ViewPropTypes2.default,{autoCapitalize:(0,_propTypes.oneOf)(['characters','none','sentences','words']),autoComplete:_propTypes.string,autoCorrect:_propTypes.bool,autoFocus:_propTypes.bool,blurOnSubmit:_propTypes.bool,clearTextOnFocus:_propTypes.bool,defaultValue:_propTypes.string,editable:_propTypes.bool,keyboardType:(0,_propTypes.oneOf)(['default','email-address','number-pad','numeric','phone-pad','search','url','web-search']),maxLength:_propTypes.number,multiline:_propTypes.bool,numberOfLines:_propTypes.number,onBlur:_propTypes.func,onChange:_propTypes.func,onChangeText:_propTypes.func,onFocus:_propTypes.func,onKeyPress:_propTypes.func,onSelectionChange:_propTypes.func,onSubmitEditing:_propTypes.func,placeholder:_propTypes.string,placeholderTextColor:_propTypes.string,secureTextEntry:_propTypes.bool,selectTextOnFocus:_propTypes.bool,selection:(0,_propTypes.shape)({start:_propTypes.number.isRequired,end:_propTypes.number}),style:(0,_StyleSheetPropType2.default)(_TextInputStylePropTypes2.default),value:_propTypes.string}):void 0; var styles=_StyleSheet2.default.create({ initial:{ appearance:'none', backgroundColor:'transparent', borderColor:'black', borderRadius:0, borderWidth:0, boxSizing:'border-box', color:'inherit', font:'inherit', padding:0, resize:'none'}}); module.exports=(0,_applyLayout2.default)((0,_applyNativeMethods2.default)(TextInput)); /***/ }), /* 332 */ /***/ (function(module, exports, __webpack_require__) { var PooledClass=__webpack_require__(156); var twoArgumentPooler=PooledClass.twoArgumentPooler; function BoundingDimensions(width,height){ this.width=width; this.height=height; } BoundingDimensions.prototype.destructor=function(){ this.width=null; this.height=null; }; BoundingDimensions.getPooledFromElement=function(element){ return BoundingDimensions.getPooled(element.offsetWidth,element.offsetHeight); }; PooledClass.addPoolingTo(BoundingDimensions,twoArgumentPooler); module.exports=BoundingDimensions; /***/ }), /* 333 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var PooledClass=__webpack_require__(156); var twoArgumentPooler=PooledClass.twoArgumentPooler; function Position(left,top){ this.left=left; this.top=top; } Position.prototype.destructor=function(){ this.left=null; this.top=null; }; PooledClass.addPoolingTo(Position,twoArgumentPooler); module.exports=Position; /***/ }), /* 334 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; 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;}; var _createReactClass=__webpack_require__(49);var _createReactClass2=_interopRequireDefault(_createReactClass); var _propTypes=__webpack_require__(3);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _objectWithoutProperties(obj,keys){var target={};for(var i in obj){if(keys.indexOf(i)>=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}var ColorPropType=__webpack_require__(16);var NativeMethodsMixin=__webpack_require__(60);var React=__webpack_require__(5);var StyleSheet=__webpack_require__(8);var StyleSheetPropType=__webpack_require__(32);var TimerMixin=__webpack_require__(95);var Touchable=__webpack_require__(59);var TouchableWithoutFeedback=__webpack_require__(87);var View=__webpack_require__(12);var ViewStylePropTypes=__webpack_require__(44); var ensureComponentIsNative=__webpack_require__(335); var ensurePositiveDelayProps=__webpack_require__(88); var DEFAULT_PROPS={ activeOpacity:0.85, underlayColor:'black'}; var PRESS_RETENTION_OFFSET={top:20,left:20,right:20,bottom:30}; var TouchableHighlight=(0,_createReactClass2.default)({ propTypes:_extends({}, TouchableWithoutFeedback.propTypes,{ activeOpacity:_propTypes.number, underlayColor:ColorPropType, style:StyleSheetPropType(ViewStylePropTypes), onShowUnderlay:_propTypes.func, onHideUnderlay:_propTypes.func}), mixins:[NativeMethodsMixin,TimerMixin,Touchable.Mixin], getDefaultProps:function getDefaultProps(){return DEFAULT_PROPS;}, computeSyntheticState:function computeSyntheticState(props){var activeOpacity=props.activeOpacity,style=props.style,underlayColor=props.underlayColor; return{ activeProps:{ style:{ opacity:activeOpacity}}, activeUnderlayProps:{ style:{ backgroundColor:underlayColor}}, underlayStyle:[INACTIVE_UNDERLAY_PROPS.style,props.style]}; }, getInitialState:function getInitialState(){ return _extends({}, this.touchableGetInitialState(), this.computeSyntheticState(this.props)); }, componentDidMount:function componentDidMount(){ ensurePositiveDelayProps(this.props); ensureComponentIsNative(this.refs[CHILD_REF]); this._isMounted=true; }, componentDidUpdate:function componentDidUpdate(){ ensureComponentIsNative(this.refs[CHILD_REF]); }, componentWillReceiveProps:function componentWillReceiveProps(nextProps){ ensurePositiveDelayProps(nextProps); if( nextProps.activeOpacity!==this.props.activeOpacity|| nextProps.underlayColor!==this.props.underlayColor|| nextProps.style!==this.props.style) { this.setState(this.computeSyntheticState(nextProps)); } }, componentWillUnmount:function componentWillUnmount(){ this._isMounted=false; }, touchableHandleActivePressIn:function touchableHandleActivePressIn(e){ this.clearTimeout(this._hideTimeout); this._hideTimeout=null; this._showUnderlay(); this.props.onPressIn&&this.props.onPressIn(e); }, touchableHandleActivePressOut:function touchableHandleActivePressOut(e){ if(!this._hideTimeout){ this._hideUnderlay(); } this.props.onPressOut&&this.props.onPressOut(e); }, touchableHandlePress:function touchableHandlePress(e){ this.clearTimeout(this._hideTimeout); this._showUnderlay(); this._hideTimeout=this.setTimeout(this._hideUnderlay,this.props.delayPressOut||100); this.props.onPress&&this.props.onPress(e); }, touchableHandleLongPress:function touchableHandleLongPress(e){ this.props.onLongPress&&this.props.onLongPress(e); }, touchableGetPressRectOffset:function touchableGetPressRectOffset(){ return this.props.pressRetentionOffset||PRESS_RETENTION_OFFSET; }, touchableGetHitSlop:function touchableGetHitSlop(){ return this.props.hitSlop; }, touchableGetHighlightDelayMS:function touchableGetHighlightDelayMS(){ return this.props.delayPressIn; }, touchableGetLongPressDelayMS:function touchableGetLongPressDelayMS(){ return this.props.delayLongPress; }, touchableGetPressOutDelayMS:function touchableGetPressOutDelayMS(){ return this.props.delayPressOut; }, _showUnderlay:function _showUnderlay(){ if(!this._isMounted||!this._hasPressHandler()){ return; } this.refs[UNDERLAY_REF].setNativeProps(this.state.activeUnderlayProps); this.refs[CHILD_REF].setNativeProps(this.state.activeProps); this.props.onShowUnderlay&&this.props.onShowUnderlay(); }, _hideUnderlay:function _hideUnderlay(){ this.clearTimeout(this._hideTimeout); this._hideTimeout=null; if(this._hasPressHandler()&&this.refs[UNDERLAY_REF]){ this.refs[CHILD_REF].setNativeProps(INACTIVE_CHILD_PROPS); this.refs[UNDERLAY_REF].setNativeProps(_extends({}, INACTIVE_UNDERLAY_PROPS,{ style:this.state.underlayStyle})); this.props.onHideUnderlay&&this.props.onHideUnderlay(); } }, _hasPressHandler:function _hasPressHandler(){ return!!(this.props.onPress|| this.props.onPressIn|| this.props.onPressOut|| this.props.onLongPress); }, _onKeyEnter:function _onKeyEnter(e,callback){ var ENTER=13; if((e.type==='keypress'?e.charCode:e.keyCode)===ENTER){ callback&&callback(e); e.stopPropagation(); } }, render:function render(){var _this=this;var _props= this.props,activeOpacity=_props.activeOpacity,onHideUnderlay=_props.onHideUnderlay,onShowUnderlay=_props.onShowUnderlay,underlayColor=_props.underlayColor,delayLongPress=_props.delayLongPress,delayPressIn=_props.delayPressIn,delayPressOut=_props.delayPressOut,onLongPress=_props.onLongPress,onPress=_props.onPress,onPressIn=_props.onPressIn,onPressOut=_props.onPressOut,pressRetentionOffset=_props.pressRetentionOffset,other=_objectWithoutProperties(_props,['activeOpacity','onHideUnderlay','onShowUnderlay','underlayColor','delayLongPress','delayPressIn','delayPressOut','onLongPress','onPress','onPressIn','onPressOut','pressRetentionOffset']); return( React.createElement(View,_extends({}, other,{ accessible:this.props.accessible!==false, onKeyDown:function onKeyDown(e){ _this._onKeyEnter(e,_this.touchableHandleActivePressIn); }, onKeyPress:function onKeyPress(e){ _this._onKeyEnter(e,_this.touchableHandlePress); }, onKeyUp:function onKeyUp(e){ _this._onKeyEnter(e,_this.touchableHandleActivePressOut); }, onStartShouldSetResponder:this.touchableHandleStartShouldSetResponder, onResponderTerminationRequest:this.touchableHandleResponderTerminationRequest, onResponderGrant:this.touchableHandleResponderGrant, onResponderMove:this.touchableHandleResponderMove, onResponderRelease:this.touchableHandleResponderRelease, onResponderTerminate:this.touchableHandleResponderTerminate, ref:UNDERLAY_REF, style:[styles.root,this.props.disabled&&styles.disabled,this.state.underlayStyle]}), React.cloneElement(React.Children.only(this.props.children),{ ref:CHILD_REF}), Touchable.renderDebugView({color:'green',hitSlop:this.props.hitSlop}))); }}); var CHILD_REF='childRef'; var UNDERLAY_REF='underlayRef'; var INACTIVE_CHILD_PROPS={ style:StyleSheet.create({x:{opacity:1.0}}).x}; var INACTIVE_UNDERLAY_PROPS={ style:StyleSheet.create({x:{backgroundColor:'transparent'}}).x}; var styles=StyleSheet.create({ root:{ cursor:'pointer', userSelect:'none'}, disabled:{ cursor:'default'}}); module.exports=TouchableHighlight; /***/ }), /* 335 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var invariant=__webpack_require__(0); var ensureComponentIsNative=function ensureComponentIsNative(component){ invariant( component&&typeof component.setNativeProps==='function', 'Touchable child must either be native or forward setNativeProps to a '+'native component'); }; module.exports=ensureComponentIsNative; /***/ }), /* 336 */ /***/ (function(module, exports, __webpack_require__) { Object.defineProperty(exports,"__esModule",{value:true});var _createDOMElement=__webpack_require__(31);Object.defineProperty(exports,'createDOMElement',{enumerable:true,get:function get(){return _interopRequireDefault(_createDOMElement).default;}});var _findNodeHandle=__webpack_require__(45);Object.defineProperty(exports,'findNodeHandle',{enumerable:true,get:function get(){return _interopRequireDefault(_findNodeHandle). default;}});var _NativeModules=__webpack_require__(340);Object.defineProperty(exports,'NativeModules',{enumerable:true,get:function get(){return _interopRequireDefault(_NativeModules). default;}});var _processColor=__webpack_require__(61);Object.defineProperty(exports,'processColor',{enumerable:true,get:function get(){return _interopRequireDefault(_processColor). default;}});var _reactDom=__webpack_require__(51);Object.defineProperty(exports,'render',{enumerable:true,get:function get(){return _reactDom. render;}});Object.defineProperty(exports,'unmountComponentAtNode',{enumerable:true,get:function get(){return _reactDom.unmountComponentAtNode;}});var _Animated=__webpack_require__(294);Object.defineProperty(exports,'Animated',{enumerable:true,get:function get(){return _interopRequireDefault(_Animated). default;}});var _AppRegistry=__webpack_require__(296);Object.defineProperty(exports,'AppRegistry',{enumerable:true,get:function get(){return _interopRequireDefault(_AppRegistry). default;}});var _AppState=__webpack_require__(298);Object.defineProperty(exports,'AppState',{enumerable:true,get:function get(){return _interopRequireDefault(_AppState). default;}});var _AsyncStorage=__webpack_require__(299);Object.defineProperty(exports,'AsyncStorage',{enumerable:true,get:function get(){return _interopRequireDefault(_AsyncStorage). default;}});var _BackAndroid=__webpack_require__(300);Object.defineProperty(exports,'BackAndroid',{enumerable:true,get:function get(){return _interopRequireDefault(_BackAndroid). default;}});var _Clipboard=__webpack_require__(301);Object.defineProperty(exports,'Clipboard',{enumerable:true,get:function get(){return _interopRequireDefault(_Clipboard). default;}});var _Dimensions=__webpack_require__(81);Object.defineProperty(exports,'Dimensions',{enumerable:true,get:function get(){return _interopRequireDefault(_Dimensions). default;}});var _Easing=__webpack_require__(100);Object.defineProperty(exports,'Easing',{enumerable:true,get:function get(){return _interopRequireDefault(_Easing). default;}});var _I18nManager=__webpack_require__(82);Object.defineProperty(exports,'I18nManager',{enumerable:true,get:function get(){return _interopRequireDefault(_I18nManager). default;}});var _InteractionManager=__webpack_require__(302);Object.defineProperty(exports,'InteractionManager',{enumerable:true,get:function get(){return _interopRequireDefault(_InteractionManager). default;}});var _Linking=__webpack_require__(303);Object.defineProperty(exports,'Linking',{enumerable:true,get:function get(){return _interopRequireDefault(_Linking). default;}});var _NetInfo=__webpack_require__(304);Object.defineProperty(exports,'NetInfo',{enumerable:true,get:function get(){return _interopRequireDefault(_NetInfo). default;}});var _PanResponder=__webpack_require__(305);Object.defineProperty(exports,'PanResponder',{enumerable:true,get:function get(){return _interopRequireDefault(_PanResponder). default;}});var _PixelRatio=__webpack_require__(306);Object.defineProperty(exports,'PixelRatio',{enumerable:true,get:function get(){return _interopRequireDefault(_PixelRatio). default;}});var _Platform=__webpack_require__(137);Object.defineProperty(exports,'Platform',{enumerable:true,get:function get(){return _interopRequireDefault(_Platform). default;}});var _StyleSheet=__webpack_require__(8);Object.defineProperty(exports,'StyleSheet',{enumerable:true,get:function get(){return _interopRequireDefault(_StyleSheet). default;}});var _UIManager=__webpack_require__(30);Object.defineProperty(exports,'UIManager',{enumerable:true,get:function get(){return _interopRequireDefault(_UIManager). default;}});var _Vibration=__webpack_require__(320);Object.defineProperty(exports,'Vibration',{enumerable:true,get:function get(){return _interopRequireDefault(_Vibration). default;}});var _ActivityIndicator=__webpack_require__(321);Object.defineProperty(exports,'ActivityIndicator',{enumerable:true,get:function get(){return _interopRequireDefault(_ActivityIndicator). default;}});var _Button=__webpack_require__(322);Object.defineProperty(exports,'Button',{enumerable:true,get:function get(){return _interopRequireDefault(_Button). default;}});var _Image=__webpack_require__(141);Object.defineProperty(exports,'Image',{enumerable:true,get:function get(){return _interopRequireDefault(_Image). default;}});var _ListView=__webpack_require__(325);Object.defineProperty(exports,'ListView',{enumerable:true,get:function get(){return _interopRequireDefault(_ListView). default;}});var _ProgressBar=__webpack_require__(326);Object.defineProperty(exports,'ProgressBar',{enumerable:true,get:function get(){return _interopRequireDefault(_ProgressBar). default;}});var _ScrollView=__webpack_require__(58);Object.defineProperty(exports,'ScrollView',{enumerable:true,get:function get(){return _interopRequireDefault(_ScrollView). default;}});var _StatusBar=__webpack_require__(329);Object.defineProperty(exports,'StatusBar',{enumerable:true,get:function get(){return _interopRequireDefault(_StatusBar). default;}});var _Switch=__webpack_require__(330);Object.defineProperty(exports,'Switch',{enumerable:true,get:function get(){return _interopRequireDefault(_Switch). default;}});var _Text=__webpack_require__(85);Object.defineProperty(exports,'Text',{enumerable:true,get:function get(){return _interopRequireDefault(_Text). default;}});var _TextInput=__webpack_require__(331);Object.defineProperty(exports,'TextInput',{enumerable:true,get:function get(){return _interopRequireDefault(_TextInput). default;}});var _Touchable=__webpack_require__(59);Object.defineProperty(exports,'Touchable',{enumerable:true,get:function get(){return _interopRequireDefault(_Touchable). default;}});var _TouchableHighlight=__webpack_require__(334);Object.defineProperty(exports,'TouchableHighlight',{enumerable:true,get:function get(){return _interopRequireDefault(_TouchableHighlight). default;}});var _TouchableOpacity=__webpack_require__(144);Object.defineProperty(exports,'TouchableOpacity',{enumerable:true,get:function get(){return _interopRequireDefault(_TouchableOpacity). default;}});var _TouchableWithoutFeedback=__webpack_require__(87);Object.defineProperty(exports,'TouchableWithoutFeedback',{enumerable:true,get:function get(){return _interopRequireDefault(_TouchableWithoutFeedback). default;}});var _View=__webpack_require__(12);Object.defineProperty(exports,'View',{enumerable:true,get:function get(){return _interopRequireDefault(_View). default;}});var _ColorPropType=__webpack_require__(16);Object.defineProperty(exports,'ColorPropType',{enumerable:true,get:function get(){return _interopRequireDefault(_ColorPropType). default;}});var _EdgeInsetsPropType=__webpack_require__(92);Object.defineProperty(exports,'EdgeInsetsPropType',{enumerable:true,get:function get(){return _interopRequireDefault(_EdgeInsetsPropType). default;}});var _PointPropType=__webpack_require__(348);Object.defineProperty(exports,'PointPropType',{enumerable:true,get:function get(){return _interopRequireDefault(_PointPropType). default;}});var _ViewPropTypes=__webpack_require__(19);Object.defineProperty(exports,'ViewPropTypes',{enumerable:true,get:function get(){return _interopRequireDefault(_ViewPropTypes). default;}});function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} /***/ }), /* 337 */ /***/ (function(module, exports, __webpack_require__) { var _propsToAriaRole=__webpack_require__(90);var _propsToAriaRole2=_interopRequireDefault(_propsToAriaRole);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} var roleComponents={ article:'article', banner:'header', button:'button', complementary:'aside', contentinfo:'footer', form:'form', link:'a', list:'ul', listitem:'li', main:'main', navigation:'nav', region:'section'}; var emptyObject={}; var propsToAccessibilityComponent=function propsToAccessibilityComponent(){var props=arguments.length>0&&arguments[0]!==undefined?arguments[0]:emptyObject; var role=(0,_propsToAriaRole2.default)(props); if(role==='heading'){ var level=props['aria-level']||1; return'h'+level; } return roleComponents[role]; }; module.exports=propsToAccessibilityComponent; /***/ }), /* 338 */ /***/ (function(module, exports, __webpack_require__) { var _propsToAriaRole=__webpack_require__(90);var _propsToAriaRole2=_interopRequireDefault(_propsToAriaRole);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} var propsToTabIndex=function propsToTabIndex(props){ var ariaRole=(0,_propsToAriaRole2.default)(props); var focusable= props.disabled!==true&& props.importantForAccessibility!=='no'&& props.importantForAccessibility!=='no-hide-descendants'; var focusableRole=ariaRole==='button'||ariaRole==='link'; if(focusableRole){ if(props.accessible===false||!focusable){ return'-1'; } }else{ if(props.accessible===true&&focusable){ return'0'; } } }; module.exports=propsToTabIndex; /***/ }), /* 339 */ /***/ (function(module, exports) { Object.defineProperty(exports,"__esModule",{value:true});var id=0; var requests={}; var ImageLoader={ abort:function abort(requestId){ var image=requests[""+requestId]; if(image){ image.onerror=image.onload=image=null; delete requests[""+requestId]; } }, getSize:function getSize(uri,success,failure){ var complete=false; var interval=setInterval(callback,16); var requestId=ImageLoader.load(uri,callback,callback); function callback(){ var image=requests[""+requestId]; if(image){var naturalHeight=image.naturalHeight,naturalWidth=image.naturalWidth; if(naturalHeight&&naturalWidth){ success(naturalWidth,naturalHeight); complete=true; } } if(complete){ ImageLoader.abort(requestId); clearInterval(interval); } } }, load:function load(uri,onLoad,onError){ id+=1; var image=new window.Image(); image.onerror=onError; image.onload=onLoad; image.src=uri; requests[""+id]=image; return id; }, prefetch:function prefetch(uri){ return new Promise(function(resolve,reject){ ImageLoader.load(uri,resolve,reject); }); }};exports.default= ImageLoader; /***/ }), /* 340 */ /***/ (function(module, exports) { module.exports={}; /***/ }), /* 341 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var Dimensions=__webpack_require__(81); var findNodeHandle=__webpack_require__(45); var Platform=__webpack_require__(137); var React=__webpack_require__(5); var TextInputState=__webpack_require__(86); var UIManager=__webpack_require__(30); var invariant=__webpack_require__(0); var warning=__webpack_require__(1); var emptyObject={}; var IS_ANIMATING_TOUCH_START_THRESHOLD_MS=16; var ScrollResponderMixin={ scrollResponderMixinGetInitialState:function scrollResponderMixinGetInitialState(){ return{ isTouching:false, lastMomentumScrollBeginTime:0, lastMomentumScrollEndTime:0, observedScrollSinceBecomingResponder:false, becameResponderWhileAnimating:false}; }, scrollResponderHandleScrollShouldSetResponder:function scrollResponderHandleScrollShouldSetResponder(){ return this.state.isTouching; }, scrollResponderHandleStartShouldSetResponder:function scrollResponderHandleStartShouldSetResponder(){ return false; }, scrollResponderHandleStartShouldSetResponderCapture:function scrollResponderHandleStartShouldSetResponderCapture(e){ return this.scrollResponderIsAnimating(); }, scrollResponderHandleResponderReject:function scrollResponderHandleResponderReject(){ warning(false,"ScrollView doesn't take rejection well - scrolls anyway"); }, scrollResponderHandleTerminationRequest:function scrollResponderHandleTerminationRequest(){ return!this.state.observedScrollSinceBecomingResponder; }, scrollResponderHandleTouchEnd:function scrollResponderHandleTouchEnd(e){ var nativeEvent=e.nativeEvent; this.state.isTouching=nativeEvent.touches.length!==0; this.props.onTouchEnd&&this.props.onTouchEnd(e); }, scrollResponderHandleResponderRelease:function scrollResponderHandleResponderRelease(e){ this.props.onResponderRelease&&this.props.onResponderRelease(e); var currentlyFocusedTextInput=TextInputState.currentlyFocusedField(); if( !this.props.keyboardShouldPersistTaps&& currentlyFocusedTextInput!=null&& e.target!==currentlyFocusedTextInput&& !this.state.observedScrollSinceBecomingResponder&& !this.state.becameResponderWhileAnimating) { this.props.onScrollResponderKeyboardDismissed&& this.props.onScrollResponderKeyboardDismissed(e); TextInputState.blurTextInput(currentlyFocusedTextInput); } }, scrollResponderHandleScroll:function scrollResponderHandleScroll(e){ this.state.observedScrollSinceBecomingResponder=true; this.props.onScroll&&this.props.onScroll(e); }, scrollResponderHandleResponderGrant:function scrollResponderHandleResponderGrant(e){ this.state.observedScrollSinceBecomingResponder=false; this.props.onResponderGrant&&this.props.onResponderGrant(e); this.state.becameResponderWhileAnimating=this.scrollResponderIsAnimating(); }, scrollResponderHandleScrollBeginDrag:function scrollResponderHandleScrollBeginDrag(e){ this.props.onScrollBeginDrag&&this.props.onScrollBeginDrag(e); }, scrollResponderHandleScrollEndDrag:function scrollResponderHandleScrollEndDrag(e){ this.props.onScrollEndDrag&&this.props.onScrollEndDrag(e); }, scrollResponderHandleMomentumScrollBegin:function scrollResponderHandleMomentumScrollBegin(e){ this.state.lastMomentumScrollBeginTime=Date.now(); this.props.onMomentumScrollBegin&&this.props.onMomentumScrollBegin(e); }, scrollResponderHandleMomentumScrollEnd:function scrollResponderHandleMomentumScrollEnd(e){ this.state.lastMomentumScrollEndTime=Date.now(); this.props.onMomentumScrollEnd&&this.props.onMomentumScrollEnd(e); }, scrollResponderHandleTouchStart:function scrollResponderHandleTouchStart(e){ this.state.isTouching=true; this.props.onTouchStart&&this.props.onTouchStart(e); }, scrollResponderHandleTouchMove:function scrollResponderHandleTouchMove(e){ this.props.onTouchMove&&this.props.onTouchMove(e); }, scrollResponderIsAnimating:function scrollResponderIsAnimating(){ var now=Date.now(); var timeSinceLastMomentumScrollEnd=now-this.state.lastMomentumScrollEndTime; var isAnimating= timeSinceLastMomentumScrollEnd<IS_ANIMATING_TOUCH_START_THRESHOLD_MS|| this.state.lastMomentumScrollEndTime<this.state.lastMomentumScrollBeginTime; return isAnimating; }, scrollResponderGetScrollableNode:function scrollResponderGetScrollableNode(){ return this.getScrollableNode?this.getScrollableNode():findNodeHandle(this); }, scrollResponderScrollTo:function scrollResponderScrollTo( x, y, animated) { if(typeof x==='number'){ console.warn( '`scrollResponderScrollTo(x, y, animated)` is deprecated. Use `scrollResponderScrollTo({x: 5, y: 5, animated: true})` instead.'); }else{var _ref= x||emptyObject;x=_ref.x;y=_ref.y;animated=_ref.animated; } var node=this.scrollResponderGetScrollableNode(); node.scrollLeft=x||0; node.scrollTop=y||0; }, scrollResponderScrollWithoutAnimationTo:function scrollResponderScrollWithoutAnimationTo(offsetX,offsetY){ console.warn( '`scrollResponderScrollWithoutAnimationTo` is deprecated. Use `scrollResponderScrollTo` instead'); this.scrollResponderScrollTo({x:offsetX,y:offsetY,animated:false}); }, scrollResponderZoomTo:function scrollResponderZoomTo( rect, animated) { if(Platform.OS!=='ios'){ invariant('zoomToRect is not implemented'); } }, scrollResponderScrollNativeHandleToKeyboard:function scrollResponderScrollNativeHandleToKeyboard( nodeHandle, additionalOffset, preventNegativeScrollOffset) { this.additionalScrollOffset=additionalOffset||0; this.preventNegativeScrollOffset=!!preventNegativeScrollOffset; UIManager.measureLayout( nodeHandle, findNodeHandle(this.getInnerViewNode()), this.scrollResponderTextInputFocusError, this.scrollResponderInputMeasureAndScrollToKeyboard); }, scrollResponderInputMeasureAndScrollToKeyboard:function scrollResponderInputMeasureAndScrollToKeyboard( left, top, width, height) { var keyboardScreenY=Dimensions.get('window').height; if(this.keyboardWillOpenTo){ keyboardScreenY=this.keyboardWillOpenTo.endCoordinates.screenY; } var scrollOffsetY=top-keyboardScreenY+height+this.additionalScrollOffset; if(this.preventNegativeScrollOffset){ scrollOffsetY=Math.max(0,scrollOffsetY); } this.scrollResponderScrollTo({x:0,y:scrollOffsetY,animated:true}); this.additionalOffset=0; this.preventNegativeScrollOffset=false; }, scrollResponderTextInputFocusError:function scrollResponderTextInputFocusError(e){ console.error('Error measuring text field: ',e); }, componentWillMount:function componentWillMount(){ this.keyboardWillOpenTo=null; this.additionalScrollOffset=0; }, scrollResponderKeyboardWillShow:function scrollResponderKeyboardWillShow(e){ this.keyboardWillOpenTo=e; this.props.onKeyboardWillShow&&this.props.onKeyboardWillShow(e); }, scrollResponderKeyboardWillHide:function scrollResponderKeyboardWillHide(e){ this.keyboardWillOpenTo=null; this.props.onKeyboardWillHide&&this.props.onKeyboardWillHide(e); }, scrollResponderKeyboardDidShow:function scrollResponderKeyboardDidShow(e){ if(e){ this.keyboardWillOpenTo=e; } this.props.onKeyboardDidShow&&this.props.onKeyboardDidShow(e); }, scrollResponderKeyboardDidHide:function scrollResponderKeyboardDidHide(e){ this.keyboardWillOpenTo=null; this.props.onKeyboardDidHide&&this.props.onKeyboardDidHide(e); }}; var ScrollResponder={ Mixin:ScrollResponderMixin}; module.exports=ScrollResponder; /***/ }), /* 342 */ /***/ (function(module, exports, __webpack_require__) { var _TextInputState=__webpack_require__(86);var _TextInputState2=_interopRequireDefault(_TextInputState);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} var dismissKeyboard=function dismissKeyboard(){ _TextInputState2.default.blurTextInput(_TextInputState2.default.currentlyFocusedField()); }; module.exports=dismissKeyboard; /***/ }), /* 343 */ /***/ (function(module, exports) { function flattenArray(array){ function flattenDown(array,result){ for(var i=0;i<array.length;i++){ var value=array[i]; if(Array.isArray(value)){ flattenDown(value,result); }else if(value!=null&&value!==false){ result.push(value); } } return result; } return flattenDown(array,[]); } module.exports=flattenArray; /***/ }), /* 344 */ /***/ (function(module, exports, __webpack_require__) { var _EventPluginHub=__webpack_require__(27);var _EventPluginHub2=_interopRequireDefault(_EventPluginHub); var _normalizeNativeEvent=__webpack_require__(149);var _normalizeNativeEvent2=_interopRequireDefault(_normalizeNativeEvent); var _ResponderEventPlugin=__webpack_require__(267);var _ResponderEventPlugin2=_interopRequireDefault(_ResponderEventPlugin); var _ResponderTouchHistoryStore=__webpack_require__(127);var _ResponderTouchHistoryStore2=_interopRequireDefault(_ResponderTouchHistoryStore);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} var topMouseDown='topMouseDown'; var topMouseMove='topMouseMove'; var topMouseUp='topMouseUp'; var topScroll='topScroll'; var topSelectionChange='topSelectionChange'; var topTouchCancel='topTouchCancel'; var topTouchEnd='topTouchEnd'; var topTouchMove='topTouchMove'; var topTouchStart='topTouchStart'; var endDependencies=[topTouchCancel,topTouchEnd,topMouseUp]; var moveDependencies=[topTouchMove,topMouseMove]; var startDependencies=[topTouchStart,topMouseDown]; _ResponderEventPlugin2.default.eventTypes.responderMove.dependencies=moveDependencies; _ResponderEventPlugin2.default.eventTypes.responderEnd.dependencies=endDependencies; _ResponderEventPlugin2.default.eventTypes.responderStart.dependencies=startDependencies; _ResponderEventPlugin2.default.eventTypes.responderRelease.dependencies=endDependencies; _ResponderEventPlugin2.default.eventTypes.responderTerminationRequest.dependencies=[]; _ResponderEventPlugin2.default.eventTypes.responderGrant.dependencies=[]; _ResponderEventPlugin2.default.eventTypes.responderReject.dependencies=[]; _ResponderEventPlugin2.default.eventTypes.responderTerminate.dependencies=[]; _ResponderEventPlugin2.default.eventTypes.moveShouldSetResponder.dependencies=moveDependencies; _ResponderEventPlugin2.default.eventTypes.selectionChangeShouldSetResponder.dependencies=[ topSelectionChange]; _ResponderEventPlugin2.default.eventTypes.scrollShouldSetResponder.dependencies=[topScroll]; _ResponderEventPlugin2.default.eventTypes.startShouldSetResponder.dependencies=startDependencies; var originalRecordTouchTrack=_ResponderTouchHistoryStore2.default.recordTouchTrack; _ResponderTouchHistoryStore2.default.recordTouchTrack=function(topLevelType,nativeEvent){ if(topLevelType===topMouseMove&&!_ResponderTouchHistoryStore2.default.touchHistory.touchBank.length){ return; } var normalizedEvent=(0,_normalizeNativeEvent2.default)(nativeEvent); originalRecordTouchTrack.call(_ResponderTouchHistoryStore2.default,topLevelType,normalizedEvent); }; _EventPluginHub2.default.injection.injectEventPluginsByName({ ResponderEventPlugin:_ResponderEventPlugin2.default}); /***/ }), /* 345 */ /***/ (function(module, exports, __webpack_require__) { Object.defineProperty(exports,"__esModule",{value:true}); var _ExecutionEnvironment=__webpack_require__(4); var modality=function modality(){ if(!_ExecutionEnvironment.canUseDOM){ return; } var styleElement=void 0; var hadKeyboardEvent=false; var keyboardThrottleTimeoutID=0; var proto=window.Element.prototype; var matches= proto.matches|| proto.mozMatchesSelector|| proto.msMatchesSelector|| proto.webkitMatchesSelector; var keyboardModalityWhitelist=[ 'input:not([type])', 'input[type=text]', 'input[type=search]', 'input[type=url]', 'input[type=tel]', 'input[type=email]', 'input[type=password]', 'input[type=number]', 'input[type=date]', 'input[type=month]', 'input[type=week]', 'input[type=time]', 'input[type=datetime]', 'input[type=datetime-local]', 'textarea', '[role=textbox]']. join(','); var initialize=function initialize(){ var id='react-native-modality'; styleElement=document.getElementById(id); if(!styleElement){ var style='<style id="'+id+'">:focus { outline: none; }</style>'; document.head.insertAdjacentHTML('afterbegin',style); styleElement=document.getElementById(id); } }; var focusTriggersKeyboardModality=function focusTriggersKeyboardModality(el){ if(matches){ return matches.call(el,keyboardModalityWhitelist)&&matches.call(el,':not([readonly])'); }else{ return false; } }; var addFocusRing=function addFocusRing(){ if(styleElement){ styleElement.disabled=true; } }; var removeFocusRing=function removeFocusRing(){ if(styleElement){ styleElement.disabled=false; } }; var handleKeyDown=function handleKeyDown(e){ hadKeyboardEvent=true; if(keyboardThrottleTimeoutID!==0){ clearTimeout(keyboardThrottleTimeoutID); } keyboardThrottleTimeoutID=setTimeout(function(){ hadKeyboardEvent=false; keyboardThrottleTimeoutID=0; },100); }; var handleFocus=function handleFocus(e){ if(hadKeyboardEvent||focusTriggersKeyboardModality(e.target)){ addFocusRing(); } }; var handleBlur=function handleBlur(){ if(!hadKeyboardEvent){ removeFocusRing(); } }; if(document.body&&document.body.addEventListener){ initialize(); document.body.addEventListener('keydown',handleKeyDown,true); document.body.addEventListener('focus',handleFocus,true); document.body.addEventListener('blur',handleBlur,true); } };exports.default= modality; /***/ }), /* 346 */ /***/ (function(module, exports, __webpack_require__) { Object.defineProperty(exports,"__esModule",{value:true});exports.cancelIdleCallback=undefined; var _ExecutionEnvironment=__webpack_require__(4); var _requestIdleCallback=function _requestIdleCallback(cb){ return setTimeout(function(){ var start=Date.now(); cb({ didTimeout:false, timeRemaining:function timeRemaining(){ return Math.max(0,50-(Date.now()-start)); }}); },1); }; var _cancelIdleCallback=function _cancelIdleCallback(id){ clearTimeout(id); }; var isSupported=_ExecutionEnvironment.canUseDOM&&typeof window.requestIdleCallback!=='undefined'; var requestIdleCallback=isSupported?window.requestIdleCallback:_requestIdleCallback; var cancelIdleCallback=isSupported?window.cancelIdleCallback:_cancelIdleCallback;exports.default= requestIdleCallback;exports. cancelIdleCallback=cancelIdleCallback; /***/ }), /* 347 */ /***/ (function(module, exports, __webpack_require__) { var _propTypes=__webpack_require__(3); var AnimationPropTypes={ animationDelay:_propTypes.string, animationDirection:(0,_propTypes.oneOf)(['alternate','alternate-reverse','normal','reverse']), animationDuration:_propTypes.string, animationFillMode:(0,_propTypes.oneOf)(['none','forwards','backwards','both']), animationIterationCount:(0,_propTypes.oneOfType)([_propTypes.number,(0,_propTypes.oneOf)(['infinite'])]), animationName:_propTypes.string, animationPlayState:(0,_propTypes.oneOf)(['paused','running']), animationTimingFunction:_propTypes.string}; module.exports=AnimationPropTypes; /***/ }), /* 348 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _propTypes=__webpack_require__(3); var PointPropType=__webpack_require__(93)({ x:_propTypes.number, y:_propTypes.number}); module.exports=PointPropType; /***/ }), /* 349 */ /***/ (function(module, exports) { var TouchHistoryMath={ centroidDimension:function centroidDimension(touchHistory,touchesChangedAfter,isXAxis,ofCurrent){ var touchBank=touchHistory.touchBank; var total=0; var count=0; var oneTouchData=touchHistory.numberActiveTouches===1? touchHistory.touchBank[touchHistory.indexOfSingleActiveTouch]: null; if(oneTouchData!==null){ if(oneTouchData.touchActive&&oneTouchData.currentTimeStamp>touchesChangedAfter){ total+=ofCurrent&&isXAxis? oneTouchData.currentPageX: ofCurrent&&!isXAxis? oneTouchData.currentPageY: !ofCurrent&&isXAxis?oneTouchData.previousPageX:oneTouchData.previousPageY; count=1; } }else{ for(var i=0;i<touchBank.length;i++){ var touchTrack=touchBank[i]; if( touchTrack!==null&& touchTrack!==undefined&& touchTrack.touchActive&& touchTrack.currentTimeStamp>=touchesChangedAfter) { var toAdd; if(ofCurrent&&isXAxis){ toAdd=touchTrack.currentPageX; }else if(ofCurrent&&!isXAxis){ toAdd=touchTrack.currentPageY; }else if(!ofCurrent&&isXAxis){ toAdd=touchTrack.previousPageX; }else{ toAdd=touchTrack.previousPageY; } total+=toAdd; count++; } } } return count>0?total/count:TouchHistoryMath.noCentroid; }, currentCentroidXOfTouchesChangedAfter:function currentCentroidXOfTouchesChangedAfter(touchHistory,touchesChangedAfter){ return TouchHistoryMath.centroidDimension( touchHistory, touchesChangedAfter, true, true); }, currentCentroidYOfTouchesChangedAfter:function currentCentroidYOfTouchesChangedAfter(touchHistory,touchesChangedAfter){ return TouchHistoryMath.centroidDimension( touchHistory, touchesChangedAfter, false, true); }, previousCentroidXOfTouchesChangedAfter:function previousCentroidXOfTouchesChangedAfter(touchHistory,touchesChangedAfter){ return TouchHistoryMath.centroidDimension( touchHistory, touchesChangedAfter, true, false); }, previousCentroidYOfTouchesChangedAfter:function previousCentroidYOfTouchesChangedAfter(touchHistory,touchesChangedAfter){ return TouchHistoryMath.centroidDimension( touchHistory, touchesChangedAfter, false, false); }, currentCentroidX:function currentCentroidX(touchHistory){ return TouchHistoryMath.centroidDimension( touchHistory, 0, true, true); }, currentCentroidY:function currentCentroidY(touchHistory){ return TouchHistoryMath.centroidDimension( touchHistory, 0, false, true); }, noCentroid:-1}; module.exports=TouchHistoryMath; /***/ }), /* 350 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _unitlessNumbers=__webpack_require__(150);var _unitlessNumbers2=_interopRequireDefault(_unitlessNumbers);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} if(true){ var camelizeStyleName=__webpack_require__(106); var warning=__webpack_require__(1); var badVendoredStyleNamePattern=/^(?:webkit|moz|o)[A-Z]/; var badStyleValueWithSemicolonPattern=/;\s*$/; var warnedStyleNames={}; var warnedStyleValues={}; var warnedForNaNValue=false; var warnHyphenatedStyleName=function warnHyphenatedStyleName(name,owner){ if(warnedStyleNames.hasOwnProperty(name)&&warnedStyleNames[name]){ return; } warnedStyleNames[name]=true; true? warning( false, 'Unsupported style property %s. Did you mean %s?%s', name, camelizeStyleName(name), checkRenderMessage(owner)): void 0; }; var warnBadVendoredStyleName=function warnBadVendoredStyleName(name,owner){ if(warnedStyleNames.hasOwnProperty(name)&&warnedStyleNames[name]){ return; } warnedStyleNames[name]=true; true? warning( false, 'Unsupported vendor-prefixed style property %s. Did you mean %s?%s', name, name.charAt(0).toUpperCase()+name.slice(1), checkRenderMessage(owner)): void 0; }; var warnStyleValueWithSemicolon=function warnStyleValueWithSemicolon(name,value,owner){ if(warnedStyleValues.hasOwnProperty(value)&&warnedStyleValues[value]){ return; } warnedStyleValues[value]=true; true? warning( false, "Style property values shouldn't contain a semicolon.%s "+'Try "%s: %s" instead.', checkRenderMessage(owner), name, value.replace(badStyleValueWithSemicolonPattern,'')): void 0; }; var warnStyleValueIsNaN=function warnStyleValueIsNaN(name,value,owner){ if(warnedForNaNValue){ return; } warnedForNaNValue=true; true? warning( false, '`NaN` is an invalid value for the `%s` css style property.%s', name, checkRenderMessage(owner)): void 0; }; var checkRenderMessage=function checkRenderMessage(owner){ if(owner){ var name=owner.getName(); if(name){ return' Check the render method of `'+name+'`.'; } } return''; }; var warnValidStyle=function warnValidStyle(name,value,component){ var owner; if(component){ owner=component._currentElement._owner; } if(name.indexOf('-')>-1){ warnHyphenatedStyleName(name,owner); }else if(badVendoredStyleNamePattern.test(name)){ warnBadVendoredStyleName(name,owner); }else if(badStyleValueWithSemicolonPattern.test(value)){ warnStyleValueWithSemicolon(name,value,owner); } if(typeof value==='number'&&isNaN(value)){ warnStyleValueIsNaN(name,value,owner); } }; } var styleWarnings={}; function dangerousStyleValue(name,value,component){ var isEmpty=value==null||typeof value==='boolean'||value===''; if(isEmpty){ return''; } var isNonNumeric=isNaN(value); if( isNonNumeric||value===0||_unitlessNumbers2.default.hasOwnProperty(name)&&_unitlessNumbers2.default[name]) { return''+value; } if(typeof value==='string'){ if(true){ var warning=__webpack_require__(1); if(component&&value!=='0'){ var owner=component._currentElement._owner; var ownerName=owner?owner.getName():null; if(ownerName&&!styleWarnings[ownerName]){ styleWarnings[ownerName]={}; } var warned=false; if(ownerName){ var warnings=styleWarnings[ownerName]; warned=warnings[name]; if(!warned){ warnings[name]=true; } } if(!warned){ true? warning( false, 'a `%s` tag (owner: `%s`) was passed a numeric string value '+ 'for CSS property `%s` (value: `%s`) which will be treated '+ 'as a unitless number in a future version of React.', component._currentElement.type, ownerName||'unknown', name, value): void 0; } } } value=value.trim(); } return value+'px'; } var setValueForStyles=function setValueForStyles(node,styles,component){ var style=node.style; for(var styleName in styles){ if(!styles.hasOwnProperty(styleName)){ continue; } if(true){ warnValidStyle(styleName,styles[styleName],component); } var styleValue=dangerousStyleValue(styleName,styles[styleName],component); if(styleName==='float'||styleName==='cssFloat'){ styleName='cssFloat'; } if(styleValue){ style[styleName]=styleValue; }else{ style[styleName]=''; } } }; module.exports=setValueForStyles; /***/ }), /* 351 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ /** * Escape and wrap key so it is safe to use as a reactid * * @param {string} key to be escaped. * @return {string} the escaped key. */ function escape(key) { var escapeRegex = /[=:]/g; var escaperLookup = { '=': '=0', ':': '=2' }; var escapedString = ('' + key).replace(escapeRegex, function (match) { return escaperLookup[match]; }); return '$' + escapedString; } /** * Unescape and unwrap key for human-readable display * * @param {string} key to unescape. * @return {string} the unescaped key. */ function unescape(key) { var unescapeRegex = /(=0|=2)/g; var unescaperLookup = { '=0': '=', '=2': ':' }; var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1); return ('' + keySubstring).replace(unescapeRegex, function (match) { return unescaperLookup[match]; }); } var KeyEscapeUtils = { escape: escape, unescape: unescape }; module.exports = KeyEscapeUtils; /***/ }), /* 352 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ var _prodInvariant = __webpack_require__(22); var invariant = __webpack_require__(0); /** * Static poolers. Several custom versions for each potential number of * arguments. A completely generic pooler is easy to implement, but would * require accessing the `arguments` object. In each of these, `this` refers to * the Class itself, not an instance. If any others are needed, simply add them * here, or in their own files. */ var oneArgumentPooler = function (copyFieldsFrom) { var Klass = this; if (Klass.instancePool.length) { var instance = Klass.instancePool.pop(); Klass.call(instance, copyFieldsFrom); return instance; } else { return new Klass(copyFieldsFrom); } }; var twoArgumentPooler = function (a1, a2) { var Klass = this; if (Klass.instancePool.length) { var instance = Klass.instancePool.pop(); Klass.call(instance, a1, a2); return instance; } else { return new Klass(a1, a2); } }; var threeArgumentPooler = function (a1, a2, a3) { var Klass = this; if (Klass.instancePool.length) { var instance = Klass.instancePool.pop(); Klass.call(instance, a1, a2, a3); return instance; } else { return new Klass(a1, a2, a3); } }; var fourArgumentPooler = function (a1, a2, a3, a4) { var Klass = this; if (Klass.instancePool.length) { var instance = Klass.instancePool.pop(); Klass.call(instance, a1, a2, a3, a4); return instance; } else { return new Klass(a1, a2, a3, a4); } }; var standardReleaser = function (instance) { var Klass = this; !(instance instanceof Klass) ? true ? invariant(false, 'Trying to release an instance into a pool of a different type.') : _prodInvariant('25') : void 0; instance.destructor(); if (Klass.instancePool.length < Klass.poolSize) { Klass.instancePool.push(instance); } }; var DEFAULT_POOL_SIZE = 10; var DEFAULT_POOLER = oneArgumentPooler; /** * Augments `CopyConstructor` to be a poolable class, augmenting only the class * itself (statically) not adding any prototypical fields. Any CopyConstructor * you give this may have a `poolSize` property, and will look for a * prototypical `destructor` on instances. * * @param {Function} CopyConstructor Constructor that can be used to reset. * @param {Function} pooler Customizable pooler. */ var addPoolingTo = function (CopyConstructor, pooler) { // Casting as any so that flow ignores the actual implementation and trusts // it to match the type we declared var NewKlass = CopyConstructor; NewKlass.instancePool = []; NewKlass.getPooled = pooler || DEFAULT_POOLER; if (!NewKlass.poolSize) { NewKlass.poolSize = DEFAULT_POOL_SIZE; } NewKlass.release = standardReleaser; return NewKlass; }; var PooledClass = { addPoolingTo: addPoolingTo, oneArgumentPooler: oneArgumentPooler, twoArgumentPooler: twoArgumentPooler, threeArgumentPooler: threeArgumentPooler, fourArgumentPooler: fourArgumentPooler }; module.exports = PooledClass; /***/ }), /* 353 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var PooledClass = __webpack_require__(352); var ReactElement = __webpack_require__(25); var emptyFunction = __webpack_require__(10); var traverseAllChildren = __webpack_require__(362); var twoArgumentPooler = PooledClass.twoArgumentPooler; var fourArgumentPooler = PooledClass.fourArgumentPooler; var userProvidedKeyEscapeRegex = /\/+/g; function escapeUserProvidedKey(text) { return ('' + text).replace(userProvidedKeyEscapeRegex, '$&/'); } /** * PooledClass representing the bookkeeping associated with performing a child * traversal. Allows avoiding binding callbacks. * * @constructor ForEachBookKeeping * @param {!function} forEachFunction Function to perform traversal with. * @param {?*} forEachContext Context to perform context with. */ function ForEachBookKeeping(forEachFunction, forEachContext) { this.func = forEachFunction; this.context = forEachContext; this.count = 0; } ForEachBookKeeping.prototype.destructor = function () { this.func = null; this.context = null; this.count = 0; }; PooledClass.addPoolingTo(ForEachBookKeeping, twoArgumentPooler); function forEachSingleChild(bookKeeping, child, name) { var func = bookKeeping.func, context = bookKeeping.context; func.call(context, child, bookKeeping.count++); } /** * Iterates through children that are typically specified as `props.children`. * * See https://facebook.github.io/react/docs/react-api.html#react.children.foreach * * The provided forEachFunc(child, index) will be called for each * leaf child. * * @param {?*} children Children tree container. * @param {function(*, int)} forEachFunc * @param {*} forEachContext Context for forEachContext. */ function forEachChildren(children, forEachFunc, forEachContext) { if (children == null) { return children; } var traverseContext = ForEachBookKeeping.getPooled(forEachFunc, forEachContext); traverseAllChildren(children, forEachSingleChild, traverseContext); ForEachBookKeeping.release(traverseContext); } /** * PooledClass representing the bookkeeping associated with performing a child * mapping. Allows avoiding binding callbacks. * * @constructor MapBookKeeping * @param {!*} mapResult Object containing the ordered map of results. * @param {!function} mapFunction Function to perform mapping with. * @param {?*} mapContext Context to perform mapping with. */ function MapBookKeeping(mapResult, keyPrefix, mapFunction, mapContext) { this.result = mapResult; this.keyPrefix = keyPrefix; this.func = mapFunction; this.context = mapContext; this.count = 0; } MapBookKeeping.prototype.destructor = function () { this.result = null; this.keyPrefix = null; this.func = null; this.context = null; this.count = 0; }; PooledClass.addPoolingTo(MapBookKeeping, fourArgumentPooler); function mapSingleChildIntoContext(bookKeeping, child, childKey) { var result = bookKeeping.result, keyPrefix = bookKeeping.keyPrefix, func = bookKeeping.func, context = bookKeeping.context; var mappedChild = func.call(context, child, bookKeeping.count++); if (Array.isArray(mappedChild)) { mapIntoWithKeyPrefixInternal(mappedChild, result, childKey, emptyFunction.thatReturnsArgument); } else if (mappedChild != null) { if (ReactElement.isValidElement(mappedChild)) { mappedChild = ReactElement.cloneAndReplaceKey(mappedChild, // Keep both the (mapped) and old keys if they differ, just as // traverseAllChildren used to do for objects as children keyPrefix + (mappedChild.key && (!child || child.key !== mappedChild.key) ? escapeUserProvidedKey(mappedChild.key) + '/' : '') + childKey); } result.push(mappedChild); } } function mapIntoWithKeyPrefixInternal(children, array, prefix, func, context) { var escapedPrefix = ''; if (prefix != null) { escapedPrefix = escapeUserProvidedKey(prefix) + '/'; } var traverseContext = MapBookKeeping.getPooled(array, escapedPrefix, func, context); traverseAllChildren(children, mapSingleChildIntoContext, traverseContext); MapBookKeeping.release(traverseContext); } /** * Maps children that are typically specified as `props.children`. * * See https://facebook.github.io/react/docs/react-api.html#react.children.map * * The provided mapFunction(child, key, index) will be called for each * leaf child. * * @param {?*} children Children tree container. * @param {function(*, int)} func The map function. * @param {*} context Context for mapFunction. * @return {object} Object containing the ordered map of results. */ function mapChildren(children, func, context) { if (children == null) { return children; } var result = []; mapIntoWithKeyPrefixInternal(children, result, null, func, context); return result; } function forEachSingleChildDummy(traverseContext, child, name) { return null; } /** * Count the number of children that are typically specified as * `props.children`. * * See https://facebook.github.io/react/docs/react-api.html#react.children.count * * @param {?*} children Children tree container. * @return {number} The number of children. */ function countChildren(children, context) { return traverseAllChildren(children, forEachSingleChildDummy, null); } /** * Flatten a children object (typically specified as `props.children`) and * return an array with appropriately re-keyed children. * * See https://facebook.github.io/react/docs/react-api.html#react.children.toarray */ function toArray(children) { var result = []; mapIntoWithKeyPrefixInternal(children, result, null, emptyFunction.thatReturnsArgument); return result; } var ReactChildren = { forEach: forEachChildren, map: mapChildren, mapIntoWithKeyPrefixInternal: mapIntoWithKeyPrefixInternal, count: countChildren, toArray: toArray }; module.exports = ReactChildren; /***/ }), /* 354 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _assign = __webpack_require__(6), _prodInvariant = __webpack_require__(22); var ReactBaseClasses = __webpack_require__(158); var ReactElement = __webpack_require__(25); var ReactNoopUpdateQueue = __webpack_require__(163); var emptyObject = __webpack_require__(38); var invariant = __webpack_require__(0); var warning = __webpack_require__(1); var ReactComponent = ReactBaseClasses.Component; var MIXINS_KEY = 'mixins'; // Helper function to allow the creation of anonymous functions which do not // have .name set to the name of the variable being assigned to. function identity(fn) { return fn; } /** * Policies that describe methods in `ReactClassInterface`. */ /** * Composite components are higher-level components that compose other composite * or host components. * * To create a new type of `ReactClass`, pass a specification of * your new class to `React.createClass`. The only requirement of your class * specification is that you implement a `render` method. * * var MyComponent = React.createClass({ * render: function() { * return <div>Hello World</div>; * } * }); * * The class specification supports a specific protocol of methods that have * special meaning (e.g. `render`). See `ReactClassInterface` for * more the comprehensive protocol. Any other properties and methods in the * class specification will be available on the prototype. * * @interface ReactClassInterface * @internal */ var ReactClassInterface = { /** * An array of Mixin objects to include when defining your component. * * @type {array} * @optional */ mixins: 'DEFINE_MANY', /** * An object containing properties and methods that should be defined on * the component's constructor instead of its prototype (static methods). * * @type {object} * @optional */ statics: 'DEFINE_MANY', /** * Definition of prop types for this component. * * @type {object} * @optional */ propTypes: 'DEFINE_MANY', /** * Definition of context types for this component. * * @type {object} * @optional */ contextTypes: 'DEFINE_MANY', /** * Definition of context types this component sets for its children. * * @type {object} * @optional */ childContextTypes: 'DEFINE_MANY', // ==== Definition methods ==== /** * Invoked when the component is mounted. Values in the mapping will be set on * `this.props` if that prop is not specified (i.e. using an `in` check). * * This method is invoked before `getInitialState` and therefore cannot rely * on `this.state` or use `this.setState`. * * @return {object} * @optional */ getDefaultProps: 'DEFINE_MANY_MERGED', /** * Invoked once before the component is mounted. The return value will be used * as the initial value of `this.state`. * * getInitialState: function() { * return { * isOn: false, * fooBaz: new BazFoo() * } * } * * @return {object} * @optional */ getInitialState: 'DEFINE_MANY_MERGED', /** * @return {object} * @optional */ getChildContext: 'DEFINE_MANY_MERGED', /** * Uses props from `this.props` and state from `this.state` to render the * structure of the component. * * No guarantees are made about when or how often this method is invoked, so * it must not have side effects. * * render: function() { * var name = this.props.name; * return <div>Hello, {name}!</div>; * } * * @return {ReactComponent} * @required */ render: 'DEFINE_ONCE', // ==== Delegate methods ==== /** * Invoked when the component is initially created and about to be mounted. * This may have side effects, but any external subscriptions or data created * by this method must be cleaned up in `componentWillUnmount`. * * @optional */ componentWillMount: 'DEFINE_MANY', /** * Invoked when the component has been mounted and has a DOM representation. * However, there is no guarantee that the DOM node is in the document. * * Use this as an opportunity to operate on the DOM when the component has * been mounted (initialized and rendered) for the first time. * * @param {DOMElement} rootNode DOM element representing the component. * @optional */ componentDidMount: 'DEFINE_MANY', /** * Invoked before the component receives new props. * * Use this as an opportunity to react to a prop transition by updating the * state using `this.setState`. Current props are accessed via `this.props`. * * componentWillReceiveProps: function(nextProps, nextContext) { * this.setState({ * likesIncreasing: nextProps.likeCount > this.props.likeCount * }); * } * * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop * transition may cause a state change, but the opposite is not true. If you * need it, you are probably looking for `componentWillUpdate`. * * @param {object} nextProps * @optional */ componentWillReceiveProps: 'DEFINE_MANY', /** * Invoked while deciding if the component should be updated as a result of * receiving new props, state and/or context. * * Use this as an opportunity to `return false` when you're certain that the * transition to the new props/state/context will not require a component * update. * * shouldComponentUpdate: function(nextProps, nextState, nextContext) { * return !equal(nextProps, this.props) || * !equal(nextState, this.state) || * !equal(nextContext, this.context); * } * * @param {object} nextProps * @param {?object} nextState * @param {?object} nextContext * @return {boolean} True if the component should update. * @optional */ shouldComponentUpdate: 'DEFINE_ONCE', /** * Invoked when the component is about to update due to a transition from * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState` * and `nextContext`. * * Use this as an opportunity to perform preparation before an update occurs. * * NOTE: You **cannot** use `this.setState()` in this method. * * @param {object} nextProps * @param {?object} nextState * @param {?object} nextContext * @param {ReactReconcileTransaction} transaction * @optional */ componentWillUpdate: 'DEFINE_MANY', /** * Invoked when the component's DOM representation has been updated. * * Use this as an opportunity to operate on the DOM when the component has * been updated. * * @param {object} prevProps * @param {?object} prevState * @param {?object} prevContext * @param {DOMElement} rootNode DOM element representing the component. * @optional */ componentDidUpdate: 'DEFINE_MANY', /** * Invoked when the component is about to be removed from its parent and have * its DOM representation destroyed. * * Use this as an opportunity to deallocate any external resources. * * NOTE: There is no `componentDidUnmount` since your component will have been * destroyed by that point. * * @optional */ componentWillUnmount: 'DEFINE_MANY', // ==== Advanced methods ==== /** * Updates the component's currently mounted DOM representation. * * By default, this implements React's rendering and reconciliation algorithm. * Sophisticated clients may wish to override this. * * @param {ReactReconcileTransaction} transaction * @internal * @overridable */ updateComponent: 'OVERRIDE_BASE' }; /** * Mapping from class specification keys to special processing functions. * * Although these are declared like instance properties in the specification * when defining classes using `React.createClass`, they are actually static * and are accessible on the constructor instead of the prototype. Despite * being static, they must be defined outside of the "statics" key under * which all other static methods are defined. */ var RESERVED_SPEC_KEYS = { displayName: function (Constructor, displayName) { Constructor.displayName = displayName; }, mixins: function (Constructor, mixins) { if (mixins) { for (var i = 0; i < mixins.length; i++) { mixSpecIntoComponent(Constructor, mixins[i]); } } }, childContextTypes: function (Constructor, childContextTypes) { if (true) { validateTypeDef(Constructor, childContextTypes, 'child context'); } Constructor.childContextTypes = _assign({}, Constructor.childContextTypes, childContextTypes); }, contextTypes: function (Constructor, contextTypes) { if (true) { validateTypeDef(Constructor, contextTypes, 'context'); } Constructor.contextTypes = _assign({}, Constructor.contextTypes, contextTypes); }, /** * Special case getDefaultProps which should move into statics but requires * automatic merging. */ getDefaultProps: function (Constructor, getDefaultProps) { if (Constructor.getDefaultProps) { Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, getDefaultProps); } else { Constructor.getDefaultProps = getDefaultProps; } }, propTypes: function (Constructor, propTypes) { if (true) { validateTypeDef(Constructor, propTypes, 'prop'); } Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes); }, statics: function (Constructor, statics) { mixStaticSpecIntoComponent(Constructor, statics); }, autobind: function () {} }; function validateTypeDef(Constructor, typeDef, location) { for (var propName in typeDef) { if (typeDef.hasOwnProperty(propName)) { // use a warning instead of an invariant so components // don't show up in prod but only in __DEV__ true ? warning(typeof typeDef[propName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', Constructor.displayName || 'ReactClass', location, propName) : void 0; } } } function validateMethodOverride(isAlreadyDefined, name) { var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null; // Disallow overriding of base class methods unless explicitly allowed. if (ReactClassMixin.hasOwnProperty(name)) { !(specPolicy === 'OVERRIDE_BASE') ? true ? invariant(false, 'ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.', name) : _prodInvariant('73', name) : void 0; } // Disallow defining methods more than once unless explicitly allowed. if (isAlreadyDefined) { !(specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED') ? true ? invariant(false, 'ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.', name) : _prodInvariant('74', name) : void 0; } } /** * Mixin helper which handles policy validation and reserved * specification keys when building React classes. */ function mixSpecIntoComponent(Constructor, spec) { if (!spec) { if (true) { var typeofSpec = typeof spec; var isMixinValid = typeofSpec === 'object' && spec !== null; true ? warning(isMixinValid, "%s: You're attempting to include a mixin that is either null " + 'or not an object. Check the mixins included by the component, ' + 'as well as any mixins they include themselves. ' + 'Expected object but got %s.', Constructor.displayName || 'ReactClass', spec === null ? null : typeofSpec) : void 0; } return; } !(typeof spec !== 'function') ? true ? invariant(false, 'ReactClass: You\'re attempting to use a component class or function as a mixin. Instead, just use a regular object.') : _prodInvariant('75') : void 0; !!ReactElement.isValidElement(spec) ? true ? invariant(false, 'ReactClass: You\'re attempting to use a component as a mixin. Instead, just use a regular object.') : _prodInvariant('76') : void 0; var proto = Constructor.prototype; var autoBindPairs = proto.__reactAutoBindPairs; // By handling mixins before any other properties, we ensure the same // chaining order is applied to methods with DEFINE_MANY policy, whether // mixins are listed before or after these methods in the spec. if (spec.hasOwnProperty(MIXINS_KEY)) { RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins); } for (var name in spec) { if (!spec.hasOwnProperty(name)) { continue; } if (name === MIXINS_KEY) { // We have already handled mixins in a special case above. continue; } var property = spec[name]; var isAlreadyDefined = proto.hasOwnProperty(name); validateMethodOverride(isAlreadyDefined, name); if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) { RESERVED_SPEC_KEYS[name](Constructor, property); } else { // Setup methods on prototype: // The following member methods should not be automatically bound: // 1. Expected ReactClass methods (in the "interface"). // 2. Overridden methods (that were mixed in). var isReactClassMethod = ReactClassInterface.hasOwnProperty(name); var isFunction = typeof property === 'function'; var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false; if (shouldAutoBind) { autoBindPairs.push(name, property); proto[name] = property; } else { if (isAlreadyDefined) { var specPolicy = ReactClassInterface[name]; // These cases should already be caught by validateMethodOverride. !(isReactClassMethod && (specPolicy === 'DEFINE_MANY_MERGED' || specPolicy === 'DEFINE_MANY')) ? true ? invariant(false, 'ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.', specPolicy, name) : _prodInvariant('77', specPolicy, name) : void 0; // For methods which are defined more than once, call the existing // methods before calling the new property, merging if appropriate. if (specPolicy === 'DEFINE_MANY_MERGED') { proto[name] = createMergedResultFunction(proto[name], property); } else if (specPolicy === 'DEFINE_MANY') { proto[name] = createChainedFunction(proto[name], property); } } else { proto[name] = property; if (true) { // Add verbose displayName to the function, which helps when looking // at profiling tools. if (typeof property === 'function' && spec.displayName) { proto[name].displayName = spec.displayName + '_' + name; } } } } } } } function mixStaticSpecIntoComponent(Constructor, statics) { if (!statics) { return; } for (var name in statics) { var property = statics[name]; if (!statics.hasOwnProperty(name)) { continue; } var isReserved = name in RESERVED_SPEC_KEYS; !!isReserved ? true ? invariant(false, 'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.', name) : _prodInvariant('78', name) : void 0; var isInherited = name in Constructor; !!isInherited ? true ? invariant(false, 'ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.', name) : _prodInvariant('79', name) : void 0; Constructor[name] = property; } } /** * Merge two objects, but throw if both contain the same key. * * @param {object} one The first object, which is mutated. * @param {object} two The second object * @return {object} one after it has been mutated to contain everything in two. */ function mergeIntoWithNoDuplicateKeys(one, two) { !(one && two && typeof one === 'object' && typeof two === 'object') ? true ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.') : _prodInvariant('80') : void 0; for (var key in two) { if (two.hasOwnProperty(key)) { !(one[key] === undefined) ? true ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.', key) : _prodInvariant('81', key) : void 0; one[key] = two[key]; } } return one; } /** * Creates a function that invokes two functions and merges their return values. * * @param {function} one Function to invoke first. * @param {function} two Function to invoke second. * @return {function} Function that invokes the two argument functions. * @private */ function createMergedResultFunction(one, two) { return function mergedResult() { var a = one.apply(this, arguments); var b = two.apply(this, arguments); if (a == null) { return b; } else if (b == null) { return a; } var c = {}; mergeIntoWithNoDuplicateKeys(c, a); mergeIntoWithNoDuplicateKeys(c, b); return c; }; } /** * Creates a function that invokes two functions and ignores their return vales. * * @param {function} one Function to invoke first. * @param {function} two Function to invoke second. * @return {function} Function that invokes the two argument functions. * @private */ function createChainedFunction(one, two) { return function chainedFunction() { one.apply(this, arguments); two.apply(this, arguments); }; } /** * Binds a method to the component. * * @param {object} component Component whose method is going to be bound. * @param {function} method Method to be bound. * @return {function} The bound method. */ function bindAutoBindMethod(component, method) { var boundMethod = method.bind(component); if (true) { boundMethod.__reactBoundContext = component; boundMethod.__reactBoundMethod = method; boundMethod.__reactBoundArguments = null; var componentName = component.constructor.displayName; var _bind = boundMethod.bind; boundMethod.bind = function (newThis) { for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } // User is trying to bind() an autobound method; we effectively will // ignore the value of "this" that the user is trying to use, so // let's warn. if (newThis !== component && newThis !== null) { true ? warning(false, 'bind(): React component methods may only be bound to the ' + 'component instance.\n\nSee %s', componentName) : void 0; } else if (!args.length) { true ? warning(false, '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.\n\nSee %s', componentName) : void 0; return boundMethod; } var reboundMethod = _bind.apply(boundMethod, arguments); reboundMethod.__reactBoundContext = component; reboundMethod.__reactBoundMethod = method; reboundMethod.__reactBoundArguments = args; return reboundMethod; }; } return boundMethod; } /** * Binds all auto-bound methods in a component. * * @param {object} component Component whose method is going to be bound. */ function bindAutoBindMethods(component) { var pairs = component.__reactAutoBindPairs; for (var i = 0; i < pairs.length; i += 2) { var autoBindKey = pairs[i]; var method = pairs[i + 1]; component[autoBindKey] = bindAutoBindMethod(component, method); } } /** * Add more to the ReactClass base class. These are all legacy features and * therefore not already part of the modern ReactComponent. */ var ReactClassMixin = { /** * TODO: This will be deprecated because state should always keep a consistent * type signature and the only use case for this, is to avoid that. */ replaceState: function (newState, callback) { this.updater.enqueueReplaceState(this, newState, callback, 'replaceState'); }, /** * Checks whether or not this composite component is mounted. * @return {boolean} True if mounted, false otherwise. * @protected * @final */ isMounted: function () { return this.updater.isMounted(this); } }; var ReactClassComponent = function () {}; _assign(ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin); /** * Module for creating composite components. * * @class ReactClass */ var ReactClass = { /** * Creates a composite component class given a class specification. * See https://facebook.github.io/react/docs/react-api.html#createclass * * @param {object} spec Class specification (which must define `render`). * @return {function} Component constructor function. * @public */ createClass: function (spec) { // To keep our warnings more understandable, we'll use a little hack here to // ensure that Constructor.name !== 'Constructor'. This makes sure we don't // unnecessarily identify a class without displayName as 'Constructor'. var Constructor = identity(function (props, context, updater) { // This constructor gets overridden by mocks. The argument is used // by mocks to assert on what gets mounted. if (true) { true ? warning(this instanceof Constructor, 'Something is calling a React component directly. Use a factory or ' + 'JSX instead. See: https://fb.me/react-legacyfactory') : void 0; } // Wire up auto-binding if (this.__reactAutoBindPairs.length) { bindAutoBindMethods(this); } this.props = props; this.context = context; this.refs = emptyObject; this.updater = updater || ReactNoopUpdateQueue; this.state = null; // ReactClasses doesn't have constructors. Instead, they use the // getInitialState and componentWillMount methods for initialization. var initialState = this.getInitialState ? this.getInitialState() : null; if (true) { // We allow auto-mocks to proceed as if they're returning null. if (initialState === undefined && this.getInitialState._isMockFunction) { // This is probably bad practice. Consider warning here and // deprecating this convenience. initialState = null; } } !(typeof initialState === 'object' && !Array.isArray(initialState)) ? true ? invariant(false, '%s.getInitialState(): must return an object or null', Constructor.displayName || 'ReactCompositeComponent') : _prodInvariant('82', Constructor.displayName || 'ReactCompositeComponent') : void 0; this.state = initialState; }); Constructor.prototype = new ReactClassComponent(); Constructor.prototype.constructor = Constructor; Constructor.prototype.__reactAutoBindPairs = []; mixSpecIntoComponent(Constructor, spec); // Initialize the defaultProps property after all mixins have been merged. if (Constructor.getDefaultProps) { Constructor.defaultProps = Constructor.getDefaultProps(); } if (true) { // This is a tag to indicate that the use of these method names is ok, // since it's used with createClass. If it's not, then it's likely a // mistake so we'll warn you to use the static property, property // initializer or constructor respectively. if (Constructor.getDefaultProps) { Constructor.getDefaultProps.isReactClassApproved = {}; } if (Constructor.prototype.getInitialState) { Constructor.prototype.getInitialState.isReactClassApproved = {}; } } !Constructor.prototype.render ? true ? invariant(false, 'createClass(...): Class specification must implement a `render` method.') : _prodInvariant('83') : void 0; if (true) { true ? warning(!Constructor.prototype.componentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', spec.displayName || 'A component') : void 0; true ? warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component') : void 0; } // Reduce time spent doing lookups by setting these on the prototype. for (var methodName in ReactClassInterface) { if (!Constructor.prototype[methodName]) { Constructor.prototype[methodName] = null; } } return Constructor; } }; module.exports = ReactClass; /***/ }), /* 355 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var ReactElement = __webpack_require__(25); /** * Create a factory that creates HTML tag elements. * * @private */ var createDOMFactory = ReactElement.createFactory; if (true) { var ReactElementValidator = __webpack_require__(161); createDOMFactory = ReactElementValidator.createFactory; } /** * Creates a mapping from supported HTML tags to `ReactDOMComponent` classes. * This is also accessible via `React.DOM`. * * @public */ var ReactDOMFactories = { a: createDOMFactory('a'), abbr: createDOMFactory('abbr'), address: createDOMFactory('address'), area: createDOMFactory('area'), article: createDOMFactory('article'), aside: createDOMFactory('aside'), audio: createDOMFactory('audio'), b: createDOMFactory('b'), base: createDOMFactory('base'), bdi: createDOMFactory('bdi'), bdo: createDOMFactory('bdo'), big: createDOMFactory('big'), blockquote: createDOMFactory('blockquote'), body: createDOMFactory('body'), br: createDOMFactory('br'), button: createDOMFactory('button'), canvas: createDOMFactory('canvas'), caption: createDOMFactory('caption'), cite: createDOMFactory('cite'), code: createDOMFactory('code'), col: createDOMFactory('col'), colgroup: createDOMFactory('colgroup'), data: createDOMFactory('data'), datalist: createDOMFactory('datalist'), dd: createDOMFactory('dd'), del: createDOMFactory('del'), details: createDOMFactory('details'), dfn: createDOMFactory('dfn'), dialog: createDOMFactory('dialog'), div: createDOMFactory('div'), dl: createDOMFactory('dl'), dt: createDOMFactory('dt'), em: createDOMFactory('em'), embed: createDOMFactory('embed'), fieldset: createDOMFactory('fieldset'), figcaption: createDOMFactory('figcaption'), figure: createDOMFactory('figure'), footer: createDOMFactory('footer'), form: createDOMFactory('form'), h1: createDOMFactory('h1'), h2: createDOMFactory('h2'), h3: createDOMFactory('h3'), h4: createDOMFactory('h4'), h5: createDOMFactory('h5'), h6: createDOMFactory('h6'), head: createDOMFactory('head'), header: createDOMFactory('header'), hgroup: createDOMFactory('hgroup'), hr: createDOMFactory('hr'), html: createDOMFactory('html'), i: createDOMFactory('i'), iframe: createDOMFactory('iframe'), img: createDOMFactory('img'), input: createDOMFactory('input'), ins: createDOMFactory('ins'), kbd: createDOMFactory('kbd'), keygen: createDOMFactory('keygen'), label: createDOMFactory('label'), legend: createDOMFactory('legend'), li: createDOMFactory('li'), link: createDOMFactory('link'), main: createDOMFactory('main'), map: createDOMFactory('map'), mark: createDOMFactory('mark'), menu: createDOMFactory('menu'), menuitem: createDOMFactory('menuitem'), meta: createDOMFactory('meta'), meter: createDOMFactory('meter'), nav: createDOMFactory('nav'), noscript: createDOMFactory('noscript'), object: createDOMFactory('object'), ol: createDOMFactory('ol'), optgroup: createDOMFactory('optgroup'), option: createDOMFactory('option'), output: createDOMFactory('output'), p: createDOMFactory('p'), param: createDOMFactory('param'), picture: createDOMFactory('picture'), pre: createDOMFactory('pre'), progress: createDOMFactory('progress'), q: createDOMFactory('q'), rp: createDOMFactory('rp'), rt: createDOMFactory('rt'), ruby: createDOMFactory('ruby'), s: createDOMFactory('s'), samp: createDOMFactory('samp'), script: createDOMFactory('script'), section: createDOMFactory('section'), select: createDOMFactory('select'), small: createDOMFactory('small'), source: createDOMFactory('source'), span: createDOMFactory('span'), strong: createDOMFactory('strong'), style: createDOMFactory('style'), sub: createDOMFactory('sub'), summary: createDOMFactory('summary'), sup: createDOMFactory('sup'), table: createDOMFactory('table'), tbody: createDOMFactory('tbody'), td: createDOMFactory('td'), textarea: createDOMFactory('textarea'), tfoot: createDOMFactory('tfoot'), th: createDOMFactory('th'), thead: createDOMFactory('thead'), time: createDOMFactory('time'), title: createDOMFactory('title'), tr: createDOMFactory('tr'), track: createDOMFactory('track'), u: createDOMFactory('u'), ul: createDOMFactory('ul'), 'var': createDOMFactory('var'), video: createDOMFactory('video'), wbr: createDOMFactory('wbr'), // SVG circle: createDOMFactory('circle'), clipPath: createDOMFactory('clipPath'), defs: createDOMFactory('defs'), ellipse: createDOMFactory('ellipse'), g: createDOMFactory('g'), image: createDOMFactory('image'), line: createDOMFactory('line'), linearGradient: createDOMFactory('linearGradient'), mask: createDOMFactory('mask'), path: createDOMFactory('path'), pattern: createDOMFactory('pattern'), polygon: createDOMFactory('polygon'), polyline: createDOMFactory('polyline'), radialGradient: createDOMFactory('radialGradient'), rect: createDOMFactory('rect'), stop: createDOMFactory('stop'), svg: createDOMFactory('svg'), text: createDOMFactory('text'), tspan: createDOMFactory('tspan') }; module.exports = ReactDOMFactories; /***/ }), /* 356 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _prodInvariant = __webpack_require__(22); var ReactElement = __webpack_require__(25); var ReactPropTypesSecret = __webpack_require__(164); var emptyFunction = __webpack_require__(10); var getIteratorFn = __webpack_require__(98); var invariant = __webpack_require__(0); var warning = __webpack_require__(1); /** * Collection of methods that allow declaration and validation of props that are * supplied to React components. Example usage: * * var Props = require('ReactPropTypes'); * var MyArticle = React.createClass({ * propTypes: { * // An optional string prop named "description". * description: Props.string, * * // A required enum prop named "category". * category: Props.oneOf(['News','Photos']).isRequired, * * // A prop named "dialog" that requires an instance of Dialog. * dialog: Props.instanceOf(Dialog).isRequired * }, * render: function() { ... } * }); * * A more formal specification of how these methods are used: * * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) * decl := ReactPropTypes.{type}(.isRequired)? * * Each and every declaration produces a function with the same signature. This * allows the creation of custom validation functions. For example: * * var MyLink = React.createClass({ * propTypes: { * // An optional string or URI prop named "href". * href: function(props, propName, componentName) { * var propValue = props[propName]; * if (propValue != null && typeof propValue !== 'string' && * !(propValue instanceof URI)) { * return new Error( * 'Expected a string or an URI for ' + propName + ' in ' + * componentName * ); * } * } * }, * render: function() {...} * }); * * @internal */ var ANONYMOUS = '<<anonymous>>'; var ReactPropTypes; if (true) { // Keep in sync with production version below ReactPropTypes = { array: createPrimitiveTypeChecker('array'), bool: createPrimitiveTypeChecker('boolean'), func: createPrimitiveTypeChecker('function'), number: createPrimitiveTypeChecker('number'), object: createPrimitiveTypeChecker('object'), string: createPrimitiveTypeChecker('string'), symbol: createPrimitiveTypeChecker('symbol'), any: createAnyTypeChecker(), arrayOf: createArrayOfTypeChecker, element: createElementTypeChecker(), instanceOf: createInstanceTypeChecker, node: createNodeChecker(), objectOf: createObjectOfTypeChecker, oneOf: createEnumTypeChecker, oneOfType: createUnionTypeChecker, shape: createShapeTypeChecker }; } else { var productionTypeChecker = function () { !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'React.PropTypes type checking code is stripped in production.') : _prodInvariant('144') : void 0; }; productionTypeChecker.isRequired = productionTypeChecker; var getProductionTypeChecker = function () { return productionTypeChecker; }; // Keep in sync with development version above ReactPropTypes = { array: productionTypeChecker, bool: productionTypeChecker, func: productionTypeChecker, number: productionTypeChecker, object: productionTypeChecker, string: productionTypeChecker, symbol: productionTypeChecker, any: productionTypeChecker, arrayOf: getProductionTypeChecker, element: productionTypeChecker, instanceOf: getProductionTypeChecker, node: productionTypeChecker, objectOf: getProductionTypeChecker, oneOf: getProductionTypeChecker, oneOfType: getProductionTypeChecker, shape: getProductionTypeChecker }; } /** * inlined Object.is polyfill to avoid requiring consumers ship their own * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is */ /*eslint-disable no-self-compare*/ function is(x, y) { // SameValue algorithm if (x === y) { // Steps 1-5, 7-10 // Steps 6.b-6.e: +0 != -0 return x !== 0 || 1 / x === 1 / y; } else { // Step 6.a: NaN == NaN return x !== x && y !== y; } } /*eslint-enable no-self-compare*/ /** * We use an Error-like object for backward compatibility as people may call * PropTypes directly and inspect their output. However, we don't use real * Errors anymore. We don't inspect their stack anyway, and creating them * is prohibitively expensive if they are created too often, such as what * happens in oneOfType() for any type before the one that matched. */ function PropTypeError(message) { this.message = message; this.stack = ''; } // Make `instanceof Error` still work for returned errors. PropTypeError.prototype = Error.prototype; function createChainableTypeChecker(validate) { if (true) { var manualPropTypeCallCache = {}; } function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { componentName = componentName || ANONYMOUS; propFullName = propFullName || propName; if (true) { if (secret !== ReactPropTypesSecret && typeof console !== 'undefined') { var cacheKey = componentName + ':' + propName; if (!manualPropTypeCallCache[cacheKey]) { true ? warning(false, 'You are manually calling a React.PropTypes validation ' + 'function for the `%s` prop on `%s`. This is deprecated ' + 'and will not work in production with the next major version. ' + 'You may be seeing this warning due to a third-party PropTypes ' + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.', propFullName, componentName) : void 0; manualPropTypeCallCache[cacheKey] = true; } } } if (props[propName] == null) { if (isRequired) { if (props[propName] === null) { return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); } return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); } return null; } else { return validate(props, propName, componentName, location, propFullName); } } var chainedCheckType = checkType.bind(null, false); chainedCheckType.isRequired = checkType.bind(null, true); return chainedCheckType; } function createPrimitiveTypeChecker(expectedType) { function validate(props, propName, componentName, location, propFullName, secret) { var propValue = props[propName]; var propType = getPropType(propValue); if (propType !== expectedType) { // `propValue` being instance of, say, date/regexp, pass the 'object' // check, but we can offer a more precise error message here rather than // 'of type `object`'. var preciseType = getPreciseType(propValue); return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); } return null; } return createChainableTypeChecker(validate); } function createAnyTypeChecker() { return createChainableTypeChecker(emptyFunction.thatReturnsNull); } function createArrayOfTypeChecker(typeChecker) { function validate(props, propName, componentName, location, propFullName) { if (typeof typeChecker !== 'function') { return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); } var propValue = props[propName]; if (!Array.isArray(propValue)) { var propType = getPropType(propValue); return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); } for (var i = 0; i < propValue.length; i++) { var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); if (error instanceof Error) { return error; } } return null; } return createChainableTypeChecker(validate); } function createElementTypeChecker() { function validate(props, propName, componentName, location, propFullName) { var propValue = props[propName]; if (!ReactElement.isValidElement(propValue)) { var propType = getPropType(propValue); return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); } return null; } return createChainableTypeChecker(validate); } function createInstanceTypeChecker(expectedClass) { function validate(props, propName, componentName, location, propFullName) { if (!(props[propName] instanceof expectedClass)) { var expectedClassName = expectedClass.name || ANONYMOUS; var actualClassName = getClassName(props[propName]); return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); } return null; } return createChainableTypeChecker(validate); } function createEnumTypeChecker(expectedValues) { if (!Array.isArray(expectedValues)) { true ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0; return emptyFunction.thatReturnsNull; } function validate(props, propName, componentName, location, propFullName) { var propValue = props[propName]; for (var i = 0; i < expectedValues.length; i++) { if (is(propValue, expectedValues[i])) { return null; } } var valuesString = JSON.stringify(expectedValues); return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); } return createChainableTypeChecker(validate); } function createObjectOfTypeChecker(typeChecker) { function validate(props, propName, componentName, location, propFullName) { if (typeof typeChecker !== 'function') { return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); } var propValue = props[propName]; var propType = getPropType(propValue); if (propType !== 'object') { return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); } for (var key in propValue) { if (propValue.hasOwnProperty(key)) { var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); if (error instanceof Error) { return error; } } } return null; } return createChainableTypeChecker(validate); } function createUnionTypeChecker(arrayOfTypeCheckers) { if (!Array.isArray(arrayOfTypeCheckers)) { true ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; return emptyFunction.thatReturnsNull; } function validate(props, propName, componentName, location, propFullName) { for (var i = 0; i < arrayOfTypeCheckers.length; i++) { var checker = arrayOfTypeCheckers[i]; if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) { return null; } } return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); } return createChainableTypeChecker(validate); } function createNodeChecker() { function validate(props, propName, componentName, location, propFullName) { if (!isNode(props[propName])) { return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); } return null; } return createChainableTypeChecker(validate); } function createShapeTypeChecker(shapeTypes) { function validate(props, propName, componentName, location, propFullName) { var propValue = props[propName]; var propType = getPropType(propValue); if (propType !== 'object') { return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); } for (var key in shapeTypes) { var checker = shapeTypes[key]; if (!checker) { continue; } var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); if (error) { return error; } } return null; } return createChainableTypeChecker(validate); } function isNode(propValue) { switch (typeof propValue) { case 'number': case 'string': case 'undefined': return true; case 'boolean': return !propValue; case 'object': if (Array.isArray(propValue)) { return propValue.every(isNode); } if (propValue === null || ReactElement.isValidElement(propValue)) { return true; } var iteratorFn = getIteratorFn(propValue); if (iteratorFn) { var iterator = iteratorFn.call(propValue); var step; if (iteratorFn !== propValue.entries) { while (!(step = iterator.next()).done) { if (!isNode(step.value)) { return false; } } } else { // Iterator will provide entry [k,v] tuples rather than values. while (!(step = iterator.next()).done) { var entry = step.value; if (entry) { if (!isNode(entry[1])) { return false; } } } } } else { return false; } return true; default: return false; } } function isSymbol(propType, propValue) { // Native Symbol. if (propType === 'symbol') { return true; } // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' if (propValue['@@toStringTag'] === 'Symbol') { return true; } // Fallback for non-spec compliant Symbols which are polyfilled. if (typeof Symbol === 'function' && propValue instanceof Symbol) { return true; } return false; } // Equivalent of `typeof` but with special handling for array and regexp. function getPropType(propValue) { var propType = typeof propValue; if (Array.isArray(propValue)) { return 'array'; } if (propValue instanceof RegExp) { // Old webkits (at least until Android 4.0) return 'function' rather than // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ // passes PropTypes.object. return 'object'; } if (isSymbol(propType, propValue)) { return 'symbol'; } return propType; } // This handles more types than `getPropType`. Only used for error messages. // See `createPrimitiveTypeChecker`. function getPreciseType(propValue) { var propType = getPropType(propValue); if (propType === 'object') { if (propValue instanceof Date) { return 'date'; } else if (propValue instanceof RegExp) { return 'regexp'; } } return propType; } // Returns class name of the object, if any. function getClassName(propValue) { if (!propValue.constructor || !propValue.constructor.name) { return ANONYMOUS; } return propValue.constructor.name; } module.exports = ReactPropTypes; /***/ }), /* 357 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ module.exports = { IndeterminateComponent: 0, // Before we know whether it is functional or class FunctionalComponent: 1, ClassComponent: 2, HostRoot: 3, // Root of a host tree. Could be nested inside another node. HostPortal: 4, // A subtree. Could be an entry point to a different renderer. HostComponent: 5, HostText: 6, CoroutineComponent: 7, CoroutineHandlerPhase: 8, YieldComponent: 9, Fragment: 10 }; /***/ }), /* 358 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ module.exports = '16.0.0-alpha.6'; /***/ }), /* 359 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var checkPropTypes = __webpack_require__(165); var _require = __webpack_require__(159), getStackAddendum = _require.getStackAddendum; function checkReactTypeSpec(typeSpecs, values, location, componentName) { checkPropTypes(typeSpecs, values, location, componentName, getStackAddendum); } module.exports = checkReactTypeSpec; /***/ }), /* 360 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * */ var nextDebugID = 1; function getNextDebugID() { return nextDebugID++; } module.exports = getNextDebugID; /***/ }), /* 361 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _prodInvariant = __webpack_require__(22); var ReactElement = __webpack_require__(25); var invariant = __webpack_require__(0); /** * Returns the first child in a collection of children and verifies that there * is only one child in the collection. * * See https://facebook.github.io/react/docs/react-api.html#react.children.only * * The current implementation of this function assumes that a single child gets * passed without a wrapper, but the purpose of this helper function is to * abstract away the particular structure of children. * * @param {?object} children Child collection structure. * @return {ReactElement} The first and only `ReactElement` contained in the * structure. */ function onlyChild(children) { !ReactElement.isValidElement(children) ? true ? invariant(false, 'React.Children.only expected to receive a single React element child.') : _prodInvariant('143') : void 0; return children; } module.exports = onlyChild; /***/ }), /* 362 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright 2013-present, 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 this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ var _prodInvariant = __webpack_require__(22); var ReactCurrentOwner = __webpack_require__(17); var REACT_ELEMENT_TYPE = __webpack_require__(160); var getIteratorFn = __webpack_require__(98); var invariant = __webpack_require__(0); var KeyEscapeUtils = __webpack_require__(351); var warning = __webpack_require__(1); var SEPARATOR = '.'; var SUBSEPARATOR = ':'; /** * This is inlined from ReactElement since this file is shared between * isomorphic and renderers. We could extract this to a * */ /** * TODO: Test that a single child and an array with one item have the same key * pattern. */ var didWarnAboutMaps = false; /** * Generate a key string that identifies a component within a set. * * @param {*} component A component that could contain a manual key. * @param {number} index Index that is used if a manual key is not provided. * @return {string} */ function getComponentKey(component, index) { // Do some typechecking here since we call this blindly. We want to ensure // that we don't block potential future ES APIs. if (component && typeof component === 'object' && component.key != null) { // Explicit key return KeyEscapeUtils.escape(component.key); } // Implicit key determined by the index in the set return index.toString(36); } /** * @param {?*} children Children tree container. * @param {!string} nameSoFar Name of the key path so far. * @param {!function} callback Callback to invoke with each child found. * @param {?*} traverseContext Used to pass information throughout the traversal * process. * @return {!number} The number of children in this subtree. */ function traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) { var type = typeof children; if (type === 'undefined' || type === 'boolean') { // All of the above are perceived as null. children = null; } if (children === null || type === 'string' || type === 'number' || // The following is inlined from ReactElement. This means we can optimize // some checks. React Fiber also inlines this logic for similar purposes. type === 'object' && children.$$typeof === REACT_ELEMENT_TYPE) { callback(traverseContext, children, // If it's the only child, treat the name as if it was wrapped in an array // so that it's consistent if the number of children grows. nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar); return 1; } var child; var nextName; var subtreeCount = 0; // Count of children found in the current subtree. var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR; if (Array.isArray(children)) { for (var i = 0; i < children.length; i++) { child = children[i]; nextName = nextNamePrefix + getComponentKey(child, i); subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); } } else { var iteratorFn = getIteratorFn(children); if (iteratorFn) { if (true) { // Warn about using Maps as children if (iteratorFn === children.entries) { var mapsAsChildrenAddendum = ''; if (ReactCurrentOwner.current) { var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName(); if (mapsAsChildrenOwnerName) { mapsAsChildrenAddendum = '\n\nCheck the render method of `' + mapsAsChildrenOwnerName + '`.'; } } true ? warning(didWarnAboutMaps, 'Using Maps as children is unsupported and will likely yield ' + 'unexpected results. Convert it to a sequence/iterable of keyed ' + 'ReactElements instead.%s', mapsAsChildrenAddendum) : void 0; didWarnAboutMaps = true; } } var iterator = iteratorFn.call(children); var step; var ii = 0; while (!(step = iterator.next()).done) { child = step.value; nextName = nextNamePrefix + getComponentKey(child, ii++); subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); } } else if (type === 'object') { var addendum = ''; if (true) { addendum = ' If you meant to render a collection of children, use an array ' + 'instead.'; if (ReactCurrentOwner.current) { var name = ReactCurrentOwner.current.getName(); if (name) { addendum += '\n\nCheck the render method of `' + name + '`.'; } } } var childrenString = '' + children; true ? true ? invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : _prodInvariant('31', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : void 0; } } return subtreeCount; } /** * Traverses children that are typically specified as `props.children`, but * might also be specified through attributes: * * - `traverseAllChildren(this.props.children, ...)` * - `traverseAllChildren(this.props.leftPanelChildren, ...)` * * The `traverseContext` is an optional argument that is passed through the * entire traversal. It can be used to store accumulations or anything else that * the callback might find relevant. * * @param {?*} children Children tree object. * @param {!function} callback To invoke upon traversing each child. * @param {?*} traverseContext Context for traversal. * @return {!number} The number of children in this subtree. */ function traverseAllChildren(children, callback, traverseContext) { if (children == null) { return 0; } return traverseAllChildrenImpl(children, '', callback, traverseContext); } module.exports = traverseAllChildren; /***/ }), /* 363 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__; /***/ }) /******/ ]);