@gtarojs/api
Version:
Taro common API
1,651 lines (1,383 loc) • 107 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var runtime = require('@gtarojs/runtime');
function _typeof(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
_typeof = function (obj) {
return typeof obj;
};
} else {
_typeof = function (obj) {
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};
}
return _typeof(obj);
}
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
function ownKeys(object, enumerableOnly) {
var keys = Object.keys(object);
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
if (enumerableOnly) symbols = symbols.filter(function (sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
});
keys.push.apply(keys, symbols);
}
return keys;
}
function _objectSpread2(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i] != null ? arguments[i] : {};
if (i % 2) {
ownKeys(Object(source), true).forEach(function (key) {
_defineProperty(target, key, source[key]);
});
} else if (Object.getOwnPropertyDescriptors) {
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
} else {
ownKeys(Object(source)).forEach(function (key) {
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
}
return target;
}
if (typeof Object.assign !== 'function') {
// Must be writable: true, enumerable: false, configurable: true
Object.assign = function (target) {
// .length of function is 2
if (target == null) {
// TypeError if undefined or null
throw new TypeError('Cannot convert undefined or null to object');
}
var to = Object(target);
for (var index = 1; index < arguments.length; index++) {
var nextSource = arguments[index];
if (nextSource != null) {
// Skip over if undefined or null
for (var nextKey in nextSource) {
// Avoid bugs when hasOwnProperty is shadowed
if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
to[nextKey] = nextSource[nextKey];
}
}
}
}
return to;
};
}
if (typeof Object.defineProperties !== 'function') {
Object.defineProperties = function (obj, properties) {
function convertToDescriptor(desc) {
function hasProperty(obj, prop) {
return Object.prototype.hasOwnProperty.call(obj, prop);
}
function isCallable(v) {
// NB: modify as necessary if other values than functions are callable.
return typeof v === 'function';
}
if (_typeof(desc) !== 'object' || desc === null) {
throw new TypeError('bad desc');
}
var d = {};
if (hasProperty(desc, 'enumerable')) d.enumerable = !!desc.enumerable;
if (hasProperty(desc, 'configurable')) {
d.configurable = !!desc.configurable;
}
if (hasProperty(desc, 'value')) d.value = desc.value;
if (hasProperty(desc, 'writable')) d.writable = !!desc.writable;
if (hasProperty(desc, 'get')) {
var g = desc.get;
if (!isCallable(g) && typeof g !== 'undefined') {
throw new TypeError('bad get');
}
d.get = g;
}
if (hasProperty(desc, 'set')) {
var s = desc.set;
if (!isCallable(s) && typeof s !== 'undefined') {
throw new TypeError('bad set');
}
d.set = s;
}
if (('get' in d || 'set' in d) && ('value' in d || 'writable' in d)) {
throw new TypeError('identity-confused descriptor');
}
return d;
}
if (_typeof(obj) !== 'object' || obj === null) throw new TypeError('bad obj');
properties = Object(properties);
var keys = Object.keys(properties);
var descs = [];
for (var i = 0; i < keys.length; i++) {
descs.push([keys[i], convertToDescriptor(properties[keys[i]])]);
}
for (var _i = 0; _i < descs.length; _i++) {
Object.defineProperty(obj, descs[_i][0], descs[_i][1]);
}
return obj;
};
}
var ENV_TYPE = {
WEAPP: 'WEAPP',
WEB: 'WEB',
RN: 'RN',
SWAN: 'SWAN',
ALIPAY: 'ALIPAY',
TT: 'TT',
QQ: 'QQ',
JD: 'JD'
};
var _env = null; // 一个taro项目肯定运行同样的环境
function getEnv() {
if (_env) return _env;
if (typeof jd !== 'undefined' && jd.chooseImage) {
_env = ENV_TYPE.JD;
return ENV_TYPE.JD;
}
if (typeof qq !== 'undefined' && qq.chooseImage) {
_env = ENV_TYPE.QQ;
return ENV_TYPE.QQ;
}
if (typeof tt !== 'undefined' && tt.chooseImage) {
_env = ENV_TYPE.TT;
return ENV_TYPE.TT;
}
if (typeof wx !== 'undefined' && wx.chooseImage) {
_env = ENV_TYPE.WEAPP;
return ENV_TYPE.WEAPP;
}
if (typeof swan !== 'undefined' && swan.chooseImage) {
_env = ENV_TYPE.SWAN;
return ENV_TYPE.SWAN;
}
if (typeof my !== 'undefined' && my.chooseImage) {
_env = ENV_TYPE.ALIPAY;
return ENV_TYPE.ALIPAY;
}
if (typeof global !== 'undefined' && global.__fbGenNativeModule) {
_env = ENV_TYPE.RN;
return ENV_TYPE.RN;
}
if (typeof window !== 'undefined') {
_env = ENV_TYPE.WEB;
return ENV_TYPE.WEB;
}
return 'Unknown environment';
}
function render() {}
var Chain = /*#__PURE__*/function () {
function Chain(requestParams) {
var interceptors = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
var index = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
_classCallCheck(this, Chain);
this.index = index;
this.requestParams = requestParams;
this.interceptors = interceptors;
}
_createClass(Chain, [{
key: "proceed",
value: function proceed(requestParams) {
this.requestParams = requestParams;
if (this.index >= this.interceptors.length) {
throw new Error('chain 参数错误, 请勿直接修改 request.chain');
}
var nextInterceptor = this._getNextInterceptor();
var nextChain = this._getNextChain();
var p = nextInterceptor(nextChain);
var res = p["catch"](function (err) {
return Promise.reject(err);
});
if (typeof p.abort === 'function') res.abort = p.abort;
return res;
}
}, {
key: "_getNextInterceptor",
value: function _getNextInterceptor() {
return this.interceptors[this.index];
}
}, {
key: "_getNextChain",
value: function _getNextChain() {
return new Chain(this.requestParams, this.interceptors, this.index + 1);
}
}]);
return Chain;
}();
var Link = /*#__PURE__*/function () {
function Link(interceptor) {
_classCallCheck(this, Link);
this.taroInterceptor = interceptor;
this.chain = new Chain();
}
_createClass(Link, [{
key: "request",
value: function request(requestParams) {
var _this = this;
this.chain.interceptors = this.chain.interceptors.filter(function (interceptor) {
return interceptor !== _this.taroInterceptor;
});
this.chain.interceptors.push(this.taroInterceptor);
return this.chain.proceed(_objectSpread2({}, requestParams));
}
}, {
key: "addInterceptor",
value: function addInterceptor(interceptor) {
this.chain.interceptors.push(interceptor);
}
}, {
key: "cleanInterceptors",
value: function cleanInterceptors() {
this.chain = new Chain();
}
}]);
return Link;
}();
function timeoutInterceptor(chain) {
var requestParams = chain.requestParams;
var p;
var res = new Promise(function (resolve, reject) {
var timeout = setTimeout(function () {
timeout = null;
reject(new Error('网络链接超时,请稍后再试!'));
}, requestParams && requestParams.timeout || 60000);
p = chain.proceed(requestParams);
p.then(function (res) {
if (!timeout) return;
clearTimeout(timeout);
resolve(res);
})["catch"](function (err) {
timeout && clearTimeout(timeout);
reject(err);
});
});
if (p !== undefined && typeof p.abort === 'function') res.abort = p.abort;
return res;
}
function logInterceptor(chain) {
var requestParams = chain.requestParams;
var method = requestParams.method,
data = requestParams.data,
url = requestParams.url; // eslint-disable-next-line no-console
console.log("http ".concat(method || 'GET', " --> ").concat(url, " data: "), data);
var p = chain.proceed(requestParams);
var res = p.then(function (res) {
// eslint-disable-next-line no-console
console.log("http <-- ".concat(url, " result:"), res);
return res;
});
if (typeof p.abort === 'function') res.abort = p.abort;
return res;
}
var interceptors = /*#__PURE__*/Object.freeze({
__proto__: null,
timeoutInterceptor: timeoutInterceptor,
logInterceptor: logInterceptor
});
function createCommonjsModule(fn, module) {
return module = { exports: {} }, fn(module, module.exports), module.exports;
}
/*
object-assign
(c) Sindre Sorhus
@license MIT
*/
/* eslint-disable no-unused-vars */
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
var hasOwnProperty = Object.prototype.hasOwnProperty;
var propIsEnumerable = Object.prototype.propertyIsEnumerable;
function toObject(val) {
if (val === null || val === undefined) {
throw new TypeError('Object.assign cannot be called with null or undefined');
}
return Object(val);
}
function shouldUseNative() {
try {
if (!Object.assign) {
return false;
} // Detect buggy property enumeration order in older V8 versions.
// https://bugs.chromium.org/p/v8/issues/detail?id=4118
var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
test1[5] = 'de';
if (Object.getOwnPropertyNames(test1)[0] === '5') {
return false;
} // https://bugs.chromium.org/p/v8/issues/detail?id=3056
var test2 = {};
for (var i = 0; i < 10; i++) {
test2['_' + String.fromCharCode(i)] = i;
}
var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
return test2[n];
});
if (order2.join('') !== '0123456789') {
return false;
} // https://bugs.chromium.org/p/v8/issues/detail?id=3056
var test3 = {};
'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
test3[letter] = letter;
});
if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {
return false;
}
return true;
} catch (err) {
// We don't expect any of the above to throw, but better to be safe.
return false;
}
}
var objectAssign = shouldUseNative() ? Object.assign : function (target, source) {
var from;
var to = toObject(target);
var symbols;
for (var s = 1; s < arguments.length; s++) {
from = Object(arguments[s]);
for (var key in from) {
if (hasOwnProperty.call(from, key)) {
to[key] = from[key];
}
}
if (getOwnPropertySymbols) {
symbols = getOwnPropertySymbols(from);
for (var i = 0; i < symbols.length; i++) {
if (propIsEnumerable.call(from, symbols[i])) {
to[symbols[i]] = from[symbols[i]];
}
}
}
}
return to;
};
var n = "function" === typeof Symbol && Symbol["for"],
p = n ? Symbol["for"]("react.element") : 60103,
q = n ? Symbol["for"]("react.portal") : 60106,
r = n ? Symbol["for"]("react.fragment") : 60107,
t = n ? Symbol["for"]("react.strict_mode") : 60108,
u = n ? Symbol["for"]("react.profiler") : 60114,
v = n ? Symbol["for"]("react.provider") : 60109,
w = n ? Symbol["for"]("react.context") : 60110,
x = n ? Symbol["for"]("react.forward_ref") : 60112,
y = n ? Symbol["for"]("react.suspense") : 60113,
z = n ? Symbol["for"]("react.memo") : 60115,
A = n ? Symbol["for"]("react.lazy") : 60116,
B = "function" === typeof Symbol && Symbol.iterator;
function C(a) {
for (var b = "https://reactjs.org/docs/error-decoder.html?invariant=" + a, c = 1; c < arguments.length; c++) {
b += "&args[]=" + encodeURIComponent(arguments[c]);
}
return "Minified React error #" + a + "; visit " + b + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";
}
var D = {
isMounted: function isMounted() {
return !1;
},
enqueueForceUpdate: function enqueueForceUpdate() {},
enqueueReplaceState: function enqueueReplaceState() {},
enqueueSetState: function enqueueSetState() {}
},
E = {};
function F(a, b, c) {
this.props = a;
this.context = b;
this.refs = E;
this.updater = c || D;
}
F.prototype.isReactComponent = {};
F.prototype.setState = function (a, b) {
if ("object" !== _typeof(a) && "function" !== typeof a && null != a) throw Error(C(85));
this.updater.enqueueSetState(this, a, b, "setState");
};
F.prototype.forceUpdate = function (a) {
this.updater.enqueueForceUpdate(this, a, "forceUpdate");
};
function G() {}
G.prototype = F.prototype;
function H(a, b, c) {
this.props = a;
this.context = b;
this.refs = E;
this.updater = c || D;
}
var I = H.prototype = new G();
I.constructor = H;
objectAssign(I, F.prototype);
I.isPureReactComponent = !0;
var J = {
current: null
},
K = Object.prototype.hasOwnProperty,
L = {
key: !0,
ref: !0,
__self: !0,
__source: !0
};
function M(a, b, c) {
var e,
d = {},
g = null,
k = null;
if (null != b) for (e in void 0 !== b.ref && (k = b.ref), void 0 !== b.key && (g = "" + b.key), b) {
K.call(b, e) && !L.hasOwnProperty(e) && (d[e] = b[e]);
}
var f = arguments.length - 2;
if (1 === f) d.children = c;else if (1 < f) {
for (var h = Array(f), m = 0; m < f; m++) {
h[m] = arguments[m + 2];
}
d.children = h;
}
if (a && a.defaultProps) for (e in f = a.defaultProps, f) {
void 0 === d[e] && (d[e] = f[e]);
}
return {
$$typeof: p,
type: a,
key: g,
ref: k,
props: d,
_owner: J.current
};
}
function N(a, b) {
return {
$$typeof: p,
type: a.type,
key: b,
ref: a.ref,
props: a.props,
_owner: a._owner
};
}
function O(a) {
return "object" === _typeof(a) && null !== a && a.$$typeof === p;
}
function escape(a) {
var b = {
"=": "=0",
":": "=2"
};
return "$" + ("" + a).replace(/[=:]/g, function (a) {
return b[a];
});
}
var P = /\/+/g,
Q = [];
function R(a, b, c, e) {
if (Q.length) {
var d = Q.pop();
d.result = a;
d.keyPrefix = b;
d.func = c;
d.context = e;
d.count = 0;
return d;
}
return {
result: a,
keyPrefix: b,
func: c,
context: e,
count: 0
};
}
function S(a) {
a.result = null;
a.keyPrefix = null;
a.func = null;
a.context = null;
a.count = 0;
10 > Q.length && Q.push(a);
}
function T(a, b, c, e) {
var d = _typeof(a);
if ("undefined" === d || "boolean" === d) a = null;
var g = !1;
if (null === a) g = !0;else switch (d) {
case "string":
case "number":
g = !0;
break;
case "object":
switch (a.$$typeof) {
case p:
case q:
g = !0;
}
}
if (g) return c(e, a, "" === b ? "." + U(a, 0) : b), 1;
g = 0;
b = "" === b ? "." : b + ":";
if (Array.isArray(a)) for (var k = 0; k < a.length; k++) {
d = a[k];
var f = b + U(d, k);
g += T(d, f, c, e);
} else if (null === a || "object" !== _typeof(a) ? f = null : (f = B && a[B] || a["@@iterator"], f = "function" === typeof f ? f : null), "function" === typeof f) for (a = f.call(a), k = 0; !(d = a.next()).done;) {
d = d.value, f = b + U(d, k++), g += T(d, f, c, e);
} else if ("object" === d) throw c = "" + a, Error(C(31, "[object Object]" === c ? "object with keys {" + Object.keys(a).join(", ") + "}" : c, ""));
return g;
}
function V(a, b, c) {
return null == a ? 0 : T(a, "", b, c);
}
function U(a, b) {
return "object" === _typeof(a) && null !== a && null != a.key ? escape(a.key) : b.toString(36);
}
function W(a, b) {
a.func.call(a.context, b, a.count++);
}
function aa(a, b, c) {
var e = a.result,
d = a.keyPrefix;
a = a.func.call(a.context, b, a.count++);
Array.isArray(a) ? X(a, e, c, function (a) {
return a;
}) : null != a && (O(a) && (a = N(a, d + (!a.key || b && b.key === a.key ? "" : ("" + a.key).replace(P, "$&/") + "/") + c)), e.push(a));
}
function X(a, b, c, e, d) {
var g = "";
null != c && (g = ("" + c).replace(P, "$&/") + "/");
b = R(b, g, e, d);
V(a, aa, b);
S(b);
}
var Y = {
current: null
};
function Z() {
var a = Y.current;
if (null === a) throw Error(C(321));
return a;
}
var ba = {
ReactCurrentDispatcher: Y,
ReactCurrentBatchConfig: {
suspense: null
},
ReactCurrentOwner: J,
IsSomeRendererActing: {
current: !1
},
assign: objectAssign
};
var Children = {
map: function map(a, b, c) {
if (null == a) return a;
var e = [];
X(a, e, null, b, c);
return e;
},
forEach: function forEach(a, b, c) {
if (null == a) return a;
b = R(null, null, b, c);
V(a, W, b);
S(b);
},
count: function count(a) {
return V(a, function () {
return null;
}, null);
},
toArray: function toArray(a) {
var b = [];
X(a, b, null, function (a) {
return a;
});
return b;
},
only: function only(a) {
if (!O(a)) throw Error(C(143));
return a;
}
};
var Component = F;
var Fragment = r;
var Profiler = u;
var PureComponent = H;
var StrictMode = t;
var Suspense = y;
var __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ba;
var cloneElement = function cloneElement(a, b, c) {
if (null === a || void 0 === a) throw Error(C(267, a));
var e = objectAssign({}, a.props),
d = a.key,
g = a.ref,
k = a._owner;
if (null != b) {
void 0 !== b.ref && (g = b.ref, k = J.current);
void 0 !== b.key && (d = "" + b.key);
if (a.type && a.type.defaultProps) var f = a.type.defaultProps;
for (h in b) {
K.call(b, h) && !L.hasOwnProperty(h) && (e[h] = void 0 === b[h] && void 0 !== f ? f[h] : b[h]);
}
}
var h = arguments.length - 2;
if (1 === h) e.children = c;else if (1 < h) {
f = Array(h);
for (var m = 0; m < h; m++) {
f[m] = arguments[m + 2];
}
e.children = f;
}
return {
$$typeof: p,
type: a.type,
key: d,
ref: g,
props: e,
_owner: k
};
};
var createContext = function createContext(a, b) {
void 0 === b && (b = null);
a = {
$$typeof: w,
_calculateChangedBits: b,
_currentValue: a,
_currentValue2: a,
_threadCount: 0,
Provider: null,
Consumer: null
};
a.Provider = {
$$typeof: v,
_context: a
};
return a.Consumer = a;
};
var createElement = M;
var createFactory = function createFactory(a) {
var b = M.bind(null, a);
b.type = a;
return b;
};
var createRef = function createRef() {
return {
current: null
};
};
var forwardRef = function forwardRef(a) {
return {
$$typeof: x,
render: a
};
};
var isValidElement = O;
var lazy = function lazy(a) {
return {
$$typeof: A,
_ctor: a,
_status: -1,
_result: null
};
};
var memo = function memo(a, b) {
return {
$$typeof: z,
type: a,
compare: void 0 === b ? null : b
};
};
var useCallback = function useCallback(a, b) {
return Z().useCallback(a, b);
};
var useContext = function useContext(a, b) {
return Z().useContext(a, b);
};
var useDebugValue = function useDebugValue() {};
var useEffect = function useEffect(a, b) {
return Z().useEffect(a, b);
};
var useImperativeHandle = function useImperativeHandle(a, b, c) {
return Z().useImperativeHandle(a, b, c);
};
var useLayoutEffect = function useLayoutEffect(a, b) {
return Z().useLayoutEffect(a, b);
};
var useMemo = function useMemo(a, b) {
return Z().useMemo(a, b);
};
var useReducer = function useReducer(a, b, c) {
return Z().useReducer(a, b, c);
};
var useRef = function useRef(a) {
return Z().useRef(a);
};
var useState = function useState(a) {
return Z().useState(a);
};
var version = "16.13.1";
var react_production_min = {
Children: Children,
Component: Component,
Fragment: Fragment,
Profiler: Profiler,
PureComponent: PureComponent,
StrictMode: StrictMode,
Suspense: Suspense,
__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,
cloneElement: cloneElement,
createContext: createContext,
createElement: createElement,
createFactory: createFactory,
createRef: createRef,
forwardRef: forwardRef,
isValidElement: isValidElement,
lazy: lazy,
memo: memo,
useCallback: useCallback,
useContext: useContext,
useDebugValue: useDebugValue,
useEffect: useEffect,
useImperativeHandle: useImperativeHandle,
useLayoutEffect: useLayoutEffect,
useMemo: useMemo,
useReducer: useReducer,
useRef: useRef,
useState: useState,
version: version
};
/**
* 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 ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
var ReactPropTypesSecret_1 = ReactPropTypesSecret;
var printWarning = function printWarning() {};
if (process.env.NODE_ENV !== 'production') {
var ReactPropTypesSecret$1 = ReactPropTypesSecret_1;
var loggedTypeFailures = {};
var has = Function.call.bind(Object.prototype.hasOwnProperty);
printWarning = function printWarning(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) {}
};
}
/**
* Assert that the values match with the type specs.
* Error messages are memorized and will only be shown once.
*
* @param {object} typeSpecs Map of name to a ReactPropType
* @param {object} values Runtime values that need to be type-checked
* @param {string} location e.g. "prop", "context", "child context"
* @param {string} componentName Name of the component for error messages.
* @param {?Function} getStack Returns the component stack.
* @private
*/
function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
if (process.env.NODE_ENV !== 'production') {
for (var typeSpecName in typeSpecs) {
if (has(typeSpecs, 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).');
}
if (error instanceof Error && !(error.message in loggedTypeFailures)) {
// Only monitor this failure once because there tends to be a lot of the
// same error.
loggedTypeFailures[error.message] = true;
var stack = getStack ? getStack() : '';
printWarning('Failed ' + location + ' type: ' + error.message + (stack != null ? stack : ''));
}
}
}
}
}
/**
* Resets warning cache when testing.
*
* @private
*/
checkPropTypes.resetWarningCache = function () {
if (process.env.NODE_ENV !== 'production') {
loggedTypeFailures = {};
}
};
var checkPropTypes_1 = checkPropTypes;
var react_development = createCommonjsModule(function (module, exports) {
if (process.env.NODE_ENV !== "production") {
(function () {
var _assign = objectAssign;
var checkPropTypes = checkPropTypes_1;
var ReactVersion = '16.13.1'; // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
// nor polyfill, then a plain number is used for performance.
var hasSymbol = typeof Symbol === 'function' && Symbol["for"];
var REACT_ELEMENT_TYPE = hasSymbol ? Symbol["for"]('react.element') : 0xeac7;
var REACT_PORTAL_TYPE = hasSymbol ? Symbol["for"]('react.portal') : 0xeaca;
var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol["for"]('react.fragment') : 0xeacb;
var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol["for"]('react.strict_mode') : 0xeacc;
var REACT_PROFILER_TYPE = hasSymbol ? Symbol["for"]('react.profiler') : 0xead2;
var REACT_PROVIDER_TYPE = hasSymbol ? Symbol["for"]('react.provider') : 0xeacd;
var REACT_CONTEXT_TYPE = hasSymbol ? Symbol["for"]('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol["for"]('react.concurrent_mode') : 0xeacf;
var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol["for"]('react.forward_ref') : 0xead0;
var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol["for"]('react.suspense') : 0xead1;
var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol["for"]('react.suspense_list') : 0xead8;
var REACT_MEMO_TYPE = hasSymbol ? Symbol["for"]('react.memo') : 0xead3;
var REACT_LAZY_TYPE = hasSymbol ? Symbol["for"]('react.lazy') : 0xead4;
var REACT_BLOCK_TYPE = hasSymbol ? Symbol["for"]('react.block') : 0xead9;
var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol["for"]('react.fundamental') : 0xead5;
var REACT_RESPONDER_TYPE = hasSymbol ? Symbol["for"]('react.responder') : 0xead6;
var REACT_SCOPE_TYPE = hasSymbol ? Symbol["for"]('react.scope') : 0xead7;
var MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
var FAUX_ITERATOR_SYMBOL = '@@iterator';
function getIteratorFn(maybeIterable) {
if (maybeIterable === null || _typeof(maybeIterable) !== 'object') {
return null;
}
var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];
if (typeof maybeIterator === 'function') {
return maybeIterator;
}
return null;
}
/**
* Keeps track of the current dispatcher.
*/
var ReactCurrentDispatcher = {
/**
* @internal
* @type {ReactComponent}
*/
current: null
};
/**
* Keeps track of the current batch's configuration such as how long an update
* should suspend for if it needs to.
*/
var ReactCurrentBatchConfig = {
suspense: null
};
/**
* Keeps track of the current owner.
*
* The current owner is the component who should own any components that are
* currently being constructed.
*/
var ReactCurrentOwner = {
/**
* @internal
* @type {ReactComponent}
*/
current: null
};
var BEFORE_SLASH_RE = /^(.*)[\\\/]/;
function describeComponentFrame(name, source, ownerName) {
var sourceInfo = '';
if (source) {
var path = source.fileName;
var fileName = path.replace(BEFORE_SLASH_RE, '');
{
// In DEV, include code for a common special case:
// prefer "folder/index.js" instead of just "index.js".
if (/^index\./.test(fileName)) {
var match = path.match(BEFORE_SLASH_RE);
if (match) {
var pathBeforeSlash = match[1];
if (pathBeforeSlash) {
var folderName = pathBeforeSlash.replace(BEFORE_SLASH_RE, '');
fileName = folderName + '/' + fileName;
}
}
}
}
sourceInfo = ' (at ' + fileName + ':' + source.lineNumber + ')';
} else if (ownerName) {
sourceInfo = ' (created by ' + ownerName + ')';
}
return '\n in ' + (name || 'Unknown') + sourceInfo;
}
var Resolved = 1;
function refineResolvedLazyComponent(lazyComponent) {
return lazyComponent._status === Resolved ? lazyComponent._result : null;
}
function getWrappedName(outerType, innerType, wrapperName) {
var functionName = innerType.displayName || innerType.name || '';
return outerType.displayName || (functionName !== '' ? wrapperName + "(" + functionName + ")" : wrapperName);
}
function getComponentName(type) {
if (type == null) {
// Host root, text node or just invalid type.
return null;
}
{
if (typeof type.tag === 'number') {
error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');
}
}
if (typeof type === 'function') {
return type.displayName || type.name || null;
}
if (typeof type === 'string') {
return type;
}
switch (type) {
case REACT_FRAGMENT_TYPE:
return 'Fragment';
case REACT_PORTAL_TYPE:
return 'Portal';
case REACT_PROFILER_TYPE:
return "Profiler";
case REACT_STRICT_MODE_TYPE:
return 'StrictMode';
case REACT_SUSPENSE_TYPE:
return 'Suspense';
case REACT_SUSPENSE_LIST_TYPE:
return 'SuspenseList';
}
if (_typeof(type) === 'object') {
switch (type.$$typeof) {
case REACT_CONTEXT_TYPE:
return 'Context.Consumer';
case REACT_PROVIDER_TYPE:
return 'Context.Provider';
case REACT_FORWARD_REF_TYPE:
return getWrappedName(type, type.render, 'ForwardRef');
case REACT_MEMO_TYPE:
return getComponentName(type.type);
case REACT_BLOCK_TYPE:
return getComponentName(type.render);
case REACT_LAZY_TYPE:
{
var thenable = type;
var resolvedThenable = refineResolvedLazyComponent(thenable);
if (resolvedThenable) {
return getComponentName(resolvedThenable);
}
break;
}
}
}
return null;
}
var ReactDebugCurrentFrame = {};
var currentlyValidatingElement = null;
function setCurrentlyValidatingElement(element) {
{
currentlyValidatingElement = element;
}
}
{
// Stack implementation injected by the current renderer.
ReactDebugCurrentFrame.getCurrentStack = null;
ReactDebugCurrentFrame.getStackAddendum = function () {
var stack = ''; // Add an extra top frame while an element is being validated
if (currentlyValidatingElement) {
var name = getComponentName(currentlyValidatingElement.type);
var owner = currentlyValidatingElement._owner;
stack += describeComponentFrame(name, currentlyValidatingElement._source, owner && getComponentName(owner.type));
} // Delegate to the injected renderer-specific implementation
var impl = ReactDebugCurrentFrame.getCurrentStack;
if (impl) {
stack += impl() || '';
}
return stack;
};
}
/**
* Used by act() to track whether you're inside an act() scope.
*/
var IsSomeRendererActing = {
current: false
};
var ReactSharedInternals = {
ReactCurrentDispatcher: ReactCurrentDispatcher,
ReactCurrentBatchConfig: ReactCurrentBatchConfig,
ReactCurrentOwner: ReactCurrentOwner,
IsSomeRendererActing: IsSomeRendererActing,
// Used by renderers to avoid bundling object-assign twice in UMD bundles:
assign: _assign
};
{
_assign(ReactSharedInternals, {
// These should not be included in production.
ReactDebugCurrentFrame: ReactDebugCurrentFrame,
// Shim for React DOM 16.0.0 which still destructured (but not used) this.
// TODO: remove in React 17.0.
ReactComponentTreeHook: {}
});
} // by calls to these methods by a Babel plugin.
//
// In PROD (or in packages without access to React internals),
// they are left as they are instead.
function warn(format) {
{
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
printWarning('warn', format, args);
}
}
function error(format) {
{
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
args[_key2 - 1] = arguments[_key2];
}
printWarning('error', format, args);
}
}
function printWarning(level, format, args) {
// When changing this logic, you might want to also
// update consoleWithStackDev.www.js as well.
{
var hasExistingStack = args.length > 0 && typeof args[args.length - 1] === 'string' && args[args.length - 1].indexOf('\n in') === 0;
if (!hasExistingStack) {
var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
var stack = ReactDebugCurrentFrame.getStackAddendum();
if (stack !== '') {
format += '%s';
args = args.concat([stack]);
}
}
var argsWithFormat = args.map(function (item) {
return '' + item;
}); // Careful: RN currently depends on this prefix
argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it
// breaks IE9: https://github.com/facebook/react/issues/13610
// eslint-disable-next-line react-internal/no-production-logging
Function.prototype.apply.call(console[level], console, argsWithFormat);
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.
var argIndex = 0;
var message = 'Warning: ' + format.replace(/%s/g, function () {
return args[argIndex++];
});
throw new Error(message);
} catch (x) {}
}
}
var didWarnStateUpdateForUnmountedComponent = {};
function warnNoop(publicInstance, callerName) {
{
var _constructor = publicInstance.constructor;
var componentName = _constructor && (_constructor.displayName || _constructor.name) || 'ReactClass';
var warningKey = componentName + "." + callerName;
if (didWarnStateUpdateForUnmountedComponent[warningKey]) {
return;
}
error("Can't call %s on a component that is not yet mounted. " + 'This is a no-op, but it might indicate a bug in your application. ' + 'Instead, assign to `this.state` directly or define a `state = {};` ' + 'class property with the desired state in the %s component.', callerName, componentName);
didWarnStateUpdateForUnmountedComponent[warningKey] = true;
}
}
/**
* This is the abstract API for an update queue.
*/
var ReactNoopUpdateQueue = {
/**
* Checks whether or not this composite component is mounted.
* @param {ReactClass} publicInstance The instance we want to test.
* @return {boolean} True if mounted, false otherwise.
* @protected
* @final
*/
isMounted: function isMounted(publicInstance) {
return false;
},
/**
* Forces an update. This should only be invoked when it is known with
* certainty that we are **not** in a DOM transaction.
*
* You may want to call this when you know that some deeper aspect of the
* component's state has changed but `setState` was not called.
*
* This will not invoke `shouldComponentUpdate`, but it will invoke
* `componentWillUpdate` and `componentDidUpdate`.
*
* @param {ReactClass} publicInstance The instance that should rerender.
* @param {?function} callback Called after component is updated.
* @param {?string} callerName name of the calling function in the public API.
* @internal
*/
enqueueForceUpdate: function enqueueForceUpdate(publicInstance, callback, callerName) {
warnNoop(publicInstance, 'forceUpdate');
},
/**
* Replaces all of the state. Always use this or `setState` to mutate state.
* You should treat `this.state` as immutable.
*
* There is no guarantee that `this.state` will be immediately updated, so
* accessing `this.state` after calling this method may return the old value.
*
* @param {ReactClass} publicInstance The instance that should rerender.
* @param {object} completeState Next state.
* @param {?function} callback Called after component is updated.
* @param {?string} callerName name of the calling function in the public API.
* @internal
*/
enqueueReplaceState: function enqueueReplaceState(publicInstance, completeState, callback, callerName) {
warnNoop(publicInstance, 'replaceState');
},
/**
* Sets a subset of the state. This only exists because _pendingState is
* internal. This provides a merging strategy that is not available to deep
* properties which is confusing. TODO: Expose pendingState or don't use it
* during the merge.
*
* @param {ReactClass} publicInstance The instance that should rerender.
* @param {object} partialState Next partial state to be merged with state.
* @param {?function} callback Called after component is updated.
* @param {?string} Name of the calling function in the public API.
* @internal
*/
enqueueSetState: function enqueueSetState(publicInstance, partialState, callback, callerName) {
warnNoop(publicInstance, 'setState');
}
};
var emptyObject = {};
{
Object.freeze(emptyObject);
}
/**
* Base class helpers for the updating state of a component.
*/
function Component(props, context, updater) {
this.props = props;
this.context = context; // If a component has string refs, we will assign a different object later.
this.refs = emptyObject; // We initialize the default updater but the real one gets injected by the
// renderer.
this.updater = updater || ReactNoopUpdateQueue;
}
Component.prototype.isReactComponent = {};
/**
* Sets a subset of the state. Always use this to mutate
* state. You should treat `this.state` as immutable.
*
* There is no guarantee that `this.state` will be immediately updated, so
* accessing `this.state` after calling this method may return the old value.
*
* There is no guarantee that calls to `setState` will run synchronously,
* as they may eventually be batched together. You can provide an optional
* callback that will be executed when the call to setState is actually
* completed.
*
* When a function is provided to setState, it will be called at some point in
* the future (not synchronously). It will be called with the up to date
* component arguments (state, props, context). These values can be different
* from this.* because your function may be called after receiveProps but before
* shouldComponentUpdate, and this new state, props, and context will not yet be
* assigned to this.
*
* @param {object|function} partialState Next partial state or function to
* produce next partial state to be merged with current state.
* @param {?function} callback Called after state is updated.
* @final
* @protected
*/
Component.prototype.setState = function (partialState, callback) {
if (!(_typeof(partialState) === 'object' || typeof partialState === 'function' || partialState == null)) {
{
throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");
}
}
this.updater.enqueueSetState(this, partialState, callback, 'setState');
};
/**
* Forces an update. This should only be invoked when it is known with
* certainty that we are **not** in a DOM transaction.
*
* You may want to call this when you know that some deeper aspect of the
* component's state has changed but `setState` was not called.
*
* This will not invoke `shouldComponentUpdate`, but it will invoke
* `componentWillUpdate` and `componentDidUpdate`.
*
* @param {?function} callback Called after update is complete.
* @final
* @protected
*/
Component.prototype.forceUpdate = function (callback) {
this.updater.enqueueForceUpdate(this, callback, 'forceUpdate');
};
/**
* Deprecated APIs. These APIs used to exist on classic React classes but since
* we would like to deprecate them, we're not going to move them over to this
* modern base class. Instead, we define a getter that warns if it's accessed.
*/
{
var deprecatedAPIs = {
isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],
replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']
};
var defineDeprecationWarning = function defineDeprecationWarning(methodName, info) {
Object.defineProperty(Component.prototype, methodName, {
get: function get() {
warn('%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);
return undefined;
}
});
};
for (var fnName in deprecatedAPIs) {
if (deprecatedAPIs.hasOwnProperty(fnName)) {
defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);
}
}
}
function ComponentDummy() {}
ComponentDummy.prototype = Component.prototype;
/**
* Convenience component with default shallow equality check for sCU.
*/
function PureComponent(props, context, updater) {
this.props = props;
this.context = context; // If a component has string refs, we will assign a different object later.
this.refs = emptyObject;
this.updater = updater || ReactNoopUpdateQueue;
}
var pureComponentPrototype = PureComponent.prototype = new ComponentDummy();
pureComponentPrototype.constructor = PureComponent; // Avoid an extra prototype jump for these methods.
_assign(pureComponentPrototype, Component.prototype);
pureComponentPrototype.isPureReactComponent = true; // an immutable object with a single mutable value
function createRef() {
var refObject = {
current: null
};
{
Object.seal(refObject);
}
return refObject;
}
var hasOwnProperty = Object.prototype.hasOwnProperty;
var RESERVED_PROPS = {
key: true,
ref: true,
__self: true,
__source: true
};
var specialPropKeyWarningShown, specialPropRefWarningShown, didWarnAboutStringRefs;
{
didWarnAboutStringRefs = {};
}
function hasValidRef(config) {
{
if (hasOwnProperty.call(config, 'ref')) {
var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;
if (getter && getter.isReactWarning) {
return false;
}
}
}
return config.ref !== undefined;
}
function hasValidKey(config) {
{
if (hasOwnProperty.call(config, 'key')) {
var getter = Object.getOwnPropertyDescriptor(config, 'key').get;
if (getter && getter.isReactWarning) {
return false;
}
}
}
return config.key !== undefined;
}
function defineKeyPropWarningGetter(props, displayName) {
var warnAboutAccessingKey = function warnAboutAccessingKey() {
{
if (!specialPropKeyWarningShown) {
specialPropKeyWarningShown = true;
error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName);
}
}
};
warnAboutAccessingKey.isReactWarning = true;
Object.defineProperty(props, 'key', {
get: warnAboutAccessingKey,
configurable: true
});
}
function defineRefPropWarningGetter(props, displayName) {
var warnAboutAccessingRef = function warnAboutAccessingRef() {
{
if (!specialPropRefWarningShown) {
specialPropRefWarningShown = true;
error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName);
}
}
};
warnAboutAccessingRef.isReactWarning = true;
Object.defineProperty(props, 'ref', {
get: warnAboutAccessingRef,
configurable: true
});
}
function warnIfStringRefCannotBeAutoConverted(config) {
{
if (typeof config.ref === 'string' && ReactCurrentOwner.current && config.__self && ReactCurrentOwner.current.stateNode !== config.__self) {
var componentName = getComponentName(ReactCurrentOwner.current.type);
if (!didWarnAboutStringRefs[componentName]) {
error('Component "%s" contains the string ref "%s". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://fb.me/react-strict-mode-string-ref', getComponentName(ReactCurrentOwner.current.type), config.ref);
didWarnAboutStringRefs[componentName] = true;
}
}
}
}
/**
* Factory method to create a new React element. This no longer adheres to
* the class pattern, so do not use new to call it. Also, instanceof check
* will not work. Instead test $$typeof field against Symbol.for('react.element') to check
* if something is a React Element.
*
* @param {*} type
* @param {*} props
* @param {*} key
* @param {string|object} ref
* @param {*} owner
* @param {*} self A *temporary* helper to detect places where `this` is
* different from the `owner` when React.createElement is called, so that w