diff --git a/dist/index.cjs b/dist/index.cjs index 72ac6bf..060d7f1 100644 --- a/dist/index.cjs +++ b/dist/index.cjs @@ -133,7 +133,7 @@ var x = function(t) { var U = m, P = a, k = function(t) { return "symbol" == typeof t || O(t) && "[object Symbol]" == x(t); -}, C = /^[-+]0x[0-9a-f]+$/i, A = /^0b[01]+$/i, N = /^0o[0-7]+$/i, M = parseInt; +}, A = /^[-+]0x[0-9a-f]+$/i, C = /^0b[01]+$/i, N = /^0o[0-7]+$/i, M = parseInt; var V = a, H = l, K = function(t) { if ("number" == typeof t) return t; @@ -144,8 +144,8 @@ var V = a, H = l, K = function(t) { } if ("string" != typeof t) return 0 === t ? t : +t; t = U(t); - var n = A.test(t); - return n || N.test(t) ? M(t.slice(2), n ? 2 : 8) : C.test(t) ? NaN : +t; + var n = C.test(t); + return n || N.test(t) ? M(t.slice(2), n ? 2 : 8) : A.test(t) ? NaN : +t; }, D = Math.max, W = Math.min; var $ = function(t, e, n) { @@ -258,7 +258,7 @@ function Q(t) { window.addEventListener(n, i), i(), e++; }, unmount: function() { - e--, e <= 0 && (window.removeEventListener(n, i), i.cancel()); + e--, e <= 0 && (window.removeEventListener(n, i), i.cancel(), a.removeAllListeners("params")); }, paramshref: "hash" === t ? F : B, setparams: "hash" === t ? I : G, diff --git a/dist/index.cjs.map b/dist/index.cjs.map index 466c4d5..58e3bce 100644 --- a/dist/index.cjs.map +++ b/dist/index.cjs.map @@ -1 +1 @@ -{"version":3,"file":"index.cjs","sources":["../node_modules/.pnpm/@masx200+event-emitter-target@1.1.8/node_modules/@masx200/event-emitter-target/dist/index.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObject.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_root.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_freeGlobal.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/now.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_trimmedEndIndex.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTrim.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Symbol.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getRawTag.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_objectToString.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetTag.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isSymbol.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObjectLike.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toNumber.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/debounce.js","../src/createrouter/hashrouter/gethashparams.ts","../src/createrouter/hashrouter/gethashhref.ts","../src/createrouter/hashrouter/sethashparams.ts","../src/createrouter/hashrouter/transformhashparams.ts","../src/createrouter/searchrouter/getsearchparams.ts","../src/createrouter/searchrouter/getsearchhref.ts","../src/createrouter/searchrouter/setsearchparams.ts","../src/createrouter/searchrouter/transformsearchparams.ts","../src/createrouter/createbaserouter.ts","../src/components/navigate.ts","../src/components/createclickhandler.tsx","../src/components/isModifiedEvent.tsx","../src/createrouter/matchRoute.ts","../src/components/isrouterecord.ts","../src/createrouter/isRecordRedirect.ts","../src/createrouter/isRecordRoute.ts","../src/components/react/createReactParamsHook.tsx","../src/components/vue/createVueParamsHook.tsx","../src/createrouter/hashrouter/createhashrouter.ts","../src/components/react/create-react-link.tsx","../src/components/react/create-react-view.tsx","../src/createrouter/searchrouter/createsearchrouter.ts","../src/components/vue/create-vue-link.tsx","../src/components/vue/create-vue-view.tsx"],"sourcesContent":["function t() {\n return {}.toString.call({\n [Symbol.toStringTag]: \"EventEmitterTarget\"\n });\n}\n\nfunction e(t) {\n if (\"string\" != typeof t && \"symbol\" != typeof t) throw new TypeError(\" EVENTNAME expected: string | symbol;but invalid :\" + t);\n}\n\nfunction n(t) {\n if (\"function\" != typeof t) throw new TypeError(\" EVENTLISTENER expected: (event?: any) => void;but invalid:\" + t);\n}\n\nfunction r() {\n const r = new Map, i = new WeakMap;\n function o(t) {\n let e = r.get(t);\n return e || (e = new Set, r.set(t, e)), e;\n }\n function c(t) {\n if (e(t), r.has(t)) {\n o(t).clear();\n }\n }\n function s(t, n) {\n if (e(t), r.has(t)) {\n o(t).forEach((t => {\n Promise.resolve().then((() => {\n t(n);\n }));\n }));\n }\n }\n function u(t, r) {\n e(t), n(r);\n o(t).add(r);\n }\n function f(t, e) {\n o(t).delete(e);\n }\n function a(t, r) {\n e(t), n(r), f(t, r), function(t, e) {\n const n = o(t);\n let r = i.get(e);\n r && n.delete(r);\n }(t, r);\n }\n function l() {\n return [ ...r ].map((([t, e]) => [ t, [ ...e ] ]))[Symbol.iterator]();\n }\n return {\n [Symbol.toPrimitive]: t,\n [Symbol.toStringTag]: \"EventEmitterTarget\",\n [Symbol.iterator]: l,\n entries: l,\n listenerCount: function(t) {\n if (e(t), r.has(t)) {\n return o(t).size;\n }\n return 0;\n },\n clear: c,\n removeAllListeners: c,\n on: u,\n addListener: u,\n off: a,\n removeListener: a,\n once: function(t, r) {\n e(t), n(r);\n let o = !1, c = i.get(r);\n if (!c) {\n const e = n => {\n f(t, e), f(t, r), o || (o = !0, r(n));\n };\n c = e, i.set(r, c);\n }\n f(t, r), u(t, c);\n },\n emit: s,\n dispatch: s,\n eventNames: function() {\n return [ ...r.keys() ];\n },\n listeners: function(t) {\n if (e(t), r.has(t)) {\n return [ ...o(t) ];\n }\n return [];\n }\n };\n}\n\nconst i = (t => {\n var e = Symbol(), n = new Function(\"return async()=>{}\")()();\n function i() {\n const t = r();\n return this && this instanceof i ? (Object.assign(this, t), this) : Reflect.construct(i, []);\n }\n return Reflect.set(i, e, n), i;\n})();\n\nexport default i;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NyYy90b3ByaW1pdGl2ZS50cyIsIi4uL3NyYy90b1N0cmluZ1RhZy50cyIsIi4uL3NyYy9hc3NlcnRFVkVOVE5BTUUudHMiLCIuLi9zcmMvYXNzZXJ0RVZFTlRMSVNURU5FUi50cyIsIi4uL3NyYy9jcmVhdGVFdmVudEVtaXR0ZXJUYXJnZXQudHMiLCIuLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdG9TdHJpbmdUYWcgfSBmcm9tIFwiLi90b1N0cmluZ1RhZ1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gdG9wcmltaXRpdmUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4ge30udG9TdHJpbmcuY2FsbCh7IFtTeW1ib2wudG9TdHJpbmdUYWddOiB0b1N0cmluZ1RhZyB9KTtcbn1cbiIsImV4cG9ydCBjb25zdCB0b1N0cmluZ1RhZyA9IFwiRXZlbnRFbWl0dGVyVGFyZ2V0XCI7XG4iLCJpbXBvcnQgeyBFVkVOVE5BTUUgfSBmcm9tIFwiLi9pbmRleFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0RVZFTlROQU1FKG5hbWU6IGFueSk6IGFzc2VydHMgbmFtZSBpcyBFVkVOVE5BTUUge1xuICAgIGlmIChcInN0cmluZ1wiICE9PSB0eXBlb2YgbmFtZSAmJiBcInN5bWJvbFwiICE9PSB0eXBlb2YgbmFtZSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgICAgXCIgRVZFTlROQU1FIGV4cGVjdGVkOiBzdHJpbmcgfCBzeW1ib2w7YnV0IGludmFsaWQgOlwiICsgbmFtZVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsImltcG9ydCB7IEVWRU5UTElTVEVORVIgfSBmcm9tIFwiLi9pbmRleFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0RVZFTlRMSVNURU5FUihcbiAgICBjYWxsYmFjazogYW55XG4pOiBhc3NlcnRzIGNhbGxiYWNrIGlzIEVWRU5UTElTVEVORVIge1xuICAgIGlmIChcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBjYWxsYmFjaykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgICAgXCIgRVZFTlRMSVNURU5FUiBleHBlY3RlZDogKGV2ZW50PzogYW55KSA9PiB2b2lkO2J1dCBpbnZhbGlkOlwiICtcbiAgICAgICAgICAgICAgICBjYWxsYmFja1xuICAgICAgICApO1xuICAgIH1cbn1cbiIsImltcG9ydCB7IEVWRU5UTkFNRSwgRVZFTlRMSVNURU5FUiB9IGZyb20gXCIuL2luZGV4XCI7XG5pbXBvcnQgeyB0b3ByaW1pdGl2ZSB9IGZyb20gXCIuL3RvcHJpbWl0aXZlXCI7XG5pbXBvcnQgeyB0b1N0cmluZ1RhZyB9IGZyb20gXCIuL3RvU3RyaW5nVGFnXCI7XG5pbXBvcnQgeyBhc3NlcnRFVkVOVE5BTUUgfSBmcm9tIFwiLi9hc3NlcnRFVkVOVE5BTUVcIjtcbmltcG9ydCB7IGFzc2VydEVWRU5UTElTVEVORVIgfSBmcm9tIFwiLi9hc3NlcnRFVkVOVExJU1RFTkVSXCI7XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRXZlbnRFbWl0dGVyVGFyZ2V0KCkge1xuICAgIGNvbnN0IOebkeWQrOWZqOWbnuiwg+aYoOWwhCA9IG5ldyBNYXA8RVZFTlROQU1FLCBTZXQ8RVZFTlRMSVNURU5FUj4+KCk7XG4gICAgY29uc3Qg5rqQ5Zue6LCD5Yiw5LiA5qyh5YyF6KOFID0gbmV3IFdlYWtNYXA8RVZFTlRMSVNURU5FUiwgRVZFTlRMSVNURU5FUj4oKTtcbiAgICBmdW5jdGlvbiDojrflj5bnm5HlkKzlmajpm4blkIgobmFtZTogRVZFTlROQU1FKTogU2V0PEVWRU5UTElTVEVORVI+IHtcbiAgICAgICAgbGV0IOebkeWQrOWZqOmbhuWQiDogU2V0PEVWRU5UTElTVEVORVI+IHwgdW5kZWZpbmVkID1cbiAgICAgICAgICAgIOebkeWQrOWZqOWbnuiwg+aYoOWwhC5nZXQobmFtZSk7XG4gICAgICAgIGlmICgh55uR5ZCs5Zmo6ZuG5ZCIKSB7XG4gICAgICAgICAgICDnm5HlkKzlmajpm4blkIggPSBuZXcgU2V0KCk7XG4gICAgICAgICAgICDnm5HlkKzlmajlm57osIPmmKDlsIQuc2V0KG5hbWUsIOebkeWQrOWZqOmbhuWQiCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIOebkeWQrOWZqOmbhuWQiDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjbGVhcihuYW1lOiBFVkVOVE5BTUUpIHtcbiAgICAgICAgYXNzZXJ0RVZFTlROQU1FKG5hbWUpO1xuICAgICAgICBpZiAo55uR5ZCs5Zmo5Zue6LCD5pig5bCELmhhcyhuYW1lKSkge1xuICAgICAgICAgICAgY29uc3Qg55uR5ZCs5Zmo6ZuG5ZCIID0g6I635Y+W55uR5ZCs5Zmo6ZuG5ZCIKG5hbWUpO1xuICAgICAgICAgICAg55uR5ZCs5Zmo6ZuG5ZCILmNsZWFyKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZW1pdChuYW1lOiBFVkVOVE5BTUUsIGV2ZW50PzogYW55KSB7XG4gICAgICAgIGFzc2VydEVWRU5UTkFNRShuYW1lKTtcbiAgICAgICAgaWYgKOebkeWQrOWZqOWbnuiwg+aYoOWwhC5oYXMobmFtZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IOebkeWQrOWZqOmbhuWQiCA9IOiOt+WPluebkeWQrOWZqOmbhuWQiChuYW1lKTtcbiAgICAgICAgICAgIOebkeWQrOWZqOmbhuWQiC5mb3JFYWNoKChsaXN0ZW5lcikgPT4ge1xuICAgICAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lcihldmVudCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBvbmNlKG5hbWU6IEVWRU5UTkFNRSwgY2FsbGJhY2s6IEVWRU5UTElTVEVORVIpIHtcbiAgICAgICAgYXNzZXJ0RVZFTlROQU1FKG5hbWUpO1xuICAgICAgICBhc3NlcnRFVkVOVExJU1RFTkVSKGNhbGxiYWNrKTtcbiAgICAgICAgbGV0IGZpcmVkID0gZmFsc2U7XG4gICAgICAgIGxldCB3cmFwcGVkID0g5rqQ5Zue6LCD5Yiw5LiA5qyh5YyF6KOFLmdldChjYWxsYmFjayk7XG4gICAgICAgIGlmICghd3JhcHBlZCkge1xuICAgICAgICAgICAgY29uc3Qg5LiA5qyh5YyF6KOFID0gKGV2ZW50PzogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgb2ZmcmF3KG5hbWUsIOS4gOasoeWMheijhSk7XG4gICAgICAgICAgICAgICAgb2ZmcmF3KG5hbWUsIGNhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICBpZiAoIWZpcmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpcmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3cmFwcGVkID0g5LiA5qyh5YyF6KOFO1xuICAgICAgICAgICAg5rqQ5Zue6LCD5Yiw5LiA5qyh5YyF6KOFLnNldChjYWxsYmFjaywgd3JhcHBlZCk7XG4gICAgICAgIH1cbiAgICAgICAgb2ZmcmF3KG5hbWUsIGNhbGxiYWNrKTtcbiAgICAgICAgb24obmFtZSwgd3JhcHBlZCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG9uKG5hbWU6IEVWRU5UTkFNRSwgY2FsbGJhY2s6IEVWRU5UTElTVEVORVIpIHtcbiAgICAgICAgYXNzZXJ0RVZFTlROQU1FKG5hbWUpO1xuICAgICAgICBhc3NlcnRFVkVOVExJU1RFTkVSKGNhbGxiYWNrKTtcbiAgICAgICAgY29uc3Qg55uR5ZCs5Zmo6ZuG5ZCIID0g6I635Y+W55uR5ZCs5Zmo6ZuG5ZCIKG5hbWUpO1xuICAgICAgICDnm5HlkKzlmajpm4blkIguYWRkKGNhbGxiYWNrKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gb2ZmcmF3KG5hbWU6IEVWRU5UTkFNRSwgY2FsbGJhY2s6IEVWRU5UTElTVEVORVIpIHtcbiAgICAgICAgY29uc3Qg55uR5ZCs5Zmo6ZuG5ZCIID0g6I635Y+W55uR5ZCs5Zmo6ZuG5ZCIKG5hbWUpO1xuICAgICAgICDnm5HlkKzlmajpm4blkIguZGVsZXRlKGNhbGxiYWNrKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gb2Zmd3JhcChuYW1lOiBFVkVOVE5BTUUsIGNhbGxiYWNrOiBFVkVOVExJU1RFTkVSKSB7XG4gICAgICAgIGNvbnN0IOebkeWQrOWZqOmbhuWQiCA9IOiOt+WPluebkeWQrOWZqOmbhuWQiChuYW1lKTtcbiAgICAgICAgbGV0IOS4gOasoeWMheijhSA9IOa6kOWbnuiwg+WIsOS4gOasoeWMheijhS5nZXQoY2FsbGJhY2spO1xuICAgICAgICBpZiAo5LiA5qyh5YyF6KOFKSB7XG4gICAgICAgICAgICDnm5HlkKzlmajpm4blkIguZGVsZXRlKOS4gOasoeWMheijhSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gb2ZmKG5hbWU6IEVWRU5UTkFNRSwgY2FsbGJhY2s6IEVWRU5UTElTVEVORVIpIHtcbiAgICAgICAgYXNzZXJ0RVZFTlROQU1FKG5hbWUpO1xuICAgICAgICBhc3NlcnRFVkVOVExJU1RFTkVSKGNhbGxiYWNrKTtcblxuICAgICAgICBvZmZyYXcobmFtZSwgY2FsbGJhY2spO1xuICAgICAgICBvZmZ3cmFwKG5hbWUsIGNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBldmVudE5hbWVzKCk6IEVWRU5UTkFNRVtdIHtcbiAgICAgICAgcmV0dXJuIFsuLi7nm5HlkKzlmajlm57osIPmmKDlsIQua2V5cygpXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbGlzdGVuZXJzKG5hbWU6IEVWRU5UTkFNRSk6IEVWRU5UTElTVEVORVJbXSB7XG4gICAgICAgIGFzc2VydEVWRU5UTkFNRShuYW1lKTtcbiAgICAgICAgaWYgKOebkeWQrOWZqOWbnuiwg+aYoOWwhC5oYXMobmFtZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IOebkeWQrOWZqOmbhuWQiCA9IOiOt+WPluebkeWQrOWZqOmbhuWQiChuYW1lKTtcbiAgICAgICAgICAgIHJldHVybiBbLi4u55uR5ZCs5Zmo6ZuG5ZCIXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBsaXN0ZW5lckNvdW50KG5hbWU6IEVWRU5UTkFNRSk6IG51bWJlciB7XG4gICAgICAgIGFzc2VydEVWRU5UTkFNRShuYW1lKTtcbiAgICAgICAgaWYgKOebkeWQrOWZqOWbnuiwg+aYoOWwhC5oYXMobmFtZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IOebkeWQrOWZqOmbhuWQiCA9IOiOt+WPluebkeWQrOWZqOmbhuWQiChuYW1lKTtcbiAgICAgICAgICAgIHJldHVybiDnm5HlkKzlmajpm4blkIguc2l6ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXRlcmF0b3IoKTogSXRlcmFibGVJdGVyYXRvcjxbRVZFTlROQU1FLCBFVkVOVExJU1RFTkVSW11dPiB7XG4gICAgICAgIGxldCByZXN1bHRhcnI6IEFycmF5PFtFVkVOVE5BTUUsIEVWRU5UTElTVEVORVJbXV0+ID0gW1xuICAgICAgICAgICAgLi4u55uR5ZCs5Zmo5Zue6LCD5pig5bCELFxuICAgICAgICBdLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gW2tleSwgWy4uLnZhbHVlXV0gYXMgW0VWRU5UTkFNRSwgRVZFTlRMSVNURU5FUltdXTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdGFycltTeW1ib2wuaXRlcmF0b3JdKCk7XG4gICAgfVxuICAgIGNvbnN0IGV2ZW50dGFyZ2V0ID0ge1xuICAgICAgICBbU3ltYm9sLnRvUHJpbWl0aXZlXTogdG9wcmltaXRpdmUsXG5cbiAgICAgICAgW1N5bWJvbC50b1N0cmluZ1RhZ106IHRvU3RyaW5nVGFnLFxuICAgICAgICBbU3ltYm9sLml0ZXJhdG9yXTogaXRlcmF0b3IsXG4gICAgICAgIGVudHJpZXM6IGl0ZXJhdG9yLFxuICAgICAgICBsaXN0ZW5lckNvdW50LFxuICAgICAgICBjbGVhcixcbiAgICAgICAgcmVtb3ZlQWxsTGlzdGVuZXJzOiBjbGVhcixcbiAgICAgICAgb24sXG4gICAgICAgIGFkZExpc3RlbmVyOiBvbixcbiAgICAgICAgb2ZmLFxuICAgICAgICByZW1vdmVMaXN0ZW5lcjogb2ZmLFxuICAgICAgICBvbmNlLFxuICAgICAgICBlbWl0LFxuICAgICAgICBkaXNwYXRjaDogZW1pdCxcbiAgICAgICAgZXZlbnROYW1lcyxcbiAgICAgICAgbGlzdGVuZXJzLFxuICAgIH07XG4gICAgcmV0dXJuIGV2ZW50dGFyZ2V0O1xufVxuIiwiaW1wb3J0IHsgY3JlYXRlRXZlbnRFbWl0dGVyVGFyZ2V0IH0gZnJvbSBcIi4vY3JlYXRlRXZlbnRFbWl0dGVyVGFyZ2V0XCI7XG5cbmV4cG9ydCB0eXBlIEV2ZW50RW1pdHRlclRhcmdldCA9IFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZUV2ZW50RW1pdHRlclRhcmdldD47XG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50RW1pdHRlclRhcmdldENvbnN0cnVjdG9yIHtcbiAgICBuZXcgKCk6IEV2ZW50RW1pdHRlclRhcmdldDtcbiAgICAoKTogRXZlbnRFbWl0dGVyVGFyZ2V0O1xufVxuY29uc3QgRXZlbnRFbWl0dGVyVGFyZ2V0Q2xhc3M6IEV2ZW50RW1pdHRlclRhcmdldENvbnN0cnVjdG9yID0gKChub29wKSA9PiB7XG4gICAgdmFyIGEgPSBub29wKCk7XG4gICAgdmFyIGIgPSBuZXcgRnVuY3Rpb24oXCJyZXR1cm4gYXN5bmMoKT0+e31cIikoKSgpO1xuXG4gICAgZnVuY3Rpb24gRXZlbnRFbWl0dGVyVGFyZ2V0Q2xhc3ModGhpczogYW55KTogRXZlbnRFbWl0dGVyVGFyZ2V0IHtcbiAgICAgICAgY29uc3QgZXZlbnRlbWl0dGVydGFyZ2V0ID0gY3JlYXRlRXZlbnRFbWl0dGVyVGFyZ2V0KCk7XG4gICAgICAgIGlmICh0aGlzICYmIHRoaXMgaW5zdGFuY2VvZiBFdmVudEVtaXR0ZXJUYXJnZXRDbGFzcykge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBldmVudGVtaXR0ZXJ0YXJnZXQpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMgYXMgRXZlbnRFbWl0dGVyVGFyZ2V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3QuY29uc3RydWN0KEV2ZW50RW1pdHRlclRhcmdldENsYXNzLCBbXSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgUmVmbGVjdC5zZXQoRXZlbnRFbWl0dGVyVGFyZ2V0Q2xhc3MsIGEsIGIpO1xuXG4gICAgcmV0dXJuIEV2ZW50RW1pdHRlclRhcmdldENsYXNzIGFzIEV2ZW50RW1pdHRlclRhcmdldENvbnN0cnVjdG9yO1xufSkoU3ltYm9sKTtcbmV4cG9ydCB0eXBlIEVWRU5UTkFNRSA9IHN0cmluZyB8IHN5bWJvbDtcbmV4cG9ydCB0eXBlIEVWRU5UTElTVEVORVIgPSAoZXZlbnQ/OiBhbnkpID0+IHZvaWQ7XG5leHBvcnQgZGVmYXVsdCBFdmVudEVtaXR0ZXJUYXJnZXRDbGFzcztcbiJdLCJuYW1lcyI6WyJ0b3ByaW1pdGl2ZSIsInRvU3RyaW5nIiwiY2FsbCIsIlN5bWJvbCIsInRvU3RyaW5nVGFnIiwiYXNzZXJ0RVZFTlROQU1FIiwibmFtZSIsIlR5cGVFcnJvciIsImFzc2VydEVWRU5UTElTVEVORVIiLCJjYWxsYmFjayIsImNyZWF0ZUV2ZW50RW1pdHRlclRhcmdldCIsIuebkeWQrOWZqOWbnuiwg+aYoOWwhCIsIk1hcCIsIua6kOWbnuiwg+WIsOS4gOasoeWMheijhSIsIldlYWtNYXAiLCLojrflj5bnm5HlkKzlmajpm4blkIgiLCLnm5HlkKzlmajpm4blkIgiLCJnZXQiLCJTZXQiLCJzZXQiLCJjbGVhciIsImhhcyIsImVtaXQiLCJldmVudCIsImZvckVhY2giLCJsaXN0ZW5lciIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsIm9uIiwiYWRkIiwib2ZmcmF3IiwiZGVsZXRlIiwib2ZmIiwi5LiA5qyh5YyF6KOFIiwib2Zmd3JhcCIsIml0ZXJhdG9yIiwibWFwIiwia2V5IiwidmFsdWUiLCJ0b1ByaW1pdGl2ZSIsImVudHJpZXMiLCJsaXN0ZW5lckNvdW50Iiwic2l6ZSIsInJlbW92ZUFsbExpc3RlbmVycyIsImFkZExpc3RlbmVyIiwicmVtb3ZlTGlzdGVuZXIiLCJvbmNlIiwiZmlyZWQiLCJ3cmFwcGVkIiwiZGlzcGF0Y2giLCJldmVudE5hbWVzIiwia2V5cyIsImxpc3RlbmVycyIsIkV2ZW50RW1pdHRlclRhcmdldENsYXNzIiwibm9vcCIsImEiLCJiIiwiRnVuY3Rpb24iLCJldmVudGVtaXR0ZXJ0YXJnZXQiLCJ0aGlzIiwiT2JqZWN0IiwiYXNzaWduIiwiUmVmbGVjdCIsImNvbnN0cnVjdCJdLCJtYXBwaW5ncyI6IlNBRWdCQTtXQUNMLEdBQUdDLFNBQVNDLEtBQUs7U0FBR0MsT0FBT0MsY0NIWDs7OztTQ0VYQyxFQUFnQkM7UUFDeEIsbUJBQW9CQSxLQUFRLG1CQUFvQkEsU0FDMUMsSUFBSUMsVUFDTix1REFBdUREOzs7U0NIbkRFLEVBQ1pDO1FBRUkscUJBQXNCQSxTQUNoQixJQUFJRixVQUNOLGdFQUNJRTs7O1NDSEFDO1VBQ05DLElBQVUsSUFBSUMsS0FDZEMsSUFBVyxJQUFJQzthQUNaQyxFQUFRVDtZQUNUVSxJQUNBTCxFQUFRTSxJQUFJWDtlQUNYVSxNQUNEQSxJQUFRLElBQUlFLEtBQ1pQLEVBQVFRLElBQUliLEdBQU1VLEtBRWZBOzthQUdGSSxFQUFNZDtZQUNYRCxFQUFnQkMsSUFDWkssRUFBUVUsSUFBSWYsSUFBTztZQUNMUyxFQUFRVCxHQUNoQmM7OzthQUdMRSxFQUFLaEIsR0FBaUJpQjtZQUMzQmxCLEVBQWdCQyxJQUNaSyxFQUFRVSxJQUFJZixJQUFPO1lBQ0xTLEVBQVFULEdBQ2hCa0IsU0FBU0M7Z0JBQ1hDLFFBQVFDLFVBQVVDLE1BQUs7b0JBQ25CSCxFQUFTRjs7Ozs7YUF5QmhCTSxFQUFHdkIsR0FBaUJHO1FBQ3pCSixFQUFnQkMsSUFDaEJFLEVBQW9CQztRQUNOTSxFQUFRVCxHQUNoQndCLElBQUlyQjs7YUFFTHNCLEVBQU96QixHQUFpQkc7UUFDZk0sRUFBUVQsR0FDaEIwQixPQUFPdkI7O2FBU1J3QixFQUFJM0IsR0FBaUJHO1FBQzFCSixFQUFnQkMsSUFDaEJFLEVBQW9CQyxJQUVwQnNCLEVBQU96QixHQUFNRyxhQVhBSCxHQUFpQkc7a0JBQ3hCTyxJQUFRRCxFQUFRVDtnQkFDbEI0QixJQUFPckIsRUFBU0ksSUFBSVI7WUFDcEJ5QixLQUNBbEIsRUFBTWdCLE9BQU9FO1NBUWpCQyxDQUFRN0IsR0FBTUc7O2FBeUJUMkI7ZUFDZ0QsS0FDOUN6QixJQUNMMEIsS0FBSSxFQUFFQyxHQUFLQyxPQUNGLEVBQUNELEdBQUssS0FBSUMsUUFHSnBDLE9BQU9pQzs7V0FFUjtTQUNmakMsT0FBT3FDLGNBQWN4QztTQUVyQkcsT0FBT0MsY0huSFc7U0dvSGxCRCxPQUFPaUMsV0FBV0E7UUFDbkJLLFNBQVNMO1FBQ1RNLHdCQXpCbUJwQztnQkFDbkJELEVBQWdCQyxJQUNaSyxFQUFRVSxJQUFJZixJQUFPO3VCQUNMUyxFQUFRVCxHQUNUcUM7O21CQUVOOztRQW9CWHZCLE9BQUFBO1FBQ0F3QixvQkFBb0J4QjtRQUNwQlMsSUFBQUE7UUFDQWdCLGFBQWFoQjtRQUNiSSxLQUFBQTtRQUNBYSxnQkFBZ0JiO1FBQ2hCYyxlQXpGVXpDLEdBQWlCRztZQUMzQkosRUFBZ0JDLElBQ2hCRSxFQUFvQkM7Z0JBQ2hCdUMsS0FBUSxHQUNSQyxJQUFVcEMsRUFBU0ksSUFBSVI7aUJBQ3RCd0MsR0FBUztzQkFDSmYsSUFBUVg7b0JBQ1ZRLEVBQU96QixHQUFNNEIsSUFDYkgsRUFBT3pCLEdBQU1HLElBQ1J1QyxNQUNEQSxLQUFRLEdBQ1J2QyxFQUFTYzs7Z0JBR2pCMEIsSUFBVWYsR0FDVnJCLEVBQVNNLElBQUlWLEdBQVV3Qzs7WUFFM0JsQixFQUFPekIsR0FBTUcsSUFDYm9CLEVBQUd2QixHQUFNMkM7O1FBd0VUM0IsTUFBQUE7UUFDQTRCLFVBQVU1QjtRQUNWNkI7bUJBOUNPLEtBQUl4QyxFQUFReUM7O1FBK0NuQkMsb0JBN0NlL0M7Z0JBQ2ZELEVBQWdCQyxJQUNaSyxFQUFRVSxJQUFJZixJQUFPO3VCQUVaLEtBRE9TLEVBQVFUOzttQkFHZjs7Ozs7TUNuRmJnRCxJQUF5RCxDQUFFQztRQUN6REMsSUFlTHJELFVBZEtzRCxJQUFJLElBQUlDLFNBQVMscUJBQWIsRUFBQTthQUVDSjtjQUNDSyxJQUFxQmpEO2VBQ3ZCa0QsUUFBUUEsZ0JBQWdCTixLQUN4Qk8sT0FBT0MsT0FBT0YsTUFBTUQsSUFDYkMsUUFFQUcsUUFBUUMsVUFBVVYsR0FBeUI7O1dBRzFEUyxRQUFRNUMsSUFBSW1DLEdBQXlCRSxHQUFHQyxJQUVqQ0g7RUFmb0Q7OyJ9\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 != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var freeGlobal = require('./_freeGlobal');\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\nmodule.exports = root;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var root = require('./_root');\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\nmodule.exports = now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\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 nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\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 nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\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) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\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 != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\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/**\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 = baseTrim(value);\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 = toNumber;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\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 * 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 timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\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 clearTimeout(timerId);\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\nmodule.exports = debounce;\n","export function gethashparams() {\n return (\n (location.hash &&\n Object.fromEntries(new URLSearchParams(location.hash.slice(1)))) ||\n {}\n );\n}\n","//@ts-ignore\nimport { gethashparams } from \"./gethashparams.ts\";\n\nexport function gethashhref(\n to:\n | Record\n | ((old: Record) => Record)\n): string {\n if (!to) {\n throw new TypeError(\"object,function\");\n }\n let params: {\n [k: string]: string;\n } = gethashparams();\n let url = new URL(location.href);\n\n if (\"function\" === typeof to) {\n params = to(params);\n url.hash = String(new URLSearchParams({ ...to }));\n return url.href;\n }\n if (\"object\" === typeof to) {\n params = to;\n url.hash = String(new URLSearchParams({ ...to }));\n return url.href;\n }\n throw new TypeError(\"object,function\");\n}\n","export function sethashparams(opt: Record) {\n const oldhash = location.hash;\n let url = new URL(location.href);\n\n url.hash = String(new URLSearchParams({ ...opt }));\n\n if (oldhash === url.hash) {\n return;\n }\n history.pushState({}, \"\", url.href);\n\n window.dispatchEvent(new Event(\"hashchange\"));\n}\n","//@ts-ignore\nimport { gethashparams } from \"./gethashparams.ts\"; //@ts-ignore\nimport { sethashparams } from \"./sethashparams.ts\";\nexport function transformhashparams(\n opt: (old: Record) => Record\n) {\n sethashparams(opt(gethashparams()));\n}\n","export function getsearchparams() {\n return (\n (location.search &&\n Object.fromEntries(new URL(location.href).searchParams)) ||\n {}\n );\n}\n","//@ts-ignore\nimport { getsearchparams } from \"./getsearchparams.ts\";\n\nexport function getsearchhref(\n to:\n | Record\n | ((old: Record) => Record)\n): string {\n if (!to) {\n throw new TypeError(\"object,function\");\n }\n let params: {\n [k: string]: string;\n } = getsearchparams();\n let url = new URL(location.href);\n\n if (\"function\" === typeof to) {\n params = to(params);\n url.search = String(new URLSearchParams({ ...to }));\n return url.href;\n }\n if (\"object\" === typeof to) {\n params = to;\n url.search = String(new URLSearchParams({ ...to }));\n return url.href;\n }\n throw new TypeError(\"object,function\");\n}\n","export function setsearchparams(opt: Record) {\n const oldsearch = location.search;\n let url = new URL(location.href);\n\n url.search = String(new URLSearchParams({ ...opt }));\n\n if (oldsearch === url.search) {\n return;\n }\n history.pushState({}, \"\", url.href);\n\n window.dispatchEvent(new Event(\"popstate\"));\n}\n","//@ts-ignore\nimport { getsearchparams } from \"./getsearchparams.ts\"; //@ts-ignore\nimport { setsearchparams } from \"./setsearchparams.ts\";\nexport function transformsearchparams(\n opt: (old: Record) => Record\n) {\n setsearchparams(opt(getsearchparams()));\n}\n","//@ts-ignore\n\nimport EventEmitterTargetClass, {\n EventEmitterTarget,\n} from \"@masx200/event-emitter-target\";\n//@ts-ignore\nimport debounce from \"lodash/debounce\";\n//@ts-ignore\nimport { gethashhref } from \"./hashrouter/gethashhref\";\n//@ts-ignore\nimport { gethashparams } from \"./hashrouter/gethashparams\";\n//@ts-ignore\nimport { sethashparams } from \"./hashrouter/sethashparams\";\n//@ts-ignore\nimport { transformhashparams } from \"./hashrouter/transformhashparams\";\nimport { RawRouter } from \"./Router\";\n//@ts-ignore\nimport { getsearchhref } from \"./searchrouter/getsearchhref\";\n//@ts-ignore\nimport { getsearchparams } from \"./searchrouter/getsearchparams\"; //\n//@ts-ignore\nimport { setsearchparams } from \"./searchrouter/setsearchparams\"; //@ts-ignore\nimport { transformsearchparams } from \"./searchrouter/transformsearchparams\";\nexport function createBaseRouter(\n type: \"search\" | \"hash\"\n): EventEmitterTarget & RawRouter {\n let mountcount = 0;\n const eventname = \"search\" === type ? \"popstate\" : \"hashchange\";\n\n const emitter: EventEmitterTarget = EventEmitterTargetClass();\n\n const changelistener = debounce(() => {\n const params = \"hash\" === type ? gethashparams() : getsearchparams();\n instance.emit(\"params\", params);\n });\n function mount() {\n window.addEventListener(eventname, changelistener);\n\n changelistener();\n mountcount++;\n }\n function unmount() {\n mountcount--;\n if (mountcount <= 0) {\n window.removeEventListener(eventname, changelistener);\n changelistener.cancel();\n }\n }\n\n const router: RawRouter = {\n mount,\n unmount,\n paramshref: \"hash\" === type ? gethashhref : getsearchhref,\n\n setparams: \"hash\" === type ? sethashparams : setsearchparams,\n getparams: \"hash\" === type ? gethashparams : getsearchparams,\n transformparams:\n \"hash\" === type ? transformhashparams : transformsearchparams,\n [Symbol.toStringTag]: \"search\" === type ? \"SearchRouter\" : \"HashRouter\",\n };\n\n const instance = { ...emitter, ...router } as EventEmitterTarget &\n typeof router;\n\n return instance as EventEmitterTarget & typeof router;\n}\n","import { Router } from \"../createrouter/Router\";\n\nexport function navigate(\n router: Router,\n to:\n | Record\n | ((old: Record) => Record)\n) {\n if (!to) {\n throw new TypeError(\"object,function\");\n }\n if (\"function\" === typeof to) {\n router.transformparams(to);\n return;\n }\n if (\"object\" === typeof to) {\n router.setparams(to);\n return;\n }\n throw new TypeError(\"object,function\");\n}\n","import { Router } from \"../createrouter/Router\";\r\nimport { MouseEvent } from \"react\";\r\nimport { navigate } from \"./navigate\";\r\nimport { isModifiedEvent } from \"./isModifiedEvent\";\r\n\r\nexport function createclickhandler({\r\n onClick, target, router, to,\r\n}: {\r\n onClick?: ((event: MouseEvent) => void) | undefined;\r\n target?: string | undefined;\r\n router: Router;\r\n to: Record |\r\n ((old: Record) => Record);\r\n}) {\r\n return (event: MouseEvent) => {\r\n try {\r\n if (\"function\" === typeof onClick) {\r\n onClick(event);\r\n }\r\n } catch (ex) {\r\n event.preventDefault();\r\n throw ex;\r\n }\r\n if (!event.defaultPrevented &&\r\n // onClick prevented default\r\n event.button === 0 &&\r\n // ignore everything but left clicks\r\n (!target || target === \"_self\") &&\r\n // let browser handle \"target=_blank\" etc.\r\n !isModifiedEvent(event)\r\n // ignore clicks with modifier keys\r\n ) {\r\n event.preventDefault();\r\n navigate(router, to);\r\n }\r\n };\r\n}\r\n","export function isModifiedEvent(\n event: MouseEvent | import(\"react\").MouseEvent\n) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n","import { RouteRecord } from \"./RouteRecord\";\n\nexport function matchRoute(\n routes: RouteRecord[],\n params: Record\n) {\n for (let route of routes) {\n if (route.params(params)) {\n return route;\n }\n }\n return undefined;\n}\n","function isrouterecord(o: any): boolean {\n return !!(o && \"object\" === typeof o && \"function\" === typeof o.params);\n}\nexport { isrouterecord };\n","import { RecordRedirect } from \"./RouteRecord\";\n\nexport function isRecordRedirect(o: any): o is RecordRedirect {\n return !!(\"function\" === typeof o?.params && o?.redirect);\n}\n","import { RecordRoute } from \"./RouteRecord\";\n\nexport function isRecordRoute(o: any): o is RecordRoute {\n return !!(\"function\" === typeof o?.params && o?.component);\n}\n","import debounce from \"lodash/debounce\";\nimport { Router } from \"../../createrouter/Router\";\nimport { useState as useStateType, useEffect as useEffectType } from \"react\";\n\nexport function createReactParamsHook({\n router,\n useState,\n useEffect,\n}: {\n router: Router;\n useState: typeof useStateType;\n useEffect: typeof useEffectType;\n}): () => Readonly> {\n return function () {\n const [params, setparams] = useState>(\n router.getparams()\n );\n useEffect(() => {\n const paramschange = debounce((p) => {\n setparams(p);\n });\n function onmount() {\n router.mount();\n router.on(\"params\", paramschange);\n }\n\n function onunmount() {\n router.unmount();\n\n router.off(\"params\", paramschange);\n paramschange.cancel();\n }\n onmount();\n\n return onunmount;\n }, []);\n return params;\n };\n}\n","import { ref as refType } from \"@vue/runtime-dom\";\nimport debounce from \"lodash/debounce\";\nimport { Router } from \"../../createrouter/Router\";\n\nexport function createVueParamsHook({\n router,\n ref,\n onMounted,\n onUnmounted,\n readonly,\n}: {\n readonly: typeof import(\"@vue/runtime-dom\").readonly;\n onMounted: typeof import(\"@vue/runtime-dom\").onMounted;\n router: Router;\n ref: typeof refType;\n onUnmounted: typeof import(\"@vue/runtime-dom\").onUnmounted;\n}): () => {\n readonly value: {\n readonly [x: string]: string;\n };\n} {\n return function () {\n const params = ref(router.getparams());\n const paramschange = debounce((p) => {\n params.value = p;\n });\n function onmount() {\n router.mount();\n router.on(\"params\", paramschange);\n }\n\n function onunmount() {\n router.unmount();\n\n router.off(\"params\", paramschange);\n paramschange.cancel();\n }\n onMounted(onmount);\n onUnmounted(onunmount);\n return readonly(params);\n };\n}\n","//@ts-ignore\nimport { createBaseRouter } from \"../createbaserouter\";\nimport { Router } from \"../Router\";\nexport type { Router };\nexport function createHashRouter(): Router {\n return createBaseRouter(\"hash\");\n}\n","import { Router } from \"../../createrouter/Router\";\nimport type {\n ComponentType,\n MouseEvent,\n forwardRef as forwardRefType,\n createElement as createElementType,\n} from \"react\";\nimport { ReactLinkComponent } from \"./ReactLinkComponent\";\nimport { createclickhandler } from \"../createclickhandler\";\nexport type { ReactLinkComponent };\nexport function createReactLink({\n router,\n forwardRef,\n createElement,\n}: {\n router: Router;\n forwardRef: typeof forwardRefType;\n createElement: typeof createElementType;\n}): ReactLinkComponent {\n return forwardRef<\n unknown,\n {\n component?: string | ComponentType;\n target?: string;\n onClick?: (event: MouseEvent) => void;\n to:\n | Record\n | ((old: Record) => Record);\n }\n >(\n (\n { component: Component = \"a\", to, onClick, children, target },\n forwardedRef\n ) => {\n if (!to) {\n throw new TypeError(\"object,function\");\n }\n if (!(\"function\" === typeof to || \"object\" === typeof to)) {\n throw new TypeError(\"object,function\");\n }\n const href: string = router.paramshref(to);\n const newclick = createclickhandler({\n onClick,\n target,\n router,\n to,\n });\n const props = {\n ref: forwardedRef,\n href,\n onClick: newclick,\n target,\n };\n return createElement(Component, { ...props }, children);\n }\n );\n}\n\n","import { matchRoute } from \"../../createrouter/matchRoute\";\nimport { Router } from \"../../createrouter/Router\";\nimport { isrouterecord } from \"../isrouterecord\";\nimport { navigate } from \"../navigate\";\nimport type {\n FC,\n createElement as createElementType,\n useState as useStateType,\n useEffect as useEffectType,\n ComponentType,\n} from \"react\";\nimport { RouteRecord } from \"../../createrouter\";\nimport { isRecordRedirect } from \"../../createrouter/isRecordRedirect\";\nimport { isRecordRoute } from \"../../createrouter/isRecordRoute\";\nimport { createReactParamsHook } from \"./createReactParamsHook\";\nexport { createReactView, createReactParamsHook };\nfunction createReactView({\n router,\n\n createElement,\n useState,\n useEffect,\n}: {\n router: Router;\n\n createElement: typeof createElementType;\n useState: typeof useStateType;\n useEffect: typeof useEffectType;\n}): FC<{ routes: RouteRecord[] }> {\n const useParams = createReactParamsHook({\n router,\n useState,\n useEffect,\n });\n return ({ routes }) => {\n if (!Array.isArray(routes)) {\n throw new TypeError(\"array\");\n }\n if (\n !routes.every((o) => {\n return isrouterecord(o);\n })\n ) {\n throw new TypeError('{params:\"function\"}');\n }\n\n const params = useParams();\n const currentroute = matchRoute(routes, params);\n if (isRecordRedirect(currentroute)) {\n const redirect = currentroute.redirect;\n\n navigate(router, redirect);\n }\n if (isRecordRedirect(currentroute)) {\n return null;\n }\n if (isRecordRoute(currentroute)) {\n const Component = currentroute.component as ComponentType;\n\n const children = currentroute.children;\n\n const props = currentroute.props || {};\n let oprops = Object.assign({}, props, { params });\n //@ts-ignore\n return createElement(Component, { ...oprops }, children);\n } else {\n return null;\n }\n };\n}\n","//@ts-ignore\n\nimport { createBaseRouter } from \"../createbaserouter\";\nimport { Router } from \"../Router\";\nexport type { Router };\nexport function createSearchRouter(): Router {\n return createBaseRouter(\"search\");\n}\n","import { Router } from \"../../createrouter/Router\";\nimport type {\n resolveComponent as resolveComponentType,\n Ref,\n Component as ComponentType,\n defineComponent as defineComponentType,\n h as hType,\n} from \"@vue/runtime-dom\";\nimport { isModifiedEvent } from \"../isModifiedEvent\";\nimport { navigate } from \"../navigate\";\nimport { createclickhandler } from \"../createclickhandler\";\nexport { createVueLink };\n\nfunction createVueLink({\n router,\n resolveComponent,\n defineComponent,\n h: createElement,\n}: {\n resolveComponent: typeof resolveComponentType;\n router: Router;\n defineComponent: typeof defineComponentType;\n h: typeof hType;\n}) {\n return defineComponent<{\n component?: string | ComponentType;\n to:\n | Record\n | ((old: Record) => Record);\n onClick?: (event: MouseEvent) => void;\n target?: string;\n innerRef?: ((r: any) => void) | { value?: any };\n }>({\n inheritAttrs: false,\n\n setup(_, { slots: children, attrs }) {\n return () => {\n const {\n component: Component = \"a\",\n to,\n onClick,\n target,\n innerRef: forwardedRef,\n } = attrs;\n\n if (!to) {\n throw new TypeError(\"object,function\");\n }\n if (!(\"function\" === typeof to || \"object\" === typeof to)) {\n throw new TypeError(\"object,function\");\n }\n const href: string = router.paramshref(to as any);\n const newclick = createclickhandler({\n //@ts-ignore\n onClick,\n //@ts-ignore\n target,\n router,\n //@ts-ignore\n to,\n });\n\n const reffun =\n \"function\" === typeof forwardedRef\n ? forwardedRef\n : forwardedRef && \"object\" === typeof forwardedRef\n ? (e: any) => {\n Reflect.set(forwardedRef, \"value\", e);\n }\n : undefined;\n\n const oprops = {\n ref: reffun,\n href,\n onClick: newclick,\n target,\n };\n\n const Resolvedcomponent =\n \"string\" === typeof Component\n ? resolveComponent(Component)\n : Component;\n\n return createElement(\n //@ts-ignore\n Resolvedcomponent,\n { ...oprops },\n children\n );\n };\n },\n });\n}\n","import type {\n // watch as watchType,\n Component as ComponentType,\n defineComponent as defineComponentType,\n h as hType,\n ref as refType,\n resolveComponent as resolveComponentType,\n} from \"@vue/runtime-dom\";\nimport { isRecordRedirect } from \"../../createrouter/isRecordRedirect\";\nimport { isRecordRoute } from \"../../createrouter/isRecordRoute\";\nimport { matchRoute } from \"../../createrouter/matchRoute\";\nimport { Router } from \"../../createrouter/Router\";\nimport { RouteRecord } from \"../../createrouter/RouteRecord\";\nimport { isrouterecord } from \"../isrouterecord\";\nimport { navigate } from \"../navigate\";\nimport { createVueParamsHook } from \"./createVueParamsHook\";\nexport { createVueView, createVueParamsHook };\nfunction createVueView({\n readonly,\n onMounted,\n onUnmounted,\n router,\n resolveComponent,\n defineComponent,\n h: createElement,\n ref,\n}: // watch,\n// Fragment,\n{\n readonly: typeof import(\"@vue/runtime-dom\").readonly;\n onMounted: typeof import(\"@vue/runtime-dom\").onMounted;\n onUnmounted: typeof import(\"@vue/runtime-dom\").onUnmounted;\n resolveComponent: typeof resolveComponentType;\n router: Router;\n defineComponent: typeof defineComponentType;\n h: typeof hType;\n ref: typeof refType;\n // watch: typeof watchType;\n // Fragment: typeof import(\"@vue/runtime-core\").Fragment;\n}) {\n const useParams = createVueParamsHook({\n router,\n ref,\n onMounted,\n onUnmounted,\n readonly,\n });\n return defineComponent<{ routes: RouteRecord[] }>({\n inheritAttrs: false,\n setup(_, { attrs }) {\n //attrs不是响应式对象\n const { routes } = attrs;\n if (!Array.isArray(routes)) {\n throw new TypeError(\"array\");\n }\n const params = useParams();\n return () => {\n const { routes } = attrs;\n //attrs可能属性有变化\n if (!Array.isArray(routes)) {\n throw new TypeError(\"array\");\n }\n if (\n !routes.every((o) => {\n return isrouterecord(o);\n })\n ) {\n throw new TypeError('{params:\"function\"}');\n }\n\n const currentroute = matchRoute(routes, params.value);\n if (isRecordRedirect(currentroute)) {\n const redirect = currentroute.redirect;\n\n navigate(router, redirect);\n }\n if (isRecordRedirect(currentroute)) {\n return null;\n }\n if (isRecordRoute(currentroute)) {\n const Component =\n currentroute.component as ComponentType;\n\n const children = currentroute.children;\n\n let props = currentroute.props || {};\n let oprops = Object.assign({}, props, {\n params: params.value,\n });\n let Resolvedcomponent =\n \"string\" === typeof Component\n ? resolveComponent(Component)\n : Component;\n // if (typeof Resolvedcomponent === \"object\") {\n // Resolvedcomponent = Object.assign(\n // {},\n // Resolvedcomponent\n // );\n // }\n return createElement(\n // //@ts-ignore\n // Fragment,\n // {},\n // createElement(\n // @ts-ignore\n Resolvedcomponent,\n { ...oprops },\n children\n // )\n );\n } else {\n return null;\n }\n };\n },\n });\n}\n"],"names":["toprimitive","toString","call","Symbol","toStringTag","isObject_1","value","type","freeGlobal","global","Object","freeSelf","self","root","Function","now_1","Date","now","reWhitespace","trimmedEndIndex","string","index","length","test","charAt","reTrimStart","_baseTrim","slice","replace","_Symbol","require$$0","objectProto","prototype","hasOwnProperty","nativeObjectToString","symToStringTag","undefined","_getRawTag","isOwn","tag","unmasked","e","result","getRawTag","require$$1","objectToString","baseGetTag","isObjectLike","baseTrim","isObject","isSymbol","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","toNumber","other","valueOf","isBinary","nativeMax","Math","max","nativeMin","min","debounce_1","func","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","apply","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","arguments","this","clearTimeout","cancel","flush","gethashparams","location","hash","fromEntries","URLSearchParams","gethashhref","to","params","url","URL","href","String","sethashparams","opt","oldhash","history","pushState","window","dispatchEvent","Event","transformhashparams","getsearchparams","search","searchParams","getsearchhref","setsearchparams","oldsearch","transformsearchparams","createBaseRouter","mountcount","eventname","emitter","EventEmitterTargetClass","changelistener","debounce","instance","emit","mount","addEventListener","unmount","removeEventListener","paramshref","setparams","getparams","transformparams","navigate","router","createclickhandler","onClick","target","event","ex","preventDefault","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","isModifiedEvent","matchRoute","routes","route","isrouterecord","o","isRecordRedirect","redirect","isRecordRoute","component","createReactParamsHook","useState","useEffect","paramschange","p","on","off","createVueParamsHook","ref","onMounted","onUnmounted","readonly","forwardRef","createElement","Component","children","forwardedRef","newclick","useParams","Array","isArray","every","currentroute","props","oprops","assign","resolveComponent","defineComponent","h","inheritAttrs","setup","_","slots","attrs","innerRef","Reflect","set","Resolvedcomponent"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.cjs","sources":["../node_modules/@masx200/event-emitter-target/dist/index.js","../node_modules/lodash/isObject.js","../node_modules/lodash/_root.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/now.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/toNumber.js","../node_modules/lodash/debounce.js","../src/createrouter/hashrouter/gethashparams.ts","../src/createrouter/hashrouter/gethashhref.ts","../src/createrouter/hashrouter/sethashparams.ts","../src/createrouter/hashrouter/transformhashparams.ts","../src/createrouter/searchrouter/getsearchparams.ts","../src/createrouter/searchrouter/getsearchhref.ts","../src/createrouter/searchrouter/setsearchparams.ts","../src/createrouter/searchrouter/transformsearchparams.ts","../src/createrouter/createbaserouter.ts","../src/components/navigate.ts","../src/components/createclickhandler.tsx","../src/components/isModifiedEvent.tsx","../src/createrouter/matchroute.ts","../src/components/isrouterecord.ts","../src/createrouter/isRecordRedirect.ts","../src/createrouter/isRecordRoute.ts","../src/components/react/createReactParamsHook.tsx","../src/components/vue/createVueParamsHook.tsx","../src/createrouter/hashrouter/createhashrouter.ts","../src/components/react/create-react-link.tsx","../src/components/react/create-react-view.tsx","../src/createrouter/searchrouter/createsearchrouter.ts","../src/components/vue/create-vue-link.tsx","../src/components/vue/create-vue-view.tsx"],"sourcesContent":["function t() {\n return {}.toString.call({\n [Symbol.toStringTag]: \"EventEmitterTarget\"\n });\n}\n\nfunction e(t) {\n if (\"string\" != typeof t && \"symbol\" != typeof t) throw new TypeError(\" EVENTNAME expected: string | symbol;but invalid :\" + t);\n}\n\nfunction n(t) {\n if (\"function\" != typeof t) throw new TypeError(\" EVENTLISTENER expected: (event?: any) => void;but invalid:\" + t);\n}\n\nfunction r() {\n const r = new Map, i = new WeakMap;\n function o(t) {\n let e = r.get(t);\n return e || (e = new Set, r.set(t, e)), e;\n }\n function c(t) {\n if (e(t), r.has(t)) {\n o(t).clear();\n }\n }\n function s(t, n) {\n if (e(t), r.has(t)) {\n o(t).forEach((t => {\n Promise.resolve().then((() => {\n t(n);\n }));\n }));\n }\n }\n function u(t, r) {\n e(t), n(r);\n o(t).add(r);\n }\n function f(t, e) {\n o(t).delete(e);\n }\n function a(t, r) {\n e(t), n(r), f(t, r), function(t, e) {\n const n = o(t);\n let r = i.get(e);\n r && n.delete(r);\n }(t, r);\n }\n function l() {\n return [ ...r ].map((([t, e]) => [ t, [ ...e ] ]))[Symbol.iterator]();\n }\n return {\n [Symbol.toPrimitive]: t,\n [Symbol.toStringTag]: \"EventEmitterTarget\",\n [Symbol.iterator]: l,\n entries: l,\n listenerCount: function(t) {\n if (e(t), r.has(t)) {\n return o(t).size;\n }\n return 0;\n },\n clear: c,\n removeAllListeners: c,\n on: u,\n addListener: u,\n off: a,\n removeListener: a,\n once: function(t, r) {\n e(t), n(r);\n let o = !1, c = i.get(r);\n if (!c) {\n const e = n => {\n f(t, e), f(t, r), o || (o = !0, r(n));\n };\n c = e, i.set(r, c);\n }\n f(t, r), u(t, c);\n },\n emit: s,\n dispatch: s,\n eventNames: function() {\n return [ ...r.keys() ];\n },\n listeners: function(t) {\n if (e(t), r.has(t)) {\n return [ ...o(t) ];\n }\n return [];\n }\n };\n}\n\nconst i = (t => {\n var e = Symbol(), n = new Function(\"return async()=>{}\")()();\n function i() {\n const t = r();\n return this && this instanceof i ? (Object.assign(this, t), this) : Reflect.construct(i, []);\n }\n return Reflect.set(i, e, n), i;\n})();\n\nexport default i;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NyYy90b3ByaW1pdGl2ZS50cyIsIi4uL3NyYy90b1N0cmluZ1RhZy50cyIsIi4uL3NyYy9hc3NlcnRFVkVOVE5BTUUudHMiLCIuLi9zcmMvYXNzZXJ0RVZFTlRMSVNURU5FUi50cyIsIi4uL3NyYy9jcmVhdGVFdmVudEVtaXR0ZXJUYXJnZXQudHMiLCIuLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdG9TdHJpbmdUYWcgfSBmcm9tIFwiLi90b1N0cmluZ1RhZ1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gdG9wcmltaXRpdmUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4ge30udG9TdHJpbmcuY2FsbCh7IFtTeW1ib2wudG9TdHJpbmdUYWddOiB0b1N0cmluZ1RhZyB9KTtcbn1cbiIsImV4cG9ydCBjb25zdCB0b1N0cmluZ1RhZyA9IFwiRXZlbnRFbWl0dGVyVGFyZ2V0XCI7XG4iLCJpbXBvcnQgeyBFVkVOVE5BTUUgfSBmcm9tIFwiLi9pbmRleFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0RVZFTlROQU1FKG5hbWU6IGFueSk6IGFzc2VydHMgbmFtZSBpcyBFVkVOVE5BTUUge1xuICAgIGlmIChcInN0cmluZ1wiICE9PSB0eXBlb2YgbmFtZSAmJiBcInN5bWJvbFwiICE9PSB0eXBlb2YgbmFtZSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgICAgXCIgRVZFTlROQU1FIGV4cGVjdGVkOiBzdHJpbmcgfCBzeW1ib2w7YnV0IGludmFsaWQgOlwiICsgbmFtZVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsImltcG9ydCB7IEVWRU5UTElTVEVORVIgfSBmcm9tIFwiLi9pbmRleFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0RVZFTlRMSVNURU5FUihcbiAgICBjYWxsYmFjazogYW55XG4pOiBhc3NlcnRzIGNhbGxiYWNrIGlzIEVWRU5UTElTVEVORVIge1xuICAgIGlmIChcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBjYWxsYmFjaykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgICAgXCIgRVZFTlRMSVNURU5FUiBleHBlY3RlZDogKGV2ZW50PzogYW55KSA9PiB2b2lkO2J1dCBpbnZhbGlkOlwiICtcbiAgICAgICAgICAgICAgICBjYWxsYmFja1xuICAgICAgICApO1xuICAgIH1cbn1cbiIsImltcG9ydCB7IEVWRU5UTkFNRSwgRVZFTlRMSVNURU5FUiB9IGZyb20gXCIuL2luZGV4XCI7XG5pbXBvcnQgeyB0b3ByaW1pdGl2ZSB9IGZyb20gXCIuL3RvcHJpbWl0aXZlXCI7XG5pbXBvcnQgeyB0b1N0cmluZ1RhZyB9IGZyb20gXCIuL3RvU3RyaW5nVGFnXCI7XG5pbXBvcnQgeyBhc3NlcnRFVkVOVE5BTUUgfSBmcm9tIFwiLi9hc3NlcnRFVkVOVE5BTUVcIjtcbmltcG9ydCB7IGFzc2VydEVWRU5UTElTVEVORVIgfSBmcm9tIFwiLi9hc3NlcnRFVkVOVExJU1RFTkVSXCI7XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRXZlbnRFbWl0dGVyVGFyZ2V0KCkge1xuICAgIGNvbnN0IOebkeWQrOWZqOWbnuiwg+aYoOWwhCA9IG5ldyBNYXA8RVZFTlROQU1FLCBTZXQ8RVZFTlRMSVNURU5FUj4+KCk7XG4gICAgY29uc3Qg5rqQ5Zue6LCD5Yiw5LiA5qyh5YyF6KOFID0gbmV3IFdlYWtNYXA8RVZFTlRMSVNURU5FUiwgRVZFTlRMSVNURU5FUj4oKTtcbiAgICBmdW5jdGlvbiDojrflj5bnm5HlkKzlmajpm4blkIgobmFtZTogRVZFTlROQU1FKTogU2V0PEVWRU5UTElTVEVORVI+IHtcbiAgICAgICAgbGV0IOebkeWQrOWZqOmbhuWQiDogU2V0PEVWRU5UTElTVEVORVI+IHwgdW5kZWZpbmVkID1cbiAgICAgICAgICAgIOebkeWQrOWZqOWbnuiwg+aYoOWwhC5nZXQobmFtZSk7XG4gICAgICAgIGlmICgh55uR5ZCs5Zmo6ZuG5ZCIKSB7XG4gICAgICAgICAgICDnm5HlkKzlmajpm4blkIggPSBuZXcgU2V0KCk7XG4gICAgICAgICAgICDnm5HlkKzlmajlm57osIPmmKDlsIQuc2V0KG5hbWUsIOebkeWQrOWZqOmbhuWQiCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIOebkeWQrOWZqOmbhuWQiDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjbGVhcihuYW1lOiBFVkVOVE5BTUUpIHtcbiAgICAgICAgYXNzZXJ0RVZFTlROQU1FKG5hbWUpO1xuICAgICAgICBpZiAo55uR5ZCs5Zmo5Zue6LCD5pig5bCELmhhcyhuYW1lKSkge1xuICAgICAgICAgICAgY29uc3Qg55uR5ZCs5Zmo6ZuG5ZCIID0g6I635Y+W55uR5ZCs5Zmo6ZuG5ZCIKG5hbWUpO1xuICAgICAgICAgICAg55uR5ZCs5Zmo6ZuG5ZCILmNsZWFyKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZW1pdChuYW1lOiBFVkVOVE5BTUUsIGV2ZW50PzogYW55KSB7XG4gICAgICAgIGFzc2VydEVWRU5UTkFNRShuYW1lKTtcbiAgICAgICAgaWYgKOebkeWQrOWZqOWbnuiwg+aYoOWwhC5oYXMobmFtZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IOebkeWQrOWZqOmbhuWQiCA9IOiOt+WPluebkeWQrOWZqOmbhuWQiChuYW1lKTtcbiAgICAgICAgICAgIOebkeWQrOWZqOmbhuWQiC5mb3JFYWNoKChsaXN0ZW5lcikgPT4ge1xuICAgICAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lcihldmVudCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBvbmNlKG5hbWU6IEVWRU5UTkFNRSwgY2FsbGJhY2s6IEVWRU5UTElTVEVORVIpIHtcbiAgICAgICAgYXNzZXJ0RVZFTlROQU1FKG5hbWUpO1xuICAgICAgICBhc3NlcnRFVkVOVExJU1RFTkVSKGNhbGxiYWNrKTtcbiAgICAgICAgbGV0IGZpcmVkID0gZmFsc2U7XG4gICAgICAgIGxldCB3cmFwcGVkID0g5rqQ5Zue6LCD5Yiw5LiA5qyh5YyF6KOFLmdldChjYWxsYmFjayk7XG4gICAgICAgIGlmICghd3JhcHBlZCkge1xuICAgICAgICAgICAgY29uc3Qg5LiA5qyh5YyF6KOFID0gKGV2ZW50PzogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgb2ZmcmF3KG5hbWUsIOS4gOasoeWMheijhSk7XG4gICAgICAgICAgICAgICAgb2ZmcmF3KG5hbWUsIGNhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICBpZiAoIWZpcmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpcmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3cmFwcGVkID0g5LiA5qyh5YyF6KOFO1xuICAgICAgICAgICAg5rqQ5Zue6LCD5Yiw5LiA5qyh5YyF6KOFLnNldChjYWxsYmFjaywgd3JhcHBlZCk7XG4gICAgICAgIH1cbiAgICAgICAgb2ZmcmF3KG5hbWUsIGNhbGxiYWNrKTtcbiAgICAgICAgb24obmFtZSwgd3JhcHBlZCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG9uKG5hbWU6IEVWRU5UTkFNRSwgY2FsbGJhY2s6IEVWRU5UTElTVEVORVIpIHtcbiAgICAgICAgYXNzZXJ0RVZFTlROQU1FKG5hbWUpO1xuICAgICAgICBhc3NlcnRFVkVOVExJU1RFTkVSKGNhbGxiYWNrKTtcbiAgICAgICAgY29uc3Qg55uR5ZCs5Zmo6ZuG5ZCIID0g6I635Y+W55uR5ZCs5Zmo6ZuG5ZCIKG5hbWUpO1xuICAgICAgICDnm5HlkKzlmajpm4blkIguYWRkKGNhbGxiYWNrKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gb2ZmcmF3KG5hbWU6IEVWRU5UTkFNRSwgY2FsbGJhY2s6IEVWRU5UTElTVEVORVIpIHtcbiAgICAgICAgY29uc3Qg55uR5ZCs5Zmo6ZuG5ZCIID0g6I635Y+W55uR5ZCs5Zmo6ZuG5ZCIKG5hbWUpO1xuICAgICAgICDnm5HlkKzlmajpm4blkIguZGVsZXRlKGNhbGxiYWNrKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gb2Zmd3JhcChuYW1lOiBFVkVOVE5BTUUsIGNhbGxiYWNrOiBFVkVOVExJU1RFTkVSKSB7XG4gICAgICAgIGNvbnN0IOebkeWQrOWZqOmbhuWQiCA9IOiOt+WPluebkeWQrOWZqOmbhuWQiChuYW1lKTtcbiAgICAgICAgbGV0IOS4gOasoeWMheijhSA9IOa6kOWbnuiwg+WIsOS4gOasoeWMheijhS5nZXQoY2FsbGJhY2spO1xuICAgICAgICBpZiAo5LiA5qyh5YyF6KOFKSB7XG4gICAgICAgICAgICDnm5HlkKzlmajpm4blkIguZGVsZXRlKOS4gOasoeWMheijhSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gb2ZmKG5hbWU6IEVWRU5UTkFNRSwgY2FsbGJhY2s6IEVWRU5UTElTVEVORVIpIHtcbiAgICAgICAgYXNzZXJ0RVZFTlROQU1FKG5hbWUpO1xuICAgICAgICBhc3NlcnRFVkVOVExJU1RFTkVSKGNhbGxiYWNrKTtcblxuICAgICAgICBvZmZyYXcobmFtZSwgY2FsbGJhY2spO1xuICAgICAgICBvZmZ3cmFwKG5hbWUsIGNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBldmVudE5hbWVzKCk6IEVWRU5UTkFNRVtdIHtcbiAgICAgICAgcmV0dXJuIFsuLi7nm5HlkKzlmajlm57osIPmmKDlsIQua2V5cygpXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbGlzdGVuZXJzKG5hbWU6IEVWRU5UTkFNRSk6IEVWRU5UTElTVEVORVJbXSB7XG4gICAgICAgIGFzc2VydEVWRU5UTkFNRShuYW1lKTtcbiAgICAgICAgaWYgKOebkeWQrOWZqOWbnuiwg+aYoOWwhC5oYXMobmFtZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IOebkeWQrOWZqOmbhuWQiCA9IOiOt+WPluebkeWQrOWZqOmbhuWQiChuYW1lKTtcbiAgICAgICAgICAgIHJldHVybiBbLi4u55uR5ZCs5Zmo6ZuG5ZCIXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBsaXN0ZW5lckNvdW50KG5hbWU6IEVWRU5UTkFNRSk6IG51bWJlciB7XG4gICAgICAgIGFzc2VydEVWRU5UTkFNRShuYW1lKTtcbiAgICAgICAgaWYgKOebkeWQrOWZqOWbnuiwg+aYoOWwhC5oYXMobmFtZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IOebkeWQrOWZqOmbhuWQiCA9IOiOt+WPluebkeWQrOWZqOmbhuWQiChuYW1lKTtcbiAgICAgICAgICAgIHJldHVybiDnm5HlkKzlmajpm4blkIguc2l6ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXRlcmF0b3IoKTogSXRlcmFibGVJdGVyYXRvcjxbRVZFTlROQU1FLCBFVkVOVExJU1RFTkVSW11dPiB7XG4gICAgICAgIGxldCByZXN1bHRhcnI6IEFycmF5PFtFVkVOVE5BTUUsIEVWRU5UTElTVEVORVJbXV0+ID0gW1xuICAgICAgICAgICAgLi4u55uR5ZCs5Zmo5Zue6LCD5pig5bCELFxuICAgICAgICBdLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gW2tleSwgWy4uLnZhbHVlXV0gYXMgW0VWRU5UTkFNRSwgRVZFTlRMSVNURU5FUltdXTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdGFycltTeW1ib2wuaXRlcmF0b3JdKCk7XG4gICAgfVxuICAgIGNvbnN0IGV2ZW50dGFyZ2V0ID0ge1xuICAgICAgICBbU3ltYm9sLnRvUHJpbWl0aXZlXTogdG9wcmltaXRpdmUsXG5cbiAgICAgICAgW1N5bWJvbC50b1N0cmluZ1RhZ106IHRvU3RyaW5nVGFnLFxuICAgICAgICBbU3ltYm9sLml0ZXJhdG9yXTogaXRlcmF0b3IsXG4gICAgICAgIGVudHJpZXM6IGl0ZXJhdG9yLFxuICAgICAgICBsaXN0ZW5lckNvdW50LFxuICAgICAgICBjbGVhcixcbiAgICAgICAgcmVtb3ZlQWxsTGlzdGVuZXJzOiBjbGVhcixcbiAgICAgICAgb24sXG4gICAgICAgIGFkZExpc3RlbmVyOiBvbixcbiAgICAgICAgb2ZmLFxuICAgICAgICByZW1vdmVMaXN0ZW5lcjogb2ZmLFxuICAgICAgICBvbmNlLFxuICAgICAgICBlbWl0LFxuICAgICAgICBkaXNwYXRjaDogZW1pdCxcbiAgICAgICAgZXZlbnROYW1lcyxcbiAgICAgICAgbGlzdGVuZXJzLFxuICAgIH07XG4gICAgcmV0dXJuIGV2ZW50dGFyZ2V0O1xufVxuIiwiaW1wb3J0IHsgY3JlYXRlRXZlbnRFbWl0dGVyVGFyZ2V0IH0gZnJvbSBcIi4vY3JlYXRlRXZlbnRFbWl0dGVyVGFyZ2V0XCI7XG5cbmV4cG9ydCB0eXBlIEV2ZW50RW1pdHRlclRhcmdldCA9IFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZUV2ZW50RW1pdHRlclRhcmdldD47XG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50RW1pdHRlclRhcmdldENvbnN0cnVjdG9yIHtcbiAgICBuZXcgKCk6IEV2ZW50RW1pdHRlclRhcmdldDtcbiAgICAoKTogRXZlbnRFbWl0dGVyVGFyZ2V0O1xufVxuY29uc3QgRXZlbnRFbWl0dGVyVGFyZ2V0Q2xhc3M6IEV2ZW50RW1pdHRlclRhcmdldENvbnN0cnVjdG9yID0gKChub29wKSA9PiB7XG4gICAgdmFyIGEgPSBub29wKCk7XG4gICAgdmFyIGIgPSBuZXcgRnVuY3Rpb24oXCJyZXR1cm4gYXN5bmMoKT0+e31cIikoKSgpO1xuXG4gICAgZnVuY3Rpb24gRXZlbnRFbWl0dGVyVGFyZ2V0Q2xhc3ModGhpczogYW55KTogRXZlbnRFbWl0dGVyVGFyZ2V0IHtcbiAgICAgICAgY29uc3QgZXZlbnRlbWl0dGVydGFyZ2V0ID0gY3JlYXRlRXZlbnRFbWl0dGVyVGFyZ2V0KCk7XG4gICAgICAgIGlmICh0aGlzICYmIHRoaXMgaW5zdGFuY2VvZiBFdmVudEVtaXR0ZXJUYXJnZXRDbGFzcykge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBldmVudGVtaXR0ZXJ0YXJnZXQpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMgYXMgRXZlbnRFbWl0dGVyVGFyZ2V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3QuY29uc3RydWN0KEV2ZW50RW1pdHRlclRhcmdldENsYXNzLCBbXSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgUmVmbGVjdC5zZXQoRXZlbnRFbWl0dGVyVGFyZ2V0Q2xhc3MsIGEsIGIpO1xuXG4gICAgcmV0dXJuIEV2ZW50RW1pdHRlclRhcmdldENsYXNzIGFzIEV2ZW50RW1pdHRlclRhcmdldENvbnN0cnVjdG9yO1xufSkoU3ltYm9sKTtcbmV4cG9ydCB0eXBlIEVWRU5UTkFNRSA9IHN0cmluZyB8IHN5bWJvbDtcbmV4cG9ydCB0eXBlIEVWRU5UTElTVEVORVIgPSAoZXZlbnQ/OiBhbnkpID0+IHZvaWQ7XG5leHBvcnQgZGVmYXVsdCBFdmVudEVtaXR0ZXJUYXJnZXRDbGFzcztcbiJdLCJuYW1lcyI6WyJ0b3ByaW1pdGl2ZSIsInRvU3RyaW5nIiwiY2FsbCIsIlN5bWJvbCIsInRvU3RyaW5nVGFnIiwiYXNzZXJ0RVZFTlROQU1FIiwibmFtZSIsIlR5cGVFcnJvciIsImFzc2VydEVWRU5UTElTVEVORVIiLCJjYWxsYmFjayIsImNyZWF0ZUV2ZW50RW1pdHRlclRhcmdldCIsIuebkeWQrOWZqOWbnuiwg+aYoOWwhCIsIk1hcCIsIua6kOWbnuiwg+WIsOS4gOasoeWMheijhSIsIldlYWtNYXAiLCLojrflj5bnm5HlkKzlmajpm4blkIgiLCLnm5HlkKzlmajpm4blkIgiLCJnZXQiLCJTZXQiLCJzZXQiLCJjbGVhciIsImhhcyIsImVtaXQiLCJldmVudCIsImZvckVhY2giLCJsaXN0ZW5lciIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsIm9uIiwiYWRkIiwib2ZmcmF3IiwiZGVsZXRlIiwib2ZmIiwi5LiA5qyh5YyF6KOFIiwib2Zmd3JhcCIsIml0ZXJhdG9yIiwibWFwIiwia2V5IiwidmFsdWUiLCJ0b1ByaW1pdGl2ZSIsImVudHJpZXMiLCJsaXN0ZW5lckNvdW50Iiwic2l6ZSIsInJlbW92ZUFsbExpc3RlbmVycyIsImFkZExpc3RlbmVyIiwicmVtb3ZlTGlzdGVuZXIiLCJvbmNlIiwiZmlyZWQiLCJ3cmFwcGVkIiwiZGlzcGF0Y2giLCJldmVudE5hbWVzIiwia2V5cyIsImxpc3RlbmVycyIsIkV2ZW50RW1pdHRlclRhcmdldENsYXNzIiwibm9vcCIsImEiLCJiIiwiRnVuY3Rpb24iLCJldmVudGVtaXR0ZXJ0YXJnZXQiLCJ0aGlzIiwiT2JqZWN0IiwiYXNzaWduIiwiUmVmbGVjdCIsImNvbnN0cnVjdCJdLCJtYXBwaW5ncyI6IlNBRWdCQTtXQUNMLEdBQUdDLFNBQVNDLEtBQUs7U0FBR0MsT0FBT0MsY0NIWDs7OztTQ0VYQyxFQUFnQkM7UUFDeEIsbUJBQW9CQSxLQUFRLG1CQUFvQkEsU0FDMUMsSUFBSUMsVUFDTix1REFBdUREOzs7U0NIbkRFLEVBQ1pDO1FBRUkscUJBQXNCQSxTQUNoQixJQUFJRixVQUNOLGdFQUNJRTs7O1NDSEFDO1VBQ05DLElBQVUsSUFBSUMsS0FDZEMsSUFBVyxJQUFJQzthQUNaQyxFQUFRVDtZQUNUVSxJQUNBTCxFQUFRTSxJQUFJWDtlQUNYVSxNQUNEQSxJQUFRLElBQUlFLEtBQ1pQLEVBQVFRLElBQUliLEdBQU1VLEtBRWZBOzthQUdGSSxFQUFNZDtZQUNYRCxFQUFnQkMsSUFDWkssRUFBUVUsSUFBSWYsSUFBTztZQUNMUyxFQUFRVCxHQUNoQmM7OzthQUdMRSxFQUFLaEIsR0FBaUJpQjtZQUMzQmxCLEVBQWdCQyxJQUNaSyxFQUFRVSxJQUFJZixJQUFPO1lBQ0xTLEVBQVFULEdBQ2hCa0IsU0FBU0M7Z0JBQ1hDLFFBQVFDLFVBQVVDLE1BQUs7b0JBQ25CSCxFQUFTRjs7Ozs7YUF5QmhCTSxFQUFHdkIsR0FBaUJHO1FBQ3pCSixFQUFnQkMsSUFDaEJFLEVBQW9CQztRQUNOTSxFQUFRVCxHQUNoQndCLElBQUlyQjs7YUFFTHNCLEVBQU96QixHQUFpQkc7UUFDZk0sRUFBUVQsR0FDaEIwQixPQUFPdkI7O2FBU1J3QixFQUFJM0IsR0FBaUJHO1FBQzFCSixFQUFnQkMsSUFDaEJFLEVBQW9CQyxJQUVwQnNCLEVBQU96QixHQUFNRyxhQVhBSCxHQUFpQkc7a0JBQ3hCTyxJQUFRRCxFQUFRVDtnQkFDbEI0QixJQUFPckIsRUFBU0ksSUFBSVI7WUFDcEJ5QixLQUNBbEIsRUFBTWdCLE9BQU9FO1NBUWpCQyxDQUFRN0IsR0FBTUc7O2FBeUJUMkI7ZUFDZ0QsS0FDOUN6QixJQUNMMEIsS0FBSSxFQUFFQyxHQUFLQyxPQUNGLEVBQUNELEdBQUssS0FBSUMsUUFHSnBDLE9BQU9pQzs7V0FFUjtTQUNmakMsT0FBT3FDLGNBQWN4QztTQUVyQkcsT0FBT0MsY0huSFc7U0dvSGxCRCxPQUFPaUMsV0FBV0E7UUFDbkJLLFNBQVNMO1FBQ1RNLHdCQXpCbUJwQztnQkFDbkJELEVBQWdCQyxJQUNaSyxFQUFRVSxJQUFJZixJQUFPO3VCQUNMUyxFQUFRVCxHQUNUcUM7O21CQUVOOztRQW9CWHZCLE9BQUFBO1FBQ0F3QixvQkFBb0J4QjtRQUNwQlMsSUFBQUE7UUFDQWdCLGFBQWFoQjtRQUNiSSxLQUFBQTtRQUNBYSxnQkFBZ0JiO1FBQ2hCYyxlQXpGVXpDLEdBQWlCRztZQUMzQkosRUFBZ0JDLElBQ2hCRSxFQUFvQkM7Z0JBQ2hCdUMsS0FBUSxHQUNSQyxJQUFVcEMsRUFBU0ksSUFBSVI7aUJBQ3RCd0MsR0FBUztzQkFDSmYsSUFBUVg7b0JBQ1ZRLEVBQU96QixHQUFNNEIsSUFDYkgsRUFBT3pCLEdBQU1HLElBQ1J1QyxNQUNEQSxLQUFRLEdBQ1J2QyxFQUFTYzs7Z0JBR2pCMEIsSUFBVWYsR0FDVnJCLEVBQVNNLElBQUlWLEdBQVV3Qzs7WUFFM0JsQixFQUFPekIsR0FBTUcsSUFDYm9CLEVBQUd2QixHQUFNMkM7O1FBd0VUM0IsTUFBQUE7UUFDQTRCLFVBQVU1QjtRQUNWNkI7bUJBOUNPLEtBQUl4QyxFQUFReUM7O1FBK0NuQkMsb0JBN0NlL0M7Z0JBQ2ZELEVBQWdCQyxJQUNaSyxFQUFRVSxJQUFJZixJQUFPO3VCQUVaLEtBRE9TLEVBQVFUOzttQkFHZjs7Ozs7TUNuRmJnRCxJQUF5RCxDQUFFQztRQUN6REMsSUFlTHJELFVBZEtzRCxJQUFJLElBQUlDLFNBQVMscUJBQWIsRUFBQTthQUVDSjtjQUNDSyxJQUFxQmpEO2VBQ3ZCa0QsUUFBUUEsZ0JBQWdCTixLQUN4Qk8sT0FBT0MsT0FBT0YsTUFBTUQsSUFDYkMsUUFFQUcsUUFBUUMsVUFBVVYsR0FBeUI7O1dBRzFEUyxRQUFRNUMsSUFBSW1DLEdBQXlCRSxHQUFHQyxJQUVqQ0g7RUFmb0Q7OyJ9\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 != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var freeGlobal = require('./_freeGlobal');\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\nmodule.exports = root;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var root = require('./_root');\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\nmodule.exports = now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\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 nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\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 nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\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) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\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 != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\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/**\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 = baseTrim(value);\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 = toNumber;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\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 * 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 timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\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 clearTimeout(timerId);\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\nmodule.exports = debounce;\n","export function gethashparams() {\n return (\n (location.hash &&\n Object.fromEntries(new URLSearchParams(location.hash.slice(1)))) ||\n {}\n );\n}\n","//@ts-ignore\nimport { gethashparams } from \"./gethashparams.ts\";\n\nexport function gethashhref(\n to:\n | Record\n | ((old: Record) => Record)\n): string {\n if (!to) {\n throw new TypeError(\"object,function\");\n }\n let params: {\n [k: string]: string;\n } = gethashparams();\n let url = new URL(location.href);\n\n if (\"function\" === typeof to) {\n params = to(params);\n url.hash = String(new URLSearchParams({ ...to }));\n return url.href;\n }\n if (\"object\" === typeof to) {\n params = to;\n url.hash = String(new URLSearchParams({ ...to }));\n return url.href;\n }\n throw new TypeError(\"object,function\");\n}\n","export function sethashparams(opt: Record) {\n const oldhash = location.hash;\n let url = new URL(location.href);\n\n url.hash = String(new URLSearchParams({ ...opt }));\n\n if (oldhash === url.hash) {\n return;\n }\n history.pushState({}, \"\", url.href);\n\n window.dispatchEvent(new Event(\"hashchange\"));\n}\n","//@ts-ignore\nimport { gethashparams } from \"./gethashparams.ts\"; //@ts-ignore\nimport { sethashparams } from \"./sethashparams.ts\";\nexport function transformhashparams(\n opt: (old: Record) => Record\n) {\n sethashparams(opt(gethashparams()));\n}\n","export function getsearchparams() {\n return (\n (location.search &&\n Object.fromEntries(new URL(location.href).searchParams)) ||\n {}\n );\n}\n","//@ts-ignore\nimport { getsearchparams } from \"./getsearchparams.ts\";\n\nexport function getsearchhref(\n to:\n | Record\n | ((old: Record) => Record)\n): string {\n if (!to) {\n throw new TypeError(\"object,function\");\n }\n let params: {\n [k: string]: string;\n } = getsearchparams();\n let url = new URL(location.href);\n\n if (\"function\" === typeof to) {\n params = to(params);\n url.search = String(new URLSearchParams({ ...to }));\n return url.href;\n }\n if (\"object\" === typeof to) {\n params = to;\n url.search = String(new URLSearchParams({ ...to }));\n return url.href;\n }\n throw new TypeError(\"object,function\");\n}\n","export function setsearchparams(opt: Record) {\n const oldsearch = location.search;\n let url = new URL(location.href);\n\n url.search = String(new URLSearchParams({ ...opt }));\n\n if (oldsearch === url.search) {\n return;\n }\n history.pushState({}, \"\", url.href);\n\n window.dispatchEvent(new Event(\"popstate\"));\n}\n","//@ts-ignore\nimport { getsearchparams } from \"./getsearchparams.ts\"; //@ts-ignore\nimport { setsearchparams } from \"./setsearchparams.ts\";\nexport function transformsearchparams(\n opt: (old: Record) => Record\n) {\n setsearchparams(opt(getsearchparams()));\n}\n","//@ts-ignore\n\nimport EventEmitterTargetClass, {\n EventEmitterTarget,\n} from \"@masx200/event-emitter-target\";\n//@ts-ignore\nimport debounce from \"lodash/debounce\";\n//@ts-ignore\nimport { gethashhref } from \"./hashrouter/gethashhref\";\n//@ts-ignore\nimport { gethashparams } from \"./hashrouter/gethashparams\";\n//@ts-ignore\nimport { sethashparams } from \"./hashrouter/sethashparams\";\n//@ts-ignore\nimport { transformhashparams } from \"./hashrouter/transformhashparams\";\nimport { RawRouter } from \"./Router\";\n//@ts-ignore\nimport { getsearchhref } from \"./searchrouter/getsearchhref\";\n//@ts-ignore\nimport { getsearchparams } from \"./searchrouter/getsearchparams\"; //\n//@ts-ignore\nimport { setsearchparams } from \"./searchrouter/setsearchparams\"; //@ts-ignore\nimport { transformsearchparams } from \"./searchrouter/transformsearchparams\";\nexport function createBaseRouter(\n type: \"search\" | \"hash\"\n): EventEmitterTarget & RawRouter {\n let mountcount = 0;\n const eventname = \"search\" === type ? \"popstate\" : \"hashchange\";\n\n const emitter: EventEmitterTarget = EventEmitterTargetClass();\n\n const changelistener = debounce(() => {\n const params = \"hash\" === type ? gethashparams() : getsearchparams();\n instance.emit(\"params\", params);\n });\n function mount() {\n window.addEventListener(eventname, changelistener);\n\n changelistener();\n mountcount++;\n }\n function unmount() {\n mountcount--;\n if (mountcount <= 0) {\n window.removeEventListener(eventname, changelistener);\n changelistener.cancel();\n instance.removeAllListeners(\"params\");\n }\n }\n\n const router: RawRouter = {\n mount,\n unmount,\n paramshref: \"hash\" === type ? gethashhref : getsearchhref,\n\n setparams: \"hash\" === type ? sethashparams : setsearchparams,\n getparams: \"hash\" === type ? gethashparams : getsearchparams,\n transformparams:\n \"hash\" === type ? transformhashparams : transformsearchparams,\n [Symbol.toStringTag]: \"search\" === type ? \"SearchRouter\" : \"HashRouter\",\n };\n\n const instance = { ...emitter, ...router } as EventEmitterTarget &\n typeof router;\n\n return instance as EventEmitterTarget & typeof router;\n}\n","import { Router } from \"../createrouter/Router\";\n\nexport function navigate(\n router: Router,\n to:\n | Record\n | ((old: Record) => Record)\n) {\n if (!to) {\n throw new TypeError(\"object,function\");\n }\n if (\"function\" === typeof to) {\n router.transformparams(to);\n return;\n }\n if (\"object\" === typeof to) {\n router.setparams(to);\n return;\n }\n throw new TypeError(\"object,function\");\n}\n","import { Router } from \"../createrouter/Router\";\nimport { MouseEvent } from \"react\";\nimport { navigate } from \"./navigate\";\nimport { isModifiedEvent } from \"./isModifiedEvent\";\n\nexport function createclickhandler({\n onClick,\n target,\n router,\n to,\n}: {\n onClick?: ((event: MouseEvent) => void) | undefined;\n target?: string | undefined;\n router: Router;\n to:\n | Record\n | ((old: Record) => Record);\n}) {\n return (event: MouseEvent) => {\n try {\n if (\"function\" === typeof onClick) {\n onClick(event);\n }\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n if (\n !event.defaultPrevented &&\n // onClick prevented default\n event.button === 0 &&\n // ignore everything but left clicks\n (!target || target === \"_self\") &&\n // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event)\n // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate(router, to);\n }\n };\n}\n","export function isModifiedEvent(\n event: MouseEvent | import(\"react\").MouseEvent\n) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n","import { RouteRecord } from \"./RouteRecord\";\n\nexport function matchRoute(\n routes: RouteRecord[],\n params: Record\n) {\n for (let route of routes) {\n if (route.params(params)) {\n return route;\n }\n }\n return undefined;\n}\n","function isrouterecord(o: any): boolean {\n return !!(o && \"object\" === typeof o && \"function\" === typeof o.params);\n}\nexport { isrouterecord };\n","import { RecordRedirect } from \"./RouteRecord\";\n\nexport function isRecordRedirect(o: any): o is RecordRedirect {\n return !!(\"function\" === typeof o?.params && o?.redirect);\n}\n","import { RecordRoute } from \"./RouteRecord\";\n\nexport function isRecordRoute(o: any): o is RecordRoute {\n return !!(\"function\" === typeof o?.params && o?.component);\n}\n","import debounce from \"lodash/debounce\";\nimport { Router } from \"../../createrouter/Router\";\nimport { useState as useStateType, useEffect as useEffectType } from \"react\";\n\nexport function createReactParamsHook({\n router,\n useState,\n useEffect,\n}: {\n router: Router;\n useState: typeof useStateType;\n useEffect: typeof useEffectType;\n}): () => Readonly> {\n return function () {\n const [params, setparams] = useState>(\n router.getparams()\n );\n useEffect(() => {\n const paramschange = debounce((p) => {\n setparams(p);\n });\n function onmount() {\n router.mount();\n router.on(\"params\", paramschange);\n }\n\n function onunmount() {\n router.unmount();\n\n router.off(\"params\", paramschange);\n paramschange.cancel();\n }\n onmount();\n\n return onunmount;\n }, []);\n return params;\n };\n}\n","import { ref as refType } from \"@vue/runtime-dom\";\nimport debounce from \"lodash/debounce\";\nimport { Router } from \"../../createrouter/Router\";\n\nexport function createVueParamsHook({\n router,\n ref,\n onMounted,\n onUnmounted,\n readonly,\n}: {\n readonly: typeof import(\"@vue/runtime-dom\").readonly;\n onMounted: typeof import(\"@vue/runtime-dom\").onMounted;\n router: Router;\n ref: typeof refType;\n onUnmounted: typeof import(\"@vue/runtime-dom\").onUnmounted;\n}): () => {\n readonly value: {\n readonly [x: string]: string;\n };\n} {\n return function () {\n const params = ref(router.getparams());\n const paramschange = debounce((p) => {\n params.value = p;\n });\n function onmount() {\n router.mount();\n router.on(\"params\", paramschange);\n }\n\n function onunmount() {\n router.unmount();\n\n router.off(\"params\", paramschange);\n paramschange.cancel();\n }\n onMounted(onmount);\n onUnmounted(onunmount);\n return readonly(params);\n };\n}\n","//@ts-ignore\nimport { createBaseRouter } from \"../createbaserouter\";\nimport { Router } from \"../Router\";\nexport type { Router };\nexport function createHashRouter(): Router {\n return createBaseRouter(\"hash\");\n}\n","import { Router } from \"../../createrouter/Router\";\nimport type {\n ComponentType,\n MouseEvent,\n forwardRef as forwardRefType,\n createElement as createElementType,\n} from \"react\";\nimport { ReactLinkComponent } from \"./ReactLinkComponent\";\nimport { createclickhandler } from \"../createclickhandler\";\nexport type { ReactLinkComponent };\nexport function createReactLink({\n router,\n forwardRef,\n createElement,\n}: {\n router: Router;\n forwardRef: typeof forwardRefType;\n createElement: typeof createElementType;\n}): ReactLinkComponent {\n return forwardRef<\n unknown,\n {\n component?: string | ComponentType;\n target?: string;\n onClick?: (event: MouseEvent) => void;\n to:\n | Record\n | ((old: Record) => Record);\n }\n >(\n (\n { component: Component = \"a\", to, onClick, children, target },\n forwardedRef\n ) => {\n if (!to) {\n throw new TypeError(\"object,function\");\n }\n if (!(\"function\" === typeof to || \"object\" === typeof to)) {\n throw new TypeError(\"object,function\");\n }\n const href: string = router.paramshref(to);\n const newclick = createclickhandler({\n onClick,\n target,\n router,\n to,\n });\n const props = {\n ref: forwardedRef,\n href,\n onClick: newclick,\n target,\n };\n return createElement(Component, { ...props }, children);\n }\n );\n}\n","import { matchRoute } from \"../../createrouter/matchroute\";\nimport { Router } from \"../../createrouter/Router\";\nimport { isrouterecord } from \"../isrouterecord\";\nimport { navigate } from \"../navigate\";\nimport type {\n FC,\n createElement as createElementType,\n useState as useStateType,\n useEffect as useEffectType,\n ComponentType,\n} from \"react\";\nimport { RouteRecord } from \"../../createrouter\";\nimport { isRecordRedirect } from \"../../createrouter/isRecordRedirect\";\nimport { isRecordRoute } from \"../../createrouter/isRecordRoute\";\nimport { createReactParamsHook } from \"./createReactParamsHook\";\nexport { createReactView, createReactParamsHook };\nfunction createReactView({\n router,\n\n createElement,\n useState,\n useEffect,\n}: {\n router: Router;\n\n createElement: typeof createElementType;\n useState: typeof useStateType;\n useEffect: typeof useEffectType;\n}): FC<{ routes: RouteRecord[] }> {\n const useParams = createReactParamsHook({\n router,\n useState,\n useEffect,\n });\n return ({ routes }) => {\n if (!Array.isArray(routes)) {\n throw new TypeError(\"array\");\n }\n if (\n !routes.every((o) => {\n return isrouterecord(o);\n })\n ) {\n throw new TypeError('{params:\"function\"}');\n }\n\n const params = useParams();\n const currentroute = matchRoute(routes, params);\n if (isRecordRedirect(currentroute)) {\n const redirect = currentroute.redirect;\n\n navigate(router, redirect);\n }\n if (isRecordRedirect(currentroute)) {\n return null;\n }\n if (isRecordRoute(currentroute)) {\n const Component = currentroute.component as ComponentType;\n\n const children = currentroute.children;\n\n const props = currentroute.props || {};\n let oprops = Object.assign({}, props, { params });\n //@ts-ignore\n return createElement(Component, { ...oprops }, children);\n } else {\n return null;\n }\n };\n}\n","//@ts-ignore\n\nimport { createBaseRouter } from \"../createbaserouter\";\nimport { Router } from \"../Router\";\nexport type { Router };\nexport function createSearchRouter(): Router {\n return createBaseRouter(\"search\");\n}\n","import { Router } from \"../../createrouter/Router\";\nimport type {\n resolveComponent as resolveComponentType,\n Ref,\n Component as ComponentType,\n defineComponent as defineComponentType,\n h as hType,\n} from \"@vue/runtime-dom\";\nimport { isModifiedEvent } from \"../isModifiedEvent\";\nimport { navigate } from \"../navigate\";\nimport { createclickhandler } from \"../createclickhandler\";\nexport { createVueLink };\n\nfunction createVueLink({\n router,\n resolveComponent,\n defineComponent,\n h: createElement,\n}: {\n resolveComponent: typeof resolveComponentType;\n router: Router;\n defineComponent: typeof defineComponentType;\n h: typeof hType;\n}) {\n return defineComponent<{\n component?: string | ComponentType;\n to:\n | Record\n | ((old: Record) => Record);\n onClick?: (event: MouseEvent) => void;\n target?: string;\n innerRef?: ((r: any) => void) | { value?: any };\n }>({\n inheritAttrs: false,\n\n setup(_, { slots: children, attrs }) {\n return () => {\n const {\n component: Component = \"a\",\n to,\n onClick,\n target,\n innerRef: forwardedRef,\n } = attrs;\n\n if (!to) {\n throw new TypeError(\"object,function\");\n }\n if (!(\"function\" === typeof to || \"object\" === typeof to)) {\n throw new TypeError(\"object,function\");\n }\n const href: string = router.paramshref(to as any);\n const newclick = createclickhandler({\n //@ts-ignore\n onClick,\n //@ts-ignore\n target,\n router,\n //@ts-ignore\n to,\n });\n\n const reffun =\n \"function\" === typeof forwardedRef\n ? forwardedRef\n : forwardedRef && \"object\" === typeof forwardedRef\n ? (e: any) => {\n Reflect.set(forwardedRef, \"value\", e);\n }\n : undefined;\n\n const oprops = {\n ref: reffun,\n href,\n onClick: newclick,\n target,\n };\n\n const Resolvedcomponent =\n \"string\" === typeof Component\n ? resolveComponent(Component)\n : Component;\n\n return createElement(\n //@ts-ignore\n Resolvedcomponent,\n { ...oprops },\n children\n );\n };\n },\n });\n}\n","import type {\n // watch as watchType,\n Component as ComponentType,\n defineComponent as defineComponentType,\n h as hType,\n ref as refType,\n resolveComponent as resolveComponentType,\n} from \"@vue/runtime-dom\";\nimport { isRecordRedirect } from \"../../createrouter/isRecordRedirect\";\nimport { isRecordRoute } from \"../../createrouter/isRecordRoute\";\nimport { matchRoute } from \"../../createrouter/matchroute\";\nimport { Router } from \"../../createrouter/Router\";\nimport { RouteRecord } from \"../../createrouter/RouteRecord\";\nimport { isrouterecord } from \"../isrouterecord\";\nimport { navigate } from \"../navigate\";\nimport { createVueParamsHook } from \"./createVueParamsHook\";\nexport { createVueView, createVueParamsHook };\nfunction createVueView({\n readonly,\n onMounted,\n onUnmounted,\n router,\n resolveComponent,\n defineComponent,\n h: createElement,\n ref,\n}: // watch,\n// Fragment,\n{\n readonly: typeof import(\"@vue/runtime-dom\").readonly;\n onMounted: typeof import(\"@vue/runtime-dom\").onMounted;\n onUnmounted: typeof import(\"@vue/runtime-dom\").onUnmounted;\n resolveComponent: typeof resolveComponentType;\n router: Router;\n defineComponent: typeof defineComponentType;\n h: typeof hType;\n ref: typeof refType;\n // watch: typeof watchType;\n // Fragment: typeof import(\"@vue/runtime-core\").Fragment;\n}) {\n const useParams = createVueParamsHook({\n router,\n ref,\n onMounted,\n onUnmounted,\n readonly,\n });\n return defineComponent<{ routes: RouteRecord[] }>({\n inheritAttrs: false,\n setup(_, { attrs }) {\n //attrs不是响应式对象\n const { routes } = attrs;\n if (!Array.isArray(routes)) {\n throw new TypeError(\"array\");\n }\n const params = useParams();\n return () => {\n const { routes } = attrs;\n //attrs可能属性有变化\n if (!Array.isArray(routes)) {\n throw new TypeError(\"array\");\n }\n if (\n !routes.every((o) => {\n return isrouterecord(o);\n })\n ) {\n throw new TypeError('{params:\"function\"}');\n }\n\n const currentroute = matchRoute(routes, params.value);\n if (isRecordRedirect(currentroute)) {\n const redirect = currentroute.redirect;\n\n navigate(router, redirect);\n }\n if (isRecordRedirect(currentroute)) {\n return null;\n }\n if (isRecordRoute(currentroute)) {\n const Component =\n currentroute.component as ComponentType;\n\n const children = currentroute.children;\n\n let props = currentroute.props || {};\n let oprops = Object.assign({}, props, {\n params: params.value,\n });\n let Resolvedcomponent =\n \"string\" === typeof Component\n ? resolveComponent(Component)\n : Component;\n // if (typeof Resolvedcomponent === \"object\") {\n // Resolvedcomponent = Object.assign(\n // {},\n // Resolvedcomponent\n // );\n // }\n return createElement(\n // //@ts-ignore\n // Fragment,\n // {},\n // createElement(\n // @ts-ignore\n Resolvedcomponent,\n { ...oprops },\n children\n // )\n );\n } else {\n return null;\n }\n };\n },\n });\n}\n"],"names":["toprimitive","toString","call","Symbol","toStringTag","isObject_1","value","type","freeGlobal","global","Object","freeSelf","self","root","Function","now_1","Date","now","reWhitespace","trimmedEndIndex","string","index","length","test","charAt","reTrimStart","_baseTrim","slice","replace","_Symbol","require$$0","objectProto","prototype","hasOwnProperty","nativeObjectToString","symToStringTag","undefined","_getRawTag","isOwn","tag","unmasked","e","result","getRawTag","require$$1","objectToString","baseGetTag","isObjectLike","baseTrim","isObject","isSymbol","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","toNumber","other","valueOf","isBinary","nativeMax","Math","max","nativeMin","min","debounce_1","func","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","apply","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","arguments","this","clearTimeout","cancel","flush","gethashparams","location","hash","fromEntries","URLSearchParams","gethashhref","to","params","url","URL","href","String","sethashparams","opt","oldhash","history","pushState","window","dispatchEvent","Event","transformhashparams","getsearchparams","search","searchParams","getsearchhref","setsearchparams","oldsearch","transformsearchparams","createBaseRouter","mountcount","eventname","emitter","EventEmitterTargetClass","changelistener","debounce","instance","emit","mount","addEventListener","unmount","removeEventListener","removeAllListeners","paramshref","setparams","getparams","transformparams","navigate","router","createclickhandler","onClick","target","event","ex","preventDefault","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","isModifiedEvent","matchRoute","routes","route","isrouterecord","o","isRecordRedirect","redirect","isRecordRoute","component","createReactParamsHook","useState","useEffect","paramschange","p","on","off","createVueParamsHook","ref","onMounted","onUnmounted","readonly","forwardRef","createElement","Component","children","forwardedRef","newclick","useParams","Array","isArray","every","currentroute","props","oprops","assign","resolveComponent","defineComponent","h","inheritAttrs","setup","_","slots","attrs","innerRef","Reflect","set","Resolvedcomponent"],"mappings":"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"} \ No newline at end of file diff --git a/dist/index.mjs b/dist/index.mjs index 098471b..18acf75 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -18,10 +18,10 @@ function r() { let e = r.get(t); return e || (e = new Set, r.set(t, e)), e; } - function c(t) { + function a(t) { e(t), r.has(t) && i(t).clear(); } - function a(t, n) { + function c(t, n) { e(t), r.has(t) && i(t).forEach((t => { Promise.resolve().then((() => { t(n); @@ -52,25 +52,25 @@ function r() { listenerCount: function(t) { return e(t), r.has(t) ? i(t).size : 0; }, - clear: c, - removeAllListeners: c, + clear: a, + removeAllListeners: a, on: u, addListener: u, off: s, removeListener: s, once: function(t, r) { e(t), n(r); - let i = !1, c = o.get(r); - if (!c) { + let i = !1, a = o.get(r); + if (!a) { const e = n => { f(t, e), f(t, r), i || (i = !0, r(n)); }; - c = e, o.set(r, c); + a = e, o.set(r, a); } - f(t, r), u(t, c); + f(t, r), u(t, a); }, - emit: a, - dispatch: a, + emit: c, + dispatch: c, eventNames: function() { return [ ...r.keys() ]; }, @@ -91,10 +91,10 @@ const o = (t => { var i = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : {}; -var c = function(t) { +var a = function(t) { var e = typeof t; return null != t && ("object" == e || "function" == e); -}, a = "object" == typeof i && i && i.Object === Object && i, u = "object" == typeof self && self && self.Object === Object && self, f = a || u || Function("return this")(), s = f, l = function() { +}, c = "object" == typeof i && i && i.Object === Object && i, u = "object" == typeof self && self && self.Object === Object && self, f = c || u || Function("return this")(), s = f, l = function() { return s.Date.now(); }, h = /\s/; @@ -105,7 +105,7 @@ var p = function(t) { var m = function(t) { return t ? t.slice(0, p(t) + 1).replace(y, "") : t; -}, d = f.Symbol, v = d, w = Object.prototype, b = w.hasOwnProperty, g = w.toString, E = v ? v.toStringTag : void 0; +}, v = f.Symbol, d = v, w = Object.prototype, b = w.hasOwnProperty, g = w.toString, E = d ? d.toStringTag : void 0; var S = function(t) { var e = b.call(t, E), n = t[E]; @@ -119,7 +119,7 @@ var S = function(t) { var T = S, R = function(t) { return j.call(t); -}, L = d ? d.toStringTag : void 0; +}, L = v ? v.toStringTag : void 0; var U = function(t) { return null == t ? void 0 === t ? "[object Undefined]" : "[object Null]" : L && L in Object(t) ? T(t) : R(t); @@ -127,61 +127,61 @@ var U = function(t) { return null != t && "object" == typeof t; }; -var C = m, P = c, A = function(t) { +var A = m, C = a, P = function(t) { return "symbol" == typeof t || O(t) && "[object Symbol]" == U(t); }, N = /^[-+]0x[0-9a-f]+$/i, k = /^0b[01]+$/i, x = /^0o[0-7]+$/i, M = parseInt; -var K = c, D = l, W = function(t) { +var K = a, D = l, W = function(t) { if ("number" == typeof t) return t; - if (A(t)) return NaN; - if (P(t)) { + if (P(t)) return NaN; + if (C(t)) { var e = "function" == typeof t.valueOf ? t.valueOf() : t; - t = P(e) ? e + "" : e; + t = C(e) ? e + "" : e; } if ("string" != typeof t) return 0 === t ? t : +t; - t = C(t); + t = A(t); var n = k.test(t); return n || x.test(t) ? M(t.slice(2), n ? 2 : 8) : N.test(t) ? NaN : +t; }, $ = Math.max, F = Math.min; var I = function(t, e, n) { - var r, o, i, c, a, u, f = 0, s = !1, l = !1, h = !0; + var r, o, i, a, c, u, f = 0, s = !1, l = !1, h = !0; if ("function" != typeof t) throw new TypeError("Expected a function"); function p(e) { var n = r, i = o; - return r = o = void 0, f = e, c = t.apply(i, n); + return r = o = void 0, f = e, a = t.apply(i, n); } function y(t) { - return f = t, a = setTimeout(d, e), s ? p(t) : c; + return f = t, c = setTimeout(v, e), s ? p(t) : a; } function m(t) { var n = t - u; return void 0 === u || n >= e || n < 0 || l && t - f >= i; } - function d() { + function v() { var t = D(); - if (m(t)) return v(t); - a = setTimeout(d, function(t) { + if (m(t)) return d(t); + c = setTimeout(v, function(t) { var n = e - (t - u); return l ? F(n, i - (t - f)) : n; }(t)); } - function v(t) { - return a = void 0, h && r ? p(t) : (r = o = void 0, c); + function d(t) { + return c = void 0, h && r ? p(t) : (r = o = void 0, a); } function w() { var t = D(), n = m(t); if (r = arguments, o = this, u = t, n) { - if (void 0 === a) return y(u); - if (l) return clearTimeout(a), a = setTimeout(d, e), p(u); + if (void 0 === c) return y(u); + if (l) return clearTimeout(c), c = setTimeout(v, e), p(u); } - return void 0 === a && (a = setTimeout(d, e)), c; + return void 0 === c && (c = setTimeout(v, e)), a; } return e = W(e) || 0, K(n) && (s = !!n.leading, i = (l = "maxWait" in n) ? $(W(n.maxWait) || 0, e) : i, h = "trailing" in n ? !!n.trailing : h), w.cancel = function() { - void 0 !== a && clearTimeout(a), f = 0, r = u = o = a = void 0; + void 0 !== c && clearTimeout(c), f = 0, r = u = o = c = void 0; }, w.flush = function() { - return void 0 === a ? c : v(D()); + return void 0 === c ? a : d(D()); }, w; }; @@ -245,16 +245,16 @@ function Q(t) { let e = 0; const n = "search" === t ? "popstate" : "hashchange", r = o(), i = I((() => { const e = "hash" === t ? V() : q(); - c.emit("params", e); + a.emit("params", e); })); - const c = { + const a = { ...r, ...{ mount: function() { window.addEventListener(n, i), i(), e++; }, unmount: function() { - e--, e <= 0 && (window.removeEventListener(n, i), i.cancel()); + e--, e <= 0 && (window.removeEventListener(n, i), i.cancel(), a.removeAllListeners("params")); }, paramshref: "hash" === t ? z : B, setparams: "hash" === t ? H : G, @@ -263,7 +263,7 @@ function Q(t) { [Symbol.toStringTag]: "search" === t ? "SearchRouter" : "HashRouter" } }; - return c; + return a; } function X() { @@ -296,21 +296,21 @@ function tt({onClick: t, target: e, router: n, to: r}) { } function et({router: t, forwardRef: e, createElement: n}) { - return e((({component: e = "a", to: r, onClick: o, children: i, target: c}, a) => { + return e((({component: e = "a", to: r, onClick: o, children: i, target: a}, c) => { if (!r) throw new TypeError("object,function"); if ("function" != typeof r && "object" != typeof r) throw new TypeError("object,function"); const u = t.paramshref(r), f = tt({ onClick: o, - target: c, + target: a, router: t, to: r }); return n(e, { ...{ - ref: a, + ref: c, href: u, onClick: f, - target: c + target: a } }, i); })); @@ -332,7 +332,7 @@ function it(t) { return !("function" != typeof (null == t ? void 0 : t.params) || null == t || !t.component); } -function ct({router: t, useState: e, useEffect: n}) { +function at({router: t, useState: e, useEffect: n}) { return function() { const [r, o] = e(t.getparams()); return n((() => { @@ -346,8 +346,8 @@ function ct({router: t, useState: e, useEffect: n}) { }; } -function at({router: t, createElement: e, useState: n, useEffect: r}) { - const o = ct({ +function ct({router: t, createElement: e, useState: n, useEffect: r}) { + const o = at({ router: t, useState: n, useEffect: r @@ -363,11 +363,11 @@ function at({router: t, createElement: e, useState: n, useEffect: r}) { if (ot(i)) return null; if (it(i)) { const t = i.component, n = i.children, o = i.props || {}; - let c = Object.assign({}, o, { + let a = Object.assign({}, o, { params: r }); return e(t, { - ...c + ...a }, n); } return null; @@ -378,14 +378,14 @@ function ut({router: t, resolveComponent: e, defineComponent: n, h: r}) { return n({ inheritAttrs: !1, setup: (n, {slots: o, attrs: i}) => () => { - const {component: n = "a", to: c, onClick: a, target: u, innerRef: f} = i; - if (!c) throw new TypeError("object,function"); - if ("function" != typeof c && "object" != typeof c) throw new TypeError("object,function"); - const s = t.paramshref(c), l = tt({ - onClick: a, + const {component: n = "a", to: a, onClick: c, target: u, innerRef: f} = i; + if (!a) throw new TypeError("object,function"); + if ("function" != typeof a && "object" != typeof a) throw new TypeError("object,function"); + const s = t.paramshref(a), l = tt({ + onClick: c, target: u, router: t, - to: c + to: a }), h = { ref: "function" == typeof f ? f : f && "object" == typeof f ? t => { Reflect.set(f, "value", t); @@ -403,21 +403,21 @@ function ut({router: t, resolveComponent: e, defineComponent: n, h: r}) { function ft({router: t, ref: e, onMounted: n, onUnmounted: r, readonly: o}) { return function() { - const i = e(t.getparams()), c = I((t => { + const i = e(t.getparams()), a = I((t => { i.value = t; })); return n((function() { - t.mount(), t.on("params", c); + t.mount(), t.on("params", a); })), r((function() { - t.unmount(), t.off("params", c), c.cancel(); + t.unmount(), t.off("params", a), a.cancel(); })), o(i); }; } -function st({readonly: t, onMounted: e, onUnmounted: n, router: r, resolveComponent: o, defineComponent: i, h: c, ref: a}) { +function st({readonly: t, onMounted: e, onUnmounted: n, router: r, resolveComponent: o, defineComponent: i, h: a, ref: c}) { const u = ft({ router: r, - ref: a, + ref: c, onMounted: e, onUnmounted: n, readonly: t @@ -440,11 +440,11 @@ function st({readonly: t, onMounted: e, onUnmounted: n, router: r, resolveCompon if (ot(n)) return null; if (it(n)) { const t = n.component, e = n.children; - let r = n.props || {}, a = Object.assign({}, r, { + let r = n.props || {}, c = Object.assign({}, r, { params: i.value }), u = "string" == typeof t ? o(t) : t; - return c(u, { - ...a + return a(u, { + ...c }, e); } return null; @@ -453,5 +453,5 @@ function st({readonly: t, onMounted: e, onUnmounted: n, router: r, resolveCompon }); } -export { X as createHashRouter, et as createReactLink, ct as createReactParamsHook, at as createReactView, Y as createSearchRouter, ut as createVueLink, ft as createVueParamsHook, st as createVueView }; +export { X as createHashRouter, et as createReactLink, at as createReactParamsHook, ct as createReactView, Y as createSearchRouter, ut as createVueLink, ft as createVueParamsHook, st as createVueView }; //# sourceMappingURL=index.mjs.map diff --git a/dist/index.mjs.map b/dist/index.mjs.map index 9b1ab77..8dde23b 100644 --- a/dist/index.mjs.map +++ b/dist/index.mjs.map @@ -1 +1 @@ -{"version":3,"file":"index.mjs","sources":["../node_modules/.pnpm/@masx200+event-emitter-target@1.1.8/node_modules/@masx200/event-emitter-target/dist/index.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObject.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_root.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_freeGlobal.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/now.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_trimmedEndIndex.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTrim.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Symbol.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getRawTag.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_objectToString.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetTag.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isSymbol.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObjectLike.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toNumber.js","../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/debounce.js","../src/createrouter/hashrouter/gethashparams.ts","../src/createrouter/hashrouter/gethashhref.ts","../src/createrouter/hashrouter/sethashparams.ts","../src/createrouter/hashrouter/transformhashparams.ts","../src/createrouter/searchrouter/getsearchparams.ts","../src/createrouter/searchrouter/getsearchhref.ts","../src/createrouter/searchrouter/setsearchparams.ts","../src/createrouter/searchrouter/transformsearchparams.ts","../src/createrouter/createbaserouter.ts","../src/createrouter/hashrouter/createhashrouter.ts","../src/createrouter/searchrouter/createsearchrouter.ts","../src/components/navigate.ts","../src/components/createclickhandler.tsx","../src/components/isModifiedEvent.tsx","../src/components/react/create-react-link.tsx","../src/createrouter/matchRoute.ts","../src/components/isrouterecord.ts","../src/createrouter/isRecordRedirect.ts","../src/createrouter/isRecordRoute.ts","../src/components/react/createReactParamsHook.tsx","../src/components/react/create-react-view.tsx","../src/components/vue/create-vue-link.tsx","../src/components/vue/createVueParamsHook.tsx","../src/components/vue/create-vue-view.tsx"],"sourcesContent":["function t() {\n return {}.toString.call({\n [Symbol.toStringTag]: \"EventEmitterTarget\"\n });\n}\n\nfunction e(t) {\n if (\"string\" != typeof t && \"symbol\" != typeof t) throw new TypeError(\" EVENTNAME expected: string | symbol;but invalid :\" + t);\n}\n\nfunction n(t) {\n if (\"function\" != typeof t) throw new TypeError(\" EVENTLISTENER expected: (event?: any) => void;but invalid:\" + t);\n}\n\nfunction r() {\n const r = new Map, i = new WeakMap;\n function o(t) {\n let e = r.get(t);\n return e || (e = new Set, r.set(t, e)), e;\n }\n function c(t) {\n if (e(t), r.has(t)) {\n o(t).clear();\n }\n }\n function s(t, n) {\n if (e(t), r.has(t)) {\n o(t).forEach((t => {\n Promise.resolve().then((() => {\n t(n);\n }));\n }));\n }\n }\n function u(t, r) {\n e(t), n(r);\n o(t).add(r);\n }\n function f(t, e) {\n o(t).delete(e);\n }\n function a(t, r) {\n e(t), n(r), f(t, r), function(t, e) {\n const n = o(t);\n let r = i.get(e);\n r && n.delete(r);\n }(t, r);\n }\n function l() {\n return [ ...r ].map((([t, e]) => [ t, [ ...e ] ]))[Symbol.iterator]();\n }\n return {\n [Symbol.toPrimitive]: t,\n [Symbol.toStringTag]: \"EventEmitterTarget\",\n [Symbol.iterator]: l,\n entries: l,\n listenerCount: function(t) {\n if (e(t), r.has(t)) {\n return o(t).size;\n }\n return 0;\n },\n clear: c,\n removeAllListeners: c,\n on: u,\n addListener: u,\n off: a,\n removeListener: a,\n once: function(t, r) {\n e(t), n(r);\n let o = !1, c = i.get(r);\n if (!c) {\n const e = n => {\n f(t, e), f(t, r), o || (o = !0, r(n));\n };\n c = e, i.set(r, c);\n }\n f(t, r), u(t, c);\n },\n emit: s,\n dispatch: s,\n eventNames: function() {\n return [ ...r.keys() ];\n },\n listeners: function(t) {\n if (e(t), r.has(t)) {\n return [ ...o(t) ];\n }\n return [];\n }\n };\n}\n\nconst i = (t => {\n var e = Symbol(), n = new Function(\"return async()=>{}\")()();\n function i() {\n const t = r();\n return this && this instanceof i ? (Object.assign(this, t), this) : Reflect.construct(i, []);\n }\n return Reflect.set(i, e, n), i;\n})();\n\nexport default i;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NyYy90b3ByaW1pdGl2ZS50cyIsIi4uL3NyYy90b1N0cmluZ1RhZy50cyIsIi4uL3NyYy9hc3NlcnRFVkVOVE5BTUUudHMiLCIuLi9zcmMvYXNzZXJ0RVZFTlRMSVNURU5FUi50cyIsIi4uL3NyYy9jcmVhdGVFdmVudEVtaXR0ZXJUYXJnZXQudHMiLCIuLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdG9TdHJpbmdUYWcgfSBmcm9tIFwiLi90b1N0cmluZ1RhZ1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gdG9wcmltaXRpdmUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4ge30udG9TdHJpbmcuY2FsbCh7IFtTeW1ib2wudG9TdHJpbmdUYWddOiB0b1N0cmluZ1RhZyB9KTtcbn1cbiIsImV4cG9ydCBjb25zdCB0b1N0cmluZ1RhZyA9IFwiRXZlbnRFbWl0dGVyVGFyZ2V0XCI7XG4iLCJpbXBvcnQgeyBFVkVOVE5BTUUgfSBmcm9tIFwiLi9pbmRleFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0RVZFTlROQU1FKG5hbWU6IGFueSk6IGFzc2VydHMgbmFtZSBpcyBFVkVOVE5BTUUge1xuICAgIGlmIChcInN0cmluZ1wiICE9PSB0eXBlb2YgbmFtZSAmJiBcInN5bWJvbFwiICE9PSB0eXBlb2YgbmFtZSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgICAgXCIgRVZFTlROQU1FIGV4cGVjdGVkOiBzdHJpbmcgfCBzeW1ib2w7YnV0IGludmFsaWQgOlwiICsgbmFtZVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsImltcG9ydCB7IEVWRU5UTElTVEVORVIgfSBmcm9tIFwiLi9pbmRleFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0RVZFTlRMSVNURU5FUihcbiAgICBjYWxsYmFjazogYW55XG4pOiBhc3NlcnRzIGNhbGxiYWNrIGlzIEVWRU5UTElTVEVORVIge1xuICAgIGlmIChcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBjYWxsYmFjaykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgICAgXCIgRVZFTlRMSVNURU5FUiBleHBlY3RlZDogKGV2ZW50PzogYW55KSA9PiB2b2lkO2J1dCBpbnZhbGlkOlwiICtcbiAgICAgICAgICAgICAgICBjYWxsYmFja1xuICAgICAgICApO1xuICAgIH1cbn1cbiIsImltcG9ydCB7IEVWRU5UTkFNRSwgRVZFTlRMSVNURU5FUiB9IGZyb20gXCIuL2luZGV4XCI7XG5pbXBvcnQgeyB0b3ByaW1pdGl2ZSB9IGZyb20gXCIuL3RvcHJpbWl0aXZlXCI7XG5pbXBvcnQgeyB0b1N0cmluZ1RhZyB9IGZyb20gXCIuL3RvU3RyaW5nVGFnXCI7XG5pbXBvcnQgeyBhc3NlcnRFVkVOVE5BTUUgfSBmcm9tIFwiLi9hc3NlcnRFVkVOVE5BTUVcIjtcbmltcG9ydCB7IGFzc2VydEVWRU5UTElTVEVORVIgfSBmcm9tIFwiLi9hc3NlcnRFVkVOVExJU1RFTkVSXCI7XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRXZlbnRFbWl0dGVyVGFyZ2V0KCkge1xuICAgIGNvbnN0IOebkeWQrOWZqOWbnuiwg+aYoOWwhCA9IG5ldyBNYXA8RVZFTlROQU1FLCBTZXQ8RVZFTlRMSVNURU5FUj4+KCk7XG4gICAgY29uc3Qg5rqQ5Zue6LCD5Yiw5LiA5qyh5YyF6KOFID0gbmV3IFdlYWtNYXA8RVZFTlRMSVNURU5FUiwgRVZFTlRMSVNURU5FUj4oKTtcbiAgICBmdW5jdGlvbiDojrflj5bnm5HlkKzlmajpm4blkIgobmFtZTogRVZFTlROQU1FKTogU2V0PEVWRU5UTElTVEVORVI+IHtcbiAgICAgICAgbGV0IOebkeWQrOWZqOmbhuWQiDogU2V0PEVWRU5UTElTVEVORVI+IHwgdW5kZWZpbmVkID1cbiAgICAgICAgICAgIOebkeWQrOWZqOWbnuiwg+aYoOWwhC5nZXQobmFtZSk7XG4gICAgICAgIGlmICgh55uR5ZCs5Zmo6ZuG5ZCIKSB7XG4gICAgICAgICAgICDnm5HlkKzlmajpm4blkIggPSBuZXcgU2V0KCk7XG4gICAgICAgICAgICDnm5HlkKzlmajlm57osIPmmKDlsIQuc2V0KG5hbWUsIOebkeWQrOWZqOmbhuWQiCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIOebkeWQrOWZqOmbhuWQiDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjbGVhcihuYW1lOiBFVkVOVE5BTUUpIHtcbiAgICAgICAgYXNzZXJ0RVZFTlROQU1FKG5hbWUpO1xuICAgICAgICBpZiAo55uR5ZCs5Zmo5Zue6LCD5pig5bCELmhhcyhuYW1lKSkge1xuICAgICAgICAgICAgY29uc3Qg55uR5ZCs5Zmo6ZuG5ZCIID0g6I635Y+W55uR5ZCs5Zmo6ZuG5ZCIKG5hbWUpO1xuICAgICAgICAgICAg55uR5ZCs5Zmo6ZuG5ZCILmNsZWFyKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZW1pdChuYW1lOiBFVkVOVE5BTUUsIGV2ZW50PzogYW55KSB7XG4gICAgICAgIGFzc2VydEVWRU5UTkFNRShuYW1lKTtcbiAgICAgICAgaWYgKOebkeWQrOWZqOWbnuiwg+aYoOWwhC5oYXMobmFtZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IOebkeWQrOWZqOmbhuWQiCA9IOiOt+WPluebkeWQrOWZqOmbhuWQiChuYW1lKTtcbiAgICAgICAgICAgIOebkeWQrOWZqOmbhuWQiC5mb3JFYWNoKChsaXN0ZW5lcikgPT4ge1xuICAgICAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lcihldmVudCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBvbmNlKG5hbWU6IEVWRU5UTkFNRSwgY2FsbGJhY2s6IEVWRU5UTElTVEVORVIpIHtcbiAgICAgICAgYXNzZXJ0RVZFTlROQU1FKG5hbWUpO1xuICAgICAgICBhc3NlcnRFVkVOVExJU1RFTkVSKGNhbGxiYWNrKTtcbiAgICAgICAgbGV0IGZpcmVkID0gZmFsc2U7XG4gICAgICAgIGxldCB3cmFwcGVkID0g5rqQ5Zue6LCD5Yiw5LiA5qyh5YyF6KOFLmdldChjYWxsYmFjayk7XG4gICAgICAgIGlmICghd3JhcHBlZCkge1xuICAgICAgICAgICAgY29uc3Qg5LiA5qyh5YyF6KOFID0gKGV2ZW50PzogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgb2ZmcmF3KG5hbWUsIOS4gOasoeWMheijhSk7XG4gICAgICAgICAgICAgICAgb2ZmcmF3KG5hbWUsIGNhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICBpZiAoIWZpcmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpcmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3cmFwcGVkID0g5LiA5qyh5YyF6KOFO1xuICAgICAgICAgICAg5rqQ5Zue6LCD5Yiw5LiA5qyh5YyF6KOFLnNldChjYWxsYmFjaywgd3JhcHBlZCk7XG4gICAgICAgIH1cbiAgICAgICAgb2ZmcmF3KG5hbWUsIGNhbGxiYWNrKTtcbiAgICAgICAgb24obmFtZSwgd3JhcHBlZCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG9uKG5hbWU6IEVWRU5UTkFNRSwgY2FsbGJhY2s6IEVWRU5UTElTVEVORVIpIHtcbiAgICAgICAgYXNzZXJ0RVZFTlROQU1FKG5hbWUpO1xuICAgICAgICBhc3NlcnRFVkVOVExJU1RFTkVSKGNhbGxiYWNrKTtcbiAgICAgICAgY29uc3Qg55uR5ZCs5Zmo6ZuG5ZCIID0g6I635Y+W55uR5ZCs5Zmo6ZuG5ZCIKG5hbWUpO1xuICAgICAgICDnm5HlkKzlmajpm4blkIguYWRkKGNhbGxiYWNrKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gb2ZmcmF3KG5hbWU6IEVWRU5UTkFNRSwgY2FsbGJhY2s6IEVWRU5UTElTVEVORVIpIHtcbiAgICAgICAgY29uc3Qg55uR5ZCs5Zmo6ZuG5ZCIID0g6I635Y+W55uR5ZCs5Zmo6ZuG5ZCIKG5hbWUpO1xuICAgICAgICDnm5HlkKzlmajpm4blkIguZGVsZXRlKGNhbGxiYWNrKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gb2Zmd3JhcChuYW1lOiBFVkVOVE5BTUUsIGNhbGxiYWNrOiBFVkVOVExJU1RFTkVSKSB7XG4gICAgICAgIGNvbnN0IOebkeWQrOWZqOmbhuWQiCA9IOiOt+WPluebkeWQrOWZqOmbhuWQiChuYW1lKTtcbiAgICAgICAgbGV0IOS4gOasoeWMheijhSA9IOa6kOWbnuiwg+WIsOS4gOasoeWMheijhS5nZXQoY2FsbGJhY2spO1xuICAgICAgICBpZiAo5LiA5qyh5YyF6KOFKSB7XG4gICAgICAgICAgICDnm5HlkKzlmajpm4blkIguZGVsZXRlKOS4gOasoeWMheijhSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gb2ZmKG5hbWU6IEVWRU5UTkFNRSwgY2FsbGJhY2s6IEVWRU5UTElTVEVORVIpIHtcbiAgICAgICAgYXNzZXJ0RVZFTlROQU1FKG5hbWUpO1xuICAgICAgICBhc3NlcnRFVkVOVExJU1RFTkVSKGNhbGxiYWNrKTtcblxuICAgICAgICBvZmZyYXcobmFtZSwgY2FsbGJhY2spO1xuICAgICAgICBvZmZ3cmFwKG5hbWUsIGNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBldmVudE5hbWVzKCk6IEVWRU5UTkFNRVtdIHtcbiAgICAgICAgcmV0dXJuIFsuLi7nm5HlkKzlmajlm57osIPmmKDlsIQua2V5cygpXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbGlzdGVuZXJzKG5hbWU6IEVWRU5UTkFNRSk6IEVWRU5UTElTVEVORVJbXSB7XG4gICAgICAgIGFzc2VydEVWRU5UTkFNRShuYW1lKTtcbiAgICAgICAgaWYgKOebkeWQrOWZqOWbnuiwg+aYoOWwhC5oYXMobmFtZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IOebkeWQrOWZqOmbhuWQiCA9IOiOt+WPluebkeWQrOWZqOmbhuWQiChuYW1lKTtcbiAgICAgICAgICAgIHJldHVybiBbLi4u55uR5ZCs5Zmo6ZuG5ZCIXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBsaXN0ZW5lckNvdW50KG5hbWU6IEVWRU5UTkFNRSk6IG51bWJlciB7XG4gICAgICAgIGFzc2VydEVWRU5UTkFNRShuYW1lKTtcbiAgICAgICAgaWYgKOebkeWQrOWZqOWbnuiwg+aYoOWwhC5oYXMobmFtZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IOebkeWQrOWZqOmbhuWQiCA9IOiOt+WPluebkeWQrOWZqOmbhuWQiChuYW1lKTtcbiAgICAgICAgICAgIHJldHVybiDnm5HlkKzlmajpm4blkIguc2l6ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXRlcmF0b3IoKTogSXRlcmFibGVJdGVyYXRvcjxbRVZFTlROQU1FLCBFVkVOVExJU1RFTkVSW11dPiB7XG4gICAgICAgIGxldCByZXN1bHRhcnI6IEFycmF5PFtFVkVOVE5BTUUsIEVWRU5UTElTVEVORVJbXV0+ID0gW1xuICAgICAgICAgICAgLi4u55uR5ZCs5Zmo5Zue6LCD5pig5bCELFxuICAgICAgICBdLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gW2tleSwgWy4uLnZhbHVlXV0gYXMgW0VWRU5UTkFNRSwgRVZFTlRMSVNURU5FUltdXTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdGFycltTeW1ib2wuaXRlcmF0b3JdKCk7XG4gICAgfVxuICAgIGNvbnN0IGV2ZW50dGFyZ2V0ID0ge1xuICAgICAgICBbU3ltYm9sLnRvUHJpbWl0aXZlXTogdG9wcmltaXRpdmUsXG5cbiAgICAgICAgW1N5bWJvbC50b1N0cmluZ1RhZ106IHRvU3RyaW5nVGFnLFxuICAgICAgICBbU3ltYm9sLml0ZXJhdG9yXTogaXRlcmF0b3IsXG4gICAgICAgIGVudHJpZXM6IGl0ZXJhdG9yLFxuICAgICAgICBsaXN0ZW5lckNvdW50LFxuICAgICAgICBjbGVhcixcbiAgICAgICAgcmVtb3ZlQWxsTGlzdGVuZXJzOiBjbGVhcixcbiAgICAgICAgb24sXG4gICAgICAgIGFkZExpc3RlbmVyOiBvbixcbiAgICAgICAgb2ZmLFxuICAgICAgICByZW1vdmVMaXN0ZW5lcjogb2ZmLFxuICAgICAgICBvbmNlLFxuICAgICAgICBlbWl0LFxuICAgICAgICBkaXNwYXRjaDogZW1pdCxcbiAgICAgICAgZXZlbnROYW1lcyxcbiAgICAgICAgbGlzdGVuZXJzLFxuICAgIH07XG4gICAgcmV0dXJuIGV2ZW50dGFyZ2V0O1xufVxuIiwiaW1wb3J0IHsgY3JlYXRlRXZlbnRFbWl0dGVyVGFyZ2V0IH0gZnJvbSBcIi4vY3JlYXRlRXZlbnRFbWl0dGVyVGFyZ2V0XCI7XG5cbmV4cG9ydCB0eXBlIEV2ZW50RW1pdHRlclRhcmdldCA9IFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZUV2ZW50RW1pdHRlclRhcmdldD47XG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50RW1pdHRlclRhcmdldENvbnN0cnVjdG9yIHtcbiAgICBuZXcgKCk6IEV2ZW50RW1pdHRlclRhcmdldDtcbiAgICAoKTogRXZlbnRFbWl0dGVyVGFyZ2V0O1xufVxuY29uc3QgRXZlbnRFbWl0dGVyVGFyZ2V0Q2xhc3M6IEV2ZW50RW1pdHRlclRhcmdldENvbnN0cnVjdG9yID0gKChub29wKSA9PiB7XG4gICAgdmFyIGEgPSBub29wKCk7XG4gICAgdmFyIGIgPSBuZXcgRnVuY3Rpb24oXCJyZXR1cm4gYXN5bmMoKT0+e31cIikoKSgpO1xuXG4gICAgZnVuY3Rpb24gRXZlbnRFbWl0dGVyVGFyZ2V0Q2xhc3ModGhpczogYW55KTogRXZlbnRFbWl0dGVyVGFyZ2V0IHtcbiAgICAgICAgY29uc3QgZXZlbnRlbWl0dGVydGFyZ2V0ID0gY3JlYXRlRXZlbnRFbWl0dGVyVGFyZ2V0KCk7XG4gICAgICAgIGlmICh0aGlzICYmIHRoaXMgaW5zdGFuY2VvZiBFdmVudEVtaXR0ZXJUYXJnZXRDbGFzcykge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBldmVudGVtaXR0ZXJ0YXJnZXQpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMgYXMgRXZlbnRFbWl0dGVyVGFyZ2V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3QuY29uc3RydWN0KEV2ZW50RW1pdHRlclRhcmdldENsYXNzLCBbXSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgUmVmbGVjdC5zZXQoRXZlbnRFbWl0dGVyVGFyZ2V0Q2xhc3MsIGEsIGIpO1xuXG4gICAgcmV0dXJuIEV2ZW50RW1pdHRlclRhcmdldENsYXNzIGFzIEV2ZW50RW1pdHRlclRhcmdldENvbnN0cnVjdG9yO1xufSkoU3ltYm9sKTtcbmV4cG9ydCB0eXBlIEVWRU5UTkFNRSA9IHN0cmluZyB8IHN5bWJvbDtcbmV4cG9ydCB0eXBlIEVWRU5UTElTVEVORVIgPSAoZXZlbnQ/OiBhbnkpID0+IHZvaWQ7XG5leHBvcnQgZGVmYXVsdCBFdmVudEVtaXR0ZXJUYXJnZXRDbGFzcztcbiJdLCJuYW1lcyI6WyJ0b3ByaW1pdGl2ZSIsInRvU3RyaW5nIiwiY2FsbCIsIlN5bWJvbCIsInRvU3RyaW5nVGFnIiwiYXNzZXJ0RVZFTlROQU1FIiwibmFtZSIsIlR5cGVFcnJvciIsImFzc2VydEVWRU5UTElTVEVORVIiLCJjYWxsYmFjayIsImNyZWF0ZUV2ZW50RW1pdHRlclRhcmdldCIsIuebkeWQrOWZqOWbnuiwg+aYoOWwhCIsIk1hcCIsIua6kOWbnuiwg+WIsOS4gOasoeWMheijhSIsIldlYWtNYXAiLCLojrflj5bnm5HlkKzlmajpm4blkIgiLCLnm5HlkKzlmajpm4blkIgiLCJnZXQiLCJTZXQiLCJzZXQiLCJjbGVhciIsImhhcyIsImVtaXQiLCJldmVudCIsImZvckVhY2giLCJsaXN0ZW5lciIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsIm9uIiwiYWRkIiwib2ZmcmF3IiwiZGVsZXRlIiwib2ZmIiwi5LiA5qyh5YyF6KOFIiwib2Zmd3JhcCIsIml0ZXJhdG9yIiwibWFwIiwia2V5IiwidmFsdWUiLCJ0b1ByaW1pdGl2ZSIsImVudHJpZXMiLCJsaXN0ZW5lckNvdW50Iiwic2l6ZSIsInJlbW92ZUFsbExpc3RlbmVycyIsImFkZExpc3RlbmVyIiwicmVtb3ZlTGlzdGVuZXIiLCJvbmNlIiwiZmlyZWQiLCJ3cmFwcGVkIiwiZGlzcGF0Y2giLCJldmVudE5hbWVzIiwia2V5cyIsImxpc3RlbmVycyIsIkV2ZW50RW1pdHRlclRhcmdldENsYXNzIiwibm9vcCIsImEiLCJiIiwiRnVuY3Rpb24iLCJldmVudGVtaXR0ZXJ0YXJnZXQiLCJ0aGlzIiwiT2JqZWN0IiwiYXNzaWduIiwiUmVmbGVjdCIsImNvbnN0cnVjdCJdLCJtYXBwaW5ncyI6IlNBRWdCQTtXQUNMLEdBQUdDLFNBQVNDLEtBQUs7U0FBR0MsT0FBT0MsY0NIWDs7OztTQ0VYQyxFQUFnQkM7UUFDeEIsbUJBQW9CQSxLQUFRLG1CQUFvQkEsU0FDMUMsSUFBSUMsVUFDTix1REFBdUREOzs7U0NIbkRFLEVBQ1pDO1FBRUkscUJBQXNCQSxTQUNoQixJQUFJRixVQUNOLGdFQUNJRTs7O1NDSEFDO1VBQ05DLElBQVUsSUFBSUMsS0FDZEMsSUFBVyxJQUFJQzthQUNaQyxFQUFRVDtZQUNUVSxJQUNBTCxFQUFRTSxJQUFJWDtlQUNYVSxNQUNEQSxJQUFRLElBQUlFLEtBQ1pQLEVBQVFRLElBQUliLEdBQU1VLEtBRWZBOzthQUdGSSxFQUFNZDtZQUNYRCxFQUFnQkMsSUFDWkssRUFBUVUsSUFBSWYsSUFBTztZQUNMUyxFQUFRVCxHQUNoQmM7OzthQUdMRSxFQUFLaEIsR0FBaUJpQjtZQUMzQmxCLEVBQWdCQyxJQUNaSyxFQUFRVSxJQUFJZixJQUFPO1lBQ0xTLEVBQVFULEdBQ2hCa0IsU0FBU0M7Z0JBQ1hDLFFBQVFDLFVBQVVDLE1BQUs7b0JBQ25CSCxFQUFTRjs7Ozs7YUF5QmhCTSxFQUFHdkIsR0FBaUJHO1FBQ3pCSixFQUFnQkMsSUFDaEJFLEVBQW9CQztRQUNOTSxFQUFRVCxHQUNoQndCLElBQUlyQjs7YUFFTHNCLEVBQU96QixHQUFpQkc7UUFDZk0sRUFBUVQsR0FDaEIwQixPQUFPdkI7O2FBU1J3QixFQUFJM0IsR0FBaUJHO1FBQzFCSixFQUFnQkMsSUFDaEJFLEVBQW9CQyxJQUVwQnNCLEVBQU96QixHQUFNRyxhQVhBSCxHQUFpQkc7a0JBQ3hCTyxJQUFRRCxFQUFRVDtnQkFDbEI0QixJQUFPckIsRUFBU0ksSUFBSVI7WUFDcEJ5QixLQUNBbEIsRUFBTWdCLE9BQU9FO1NBUWpCQyxDQUFRN0IsR0FBTUc7O2FBeUJUMkI7ZUFDZ0QsS0FDOUN6QixJQUNMMEIsS0FBSSxFQUFFQyxHQUFLQyxPQUNGLEVBQUNELEdBQUssS0FBSUMsUUFHSnBDLE9BQU9pQzs7V0FFUjtTQUNmakMsT0FBT3FDLGNBQWN4QztTQUVyQkcsT0FBT0MsY0huSFc7U0dvSGxCRCxPQUFPaUMsV0FBV0E7UUFDbkJLLFNBQVNMO1FBQ1RNLHdCQXpCbUJwQztnQkFDbkJELEVBQWdCQyxJQUNaSyxFQUFRVSxJQUFJZixJQUFPO3VCQUNMUyxFQUFRVCxHQUNUcUM7O21CQUVOOztRQW9CWHZCLE9BQUFBO1FBQ0F3QixvQkFBb0J4QjtRQUNwQlMsSUFBQUE7UUFDQWdCLGFBQWFoQjtRQUNiSSxLQUFBQTtRQUNBYSxnQkFBZ0JiO1FBQ2hCYyxlQXpGVXpDLEdBQWlCRztZQUMzQkosRUFBZ0JDLElBQ2hCRSxFQUFvQkM7Z0JBQ2hCdUMsS0FBUSxHQUNSQyxJQUFVcEMsRUFBU0ksSUFBSVI7aUJBQ3RCd0MsR0FBUztzQkFDSmYsSUFBUVg7b0JBQ1ZRLEVBQU96QixHQUFNNEIsSUFDYkgsRUFBT3pCLEdBQU1HLElBQ1J1QyxNQUNEQSxLQUFRLEdBQ1J2QyxFQUFTYzs7Z0JBR2pCMEIsSUFBVWYsR0FDVnJCLEVBQVNNLElBQUlWLEdBQVV3Qzs7WUFFM0JsQixFQUFPekIsR0FBTUcsSUFDYm9CLEVBQUd2QixHQUFNMkM7O1FBd0VUM0IsTUFBQUE7UUFDQTRCLFVBQVU1QjtRQUNWNkI7bUJBOUNPLEtBQUl4QyxFQUFReUM7O1FBK0NuQkMsb0JBN0NlL0M7Z0JBQ2ZELEVBQWdCQyxJQUNaSyxFQUFRVSxJQUFJZixJQUFPO3VCQUVaLEtBRE9TLEVBQVFUOzttQkFHZjs7Ozs7TUNuRmJnRCxJQUF5RCxDQUFFQztRQUN6REMsSUFlTHJELFVBZEtzRCxJQUFJLElBQUlDLFNBQVMscUJBQWIsRUFBQTthQUVDSjtjQUNDSyxJQUFxQmpEO2VBQ3ZCa0QsUUFBUUEsZ0JBQWdCTixLQUN4Qk8sT0FBT0MsT0FBT0YsTUFBTUQsSUFDYkMsUUFFQUcsUUFBUUMsVUFBVVYsR0FBeUI7O1dBRzFEUyxRQUFRNUMsSUFBSW1DLEdBQXlCRSxHQUFHQyxJQUVqQ0g7RUFmb0Q7OyJ9\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 != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var freeGlobal = require('./_freeGlobal');\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\nmodule.exports = root;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var root = require('./_root');\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\nmodule.exports = now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\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 nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\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 nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\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) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\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 != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\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/**\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 = baseTrim(value);\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 = toNumber;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\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 * 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 timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\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 clearTimeout(timerId);\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\nmodule.exports = debounce;\n","export function gethashparams() {\n return (\n (location.hash &&\n Object.fromEntries(new URLSearchParams(location.hash.slice(1)))) ||\n {}\n );\n}\n","//@ts-ignore\nimport { gethashparams } from \"./gethashparams.ts\";\n\nexport function gethashhref(\n to:\n | Record\n | ((old: Record) => Record)\n): string {\n if (!to) {\n throw new TypeError(\"object,function\");\n }\n let params: {\n [k: string]: string;\n } = gethashparams();\n let url = new URL(location.href);\n\n if (\"function\" === typeof to) {\n params = to(params);\n url.hash = String(new URLSearchParams({ ...to }));\n return url.href;\n }\n if (\"object\" === typeof to) {\n params = to;\n url.hash = String(new URLSearchParams({ ...to }));\n return url.href;\n }\n throw new TypeError(\"object,function\");\n}\n","export function sethashparams(opt: Record) {\n const oldhash = location.hash;\n let url = new URL(location.href);\n\n url.hash = String(new URLSearchParams({ ...opt }));\n\n if (oldhash === url.hash) {\n return;\n }\n history.pushState({}, \"\", url.href);\n\n window.dispatchEvent(new Event(\"hashchange\"));\n}\n","//@ts-ignore\nimport { gethashparams } from \"./gethashparams.ts\"; //@ts-ignore\nimport { sethashparams } from \"./sethashparams.ts\";\nexport function transformhashparams(\n opt: (old: Record) => Record\n) {\n sethashparams(opt(gethashparams()));\n}\n","export function getsearchparams() {\n return (\n (location.search &&\n Object.fromEntries(new URL(location.href).searchParams)) ||\n {}\n );\n}\n","//@ts-ignore\nimport { getsearchparams } from \"./getsearchparams.ts\";\n\nexport function getsearchhref(\n to:\n | Record\n | ((old: Record) => Record)\n): string {\n if (!to) {\n throw new TypeError(\"object,function\");\n }\n let params: {\n [k: string]: string;\n } = getsearchparams();\n let url = new URL(location.href);\n\n if (\"function\" === typeof to) {\n params = to(params);\n url.search = String(new URLSearchParams({ ...to }));\n return url.href;\n }\n if (\"object\" === typeof to) {\n params = to;\n url.search = String(new URLSearchParams({ ...to }));\n return url.href;\n }\n throw new TypeError(\"object,function\");\n}\n","export function setsearchparams(opt: Record) {\n const oldsearch = location.search;\n let url = new URL(location.href);\n\n url.search = String(new URLSearchParams({ ...opt }));\n\n if (oldsearch === url.search) {\n return;\n }\n history.pushState({}, \"\", url.href);\n\n window.dispatchEvent(new Event(\"popstate\"));\n}\n","//@ts-ignore\nimport { getsearchparams } from \"./getsearchparams.ts\"; //@ts-ignore\nimport { setsearchparams } from \"./setsearchparams.ts\";\nexport function transformsearchparams(\n opt: (old: Record) => Record\n) {\n setsearchparams(opt(getsearchparams()));\n}\n","//@ts-ignore\n\nimport EventEmitterTargetClass, {\n EventEmitterTarget,\n} from \"@masx200/event-emitter-target\";\n//@ts-ignore\nimport debounce from \"lodash/debounce\";\n//@ts-ignore\nimport { gethashhref } from \"./hashrouter/gethashhref\";\n//@ts-ignore\nimport { gethashparams } from \"./hashrouter/gethashparams\";\n//@ts-ignore\nimport { sethashparams } from \"./hashrouter/sethashparams\";\n//@ts-ignore\nimport { transformhashparams } from \"./hashrouter/transformhashparams\";\nimport { RawRouter } from \"./Router\";\n//@ts-ignore\nimport { getsearchhref } from \"./searchrouter/getsearchhref\";\n//@ts-ignore\nimport { getsearchparams } from \"./searchrouter/getsearchparams\"; //\n//@ts-ignore\nimport { setsearchparams } from \"./searchrouter/setsearchparams\"; //@ts-ignore\nimport { transformsearchparams } from \"./searchrouter/transformsearchparams\";\nexport function createBaseRouter(\n type: \"search\" | \"hash\"\n): EventEmitterTarget & RawRouter {\n let mountcount = 0;\n const eventname = \"search\" === type ? \"popstate\" : \"hashchange\";\n\n const emitter: EventEmitterTarget = EventEmitterTargetClass();\n\n const changelistener = debounce(() => {\n const params = \"hash\" === type ? gethashparams() : getsearchparams();\n instance.emit(\"params\", params);\n });\n function mount() {\n window.addEventListener(eventname, changelistener);\n\n changelistener();\n mountcount++;\n }\n function unmount() {\n mountcount--;\n if (mountcount <= 0) {\n window.removeEventListener(eventname, changelistener);\n changelistener.cancel();\n }\n }\n\n const router: RawRouter = {\n mount,\n unmount,\n paramshref: \"hash\" === type ? gethashhref : getsearchhref,\n\n setparams: \"hash\" === type ? sethashparams : setsearchparams,\n getparams: \"hash\" === type ? gethashparams : getsearchparams,\n transformparams:\n \"hash\" === type ? transformhashparams : transformsearchparams,\n [Symbol.toStringTag]: \"search\" === type ? \"SearchRouter\" : \"HashRouter\",\n };\n\n const instance = { ...emitter, ...router } as EventEmitterTarget &\n typeof router;\n\n return instance as EventEmitterTarget & typeof router;\n}\n","//@ts-ignore\nimport { createBaseRouter } from \"../createbaserouter\";\nimport { Router } from \"../Router\";\nexport type { Router };\nexport function createHashRouter(): Router {\n return createBaseRouter(\"hash\");\n}\n","//@ts-ignore\n\nimport { createBaseRouter } from \"../createbaserouter\";\nimport { Router } from \"../Router\";\nexport type { Router };\nexport function createSearchRouter(): Router {\n return createBaseRouter(\"search\");\n}\n","import { Router } from \"../createrouter/Router\";\n\nexport function navigate(\n router: Router,\n to:\n | Record\n | ((old: Record) => Record)\n) {\n if (!to) {\n throw new TypeError(\"object,function\");\n }\n if (\"function\" === typeof to) {\n router.transformparams(to);\n return;\n }\n if (\"object\" === typeof to) {\n router.setparams(to);\n return;\n }\n throw new TypeError(\"object,function\");\n}\n","import { Router } from \"../createrouter/Router\";\r\nimport { MouseEvent } from \"react\";\r\nimport { navigate } from \"./navigate\";\r\nimport { isModifiedEvent } from \"./isModifiedEvent\";\r\n\r\nexport function createclickhandler({\r\n onClick, target, router, to,\r\n}: {\r\n onClick?: ((event: MouseEvent) => void) | undefined;\r\n target?: string | undefined;\r\n router: Router;\r\n to: Record |\r\n ((old: Record) => Record);\r\n}) {\r\n return (event: MouseEvent) => {\r\n try {\r\n if (\"function\" === typeof onClick) {\r\n onClick(event);\r\n }\r\n } catch (ex) {\r\n event.preventDefault();\r\n throw ex;\r\n }\r\n if (!event.defaultPrevented &&\r\n // onClick prevented default\r\n event.button === 0 &&\r\n // ignore everything but left clicks\r\n (!target || target === \"_self\") &&\r\n // let browser handle \"target=_blank\" etc.\r\n !isModifiedEvent(event)\r\n // ignore clicks with modifier keys\r\n ) {\r\n event.preventDefault();\r\n navigate(router, to);\r\n }\r\n };\r\n}\r\n","export function isModifiedEvent(\n event: MouseEvent | import(\"react\").MouseEvent\n) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n","import { Router } from \"../../createrouter/Router\";\nimport type {\n ComponentType,\n MouseEvent,\n forwardRef as forwardRefType,\n createElement as createElementType,\n} from \"react\";\nimport { ReactLinkComponent } from \"./ReactLinkComponent\";\nimport { createclickhandler } from \"../createclickhandler\";\nexport type { ReactLinkComponent };\nexport function createReactLink({\n router,\n forwardRef,\n createElement,\n}: {\n router: Router;\n forwardRef: typeof forwardRefType;\n createElement: typeof createElementType;\n}): ReactLinkComponent {\n return forwardRef<\n unknown,\n {\n component?: string | ComponentType;\n target?: string;\n onClick?: (event: MouseEvent) => void;\n to:\n | Record\n | ((old: Record) => Record);\n }\n >(\n (\n { component: Component = \"a\", to, onClick, children, target },\n forwardedRef\n ) => {\n if (!to) {\n throw new TypeError(\"object,function\");\n }\n if (!(\"function\" === typeof to || \"object\" === typeof to)) {\n throw new TypeError(\"object,function\");\n }\n const href: string = router.paramshref(to);\n const newclick = createclickhandler({\n onClick,\n target,\n router,\n to,\n });\n const props = {\n ref: forwardedRef,\n href,\n onClick: newclick,\n target,\n };\n return createElement(Component, { ...props }, children);\n }\n );\n}\n\n","import { RouteRecord } from \"./RouteRecord\";\n\nexport function matchRoute(\n routes: RouteRecord[],\n params: Record\n) {\n for (let route of routes) {\n if (route.params(params)) {\n return route;\n }\n }\n return undefined;\n}\n","function isrouterecord(o: any): boolean {\n return !!(o && \"object\" === typeof o && \"function\" === typeof o.params);\n}\nexport { isrouterecord };\n","import { RecordRedirect } from \"./RouteRecord\";\n\nexport function isRecordRedirect(o: any): o is RecordRedirect {\n return !!(\"function\" === typeof o?.params && o?.redirect);\n}\n","import { RecordRoute } from \"./RouteRecord\";\n\nexport function isRecordRoute(o: any): o is RecordRoute {\n return !!(\"function\" === typeof o?.params && o?.component);\n}\n","import debounce from \"lodash/debounce\";\nimport { Router } from \"../../createrouter/Router\";\nimport { useState as useStateType, useEffect as useEffectType } from \"react\";\n\nexport function createReactParamsHook({\n router,\n useState,\n useEffect,\n}: {\n router: Router;\n useState: typeof useStateType;\n useEffect: typeof useEffectType;\n}): () => Readonly> {\n return function () {\n const [params, setparams] = useState>(\n router.getparams()\n );\n useEffect(() => {\n const paramschange = debounce((p) => {\n setparams(p);\n });\n function onmount() {\n router.mount();\n router.on(\"params\", paramschange);\n }\n\n function onunmount() {\n router.unmount();\n\n router.off(\"params\", paramschange);\n paramschange.cancel();\n }\n onmount();\n\n return onunmount;\n }, []);\n return params;\n };\n}\n","import { matchRoute } from \"../../createrouter/matchRoute\";\nimport { Router } from \"../../createrouter/Router\";\nimport { isrouterecord } from \"../isrouterecord\";\nimport { navigate } from \"../navigate\";\nimport type {\n FC,\n createElement as createElementType,\n useState as useStateType,\n useEffect as useEffectType,\n ComponentType,\n} from \"react\";\nimport { RouteRecord } from \"../../createrouter\";\nimport { isRecordRedirect } from \"../../createrouter/isRecordRedirect\";\nimport { isRecordRoute } from \"../../createrouter/isRecordRoute\";\nimport { createReactParamsHook } from \"./createReactParamsHook\";\nexport { createReactView, createReactParamsHook };\nfunction createReactView({\n router,\n\n createElement,\n useState,\n useEffect,\n}: {\n router: Router;\n\n createElement: typeof createElementType;\n useState: typeof useStateType;\n useEffect: typeof useEffectType;\n}): FC<{ routes: RouteRecord[] }> {\n const useParams = createReactParamsHook({\n router,\n useState,\n useEffect,\n });\n return ({ routes }) => {\n if (!Array.isArray(routes)) {\n throw new TypeError(\"array\");\n }\n if (\n !routes.every((o) => {\n return isrouterecord(o);\n })\n ) {\n throw new TypeError('{params:\"function\"}');\n }\n\n const params = useParams();\n const currentroute = matchRoute(routes, params);\n if (isRecordRedirect(currentroute)) {\n const redirect = currentroute.redirect;\n\n navigate(router, redirect);\n }\n if (isRecordRedirect(currentroute)) {\n return null;\n }\n if (isRecordRoute(currentroute)) {\n const Component = currentroute.component as ComponentType;\n\n const children = currentroute.children;\n\n const props = currentroute.props || {};\n let oprops = Object.assign({}, props, { params });\n //@ts-ignore\n return createElement(Component, { ...oprops }, children);\n } else {\n return null;\n }\n };\n}\n","import { Router } from \"../../createrouter/Router\";\nimport type {\n resolveComponent as resolveComponentType,\n Ref,\n Component as ComponentType,\n defineComponent as defineComponentType,\n h as hType,\n} from \"@vue/runtime-dom\";\nimport { isModifiedEvent } from \"../isModifiedEvent\";\nimport { navigate } from \"../navigate\";\nimport { createclickhandler } from \"../createclickhandler\";\nexport { createVueLink };\n\nfunction createVueLink({\n router,\n resolveComponent,\n defineComponent,\n h: createElement,\n}: {\n resolveComponent: typeof resolveComponentType;\n router: Router;\n defineComponent: typeof defineComponentType;\n h: typeof hType;\n}) {\n return defineComponent<{\n component?: string | ComponentType;\n to:\n | Record\n | ((old: Record) => Record);\n onClick?: (event: MouseEvent) => void;\n target?: string;\n innerRef?: ((r: any) => void) | { value?: any };\n }>({\n inheritAttrs: false,\n\n setup(_, { slots: children, attrs }) {\n return () => {\n const {\n component: Component = \"a\",\n to,\n onClick,\n target,\n innerRef: forwardedRef,\n } = attrs;\n\n if (!to) {\n throw new TypeError(\"object,function\");\n }\n if (!(\"function\" === typeof to || \"object\" === typeof to)) {\n throw new TypeError(\"object,function\");\n }\n const href: string = router.paramshref(to as any);\n const newclick = createclickhandler({\n //@ts-ignore\n onClick,\n //@ts-ignore\n target,\n router,\n //@ts-ignore\n to,\n });\n\n const reffun =\n \"function\" === typeof forwardedRef\n ? forwardedRef\n : forwardedRef && \"object\" === typeof forwardedRef\n ? (e: any) => {\n Reflect.set(forwardedRef, \"value\", e);\n }\n : undefined;\n\n const oprops = {\n ref: reffun,\n href,\n onClick: newclick,\n target,\n };\n\n const Resolvedcomponent =\n \"string\" === typeof Component\n ? resolveComponent(Component)\n : Component;\n\n return createElement(\n //@ts-ignore\n Resolvedcomponent,\n { ...oprops },\n children\n );\n };\n },\n });\n}\n","import { ref as refType } from \"@vue/runtime-dom\";\nimport debounce from \"lodash/debounce\";\nimport { Router } from \"../../createrouter/Router\";\n\nexport function createVueParamsHook({\n router,\n ref,\n onMounted,\n onUnmounted,\n readonly,\n}: {\n readonly: typeof import(\"@vue/runtime-dom\").readonly;\n onMounted: typeof import(\"@vue/runtime-dom\").onMounted;\n router: Router;\n ref: typeof refType;\n onUnmounted: typeof import(\"@vue/runtime-dom\").onUnmounted;\n}): () => {\n readonly value: {\n readonly [x: string]: string;\n };\n} {\n return function () {\n const params = ref(router.getparams());\n const paramschange = debounce((p) => {\n params.value = p;\n });\n function onmount() {\n router.mount();\n router.on(\"params\", paramschange);\n }\n\n function onunmount() {\n router.unmount();\n\n router.off(\"params\", paramschange);\n paramschange.cancel();\n }\n onMounted(onmount);\n onUnmounted(onunmount);\n return readonly(params);\n };\n}\n","import type {\n // watch as watchType,\n Component as ComponentType,\n defineComponent as defineComponentType,\n h as hType,\n ref as refType,\n resolveComponent as resolveComponentType,\n} from \"@vue/runtime-dom\";\nimport { isRecordRedirect } from \"../../createrouter/isRecordRedirect\";\nimport { isRecordRoute } from \"../../createrouter/isRecordRoute\";\nimport { matchRoute } from \"../../createrouter/matchRoute\";\nimport { Router } from \"../../createrouter/Router\";\nimport { RouteRecord } from \"../../createrouter/RouteRecord\";\nimport { isrouterecord } from \"../isrouterecord\";\nimport { navigate } from \"../navigate\";\nimport { createVueParamsHook } from \"./createVueParamsHook\";\nexport { createVueView, createVueParamsHook };\nfunction createVueView({\n readonly,\n onMounted,\n onUnmounted,\n router,\n resolveComponent,\n defineComponent,\n h: createElement,\n ref,\n}: // watch,\n// Fragment,\n{\n readonly: typeof import(\"@vue/runtime-dom\").readonly;\n onMounted: typeof import(\"@vue/runtime-dom\").onMounted;\n onUnmounted: typeof import(\"@vue/runtime-dom\").onUnmounted;\n resolveComponent: typeof resolveComponentType;\n router: Router;\n defineComponent: typeof defineComponentType;\n h: typeof hType;\n ref: typeof refType;\n // watch: typeof watchType;\n // Fragment: typeof import(\"@vue/runtime-core\").Fragment;\n}) {\n const useParams = createVueParamsHook({\n router,\n ref,\n onMounted,\n onUnmounted,\n readonly,\n });\n return defineComponent<{ routes: RouteRecord[] }>({\n inheritAttrs: false,\n setup(_, { attrs }) {\n //attrs不是响应式对象\n const { routes } = attrs;\n if (!Array.isArray(routes)) {\n throw new TypeError(\"array\");\n }\n const params = useParams();\n return () => {\n const { routes } = attrs;\n //attrs可能属性有变化\n if (!Array.isArray(routes)) {\n throw new TypeError(\"array\");\n }\n if (\n !routes.every((o) => {\n return isrouterecord(o);\n })\n ) {\n throw new TypeError('{params:\"function\"}');\n }\n\n const currentroute = matchRoute(routes, params.value);\n if (isRecordRedirect(currentroute)) {\n const redirect = currentroute.redirect;\n\n navigate(router, redirect);\n }\n if (isRecordRedirect(currentroute)) {\n return null;\n }\n if (isRecordRoute(currentroute)) {\n const Component =\n currentroute.component as ComponentType;\n\n const children = currentroute.children;\n\n let props = currentroute.props || {};\n let oprops = Object.assign({}, props, {\n params: params.value,\n });\n let Resolvedcomponent =\n \"string\" === typeof Component\n ? resolveComponent(Component)\n : Component;\n // if (typeof Resolvedcomponent === \"object\") {\n // Resolvedcomponent = Object.assign(\n // {},\n // Resolvedcomponent\n // );\n // }\n return createElement(\n // //@ts-ignore\n // Fragment,\n // {},\n // createElement(\n // @ts-ignore\n Resolvedcomponent,\n { ...oprops },\n children\n // )\n );\n } else {\n return null;\n }\n };\n },\n });\n}\n"],"names":["toprimitive","toString","call","Symbol","toStringTag","isObject_1","value","type","freeGlobal","global","Object","freeSelf","self","root","Function","now_1","Date","now","reWhitespace","trimmedEndIndex","string","index","length","test","charAt","reTrimStart","_baseTrim","slice","replace","_Symbol","require$$0","objectProto","prototype","hasOwnProperty","nativeObjectToString","symToStringTag","undefined","_getRawTag","isOwn","tag","unmasked","e","result","getRawTag","require$$1","objectToString","baseGetTag","isObjectLike","baseTrim","isObject","isSymbol","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","toNumber","other","valueOf","isBinary","nativeMax","Math","max","nativeMin","min","debounce_1","func","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","apply","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","arguments","this","clearTimeout","cancel","flush","gethashparams","location","hash","fromEntries","URLSearchParams","gethashhref","to","params","url","URL","href","String","sethashparams","opt","oldhash","history","pushState","window","dispatchEvent","Event","transformhashparams","getsearchparams","search","searchParams","getsearchhref","setsearchparams","oldsearch","transformsearchparams","createBaseRouter","mountcount","eventname","emitter","EventEmitterTargetClass","changelistener","debounce","instance","emit","mount","addEventListener","unmount","removeEventListener","paramshref","setparams","getparams","transformparams","createHashRouter","createSearchRouter","navigate","router","createclickhandler","onClick","target","event","ex","preventDefault","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","isModifiedEvent","createReactLink","forwardRef","createElement","component","Component","children","forwardedRef","newclick","ref","matchRoute","routes","route","isrouterecord","o","isRecordRedirect","redirect","isRecordRoute","createReactParamsHook","useState","useEffect","paramschange","p","on","off","createReactView","useParams","Array","isArray","every","currentroute","props","oprops","assign","createVueLink","resolveComponent","defineComponent","h","inheritAttrs","setup","_","slots","attrs","innerRef","Reflect","set","Resolvedcomponent","createVueParamsHook","onMounted","onUnmounted","readonly","createVueView"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.mjs","sources":["../node_modules/@masx200/event-emitter-target/dist/index.js","../node_modules/lodash/isObject.js","../node_modules/lodash/_root.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/now.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/toNumber.js","../node_modules/lodash/debounce.js","../src/createrouter/hashrouter/gethashparams.ts","../src/createrouter/hashrouter/gethashhref.ts","../src/createrouter/hashrouter/sethashparams.ts","../src/createrouter/hashrouter/transformhashparams.ts","../src/createrouter/searchrouter/getsearchparams.ts","../src/createrouter/searchrouter/getsearchhref.ts","../src/createrouter/searchrouter/setsearchparams.ts","../src/createrouter/searchrouter/transformsearchparams.ts","../src/createrouter/createbaserouter.ts","../src/createrouter/hashrouter/createhashrouter.ts","../src/createrouter/searchrouter/createsearchrouter.ts","../src/components/navigate.ts","../src/components/createclickhandler.tsx","../src/components/isModifiedEvent.tsx","../src/components/react/create-react-link.tsx","../src/createrouter/matchroute.ts","../src/components/isrouterecord.ts","../src/createrouter/isRecordRedirect.ts","../src/createrouter/isRecordRoute.ts","../src/components/react/createReactParamsHook.tsx","../src/components/react/create-react-view.tsx","../src/components/vue/create-vue-link.tsx","../src/components/vue/createVueParamsHook.tsx","../src/components/vue/create-vue-view.tsx"],"sourcesContent":["function t() {\n return {}.toString.call({\n [Symbol.toStringTag]: \"EventEmitterTarget\"\n });\n}\n\nfunction e(t) {\n if (\"string\" != typeof t && \"symbol\" != typeof t) throw new TypeError(\" EVENTNAME expected: string | symbol;but invalid :\" + t);\n}\n\nfunction n(t) {\n if (\"function\" != typeof t) throw new TypeError(\" EVENTLISTENER expected: (event?: any) => void;but invalid:\" + t);\n}\n\nfunction r() {\n const r = new Map, i = new WeakMap;\n function o(t) {\n let e = r.get(t);\n return e || (e = new Set, r.set(t, e)), e;\n }\n function c(t) {\n if (e(t), r.has(t)) {\n o(t).clear();\n }\n }\n function s(t, n) {\n if (e(t), r.has(t)) {\n o(t).forEach((t => {\n Promise.resolve().then((() => {\n t(n);\n }));\n }));\n }\n }\n function u(t, r) {\n e(t), n(r);\n o(t).add(r);\n }\n function f(t, e) {\n o(t).delete(e);\n }\n function a(t, r) {\n e(t), n(r), f(t, r), function(t, e) {\n const n = o(t);\n let r = i.get(e);\n r && n.delete(r);\n }(t, r);\n }\n function l() {\n return [ ...r ].map((([t, e]) => [ t, [ ...e ] ]))[Symbol.iterator]();\n }\n return {\n [Symbol.toPrimitive]: t,\n [Symbol.toStringTag]: \"EventEmitterTarget\",\n [Symbol.iterator]: l,\n entries: l,\n listenerCount: function(t) {\n if (e(t), r.has(t)) {\n return o(t).size;\n }\n return 0;\n },\n clear: c,\n removeAllListeners: c,\n on: u,\n addListener: u,\n off: a,\n removeListener: a,\n once: function(t, r) {\n e(t), n(r);\n let o = !1, c = i.get(r);\n if (!c) {\n const e = n => {\n f(t, e), f(t, r), o || (o = !0, r(n));\n };\n c = e, i.set(r, c);\n }\n f(t, r), u(t, c);\n },\n emit: s,\n dispatch: s,\n eventNames: function() {\n return [ ...r.keys() ];\n },\n listeners: function(t) {\n if (e(t), r.has(t)) {\n return [ ...o(t) ];\n }\n return [];\n }\n };\n}\n\nconst i = (t => {\n var e = Symbol(), n = new Function(\"return async()=>{}\")()();\n function i() {\n const t = r();\n return this && this instanceof i ? (Object.assign(this, t), this) : Reflect.construct(i, []);\n }\n return Reflect.set(i, e, n), i;\n})();\n\nexport default i;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NyYy90b3ByaW1pdGl2ZS50cyIsIi4uL3NyYy90b1N0cmluZ1RhZy50cyIsIi4uL3NyYy9hc3NlcnRFVkVOVE5BTUUudHMiLCIuLi9zcmMvYXNzZXJ0RVZFTlRMSVNURU5FUi50cyIsIi4uL3NyYy9jcmVhdGVFdmVudEVtaXR0ZXJUYXJnZXQudHMiLCIuLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdG9TdHJpbmdUYWcgfSBmcm9tIFwiLi90b1N0cmluZ1RhZ1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gdG9wcmltaXRpdmUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4ge30udG9TdHJpbmcuY2FsbCh7IFtTeW1ib2wudG9TdHJpbmdUYWddOiB0b1N0cmluZ1RhZyB9KTtcbn1cbiIsImV4cG9ydCBjb25zdCB0b1N0cmluZ1RhZyA9IFwiRXZlbnRFbWl0dGVyVGFyZ2V0XCI7XG4iLCJpbXBvcnQgeyBFVkVOVE5BTUUgfSBmcm9tIFwiLi9pbmRleFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0RVZFTlROQU1FKG5hbWU6IGFueSk6IGFzc2VydHMgbmFtZSBpcyBFVkVOVE5BTUUge1xuICAgIGlmIChcInN0cmluZ1wiICE9PSB0eXBlb2YgbmFtZSAmJiBcInN5bWJvbFwiICE9PSB0eXBlb2YgbmFtZSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgICAgXCIgRVZFTlROQU1FIGV4cGVjdGVkOiBzdHJpbmcgfCBzeW1ib2w7YnV0IGludmFsaWQgOlwiICsgbmFtZVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsImltcG9ydCB7IEVWRU5UTElTVEVORVIgfSBmcm9tIFwiLi9pbmRleFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0RVZFTlRMSVNURU5FUihcbiAgICBjYWxsYmFjazogYW55XG4pOiBhc3NlcnRzIGNhbGxiYWNrIGlzIEVWRU5UTElTVEVORVIge1xuICAgIGlmIChcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBjYWxsYmFjaykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgICAgXCIgRVZFTlRMSVNURU5FUiBleHBlY3RlZDogKGV2ZW50PzogYW55KSA9PiB2b2lkO2J1dCBpbnZhbGlkOlwiICtcbiAgICAgICAgICAgICAgICBjYWxsYmFja1xuICAgICAgICApO1xuICAgIH1cbn1cbiIsImltcG9ydCB7IEVWRU5UTkFNRSwgRVZFTlRMSVNURU5FUiB9IGZyb20gXCIuL2luZGV4XCI7XG5pbXBvcnQgeyB0b3ByaW1pdGl2ZSB9IGZyb20gXCIuL3RvcHJpbWl0aXZlXCI7XG5pbXBvcnQgeyB0b1N0cmluZ1RhZyB9IGZyb20gXCIuL3RvU3RyaW5nVGFnXCI7XG5pbXBvcnQgeyBhc3NlcnRFVkVOVE5BTUUgfSBmcm9tIFwiLi9hc3NlcnRFVkVOVE5BTUVcIjtcbmltcG9ydCB7IGFzc2VydEVWRU5UTElTVEVORVIgfSBmcm9tIFwiLi9hc3NlcnRFVkVOVExJU1RFTkVSXCI7XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRXZlbnRFbWl0dGVyVGFyZ2V0KCkge1xuICAgIGNvbnN0IOebkeWQrOWZqOWbnuiwg+aYoOWwhCA9IG5ldyBNYXA8RVZFTlROQU1FLCBTZXQ8RVZFTlRMSVNURU5FUj4+KCk7XG4gICAgY29uc3Qg5rqQ5Zue6LCD5Yiw5LiA5qyh5YyF6KOFID0gbmV3IFdlYWtNYXA8RVZFTlRMSVNURU5FUiwgRVZFTlRMSVNURU5FUj4oKTtcbiAgICBmdW5jdGlvbiDojrflj5bnm5HlkKzlmajpm4blkIgobmFtZTogRVZFTlROQU1FKTogU2V0PEVWRU5UTElTVEVORVI+IHtcbiAgICAgICAgbGV0IOebkeWQrOWZqOmbhuWQiDogU2V0PEVWRU5UTElTVEVORVI+IHwgdW5kZWZpbmVkID1cbiAgICAgICAgICAgIOebkeWQrOWZqOWbnuiwg+aYoOWwhC5nZXQobmFtZSk7XG4gICAgICAgIGlmICgh55uR5ZCs5Zmo6ZuG5ZCIKSB7XG4gICAgICAgICAgICDnm5HlkKzlmajpm4blkIggPSBuZXcgU2V0KCk7XG4gICAgICAgICAgICDnm5HlkKzlmajlm57osIPmmKDlsIQuc2V0KG5hbWUsIOebkeWQrOWZqOmbhuWQiCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIOebkeWQrOWZqOmbhuWQiDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjbGVhcihuYW1lOiBFVkVOVE5BTUUpIHtcbiAgICAgICAgYXNzZXJ0RVZFTlROQU1FKG5hbWUpO1xuICAgICAgICBpZiAo55uR5ZCs5Zmo5Zue6LCD5pig5bCELmhhcyhuYW1lKSkge1xuICAgICAgICAgICAgY29uc3Qg55uR5ZCs5Zmo6ZuG5ZCIID0g6I635Y+W55uR5ZCs5Zmo6ZuG5ZCIKG5hbWUpO1xuICAgICAgICAgICAg55uR5ZCs5Zmo6ZuG5ZCILmNsZWFyKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZW1pdChuYW1lOiBFVkVOVE5BTUUsIGV2ZW50PzogYW55KSB7XG4gICAgICAgIGFzc2VydEVWRU5UTkFNRShuYW1lKTtcbiAgICAgICAgaWYgKOebkeWQrOWZqOWbnuiwg+aYoOWwhC5oYXMobmFtZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IOebkeWQrOWZqOmbhuWQiCA9IOiOt+WPluebkeWQrOWZqOmbhuWQiChuYW1lKTtcbiAgICAgICAgICAgIOebkeWQrOWZqOmbhuWQiC5mb3JFYWNoKChsaXN0ZW5lcikgPT4ge1xuICAgICAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lcihldmVudCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBvbmNlKG5hbWU6IEVWRU5UTkFNRSwgY2FsbGJhY2s6IEVWRU5UTElTVEVORVIpIHtcbiAgICAgICAgYXNzZXJ0RVZFTlROQU1FKG5hbWUpO1xuICAgICAgICBhc3NlcnRFVkVOVExJU1RFTkVSKGNhbGxiYWNrKTtcbiAgICAgICAgbGV0IGZpcmVkID0gZmFsc2U7XG4gICAgICAgIGxldCB3cmFwcGVkID0g5rqQ5Zue6LCD5Yiw5LiA5qyh5YyF6KOFLmdldChjYWxsYmFjayk7XG4gICAgICAgIGlmICghd3JhcHBlZCkge1xuICAgICAgICAgICAgY29uc3Qg5LiA5qyh5YyF6KOFID0gKGV2ZW50PzogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgb2ZmcmF3KG5hbWUsIOS4gOasoeWMheijhSk7XG4gICAgICAgICAgICAgICAgb2ZmcmF3KG5hbWUsIGNhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICBpZiAoIWZpcmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpcmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3cmFwcGVkID0g5LiA5qyh5YyF6KOFO1xuICAgICAgICAgICAg5rqQ5Zue6LCD5Yiw5LiA5qyh5YyF6KOFLnNldChjYWxsYmFjaywgd3JhcHBlZCk7XG4gICAgICAgIH1cbiAgICAgICAgb2ZmcmF3KG5hbWUsIGNhbGxiYWNrKTtcbiAgICAgICAgb24obmFtZSwgd3JhcHBlZCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG9uKG5hbWU6IEVWRU5UTkFNRSwgY2FsbGJhY2s6IEVWRU5UTElTVEVORVIpIHtcbiAgICAgICAgYXNzZXJ0RVZFTlROQU1FKG5hbWUpO1xuICAgICAgICBhc3NlcnRFVkVOVExJU1RFTkVSKGNhbGxiYWNrKTtcbiAgICAgICAgY29uc3Qg55uR5ZCs5Zmo6ZuG5ZCIID0g6I635Y+W55uR5ZCs5Zmo6ZuG5ZCIKG5hbWUpO1xuICAgICAgICDnm5HlkKzlmajpm4blkIguYWRkKGNhbGxiYWNrKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gb2ZmcmF3KG5hbWU6IEVWRU5UTkFNRSwgY2FsbGJhY2s6IEVWRU5UTElTVEVORVIpIHtcbiAgICAgICAgY29uc3Qg55uR5ZCs5Zmo6ZuG5ZCIID0g6I635Y+W55uR5ZCs5Zmo6ZuG5ZCIKG5hbWUpO1xuICAgICAgICDnm5HlkKzlmajpm4blkIguZGVsZXRlKGNhbGxiYWNrKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gb2Zmd3JhcChuYW1lOiBFVkVOVE5BTUUsIGNhbGxiYWNrOiBFVkVOVExJU1RFTkVSKSB7XG4gICAgICAgIGNvbnN0IOebkeWQrOWZqOmbhuWQiCA9IOiOt+WPluebkeWQrOWZqOmbhuWQiChuYW1lKTtcbiAgICAgICAgbGV0IOS4gOasoeWMheijhSA9IOa6kOWbnuiwg+WIsOS4gOasoeWMheijhS5nZXQoY2FsbGJhY2spO1xuICAgICAgICBpZiAo5LiA5qyh5YyF6KOFKSB7XG4gICAgICAgICAgICDnm5HlkKzlmajpm4blkIguZGVsZXRlKOS4gOasoeWMheijhSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gb2ZmKG5hbWU6IEVWRU5UTkFNRSwgY2FsbGJhY2s6IEVWRU5UTElTVEVORVIpIHtcbiAgICAgICAgYXNzZXJ0RVZFTlROQU1FKG5hbWUpO1xuICAgICAgICBhc3NlcnRFVkVOVExJU1RFTkVSKGNhbGxiYWNrKTtcblxuICAgICAgICBvZmZyYXcobmFtZSwgY2FsbGJhY2spO1xuICAgICAgICBvZmZ3cmFwKG5hbWUsIGNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBldmVudE5hbWVzKCk6IEVWRU5UTkFNRVtdIHtcbiAgICAgICAgcmV0dXJuIFsuLi7nm5HlkKzlmajlm57osIPmmKDlsIQua2V5cygpXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbGlzdGVuZXJzKG5hbWU6IEVWRU5UTkFNRSk6IEVWRU5UTElTVEVORVJbXSB7XG4gICAgICAgIGFzc2VydEVWRU5UTkFNRShuYW1lKTtcbiAgICAgICAgaWYgKOebkeWQrOWZqOWbnuiwg+aYoOWwhC5oYXMobmFtZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IOebkeWQrOWZqOmbhuWQiCA9IOiOt+WPluebkeWQrOWZqOmbhuWQiChuYW1lKTtcbiAgICAgICAgICAgIHJldHVybiBbLi4u55uR5ZCs5Zmo6ZuG5ZCIXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBsaXN0ZW5lckNvdW50KG5hbWU6IEVWRU5UTkFNRSk6IG51bWJlciB7XG4gICAgICAgIGFzc2VydEVWRU5UTkFNRShuYW1lKTtcbiAgICAgICAgaWYgKOebkeWQrOWZqOWbnuiwg+aYoOWwhC5oYXMobmFtZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IOebkeWQrOWZqOmbhuWQiCA9IOiOt+WPluebkeWQrOWZqOmbhuWQiChuYW1lKTtcbiAgICAgICAgICAgIHJldHVybiDnm5HlkKzlmajpm4blkIguc2l6ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXRlcmF0b3IoKTogSXRlcmFibGVJdGVyYXRvcjxbRVZFTlROQU1FLCBFVkVOVExJU1RFTkVSW11dPiB7XG4gICAgICAgIGxldCByZXN1bHRhcnI6IEFycmF5PFtFVkVOVE5BTUUsIEVWRU5UTElTVEVORVJbXV0+ID0gW1xuICAgICAgICAgICAgLi4u55uR5ZCs5Zmo5Zue6LCD5pig5bCELFxuICAgICAgICBdLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gW2tleSwgWy4uLnZhbHVlXV0gYXMgW0VWRU5UTkFNRSwgRVZFTlRMSVNURU5FUltdXTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdGFycltTeW1ib2wuaXRlcmF0b3JdKCk7XG4gICAgfVxuICAgIGNvbnN0IGV2ZW50dGFyZ2V0ID0ge1xuICAgICAgICBbU3ltYm9sLnRvUHJpbWl0aXZlXTogdG9wcmltaXRpdmUsXG5cbiAgICAgICAgW1N5bWJvbC50b1N0cmluZ1RhZ106IHRvU3RyaW5nVGFnLFxuICAgICAgICBbU3ltYm9sLml0ZXJhdG9yXTogaXRlcmF0b3IsXG4gICAgICAgIGVudHJpZXM6IGl0ZXJhdG9yLFxuICAgICAgICBsaXN0ZW5lckNvdW50LFxuICAgICAgICBjbGVhcixcbiAgICAgICAgcmVtb3ZlQWxsTGlzdGVuZXJzOiBjbGVhcixcbiAgICAgICAgb24sXG4gICAgICAgIGFkZExpc3RlbmVyOiBvbixcbiAgICAgICAgb2ZmLFxuICAgICAgICByZW1vdmVMaXN0ZW5lcjogb2ZmLFxuICAgICAgICBvbmNlLFxuICAgICAgICBlbWl0LFxuICAgICAgICBkaXNwYXRjaDogZW1pdCxcbiAgICAgICAgZXZlbnROYW1lcyxcbiAgICAgICAgbGlzdGVuZXJzLFxuICAgIH07XG4gICAgcmV0dXJuIGV2ZW50dGFyZ2V0O1xufVxuIiwiaW1wb3J0IHsgY3JlYXRlRXZlbnRFbWl0dGVyVGFyZ2V0IH0gZnJvbSBcIi4vY3JlYXRlRXZlbnRFbWl0dGVyVGFyZ2V0XCI7XG5cbmV4cG9ydCB0eXBlIEV2ZW50RW1pdHRlclRhcmdldCA9IFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZUV2ZW50RW1pdHRlclRhcmdldD47XG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50RW1pdHRlclRhcmdldENvbnN0cnVjdG9yIHtcbiAgICBuZXcgKCk6IEV2ZW50RW1pdHRlclRhcmdldDtcbiAgICAoKTogRXZlbnRFbWl0dGVyVGFyZ2V0O1xufVxuY29uc3QgRXZlbnRFbWl0dGVyVGFyZ2V0Q2xhc3M6IEV2ZW50RW1pdHRlclRhcmdldENvbnN0cnVjdG9yID0gKChub29wKSA9PiB7XG4gICAgdmFyIGEgPSBub29wKCk7XG4gICAgdmFyIGIgPSBuZXcgRnVuY3Rpb24oXCJyZXR1cm4gYXN5bmMoKT0+e31cIikoKSgpO1xuXG4gICAgZnVuY3Rpb24gRXZlbnRFbWl0dGVyVGFyZ2V0Q2xhc3ModGhpczogYW55KTogRXZlbnRFbWl0dGVyVGFyZ2V0IHtcbiAgICAgICAgY29uc3QgZXZlbnRlbWl0dGVydGFyZ2V0ID0gY3JlYXRlRXZlbnRFbWl0dGVyVGFyZ2V0KCk7XG4gICAgICAgIGlmICh0aGlzICYmIHRoaXMgaW5zdGFuY2VvZiBFdmVudEVtaXR0ZXJUYXJnZXRDbGFzcykge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBldmVudGVtaXR0ZXJ0YXJnZXQpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMgYXMgRXZlbnRFbWl0dGVyVGFyZ2V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3QuY29uc3RydWN0KEV2ZW50RW1pdHRlclRhcmdldENsYXNzLCBbXSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgUmVmbGVjdC5zZXQoRXZlbnRFbWl0dGVyVGFyZ2V0Q2xhc3MsIGEsIGIpO1xuXG4gICAgcmV0dXJuIEV2ZW50RW1pdHRlclRhcmdldENsYXNzIGFzIEV2ZW50RW1pdHRlclRhcmdldENvbnN0cnVjdG9yO1xufSkoU3ltYm9sKTtcbmV4cG9ydCB0eXBlIEVWRU5UTkFNRSA9IHN0cmluZyB8IHN5bWJvbDtcbmV4cG9ydCB0eXBlIEVWRU5UTElTVEVORVIgPSAoZXZlbnQ/OiBhbnkpID0+IHZvaWQ7XG5leHBvcnQgZGVmYXVsdCBFdmVudEVtaXR0ZXJUYXJnZXRDbGFzcztcbiJdLCJuYW1lcyI6WyJ0b3ByaW1pdGl2ZSIsInRvU3RyaW5nIiwiY2FsbCIsIlN5bWJvbCIsInRvU3RyaW5nVGFnIiwiYXNzZXJ0RVZFTlROQU1FIiwibmFtZSIsIlR5cGVFcnJvciIsImFzc2VydEVWRU5UTElTVEVORVIiLCJjYWxsYmFjayIsImNyZWF0ZUV2ZW50RW1pdHRlclRhcmdldCIsIuebkeWQrOWZqOWbnuiwg+aYoOWwhCIsIk1hcCIsIua6kOWbnuiwg+WIsOS4gOasoeWMheijhSIsIldlYWtNYXAiLCLojrflj5bnm5HlkKzlmajpm4blkIgiLCLnm5HlkKzlmajpm4blkIgiLCJnZXQiLCJTZXQiLCJzZXQiLCJjbGVhciIsImhhcyIsImVtaXQiLCJldmVudCIsImZvckVhY2giLCJsaXN0ZW5lciIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsIm9uIiwiYWRkIiwib2ZmcmF3IiwiZGVsZXRlIiwib2ZmIiwi5LiA5qyh5YyF6KOFIiwib2Zmd3JhcCIsIml0ZXJhdG9yIiwibWFwIiwia2V5IiwidmFsdWUiLCJ0b1ByaW1pdGl2ZSIsImVudHJpZXMiLCJsaXN0ZW5lckNvdW50Iiwic2l6ZSIsInJlbW92ZUFsbExpc3RlbmVycyIsImFkZExpc3RlbmVyIiwicmVtb3ZlTGlzdGVuZXIiLCJvbmNlIiwiZmlyZWQiLCJ3cmFwcGVkIiwiZGlzcGF0Y2giLCJldmVudE5hbWVzIiwia2V5cyIsImxpc3RlbmVycyIsIkV2ZW50RW1pdHRlclRhcmdldENsYXNzIiwibm9vcCIsImEiLCJiIiwiRnVuY3Rpb24iLCJldmVudGVtaXR0ZXJ0YXJnZXQiLCJ0aGlzIiwiT2JqZWN0IiwiYXNzaWduIiwiUmVmbGVjdCIsImNvbnN0cnVjdCJdLCJtYXBwaW5ncyI6IlNBRWdCQTtXQUNMLEdBQUdDLFNBQVNDLEtBQUs7U0FBR0MsT0FBT0MsY0NIWDs7OztTQ0VYQyxFQUFnQkM7UUFDeEIsbUJBQW9CQSxLQUFRLG1CQUFvQkEsU0FDMUMsSUFBSUMsVUFDTix1REFBdUREOzs7U0NIbkRFLEVBQ1pDO1FBRUkscUJBQXNCQSxTQUNoQixJQUFJRixVQUNOLGdFQUNJRTs7O1NDSEFDO1VBQ05DLElBQVUsSUFBSUMsS0FDZEMsSUFBVyxJQUFJQzthQUNaQyxFQUFRVDtZQUNUVSxJQUNBTCxFQUFRTSxJQUFJWDtlQUNYVSxNQUNEQSxJQUFRLElBQUlFLEtBQ1pQLEVBQVFRLElBQUliLEdBQU1VLEtBRWZBOzthQUdGSSxFQUFNZDtZQUNYRCxFQUFnQkMsSUFDWkssRUFBUVUsSUFBSWYsSUFBTztZQUNMUyxFQUFRVCxHQUNoQmM7OzthQUdMRSxFQUFLaEIsR0FBaUJpQjtZQUMzQmxCLEVBQWdCQyxJQUNaSyxFQUFRVSxJQUFJZixJQUFPO1lBQ0xTLEVBQVFULEdBQ2hCa0IsU0FBU0M7Z0JBQ1hDLFFBQVFDLFVBQVVDLE1BQUs7b0JBQ25CSCxFQUFTRjs7Ozs7YUF5QmhCTSxFQUFHdkIsR0FBaUJHO1FBQ3pCSixFQUFnQkMsSUFDaEJFLEVBQW9CQztRQUNOTSxFQUFRVCxHQUNoQndCLElBQUlyQjs7YUFFTHNCLEVBQU96QixHQUFpQkc7UUFDZk0sRUFBUVQsR0FDaEIwQixPQUFPdkI7O2FBU1J3QixFQUFJM0IsR0FBaUJHO1FBQzFCSixFQUFnQkMsSUFDaEJFLEVBQW9CQyxJQUVwQnNCLEVBQU96QixHQUFNRyxhQVhBSCxHQUFpQkc7a0JBQ3hCTyxJQUFRRCxFQUFRVDtnQkFDbEI0QixJQUFPckIsRUFBU0ksSUFBSVI7WUFDcEJ5QixLQUNBbEIsRUFBTWdCLE9BQU9FO1NBUWpCQyxDQUFRN0IsR0FBTUc7O2FBeUJUMkI7ZUFDZ0QsS0FDOUN6QixJQUNMMEIsS0FBSSxFQUFFQyxHQUFLQyxPQUNGLEVBQUNELEdBQUssS0FBSUMsUUFHSnBDLE9BQU9pQzs7V0FFUjtTQUNmakMsT0FBT3FDLGNBQWN4QztTQUVyQkcsT0FBT0MsY0huSFc7U0dvSGxCRCxPQUFPaUMsV0FBV0E7UUFDbkJLLFNBQVNMO1FBQ1RNLHdCQXpCbUJwQztnQkFDbkJELEVBQWdCQyxJQUNaSyxFQUFRVSxJQUFJZixJQUFPO3VCQUNMUyxFQUFRVCxHQUNUcUM7O21CQUVOOztRQW9CWHZCLE9BQUFBO1FBQ0F3QixvQkFBb0J4QjtRQUNwQlMsSUFBQUE7UUFDQWdCLGFBQWFoQjtRQUNiSSxLQUFBQTtRQUNBYSxnQkFBZ0JiO1FBQ2hCYyxlQXpGVXpDLEdBQWlCRztZQUMzQkosRUFBZ0JDLElBQ2hCRSxFQUFvQkM7Z0JBQ2hCdUMsS0FBUSxHQUNSQyxJQUFVcEMsRUFBU0ksSUFBSVI7aUJBQ3RCd0MsR0FBUztzQkFDSmYsSUFBUVg7b0JBQ1ZRLEVBQU96QixHQUFNNEIsSUFDYkgsRUFBT3pCLEdBQU1HLElBQ1J1QyxNQUNEQSxLQUFRLEdBQ1J2QyxFQUFTYzs7Z0JBR2pCMEIsSUFBVWYsR0FDVnJCLEVBQVNNLElBQUlWLEdBQVV3Qzs7WUFFM0JsQixFQUFPekIsR0FBTUcsSUFDYm9CLEVBQUd2QixHQUFNMkM7O1FBd0VUM0IsTUFBQUE7UUFDQTRCLFVBQVU1QjtRQUNWNkI7bUJBOUNPLEtBQUl4QyxFQUFReUM7O1FBK0NuQkMsb0JBN0NlL0M7Z0JBQ2ZELEVBQWdCQyxJQUNaSyxFQUFRVSxJQUFJZixJQUFPO3VCQUVaLEtBRE9TLEVBQVFUOzttQkFHZjs7Ozs7TUNuRmJnRCxJQUF5RCxDQUFFQztRQUN6REMsSUFlTHJELFVBZEtzRCxJQUFJLElBQUlDLFNBQVMscUJBQWIsRUFBQTthQUVDSjtjQUNDSyxJQUFxQmpEO2VBQ3ZCa0QsUUFBUUEsZ0JBQWdCTixLQUN4Qk8sT0FBT0MsT0FBT0YsTUFBTUQsSUFDYkMsUUFFQUcsUUFBUUMsVUFBVVYsR0FBeUI7O1dBRzFEUyxRQUFRNUMsSUFBSW1DLEdBQXlCRSxHQUFHQyxJQUVqQ0g7RUFmb0Q7OyJ9\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 != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var freeGlobal = require('./_freeGlobal');\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\nmodule.exports = root;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var root = require('./_root');\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\nmodule.exports = now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\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 nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\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 nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\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) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\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 != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\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/**\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 = baseTrim(value);\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 = toNumber;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\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 * 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 timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\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 clearTimeout(timerId);\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\nmodule.exports = debounce;\n","export function gethashparams() {\n return (\n (location.hash &&\n Object.fromEntries(new URLSearchParams(location.hash.slice(1)))) ||\n {}\n );\n}\n","//@ts-ignore\nimport { gethashparams } from \"./gethashparams.ts\";\n\nexport function gethashhref(\n to:\n | Record\n | ((old: Record) => Record)\n): string {\n if (!to) {\n throw new TypeError(\"object,function\");\n }\n let params: {\n [k: string]: string;\n } = gethashparams();\n let url = new URL(location.href);\n\n if (\"function\" === typeof to) {\n params = to(params);\n url.hash = String(new URLSearchParams({ ...to }));\n return url.href;\n }\n if (\"object\" === typeof to) {\n params = to;\n url.hash = String(new URLSearchParams({ ...to }));\n return url.href;\n }\n throw new TypeError(\"object,function\");\n}\n","export function sethashparams(opt: Record) {\n const oldhash = location.hash;\n let url = new URL(location.href);\n\n url.hash = String(new URLSearchParams({ ...opt }));\n\n if (oldhash === url.hash) {\n return;\n }\n history.pushState({}, \"\", url.href);\n\n window.dispatchEvent(new Event(\"hashchange\"));\n}\n","//@ts-ignore\nimport { gethashparams } from \"./gethashparams.ts\"; //@ts-ignore\nimport { sethashparams } from \"./sethashparams.ts\";\nexport function transformhashparams(\n opt: (old: Record) => Record\n) {\n sethashparams(opt(gethashparams()));\n}\n","export function getsearchparams() {\n return (\n (location.search &&\n Object.fromEntries(new URL(location.href).searchParams)) ||\n {}\n );\n}\n","//@ts-ignore\nimport { getsearchparams } from \"./getsearchparams.ts\";\n\nexport function getsearchhref(\n to:\n | Record\n | ((old: Record) => Record)\n): string {\n if (!to) {\n throw new TypeError(\"object,function\");\n }\n let params: {\n [k: string]: string;\n } = getsearchparams();\n let url = new URL(location.href);\n\n if (\"function\" === typeof to) {\n params = to(params);\n url.search = String(new URLSearchParams({ ...to }));\n return url.href;\n }\n if (\"object\" === typeof to) {\n params = to;\n url.search = String(new URLSearchParams({ ...to }));\n return url.href;\n }\n throw new TypeError(\"object,function\");\n}\n","export function setsearchparams(opt: Record) {\n const oldsearch = location.search;\n let url = new URL(location.href);\n\n url.search = String(new URLSearchParams({ ...opt }));\n\n if (oldsearch === url.search) {\n return;\n }\n history.pushState({}, \"\", url.href);\n\n window.dispatchEvent(new Event(\"popstate\"));\n}\n","//@ts-ignore\nimport { getsearchparams } from \"./getsearchparams.ts\"; //@ts-ignore\nimport { setsearchparams } from \"./setsearchparams.ts\";\nexport function transformsearchparams(\n opt: (old: Record) => Record\n) {\n setsearchparams(opt(getsearchparams()));\n}\n","//@ts-ignore\n\nimport EventEmitterTargetClass, {\n EventEmitterTarget,\n} from \"@masx200/event-emitter-target\";\n//@ts-ignore\nimport debounce from \"lodash/debounce\";\n//@ts-ignore\nimport { gethashhref } from \"./hashrouter/gethashhref\";\n//@ts-ignore\nimport { gethashparams } from \"./hashrouter/gethashparams\";\n//@ts-ignore\nimport { sethashparams } from \"./hashrouter/sethashparams\";\n//@ts-ignore\nimport { transformhashparams } from \"./hashrouter/transformhashparams\";\nimport { RawRouter } from \"./Router\";\n//@ts-ignore\nimport { getsearchhref } from \"./searchrouter/getsearchhref\";\n//@ts-ignore\nimport { getsearchparams } from \"./searchrouter/getsearchparams\"; //\n//@ts-ignore\nimport { setsearchparams } from \"./searchrouter/setsearchparams\"; //@ts-ignore\nimport { transformsearchparams } from \"./searchrouter/transformsearchparams\";\nexport function createBaseRouter(\n type: \"search\" | \"hash\"\n): EventEmitterTarget & RawRouter {\n let mountcount = 0;\n const eventname = \"search\" === type ? \"popstate\" : \"hashchange\";\n\n const emitter: EventEmitterTarget = EventEmitterTargetClass();\n\n const changelistener = debounce(() => {\n const params = \"hash\" === type ? gethashparams() : getsearchparams();\n instance.emit(\"params\", params);\n });\n function mount() {\n window.addEventListener(eventname, changelistener);\n\n changelistener();\n mountcount++;\n }\n function unmount() {\n mountcount--;\n if (mountcount <= 0) {\n window.removeEventListener(eventname, changelistener);\n changelistener.cancel();\n instance.removeAllListeners(\"params\");\n }\n }\n\n const router: RawRouter = {\n mount,\n unmount,\n paramshref: \"hash\" === type ? gethashhref : getsearchhref,\n\n setparams: \"hash\" === type ? sethashparams : setsearchparams,\n getparams: \"hash\" === type ? gethashparams : getsearchparams,\n transformparams:\n \"hash\" === type ? transformhashparams : transformsearchparams,\n [Symbol.toStringTag]: \"search\" === type ? \"SearchRouter\" : \"HashRouter\",\n };\n\n const instance = { ...emitter, ...router } as EventEmitterTarget &\n typeof router;\n\n return instance as EventEmitterTarget & typeof router;\n}\n","//@ts-ignore\nimport { createBaseRouter } from \"../createbaserouter\";\nimport { Router } from \"../Router\";\nexport type { Router };\nexport function createHashRouter(): Router {\n return createBaseRouter(\"hash\");\n}\n","//@ts-ignore\n\nimport { createBaseRouter } from \"../createbaserouter\";\nimport { Router } from \"../Router\";\nexport type { Router };\nexport function createSearchRouter(): Router {\n return createBaseRouter(\"search\");\n}\n","import { Router } from \"../createrouter/Router\";\n\nexport function navigate(\n router: Router,\n to:\n | Record\n | ((old: Record) => Record)\n) {\n if (!to) {\n throw new TypeError(\"object,function\");\n }\n if (\"function\" === typeof to) {\n router.transformparams(to);\n return;\n }\n if (\"object\" === typeof to) {\n router.setparams(to);\n return;\n }\n throw new TypeError(\"object,function\");\n}\n","import { Router } from \"../createrouter/Router\";\nimport { MouseEvent } from \"react\";\nimport { navigate } from \"./navigate\";\nimport { isModifiedEvent } from \"./isModifiedEvent\";\n\nexport function createclickhandler({\n onClick,\n target,\n router,\n to,\n}: {\n onClick?: ((event: MouseEvent) => void) | undefined;\n target?: string | undefined;\n router: Router;\n to:\n | Record\n | ((old: Record) => Record);\n}) {\n return (event: MouseEvent) => {\n try {\n if (\"function\" === typeof onClick) {\n onClick(event);\n }\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n if (\n !event.defaultPrevented &&\n // onClick prevented default\n event.button === 0 &&\n // ignore everything but left clicks\n (!target || target === \"_self\") &&\n // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event)\n // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate(router, to);\n }\n };\n}\n","export function isModifiedEvent(\n event: MouseEvent | import(\"react\").MouseEvent\n) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n","import { Router } from \"../../createrouter/Router\";\nimport type {\n ComponentType,\n MouseEvent,\n forwardRef as forwardRefType,\n createElement as createElementType,\n} from \"react\";\nimport { ReactLinkComponent } from \"./ReactLinkComponent\";\nimport { createclickhandler } from \"../createclickhandler\";\nexport type { ReactLinkComponent };\nexport function createReactLink({\n router,\n forwardRef,\n createElement,\n}: {\n router: Router;\n forwardRef: typeof forwardRefType;\n createElement: typeof createElementType;\n}): ReactLinkComponent {\n return forwardRef<\n unknown,\n {\n component?: string | ComponentType;\n target?: string;\n onClick?: (event: MouseEvent) => void;\n to:\n | Record\n | ((old: Record) => Record);\n }\n >(\n (\n { component: Component = \"a\", to, onClick, children, target },\n forwardedRef\n ) => {\n if (!to) {\n throw new TypeError(\"object,function\");\n }\n if (!(\"function\" === typeof to || \"object\" === typeof to)) {\n throw new TypeError(\"object,function\");\n }\n const href: string = router.paramshref(to);\n const newclick = createclickhandler({\n onClick,\n target,\n router,\n to,\n });\n const props = {\n ref: forwardedRef,\n href,\n onClick: newclick,\n target,\n };\n return createElement(Component, { ...props }, children);\n }\n );\n}\n","import { RouteRecord } from \"./RouteRecord\";\n\nexport function matchRoute(\n routes: RouteRecord[],\n params: Record\n) {\n for (let route of routes) {\n if (route.params(params)) {\n return route;\n }\n }\n return undefined;\n}\n","function isrouterecord(o: any): boolean {\n return !!(o && \"object\" === typeof o && \"function\" === typeof o.params);\n}\nexport { isrouterecord };\n","import { RecordRedirect } from \"./RouteRecord\";\n\nexport function isRecordRedirect(o: any): o is RecordRedirect {\n return !!(\"function\" === typeof o?.params && o?.redirect);\n}\n","import { RecordRoute } from \"./RouteRecord\";\n\nexport function isRecordRoute(o: any): o is RecordRoute {\n return !!(\"function\" === typeof o?.params && o?.component);\n}\n","import debounce from \"lodash/debounce\";\nimport { Router } from \"../../createrouter/Router\";\nimport { useState as useStateType, useEffect as useEffectType } from \"react\";\n\nexport function createReactParamsHook({\n router,\n useState,\n useEffect,\n}: {\n router: Router;\n useState: typeof useStateType;\n useEffect: typeof useEffectType;\n}): () => Readonly> {\n return function () {\n const [params, setparams] = useState>(\n router.getparams()\n );\n useEffect(() => {\n const paramschange = debounce((p) => {\n setparams(p);\n });\n function onmount() {\n router.mount();\n router.on(\"params\", paramschange);\n }\n\n function onunmount() {\n router.unmount();\n\n router.off(\"params\", paramschange);\n paramschange.cancel();\n }\n onmount();\n\n return onunmount;\n }, []);\n return params;\n };\n}\n","import { matchRoute } from \"../../createrouter/matchroute\";\nimport { Router } from \"../../createrouter/Router\";\nimport { isrouterecord } from \"../isrouterecord\";\nimport { navigate } from \"../navigate\";\nimport type {\n FC,\n createElement as createElementType,\n useState as useStateType,\n useEffect as useEffectType,\n ComponentType,\n} from \"react\";\nimport { RouteRecord } from \"../../createrouter\";\nimport { isRecordRedirect } from \"../../createrouter/isRecordRedirect\";\nimport { isRecordRoute } from \"../../createrouter/isRecordRoute\";\nimport { createReactParamsHook } from \"./createReactParamsHook\";\nexport { createReactView, createReactParamsHook };\nfunction createReactView({\n router,\n\n createElement,\n useState,\n useEffect,\n}: {\n router: Router;\n\n createElement: typeof createElementType;\n useState: typeof useStateType;\n useEffect: typeof useEffectType;\n}): FC<{ routes: RouteRecord[] }> {\n const useParams = createReactParamsHook({\n router,\n useState,\n useEffect,\n });\n return ({ routes }) => {\n if (!Array.isArray(routes)) {\n throw new TypeError(\"array\");\n }\n if (\n !routes.every((o) => {\n return isrouterecord(o);\n })\n ) {\n throw new TypeError('{params:\"function\"}');\n }\n\n const params = useParams();\n const currentroute = matchRoute(routes, params);\n if (isRecordRedirect(currentroute)) {\n const redirect = currentroute.redirect;\n\n navigate(router, redirect);\n }\n if (isRecordRedirect(currentroute)) {\n return null;\n }\n if (isRecordRoute(currentroute)) {\n const Component = currentroute.component as ComponentType;\n\n const children = currentroute.children;\n\n const props = currentroute.props || {};\n let oprops = Object.assign({}, props, { params });\n //@ts-ignore\n return createElement(Component, { ...oprops }, children);\n } else {\n return null;\n }\n };\n}\n","import { Router } from \"../../createrouter/Router\";\nimport type {\n resolveComponent as resolveComponentType,\n Ref,\n Component as ComponentType,\n defineComponent as defineComponentType,\n h as hType,\n} from \"@vue/runtime-dom\";\nimport { isModifiedEvent } from \"../isModifiedEvent\";\nimport { navigate } from \"../navigate\";\nimport { createclickhandler } from \"../createclickhandler\";\nexport { createVueLink };\n\nfunction createVueLink({\n router,\n resolveComponent,\n defineComponent,\n h: createElement,\n}: {\n resolveComponent: typeof resolveComponentType;\n router: Router;\n defineComponent: typeof defineComponentType;\n h: typeof hType;\n}) {\n return defineComponent<{\n component?: string | ComponentType;\n to:\n | Record\n | ((old: Record) => Record);\n onClick?: (event: MouseEvent) => void;\n target?: string;\n innerRef?: ((r: any) => void) | { value?: any };\n }>({\n inheritAttrs: false,\n\n setup(_, { slots: children, attrs }) {\n return () => {\n const {\n component: Component = \"a\",\n to,\n onClick,\n target,\n innerRef: forwardedRef,\n } = attrs;\n\n if (!to) {\n throw new TypeError(\"object,function\");\n }\n if (!(\"function\" === typeof to || \"object\" === typeof to)) {\n throw new TypeError(\"object,function\");\n }\n const href: string = router.paramshref(to as any);\n const newclick = createclickhandler({\n //@ts-ignore\n onClick,\n //@ts-ignore\n target,\n router,\n //@ts-ignore\n to,\n });\n\n const reffun =\n \"function\" === typeof forwardedRef\n ? forwardedRef\n : forwardedRef && \"object\" === typeof forwardedRef\n ? (e: any) => {\n Reflect.set(forwardedRef, \"value\", e);\n }\n : undefined;\n\n const oprops = {\n ref: reffun,\n href,\n onClick: newclick,\n target,\n };\n\n const Resolvedcomponent =\n \"string\" === typeof Component\n ? resolveComponent(Component)\n : Component;\n\n return createElement(\n //@ts-ignore\n Resolvedcomponent,\n { ...oprops },\n children\n );\n };\n },\n });\n}\n","import { ref as refType } from \"@vue/runtime-dom\";\nimport debounce from \"lodash/debounce\";\nimport { Router } from \"../../createrouter/Router\";\n\nexport function createVueParamsHook({\n router,\n ref,\n onMounted,\n onUnmounted,\n readonly,\n}: {\n readonly: typeof import(\"@vue/runtime-dom\").readonly;\n onMounted: typeof import(\"@vue/runtime-dom\").onMounted;\n router: Router;\n ref: typeof refType;\n onUnmounted: typeof import(\"@vue/runtime-dom\").onUnmounted;\n}): () => {\n readonly value: {\n readonly [x: string]: string;\n };\n} {\n return function () {\n const params = ref(router.getparams());\n const paramschange = debounce((p) => {\n params.value = p;\n });\n function onmount() {\n router.mount();\n router.on(\"params\", paramschange);\n }\n\n function onunmount() {\n router.unmount();\n\n router.off(\"params\", paramschange);\n paramschange.cancel();\n }\n onMounted(onmount);\n onUnmounted(onunmount);\n return readonly(params);\n };\n}\n","import type {\n // watch as watchType,\n Component as ComponentType,\n defineComponent as defineComponentType,\n h as hType,\n ref as refType,\n resolveComponent as resolveComponentType,\n} from \"@vue/runtime-dom\";\nimport { isRecordRedirect } from \"../../createrouter/isRecordRedirect\";\nimport { isRecordRoute } from \"../../createrouter/isRecordRoute\";\nimport { matchRoute } from \"../../createrouter/matchroute\";\nimport { Router } from \"../../createrouter/Router\";\nimport { RouteRecord } from \"../../createrouter/RouteRecord\";\nimport { isrouterecord } from \"../isrouterecord\";\nimport { navigate } from \"../navigate\";\nimport { createVueParamsHook } from \"./createVueParamsHook\";\nexport { createVueView, createVueParamsHook };\nfunction createVueView({\n readonly,\n onMounted,\n onUnmounted,\n router,\n resolveComponent,\n defineComponent,\n h: createElement,\n ref,\n}: // watch,\n// Fragment,\n{\n readonly: typeof import(\"@vue/runtime-dom\").readonly;\n onMounted: typeof import(\"@vue/runtime-dom\").onMounted;\n onUnmounted: typeof import(\"@vue/runtime-dom\").onUnmounted;\n resolveComponent: typeof resolveComponentType;\n router: Router;\n defineComponent: typeof defineComponentType;\n h: typeof hType;\n ref: typeof refType;\n // watch: typeof watchType;\n // Fragment: typeof import(\"@vue/runtime-core\").Fragment;\n}) {\n const useParams = createVueParamsHook({\n router,\n ref,\n onMounted,\n onUnmounted,\n readonly,\n });\n return defineComponent<{ routes: RouteRecord[] }>({\n inheritAttrs: false,\n setup(_, { attrs }) {\n //attrs不是响应式对象\n const { routes } = attrs;\n if (!Array.isArray(routes)) {\n throw new TypeError(\"array\");\n }\n const params = useParams();\n return () => {\n const { routes } = attrs;\n //attrs可能属性有变化\n if (!Array.isArray(routes)) {\n throw new TypeError(\"array\");\n }\n if (\n !routes.every((o) => {\n return isrouterecord(o);\n })\n ) {\n throw new TypeError('{params:\"function\"}');\n }\n\n const currentroute = matchRoute(routes, params.value);\n if (isRecordRedirect(currentroute)) {\n const redirect = currentroute.redirect;\n\n navigate(router, redirect);\n }\n if (isRecordRedirect(currentroute)) {\n return null;\n }\n if (isRecordRoute(currentroute)) {\n const Component =\n currentroute.component as ComponentType;\n\n const children = currentroute.children;\n\n let props = currentroute.props || {};\n let oprops = Object.assign({}, props, {\n params: params.value,\n });\n let Resolvedcomponent =\n \"string\" === typeof Component\n ? resolveComponent(Component)\n : Component;\n // if (typeof Resolvedcomponent === \"object\") {\n // Resolvedcomponent = Object.assign(\n // {},\n // Resolvedcomponent\n // );\n // }\n return createElement(\n // //@ts-ignore\n // Fragment,\n // {},\n // createElement(\n // @ts-ignore\n Resolvedcomponent,\n { ...oprops },\n children\n // )\n );\n } else {\n return null;\n }\n };\n },\n });\n}\n"],"names":["toprimitive","toString","call","Symbol","toStringTag","isObject_1","value","type","freeGlobal","global","Object","freeSelf","self","root","Function","now_1","Date","now","reWhitespace","trimmedEndIndex","string","index","length","test","charAt","reTrimStart","_baseTrim","slice","replace","_Symbol","require$$0","objectProto","prototype","hasOwnProperty","nativeObjectToString","symToStringTag","undefined","_getRawTag","isOwn","tag","unmasked","e","result","getRawTag","require$$1","objectToString","baseGetTag","isObjectLike","baseTrim","isObject","isSymbol","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","toNumber","other","valueOf","isBinary","nativeMax","Math","max","nativeMin","min","debounce_1","func","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","apply","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","arguments","this","clearTimeout","cancel","flush","gethashparams","location","hash","fromEntries","URLSearchParams","gethashhref","to","params","url","URL","href","String","sethashparams","opt","oldhash","history","pushState","window","dispatchEvent","Event","transformhashparams","getsearchparams","search","searchParams","getsearchhref","setsearchparams","oldsearch","transformsearchparams","createBaseRouter","mountcount","eventname","emitter","EventEmitterTargetClass","changelistener","debounce","instance","emit","mount","addEventListener","unmount","removeEventListener","removeAllListeners","paramshref","setparams","getparams","transformparams","createHashRouter","createSearchRouter","navigate","router","createclickhandler","onClick","target","event","ex","preventDefault","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","isModifiedEvent","createReactLink","forwardRef","createElement","component","Component","children","forwardedRef","newclick","ref","matchRoute","routes","route","isrouterecord","o","isRecordRedirect","redirect","isRecordRoute","createReactParamsHook","useState","useEffect","paramschange","p","on","off","createReactView","useParams","Array","isArray","every","currentroute","props","oprops","assign","createVueLink","resolveComponent","defineComponent","h","inheritAttrs","setup","_","slots","attrs","innerRef","Reflect","set","Resolvedcomponent","createVueParamsHook","onMounted","onUnmounted","readonly","createVueView"],"mappings":"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"} \ No newline at end of file diff --git a/src/components/react/create-react-view.tsx b/src/components/react/create-react-view.tsx index ed347cc..425bf3b 100644 --- a/src/components/react/create-react-view.tsx +++ b/src/components/react/create-react-view.tsx @@ -1,4 +1,4 @@ -import { matchRoute } from "../../createrouter/matchRoute"; +import { matchRoute } from "../../createrouter/matchroute"; import { Router } from "../../createrouter/Router"; import { isrouterecord } from "../isrouterecord"; import { navigate } from "../navigate"; diff --git a/src/components/vue/create-vue-view.tsx b/src/components/vue/create-vue-view.tsx index cc73354..792d825 100644 --- a/src/components/vue/create-vue-view.tsx +++ b/src/components/vue/create-vue-view.tsx @@ -8,7 +8,7 @@ import type { } from "@vue/runtime-dom"; import { isRecordRedirect } from "../../createrouter/isRecordRedirect"; import { isRecordRoute } from "../../createrouter/isRecordRoute"; -import { matchRoute } from "../../createrouter/matchRoute"; +import { matchRoute } from "../../createrouter/matchroute"; import { Router } from "../../createrouter/Router"; import { RouteRecord } from "../../createrouter/RouteRecord"; import { isrouterecord } from "../isrouterecord"; diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..ede8564 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,1888 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.10.4", "@babel/code-frame@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" + integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== + dependencies: + "@babel/highlight" "^7.14.5" + +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.5", "@babel/compat-data@^7.14.7": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.7.tgz#7b047d7a3a89a67d2258dc61f604f098f1bc7e08" + integrity sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw== + +"@babel/core@^7.14.3", "@babel/core@^7.14.6": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.6.tgz#e0814ec1a950032ff16c13a2721de39a8416fcab" + integrity sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/generator" "^7.14.5" + "@babel/helper-compilation-targets" "^7.14.5" + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helpers" "^7.14.6" + "@babel/parser" "^7.14.6" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + source-map "^0.5.0" + +"@babel/generator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.5.tgz#848d7b9f031caca9d0cd0af01b063f226f52d785" + integrity sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA== + dependencies: + "@babel/types" "^7.14.5" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/helper-annotate-as-pure@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz#7bf478ec3b71726d56a8ca5775b046fc29879e61" + integrity sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz#b939b43f8c37765443a19ae74ad8b15978e0a191" + integrity sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz#7a99c5d0967911e972fe2c3411f7d5b498498ecf" + integrity sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw== + dependencies: + "@babel/compat-data" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + browserslist "^4.16.6" + semver "^6.3.0" + +"@babel/helper-create-class-features-plugin@^7.14.5": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz#f114469b6c06f8b5c59c6c4e74621f5085362542" + integrity sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-member-expression-to-functions" "^7.14.5" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" + +"@babel/helper-create-regexp-features-plugin@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz#c7d5ac5e9cf621c26057722fb7a8a4c5889358c4" + integrity sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + regexpu-core "^4.7.1" + +"@babel/helper-define-polyfill-provider@^0.2.2": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6" + integrity sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew== + dependencies: + "@babel/helper-compilation-targets" "^7.13.0" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/traverse" "^7.13.0" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + +"@babel/helper-explode-assignable-expression@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz#8aa72e708205c7bb643e45c73b4386cdf2a1f645" + integrity sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-function-name@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4" + integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ== + dependencies: + "@babel/helper-get-function-arity" "^7.14.5" + "@babel/template" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-get-function-arity@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815" + integrity sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-hoist-variables@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d" + integrity sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-member-expression-to-functions@^7.14.5": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz#97e56244beb94211fe277bd818e3a329c66f7970" + integrity sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3" + integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-module-transforms@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz#7de42f10d789b423eb902ebd24031ca77cb1e10e" + integrity sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA== + dependencies: + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" + "@babel/helper-simple-access" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" + "@babel/helper-validator-identifier" "^7.14.5" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-optimise-call-expression@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz#f27395a8619e0665b3f0364cddb41c25d71b499c" + integrity sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" + integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== + +"@babel/helper-remap-async-to-generator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz#51439c913612958f54a987a4ffc9ee587a2045d6" + integrity sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-wrap-function" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-replace-supers@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz#0ecc0b03c41cd567b4024ea016134c28414abb94" + integrity sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.14.5" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-simple-access@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz#66ea85cf53ba0b4e588ba77fc813f53abcaa41c4" + integrity sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-skip-transparent-expression-wrappers@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz#96f486ac050ca9f44b009fbe5b7d394cab3a0ee4" + integrity sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-split-export-declaration@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a" + integrity sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-validator-identifier@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" + integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg== + +"@babel/helper-validator-option@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" + integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== + +"@babel/helper-wrap-function@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz#5919d115bf0fe328b8a5d63bcb610f51601f2bff" + integrity sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ== + dependencies: + "@babel/helper-function-name" "^7.14.5" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helpers@^7.14.6": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.6.tgz#5b58306b95f1b47e2a0199434fa8658fa6c21635" + integrity sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA== + dependencies: + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/highlight@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" + integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== + dependencies: + "@babel/helper-validator-identifier" "^7.14.5" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.14.5", "@babel/parser@^7.14.6", "@babel/parser@^7.14.7": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.7.tgz#6099720c8839ca865a2637e6c85852ead0bdb595" + integrity sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA== + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz#4b467302e1548ed3b1be43beae2cc9cf45e0bb7e" + integrity sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + "@babel/plugin-proposal-optional-chaining" "^7.14.5" + +"@babel/plugin-proposal-async-generator-functions@^7.14.2", "@babel/plugin-proposal-async-generator-functions@^7.14.7": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.7.tgz#784a48c3d8ed073f65adcf30b57bcbf6c8119ace" + integrity sha512-RK8Wj7lXLY3bqei69/cc25gwS5puEc3dknoFPFbqfy3XxYQBQFvu4ioWpafMBAB+L9NyptQK4nMOa5Xz16og8Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.14.5" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-proposal-class-properties@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz#40d1ee140c5b1e31a350f4f5eed945096559b42e" + integrity sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-proposal-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz#158e9e10d449c3849ef3ecde94a03d9f1841b681" + integrity sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-proposal-dynamic-import@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz#0c6617df461c0c1f8fff3b47cd59772360101d2c" + integrity sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-proposal-export-namespace-from@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz#dbad244310ce6ccd083072167d8cea83a52faf76" + integrity sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-json-strings@^7.14.2", "@babel/plugin-proposal-json-strings@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz#38de60db362e83a3d8c944ac858ddf9f0c2239eb" + integrity sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-proposal-logical-assignment-operators@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz#6e6229c2a99b02ab2915f82571e0cc646a40c738" + integrity sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz#ee38589ce00e2cc59b299ec3ea406fcd3a0fdaf6" + integrity sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz#83631bf33d9a51df184c2102a069ac0c58c05f18" + integrity sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.14.4", "@babel/plugin-proposal-object-rest-spread@^7.14.7": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz#5920a2b3df7f7901df0205974c0641b13fd9d363" + integrity sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g== + dependencies: + "@babel/compat-data" "^7.14.7" + "@babel/helper-compilation-targets" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.14.5" + +"@babel/plugin-proposal-optional-catch-binding@^7.14.2", "@babel/plugin-proposal-optional-catch-binding@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz#939dd6eddeff3a67fdf7b3f044b5347262598c3c" + integrity sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz#fa83651e60a360e3f13797eef00b8d519695b603" + integrity sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-private-methods@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz#37446495996b2945f30f5be5b60d5e2aa4f5792d" + integrity sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-proposal-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz#9f65a4d0493a940b4c01f8aa9d3f1894a587f636" + integrity sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-proposal-unicode-property-regex@^7.12.13", "@babel/plugin-proposal-unicode-property-regex@^7.14.5", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz#0f95ee0e757a5d647f378daa0eca7e93faa8bbe8" + integrity sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz#000e2e25d8673cce49300517a3eda44c263e4201" + integrity sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-arrow-functions@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz#f7187d9588a768dd080bf4c9ffe117ea62f7862a" + integrity sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-async-to-generator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz#72c789084d8f2094acb945633943ef8443d39e67" + integrity sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA== + dependencies: + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.14.5" + +"@babel/plugin-transform-block-scoped-functions@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz#e48641d999d4bc157a67ef336aeb54bc44fd3ad4" + integrity sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-block-scoping@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz#8cc63e61e50f42e078e6f09be775a75f23ef9939" + integrity sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-classes@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.5.tgz#0e98e82097b38550b03b483f9b51a78de0acb2cf" + integrity sha512-J4VxKAMykM06K/64z9rwiL6xnBHgB1+FVspqvlgCdwD1KUbQNfszeKVVOMh59w3sztHYIZDgnhOC4WbdEfHFDA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz#1b9d78987420d11223d41195461cc43b974b204f" + integrity sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-destructuring@^7.14.7": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz#0ad58ed37e23e22084d109f185260835e5557576" + integrity sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-dotall-regex@^7.14.5", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz#2f6bf76e46bdf8043b4e7e16cf24532629ba0c7a" + integrity sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-duplicate-keys@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz#365a4844881bdf1501e3a9f0270e7f0f91177954" + integrity sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-exponentiation-operator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz#5154b8dd6a3dfe6d90923d61724bd3deeb90b493" + integrity sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-for-of@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz#dae384613de8f77c196a8869cbf602a44f7fc0eb" + integrity sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-function-name@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz#e81c65ecb900746d7f31802f6bed1f52d915d6f2" + integrity sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ== + dependencies: + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz#41d06c7ff5d4d09e3cf4587bd3ecf3930c730f78" + integrity sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-member-expression-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz#b39cd5212a2bf235a617d320ec2b48bcc091b8a7" + integrity sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-modules-amd@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz#4fd9ce7e3411cb8b83848480b7041d83004858f7" + integrity sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g== + dependencies: + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-commonjs@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.5.tgz#7aaee0ea98283de94da98b28f8c35701429dad97" + integrity sha512-en8GfBtgnydoao2PS+87mKyw62k02k7kJ9ltbKe0fXTHrQmG6QZZflYuGI1VVG7sVpx4E1n7KBpNlPb8m78J+A== + dependencies: + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-simple-access" "^7.14.5" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-systemjs@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz#c75342ef8b30dcde4295d3401aae24e65638ed29" + integrity sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA== + dependencies: + "@babel/helper-hoist-variables" "^7.14.5" + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-identifier" "^7.14.5" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-umd@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz#fb662dfee697cce274a7cda525190a79096aa6e0" + integrity sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA== + dependencies: + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.14.7": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.7.tgz#60c06892acf9df231e256c24464bfecb0908fd4e" + integrity sha512-DTNOTaS7TkW97xsDMrp7nycUVh6sn/eq22VaxWfEdzuEbRsiaOU0pqU7DlyUGHVsbQbSghvjKRpEl+nUCKGQSg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + +"@babel/plugin-transform-new-target@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz#31bdae8b925dc84076ebfcd2a9940143aed7dbf8" + integrity sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-object-super@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz#d0b5faeac9e98597a161a9cf78c527ed934cdc45" + integrity sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" + +"@babel/plugin-transform-parameters@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz#49662e86a1f3ddccac6363a7dfb1ff0a158afeb3" + integrity sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-property-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz#0ddbaa1f83db3606f1cdf4846fa1dfb473458b34" + integrity sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-react-jsx@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.5.tgz#39749f0ee1efd8a1bd729152cf5f78f1d247a44a" + integrity sha512-7RylxNeDnxc1OleDm0F5Q/BSL+whYRbOAR+bwgCxIr0L32v7UFh/pz1DLMZideAUxKT6eMoS2zQH6fyODLEi8Q== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-jsx" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/plugin-transform-regenerator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz#9676fd5707ed28f522727c5b3c0aa8544440b04f" + integrity sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg== + dependencies: + regenerator-transform "^0.14.2" + +"@babel/plugin-transform-reserved-words@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz#c44589b661cfdbef8d4300dcc7469dffa92f8304" + integrity sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-runtime@^7.14.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.14.5.tgz#30491dad49c6059f8f8fa5ee8896a0089e987523" + integrity sha512-fPMBhh1AV8ZyneiCIA+wYYUH1arzlXR1UMcApjvchDhfKxhy2r2lReJv8uHEyihi4IFIGlr1Pdx7S5fkESDQsg== + dependencies: + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + babel-plugin-polyfill-corejs2 "^0.2.2" + babel-plugin-polyfill-corejs3 "^0.2.2" + babel-plugin-polyfill-regenerator "^0.2.2" + semver "^6.3.0" + +"@babel/plugin-transform-shorthand-properties@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz#97f13855f1409338d8cadcbaca670ad79e091a58" + integrity sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-spread@^7.14.6": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz#6bd40e57fe7de94aa904851963b5616652f73144" + integrity sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + +"@babel/plugin-transform-sticky-regex@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz#5b617542675e8b7761294381f3c28c633f40aeb9" + integrity sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-template-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz#a5f2bc233937d8453885dc736bdd8d9ffabf3d93" + integrity sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-typeof-symbol@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz#39af2739e989a2bd291bf6b53f16981423d457d4" + integrity sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-unicode-escapes@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz#9d4bd2a681e3c5d7acf4f57fa9e51175d91d0c6b" + integrity sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-unicode-regex@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz#4cd09b6c8425dd81255c7ceb3fb1836e7414382e" + integrity sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/preset-env@^7.14.4", "@babel/preset-env@^7.14.7": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.7.tgz#5c70b22d4c2d893b03d8c886a5c17422502b932a" + integrity sha512-itOGqCKLsSUl0Y+1nSfhbuuOlTs0MJk2Iv7iSH+XT/mR8U1zRLO7NjWlYXB47yhK4J/7j+HYty/EhFZDYKa/VA== + dependencies: + "@babel/compat-data" "^7.14.7" + "@babel/helper-compilation-targets" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.14.5" + "@babel/plugin-proposal-async-generator-functions" "^7.14.7" + "@babel/plugin-proposal-class-properties" "^7.14.5" + "@babel/plugin-proposal-class-static-block" "^7.14.5" + "@babel/plugin-proposal-dynamic-import" "^7.14.5" + "@babel/plugin-proposal-export-namespace-from" "^7.14.5" + "@babel/plugin-proposal-json-strings" "^7.14.5" + "@babel/plugin-proposal-logical-assignment-operators" "^7.14.5" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.5" + "@babel/plugin-proposal-numeric-separator" "^7.14.5" + "@babel/plugin-proposal-object-rest-spread" "^7.14.7" + "@babel/plugin-proposal-optional-catch-binding" "^7.14.5" + "@babel/plugin-proposal-optional-chaining" "^7.14.5" + "@babel/plugin-proposal-private-methods" "^7.14.5" + "@babel/plugin-proposal-private-property-in-object" "^7.14.5" + "@babel/plugin-proposal-unicode-property-regex" "^7.14.5" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-transform-arrow-functions" "^7.14.5" + "@babel/plugin-transform-async-to-generator" "^7.14.5" + "@babel/plugin-transform-block-scoped-functions" "^7.14.5" + "@babel/plugin-transform-block-scoping" "^7.14.5" + "@babel/plugin-transform-classes" "^7.14.5" + "@babel/plugin-transform-computed-properties" "^7.14.5" + "@babel/plugin-transform-destructuring" "^7.14.7" + "@babel/plugin-transform-dotall-regex" "^7.14.5" + "@babel/plugin-transform-duplicate-keys" "^7.14.5" + "@babel/plugin-transform-exponentiation-operator" "^7.14.5" + "@babel/plugin-transform-for-of" "^7.14.5" + "@babel/plugin-transform-function-name" "^7.14.5" + "@babel/plugin-transform-literals" "^7.14.5" + "@babel/plugin-transform-member-expression-literals" "^7.14.5" + "@babel/plugin-transform-modules-amd" "^7.14.5" + "@babel/plugin-transform-modules-commonjs" "^7.14.5" + "@babel/plugin-transform-modules-systemjs" "^7.14.5" + "@babel/plugin-transform-modules-umd" "^7.14.5" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.14.7" + "@babel/plugin-transform-new-target" "^7.14.5" + "@babel/plugin-transform-object-super" "^7.14.5" + "@babel/plugin-transform-parameters" "^7.14.5" + "@babel/plugin-transform-property-literals" "^7.14.5" + "@babel/plugin-transform-regenerator" "^7.14.5" + "@babel/plugin-transform-reserved-words" "^7.14.5" + "@babel/plugin-transform-shorthand-properties" "^7.14.5" + "@babel/plugin-transform-spread" "^7.14.6" + "@babel/plugin-transform-sticky-regex" "^7.14.5" + "@babel/plugin-transform-template-literals" "^7.14.5" + "@babel/plugin-transform-typeof-symbol" "^7.14.5" + "@babel/plugin-transform-unicode-escapes" "^7.14.5" + "@babel/plugin-transform-unicode-regex" "^7.14.5" + "@babel/preset-modules" "^0.1.4" + "@babel/types" "^7.14.5" + babel-plugin-polyfill-corejs2 "^0.2.2" + babel-plugin-polyfill-corejs3 "^0.2.2" + babel-plugin-polyfill-regenerator "^0.2.2" + core-js-compat "^3.15.0" + semver "^6.3.0" + +"@babel/preset-modules@^0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" + integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/runtime@^7.14.0", "@babel/runtime@^7.8.4": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.6.tgz#535203bc0892efc7dec60bdc27b2ecf6e409062d" + integrity sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4" + integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/parser" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/traverse@^7.13.0", "@babel/traverse@^7.14.5": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.7.tgz#64007c9774cfdc3abd23b0780bc18a3ce3631753" + integrity sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/generator" "^7.14.5" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-hoist-variables" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" + "@babel/parser" "^7.14.7" + "@babel/types" "^7.14.5" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.14.5", "@babel/types@^7.3.0", "@babel/types@^7.4.4": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.5.tgz#3bb997ba829a2104cedb20689c4a5b8121d383ff" + integrity sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg== + dependencies: + "@babel/helper-validator-identifier" "^7.14.5" + to-fast-properties "^2.0.0" + +"@masx200/event-emitter-target@^1.1.8": + version "1.1.8" + resolved "https://registry.yarnpkg.com/@masx200/event-emitter-target/-/event-emitter-target-1.1.8.tgz#2410375ed8b9e38f5b91cb43cf5c5897382c42fd" + integrity sha512-FNPRkaCamGqt9hRK6YBK1Bivmwn3mRyXyiUqmM4hmAf42knUTsEmihP0T80TV423cIz0LFaLfxJkpNV2rRLeQg== + +"@mdn/browser-compat-data@^3.3.4": + version "3.3.10" + resolved "https://registry.yarnpkg.com/@mdn/browser-compat-data/-/browser-compat-data-3.3.10.tgz#10299e35ee07b2a78e58731939a5f35d926db622" + integrity sha512-3pUDpaS17YjM0yCUyZCzNGVd+p9ig4UUTw0RI5EDpiLlwwDiiSmU+31fhEqv7gHAxkW7X1TUP8z7YXsWY2SJsg== + +"@rollup/plugin-babel@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.0.tgz#9cb1c5146ddd6a4968ad96f209c50c62f92f9879" + integrity sha512-9uIC8HZOnVLrLHxayq/PTzw+uS25E14KPUBh5ktF+18Mjo5yK0ToMMx6epY0uEgkjwJw0aBW4x2horYXh8juWw== + dependencies: + "@babel/helper-module-imports" "^7.10.4" + "@rollup/pluginutils" "^3.1.0" + +"@rollup/plugin-commonjs@^19.0.0": + version "19.0.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-19.0.0.tgz#8c3e71f9a66908e60d70cc1be205834ef3e45f71" + integrity sha512-adTpD6ATGbehdaQoZQ6ipDFhdjqsTgpOAhFiPwl+dzre4pPshsecptDPyEFb61JMJ1+mGljktaC4jI8ARMSNyw== + dependencies: + "@rollup/pluginutils" "^3.1.0" + commondir "^1.0.1" + estree-walker "^2.0.1" + glob "^7.1.6" + is-reference "^1.2.1" + magic-string "^0.25.7" + resolve "^1.17.0" + +"@rollup/plugin-node-resolve@^13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.0.tgz#352f07e430ff377809ec8ec8a6fd636547162dc4" + integrity sha512-41X411HJ3oikIDivT5OKe9EZ6ud6DXudtfNrGbC4nniaxx2esiWjkLOzgnZsWq1IM8YIeL2rzRGLZLBjlhnZtQ== + dependencies: + "@rollup/pluginutils" "^3.1.0" + "@types/resolve" "1.17.1" + builtin-modules "^3.1.0" + deepmerge "^4.2.2" + is-module "^1.0.0" + resolve "^1.19.0" + +"@rollup/pluginutils@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" + integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== + dependencies: + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" + +"@rollup/pluginutils@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.1.0.tgz#0dcc61c780e39257554feb7f77207dceca13c838" + integrity sha512-TrBhfJkFxA+ER+ew2U2/fHbebhLT/l/2pRk0hfj9KusXUuRXd2v0R58AfaZK9VXDQ4TogOSEmICVrQAA3zFnHQ== + dependencies: + estree-walker "^2.0.1" + picomatch "^2.2.2" + +"@types/babel__core@^7.1.14": + version "7.1.15" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.15.tgz#2ccfb1ad55a02c83f8e0ad327cbc332f55eb1024" + integrity sha512-bxlMKPDbY8x5h6HBwVzEOk2C8fb6SLfYQ5Jw3uBYuYF1lfWk/kbLd81la82vrIkBb0l+JdmrZaDikPrNxpS/Ew== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.3" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.3.tgz#f456b4b2ce79137f768aa130d2423d2f0ccfaba5" + integrity sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.1" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" + integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43" + integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== + dependencies: + "@babel/types" "^7.3.0" + +"@types/estree@*": + version "0.0.50" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" + integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== + +"@types/estree@0.0.39": + version "0.0.39" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" + integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== + +"@types/lodash@^4.14.170": + version "4.14.171" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.171.tgz#f01b3a5fe3499e34b622c362a46a609fdb23573b" + integrity sha512-7eQ2xYLLI/LsicL2nejW9Wyko3lcpN6O/z0ZLHrEQsg280zIdCv1t/0m6UtBjUHokCGBQ3gYTbHzDkZ1xOBwwg== + +"@types/node@*": + version "16.3.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.3.2.tgz#655432817f83b51ac869c2d51dd8305fb8342e16" + integrity sha512-jJs9ErFLP403I+hMLGnqDRWT0RYKSvArxuBVh2veudHV7ifEC1WAmjJADacZ7mRbA2nWgHtn8xyECMAot0SkAw== + +"@types/node@^15.9.0": + version "15.14.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.14.2.tgz#7af8ab20156586f076f4760bc1b3c5ddfffd1ff2" + integrity sha512-dvMUE/m2LbXPwlvVuzCyslTEtQ2ZwuuFClDrOQ6mp2CenCg971719PTILZ4I6bTP27xfFFc+o7x2TkLuun/MPw== + +"@types/object-path@^0.11.0": + version "0.11.1" + resolved "https://registry.yarnpkg.com/@types/object-path/-/object-path-0.11.1.tgz#eea5b357518597fc9c0a067ea3147f599fc1514f" + integrity sha512-219LSCO9HPcoXcRTC6DbCs0FRhZgBnEMzf16RRqkT40WbkKx3mOeQuz3e2XqbfhOz/AHfbru0kzB1n1RCAsIIg== + +"@types/prop-types@*": + version "15.7.4" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11" + integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ== + +"@types/react@^17.0.13": + version "17.0.14" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.14.tgz#f0629761ca02945c4e8fea99b8177f4c5c61fb0f" + integrity sha512-0WwKHUbWuQWOce61UexYuWTGuGY/8JvtUe/dtQ6lR4sZ3UiylHotJeWpf3ArP9+DSGUoLY3wbU59VyMrJps5VQ== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/resolve@1.17.1": + version "1.17.1" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" + integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== + dependencies: + "@types/node" "*" + +"@types/scheduler@*": + version "0.16.2" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" + integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== + +"@types/semver@^7.3.6": + version "7.3.7" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.7.tgz#b9eb89d7dfa70d5d1ce525bc1411a35347f533a3" + integrity sha512-4g1jrL98mdOIwSOUh6LTlB0Cs9I0dQPwINUhBg7C6pN4HLr8GS8xsksJxilW6S6dQHVi2K/o+lQuQcg7LroCnw== + +"@types/ua-parser-js@^0.7.36": + version "0.7.36" + resolved "https://registry.yarnpkg.com/@types/ua-parser-js/-/ua-parser-js-0.7.36.tgz#9bd0b47f26b5a3151be21ba4ce9f5fa457c5f190" + integrity sha512-N1rW+njavs70y2cApeIw1vLMYXRwfBy+7trgavGuuTfOd7j1Yh7QTRc/yqsPl6ncokt72ZXuxEU0PiCp9bSwNQ== + +"@vue/reactivity@3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.1.4.tgz#d926ed46fb0d48582ccf8665b062d37b5d35ba99" + integrity sha512-YDlgii2Cr9yAoKVZFzgY4j0mYlVT73986X3e5SPp6ifqckSEoFSUWXZK2Tb53TB/9qO29BEEbspnKD3m3wAwkA== + dependencies: + "@vue/shared" "3.1.4" + +"@vue/runtime-core@3.1.4", "@vue/runtime-core@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.1.4.tgz#3e30ae6ecbfff06df5adc9414491143191a375ba" + integrity sha512-qmVJgJuFxfT7M4qHQ4M6KqhKC66fjuswK+aBivE8dWiZ2rtIGl9gtJGpwqwjQEcKEBTOfvvrtrwBncYArJUO8Q== + dependencies: + "@vue/reactivity" "3.1.4" + "@vue/shared" "3.1.4" + +"@vue/runtime-dom@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.1.4.tgz#acfeee200d5c45fc2cbdf7058cda1498f9b45849" + integrity sha512-vbmwgTxku1BU87Kw7r29adv0OIrDXCW0PslOPQT0O/9R5SqcXgS94Yj6zsztDjvghegenwIAPNLlDR1Auh5s+w== + dependencies: + "@vue/runtime-core" "3.1.4" + "@vue/shared" "3.1.4" + csstype "^2.6.8" + +"@vue/shared@3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.1.4.tgz#c14c461ec42ea2c1556e86f60b0354341d91adc3" + integrity sha512-6O45kZAmkLvzGLToBxEz4lR2W6kXohCtebV2UxjH9GXjd8X9AhEn68FN9eNanFtWNzvgw1hqd6HkPRVQalqf7Q== + +"@wessberg/stringutil@^1.0.19": + version "1.0.19" + resolved "https://registry.yarnpkg.com/@wessberg/stringutil/-/stringutil-1.0.19.tgz#baadcb6f4471fe2d46462a7d7a8294e4b45b29ad" + integrity sha512-9AZHVXWlpN8Cn9k5BC/O0Dzb9E9xfEMXzYrNunwvkUTvuK7xgQPVRZpLo+jWCOZ5r8oBa8NIrHuPEu1hzbb6bg== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-polyfill-corejs2@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327" + integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ== + dependencies: + "@babel/compat-data" "^7.13.11" + "@babel/helper-define-polyfill-provider" "^0.2.2" + semver "^6.1.1" + +babel-plugin-polyfill-corejs3@^0.2.2: + version "0.2.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.3.tgz#72add68cf08a8bf139ba6e6dfc0b1d504098e57b" + integrity sha512-rCOFzEIJpJEAU14XCcV/erIf/wZQMmMT5l5vXOpL5uoznyOGfDIjPj6FVytMvtzaKSTSVKouOCTPJ5OMUZH30g== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.2.2" + core-js-compat "^3.14.0" + +babel-plugin-polyfill-regenerator@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077" + integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.2.2" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +browserslist-generator@^1.0.59: + version "1.0.59" + resolved "https://registry.yarnpkg.com/browserslist-generator/-/browserslist-generator-1.0.59.tgz#f2226dfe5bb4586fdfb5468bbc65af0534a5f8a6" + integrity sha512-pY1JNAxBMtsDbmLxTn5AXM5j+R7L0WAEFSFUr7zC9bKQJAqjMG83AUV2+EIdxPGV3297PMKAUW9MB8OQ1IEyVg== + dependencies: + "@mdn/browser-compat-data" "^3.3.4" + "@types/object-path" "^0.11.0" + "@types/semver" "^7.3.6" + "@types/ua-parser-js" "^0.7.36" + browserslist "4.16.6" + caniuse-lite "^1.0.30001228" + isbot "3.0.26" + object-path "^0.11.5" + semver "^7.3.5" + ua-parser-js "^0.7.28" + +browserslist@4.16.6, browserslist@^4.16.6: + version "4.16.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" + integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== + dependencies: + caniuse-lite "^1.0.30001219" + colorette "^1.2.2" + electron-to-chromium "^1.3.723" + escalade "^3.1.1" + node-releases "^1.1.71" + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +builtin-modules@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" + integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== + +call-bind@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +caniuse-lite@^1.0.30001219, caniuse-lite@^1.0.30001228: + version "1.0.30001245" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001245.tgz#45b941bbd833cb0fa53861ff2bae746b3c6ca5d4" + integrity sha512-768fM9j1PKXpOCKws6eTo3RHmvTUsG9UrpT4WoREFeZgJBTi4/X9g565azS/rVUGtqb8nt7FjLeF5u4kukERnA== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" + integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colorette@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" + integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +compatfactory@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/compatfactory/-/compatfactory-0.0.7.tgz#27bae23673136c6fdee8e6c93a79cf9fcea817df" + integrity sha512-O11m9rzI6B8NEVf+u2kVt7dNf5oy8kaEp6i8r3cj8UVsT58zxW0jEABcyijoEcCwqNrJQvn2gSJ/XMLadLQEoQ== + dependencies: + helpertypes "^0.0.2" + +compatfactory@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/compatfactory/-/compatfactory-0.0.8.tgz#ac1e4cb18fba9e4d1164e586c23a81e488b4ffbd" + integrity sha512-0XBP2rWr98/ONiNqaNfJU9vxtbZ0GokxFFoc1aQIWl85aimUjUfJhIWKDsbJ3rEpHKlFFmHX1EzVziwR+Cg0Ww== + dependencies: + helpertypes "^0.0.3" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +convert-source-map@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" + integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== + dependencies: + safe-buffer "~5.1.1" + +core-js-compat@^3.14.0, core-js-compat@^3.15.0: + version "3.15.2" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.15.2.tgz#47272fbb479880de14b4e6081f71f3492f5bd3cb" + integrity sha512-Wp+BJVvwopjI+A1EFqm2dwUmWYXrvucmtIB2LgXn/Rb+gWPKYxtmb4GKHGKG/KGF1eK9jfjzT38DITbTOCX/SQ== + dependencies: + browserslist "^4.16.6" + semver "7.0.0" + +crosspath@^0.0.9: + version "0.0.9" + resolved "https://registry.yarnpkg.com/crosspath/-/crosspath-0.0.9.tgz#2ac42b39b3b83eeb25851a4058ccd0722baea520" + integrity sha512-lhDiWhqHk1IQ0BiGN9/Ji7qEr9LwCG8taDCTgihII/6b91my+GvTNXDB7eKh/FySz488tkt2IboqBJTSZtc4Fw== + dependencies: + "@types/node" "^15.9.0" + +csstype@^2.6.8: + version "2.6.17" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.17.tgz#4cf30eb87e1d1a005d8b6510f95292413f6a1c0e" + integrity sha512-u1wmTI1jJGzCJzWndZo8mk4wnPTZd1eOIYTYvuEyOQGfmDl3TrabCCfKnOC86FZwW/9djqTl933UF/cS425i9A== + +csstype@^3.0.2: + version "3.0.8" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.8.tgz#d2266a792729fb227cd216fb572f43728e1ad340" + integrity sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw== + +debug@^4.1.0, debug@^4.1.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +electron-to-chromium@^1.3.723: + version "1.3.775" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.775.tgz#046517d1f2cea753e06fff549995b9dc45e20082" + integrity sha512-EGuiJW4yBPOTj2NtWGZcX93ZE8IGj33HJAx4d3ouE2zOfW2trbWU+t1e0yzLr1qQIw81++txbM3BH52QwSRE6Q== + +esbuild@^0.12.8: + version "0.12.15" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.12.15.tgz#9d99cf39aeb2188265c5983e983e236829f08af0" + integrity sha512-72V4JNd2+48eOVCXx49xoSWHgC3/cCy96e7mbXKY+WOWghN00cCmlGnwVLRhRHorvv0dgCyuMYBZlM2xDM5OQw== + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +estree-walker@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" + integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== + +estree-walker@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-intrinsic@^1.0.2: + version "1.1.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +glob@^7.1.6: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbols@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" + integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +helpertypes@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/helpertypes/-/helpertypes-0.0.2.tgz#8427cb93dc558079be302ef1cd9f0d3d648ca062" + integrity sha512-PKVtWnJ+dcvPeUJRiqtbraN/Hr2rNEnS14T/IxDBb0KgHkAL5w4YwVxMEPowA9vyoMP0DrwO0TxJ+KH3UF/6YA== + +helpertypes@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/helpertypes/-/helpertypes-0.0.3.tgz#c27eb73ef4496796e7e9c547eec79d4ca7cc6898" + integrity sha512-+cAWp4/nDChu3u8qEk0/8HkM+vjPv9Ej56IWZ/bipYhCcYrH+uVWPL0rkKIkc4R6sY+eDFa0IbFGqO40DKPftQ== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-core-module@^2.2.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.5.0.tgz#f754843617c70bfd29b7bd87327400cda5c18491" + integrity sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg== + dependencies: + has "^1.0.3" + +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= + +is-reference@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" + integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== + dependencies: + "@types/estree" "*" + +isbot@3.0.26: + version "3.0.26" + resolved "https://registry.yarnpkg.com/isbot/-/isbot-3.0.26.tgz#92782ed686ef8fd3e2d0f135221a6d215dc3bf2b" + integrity sha512-y1IwTPP6pRGDmQUTrCz1bZ9ZPSmij3eWruBBIiCOARX5ueyLv58xuFxvUGg6uI0k9u1swnOmJR8DKYZbcDXLqQ== + +jest-worker@^26.2.1: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + +json5@^2.1.2: + version "2.2.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + dependencies: + minimist "^1.2.5" + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +magic-string@^0.25.7: + version "0.25.7" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" + integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== + dependencies: + sourcemap-codec "^1.4.4" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +nanoid@^3.1.23: + version "3.1.23" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81" + integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw== + +node-releases@^1.1.71: + version "1.1.73" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz#dd4e81ddd5277ff846b80b52bb40c49edf7a7b20" + integrity sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg== + +object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-path@^0.11.5: + version "0.11.5" + resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.5.tgz#d4e3cf19601a5140a55a16ad712019a9c50b577a" + integrity sha512-jgSbThcoR/s+XumvGMTMf81QVBmah+/Q7K7YduKeKVWL7N111unR2d6pZZarSk6kY/caeNxUDyxOvMWyzoU2eg== + +object.assign@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-parse@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +picomatch@^2.2.2: + version "2.3.0" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== + +postcss@^8.3.5: + version "8.3.5" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.5.tgz#982216b113412bc20a86289e91eb994952a5b709" + integrity sha512-NxTuJocUhYGsMiMFHDUkmjSKT3EdH4/WbGF6GCi1NDGk+vbcUTun4fpbOqaPtD8IIsztA2ilZm2DhYCuyN58gA== + dependencies: + colorette "^1.2.2" + nanoid "^3.1.23" + source-map-js "^0.6.2" + +prettier@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d" + integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== + dependencies: + regenerate "^1.4.0" + +regenerate@^1.4.0: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.13.4: + version "0.13.7" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + +regenerator-transform@^0.14.2: + version "0.14.5" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" + integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== + dependencies: + "@babel/runtime" "^7.8.4" + +regexpu-core@^4.7.1: + version "4.7.1" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" + integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.2.0" + regjsgen "^0.5.1" + regjsparser "^0.6.4" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.2.0" + +regjsgen@^0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" + integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== + +regjsparser@^0.6.4: + version "0.6.9" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.9.tgz#b489eef7c9a2ce43727627011429cf833a7183e6" + integrity sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ== + dependencies: + jsesc "~0.5.0" + +resolve@^1.14.2, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.20.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +rollup-plugin-terser@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" + integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ== + dependencies: + "@babel/code-frame" "^7.10.4" + jest-worker "^26.2.1" + serialize-javascript "^4.0.0" + terser "^5.0.0" + +rollup-plugin-ts@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-ts/-/rollup-plugin-ts-1.4.0.tgz#c495d0e07b4f9e7bf1f89855b5d9fd3973b1770d" + integrity sha512-cSKYPzKj+MKOb5iC+amRRCexBnalsZ4n1WXVYPhk9k66eskKAWW/uxT5ioom2FxVP0g4H9vdjzu1ZT8s16WKwg== + dependencies: + "@babel/core" "^7.14.3" + "@babel/plugin-proposal-async-generator-functions" "^7.14.2" + "@babel/plugin-proposal-json-strings" "^7.14.2" + "@babel/plugin-proposal-object-rest-spread" "^7.14.4" + "@babel/plugin-proposal-optional-catch-binding" "^7.14.2" + "@babel/plugin-proposal-unicode-property-regex" "^7.12.13" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-transform-runtime" "^7.14.3" + "@babel/preset-env" "^7.14.4" + "@babel/runtime" "^7.14.0" + "@rollup/pluginutils" "^4.1.0" + "@types/babel__core" "^7.1.14" + "@wessberg/stringutil" "^1.0.19" + browserslist "^4.16.6" + browserslist-generator "^1.0.59" + chalk "^4.1.1" + compatfactory "^0.0.7" + crosspath "^0.0.9" + magic-string "^0.25.7" + ts-clone-node "^0.3.23" + tslib "^2.2.0" + +rollup@^2.38.5, rollup@^2.52.6: + version "2.53.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.53.1.tgz#b60439efd1eb41bdb56630509bd99aae78b575d3" + integrity sha512-yiTCvcYXZEulNWNlEONOQVlhXA/hgxjelFSjNcrwAAIfYx/xqjSHwqg/cCaWOyFRKr+IQBaXwt723m8tCaIUiw== + optionalDependencies: + fsevents "~2.3.2" + +safe-buffer@^5.1.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +semver@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.3.5: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" + +source-map-js@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" + integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== + +source-map-support@~0.5.19: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.5.0: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@~0.7.2: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +sourcemap-codec@^1.4.4: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +terser@^5.0.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.1.tgz#2dc7a61009b66bb638305cb2a824763b116bf784" + integrity sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg== + dependencies: + commander "^2.20.0" + source-map "~0.7.2" + source-map-support "~0.5.19" + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +ts-clone-node@^0.3.23: + version "0.3.24" + resolved "https://registry.yarnpkg.com/ts-clone-node/-/ts-clone-node-0.3.24.tgz#eb7483e93818de708513e31f64ca2d608f4442ec" + integrity sha512-C6fs6pEyzSqIwnsJ2T9UQmYY4v3wekwQ/enmqMdRsjazRX0aDFq8VJiJuxiIzX7wsd0p1+Jn5hjG2i8UYc/1RQ== + dependencies: + compatfactory "^0.0.8" + +tslib@^2.2.0, tslib@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e" + integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== + +typescript@^4.3.5: + version "4.3.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" + integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== + +ua-parser-js@^0.7.28: + version "0.7.28" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31" + integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g== + +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== + +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" + integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== + +unicode-property-aliases-ecmascript@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" + integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== + +vite@^2.4.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/vite/-/vite-2.4.2.tgz#07d00615775c808530bc9f65641062b349b67929" + integrity sha512-2MifxD2I9fjyDmmEzbULOo3kOUoqX90A58cT6mECxoVQlMYFuijZsPQBuA14mqSwvV3ydUsqnq+BRWXyO9Qa+w== + dependencies: + esbuild "^0.12.8" + postcss "^8.3.5" + resolve "^1.20.0" + rollup "^2.38.5" + optionalDependencies: + fsevents "~2.3.2" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==