react-popper
Advanced tools
Comparing version 1.3.1 to 1.3.2
(function (global, factory) { | ||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react'), require('popper.js')) : | ||
typeof define === 'function' && define.amd ? define(['exports', 'react', 'popper.js'], factory) : | ||
(factory((global.ReactPopper = {}),global.React,global.Popper)); | ||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react'), require('popper.js')) : | ||
typeof define === 'function' && define.amd ? define(['exports', 'react', 'popper.js'], factory) : | ||
(factory((global.ReactPopper = {}),global.React,global.Popper)); | ||
}(this, (function (exports,React,PopperJS) { 'use strict'; | ||
var React__default = 'default' in React ? React['default'] : React; | ||
PopperJS = PopperJS && PopperJS.hasOwnProperty('default') ? PopperJS['default'] : PopperJS; | ||
var React__default = 'default' in React ? React['default'] : React; | ||
PopperJS = PopperJS && PopperJS.hasOwnProperty('default') ? PopperJS['default'] : PopperJS; | ||
var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; | ||
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; | ||
} | ||
function unwrapExports (x) { | ||
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; | ||
} | ||
return obj; | ||
} | ||
function createCommonjsModule(fn, module) { | ||
return module = { exports: {} }, fn(module, module.exports), module.exports; | ||
} | ||
function _extends() { | ||
_extends = Object.assign || function (target) { | ||
for (var i = 1; i < arguments.length; i++) { | ||
var source = arguments[i]; | ||
/** | ||
* Copyright (c) 2013-present, Facebook, Inc. | ||
* | ||
* This source code is licensed under the MIT license found in the | ||
* LICENSE file in the root directory of this source tree. | ||
* | ||
* | ||
*/ | ||
for (var key in source) { | ||
if (Object.prototype.hasOwnProperty.call(source, key)) { | ||
target[key] = source[key]; | ||
} | ||
} | ||
} | ||
function makeEmptyFunction(arg) { | ||
return function () { | ||
return arg; | ||
}; | ||
} | ||
return target; | ||
}; | ||
/** | ||
* This function accepts and discards inputs; it has no side effects. This is | ||
* primarily useful idiomatically for overridable function endpoints which | ||
* always need to be callable, since JS lacks a null-call idiom ala Cocoa. | ||
*/ | ||
var emptyFunction = function emptyFunction() {}; | ||
return _extends.apply(this, arguments); | ||
} | ||
emptyFunction.thatReturns = makeEmptyFunction; | ||
emptyFunction.thatReturnsFalse = makeEmptyFunction(false); | ||
emptyFunction.thatReturnsTrue = makeEmptyFunction(true); | ||
emptyFunction.thatReturnsNull = makeEmptyFunction(null); | ||
emptyFunction.thatReturnsThis = function () { | ||
return this; | ||
}; | ||
emptyFunction.thatReturnsArgument = function (arg) { | ||
return arg; | ||
}; | ||
function _inheritsLoose(subClass, superClass) { | ||
subClass.prototype = Object.create(superClass.prototype); | ||
subClass.prototype.constructor = subClass; | ||
subClass.__proto__ = superClass; | ||
} | ||
var emptyFunction_1 = emptyFunction; | ||
function _objectWithoutPropertiesLoose(source, excluded) { | ||
if (source == null) return {}; | ||
var target = {}; | ||
var sourceKeys = Object.keys(source); | ||
var key, i; | ||
/** | ||
* Copyright (c) 2013-present, Facebook, Inc. | ||
* | ||
* This source code is licensed under the MIT license found in the | ||
* LICENSE file in the root directory of this source tree. | ||
* | ||
*/ | ||
for (i = 0; i < sourceKeys.length; i++) { | ||
key = sourceKeys[i]; | ||
if (excluded.indexOf(key) >= 0) continue; | ||
target[key] = source[key]; | ||
} | ||
/** | ||
* 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. | ||
*/ | ||
return target; | ||
} | ||
var validateFormat = function validateFormat(format) {}; | ||
function _assertThisInitialized(self) { | ||
if (self === void 0) { | ||
throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); | ||
} | ||
{ | ||
validateFormat = function validateFormat(format) { | ||
if (format === undefined) { | ||
throw new Error('invariant requires an error message argument'); | ||
} | ||
}; | ||
} | ||
return self; | ||
} | ||
function invariant(condition, format, a, b, c, d, e, f) { | ||
validateFormat(format); | ||
var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; | ||
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'; | ||
} | ||
function unwrapExports (x) { | ||
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; | ||
} | ||
error.framesToPop = 1; // we don't care about invariant's own frame | ||
throw error; | ||
} | ||
} | ||
function createCommonjsModule(fn, module) { | ||
return module = { exports: {} }, fn(module, module.exports), module.exports; | ||
} | ||
var invariant_1 = invariant; | ||
/* | ||
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; | ||
/** | ||
* 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. | ||
*/ | ||
function toObject(val) { | ||
if (val === null || val === undefined) { | ||
throw new TypeError('Object.assign cannot be called with null or undefined'); | ||
} | ||
var warning = emptyFunction_1; | ||
return Object(val); | ||
} | ||
{ | ||
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]; | ||
} | ||
function shouldUseNative() { | ||
try { | ||
if (!Object.assign) { | ||
return false; | ||
} | ||
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) {} | ||
}; | ||
// Detect buggy property enumeration order in older V8 versions. | ||
warning = function warning(condition, format) { | ||
if (format === undefined) { | ||
throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); | ||
} | ||
// 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; | ||
} | ||
if (format.indexOf('Failed Composite propType: ') === 0) { | ||
return; // Ignore CompositeComponent proptype check. | ||
} | ||
// 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; | ||
} | ||
if (!condition) { | ||
for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { | ||
args[_key2 - 2] = arguments[_key2]; | ||
} | ||
// 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; | ||
} | ||
printWarning.apply(undefined, [format].concat(args)); | ||
} | ||
}; | ||
} | ||
return true; | ||
} catch (err) { | ||
// We don't expect any of the above to throw, but better to be safe. | ||
return false; | ||
} | ||
} | ||
var warning_1 = warning; | ||
var objectAssign = shouldUseNative() ? Object.assign : function (target, source) { | ||
var from; | ||
var to = toObject(target); | ||
var symbols; | ||
/* | ||
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; | ||
for (var s = 1; s < arguments.length; s++) { | ||
from = Object(arguments[s]); | ||
function toObject(val) { | ||
if (val === null || val === undefined) { | ||
throw new TypeError('Object.assign cannot be called with null or undefined'); | ||
} | ||
for (var key in from) { | ||
if (hasOwnProperty.call(from, key)) { | ||
to[key] = from[key]; | ||
} | ||
} | ||
return Object(val); | ||
} | ||
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]]; | ||
} | ||
} | ||
} | ||
} | ||
function shouldUseNative() { | ||
try { | ||
if (!Object.assign) { | ||
return false; | ||
} | ||
return to; | ||
}; | ||
// Detect buggy property enumeration order in older V8 versions. | ||
/** | ||
* Copyright (c) 2013-present, Facebook, Inc. | ||
* | ||
* This source code is licensed under the MIT license found in the | ||
* LICENSE file in the root directory of this source tree. | ||
*/ | ||
// 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; | ||
} | ||
var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; | ||
// 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; | ||
} | ||
var ReactPropTypesSecret_1 = ReactPropTypesSecret; | ||
// 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; | ||
} | ||
var printWarning = function() {}; | ||
return true; | ||
} catch (err) { | ||
// We don't expect any of the above to throw, but better to be safe. | ||
return false; | ||
} | ||
} | ||
{ | ||
var ReactPropTypesSecret$1 = ReactPropTypesSecret_1; | ||
var loggedTypeFailures = {}; | ||
var objectAssign = shouldUseNative() ? Object.assign : function (target, source) { | ||
var from; | ||
var to = toObject(target); | ||
var symbols; | ||
printWarning = function(text) { | ||
var message = 'Warning: ' + text; | ||
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) {} | ||
}; | ||
} | ||
for (var s = 1; s < arguments.length; s++) { | ||
from = Object(arguments[s]); | ||
/** | ||
* 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) { | ||
{ | ||
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. | ||
if (typeof typeSpecs[typeSpecName] !== 'function') { | ||
var err = Error( | ||
(componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + | ||
'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' | ||
); | ||
err.name = 'Invariant Violation'; | ||
throw err; | ||
} | ||
error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret$1); | ||
} catch (ex) { | ||
error = ex; | ||
} | ||
if (error && !(error instanceof Error)) { | ||
printWarning( | ||
(componentName || 'React class') + ': type specification of ' + | ||
location + ' `' + typeSpecName + '` is invalid; the type checker ' + | ||
'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + | ||
'You may have forgotten to pass an argument to the type checker ' + | ||
'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + | ||
'shape all require an argument).' | ||
); | ||
for (var key in from) { | ||
if (hasOwnProperty.call(from, key)) { | ||
to[key] = from[key]; | ||
} | ||
} | ||
} | ||
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; | ||
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]]; | ||
} | ||
} | ||
} | ||
} | ||
var stack = getStack ? getStack() : ''; | ||
return to; | ||
}; | ||
printWarning( | ||
'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '') | ||
); | ||
} | ||
} | ||
} | ||
} | ||
} | ||
/** | ||
* Copyright (c) 2013-present, Facebook, Inc. | ||
* | ||
* This source code is licensed under the MIT license found in the | ||
* LICENSE file in the root directory of this source tree. | ||
*/ | ||
var checkPropTypes_1 = checkPropTypes; | ||
var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; | ||
var printWarning$1 = function() {}; | ||
var ReactPropTypesSecret_1 = ReactPropTypesSecret; | ||
{ | ||
printWarning$1 = function(text) { | ||
var message = 'Warning: ' + text; | ||
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) {} | ||
}; | ||
} | ||
{ | ||
var invariant$1 = invariant_1; | ||
var warning$1 = warning_1; | ||
var ReactPropTypesSecret$1 = ReactPropTypesSecret_1; | ||
var loggedTypeFailures = {}; | ||
} | ||
function emptyFunctionThatReturnsNull() { | ||
return null; | ||
} | ||
/** | ||
* 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) { | ||
{ | ||
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$1(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]); | ||
error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret$1); | ||
} catch (ex) { | ||
error = ex; | ||
} | ||
warning$1(!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 factoryWithTypeCheckers = function(isValidElement, throwOnDirectAccess) { | ||
/* global Symbol */ | ||
var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; | ||
var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. | ||
var stack = getStack ? getStack() : ''; | ||
/** | ||
* 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; | ||
} | ||
} | ||
warning$1(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : ''); | ||
} | ||
} | ||
} | ||
} | ||
} | ||
/** | ||
* 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 checkPropTypes_1 = checkPropTypes; | ||
var ANONYMOUS = '<<anonymous>>'; | ||
var factoryWithTypeCheckers = function(isValidElement, throwOnDirectAccess) { | ||
/* global Symbol */ | ||
var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; | ||
var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. | ||
// 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'), | ||
/** | ||
* 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; | ||
} | ||
} | ||
any: createAnyTypeChecker(), | ||
arrayOf: createArrayOfTypeChecker, | ||
element: createElementTypeChecker(), | ||
instanceOf: createInstanceTypeChecker, | ||
node: createNodeChecker(), | ||
objectOf: createObjectOfTypeChecker, | ||
oneOf: createEnumTypeChecker, | ||
oneOfType: createUnionTypeChecker, | ||
shape: createShapeTypeChecker, | ||
exact: createStrictShapeTypeChecker, | ||
}; | ||
/** | ||
* 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 | ||
*/ | ||
/** | ||
* 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*/ | ||
var ANONYMOUS = '<<anonymous>>'; | ||
/** | ||
* 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; | ||
// 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'), | ||
function createChainableTypeChecker(validate) { | ||
{ | ||
var manualPropTypeCallCache = {}; | ||
var manualPropTypeWarningCount = 0; | ||
} | ||
function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { | ||
componentName = componentName || ANONYMOUS; | ||
propFullName = propFullName || propName; | ||
any: createAnyTypeChecker(), | ||
arrayOf: createArrayOfTypeChecker, | ||
element: createElementTypeChecker(), | ||
instanceOf: createInstanceTypeChecker, | ||
node: createNodeChecker(), | ||
objectOf: createObjectOfTypeChecker, | ||
oneOf: createEnumTypeChecker, | ||
oneOfType: createUnionTypeChecker, | ||
shape: createShapeTypeChecker, | ||
exact: createStrictShapeTypeChecker, | ||
}; | ||
if (secret !== ReactPropTypesSecret_1) { | ||
if (throwOnDirectAccess) { | ||
// New behavior only for users of `prop-types` package | ||
var err = new Error( | ||
'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' | ||
); | ||
err.name = 'Invariant Violation'; | ||
throw err; | ||
} else if (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 | ||
) { | ||
printWarning$1( | ||
'You are manually calling a React.PropTypes validation ' + | ||
'function for the `' + propFullName + '` prop on `' + componentName + '`. 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.' | ||
); | ||
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); | ||
} | ||
} | ||
/** | ||
* 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*/ | ||
var chainedCheckType = checkType.bind(null, false); | ||
chainedCheckType.isRequired = checkType.bind(null, true); | ||
/** | ||
* 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; | ||
return chainedCheckType; | ||
} | ||
function createChainableTypeChecker(validate) { | ||
{ | ||
var manualPropTypeCallCache = {}; | ||
var manualPropTypeWarningCount = 0; | ||
} | ||
function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { | ||
componentName = componentName || ANONYMOUS; | ||
propFullName = propFullName || propName; | ||
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); | ||
if (secret !== ReactPropTypesSecret_1) { | ||
if (throwOnDirectAccess) { | ||
// New behavior only for users of `prop-types` package | ||
invariant_1( | ||
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 (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_1( | ||
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); | ||
} | ||
} | ||
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); | ||
} | ||
return null; | ||
} | ||
return createChainableTypeChecker(validate); | ||
} | ||
var chainedCheckType = checkType.bind(null, false); | ||
chainedCheckType.isRequired = checkType.bind(null, true); | ||
function createAnyTypeChecker() { | ||
return createChainableTypeChecker(emptyFunctionThatReturnsNull); | ||
} | ||
return chainedCheckType; | ||
} | ||
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_1); | ||
if (error instanceof Error) { | ||
return error; | ||
} | ||
} | ||
return null; | ||
} | ||
return createChainableTypeChecker(validate); | ||
} | ||
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); | ||
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); | ||
} | ||
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); | ||
} | ||
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 createAnyTypeChecker() { | ||
return createChainableTypeChecker(emptyFunction_1.thatReturnsNull); | ||
} | ||
function createEnumTypeChecker(expectedValues) { | ||
if (!Array.isArray(expectedValues)) { | ||
printWarning$1('Invalid argument supplied to oneOf, expected an instance of array.'); | ||
return emptyFunctionThatReturnsNull; | ||
} | ||
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_1); | ||
if (error instanceof Error) { | ||
return error; | ||
} | ||
} | ||
return null; | ||
} | ||
return createChainableTypeChecker(validate); | ||
} | ||
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; | ||
} | ||
} | ||
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); | ||
} | ||
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 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 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_1); | ||
if (error instanceof Error) { | ||
return error; | ||
} | ||
} | ||
} | ||
return null; | ||
} | ||
return createChainableTypeChecker(validate); | ||
} | ||
function createEnumTypeChecker(expectedValues) { | ||
if (!Array.isArray(expectedValues)) { | ||
warning_1(false, 'Invalid argument supplied to oneOf, expected an instance of array.'); | ||
return emptyFunction_1.thatReturnsNull; | ||
} | ||
function createUnionTypeChecker(arrayOfTypeCheckers) { | ||
if (!Array.isArray(arrayOfTypeCheckers)) { | ||
printWarning$1('Invalid argument supplied to oneOfType, expected an instance of array.'); | ||
return emptyFunctionThatReturnsNull; | ||
} | ||
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; | ||
} | ||
} | ||
for (var i = 0; i < arrayOfTypeCheckers.length; i++) { | ||
var checker = arrayOfTypeCheckers[i]; | ||
if (typeof checker !== 'function') { | ||
printWarning$1( | ||
'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + | ||
'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.' | ||
); | ||
return emptyFunctionThatReturnsNull; | ||
} | ||
} | ||
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 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_1) == null) { | ||
return null; | ||
} | ||
} | ||
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_1); | ||
if (error instanceof Error) { | ||
return error; | ||
} | ||
} | ||
} | ||
return null; | ||
} | ||
return createChainableTypeChecker(validate); | ||
} | ||
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); | ||
} | ||
return createChainableTypeChecker(validate); | ||
} | ||
function createUnionTypeChecker(arrayOfTypeCheckers) { | ||
if (!Array.isArray(arrayOfTypeCheckers)) { | ||
warning_1(false, 'Invalid argument supplied to oneOfType, expected an instance of array.'); | ||
return emptyFunction_1.thatReturnsNull; | ||
} | ||
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); | ||
} | ||
for (var i = 0; i < arrayOfTypeCheckers.length; i++) { | ||
var checker = arrayOfTypeCheckers[i]; | ||
if (typeof checker !== 'function') { | ||
warning_1( | ||
false, | ||
'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + | ||
'received %s at index %s.', | ||
getPostfixForTypeWarning(checker), | ||
i | ||
); | ||
return emptyFunction_1.thatReturnsNull; | ||
} | ||
} | ||
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_1); | ||
if (error) { | ||
return error; | ||
} | ||
} | ||
return null; | ||
} | ||
return createChainableTypeChecker(validate); | ||
} | ||
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_1) == null) { | ||
return null; | ||
} | ||
} | ||
function createStrictShapeTypeChecker(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`.')); | ||
} | ||
// We need to check all keys in case some are required but missing from | ||
// props. | ||
var allKeys = objectAssign({}, props[propName], shapeTypes); | ||
for (var key in allKeys) { | ||
var checker = shapeTypes[key]; | ||
if (!checker) { | ||
return new PropTypeError( | ||
'Invalid ' + location + ' `' + propFullName + '` 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, propFullName + '.' + key, ReactPropTypesSecret_1); | ||
if (error) { | ||
return error; | ||
} | ||
} | ||
return null; | ||
} | ||
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); | ||
} | ||
return createChainableTypeChecker(validate); | ||
} | ||
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 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; | ||
} | ||
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_1); | ||
if (error) { | ||
return error; | ||
} | ||
} | ||
return null; | ||
} | ||
return createChainableTypeChecker(validate); | ||
} | ||
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; | ||
} | ||
function createStrictShapeTypeChecker(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`.')); | ||
} | ||
// We need to check all keys in case some are required but missing from | ||
// props. | ||
var allKeys = objectAssign({}, props[propName], shapeTypes); | ||
for (var key in allKeys) { | ||
var checker = shapeTypes[key]; | ||
if (!checker) { | ||
return new PropTypeError( | ||
'Invalid ' + location + ' `' + propFullName + '` 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, propFullName + '.' + key, ReactPropTypesSecret_1); | ||
if (error) { | ||
return error; | ||
} | ||
} | ||
return null; | ||
} | ||
return true; | ||
default: | ||
return false; | ||
} | ||
} | ||
return createChainableTypeChecker(validate); | ||
} | ||
function isSymbol(propType, propValue) { | ||
// Native Symbol. | ||
if (propType === 'symbol') { | ||
return true; | ||
} | ||
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; | ||
} | ||
// 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' | ||
if (propValue['@@toStringTag'] === 'Symbol') { | ||
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; | ||
} | ||
// Fallback for non-spec compliant Symbols which are polyfilled. | ||
if (typeof Symbol === 'function' && propValue instanceof Symbol) { | ||
return true; | ||
} | ||
return true; | ||
default: | ||
return false; | ||
} | ||
} | ||
return false; | ||
} | ||
function isSymbol(propType, propValue) { | ||
// Native Symbol. | ||
if (propType === 'symbol') { | ||
return true; | ||
} | ||
// 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; | ||
} | ||
// 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' | ||
if (propValue['@@toStringTag'] === 'Symbol') { | ||
return true; | ||
} | ||
// 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; | ||
} | ||
// Fallback for non-spec compliant Symbols which are polyfilled. | ||
if (typeof Symbol === 'function' && propValue instanceof Symbol) { | ||
return true; | ||
} | ||
// 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; | ||
} | ||
} | ||
return false; | ||
} | ||
// Returns class name of the object, if any. | ||
function getClassName(propValue) { | ||
if (!propValue.constructor || !propValue.constructor.name) { | ||
return ANONYMOUS; | ||
} | ||
return propValue.constructor.name; | ||
} | ||
// 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; | ||
} | ||
ReactPropTypes.checkPropTypes = checkPropTypes_1; | ||
ReactPropTypes.PropTypes = ReactPropTypes; | ||
// 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; | ||
} | ||
return ReactPropTypes; | ||
}; | ||
// 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; | ||
} | ||
} | ||
var propTypes = createCommonjsModule(function (module) { | ||
/** | ||
* Copyright (c) 2013-present, Facebook, Inc. | ||
* | ||
* This source code is licensed under the MIT license found in the | ||
* LICENSE file in the root directory of this source tree. | ||
*/ | ||
// Returns class name of the object, if any. | ||
function getClassName(propValue) { | ||
if (!propValue.constructor || !propValue.constructor.name) { | ||
return ANONYMOUS; | ||
} | ||
return propValue.constructor.name; | ||
} | ||
{ | ||
var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' && | ||
Symbol.for && | ||
Symbol.for('react.element')) || | ||
0xeac7; | ||
ReactPropTypes.checkPropTypes = checkPropTypes_1; | ||
ReactPropTypes.PropTypes = ReactPropTypes; | ||
var isValidElement = function(object) { | ||
return typeof object === 'object' && | ||
object !== null && | ||
object.$$typeof === REACT_ELEMENT_TYPE; | ||
}; | ||
return ReactPropTypes; | ||
}; | ||
// By explicitly using `prop-types` you are opting into new development behavior. | ||
// http://fb.me/prop-types-in-prod | ||
var throwOnDirectAccess = true; | ||
module.exports = factoryWithTypeCheckers(isValidElement, throwOnDirectAccess); | ||
} | ||
}); | ||
var propTypes = createCommonjsModule(function (module) { | ||
/** | ||
* Copyright (c) 2013-present, Facebook, Inc. | ||
* | ||
* This source code is licensed under the MIT license found in the | ||
* LICENSE file in the root directory of this source tree. | ||
*/ | ||
var key = '__global_unique_id__'; | ||
{ | ||
var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' && | ||
Symbol.for && | ||
Symbol.for('react.element')) || | ||
0xeac7; | ||
var gud = function() { | ||
return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1; | ||
}; | ||
var isValidElement = function(object) { | ||
return typeof object === 'object' && | ||
object !== null && | ||
object.$$typeof === REACT_ELEMENT_TYPE; | ||
}; | ||
/** | ||
* Copyright (c) 2013-present, Facebook, Inc. | ||
* | ||
* This source code is licensed under the MIT license found in the | ||
* LICENSE file in the root directory of this source tree. | ||
* | ||
* | ||
*/ | ||
// By explicitly using `prop-types` you are opting into new development behavior. | ||
// http://fb.me/prop-types-in-prod | ||
var throwOnDirectAccess = true; | ||
module.exports = factoryWithTypeCheckers(isValidElement, throwOnDirectAccess); | ||
} | ||
}); | ||
function makeEmptyFunction(arg) { | ||
return function () { | ||
return arg; | ||
}; | ||
} | ||
var key = '__global_unique_id__'; | ||
/** | ||
* This function accepts and discards inputs; it has no side effects. This is | ||
* primarily useful idiomatically for overridable function endpoints which | ||
* always need to be callable, since JS lacks a null-call idiom ala Cocoa. | ||
*/ | ||
var emptyFunction$1 = function emptyFunction() {}; | ||
var gud = function() { | ||
return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1; | ||
}; | ||
emptyFunction$1.thatReturns = makeEmptyFunction; | ||
emptyFunction$1.thatReturnsFalse = makeEmptyFunction(false); | ||
emptyFunction$1.thatReturnsTrue = makeEmptyFunction(true); | ||
emptyFunction$1.thatReturnsNull = makeEmptyFunction(null); | ||
emptyFunction$1.thatReturnsThis = function () { | ||
return this; | ||
}; | ||
emptyFunction$1.thatReturnsArgument = function (arg) { | ||
return arg; | ||
}; | ||
var implementation = createCommonjsModule(function (module, exports) { | ||
var emptyFunction_1 = emptyFunction$1; | ||
exports.__esModule = true; | ||
/** | ||
* 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_1; | ||
{ | ||
var printWarning$2 = 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 _react2 = _interopRequireDefault(React__default); | ||
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. | ||
} | ||
var _propTypes2 = _interopRequireDefault(propTypes); | ||
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$2.apply(undefined, [format].concat(args)); | ||
} | ||
}; | ||
} | ||
var warning_1 = warning; | ||
var _gud2 = _interopRequireDefault(gud); | ||
var implementation = createCommonjsModule(function (module, exports) { | ||
exports.__esModule = true; | ||
var _warning2 = _interopRequireDefault(warning_1); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var _react2 = _interopRequireDefault(React__default); | ||
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 _propTypes2 = _interopRequireDefault(propTypes); | ||
var MAX_SIGNED_31_BIT_INT = 1073741823; | ||
// Inlined Object.is polyfill. | ||
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is | ||
function objectIs(x, y) { | ||
if (x === y) { | ||
return x !== 0 || 1 / x === 1 / y; | ||
} else { | ||
return x !== x && y !== y; | ||
} | ||
} | ||
function createEventEmitter(value) { | ||
var handlers = []; | ||
return { | ||
on: function on(handler) { | ||
handlers.push(handler); | ||
}, | ||
off: function off(handler) { | ||
handlers = handlers.filter(function (h) { | ||
return h !== handler; | ||
}); | ||
}, | ||
get: function get() { | ||
return value; | ||
}, | ||
set: function set(newValue, changedBits) { | ||
value = newValue; | ||
handlers.forEach(function (handler) { | ||
return handler(value, changedBits); | ||
}); | ||
} | ||
}; | ||
} | ||
var _gud2 = _interopRequireDefault(gud); | ||
function onlyChild(children) { | ||
return Array.isArray(children) ? children[0] : children; | ||
} | ||
function createReactContext(defaultValue, calculateChangedBits) { | ||
var _Provider$childContex, _Consumer$contextType; | ||
var contextProp = '__create-react-context-' + (0, _gud2.default)() + '__'; | ||
var _warning2 = _interopRequireDefault(warning_1); | ||
var Provider = function (_Component) { | ||
_inherits(Provider, _Component); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function Provider() { | ||
var _temp, _this, _ret; | ||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
_classCallCheck(this, Provider); | ||
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; } | ||
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { | ||
args[_key] = arguments[_key]; | ||
} | ||
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; } | ||
return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.emitter = createEventEmitter(_this.props.value), _temp), _possibleConstructorReturn(_this, _ret); | ||
} | ||
var MAX_SIGNED_31_BIT_INT = 1073741823; | ||
Provider.prototype.getChildContext = function getChildContext() { | ||
var _ref; | ||
// Inlined Object.is polyfill. | ||
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is | ||
function objectIs(x, y) { | ||
if (x === y) { | ||
return x !== 0 || 1 / x === 1 / y; | ||
} else { | ||
return x !== x && y !== y; | ||
} | ||
} | ||
return _ref = {}, _ref[contextProp] = this.emitter, _ref; | ||
}; | ||
function createEventEmitter(value) { | ||
var handlers = []; | ||
return { | ||
on: function on(handler) { | ||
handlers.push(handler); | ||
}, | ||
off: function off(handler) { | ||
handlers = handlers.filter(function (h) { | ||
return h !== handler; | ||
}); | ||
}, | ||
get: function get() { | ||
return value; | ||
}, | ||
set: function set(newValue, changedBits) { | ||
value = newValue; | ||
handlers.forEach(function (handler) { | ||
return handler(value, changedBits); | ||
}); | ||
} | ||
}; | ||
} | ||
Provider.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { | ||
if (this.props.value !== nextProps.value) { | ||
var oldValue = this.props.value; | ||
var newValue = nextProps.value; | ||
var changedBits = void 0; | ||
function onlyChild(children) { | ||
return Array.isArray(children) ? children[0] : children; | ||
} | ||
if (objectIs(oldValue, newValue)) { | ||
changedBits = 0; // No change | ||
} else { | ||
changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT; | ||
{ | ||
(0, _warning2.default)((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: %s', changedBits); | ||
} | ||
function createReactContext(defaultValue, calculateChangedBits) { | ||
var _Provider$childContex, _Consumer$contextType; | ||
changedBits |= 0; | ||
var contextProp = '__create-react-context-' + (0, _gud2.default)() + '__'; | ||
if (changedBits !== 0) { | ||
this.emitter.set(nextProps.value, changedBits); | ||
} | ||
} | ||
} | ||
}; | ||
var Provider = function (_Component) { | ||
_inherits(Provider, _Component); | ||
Provider.prototype.render = function render() { | ||
return this.props.children; | ||
}; | ||
function Provider() { | ||
var _temp, _this, _ret; | ||
return Provider; | ||
}(React__default.Component); | ||
_classCallCheck(this, Provider); | ||
Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = _propTypes2.default.object.isRequired, _Provider$childContex); | ||
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { | ||
args[_key] = arguments[_key]; | ||
} | ||
var Consumer = function (_Component2) { | ||
_inherits(Consumer, _Component2); | ||
return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.emitter = createEventEmitter(_this.props.value), _temp), _possibleConstructorReturn(_this, _ret); | ||
} | ||
function Consumer() { | ||
var _temp2, _this2, _ret2; | ||
Provider.prototype.getChildContext = function getChildContext() { | ||
var _ref; | ||
_classCallCheck(this, Consumer); | ||
return _ref = {}, _ref[contextProp] = this.emitter, _ref; | ||
}; | ||
for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { | ||
args[_key2] = arguments[_key2]; | ||
} | ||
Provider.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { | ||
if (this.props.value !== nextProps.value) { | ||
var oldValue = this.props.value; | ||
var newValue = nextProps.value; | ||
var changedBits = void 0; | ||
return _ret2 = (_temp2 = (_this2 = _possibleConstructorReturn(this, _Component2.call.apply(_Component2, [this].concat(args))), _this2), _this2.state = { | ||
value: _this2.getValue() | ||
}, _this2.onUpdate = function (newValue, changedBits) { | ||
var observedBits = _this2.observedBits | 0; | ||
if ((observedBits & changedBits) !== 0) { | ||
_this2.setState({ value: _this2.getValue() }); | ||
} | ||
}, _temp2), _possibleConstructorReturn(_this2, _ret2); | ||
} | ||
if (objectIs(oldValue, newValue)) { | ||
changedBits = 0; // No change | ||
} else { | ||
changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT; | ||
{ | ||
(0, _warning2.default)((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: %s', changedBits); | ||
} | ||
Consumer.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { | ||
var observedBits = nextProps.observedBits; | ||
changedBits |= 0; | ||
this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default | ||
: observedBits; | ||
}; | ||
if (changedBits !== 0) { | ||
this.emitter.set(nextProps.value, changedBits); | ||
} | ||
} | ||
} | ||
}; | ||
Consumer.prototype.componentDidMount = function componentDidMount() { | ||
if (this.context[contextProp]) { | ||
this.context[contextProp].on(this.onUpdate); | ||
} | ||
var observedBits = this.props.observedBits; | ||
Provider.prototype.render = function render() { | ||
return this.props.children; | ||
}; | ||
this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default | ||
: observedBits; | ||
}; | ||
return Provider; | ||
}(React__default.Component); | ||
Consumer.prototype.componentWillUnmount = function componentWillUnmount() { | ||
if (this.context[contextProp]) { | ||
this.context[contextProp].off(this.onUpdate); | ||
} | ||
}; | ||
Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = _propTypes2.default.object.isRequired, _Provider$childContex); | ||
Consumer.prototype.getValue = function getValue() { | ||
if (this.context[contextProp]) { | ||
return this.context[contextProp].get(); | ||
} else { | ||
return defaultValue; | ||
} | ||
}; | ||
var Consumer = function (_Component2) { | ||
_inherits(Consumer, _Component2); | ||
Consumer.prototype.render = function render() { | ||
return onlyChild(this.props.children)(this.state.value); | ||
}; | ||
function Consumer() { | ||
var _temp2, _this2, _ret2; | ||
return Consumer; | ||
}(React__default.Component); | ||
_classCallCheck(this, Consumer); | ||
Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = _propTypes2.default.object, _Consumer$contextType); | ||
for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { | ||
args[_key2] = arguments[_key2]; | ||
} | ||
return _ret2 = (_temp2 = (_this2 = _possibleConstructorReturn(this, _Component2.call.apply(_Component2, [this].concat(args))), _this2), _this2.state = { | ||
value: _this2.getValue() | ||
}, _this2.onUpdate = function (newValue, changedBits) { | ||
var observedBits = _this2.observedBits | 0; | ||
if ((observedBits & changedBits) !== 0) { | ||
_this2.setState({ value: _this2.getValue() }); | ||
} | ||
}, _temp2), _possibleConstructorReturn(_this2, _ret2); | ||
} | ||
return { | ||
Provider: Provider, | ||
Consumer: Consumer | ||
}; | ||
} | ||
Consumer.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { | ||
var observedBits = nextProps.observedBits; | ||
exports.default = _react2.default.createContext || createReactContext; | ||
module.exports = exports['default']; | ||
}); | ||
this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default | ||
: observedBits; | ||
}; | ||
unwrapExports(implementation); | ||
Consumer.prototype.componentDidMount = function componentDidMount() { | ||
if (this.context[contextProp]) { | ||
this.context[contextProp].on(this.onUpdate); | ||
} | ||
var observedBits = this.props.observedBits; | ||
var lib = createCommonjsModule(function (module, exports) { | ||
this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default | ||
: observedBits; | ||
}; | ||
exports.__esModule = true; | ||
Consumer.prototype.componentWillUnmount = function componentWillUnmount() { | ||
if (this.context[contextProp]) { | ||
this.context[contextProp].off(this.onUpdate); | ||
} | ||
}; | ||
Consumer.prototype.getValue = function getValue() { | ||
if (this.context[contextProp]) { | ||
return this.context[contextProp].get(); | ||
} else { | ||
return defaultValue; | ||
} | ||
}; | ||
Consumer.prototype.render = function render() { | ||
return onlyChild(this.props.children)(this.state.value); | ||
}; | ||
var _react2 = _interopRequireDefault(React__default); | ||
return Consumer; | ||
}(React__default.Component); | ||
Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = _propTypes2.default.object, _Consumer$contextType); | ||
var _implementation2 = _interopRequireDefault(implementation); | ||
return { | ||
Provider: Provider, | ||
Consumer: Consumer | ||
}; | ||
} | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
exports.default = createReactContext; | ||
module.exports = exports['default']; | ||
}); | ||
exports.default = _react2.default.createContext || _implementation2.default; | ||
module.exports = exports['default']; | ||
}); | ||
unwrapExports(implementation); | ||
var createContext = unwrapExports(lib); | ||
var lib = createCommonjsModule(function (module, exports) { | ||
var classCallCheck = function (instance, Constructor) { | ||
if (!(instance instanceof Constructor)) { | ||
throw new TypeError("Cannot call a class as a function"); | ||
} | ||
}; | ||
exports.__esModule = 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 _react2 = _interopRequireDefault(React__default); | ||
var inherits = function (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 objectWithoutProperties = function (obj, keys) { | ||
var target = {}; | ||
var _implementation2 = _interopRequireDefault(implementation); | ||
for (var i in obj) { | ||
if (keys.indexOf(i) >= 0) continue; | ||
if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; | ||
target[i] = obj[i]; | ||
} | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
return target; | ||
}; | ||
exports.default = _react2.default.createContext || _implementation2.default; | ||
module.exports = exports['default']; | ||
}); | ||
var possibleConstructorReturn = function (self, call) { | ||
if (!self) { | ||
throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); | ||
} | ||
var createContext = unwrapExports(lib); | ||
return call && (typeof call === "object" || typeof call === "function") ? call : self; | ||
}; | ||
var ManagerContext = createContext({ | ||
getReferenceRef: undefined, | ||
referenceNode: undefined | ||
}); | ||
var ManagerContext = createContext({ getReferenceRef: undefined, referenceNode: undefined }); | ||
var Manager = | ||
/*#__PURE__*/ | ||
function (_React$Component) { | ||
_inheritsLoose(Manager, _React$Component); | ||
var Manager = function (_React$Component) { | ||
inherits(Manager, _React$Component); | ||
function Manager() { | ||
var _this; | ||
function Manager() { | ||
classCallCheck(this, Manager); | ||
_this = _React$Component.call(this) || this; | ||
var _this = possibleConstructorReturn(this, _React$Component.call(this)); | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "getReferenceRef", function (referenceNode) { | ||
return _this.setState(function (_ref) { | ||
var context = _ref.context; | ||
return { | ||
context: _extends({}, context, { | ||
referenceNode: referenceNode | ||
}) | ||
}; | ||
}); | ||
}); | ||
_this.getReferenceRef = function (referenceNode) { | ||
return _this.setState(function (_ref) { | ||
var context = _ref.context; | ||
return { | ||
context: _extends({}, context, { referenceNode: referenceNode }) | ||
}; | ||
}); | ||
}; | ||
_this.state = { | ||
context: { | ||
getReferenceRef: _this.getReferenceRef, | ||
referenceNode: undefined | ||
} | ||
}; | ||
return _this; | ||
} | ||
_this.state = { | ||
context: { | ||
getReferenceRef: _this.getReferenceRef, | ||
referenceNode: undefined | ||
} | ||
}; | ||
return _this; | ||
} | ||
var _proto = Manager.prototype; | ||
Manager.prototype.render = function render() { | ||
return React.createElement( | ||
ManagerContext.Provider, | ||
{ value: this.state.context }, | ||
this.props.children | ||
); | ||
}; | ||
_proto.render = function render() { | ||
return React.createElement(ManagerContext.Provider, { | ||
value: this.state.context | ||
}, this.props.children); | ||
}; | ||
return Manager; | ||
}(React.Component); | ||
return Manager; | ||
}(React.Component); | ||
/** | ||
* Takes an argument and if it's an array, returns the first item in the array, | ||
* otherwise returns the argument. Used for Preact compatibility. | ||
*/ | ||
var unwrapArray = function unwrapArray(arg) { | ||
return Array.isArray(arg) ? arg[0] : arg; | ||
}; | ||
/** | ||
* Takes an argument and if it's an array, returns the first item in the array, | ||
* otherwise returns the argument. Used for Preact compatibility. | ||
*/ | ||
var unwrapArray = function unwrapArray(arg) { | ||
return Array.isArray(arg) ? arg[0] : arg; | ||
}; | ||
/** | ||
* Takes a maybe-undefined function and arbitrary args and invokes the function | ||
* only if it is defined. | ||
*/ | ||
/** | ||
* Takes a maybe-undefined function and arbitrary args and invokes the function | ||
* only if it is defined. | ||
*/ | ||
var safeInvoke = function safeInvoke(fn) { | ||
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
args[_key - 1] = arguments[_key]; | ||
} | ||
var safeInvoke = function safeInvoke(fn) { | ||
if (typeof fn === "function") { | ||
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
args[_key - 1] = arguments[_key]; | ||
} | ||
if (typeof fn === "function") { | ||
return fn.apply(undefined, args); | ||
} | ||
}; | ||
return fn.apply(void 0, args); | ||
} | ||
}; | ||
var initialStyle = { | ||
position: 'absolute', | ||
top: 0, | ||
left: 0, | ||
opacity: 0, | ||
pointerEvents: 'none' | ||
}; | ||
var initialStyle = { | ||
position: 'absolute', | ||
top: 0, | ||
left: 0, | ||
opacity: 0, | ||
pointerEvents: 'none' | ||
}; | ||
var initialArrowStyle = {}; | ||
var InnerPopper = | ||
/*#__PURE__*/ | ||
function (_React$Component) { | ||
_inheritsLoose(InnerPopper, _React$Component); | ||
var initialArrowStyle = {}; | ||
function InnerPopper() { | ||
var _this; | ||
var InnerPopper = function (_React$Component) { | ||
inherits(InnerPopper, _React$Component); | ||
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { | ||
args[_key] = arguments[_key]; | ||
} | ||
function InnerPopper() { | ||
var _temp, _this, _ret; | ||
_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; | ||
classCallCheck(this, InnerPopper); | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "state", { | ||
data: undefined, | ||
placement: undefined | ||
}); | ||
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { | ||
args[_key] = arguments[_key]; | ||
} | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "popperInstance", void 0); | ||
return _ret = (_temp = (_this = possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = { | ||
data: undefined, | ||
placement: undefined | ||
}, _this.popperNode = null, _this.arrowNode = null, _this.setPopperNode = function (popperNode) { | ||
if (!popperNode || _this.popperNode === popperNode) return; | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "popperNode", null); | ||
safeInvoke(_this.props.innerRef, popperNode); | ||
_this.popperNode = popperNode; | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "arrowNode", null); | ||
_this.updatePopperInstance(); | ||
}, _this.setArrowNode = function (arrowNode) { | ||
_this.arrowNode = arrowNode; | ||
}, _this.updateStateModifier = { | ||
enabled: true, | ||
order: 900, | ||
fn: function fn(data) { | ||
var placement = data.placement; | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "setPopperNode", function (popperNode) { | ||
if (!popperNode || _this.popperNode === popperNode) return; | ||
safeInvoke(_this.props.innerRef, popperNode); | ||
_this.popperNode = popperNode; | ||
_this.setState({ data: data, placement: placement }); | ||
return data; | ||
} | ||
}, _this.getOptions = function () { | ||
return { | ||
placement: _this.props.placement, | ||
eventsEnabled: _this.props.eventsEnabled, | ||
positionFixed: _this.props.positionFixed, | ||
modifiers: _extends({}, _this.props.modifiers, { | ||
arrow: _extends({}, _this.props.modifiers && _this.props.modifiers.arrow, { | ||
enabled: !!_this.arrowNode, | ||
element: _this.arrowNode | ||
}), | ||
applyStyle: { enabled: false }, | ||
updateStateModifier: _this.updateStateModifier | ||
}) | ||
}; | ||
}, _this.getPopperStyle = function () { | ||
return !_this.popperNode || !_this.state.data ? initialStyle : _extends({ | ||
position: _this.state.data.offsets.popper.position | ||
}, _this.state.data.styles); | ||
}, _this.getPopperPlacement = function () { | ||
return !_this.state.data ? undefined : _this.state.placement; | ||
}, _this.getArrowStyle = function () { | ||
return !_this.arrowNode || !_this.state.data ? initialArrowStyle : _this.state.data.arrowStyles; | ||
}, _this.getOutOfBoundariesState = function () { | ||
return _this.state.data ? _this.state.data.hide : undefined; | ||
}, _this.destroyPopperInstance = function () { | ||
if (!_this.popperInstance) return; | ||
_this.updatePopperInstance(); | ||
}); | ||
_this.popperInstance.destroy(); | ||
_this.popperInstance = null; | ||
}, _this.updatePopperInstance = function () { | ||
_this.destroyPopperInstance(); | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "setArrowNode", function (arrowNode) { | ||
_this.arrowNode = arrowNode; | ||
}); | ||
var _this2 = _this, | ||
popperNode = _this2.popperNode; | ||
var referenceElement = _this.props.referenceElement; | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "updateStateModifier", { | ||
enabled: true, | ||
order: 900, | ||
fn: function fn(data) { | ||
var placement = data.placement; | ||
_this.setState({ | ||
data: data, | ||
placement: placement | ||
}); | ||
if (!referenceElement || !popperNode) return; | ||
return data; | ||
} | ||
}); | ||
_this.popperInstance = new PopperJS(referenceElement, popperNode, _this.getOptions()); | ||
}, _this.scheduleUpdate = function () { | ||
if (_this.popperInstance) { | ||
_this.popperInstance.scheduleUpdate(); | ||
} | ||
}, _temp), possibleConstructorReturn(_this, _ret); | ||
} | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "getOptions", function () { | ||
return { | ||
placement: _this.props.placement, | ||
eventsEnabled: _this.props.eventsEnabled, | ||
positionFixed: _this.props.positionFixed, | ||
modifiers: _extends({}, _this.props.modifiers, { | ||
arrow: _extends({}, _this.props.modifiers && _this.props.modifiers.arrow, { | ||
enabled: !!_this.arrowNode, | ||
element: _this.arrowNode | ||
}), | ||
applyStyle: { | ||
enabled: false | ||
}, | ||
updateStateModifier: _this.updateStateModifier | ||
}) | ||
}; | ||
}); | ||
InnerPopper.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) { | ||
// If the Popper.js options have changed, update the instance (destroy + create) | ||
if (this.props.placement !== prevProps.placement || this.props.referenceElement !== prevProps.referenceElement || this.props.positionFixed !== prevProps.positionFixed) { | ||
this.updatePopperInstance(); | ||
} else if (this.props.eventsEnabled !== prevProps.eventsEnabled && this.popperInstance) { | ||
this.props.eventsEnabled ? this.popperInstance.enableEventListeners() : this.popperInstance.disableEventListeners(); | ||
} | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "getPopperStyle", function () { | ||
return !_this.popperNode || !_this.state.data ? initialStyle : _extends({ | ||
position: _this.state.data.offsets.popper.position | ||
}, _this.state.data.styles); | ||
}); | ||
// A placement difference in state means popper determined a new placement | ||
// apart from the props value. By the time the popper element is rendered with | ||
// the new position Popper has already measured it, if the place change triggers | ||
// a size change it will result in a misaligned popper. So we schedule an update to be sure. | ||
if (prevState.placement !== this.state.placement) { | ||
this.scheduleUpdate(); | ||
} | ||
}; | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "getPopperPlacement", function () { | ||
return !_this.state.data ? undefined : _this.state.placement; | ||
}); | ||
InnerPopper.prototype.componentWillUnmount = function componentWillUnmount() { | ||
safeInvoke(this.props.innerRef, null); | ||
this.destroyPopperInstance(); | ||
}; | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "getArrowStyle", function () { | ||
return !_this.arrowNode || !_this.state.data ? initialArrowStyle : _this.state.data.arrowStyles; | ||
}); | ||
InnerPopper.prototype.render = function render() { | ||
return unwrapArray(this.props.children)({ | ||
ref: this.setPopperNode, | ||
style: this.getPopperStyle(), | ||
placement: this.getPopperPlacement(), | ||
outOfBoundaries: this.getOutOfBoundariesState(), | ||
scheduleUpdate: this.scheduleUpdate, | ||
arrowProps: { | ||
ref: this.setArrowNode, | ||
style: this.getArrowStyle() | ||
} | ||
}); | ||
}; | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "getOutOfBoundariesState", function () { | ||
return _this.state.data ? _this.state.data.hide : undefined; | ||
}); | ||
return InnerPopper; | ||
}(React.Component); | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "destroyPopperInstance", function () { | ||
if (!_this.popperInstance) return; | ||
InnerPopper.defaultProps = { | ||
placement: 'bottom', | ||
eventsEnabled: true, | ||
referenceElement: undefined, | ||
positionFixed: false | ||
}; | ||
var placements = PopperJS.placements; | ||
_this.popperInstance.destroy(); | ||
function Popper(_ref) { | ||
var referenceElement = _ref.referenceElement, | ||
props = objectWithoutProperties(_ref, ['referenceElement']); | ||
_this.popperInstance = null; | ||
}); | ||
return React.createElement( | ||
ManagerContext.Consumer, | ||
null, | ||
function (_ref2) { | ||
var referenceNode = _ref2.referenceNode; | ||
return React.createElement(InnerPopper, _extends({ | ||
referenceElement: referenceElement !== undefined ? referenceElement : referenceNode | ||
}, props)); | ||
} | ||
); | ||
} | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "updatePopperInstance", function () { | ||
_this.destroyPopperInstance(); | ||
/** | ||
* 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 _assertThisInitialize = _assertThisInitialized(_assertThisInitialized(_this)), | ||
popperNode = _assertThisInitialize.popperNode; | ||
var warning$2 = function() {}; | ||
var referenceElement = _this.props.referenceElement; | ||
if (!referenceElement || !popperNode) return; | ||
_this.popperInstance = new PopperJS(referenceElement, popperNode, _this.getOptions()); | ||
}); | ||
{ | ||
warning$2 = function(condition, format, args) { | ||
var len = arguments.length; | ||
args = new Array(len > 2 ? len - 2 : 0); | ||
for (var key = 2; key < len; key++) { | ||
args[key - 2] = arguments[key]; | ||
} | ||
if (format === undefined) { | ||
throw new Error( | ||
'`warning(condition, format, ...args)` requires a warning ' + | ||
'message argument' | ||
); | ||
} | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "scheduleUpdate", function () { | ||
if (_this.popperInstance) { | ||
_this.popperInstance.scheduleUpdate(); | ||
} | ||
}); | ||
if (format.length < 10 || (/^[s\W]*$/).test(format)) { | ||
throw new Error( | ||
'The warning format should be able to uniquely identify this ' + | ||
'warning. Please, use a more descriptive format than: ' + format | ||
); | ||
} | ||
return _this; | ||
} | ||
if (!condition) { | ||
var argIndex = 0; | ||
var message = 'Warning: ' + | ||
format.replace(/%s/g, function() { | ||
return args[argIndex++]; | ||
}); | ||
if (typeof console !== 'undefined') { | ||
console.error(message); | ||
} | ||
try { | ||
// 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) {} | ||
} | ||
}; | ||
} | ||
var _proto = InnerPopper.prototype; | ||
var warning_1$1 = warning$2; | ||
_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) { | ||
// If the Popper.js options have changed, update the instance (destroy + create) | ||
if (this.props.placement !== prevProps.placement || this.props.referenceElement !== prevProps.referenceElement || this.props.positionFixed !== prevProps.positionFixed) { | ||
this.updatePopperInstance(); | ||
} else if (this.props.eventsEnabled !== prevProps.eventsEnabled && this.popperInstance) { | ||
this.props.eventsEnabled ? this.popperInstance.enableEventListeners() : this.popperInstance.disableEventListeners(); | ||
} // A placement difference in state means popper determined a new placement | ||
// apart from the props value. By the time the popper element is rendered with | ||
// the new position Popper has already measured it, if the place change triggers | ||
// a size change it will result in a misaligned popper. So we schedule an update to be sure. | ||
var InnerReference = function (_React$Component) { | ||
inherits(InnerReference, _React$Component); | ||
function InnerReference() { | ||
var _temp, _this, _ret; | ||
if (prevState.placement !== this.state.placement) { | ||
this.scheduleUpdate(); | ||
} | ||
}; | ||
classCallCheck(this, InnerReference); | ||
_proto.componentWillUnmount = function componentWillUnmount() { | ||
safeInvoke(this.props.innerRef, null); | ||
this.destroyPopperInstance(); | ||
}; | ||
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { | ||
args[_key] = arguments[_key]; | ||
} | ||
_proto.render = function render() { | ||
return unwrapArray(this.props.children)({ | ||
ref: this.setPopperNode, | ||
style: this.getPopperStyle(), | ||
placement: this.getPopperPlacement(), | ||
outOfBoundaries: this.getOutOfBoundariesState(), | ||
scheduleUpdate: this.scheduleUpdate, | ||
arrowProps: { | ||
ref: this.setArrowNode, | ||
style: this.getArrowStyle() | ||
} | ||
}); | ||
}; | ||
return _ret = (_temp = (_this = possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.refHandler = function (node) { | ||
safeInvoke(_this.props.innerRef, node); | ||
safeInvoke(_this.props.getReferenceRef, node); | ||
}, _temp), possibleConstructorReturn(_this, _ret); | ||
} | ||
return InnerPopper; | ||
}(React.Component); | ||
InnerReference.prototype.render = function render() { | ||
warning_1$1(this.props.getReferenceRef, '`Reference` should not be used outside of a `Manager` component.'); | ||
return unwrapArray(this.props.children)({ ref: this.refHandler }); | ||
}; | ||
_defineProperty(InnerPopper, "defaultProps", { | ||
placement: 'bottom', | ||
eventsEnabled: true, | ||
referenceElement: undefined, | ||
positionFixed: false | ||
}); | ||
return InnerReference; | ||
}(React.Component); | ||
var placements = PopperJS.placements; | ||
function Popper(_ref) { | ||
var referenceElement = _ref.referenceElement, | ||
props = _objectWithoutPropertiesLoose(_ref, ["referenceElement"]); | ||
function Reference(props) { | ||
return React.createElement( | ||
ManagerContext.Consumer, | ||
null, | ||
function (_ref) { | ||
var getReferenceRef = _ref.getReferenceRef; | ||
return React.createElement(InnerReference, _extends({ getReferenceRef: getReferenceRef }, props)); | ||
} | ||
); | ||
} | ||
return React.createElement(ManagerContext.Consumer, null, function (_ref2) { | ||
var referenceNode = _ref2.referenceNode; | ||
return React.createElement(InnerPopper, _extends({ | ||
referenceElement: referenceElement !== undefined ? referenceElement : referenceNode | ||
}, props)); | ||
}); | ||
} | ||
// Public types | ||
/** | ||
* Copyright (c) 2014-present, Facebook, Inc. | ||
* | ||
* This source code is licensed under the MIT license found in the | ||
* LICENSE file in the root directory of this source tree. | ||
*/ | ||
exports.Popper = Popper; | ||
exports.placements = placements; | ||
exports.Manager = Manager; | ||
exports.Reference = Reference; | ||
var warning$1 = function() {}; | ||
Object.defineProperty(exports, '__esModule', { value: true }); | ||
{ | ||
var printWarning$3 = function printWarning(format, args) { | ||
var len = arguments.length; | ||
args = new Array(len > 2 ? len - 2 : 0); | ||
for (var key = 2; key < len; key++) { | ||
args[key - 2] = 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$1 = function(condition, format, args) { | ||
var len = arguments.length; | ||
args = new Array(len > 2 ? len - 2 : 0); | ||
for (var key = 2; key < len; key++) { | ||
args[key - 2] = arguments[key]; | ||
} | ||
if (format === undefined) { | ||
throw new Error( | ||
'`warning(condition, format, ...args)` requires a warning ' + | ||
'message argument' | ||
); | ||
} | ||
if (!condition) { | ||
printWarning$3.apply(null, [format].concat(args)); | ||
} | ||
}; | ||
} | ||
var warning_1$1 = warning$1; | ||
var InnerReference = | ||
/*#__PURE__*/ | ||
function (_React$Component) { | ||
_inheritsLoose(InnerReference, _React$Component); | ||
function InnerReference() { | ||
var _this; | ||
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { | ||
args[_key] = arguments[_key]; | ||
} | ||
_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "refHandler", function (node) { | ||
safeInvoke(_this.props.innerRef, node); | ||
safeInvoke(_this.props.getReferenceRef, node); | ||
}); | ||
return _this; | ||
} | ||
var _proto = InnerReference.prototype; | ||
_proto.render = function render() { | ||
warning_1$1(this.props.getReferenceRef, '`Reference` should not be used outside of a `Manager` component.'); | ||
return unwrapArray(this.props.children)({ | ||
ref: this.refHandler | ||
}); | ||
}; | ||
return InnerReference; | ||
}(React.Component); | ||
function Reference(props) { | ||
return React.createElement(ManagerContext.Consumer, null, function (_ref) { | ||
var getReferenceRef = _ref.getReferenceRef; | ||
return React.createElement(InnerReference, _extends({ | ||
getReferenceRef: getReferenceRef | ||
}, props)); | ||
}); | ||
} | ||
// Public components | ||
// Public types | ||
exports.Popper = Popper; | ||
exports.placements = placements; | ||
exports.Manager = Manager; | ||
exports.Reference = Reference; | ||
Object.defineProperty(exports, '__esModule', { value: true }); | ||
}))); |
@@ -1,1 +0,1 @@ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","react","popper.js"],t):t(e.ReactPopper={},e.React,e.Popper)}(this,function(e,o,p){"use strict";var d="default"in o?o.default:o;p=p&&p.hasOwnProperty("default")?p.default:p;var t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function n(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function r(e,t){return e(t={exports:{}},t.exports),t.exports}function a(e){return function(){return e}}var i=function(){};i.thatReturns=a,i.thatReturnsFalse=a(!1),i.thatReturnsTrue=a(!0),i.thatReturnsNull=a(null),i.thatReturnsThis=function(){return this},i.thatReturnsArgument=function(e){return e};var s=i;var c=function(e,t,n,r,o,a,i,p){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,a,i,p],u=0;(s=new Error(t.replace(/%s/g,function(){return c[u++]}))).name="Invariant Violation"}throw s.framesToPop=1,s}},h=s,u=Object.getOwnPropertySymbols,f=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable;(function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}})()&&Object.assign;var y=r(function(e){e.exports=function(){function e(e,t,n,r,o,a){"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"!==a&&c(!1,"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")}function t(){return e}var n={array:e.isRequired=e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t};return n.checkPropTypes=s,n.PropTypes=n}()}),v="__global_unique_id__",m=function(){return t[v]=(t[v]||0)+1},b=r(function(e,t){t.__esModule=!0;var n=r(d),p=r(y),s=r(m);r(h);function r(e){return e&&e.__esModule?e:{default:e}}function c(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function f(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var l=1073741823;t.default=n.default.createContext||function(e,i){var t,n,r="__create-react-context-"+(0,s.default)()+"__",o=function(p){function s(){var e,t,n,r;c(this,s);for(var o=arguments.length,a=Array(o),i=0;i<o;i++)a[i]=arguments[i];return(e=t=u(this,p.call.apply(p,[this].concat(a)))).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(t){r=r.filter(function(e){return e!==t})},get:function(){return n},set:function(e,t){n=e,r.forEach(function(e){return e(n,t)})}}),u(t,e)}return f(s,p),s.prototype.getChildContext=function(){var e;return(e={})[r]=this.emitter,e},s.prototype.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var t=this.props.value,n=e.value,r=void 0;((o=t)===(a=n)?0!==o||1/o==1/a:o!=o&&a!=a)?r=0:(r="function"==typeof i?i(t,n):l,0!=(r|=0)&&this.emitter.set(e.value,r))}var o,a},s.prototype.render=function(){return this.props.children},s}(d.Component);o.childContextTypes=((t={})[r]=p.default.object.isRequired,t);var a=function(a){function i(){var e,n;c(this,i);for(var t=arguments.length,r=Array(t),o=0;o<t;o++)r[o]=arguments[o];return(e=n=u(this,a.call.apply(a,[this].concat(r)))).state={value:n.getValue()},n.onUpdate=function(e,t){0!=((0|n.observedBits)&t)&&n.setState({value:n.getValue()})},u(n,e)}return f(i,a),i.prototype.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?l:t},i.prototype.componentDidMount=function(){this.context[r]&&this.context[r].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?l:e},i.prototype.componentWillUnmount=function(){this.context[r]&&this.context[r].off(this.onUpdate)},i.prototype.getValue=function(){return this.context[r]?this.context[r].get():e},i.prototype.render=function(){return e=this.props.children,(Array.isArray(e)?e[0]:e)(this.state.value);var e},i}(d.Component);return a.contextTypes=((n={})[r]=p.default.object,n),{Provider:o,Consumer:a}},e.exports=t.default});n(b);var g=n(r(function(e,t){t.__esModule=!0;var n=o(d),r=o(b);function o(e){return e&&e.__esModule?e:{default:e}}t.default=n.default.createContext||r.default,e.exports=t.default})),O=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},w=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},P=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)},_=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t},R=g({getReferenceRef:void 0,referenceNode:void 0}),E=function(t){function n(){O(this,n);var e=_(this,t.call(this));return e.getReferenceRef=function(n){return e.setState(function(e){var t=e.context;return{context:w({},t,{referenceNode:n})}})},e.state={context:{getReferenceRef:e.getReferenceRef,referenceNode:void 0}},e}return P(n,t),n.prototype.render=function(){return o.createElement(R.Provider,{value:this.state.context},this.props.children)},n}(o.Component),x=function(e){return Array.isArray(e)?e[0]:e},j=function(e){for(var t=arguments.length,n=Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];if("function"==typeof e)return e.apply(void 0,n)},S={position:"absolute",top:0,left:0,opacity:0,pointerEvents:"none"},N={},I=function(a){function i(){var e,n;O(this,i);for(var t=arguments.length,r=Array(t),o=0;o<t;o++)r[o]=arguments[o];return(e=n=_(this,a.call.apply(a,[this].concat(r)))).state={data:void 0,placement:void 0},n.popperNode=null,n.arrowNode=null,n.setPopperNode=function(e){e&&n.popperNode!==e&&(j(n.props.innerRef,e),n.popperNode=e,n.updatePopperInstance())},n.setArrowNode=function(e){n.arrowNode=e},n.updateStateModifier={enabled:!0,order:900,fn:function(e){var t=e.placement;return n.setState({data:e,placement:t}),e}},n.getOptions=function(){return{placement:n.props.placement,eventsEnabled:n.props.eventsEnabled,positionFixed:n.props.positionFixed,modifiers:w({},n.props.modifiers,{arrow:w({},n.props.modifiers&&n.props.modifiers.arrow,{enabled:!!n.arrowNode,element:n.arrowNode}),applyStyle:{enabled:!1},updateStateModifier:n.updateStateModifier})}},n.getPopperStyle=function(){return n.popperNode&&n.state.data?w({position:n.state.data.offsets.popper.position},n.state.data.styles):S},n.getPopperPlacement=function(){return n.state.data?n.state.placement:void 0},n.getArrowStyle=function(){return n.arrowNode&&n.state.data?n.state.data.arrowStyles:N},n.getOutOfBoundariesState=function(){return n.state.data?n.state.data.hide:void 0},n.destroyPopperInstance=function(){n.popperInstance&&(n.popperInstance.destroy(),n.popperInstance=null)},n.updatePopperInstance=function(){n.destroyPopperInstance();var e=n.popperNode,t=n.props.referenceElement;t&&e&&(n.popperInstance=new p(t,e,n.getOptions()))},n.scheduleUpdate=function(){n.popperInstance&&n.popperInstance.scheduleUpdate()},_(n,e)}return P(i,a),i.prototype.componentDidUpdate=function(e,t){this.props.placement!==e.placement||this.props.referenceElement!==e.referenceElement||this.props.positionFixed!==e.positionFixed?this.updatePopperInstance():this.props.eventsEnabled!==e.eventsEnabled&&this.popperInstance&&(this.props.eventsEnabled?this.popperInstance.enableEventListeners():this.popperInstance.disableEventListeners()),t.placement!==this.state.placement&&this.scheduleUpdate()},i.prototype.componentWillUnmount=function(){j(this.props.innerRef,null),this.destroyPopperInstance()},i.prototype.render=function(){return x(this.props.children)({ref:this.setPopperNode,style:this.getPopperStyle(),placement:this.getPopperPlacement(),outOfBoundaries:this.getOutOfBoundariesState(),scheduleUpdate:this.scheduleUpdate,arrowProps:{ref:this.setArrowNode,style:this.getArrowStyle()}})},i}(o.Component);I.defaultProps={placement:"bottom",eventsEnabled:!0,referenceElement:void 0,positionFixed:!1};var C=p.placements;var T=function(){},A=function(a){function i(){var e,t;O(this,i);for(var n=arguments.length,r=Array(n),o=0;o<n;o++)r[o]=arguments[o];return(e=t=_(this,a.call.apply(a,[this].concat(r)))).refHandler=function(e){j(t.props.innerRef,e),j(t.props.getReferenceRef,e)},_(t,e)}return P(i,a),i.prototype.render=function(){return T(this.props.getReferenceRef,"`Reference` should not be used outside of a `Manager` component."),x(this.props.children)({ref:this.refHandler})},i}(o.Component);e.Popper=function(e){var n=e.referenceElement,r=function(e,t){var n={};for(var r in e)0<=t.indexOf(r)||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["referenceElement"]);return o.createElement(R.Consumer,null,function(e){var t=e.referenceNode;return o.createElement(I,w({referenceElement:void 0!==n?n:t},r))})},e.placements=C,e.Manager=E,e.Reference=function(n){return o.createElement(R.Consumer,null,function(e){var t=e.getReferenceRef;return o.createElement(A,w({getReferenceRef:t},n))})},Object.defineProperty(e,"__esModule",{value:!0})}); | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","react","popper.js"],t):t(e.ReactPopper={},e.React,e.Popper)}(this,function(e,o,p){"use strict";var d="default"in o?o.default:o;function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(){return(a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function n(e,t){e.prototype=Object.create(t.prototype),(e.prototype.constructor=e).__proto__=t}function s(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}p=p&&p.hasOwnProperty("default")?p.default:p;var t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function r(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function u(e,t){return e(t={exports:{}},t.exports),t.exports}var c=Object.getOwnPropertySymbols,f=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable;(function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}})()&&Object.assign;function h(){}var y=u(function(e){e.exports=function(){function e(e,t,n,r,o,p){if("SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"!==p){var i=new Error("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");throw i.name="Invariant Violation",i}}function t(){return e}var n={array:e.isRequired=e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t};return n.checkPropTypes=h,n.PropTypes=n}()}),v="__global_unique_id__",m=function(){return t[v]=(t[v]||0)+1};function b(e){return function(){return e}}var g=function(){};g.thatReturns=b,g.thatReturnsFalse=b(!1),g.thatReturnsTrue=b(!0),g.thatReturnsNull=b(null),g.thatReturnsThis=function(){return this},g.thatReturnsArgument=function(e){return e};var O=g,w=u(function(e,t){t.__esModule=!0;n(d);var a=n(y),s=n(m);n(O);function n(e){return e&&e.__esModule?e:{default:e}}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function f(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var l=1073741823;t.default=function(e,i){var t,n,r="__create-react-context-"+(0,s.default)()+"__",o=function(a){function s(){var e,t,n,r;u(this,s);for(var o=arguments.length,p=Array(o),i=0;i<o;i++)p[i]=arguments[i];return(e=t=c(this,a.call.apply(a,[this].concat(p)))).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(t){r=r.filter(function(e){return e!==t})},get:function(){return n},set:function(e,t){n=e,r.forEach(function(e){return e(n,t)})}}),c(t,e)}return f(s,a),s.prototype.getChildContext=function(){var e;return(e={})[r]=this.emitter,e},s.prototype.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var t=this.props.value,n=e.value,r=void 0;((o=t)===(p=n)?0!==o||1/o==1/p:o!=o&&p!=p)?r=0:(r="function"==typeof i?i(t,n):l,0!=(r|=0)&&this.emitter.set(e.value,r))}var o,p},s.prototype.render=function(){return this.props.children},s}(d.Component);o.childContextTypes=((t={})[r]=a.default.object.isRequired,t);var p=function(p){function i(){var e,n;u(this,i);for(var t=arguments.length,r=Array(t),o=0;o<t;o++)r[o]=arguments[o];return(e=n=c(this,p.call.apply(p,[this].concat(r)))).state={value:n.getValue()},n.onUpdate=function(e,t){0!=((0|n.observedBits)&t)&&n.setState({value:n.getValue()})},c(n,e)}return f(i,p),i.prototype.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?l:t},i.prototype.componentDidMount=function(){this.context[r]&&this.context[r].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?l:e},i.prototype.componentWillUnmount=function(){this.context[r]&&this.context[r].off(this.onUpdate)},i.prototype.getValue=function(){return this.context[r]?this.context[r].get():e},i.prototype.render=function(){return e=this.props.children,(Array.isArray(e)?e[0]:e)(this.state.value);var e},i}(d.Component);return p.contextTypes=((n={})[r]=a.default.object,n),{Provider:o,Consumer:p}},e.exports=t.default});r(w);var P=r(u(function(e,t){t.__esModule=!0;var n=o(d),r=o(w);function o(e){return e&&e.__esModule?e:{default:e}}t.default=n.default.createContext||r.default,e.exports=t.default}))({getReferenceRef:void 0,referenceNode:void 0}),_=function(t){function e(){var e;return i(s(s(e=t.call(this)||this)),"getReferenceRef",function(t){return e.setState(function(e){return{context:a({},e.context,{referenceNode:t})}})}),e.state={context:{getReferenceRef:e.getReferenceRef,referenceNode:void 0}},e}return n(e,t),e.prototype.render=function(){return o.createElement(P.Provider,{value:this.state.context},this.props.children)},e}(o.Component),R=function(e){return Array.isArray(e)?e[0]:e},E=function(e){if("function"==typeof e){for(var t=arguments.length,n=new Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return e.apply(void 0,n)}},x={position:"absolute",top:0,left:0,opacity:0,pointerEvents:"none"},j={},N=function(o){function e(){for(var n,e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return i(s(s(n=o.call.apply(o,[this].concat(t))||this)),"state",{data:void 0,placement:void 0}),i(s(s(n)),"popperInstance",void 0),i(s(s(n)),"popperNode",null),i(s(s(n)),"arrowNode",null),i(s(s(n)),"setPopperNode",function(e){e&&n.popperNode!==e&&(E(n.props.innerRef,e),n.popperNode=e,n.updatePopperInstance())}),i(s(s(n)),"setArrowNode",function(e){n.arrowNode=e}),i(s(s(n)),"updateStateModifier",{enabled:!0,order:900,fn:function(e){var t=e.placement;return n.setState({data:e,placement:t}),e}}),i(s(s(n)),"getOptions",function(){return{placement:n.props.placement,eventsEnabled:n.props.eventsEnabled,positionFixed:n.props.positionFixed,modifiers:a({},n.props.modifiers,{arrow:a({},n.props.modifiers&&n.props.modifiers.arrow,{enabled:!!n.arrowNode,element:n.arrowNode}),applyStyle:{enabled:!1},updateStateModifier:n.updateStateModifier})}}),i(s(s(n)),"getPopperStyle",function(){return n.popperNode&&n.state.data?a({position:n.state.data.offsets.popper.position},n.state.data.styles):x}),i(s(s(n)),"getPopperPlacement",function(){return n.state.data?n.state.placement:void 0}),i(s(s(n)),"getArrowStyle",function(){return n.arrowNode&&n.state.data?n.state.data.arrowStyles:j}),i(s(s(n)),"getOutOfBoundariesState",function(){return n.state.data?n.state.data.hide:void 0}),i(s(s(n)),"destroyPopperInstance",function(){n.popperInstance&&(n.popperInstance.destroy(),n.popperInstance=null)}),i(s(s(n)),"updatePopperInstance",function(){n.destroyPopperInstance();var e=s(s(n)).popperNode,t=n.props.referenceElement;t&&e&&(n.popperInstance=new p(t,e,n.getOptions()))}),i(s(s(n)),"scheduleUpdate",function(){n.popperInstance&&n.popperInstance.scheduleUpdate()}),n}n(e,o);var t=e.prototype;return t.componentDidUpdate=function(e,t){this.props.placement!==e.placement||this.props.referenceElement!==e.referenceElement||this.props.positionFixed!==e.positionFixed?this.updatePopperInstance():this.props.eventsEnabled!==e.eventsEnabled&&this.popperInstance&&(this.props.eventsEnabled?this.popperInstance.enableEventListeners():this.popperInstance.disableEventListeners()),t.placement!==this.state.placement&&this.scheduleUpdate()},t.componentWillUnmount=function(){E(this.props.innerRef,null),this.destroyPopperInstance()},t.render=function(){return R(this.props.children)({ref:this.setPopperNode,style:this.getPopperStyle(),placement:this.getPopperPlacement(),outOfBoundaries:this.getOutOfBoundariesState(),scheduleUpdate:this.scheduleUpdate,arrowProps:{ref:this.setArrowNode,style:this.getArrowStyle()}})},e}(o.Component);i(N,"defaultProps",{placement:"bottom",eventsEnabled:!0,referenceElement:void 0,positionFixed:!1});var S=p.placements;var I=function(){},C=function(o){function e(){for(var t,e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return i(s(s(t=o.call.apply(o,[this].concat(n))||this)),"refHandler",function(e){E(t.props.innerRef,e),E(t.props.getReferenceRef,e)}),t}return n(e,o),e.prototype.render=function(){return I(this.props.getReferenceRef,"`Reference` should not be used outside of a `Manager` component."),R(this.props.children)({ref:this.refHandler})},e}(o.Component);e.Popper=function(e){var n=e.referenceElement,r=function(e,t){if(null==e)return{};var n,r,o={},p=Object.keys(e);for(r=0;r<p.length;r++)n=p[r],0<=t.indexOf(n)||(o[n]=e[n]);return o}(e,["referenceElement"]);return o.createElement(P.Consumer,null,function(e){var t=e.referenceNode;return o.createElement(N,a({referenceElement:void 0!==n?n:t},r))})},e.placements=S,e.Manager=_,e.Reference=function(n){return o.createElement(P.Consumer,null,function(e){var t=e.getReferenceRef;return o.createElement(C,a({getReferenceRef:t},n))})},Object.defineProperty(e,"__esModule",{value:!0})}); |
@@ -1,81 +0,70 @@ | ||
'use strict'; | ||
"use strict"; | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.Test = undefined; | ||
exports.Test = void 0; | ||
var _extends2 = require('babel-runtime/helpers/extends'); | ||
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); | ||
var _extends3 = _interopRequireDefault(_extends2); | ||
var _react = _interopRequireDefault(require("react")); | ||
var _react = require('react'); | ||
var _ = require(".."); | ||
var _react2 = _interopRequireDefault(_react); | ||
var _ = require('..'); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
// Please remember to update also the TypeScript test files that can | ||
// be found under `/typings/tests` please. Thanks! 🤗 | ||
var Test = exports.Test = function Test() { | ||
var Test = function Test() { | ||
var _React$createElement; | ||
return _react2.default.createElement( | ||
_.Manager, | ||
null, | ||
_react2.default.createElement(_.Reference, null), | ||
_react2.default.createElement( | ||
_.Reference, | ||
null, | ||
function (_ref) { | ||
var ref = _ref.ref; | ||
return _react2.default.createElement('div', { ref: ref }); | ||
return _react.default.createElement(_.Manager, null, _react.default.createElement(_.Reference, null), _react.default.createElement(_.Reference, null, function (_ref) { | ||
var ref = _ref.ref; | ||
return _react.default.createElement("div", { | ||
ref: ref | ||
}); | ||
}), _react.default.createElement(_.Popper // $FlowExpectError: should be boolean | ||
, (_React$createElement = { | ||
eventsEnabled: "foo" | ||
}, _React$createElement["eventsEnabled"] = true, _React$createElement.positionFixed = 2, _React$createElement["positionFixed"] = true, _React$createElement.modifiers = { | ||
flip: { | ||
enabled: 'bar', | ||
order: 'foo' | ||
} | ||
}, _React$createElement["modifiers"] = { | ||
flip: { | ||
enabled: false | ||
} | ||
}, _React$createElement), function (_ref2) { | ||
var ref = _ref2.ref, | ||
style = _ref2.style, | ||
placement = _ref2.placement, | ||
outOfBoundaries = _ref2.outOfBoundaries, | ||
scheduleUpdate = _ref2.scheduleUpdate, | ||
arrowProps = _ref2.arrowProps; | ||
return _react.default.createElement("div", { | ||
ref: ref, | ||
style: (0, _extends2.default)({}, style, { | ||
opacity: outOfBoundaries ? 0 : 1 | ||
}), | ||
"data-placement": placement, | ||
onClick: function onClick() { | ||
return scheduleUpdate(); | ||
} | ||
), | ||
_react2.default.createElement( | ||
_.Popper | ||
// $FlowExpectError: should be boolean | ||
, | ||
(_React$createElement = { eventsEnabled: 'foo' | ||
}, _React$createElement['eventsEnabled'] = true, _React$createElement.positionFixed = 2, _React$createElement['positionFixed'] = true, _React$createElement.modifiers = { flip: { enabled: 'bar', order: 'foo' } }, _React$createElement['modifiers'] = { flip: { enabled: false } }, _React$createElement), | ||
function (_ref2) { | ||
var ref = _ref2.ref, | ||
style = _ref2.style, | ||
placement = _ref2.placement, | ||
outOfBoundaries = _ref2.outOfBoundaries, | ||
scheduleUpdate = _ref2.scheduleUpdate, | ||
arrowProps = _ref2.arrowProps; | ||
return _react2.default.createElement( | ||
'div', | ||
{ | ||
ref: ref, | ||
style: (0, _extends3.default)({}, style, { opacity: outOfBoundaries ? 0 : 1 }), | ||
'data-placement': placement, | ||
onClick: function onClick() { | ||
return scheduleUpdate(); | ||
} | ||
}, | ||
'Popper', | ||
_react2.default.createElement('div', { ref: arrowProps.ref, style: arrowProps.style }) | ||
); | ||
} | ||
), | ||
_react2.default.createElement( | ||
_.Popper, | ||
null, | ||
function (_ref3) { | ||
var ref = _ref3.ref, | ||
style = _ref3.style, | ||
placement = _ref3.placement; | ||
return _react2.default.createElement( | ||
'div', | ||
{ ref: ref, style: style, 'data-placement': placement }, | ||
'Popper' | ||
); | ||
} | ||
) | ||
); | ||
}; | ||
}, "Popper", _react.default.createElement("div", { | ||
ref: arrowProps.ref, | ||
style: arrowProps.style | ||
})); | ||
}), _react.default.createElement(_.Popper, null, function (_ref3) { | ||
var ref = _ref3.ref, | ||
style = _ref3.style, | ||
placement = _ref3.placement; | ||
return _react.default.createElement("div", { | ||
ref: ref, | ||
style: style, | ||
"data-placement": placement | ||
}, "Popper"); | ||
})); | ||
}; | ||
exports.Test = Test; |
@@ -1,30 +0,39 @@ | ||
'use strict'; | ||
"use strict"; | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.Reference = exports.Manager = exports.placements = exports.Popper = undefined; | ||
Object.defineProperty(exports, "Popper", { | ||
enumerable: true, | ||
get: function get() { | ||
return _Popper.default; | ||
} | ||
}); | ||
Object.defineProperty(exports, "placements", { | ||
enumerable: true, | ||
get: function get() { | ||
return _Popper.placements; | ||
} | ||
}); | ||
Object.defineProperty(exports, "Manager", { | ||
enumerable: true, | ||
get: function get() { | ||
return _Manager.default; | ||
} | ||
}); | ||
Object.defineProperty(exports, "Reference", { | ||
enumerable: true, | ||
get: function get() { | ||
return _Reference.default; | ||
} | ||
}); | ||
var _Popper = require('./Popper'); | ||
var _Popper = _interopRequireWildcard(require("./Popper")); | ||
var _Popper2 = _interopRequireDefault(_Popper); | ||
var _Manager = _interopRequireDefault(require("./Manager")); | ||
var _Manager = require('./Manager'); | ||
var _Manager2 = _interopRequireDefault(_Manager); | ||
var _Reference = require('./Reference'); | ||
var _Reference2 = _interopRequireDefault(_Reference); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
exports.Popper = _Popper2.default; | ||
exports.placements = _Popper.placements; | ||
exports.Manager = _Manager2.default; | ||
exports.Reference = _Reference2.default; | ||
// Public types | ||
// Public components | ||
var _Reference = _interopRequireDefault(require("./Reference")); |
"use strict"; | ||
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.ManagerContext = undefined; | ||
exports.default = exports.ManagerContext = void 0; | ||
var _extends2 = require("babel-runtime/helpers/extends"); | ||
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); | ||
var _extends3 = _interopRequireDefault(_extends2); | ||
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose")); | ||
var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck"); | ||
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); | ||
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); | ||
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); | ||
var _possibleConstructorReturn2 = require("babel-runtime/helpers/possibleConstructorReturn"); | ||
var React = _interopRequireWildcard(require("react")); | ||
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); | ||
var _createReactContext = _interopRequireDefault(require("create-react-context")); | ||
var _inherits2 = require("babel-runtime/helpers/inherits"); | ||
var ManagerContext = (0, _createReactContext.default)({ | ||
getReferenceRef: undefined, | ||
referenceNode: undefined | ||
}); | ||
exports.ManagerContext = ManagerContext; | ||
var _inherits3 = _interopRequireDefault(_inherits2); | ||
var Manager = | ||
/*#__PURE__*/ | ||
function (_React$Component) { | ||
(0, _inheritsLoose2.default)(Manager, _React$Component); | ||
var _react = require("react"); | ||
var React = _interopRequireWildcard(_react); | ||
var _createReactContext = require("create-react-context"); | ||
var _createReactContext2 = _interopRequireDefault(_createReactContext); | ||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var ManagerContext = exports.ManagerContext = (0, _createReactContext2.default)({ getReferenceRef: undefined, referenceNode: undefined }); | ||
var Manager = function (_React$Component) { | ||
(0, _inherits3.default)(Manager, _React$Component); | ||
function Manager() { | ||
(0, _classCallCheck3.default)(this, Manager); | ||
var _this; | ||
var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this)); | ||
_this.getReferenceRef = function (referenceNode) { | ||
_this = _React$Component.call(this) || this; | ||
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "getReferenceRef", function (referenceNode) { | ||
return _this.setState(function (_ref) { | ||
var context = _ref.context; | ||
return { | ||
context: (0, _extends3.default)({}, context, { referenceNode: referenceNode }) | ||
context: (0, _extends2.default)({}, context, { | ||
referenceNode: referenceNode | ||
}) | ||
}; | ||
}); | ||
}; | ||
}); | ||
_this.state = { | ||
@@ -64,8 +58,8 @@ context: { | ||
Manager.prototype.render = function render() { | ||
return React.createElement( | ||
ManagerContext.Provider, | ||
{ value: this.state.context }, | ||
this.props.children | ||
); | ||
var _proto = Manager.prototype; | ||
_proto.render = function render() { | ||
return React.createElement(ManagerContext.Provider, { | ||
value: this.state.context | ||
}, this.props.children); | ||
}; | ||
@@ -72,0 +66,0 @@ |
@@ -1,46 +0,31 @@ | ||
'use strict'; | ||
"use strict"; | ||
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.placements = exports.InnerPopper = undefined; | ||
exports.default = Popper; | ||
exports.placements = exports.InnerPopper = void 0; | ||
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties'); | ||
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); | ||
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); | ||
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); | ||
var _extends2 = require('babel-runtime/helpers/extends'); | ||
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose")); | ||
var _extends3 = _interopRequireDefault(_extends2); | ||
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); | ||
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); | ||
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); | ||
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); | ||
var React = _interopRequireWildcard(require("react")); | ||
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); | ||
var _popper = _interopRequireDefault(require("popper.js")); | ||
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); | ||
var _Manager = require("./Manager"); | ||
var _inherits2 = require('babel-runtime/helpers/inherits'); | ||
var _utils = require("./utils"); | ||
var _inherits3 = _interopRequireDefault(_inherits2); | ||
exports.default = Popper; | ||
var _react = require('react'); | ||
var React = _interopRequireWildcard(_react); | ||
var _popper = require('popper.js'); | ||
var _popper2 = _interopRequireDefault(_popper); | ||
var _Manager = require('./Manager'); | ||
var _utils = require('./utils'); | ||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var initialStyle = { | ||
@@ -53,23 +38,26 @@ position: 'absolute', | ||
}; | ||
var initialArrowStyle = {}; | ||
var InnerPopper = exports.InnerPopper = function (_React$Component) { | ||
(0, _inherits3.default)(InnerPopper, _React$Component); | ||
var InnerPopper = | ||
/*#__PURE__*/ | ||
function (_React$Component) { | ||
(0, _inheritsLoose2.default)(InnerPopper, _React$Component); | ||
function InnerPopper() { | ||
var _temp, _this, _ret; | ||
var _this; | ||
(0, _classCallCheck3.default)(this, InnerPopper); | ||
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { | ||
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { | ||
args[_key] = arguments[_key]; | ||
} | ||
return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = { | ||
_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; | ||
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "state", { | ||
data: undefined, | ||
placement: undefined | ||
}, _this.popperNode = null, _this.arrowNode = null, _this.setPopperNode = function (popperNode) { | ||
}); | ||
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "popperInstance", void 0); | ||
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "popperNode", null); | ||
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "arrowNode", null); | ||
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "setPopperNode", function (popperNode) { | ||
if (!popperNode || _this.popperNode === popperNode) return; | ||
(0, _utils.safeInvoke)(_this.props.innerRef, popperNode); | ||
@@ -79,5 +67,7 @@ _this.popperNode = popperNode; | ||
_this.updatePopperInstance(); | ||
}, _this.setArrowNode = function (arrowNode) { | ||
}); | ||
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "setArrowNode", function (arrowNode) { | ||
_this.arrowNode = arrowNode; | ||
}, _this.updateStateModifier = { | ||
}); | ||
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "updateStateModifier", { | ||
enabled: true, | ||
@@ -88,6 +78,11 @@ order: 900, | ||
_this.setState({ data: data, placement: placement }); | ||
_this.setState({ | ||
data: data, | ||
placement: placement | ||
}); | ||
return data; | ||
} | ||
}, _this.getOptions = function () { | ||
}); | ||
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "getOptions", function () { | ||
return { | ||
@@ -97,45 +92,56 @@ placement: _this.props.placement, | ||
positionFixed: _this.props.positionFixed, | ||
modifiers: (0, _extends3.default)({}, _this.props.modifiers, { | ||
arrow: (0, _extends3.default)({}, _this.props.modifiers && _this.props.modifiers.arrow, { | ||
modifiers: (0, _extends2.default)({}, _this.props.modifiers, { | ||
arrow: (0, _extends2.default)({}, _this.props.modifiers && _this.props.modifiers.arrow, { | ||
enabled: !!_this.arrowNode, | ||
element: _this.arrowNode | ||
}), | ||
applyStyle: { enabled: false }, | ||
applyStyle: { | ||
enabled: false | ||
}, | ||
updateStateModifier: _this.updateStateModifier | ||
}) | ||
}; | ||
}, _this.getPopperStyle = function () { | ||
return !_this.popperNode || !_this.state.data ? initialStyle : (0, _extends3.default)({ | ||
}); | ||
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "getPopperStyle", function () { | ||
return !_this.popperNode || !_this.state.data ? initialStyle : (0, _extends2.default)({ | ||
position: _this.state.data.offsets.popper.position | ||
}, _this.state.data.styles); | ||
}, _this.getPopperPlacement = function () { | ||
}); | ||
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "getPopperPlacement", function () { | ||
return !_this.state.data ? undefined : _this.state.placement; | ||
}, _this.getArrowStyle = function () { | ||
}); | ||
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "getArrowStyle", function () { | ||
return !_this.arrowNode || !_this.state.data ? initialArrowStyle : _this.state.data.arrowStyles; | ||
}, _this.getOutOfBoundariesState = function () { | ||
}); | ||
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "getOutOfBoundariesState", function () { | ||
return _this.state.data ? _this.state.data.hide : undefined; | ||
}, _this.destroyPopperInstance = function () { | ||
}); | ||
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "destroyPopperInstance", function () { | ||
if (!_this.popperInstance) return; | ||
_this.popperInstance.destroy(); | ||
_this.popperInstance = null; | ||
}, _this.updatePopperInstance = function () { | ||
}); | ||
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "updatePopperInstance", function () { | ||
_this.destroyPopperInstance(); | ||
var _this2 = _this, | ||
popperNode = _this2.popperNode; | ||
var _assertThisInitialize = (0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), | ||
popperNode = _assertThisInitialize.popperNode; | ||
var referenceElement = _this.props.referenceElement; | ||
if (!referenceElement || !popperNode) return; | ||
_this.popperInstance = new _popper2.default(referenceElement, popperNode, _this.getOptions()); | ||
}, _this.scheduleUpdate = function () { | ||
_this.popperInstance = new _popper.default(referenceElement, popperNode, _this.getOptions()); | ||
}); | ||
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "scheduleUpdate", function () { | ||
if (_this.popperInstance) { | ||
_this.popperInstance.scheduleUpdate(); | ||
} | ||
}, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); | ||
}); | ||
return _this; | ||
} | ||
InnerPopper.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) { | ||
var _proto = InnerPopper.prototype; | ||
_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) { | ||
// If the Popper.js options have changed, update the instance (destroy + create) | ||
@@ -146,8 +152,8 @@ if (this.props.placement !== prevProps.placement || this.props.referenceElement !== prevProps.referenceElement || this.props.positionFixed !== prevProps.positionFixed) { | ||
this.props.eventsEnabled ? this.popperInstance.enableEventListeners() : this.popperInstance.disableEventListeners(); | ||
} | ||
// A placement difference in state means popper determined a new placement | ||
} // A placement difference in state means popper determined a new placement | ||
// apart from the props value. By the time the popper element is rendered with | ||
// the new position Popper has already measured it, if the place change triggers | ||
// a size change it will result in a misaligned popper. So we schedule an update to be sure. | ||
if (prevState.placement !== this.state.placement) { | ||
@@ -158,3 +164,3 @@ this.scheduleUpdate(); | ||
InnerPopper.prototype.componentWillUnmount = function componentWillUnmount() { | ||
_proto.componentWillUnmount = function componentWillUnmount() { | ||
(0, _utils.safeInvoke)(this.props.innerRef, null); | ||
@@ -164,3 +170,3 @@ this.destroyPopperInstance(); | ||
InnerPopper.prototype.render = function render() { | ||
_proto.render = function render() { | ||
return (0, _utils.unwrapArray)(this.props.children)({ | ||
@@ -182,3 +188,4 @@ ref: this.setPopperNode, | ||
InnerPopper.defaultProps = { | ||
exports.InnerPopper = InnerPopper; | ||
(0, _defineProperty2.default)(InnerPopper, "defaultProps", { | ||
placement: 'bottom', | ||
@@ -188,21 +195,15 @@ eventsEnabled: true, | ||
positionFixed: false | ||
}; | ||
}); | ||
var placements = _popper.default.placements; | ||
exports.placements = placements; | ||
var placements = _popper2.default.placements; | ||
exports.placements = placements; | ||
function Popper(_ref) { | ||
var referenceElement = _ref.referenceElement, | ||
props = (0, _objectWithoutProperties3.default)(_ref, ['referenceElement']); | ||
return React.createElement( | ||
_Manager.ManagerContext.Consumer, | ||
null, | ||
function (_ref2) { | ||
var referenceNode = _ref2.referenceNode; | ||
return React.createElement(InnerPopper, (0, _extends3.default)({ | ||
referenceElement: referenceElement !== undefined ? referenceElement : referenceNode | ||
}, props)); | ||
} | ||
); | ||
props = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["referenceElement"]); | ||
return React.createElement(_Manager.ManagerContext.Consumer, null, function (_ref2) { | ||
var referenceNode = _ref2.referenceNode; | ||
return React.createElement(InnerPopper, (0, _extends2.default)({ | ||
referenceElement: referenceElement !== undefined ? referenceElement : referenceNode | ||
}, props)); | ||
}); | ||
} |
@@ -1,62 +0,55 @@ | ||
'use strict'; | ||
"use strict"; | ||
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
var _extends2 = require('babel-runtime/helpers/extends'); | ||
var _extends3 = _interopRequireDefault(_extends2); | ||
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); | ||
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); | ||
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); | ||
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); | ||
var _inherits2 = require('babel-runtime/helpers/inherits'); | ||
var _inherits3 = _interopRequireDefault(_inherits2); | ||
exports.default = Reference; | ||
var _react = require('react'); | ||
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); | ||
var React = _interopRequireWildcard(_react); | ||
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose")); | ||
var _warning = require('warning'); | ||
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); | ||
var _warning2 = _interopRequireDefault(_warning); | ||
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); | ||
var _Manager = require('./Manager'); | ||
var React = _interopRequireWildcard(require("react")); | ||
var _utils = require('./utils'); | ||
var _warning = _interopRequireDefault(require("warning")); | ||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } | ||
var _Manager = require("./Manager"); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var _utils = require("./utils"); | ||
var InnerReference = function (_React$Component) { | ||
(0, _inherits3.default)(InnerReference, _React$Component); | ||
var InnerReference = | ||
/*#__PURE__*/ | ||
function (_React$Component) { | ||
(0, _inheritsLoose2.default)(InnerReference, _React$Component); | ||
function InnerReference() { | ||
var _temp, _this, _ret; | ||
var _this; | ||
(0, _classCallCheck3.default)(this, InnerReference); | ||
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { | ||
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { | ||
args[_key] = arguments[_key]; | ||
} | ||
return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.refHandler = function (node) { | ||
_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; | ||
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "refHandler", function (node) { | ||
(0, _utils.safeInvoke)(_this.props.innerRef, node); | ||
(0, _utils.safeInvoke)(_this.props.getReferenceRef, node); | ||
}, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); | ||
}); | ||
return _this; | ||
} | ||
InnerReference.prototype.render = function render() { | ||
(0, _warning2.default)(this.props.getReferenceRef, '`Reference` should not be used outside of a `Manager` component.'); | ||
return (0, _utils.unwrapArray)(this.props.children)({ ref: this.refHandler }); | ||
var _proto = InnerReference.prototype; | ||
_proto.render = function render() { | ||
(0, _warning.default)(this.props.getReferenceRef, '`Reference` should not be used outside of a `Manager` component.'); | ||
return (0, _utils.unwrapArray)(this.props.children)({ | ||
ref: this.refHandler | ||
}); | ||
}; | ||
@@ -68,10 +61,8 @@ | ||
function Reference(props) { | ||
return React.createElement( | ||
_Manager.ManagerContext.Consumer, | ||
null, | ||
function (_ref) { | ||
var getReferenceRef = _ref.getReferenceRef; | ||
return React.createElement(InnerReference, (0, _extends3.default)({ getReferenceRef: getReferenceRef }, props)); | ||
} | ||
); | ||
return React.createElement(_Manager.ManagerContext.Consumer, null, function (_ref) { | ||
var getReferenceRef = _ref.getReferenceRef; | ||
return React.createElement(InnerReference, (0, _extends2.default)({ | ||
getReferenceRef: getReferenceRef | ||
}, props)); | ||
}); | ||
} |
@@ -6,4 +6,4 @@ "use strict"; | ||
}); | ||
exports.safeInvoke = exports.unwrapArray = void 0; | ||
/** | ||
@@ -13,6 +13,5 @@ * Takes an argument and if it's an array, returns the first item in the array, | ||
*/ | ||
var unwrapArray = exports.unwrapArray = function unwrapArray(arg) { | ||
var unwrapArray = function unwrapArray(arg) { | ||
return Array.isArray(arg) ? arg[0] : arg; | ||
}; | ||
/** | ||
@@ -22,10 +21,16 @@ * Takes a maybe-undefined function and arbitrary args and invokes the function | ||
*/ | ||
var safeInvoke = exports.safeInvoke = function safeInvoke(fn) { | ||
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
args[_key - 1] = arguments[_key]; | ||
} | ||
exports.unwrapArray = unwrapArray; | ||
var safeInvoke = function safeInvoke(fn) { | ||
if (typeof fn === "function") { | ||
return fn.apply(undefined, args); | ||
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
args[_key - 1] = arguments[_key]; | ||
} | ||
return fn.apply(void 0, args); | ||
} | ||
}; | ||
}; | ||
exports.safeInvoke = safeInvoke; |
@@ -1,68 +0,56 @@ | ||
import _extends from 'babel-runtime/helpers/extends'; | ||
import _extends from "@babel/runtime/helpers/extends"; | ||
// Please remember to update also the TypeScript test files that can | ||
// be found under `/typings/tests` please. Thanks! 🤗 | ||
import React from 'react'; | ||
import { Manager, Reference, Popper } from '..'; | ||
export var Test = function Test() { | ||
var _React$createElement; | ||
return React.createElement( | ||
Manager, | ||
null, | ||
React.createElement(Reference, null), | ||
React.createElement( | ||
Reference, | ||
null, | ||
function (_ref) { | ||
var ref = _ref.ref; | ||
return React.createElement('div', { ref: ref }); | ||
return React.createElement(Manager, null, React.createElement(Reference, null), React.createElement(Reference, null, function (_ref) { | ||
var ref = _ref.ref; | ||
return React.createElement("div", { | ||
ref: ref | ||
}); | ||
}), React.createElement(Popper // $FlowExpectError: should be boolean | ||
, (_React$createElement = { | ||
eventsEnabled: "foo" | ||
}, _React$createElement["eventsEnabled"] = true, _React$createElement.positionFixed = 2, _React$createElement["positionFixed"] = true, _React$createElement.modifiers = { | ||
flip: { | ||
enabled: 'bar', | ||
order: 'foo' | ||
} | ||
}, _React$createElement["modifiers"] = { | ||
flip: { | ||
enabled: false | ||
} | ||
}, _React$createElement), function (_ref2) { | ||
var ref = _ref2.ref, | ||
style = _ref2.style, | ||
placement = _ref2.placement, | ||
outOfBoundaries = _ref2.outOfBoundaries, | ||
scheduleUpdate = _ref2.scheduleUpdate, | ||
arrowProps = _ref2.arrowProps; | ||
return React.createElement("div", { | ||
ref: ref, | ||
style: _extends({}, style, { | ||
opacity: outOfBoundaries ? 0 : 1 | ||
}), | ||
"data-placement": placement, | ||
onClick: function onClick() { | ||
return scheduleUpdate(); | ||
} | ||
), | ||
React.createElement( | ||
Popper | ||
// $FlowExpectError: should be boolean | ||
, | ||
(_React$createElement = { eventsEnabled: 'foo' | ||
}, _React$createElement['eventsEnabled'] = true, _React$createElement.positionFixed = 2, _React$createElement['positionFixed'] = true, _React$createElement.modifiers = { flip: { enabled: 'bar', order: 'foo' } }, _React$createElement['modifiers'] = { flip: { enabled: false } }, _React$createElement), | ||
function (_ref2) { | ||
var ref = _ref2.ref, | ||
style = _ref2.style, | ||
placement = _ref2.placement, | ||
outOfBoundaries = _ref2.outOfBoundaries, | ||
scheduleUpdate = _ref2.scheduleUpdate, | ||
arrowProps = _ref2.arrowProps; | ||
return React.createElement( | ||
'div', | ||
{ | ||
ref: ref, | ||
style: _extends({}, style, { opacity: outOfBoundaries ? 0 : 1 }), | ||
'data-placement': placement, | ||
onClick: function onClick() { | ||
return scheduleUpdate(); | ||
} | ||
}, | ||
'Popper', | ||
React.createElement('div', { ref: arrowProps.ref, style: arrowProps.style }) | ||
); | ||
} | ||
), | ||
React.createElement( | ||
Popper, | ||
null, | ||
function (_ref3) { | ||
var ref = _ref3.ref, | ||
style = _ref3.style, | ||
placement = _ref3.placement; | ||
return React.createElement( | ||
'div', | ||
{ ref: ref, style: style, 'data-placement': placement }, | ||
'Popper' | ||
); | ||
} | ||
) | ||
); | ||
}, "Popper", React.createElement("div", { | ||
ref: arrowProps.ref, | ||
style: arrowProps.style | ||
})); | ||
}), React.createElement(Popper, null, function (_ref3) { | ||
var ref = _ref3.ref, | ||
style = _ref3.style, | ||
placement = _ref3.placement; | ||
return React.createElement("div", { | ||
ref: ref, | ||
style: style, | ||
"data-placement": placement | ||
}, "Popper"); | ||
})); | ||
}; |
@@ -1,3 +0,1 @@ | ||
// Public components | ||
@@ -7,4 +5,2 @@ import Popper, { placements } from './Popper'; | ||
import Reference from './Reference'; | ||
export { Popper, placements, Manager, Reference }; | ||
// Public types | ||
export { Popper, placements, Manager, Reference }; // Public types |
@@ -1,26 +0,32 @@ | ||
import _extends from "babel-runtime/helpers/extends"; | ||
import _classCallCheck from "babel-runtime/helpers/classCallCheck"; | ||
import _possibleConstructorReturn from "babel-runtime/helpers/possibleConstructorReturn"; | ||
import _inherits from "babel-runtime/helpers/inherits"; | ||
import _extends from "@babel/runtime/helpers/extends"; | ||
import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose"; | ||
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized"; | ||
import _defineProperty from "@babel/runtime/helpers/defineProperty"; | ||
import * as React from "react"; | ||
import createContext from "create-react-context"; | ||
export var ManagerContext = createContext({ | ||
getReferenceRef: undefined, | ||
referenceNode: undefined | ||
}); | ||
export var ManagerContext = createContext({ getReferenceRef: undefined, referenceNode: undefined }); | ||
var Manager = | ||
/*#__PURE__*/ | ||
function (_React$Component) { | ||
_inheritsLoose(Manager, _React$Component); | ||
var Manager = function (_React$Component) { | ||
_inherits(Manager, _React$Component); | ||
function Manager() { | ||
_classCallCheck(this, Manager); | ||
var _this; | ||
var _this = _possibleConstructorReturn(this, _React$Component.call(this)); | ||
_this = _React$Component.call(this) || this; | ||
_this.getReferenceRef = function (referenceNode) { | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "getReferenceRef", function (referenceNode) { | ||
return _this.setState(function (_ref) { | ||
var context = _ref.context; | ||
return { | ||
context: _extends({}, context, { referenceNode: referenceNode }) | ||
context: _extends({}, context, { | ||
referenceNode: referenceNode | ||
}) | ||
}; | ||
}); | ||
}; | ||
}); | ||
@@ -36,8 +42,8 @@ _this.state = { | ||
Manager.prototype.render = function render() { | ||
return React.createElement( | ||
ManagerContext.Provider, | ||
{ value: this.state.context }, | ||
this.props.children | ||
); | ||
var _proto = Manager.prototype; | ||
_proto.render = function render() { | ||
return React.createElement(ManagerContext.Provider, { | ||
value: this.state.context | ||
}, this.props.children); | ||
}; | ||
@@ -48,2 +54,2 @@ | ||
export default Manager; | ||
export { Manager as default }; |
@@ -1,12 +0,10 @@ | ||
import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties'; | ||
import _extends from 'babel-runtime/helpers/extends'; | ||
import _classCallCheck from 'babel-runtime/helpers/classCallCheck'; | ||
import _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn'; | ||
import _inherits from 'babel-runtime/helpers/inherits'; | ||
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose"; | ||
import _extends from "@babel/runtime/helpers/extends"; | ||
import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose"; | ||
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized"; | ||
import _defineProperty from "@babel/runtime/helpers/defineProperty"; | ||
import * as React from 'react'; | ||
import PopperJS from 'popper.js'; | ||
import { ManagerContext } from './Manager'; | ||
import { safeInvoke, unwrapArray } from './utils'; | ||
var initialStyle = { | ||
@@ -19,23 +17,30 @@ position: 'absolute', | ||
}; | ||
var initialArrowStyle = {}; | ||
export var InnerPopper = | ||
/*#__PURE__*/ | ||
function (_React$Component) { | ||
_inheritsLoose(InnerPopper, _React$Component); | ||
export var InnerPopper = function (_React$Component) { | ||
_inherits(InnerPopper, _React$Component); | ||
function InnerPopper() { | ||
var _temp, _this, _ret; | ||
var _this; | ||
_classCallCheck(this, InnerPopper); | ||
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { | ||
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { | ||
args[_key] = arguments[_key]; | ||
} | ||
return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = { | ||
_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "state", { | ||
data: undefined, | ||
placement: undefined | ||
}, _this.popperNode = null, _this.arrowNode = null, _this.setPopperNode = function (popperNode) { | ||
}); | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "popperInstance", void 0); | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "popperNode", null); | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "arrowNode", null); | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "setPopperNode", function (popperNode) { | ||
if (!popperNode || _this.popperNode === popperNode) return; | ||
safeInvoke(_this.props.innerRef, popperNode); | ||
@@ -45,5 +50,9 @@ _this.popperNode = popperNode; | ||
_this.updatePopperInstance(); | ||
}, _this.setArrowNode = function (arrowNode) { | ||
}); | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "setArrowNode", function (arrowNode) { | ||
_this.arrowNode = arrowNode; | ||
}, _this.updateStateModifier = { | ||
}); | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "updateStateModifier", { | ||
enabled: true, | ||
@@ -54,6 +63,12 @@ order: 900, | ||
_this.setState({ data: data, placement: placement }); | ||
_this.setState({ | ||
data: data, | ||
placement: placement | ||
}); | ||
return data; | ||
} | ||
}, _this.getOptions = function () { | ||
}); | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "getOptions", function () { | ||
return { | ||
@@ -68,40 +83,59 @@ placement: _this.props.placement, | ||
}), | ||
applyStyle: { enabled: false }, | ||
applyStyle: { | ||
enabled: false | ||
}, | ||
updateStateModifier: _this.updateStateModifier | ||
}) | ||
}; | ||
}, _this.getPopperStyle = function () { | ||
}); | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "getPopperStyle", function () { | ||
return !_this.popperNode || !_this.state.data ? initialStyle : _extends({ | ||
position: _this.state.data.offsets.popper.position | ||
}, _this.state.data.styles); | ||
}, _this.getPopperPlacement = function () { | ||
}); | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "getPopperPlacement", function () { | ||
return !_this.state.data ? undefined : _this.state.placement; | ||
}, _this.getArrowStyle = function () { | ||
}); | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "getArrowStyle", function () { | ||
return !_this.arrowNode || !_this.state.data ? initialArrowStyle : _this.state.data.arrowStyles; | ||
}, _this.getOutOfBoundariesState = function () { | ||
}); | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "getOutOfBoundariesState", function () { | ||
return _this.state.data ? _this.state.data.hide : undefined; | ||
}, _this.destroyPopperInstance = function () { | ||
}); | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "destroyPopperInstance", function () { | ||
if (!_this.popperInstance) return; | ||
_this.popperInstance.destroy(); | ||
_this.popperInstance = null; | ||
}, _this.updatePopperInstance = function () { | ||
}); | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "updatePopperInstance", function () { | ||
_this.destroyPopperInstance(); | ||
var _this2 = _this, | ||
popperNode = _this2.popperNode; | ||
var _assertThisInitialize = _assertThisInitialized(_assertThisInitialized(_this)), | ||
popperNode = _assertThisInitialize.popperNode; | ||
var referenceElement = _this.props.referenceElement; | ||
if (!referenceElement || !popperNode) return; | ||
_this.popperInstance = new PopperJS(referenceElement, popperNode, _this.getOptions()); | ||
}); | ||
_this.popperInstance = new PopperJS(referenceElement, popperNode, _this.getOptions()); | ||
}, _this.scheduleUpdate = function () { | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "scheduleUpdate", function () { | ||
if (_this.popperInstance) { | ||
_this.popperInstance.scheduleUpdate(); | ||
} | ||
}, _temp), _possibleConstructorReturn(_this, _ret); | ||
}); | ||
return _this; | ||
} | ||
InnerPopper.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) { | ||
var _proto = InnerPopper.prototype; | ||
_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) { | ||
// If the Popper.js options have changed, update the instance (destroy + create) | ||
@@ -112,8 +146,8 @@ if (this.props.placement !== prevProps.placement || this.props.referenceElement !== prevProps.referenceElement || this.props.positionFixed !== prevProps.positionFixed) { | ||
this.props.eventsEnabled ? this.popperInstance.enableEventListeners() : this.popperInstance.disableEventListeners(); | ||
} | ||
// A placement difference in state means popper determined a new placement | ||
} // A placement difference in state means popper determined a new placement | ||
// apart from the props value. By the time the popper element is rendered with | ||
// the new position Popper has already measured it, if the place change triggers | ||
// a size change it will result in a misaligned popper. So we schedule an update to be sure. | ||
if (prevState.placement !== this.state.placement) { | ||
@@ -124,3 +158,3 @@ this.scheduleUpdate(); | ||
InnerPopper.prototype.componentWillUnmount = function componentWillUnmount() { | ||
_proto.componentWillUnmount = function componentWillUnmount() { | ||
safeInvoke(this.props.innerRef, null); | ||
@@ -130,3 +164,3 @@ this.destroyPopperInstance(); | ||
InnerPopper.prototype.render = function render() { | ||
_proto.render = function render() { | ||
return unwrapArray(this.props.children)({ | ||
@@ -148,3 +182,3 @@ ref: this.setPopperNode, | ||
InnerPopper.defaultProps = { | ||
_defineProperty(InnerPopper, "defaultProps", { | ||
placement: 'bottom', | ||
@@ -154,20 +188,16 @@ eventsEnabled: true, | ||
positionFixed: false | ||
}; | ||
}); | ||
var placements = PopperJS.placements; | ||
export { placements }; | ||
export default function Popper(_ref) { | ||
var referenceElement = _ref.referenceElement, | ||
props = _objectWithoutProperties(_ref, ['referenceElement']); | ||
props = _objectWithoutPropertiesLoose(_ref, ["referenceElement"]); | ||
return React.createElement( | ||
ManagerContext.Consumer, | ||
null, | ||
function (_ref2) { | ||
var referenceNode = _ref2.referenceNode; | ||
return React.createElement(InnerPopper, _extends({ | ||
referenceElement: referenceElement !== undefined ? referenceElement : referenceNode | ||
}, props)); | ||
} | ||
); | ||
return React.createElement(ManagerContext.Consumer, null, function (_ref2) { | ||
var referenceNode = _ref2.referenceNode; | ||
return React.createElement(InnerPopper, _extends({ | ||
referenceElement: referenceElement !== undefined ? referenceElement : referenceNode | ||
}, props)); | ||
}); | ||
} |
@@ -1,5 +0,5 @@ | ||
import _extends from 'babel-runtime/helpers/extends'; | ||
import _classCallCheck from 'babel-runtime/helpers/classCallCheck'; | ||
import _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn'; | ||
import _inherits from 'babel-runtime/helpers/inherits'; | ||
import _extends from "@babel/runtime/helpers/extends"; | ||
import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose"; | ||
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized"; | ||
import _defineProperty from "@babel/runtime/helpers/defineProperty"; | ||
import * as React from 'react'; | ||
@@ -10,23 +10,31 @@ import warning from 'warning'; | ||
var InnerReference = function (_React$Component) { | ||
_inherits(InnerReference, _React$Component); | ||
var InnerReference = | ||
/*#__PURE__*/ | ||
function (_React$Component) { | ||
_inheritsLoose(InnerReference, _React$Component); | ||
function InnerReference() { | ||
var _temp, _this, _ret; | ||
var _this; | ||
_classCallCheck(this, InnerReference); | ||
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { | ||
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { | ||
args[_key] = arguments[_key]; | ||
} | ||
return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.refHandler = function (node) { | ||
_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "refHandler", function (node) { | ||
safeInvoke(_this.props.innerRef, node); | ||
safeInvoke(_this.props.getReferenceRef, node); | ||
}, _temp), _possibleConstructorReturn(_this, _ret); | ||
}); | ||
return _this; | ||
} | ||
InnerReference.prototype.render = function render() { | ||
var _proto = InnerReference.prototype; | ||
_proto.render = function render() { | ||
warning(this.props.getReferenceRef, '`Reference` should not be used outside of a `Manager` component.'); | ||
return unwrapArray(this.props.children)({ ref: this.refHandler }); | ||
return unwrapArray(this.props.children)({ | ||
ref: this.refHandler | ||
}); | ||
}; | ||
@@ -38,10 +46,8 @@ | ||
export default function Reference(props) { | ||
return React.createElement( | ||
ManagerContext.Consumer, | ||
null, | ||
function (_ref) { | ||
var getReferenceRef = _ref.getReferenceRef; | ||
return React.createElement(InnerReference, _extends({ getReferenceRef: getReferenceRef }, props)); | ||
} | ||
); | ||
return React.createElement(ManagerContext.Consumer, null, function (_ref) { | ||
var getReferenceRef = _ref.getReferenceRef; | ||
return React.createElement(InnerReference, _extends({ | ||
getReferenceRef: getReferenceRef | ||
}, props)); | ||
}); | ||
} |
@@ -1,3 +0,1 @@ | ||
/** | ||
@@ -10,3 +8,2 @@ * Takes an argument and if it's an array, returns the first item in the array, | ||
}; | ||
/** | ||
@@ -16,10 +13,11 @@ * Takes a maybe-undefined function and arbitrary args and invokes the function | ||
*/ | ||
export var safeInvoke = function safeInvoke(fn) { | ||
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
args[_key - 1] = arguments[_key]; | ||
} | ||
if (typeof fn === "function") { | ||
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
args[_key - 1] = arguments[_key]; | ||
} | ||
if (typeof fn === "function") { | ||
return fn.apply(undefined, args); | ||
return fn.apply(void 0, args); | ||
} | ||
}; |
{ | ||
"name": "react-popper", | ||
"version": "1.3.1", | ||
"version": "1.3.2", | ||
"description": "React wrapper around Popper.js", | ||
@@ -61,3 +61,3 @@ "license": "MIT", | ||
"dependencies": { | ||
"babel-runtime": "6.x.x", | ||
"@babel/runtime": "^7.1.2", | ||
"create-react-context": "<=0.2.2", | ||
@@ -70,14 +70,16 @@ "popper.js": "^1.14.4", | ||
"devDependencies": { | ||
"@babel/cli": "^7.1.2", | ||
"@babel/core": "^7.1.2", | ||
"@babel/plugin-external-helpers": "^7.0.0", | ||
"@babel/plugin-proposal-class-properties": "^7.1.0", | ||
"@babel/plugin-transform-modules-commonjs": "^7.1.0", | ||
"@babel/plugin-transform-runtime": "^7.1.0", | ||
"@babel/preset-env": "^7.1.0", | ||
"@babel/preset-flow": "^7.0.0", | ||
"@babel/preset-react": "^7.0.0", | ||
"@babel/preset-stage-2": "^7.0.0", | ||
"@types/react": "^16.1.0", | ||
"babel-cli": "^6.26.0", | ||
"babel-core": "^6.26.0", | ||
"babel-eslint": "^8.2.2", | ||
"babel-jest": "^22.4.3", | ||
"babel-plugin-external-helpers": "^6.22.0", | ||
"babel-plugin-transform-class-properties": "^6.24.1", | ||
"babel-plugin-transform-es2015-modules-commonjs": "^6.26.2", | ||
"babel-plugin-transform-runtime": "^6.23.0", | ||
"babel-preset-env": "^1.6.1", | ||
"babel-preset-react": "^6.24.1", | ||
"babel-preset-stage-2": "^6.24.1", | ||
"babel-core": "^7.0.0-bridge.0", | ||
"babel-eslint": "^10.0.1", | ||
"babel-jest": "^23.6.0", | ||
"cross-env": "^5.1.4", | ||
@@ -99,3 +101,3 @@ "emotion": "^9.1.1", | ||
"jest": "^22.4.3", | ||
"parcel-bundler": "^1.6.2", | ||
"parcel-bundler": "^1.10.1", | ||
"prettier": "^1.11.1", | ||
@@ -109,4 +111,4 @@ "pretty-quick": "^1.4.1", | ||
"rimraf": "^2.6.2", | ||
"rollup": "^0.59.3", | ||
"rollup-plugin-babel": "^3.0.4", | ||
"rollup": "^0.60.0", | ||
"rollup-plugin-babel": "^4.0.3", | ||
"rollup-plugin-commonjs": "^9.1.3", | ||
@@ -113,0 +115,0 @@ "rollup-plugin-node-resolve": "^3.3.0", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
122758
2036
47
+ Added@babel/runtime@^7.1.2
+ Added@babel/runtime@7.25.6(transitive)
+ Addedregenerator-runtime@0.14.1(transitive)
- Removedbabel-runtime@6.x.x
- Removedbabel-runtime@6.26.0(transitive)
- Removedcore-js@2.6.12(transitive)
- Removedregenerator-runtime@0.11.1(transitive)