{"version":3,"sources":["webpack://epower-open/./node_modules/@ahooksjs/use-request/es/utils/index.js","webpack://epower-open/./node_modules/@ahooksjs/use-request/es/utils/cache.js","webpack://epower-open/./node_modules/@ahooksjs/use-request/es/utils/limit.js","webpack://epower-open/./node_modules/@ahooksjs/use-request/es/utils/usePersistFn.js","webpack://epower-open/./node_modules/@ahooksjs/use-request/es/utils/useUpdateEffect.js","webpack://epower-open/./node_modules/@ahooksjs/use-request/es/utils/windowFocus.js","webpack://epower-open/./node_modules/@ahooksjs/use-request/es/utils/windowVisible.js","webpack://epower-open/./node_modules/@ahooksjs/use-request/es/useAsync.js","webpack://epower-open/./node_modules/@ahooksjs/use-request/es/useLoadMore.js","webpack://epower-open/./node_modules/@ahooksjs/use-request/es/usePaginated.js","webpack://epower-open/./node_modules/@ahooksjs/use-request/es/configContext.js","webpack://epower-open/./node_modules/@ahooksjs/use-request/es/index.js","webpack://epower-open/./node_modules/lodash.debounce/index.js","webpack://epower-open/./node_modules/lodash.throttle/index.js"],"names":["isDocumentVisible","document","visibilityState","cache","Map","getCache","key","currentCache","get","data","startTime","__read","o","n","m","Symbol","iterator","r","e","i","call","ar","next","done","push","value","error","__spread","arguments","length","concat","fn","ref","useRef","Error","current","persist","useCallback","args","_i","refFn","apply","effect","deps","isMounted","useEffect","listeners","eventsBinded","window","addEventListener","revalidate","navigator","onLine","listener","index","indexOf","splice","__assign","Object","assign","t","s","p","prototype","hasOwnProperty","this","DEFAULT_KEY","Fetch","service","config","subscribe","initState","timespan","pending","count","pollingWhenVisibleFlag","pollingTimer","undefined","loadingDelayTimer","unsubscribe","that","state","loading","params","run","bind","mutate","refresh","cancel","unmount","debounceRun","debounceInterval","_run","throttleRun","throttleInterval","limitRefresh","focusTimespan","setTimeout","pollingInterval","rePolling","refreshOnWindowFocus","setState","_this","clearTimeout","currentCount","loadingDelay","then","res","Promise","formattedResult","formatResult","onSuccess","onError","throwOnError","console","reject","pollingWhenHidden","resolve","forEach","options","_options","_a","refreshDeps","_b","manual","_c","_d","_e","defaultLoading","_f","_g","_h","defaultParams","_j","_k","fetchKey","cacheKey","_l","cacheTime","_m","staleTime","initialData","_o","ready","_p","newstFetchKey","servicePersist","onSuccessPersist","onErrorPersist","fetchKeyPersist","setFetches","_q","useState","cacheData_1","newFetches_1","keys","fetches","cacheFetch","newFetch","fetchesRef","readyMemoryParams","currentFetchKey","currentFetch","runRef","timer","set","Date","getTime","setCache","hasTriggeredByReady","cacheStartTime","values","f","reset","notExecutedWarning","name","warn","__rest","getOwnPropertySymbols","propertyIsEnumerable","isNoMore","threshold","restOptions","loadingMore","setLoadingMore","result","d","list","reload","restParams","slice","reloadRef","dataGroup","useMemo","listGroup","lastNoLoadingData","h","noMore","loadMore","scrollMethod","scrollHeight","scrollTop","clientHeight","scrollMethodRef","scrollTrigger","removeEventListener","paginated","defaultPageSize","pageSize","rest","sorter","filters","runChangePaination","paginationParams","oldPaginationParams","total","totalPage","Math","ceil","onChange","c","toCurrent","toPageSize","tempTotalPage","changeCurrent","changePageSize","changeCurrentRef","changeTable","pagination","tableProps","dataSource","ConfigContext","displayName","contextConfig","useContext","finalOptions","requestMethod","paginatedRef","loadMoreRef","promiseService","fetchProxy","fetch","ok","json","statusText","finalRequestMethod","url_1","url","rest_1","url_2","rest_2","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","g","freeSelf","self","root","Function","objectToString","toString","nativeMax","max","nativeMin","min","now","isObject","type","toNumber","isObjectLike","isSymbol","other","valueOf","replace","isBinary","test","module","exports","func","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","thisArg","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","remainingWait","debounced","isInvoking","leadingEdge","flush","FUNC_ERROR_TEXT","debounce"],"mappings":"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","file":"818.9e6f9839.js","sourcesContent":["export function isDocumentVisible() {\n if (typeof document !== 'undefined' && typeof document.visibilityState !== 'undefined') {\n return document.visibilityState !== 'hidden';\n }\n\n return true;\n}\nexport function isOnline() {\n if (typeof navigator.onLine !== 'undefined') {\n return navigator.onLine;\n }\n\n return true;\n}","var cache = new Map();\n\nvar setCache = function setCache(key, cacheTime, data) {\n var currentCache = cache.get(key);\n\n if (currentCache === null || currentCache === void 0 ? void 0 : currentCache.timer) {\n clearTimeout(currentCache.timer);\n }\n\n var timer = undefined;\n\n if (cacheTime > -1) {\n // 数据在不活跃 cacheTime 后,删除掉\n timer = setTimeout(function () {\n cache[\"delete\"](key);\n }, cacheTime);\n }\n\n cache.set(key, {\n data: data,\n timer: timer,\n startTime: new Date().getTime()\n });\n};\n\nvar getCache = function getCache(key) {\n var currentCache = cache.get(key);\n return {\n data: currentCache === null || currentCache === void 0 ? void 0 : currentCache.data,\n startTime: currentCache === null || currentCache === void 0 ? void 0 : currentCache.startTime\n };\n};\n\nexport { getCache, setCache };","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nvar __spread = this && this.__spread || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n};\n\nexport default function limit(fn, timespan) {\n var pending = false;\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (pending) return;\n pending = true;\n fn.apply(void 0, __spread(args));\n setTimeout(function () {\n pending = false;\n }, timespan);\n };\n}","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nvar __spread = this && this.__spread || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n};\n\nimport { useCallback, useRef } from 'react';\n\nfunction usePersistFn(fn) {\n var ref = useRef(function () {\n throw new Error('Cannot call an event handler while rendering.');\n });\n ref.current = fn;\n var persist = useCallback(function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var refFn = ref.current;\n\n if (refFn) {\n return refFn.apply(void 0, __spread(args));\n }\n }, [ref]);\n\n if (typeof fn === 'function') {\n return persist;\n }\n\n return undefined;\n}\n\nexport default usePersistFn;","import { useEffect, useRef } from 'react';\n\nvar useUpdateEffect = function useUpdateEffect(effect, deps) {\n var isMounted = useRef(false);\n useEffect(function () {\n return function () {\n isMounted.current = false;\n };\n }, []);\n useEffect(function () {\n if (!isMounted.current) {\n isMounted.current = true;\n } else {\n return effect();\n }\n }, deps);\n};\n\nexport default useUpdateEffect;","// from swr\nimport { isDocumentVisible, isOnline } from './index';\nvar listeners = [];\n\nfunction subscribe(listener) {\n listeners.push(listener);\n return function unsubscribe() {\n var index = listeners.indexOf(listener);\n listeners.splice(index, 1);\n };\n}\n\nvar eventsBinded = false;\n\nif (typeof window !== 'undefined' && window.addEventListener && !eventsBinded) {\n var revalidate = function revalidate() {\n if (!isDocumentVisible() || !isOnline()) return;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n };\n\n window.addEventListener('visibilitychange', revalidate, false);\n window.addEventListener('focus', revalidate, false); // only bind the events once\n\n eventsBinded = true;\n}\n\nexport default subscribe;","// from swr\nimport { isDocumentVisible } from './index';\nvar listeners = [];\n\nfunction subscribe(listener) {\n listeners.push(listener);\n return function unsubscribe() {\n var index = listeners.indexOf(listener);\n listeners.splice(index, 1);\n };\n}\n\nvar eventsBinded = false;\n\nif (typeof window !== 'undefined' && window.addEventListener && !eventsBinded) {\n var revalidate = function revalidate() {\n if (!isDocumentVisible()) return;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n };\n\n window.addEventListener('visibilitychange', revalidate, false); // only bind the events once\n\n eventsBinded = true;\n}\n\nexport default subscribe;","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nvar __spread = this && this.__spread || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n};\n\nimport debounce from 'lodash.debounce';\nimport throttle from 'lodash.throttle';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { isDocumentVisible } from './utils';\nimport { getCache, setCache } from './utils/cache';\nimport limit from './utils/limit';\nimport usePersistFn from './utils/usePersistFn';\nimport useUpdateEffect from './utils/useUpdateEffect';\nimport subscribeFocus from './utils/windowFocus';\nimport subscribeVisible from './utils/windowVisible';\nvar DEFAULT_KEY = 'AHOOKS_USE_REQUEST_DEFAULT_KEY';\n\nvar Fetch =\n/** @class */\nfunction () {\n function Fetch(service, config, subscribe, initState) {\n // 请求时序\n this.count = 0; // visible 后,是否继续轮询\n\n this.pollingWhenVisibleFlag = false;\n this.pollingTimer = undefined;\n this.loadingDelayTimer = undefined;\n this.unsubscribe = [];\n this.that = this;\n this.state = {\n loading: false,\n params: [],\n data: undefined,\n error: undefined,\n run: this.run.bind(this.that),\n mutate: this.mutate.bind(this.that),\n refresh: this.refresh.bind(this.that),\n cancel: this.cancel.bind(this.that),\n unmount: this.unmount.bind(this.that)\n };\n this.service = service;\n this.config = config;\n this.subscribe = subscribe;\n\n if (initState) {\n this.state = __assign(__assign({}, this.state), initState);\n }\n\n this.debounceRun = this.config.debounceInterval ? debounce(this._run, this.config.debounceInterval) : undefined;\n this.throttleRun = this.config.throttleInterval ? throttle(this._run, this.config.throttleInterval) : undefined;\n this.limitRefresh = limit(this.refresh.bind(this), this.config.focusTimespan);\n\n if (this.config.pollingInterval) {\n this.unsubscribe.push(subscribeVisible(this.rePolling.bind(this)));\n }\n\n if (this.config.refreshOnWindowFocus) {\n this.unsubscribe.push(subscribeFocus(this.limitRefresh.bind(this)));\n }\n }\n\n Fetch.prototype.setState = function (s) {\n if (s === void 0) {\n s = {};\n }\n\n this.state = __assign(__assign({}, this.state), s);\n this.subscribe(this.state);\n };\n\n Fetch.prototype._run = function () {\n var _this = this;\n\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n } // 取消已有定时器\n\n\n if (this.pollingTimer) {\n clearTimeout(this.pollingTimer);\n } // 取消 loadingDelayTimer\n\n\n if (this.loadingDelayTimer) {\n clearTimeout(this.loadingDelayTimer);\n }\n\n this.count += 1; // 闭包存储当次请求的 count\n\n var currentCount = this.count;\n this.setState({\n loading: !this.config.loadingDelay,\n params: args\n });\n\n if (this.config.loadingDelay) {\n this.loadingDelayTimer = setTimeout(function () {\n _this.setState({\n loading: true\n });\n }, this.config.loadingDelay);\n }\n\n return this.service.apply(this, __spread(args)).then(function (res) {\n if (currentCount !== _this.count) {\n // prevent run.then when request is canceled\n return new Promise(function () {});\n }\n\n if (_this.loadingDelayTimer) {\n clearTimeout(_this.loadingDelayTimer);\n }\n\n var formattedResult = _this.config.formatResult ? _this.config.formatResult(res) : res;\n\n _this.setState({\n data: formattedResult,\n error: undefined,\n loading: false\n });\n\n if (_this.config.onSuccess) {\n _this.config.onSuccess(formattedResult, args);\n }\n\n return formattedResult;\n })[\"catch\"](function (error) {\n if (currentCount !== _this.count) {\n // prevent run.then when request is canceled\n return new Promise(function () {});\n }\n\n if (_this.loadingDelayTimer) {\n clearTimeout(_this.loadingDelayTimer);\n }\n\n _this.setState({\n data: undefined,\n error: error,\n loading: false\n });\n\n if (_this.config.onError) {\n _this.config.onError(error, args);\n } // If throwOnError, user should catch the error self,\n // or the page will crash\n\n\n if (_this.config.throwOnError) {\n throw error;\n }\n\n console.error(error); // eslint-disable-next-line prefer-promise-reject-errors\n\n return Promise.reject('useRequest has caught the exception, if you need to handle the exception yourself, you can set options.throwOnError to true.');\n })[\"finally\"](function () {\n if (currentCount === _this.count) {\n if (_this.config.pollingInterval) {\n // 如果屏幕隐藏,并且 !pollingWhenHidden, 则停止轮询,并记录 flag,等 visible 时,继续轮询\n if (!isDocumentVisible() && !_this.config.pollingWhenHidden) {\n _this.pollingWhenVisibleFlag = true;\n return;\n }\n\n _this.pollingTimer = setTimeout(function () {\n _this._run.apply(_this, __spread(args));\n }, _this.config.pollingInterval);\n }\n }\n });\n };\n\n Fetch.prototype.run = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (this.debounceRun) {\n this.debounceRun.apply(this, __spread(args)); // TODO 如果 options 存在 debounceInterval,或 throttleInterval,则 run 和 refresh 不会返回 Promise。 带类型需要修复后,此处变成 return;。\n\n return Promise.resolve(null);\n }\n\n if (this.throttleRun) {\n this.throttleRun.apply(this, __spread(args));\n return Promise.resolve(null);\n }\n\n return this._run.apply(this, __spread(args));\n };\n\n Fetch.prototype.cancel = function () {\n if (this.debounceRun) {\n this.debounceRun.cancel();\n }\n\n if (this.throttleRun) {\n this.throttleRun.cancel();\n }\n\n if (this.loadingDelayTimer) {\n clearTimeout(this.loadingDelayTimer);\n }\n\n if (this.pollingTimer) {\n clearTimeout(this.pollingTimer);\n }\n\n this.pollingWhenVisibleFlag = false;\n this.count += 1;\n this.setState({\n loading: false\n });\n };\n\n Fetch.prototype.refresh = function () {\n return this.run.apply(this, __spread(this.state.params));\n };\n\n Fetch.prototype.rePolling = function () {\n if (this.pollingWhenVisibleFlag) {\n this.pollingWhenVisibleFlag = false;\n this.refresh();\n }\n };\n\n Fetch.prototype.mutate = function (data) {\n if (typeof data === 'function') {\n this.setState({\n // eslint-disable-next-line react/no-access-state-in-setstate\n data: data(this.state.data) || {}\n });\n } else {\n this.setState({\n data: data\n });\n }\n };\n\n Fetch.prototype.unmount = function () {\n this.cancel();\n this.unsubscribe.forEach(function (s) {\n s();\n });\n };\n\n return Fetch;\n}();\n\nfunction useAsync(service, options) {\n var _options = options || {};\n\n var _a = _options.refreshDeps,\n refreshDeps = _a === void 0 ? [] : _a,\n _b = _options.manual,\n manual = _b === void 0 ? false : _b,\n _c = _options.onSuccess,\n onSuccess = _c === void 0 ? function () {} : _c,\n _d = _options.onError,\n onError = _d === void 0 ? function () {} : _d,\n _e = _options.defaultLoading,\n defaultLoading = _e === void 0 ? false : _e,\n loadingDelay = _options.loadingDelay,\n _f = _options.pollingInterval,\n pollingInterval = _f === void 0 ? 0 : _f,\n _g = _options.pollingWhenHidden,\n pollingWhenHidden = _g === void 0 ? true : _g,\n _h = _options.defaultParams,\n defaultParams = _h === void 0 ? [] : _h,\n _j = _options.refreshOnWindowFocus,\n refreshOnWindowFocus = _j === void 0 ? false : _j,\n _k = _options.focusTimespan,\n focusTimespan = _k === void 0 ? 5000 : _k,\n fetchKey = _options.fetchKey,\n cacheKey = _options.cacheKey,\n _l = _options.cacheTime,\n cacheTime = _l === void 0 ? 5 * 60 * 1000 : _l,\n _m = _options.staleTime,\n staleTime = _m === void 0 ? 0 : _m,\n debounceInterval = _options.debounceInterval,\n throttleInterval = _options.throttleInterval,\n initialData = _options.initialData,\n _o = _options.ready,\n ready = _o === void 0 ? true : _o,\n _p = _options.throwOnError,\n throwOnError = _p === void 0 ? false : _p;\n var newstFetchKey = useRef(DEFAULT_KEY); // 持久化一些函数\n\n var servicePersist = usePersistFn(service);\n var onSuccessPersist = usePersistFn(onSuccess);\n var onErrorPersist = usePersistFn(onError);\n var fetchKeyPersist = usePersistFn(fetchKey);\n var formatResult;\n\n if ('formatResult' in _options) {\n // eslint-disable-next-line prefer-destructuring\n formatResult = _options.formatResult;\n }\n\n var formatResultPersist = usePersistFn(formatResult);\n var config = {\n formatResult: formatResultPersist,\n onSuccess: onSuccessPersist,\n onError: onErrorPersist,\n loadingDelay: loadingDelay,\n pollingInterval: pollingInterval,\n pollingWhenHidden: pollingWhenHidden,\n // refreshOnWindowFocus should not work on manual mode\n refreshOnWindowFocus: !manual && refreshOnWindowFocus,\n focusTimespan: focusTimespan,\n debounceInterval: debounceInterval,\n throttleInterval: throttleInterval,\n throwOnError: throwOnError\n };\n var subscribe = usePersistFn(function (key, data) {\n setFetches(function (s) {\n // eslint-disable-next-line no-param-reassign\n s[key] = data;\n return __assign({}, s);\n });\n });\n\n var _q = __read(useState(function () {\n var _a; // 如果有 缓存,则从缓存中读数据\n\n\n if (cacheKey) {\n var cacheData_1 = (_a = getCache(cacheKey)) === null || _a === void 0 ? void 0 : _a.data;\n\n if (cacheData_1) {\n newstFetchKey.current = cacheData_1.newstFetchKey;\n /* 使用 initState, 重新 new Fetch */\n\n var newFetches_1 = {};\n Object.keys(cacheData_1.fetches).forEach(function (key) {\n var cacheFetch = cacheData_1.fetches[key];\n var newFetch = new Fetch(servicePersist, config, subscribe.bind(null, key), {\n loading: cacheFetch.loading,\n params: cacheFetch.params,\n data: cacheFetch.data,\n error: cacheFetch.error\n });\n newFetches_1[key] = newFetch.state;\n });\n return newFetches_1;\n }\n }\n\n return {};\n }), 2),\n fetches = _q[0],\n setFetches = _q[1];\n\n var fetchesRef = useRef(fetches);\n fetchesRef.current = fetches;\n var readyMemoryParams = useRef();\n var run = useCallback(function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (!ready) {\n // 没有 ready, 记录请求参数,等 ready 后,发起请求用\n readyMemoryParams.current = args;\n return;\n }\n\n if (fetchKeyPersist) {\n var key = fetchKeyPersist.apply(void 0, __spread(args));\n newstFetchKey.current = key === undefined ? DEFAULT_KEY : key;\n }\n\n var currentFetchKey = newstFetchKey.current; // 这里必须用 fetchsRef,而不能用 fetches。\n // 否则在 reset 完,立即 run 的时候,这里拿到的 fetches 是旧的。\n\n var currentFetch = fetchesRef.current[currentFetchKey];\n\n if (!currentFetch) {\n var newFetch = new Fetch(servicePersist, config, subscribe.bind(null, currentFetchKey), {\n data: initialData\n });\n currentFetch = newFetch.state;\n setFetches(function (s) {\n // eslint-disable-next-line no-param-reassign\n s[currentFetchKey] = currentFetch;\n return __assign({}, s);\n });\n }\n\n return currentFetch.run.apply(currentFetch, __spread(args));\n }, [fetchKey, subscribe, ready]);\n var runRef = useRef(run);\n runRef.current = run; // cache\n\n useUpdateEffect(function () {\n if (cacheKey) {\n setCache(cacheKey, cacheTime, {\n fetches: fetches,\n newstFetchKey: newstFetchKey.current\n });\n }\n }, [cacheKey, fetches]); // for ready\n\n var hasTriggeredByReady = useRef(false);\n useUpdateEffect(function () {\n if (ready) {\n if (!hasTriggeredByReady.current && readyMemoryParams.current) {\n runRef.current.apply(runRef, __spread(readyMemoryParams.current));\n }\n\n hasTriggeredByReady.current = true;\n }\n }, [ready]); // 第一次默认执行\n\n useEffect(function () {\n var _a;\n\n if (!manual) {\n // 如果有缓存,则重新请求\n if (Object.keys(fetches).length > 0) {\n // 如果 staleTime 是 -1,则 cache 永不过期\n // 如果 statleTime 超期了,则重新请求\n var cacheStartTime = cacheKey && ((_a = getCache(cacheKey)) === null || _a === void 0 ? void 0 : _a.startTime) || 0;\n\n if (!(staleTime === -1 || new Date().getTime() - cacheStartTime <= staleTime)) {\n /* 重新执行所有的 cache */\n Object.values(fetches).forEach(function (f) {\n f.refresh();\n });\n }\n } else {\n // 第一次默认执行,可以通过 defaultParams 设置参数\n runRef.current.apply(runRef, __spread(defaultParams));\n }\n }\n }, []); // 重置 fetches\n\n var reset = useCallback(function () {\n Object.values(fetchesRef.current).forEach(function (f) {\n f.unmount();\n });\n newstFetchKey.current = DEFAULT_KEY;\n setFetches({}); // 不写会有问题。如果不写,此时立即 run,会是老的数据\n\n fetchesRef.current = {};\n }, [setFetches]); // refreshDeps 变化,重新执行所有请求\n\n useUpdateEffect(function () {\n if (!manual) {\n /* 全部重新执行 */\n Object.values(fetchesRef.current).forEach(function (f) {\n f.refresh();\n });\n }\n }, __spread(refreshDeps)); // 卸载组件触发\n\n useEffect(function () {\n return function () {\n Object.values(fetchesRef.current).forEach(function (f) {\n f.unmount();\n });\n };\n }, []);\n var notExecutedWarning = useCallback(function (name) {\n return function () {\n console.warn(\"You should't call \" + name + \" when service not executed once.\");\n };\n }, []);\n return __assign(__assign({\n loading: ready && !manual || defaultLoading,\n data: initialData,\n error: undefined,\n params: [],\n cancel: notExecutedWarning('cancel'),\n refresh: notExecutedWarning('refresh'),\n mutate: notExecutedWarning('mutate')\n }, fetches[newstFetchKey.current] || {}), {\n run: run,\n fetches: fetches,\n reset: reset\n });\n}\n\nexport default useAsync;","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nvar __spread = this && this.__spread || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n};\n\nimport { useRef, useCallback, useMemo, useEffect, useState } from 'react';\nimport useAsync from './useAsync';\nimport useUpdateEffect from './utils/useUpdateEffect';\n\nfunction useLoadMore(service, options) {\n var _a = options.refreshDeps,\n refreshDeps = _a === void 0 ? [] : _a,\n ref = options.ref,\n isNoMore = options.isNoMore,\n _b = options.threshold,\n threshold = _b === void 0 ? 100 : _b,\n fetchKey = options.fetchKey,\n restOptions = __rest(options, [\"refreshDeps\", \"ref\", \"isNoMore\", \"threshold\", \"fetchKey\"]);\n\n var _c = __read(useState(false), 2),\n loadingMore = _c[0],\n setLoadingMore = _c[1];\n\n useEffect(function () {\n if (options.fetchKey) {\n console.warn(\"useRequest loadMore mode don't need fetchKey!\");\n }\n }, []);\n var result = useAsync(service, __assign(__assign({}, restOptions), {\n fetchKey: function fetchKey(d) {\n var _a;\n\n return ((_a = d === null || d === void 0 ? void 0 : d.list) === null || _a === void 0 ? void 0 : _a.length) || 0;\n },\n onSuccess: function onSuccess() {\n var params = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n params[_i] = arguments[_i];\n }\n\n setLoadingMore(false);\n\n if (options.onSuccess) {\n options.onSuccess.apply(options, __spread(params));\n }\n }\n }));\n var data = result.data,\n run = result.run,\n params = result.params,\n reset = result.reset,\n loading = result.loading,\n fetches = result.fetches;\n var reload = useCallback(function () {\n reset();\n\n var _a = __read(params),\n restParams = _a.slice(1);\n\n run.apply(void 0, __spread([undefined], restParams));\n }, [run, reset, params]);\n var reloadRef = useRef(reload);\n reloadRef.current = reload;\n /* loadMore 场景下,如果 refreshDeps 变化,重置到第一页 */\n\n useUpdateEffect(function () {\n /* 只有自动执行的场景, refreshDeps 才有效 */\n if (!options.manual) {\n reloadRef.current();\n }\n }, __spread(refreshDeps));\n var dataGroup = useMemo(function () {\n var listGroup = []; // 在 loadMore 时,不希望清空上一次的 data。需要把最后一个 非 loading 的请求 data,放回去。\n\n var lastNoLoadingData = data;\n Object.values(fetches).forEach(function (h) {\n var _a, _b;\n\n if ((_a = h.data) === null || _a === void 0 ? void 0 : _a.list) {\n listGroup = listGroup.concat((_b = h.data) === null || _b === void 0 ? void 0 : _b.list);\n }\n\n if (!h.loading) {\n lastNoLoadingData = h.data;\n }\n });\n return __assign(__assign({}, lastNoLoadingData), {\n list: listGroup\n });\n }, [fetches, data]);\n var noMore = isNoMore ? !loading && !loadingMore && isNoMore(dataGroup) : false;\n var loadMore = useCallback(function () {\n if (noMore) {\n return;\n }\n\n setLoadingMore(true);\n\n var _a = __read(params),\n restParams = _a.slice(1);\n\n run.apply(void 0, __spread([dataGroup], restParams));\n }, [noMore, run, dataGroup, params]);\n /* 上拉加载的方法 */\n\n var scrollMethod = function scrollMethod() {\n if (loading || loadingMore || !ref || !ref.current) {\n return;\n }\n\n if (ref.current.scrollHeight - ref.current.scrollTop <= ref.current.clientHeight + threshold) {\n loadMore();\n }\n }; // 如果不用 ref,而用之前的 useCallbak,在某些情况下会出问题,造成拿到的 loading 不是最新的。\n // fix https://github.com/alibaba/hooks/issues/630\n\n\n var scrollMethodRef = useRef(scrollMethod);\n scrollMethodRef.current = scrollMethod;\n /* 如果有 ref,则会上拉加载更多 */\n\n useEffect(function () {\n if (!ref || !ref.current) {\n return function () {};\n }\n\n var scrollTrigger = function scrollTrigger() {\n return scrollMethodRef.current();\n };\n\n ref.current.addEventListener('scroll', scrollTrigger);\n return function () {\n if (ref && ref.current) {\n ref.current.removeEventListener('scroll', scrollTrigger);\n }\n };\n }, [scrollMethodRef]);\n return __assign(__assign({}, result), {\n data: dataGroup,\n reload: reload,\n loading: loading && dataGroup.list.length === 0,\n loadMore: loadMore,\n loadingMore: loadingMore,\n noMore: noMore\n });\n}\n\nexport default useLoadMore;","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nvar __spread = this && this.__spread || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n};\n\nimport { useCallback, useEffect, useMemo, useRef } from 'react';\nimport useAsync from './useAsync';\nimport useUpdateEffect from './utils/useUpdateEffect';\n\nfunction usePaginated(service, options) {\n var paginated = options.paginated,\n _a = options.defaultPageSize,\n defaultPageSize = _a === void 0 ? 10 : _a,\n _b = options.refreshDeps,\n refreshDeps = _b === void 0 ? [] : _b,\n fetchKey = options.fetchKey,\n restOptions = __rest(options, [\"paginated\", \"defaultPageSize\", \"refreshDeps\", \"fetchKey\"]);\n\n useEffect(function () {\n if (fetchKey) {\n console.error(\"useRequest pagination's fetchKey will not work!\");\n }\n }, []);\n\n var _c = useAsync(service, __assign({\n defaultParams: [{\n current: 1,\n pageSize: defaultPageSize\n }]\n }, restOptions)),\n data = _c.data,\n params = _c.params,\n run = _c.run,\n loading = _c.loading,\n rest = __rest(_c, [\"data\", \"params\", \"run\", \"loading\"]);\n\n var _d = params && params[0] ? params[0] : {},\n _e = _d.current,\n current = _e === void 0 ? 1 : _e,\n _f = _d.pageSize,\n pageSize = _f === void 0 ? defaultPageSize : _f,\n _g = _d.sorter,\n sorter = _g === void 0 ? {} : _g,\n _h = _d.filters,\n filters = _h === void 0 ? {} : _h; // 只改变 pagination,其他参数原样传递\n\n\n var runChangePaination = useCallback(function (paginationParams) {\n var _a = __read(params),\n oldPaginationParams = _a[0],\n restParams = _a.slice(1);\n\n run.apply(void 0, __spread([__assign(__assign({}, oldPaginationParams), paginationParams)], restParams));\n }, [run, params]);\n var total = (data === null || data === void 0 ? void 0 : data.total) || 0;\n var totalPage = useMemo(function () {\n return Math.ceil(total / pageSize);\n }, [pageSize, total]);\n var onChange = useCallback(function (c, p) {\n var toCurrent = c <= 0 ? 1 : c;\n var toPageSize = p <= 0 ? 1 : p;\n var tempTotalPage = Math.ceil(total / toPageSize);\n\n if (toCurrent > tempTotalPage) {\n toCurrent = tempTotalPage;\n }\n\n runChangePaination({\n current: c,\n pageSize: p\n });\n }, [total, runChangePaination]);\n var changeCurrent = useCallback(function (c) {\n onChange(c, pageSize);\n }, [onChange, pageSize]);\n var changePageSize = useCallback(function (p) {\n onChange(current, p);\n }, [onChange, current]);\n var changeCurrentRef = useRef(changeCurrent);\n changeCurrentRef.current = changeCurrent;\n /* 分页场景下,如果 refreshDeps 变化,重置分页 */\n\n useUpdateEffect(function () {\n /* 只有自动执行的场景, refreshDeps 才有效 */\n if (!options.manual) {\n changeCurrentRef.current(1);\n }\n }, __spread(refreshDeps)); // 表格翻页 排序 筛选等\n\n var changeTable = useCallback(function (p, f, s) {\n runChangePaination({\n current: p.current,\n pageSize: p.pageSize || defaultPageSize,\n filters: f,\n sorter: s\n });\n }, [filters, sorter, runChangePaination]);\n return __assign({\n loading: loading,\n data: data,\n params: params,\n run: run,\n pagination: {\n current: current,\n pageSize: pageSize,\n total: total,\n totalPage: totalPage,\n onChange: onChange,\n changeCurrent: changeCurrent,\n changePageSize: changePageSize\n },\n tableProps: {\n dataSource: (data === null || data === void 0 ? void 0 : data.list) || [],\n loading: loading,\n onChange: changeTable,\n pagination: {\n current: current,\n pageSize: pageSize,\n total: total\n }\n },\n sorter: sorter,\n filters: filters\n }, rest);\n}\n\nexport default usePaginated;","import React from 'react';\nvar ConfigContext = /*#__PURE__*/React.createContext({});\nConfigContext.displayName = 'UseRequestConfigContext';\nexport default ConfigContext;","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nvar __spread = this && this.__spread || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n};\n/* eslint-disable react-hooks/rules-of-hooks */\n\n\nimport { useRef, useContext } from 'react';\nimport useAsync from './useAsync';\nimport useLoadMore from './useLoadMore';\nimport usePaginated from './usePaginated';\nimport ConfigContext from './configContext';\n\nfunction useRequest(service, options) {\n if (options === void 0) {\n options = {};\n }\n\n var contextConfig = useContext(ConfigContext);\n\n var finalOptions = __assign(__assign({}, contextConfig), options);\n\n var paginated = finalOptions.paginated,\n loadMore = finalOptions.loadMore,\n requestMethod = finalOptions.requestMethod;\n var paginatedRef = useRef(paginated);\n var loadMoreRef = useRef(loadMore);\n\n if (paginatedRef.current !== paginated) {\n throw Error('You should not modify the paginated of options');\n }\n\n if (loadMoreRef.current !== loadMore) {\n throw Error('You should not modify the loadMore of options');\n }\n\n paginatedRef.current = paginated;\n loadMoreRef.current = loadMore; // @ts-ignore\n\n var fetchProxy = function fetchProxy() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n } // @ts-ignore\n\n\n return fetch.apply(void 0, __spread(args)).then(function (res) {\n if (res.ok) {\n return res.json();\n }\n\n throw new Error(res.statusText);\n });\n };\n\n var finalRequestMethod = requestMethod || fetchProxy;\n var promiseService;\n\n switch (typeof service) {\n case 'string':\n promiseService = function promiseService() {\n return finalRequestMethod(service);\n };\n\n break;\n\n case 'object':\n var url_1 = service.url,\n rest_1 = __rest(service, [\"url\"]);\n\n promiseService = function promiseService() {\n return requestMethod ? requestMethod(service) : fetchProxy(url_1, rest_1);\n };\n\n break;\n\n default:\n promiseService = function promiseService() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return new Promise(function (resolve, reject) {\n var s = service.apply(void 0, __spread(args));\n var fn = s;\n\n if (!s.then) {\n switch (typeof s) {\n case 'string':\n fn = finalRequestMethod(s);\n break;\n\n case 'object':\n var url_2 = s.url,\n rest_2 = __rest(s, [\"url\"]);\n\n fn = requestMethod ? requestMethod(s) : fetchProxy(url_2, rest_2);\n break;\n }\n }\n\n fn.then(resolve)[\"catch\"](reject);\n });\n };\n\n }\n\n if (loadMore) {\n return useLoadMore(promiseService, finalOptions);\n }\n\n if (paginated) {\n return usePaginated(promiseService, finalOptions);\n }\n\n return useAsync(promiseService, finalOptions);\n}\n\nvar UseRequestProvider = ConfigContext.Provider; // UseAPIProvider 已经废弃,此处为了兼容 umijs 插件 plugin-request\n\nvar UseAPIProvider = UseRequestProvider;\nexport { useAsync, usePaginated, useLoadMore, UseRequestProvider, UseAPIProvider };\nexport default useRequest;","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n"],"sourceRoot":""}