UNPKG

@gtarojs/api

Version:
1,651 lines (1,383 loc) 107 kB
'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