@tarojs/router 3.3.6 → 3.3.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1567,7 +1567,7 @@ function createRouter(app, config, framework) {
1567
1567
  var location = ref.location;
1568
1568
  var action = ref.action;
1569
1569
 
1570
- var _a, _b, _c, _d;
1570
+ var _a, _b, _c, _d, _e;
1571
1571
  routerConfig.router.pathname = location.pathname;
1572
1572
  var element;
1573
1573
  try {
@@ -1638,8 +1638,20 @@ function createRouter(app, config, framework) {
1638
1638
  delete config$1['path'];
1639
1639
  delete config$1['load'];
1640
1640
  var pathname = basename ? location.pathname.replace(basename, '') : location.pathname;
1641
- var page = runtime.createPageConfig(enablePullDownRefresh ? (_d = runtimeHooks.createPullDownComponent) === null || _d === void 0 ? void 0 : _d.call(runtimeHooks, el, location.pathname, framework, routerConfig.PullDownRefresh) : el, pathname + runtime.stringify(qs(stacks.length)), {}, config$1);
1642
- loadPage(page, pageConfig, stacks.length);
1641
+ var routerIndex;
1642
+ var isTabBar = (_d = routerConfig.tabBar) === null || _d === void 0 ? void 0 : _d.list.some(function (TabBarItem) {
1643
+ var _a;
1644
+ return ((_a = TabBarItem.pagePath) === null || _a === void 0 ? void 0 : _a.replace(/\?.*/g, '')) === pathname;
1645
+ });
1646
+ if ((stacks === null || stacks === void 0 ? void 0 : stacks.length) > 0 && isTabBar) {
1647
+ routerIndex = stacks.findIndex(function (r) {
1648
+ var _a;
1649
+ return ((_a = r.path) === null || _a === void 0 ? void 0 : _a.replace(/\?.*/g, '')) === pathname;
1650
+ });
1651
+ }
1652
+ routerIndex = ((routerIndex || routerIndex === 0) && routerIndex !== -1) ? routerIndex : stacks.length;
1653
+ var page = runtime.createPageConfig(enablePullDownRefresh ? (_e = runtimeHooks.createPullDownComponent) === null || _e === void 0 ? void 0 : _e.call(runtimeHooks, el, location.pathname, framework, routerConfig.PullDownRefresh) : el, pathname + runtime.stringify(qs(routerIndex)), {}, config$1);
1654
+ loadPage(page, pageConfig, routerIndex);
1643
1655
  }
1644
1656
  }, 500);
1645
1657
  if (exports.history.location.pathname === '/') {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/history/index.js","../src/history.ts","../src/stack.ts","../src/utils.ts","../src/api.ts","../node_modules/path-to-regexp/index.js","../node_modules/universal-router/module.js","../src/tabbar.ts","../src/init.ts","../node_modules/strict-uri-encode/index.js","../node_modules/decode-uri-component/index.js","../node_modules/split-on-first/index.js","../node_modules/filter-obj/index.js","../node_modules/query-string/index.js","../src/qs.ts","../src/scroll.ts","../src/router.ts"],"sourcesContent":["export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import _extends from'@babel/runtime/helpers/esm/extends';var r,B=r||(r={});B.Pop=\"POP\";B.Push=\"PUSH\";B.Replace=\"REPLACE\";var C=\"production\"!==process.env.NODE_ENV?function(b){return Object.freeze(b)}:function(b){return b};function D(b,h){if(!b){\"undefined\"!==typeof console&&console.warn(h);try{throw Error(h);}catch(k){}}}function E(b){b.preventDefault();b.returnValue=\"\"}\nfunction F(){var b=[];return{get length(){return b.length},push:function(h){b.push(h);return function(){b=b.filter(function(k){return k!==h})}},call:function(h){b.forEach(function(k){return k&&k(h)})}}}function H(){return Math.random().toString(36).substr(2,8)}function I(b){var h=b.pathname,k=b.search;b=b.hash;return(void 0===h?\"/\":h)+(void 0===k?\"\":k)+(void 0===b?\"\":b)}\nfunction J(b){var h={};if(b){var k=b.indexOf(\"#\");0<=k&&(h.hash=b.substr(k),b=b.substr(0,k));k=b.indexOf(\"?\");0<=k&&(h.search=b.substr(k),b=b.substr(0,k));b&&(h.pathname=b)}return h}\nfunction createBrowserHistory(b){function h(){var c=p.location,a=m.state||{};return[a.idx,C({pathname:c.pathname,search:c.search,hash:c.hash,state:a.usr||null,key:a.key||\"default\"})]}function k(c){return\"string\"===typeof c?c:I(c)}function x(c,a){void 0===a&&(a=null);return C(_extends({},q,\"string\"===typeof c?J(c):c,{state:a,key:H()}))}function z(c){t=c;c=h();v=c[0];q=c[1];d.call({action:t,location:q})}function A(c,a){function e(){A(c,a)}var l=r.Push,g=x(c,a);if(!f.length||(f.call({action:l,\nlocation:g,retry:e}),!1)){var n=[{usr:g.state,key:g.key,idx:v+1},k(g)];g=n[0];n=n[1];try{m.pushState(g,\"\",n)}catch(G){p.location.assign(n)}z(l)}}function y(c,a){function e(){y(c,a)}var l=r.Replace,g=x(c,a);f.length&&(f.call({action:l,location:g,retry:e}),1)||(g=[{usr:g.state,key:g.key,idx:v},k(g)],m.replaceState(g[0],\"\",g[1]),z(l))}function w(c){m.go(c)}void 0===b&&(b={});b=b.window;var p=void 0===b?document.defaultView:b,m=p.history,u=null;p.addEventListener(\"popstate\",function(){if(u)f.call(u),\nu=null;else{var c=r.Pop,a=h(),e=a[0];a=a[1];if(f.length)if(null!=e){var l=v-e;l&&(u={action:c,location:a,retry:function(){w(-1*l)}},w(l))}else\"production\"!==process.env.NODE_ENV?D(!1,\"You are trying to block a POP navigation to a location that was not created by the history library. The block will fail silently in production, but in general you should do all navigation with the history library (instead of using window.history.pushState directly) to avoid this situation.\"):void 0;else z(c)}});var t=\nr.Pop;b=h();var v=b[0],q=b[1],d=F(),f=F();null==v&&(v=0,m.replaceState(_extends({},m.state,{idx:v}),\"\"));return{get action(){return t},get location(){return q},createHref:k,push:A,replace:y,go:w,back:function(){w(-1)},forward:function(){w(1)},listen:function(c){return d.push(c)},block:function(c){var a=f.push(c);1===f.length&&p.addEventListener(\"beforeunload\",E);return function(){a();f.length||p.removeEventListener(\"beforeunload\",E)}}}};\nfunction createHashHistory(b){function h(){var a=J(m.location.hash.substr(1)),e=a.pathname,l=a.search;a=a.hash;var g=u.state||{};return[g.idx,C({pathname:void 0===e?\"/\":e,search:void 0===l?\"\":l,hash:void 0===a?\"\":a,state:g.usr||null,key:g.key||\"default\"})]}function k(){if(t)c.call(t),t=null;else{var a=r.Pop,e=h(),l=e[0];e=e[1];if(c.length)if(null!=l){var g=q-l;g&&(t={action:a,location:e,retry:function(){p(-1*g)}},p(g))}else\"production\"!==process.env.NODE_ENV?D(!1,\"You are trying to block a POP navigation to a location that was not created by the history library. The block will fail silently in production, but in general you should do all navigation with the history library (instead of using window.history.pushState directly) to avoid this situation.\"):\nvoid 0;else A(a)}}function x(a){var e=document.querySelector(\"base\"),l=\"\";e&&e.getAttribute(\"href\")&&(e=m.location.href,l=e.indexOf(\"#\"),l=-1===l?e:e.slice(0,l));return l+\"#\"+(\"string\"===typeof a?a:I(a))}function z(a,e){void 0===e&&(e=null);return C(_extends({},d,\"string\"===typeof a?J(a):a,{state:e,key:H()}))}function A(a){v=a;a=h();q=a[0];d=a[1];f.call({action:v,location:d})}function y(a,e){function l(){y(a,e)}var g=r.Push,n=z(a,e);\"production\"!==process.env.NODE_ENV?D(\"/\"===n.pathname.charAt(0),\n\"Relative pathnames are not supported in hash history.push(\"+JSON.stringify(a)+\")\"):void 0;if(!c.length||(c.call({action:g,location:n,retry:l}),!1)){var G=[{usr:n.state,key:n.key,idx:q+1},x(n)];n=G[0];G=G[1];try{u.pushState(n,\"\",G)}catch(K){m.location.assign(G)}A(g)}}function w(a,e){function l(){w(a,e)}var g=r.Replace,n=z(a,e);\"production\"!==process.env.NODE_ENV?D(\"/\"===n.pathname.charAt(0),\"Relative pathnames are not supported in hash history.replace(\"+JSON.stringify(a)+\")\"):void 0;c.length&&(c.call({action:g,\nlocation:n,retry:l}),1)||(n=[{usr:n.state,key:n.key,idx:q},x(n)],u.replaceState(n[0],\"\",n[1]),A(g))}function p(a){u.go(a)}void 0===b&&(b={});b=b.window;var m=void 0===b?document.defaultView:b,u=m.history,t=null;m.addEventListener(\"popstate\",k);m.addEventListener(\"hashchange\",function(){var a=h()[1];I(a)!==I(d)&&k()});var v=r.Pop;b=h();var q=b[0],d=b[1],f=F(),c=F();null==q&&(q=0,u.replaceState(_extends({},u.state,{idx:q}),\"\"));return{get action(){return v},get location(){return d},createHref:x,push:y,\nreplace:w,go:p,back:function(){p(-1)},forward:function(){p(1)},listen:function(a){return f.push(a)},block:function(a){var e=c.push(a);1===c.length&&m.addEventListener(\"beforeunload\",E);return function(){e();c.length||m.removeEventListener(\"beforeunload\",E)}}}};\nfunction createMemoryHistory(b){function h(d,f){void 0===f&&(f=null);return C(_extends({},t,\"string\"===typeof d?J(d):d,{state:f,key:H()}))}function k(d,f,c){return!q.length||(q.call({action:d,location:f,retry:c}),!1)}function x(d,f){u=d;t=f;v.call({action:u,location:t})}function z(d,f){var c=r.Push,a=h(d,f);\"production\"!==process.env.NODE_ENV?D(\"/\"===t.pathname.charAt(0),\"Relative pathnames are not supported in memory history.push(\"+JSON.stringify(d)+\")\"):void 0;k(c,a,function(){z(d,f)})&&\n(m+=1,p.splice(m,p.length,a),x(c,a))}function A(d,f){var c=r.Replace,a=h(d,f);\"production\"!==process.env.NODE_ENV?D(\"/\"===t.pathname.charAt(0),\"Relative pathnames are not supported in memory history.replace(\"+JSON.stringify(d)+\")\"):void 0;k(c,a,function(){A(d,f)})&&(p[m]=a,x(c,a))}function y(d){var f=Math.min(Math.max(m+d,0),p.length-1),c=r.Pop,a=p[f];k(c,a,function(){y(d)})&&(m=f,x(c,a))}void 0===b&&(b={});var w=b;b=w.initialEntries;w=w.initialIndex;var p=(void 0===b?[\"/\"]:b).map(function(d){var f=\nC(_extends({pathname:\"/\",search:\"\",hash:\"\",state:null,key:H()},\"string\"===typeof d?J(d):d));\"production\"!==process.env.NODE_ENV?D(\"/\"===f.pathname.charAt(0),\"Relative pathnames are not supported in createMemoryHistory({ initialEntries }) (invalid entry: \"+JSON.stringify(d)+\")\"):void 0;return f}),m=Math.min(Math.max(null==w?p.length-1:w,0),p.length-1),u=r.Pop,t=p[m],v=F(),q=F();return{get index(){return m},get action(){return u},get location(){return t},createHref:function(d){return\"string\"===typeof d?\nd:I(d)},push:z,replace:A,go:y,back:function(){y(-1)},forward:function(){y(1)},listen:function(d){return v.push(d)},block:function(d){return q.push(d)}}};export{r as Action,createBrowserHistory,createHashHistory,createMemoryHistory,I as createPath,J as parsePath}\n//# sourceMappingURL=index.js.map\n","import { BrowserHistoryOptions, createBrowserHistory, createHashHistory, History } from 'history'\n\nexport let history: History\n\nlet basename = '/'\n\nexport function setHistoryMode (mode?: 'hash' | 'browser', base = '/') {\n const options: BrowserHistoryOptions = {\n window\n }\n basename = base\n if (mode === 'browser') {\n history = createBrowserHistory(options)\n } else {\n // default is hash\n history = createHashHistory(options)\n }\n}\n\nexport function parsePath (url = '') {\n return basename.replace(/\\/$/, '') + '/' + url.replace(/^\\//, '')\n}\n","import { PageInstance } from '@tarojs/runtime'\n\nexport const stacks: PageInstance[] = []\n","export let routesAlias = {}\n\nexport function setRoutesAlias (alias) {\n routesAlias = alias\n}\n\nexport function addLeadingSlash (path?: string) {\n if (path == null) {\n return ''\n }\n return path.charAt(0) === '/' ? path : '/' + path\n}\n\n// 解决navigateBack调用delta>1时,路由栈异常问题\n// 比如:A->B->C,navigateBack({delta: 2}),此时路由栈中还存在B页面\n// 原因:主要是由于一次性退出多层级页面时,此action只会执行一次,此处进行手动处理\nexport let historyBackDelta = 1\nexport function setHistoryBackDelta (delta: number) {\n historyBackDelta = delta\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const throttle = (fn: Function, threshold: number) => {\n let lastTime = 0\n return function () {\n const now = Date.now()\n if (now - lastTime > threshold) {\n fn.apply(this, arguments)\n lastTime = now\n }\n }\n}\n","import { stacks } from './stack'\nimport { history, parsePath } from './history'\nimport { routesAlias, addLeadingSlash, setHistoryBackDelta } from './utils'\n\ninterface Base {\n success?: (...args: any[]) => void\n fail?: (...args: any[]) => void\n complete?: (...args: any[]) => void\n}\n\ninterface Option extends Base {\n url: string\n}\n\ninterface NavigateBackOption extends Base {\n delta: number\n}\n\nfunction processNavigateUrl (option: Option) {\n let url = option.url\n const matches = option.url.match(/[?&?].*/)\n let parameters = ''\n if (matches && matches.length) {\n parameters = matches[0]\n url = url.replace(parameters, '')\n }\n Object.keys(routesAlias).forEach(key => {\n if (addLeadingSlash(key) === addLeadingSlash(url)) {\n option.url = routesAlias[key] + parameters\n }\n })\n}\n\nfunction navigate (option: Option | NavigateBackOption, method: 'navigateTo' | 'redirectTo' | 'navigateBack') {\n const { success, complete, fail } = option\n let failReason\n if ((option as Option).url) {\n processNavigateUrl(option as Option)\n }\n try {\n if (method === 'navigateTo') {\n history.push(parsePath((option as Option).url), { timestamp: Date.now() })\n } else if (method === 'redirectTo') {\n history.replace(parsePath((option as Option).url), { timestamp: Date.now() })\n } else if (method === 'navigateBack') {\n setHistoryBackDelta((option as NavigateBackOption).delta)\n history.go(-(option as NavigateBackOption).delta)\n }\n } catch (error) {\n failReason = error\n }\n\n return new Promise<void>((resolve, reject) => {\n if (failReason) {\n fail && fail(failReason)\n complete && complete()\n reject(failReason)\n return\n }\n\n const unlisten = history.listen(() => {\n success && success()\n complete && complete()\n resolve()\n unlisten()\n })\n })\n}\n\nexport function navigateTo (option: Option) {\n return navigate(option, 'navigateTo')\n}\n\nexport function redirectTo (option: Option) {\n return navigate(option, 'redirectTo')\n}\n\nexport function navigateBack (options: NavigateBackOption = { delta: 1 }) {\n if (!options.delta || options.delta < 1) {\n options.delta = 1\n }\n return navigate(options, 'navigateBack')\n}\n\nexport function switchTab (option: Option) {\n return navigateTo(option)\n}\n\nexport function reLaunch (option: Option) {\n return redirectTo(option)\n}\n\nexport function getCurrentPages () {\n return stacks\n}\n","/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.match = match\nmodule.exports.regexpToFunction = regexpToFunction\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * Default configs.\n */\nvar DEFAULT_DELIMITER = '/'\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \":test(\\\\d+)?\" => [\"test\", \"\\d+\", undefined, \"?\"]\n // \"(\\\\d+)\" => [undefined, undefined, \"\\d+\", undefined]\n '(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = (options && options.delimiter) || DEFAULT_DELIMITER\n var whitelist = (options && options.whitelist) || undefined\n var pathEscaped = false\n var res\n\n while ((res = PATH_REGEXP.exec(str)) !== null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n pathEscaped = true\n continue\n }\n\n var prev = ''\n var name = res[2]\n var capture = res[3]\n var group = res[4]\n var modifier = res[5]\n\n if (!pathEscaped && path.length) {\n var k = path.length - 1\n var c = path[k]\n var matches = whitelist ? whitelist.indexOf(c) > -1 : true\n\n if (matches) {\n prev = c\n path = path.slice(0, k)\n }\n }\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n pathEscaped = false\n }\n\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var pattern = capture || group\n var delimiter = prev || defaultDelimiter\n\n tokens.push({\n name: name || key++,\n prefix: prev,\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n pattern: pattern\n ? escapeGroup(pattern)\n : '[^' + escapeString(delimiter === defaultDelimiter ? delimiter : (delimiter + defaultDelimiter)) + ']+?'\n })\n }\n\n // Push any remaining characters.\n if (path || index < str.length) {\n tokens.push(path + str.substr(index))\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Create path match function from `path-to-regexp` spec.\n */\nfunction match (str, options) {\n var keys = []\n var re = pathToRegexp(str, keys, options)\n return regexpToFunction(re, keys)\n}\n\n/**\n * Create a path match function from `path-to-regexp` output.\n */\nfunction regexpToFunction (re, keys) {\n return function (pathname, options) {\n var m = re.exec(pathname)\n if (!m) return false\n\n var path = m[0]\n var index = m.index\n var params = {}\n var decode = (options && options.decode) || decodeURIComponent\n\n for (var i = 1; i < m.length; i++) {\n if (m[i] === undefined) continue\n\n var key = keys[i - 1]\n\n if (key.repeat) {\n params[key.name] = m[i].split(key.delimiter).map(function (value) {\n return decode(value, key)\n })\n } else {\n params[key.name] = decode(m[i], key)\n }\n }\n\n return { path: path, index: index, params: params }\n }\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (data, options) {\n var path = ''\n var encode = (options && options.encode) || encodeURIComponent\n var validate = options ? options.validate !== false : true\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n continue\n }\n\n var value = data ? data[token.name] : undefined\n var segment\n\n if (Array.isArray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but got array')\n }\n\n if (value.length === 0) {\n if (token.optional) continue\n\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j], token)\n\n if (validate && !matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\"')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n segment = encode(String(value), token)\n\n if (validate && !matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but got \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n continue\n }\n\n if (token.optional) continue\n\n throw new TypeError('Expected \"' + token.name + '\" to be ' + (token.repeat ? 'an array' : 'a string'))\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$/()])/g, '\\\\$1')\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {Array=} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n if (!keys) return path\n\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n pattern: null\n })\n }\n }\n\n return path\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n return new RegExp('(?:' + parts.join('|') + ')', flags(options))\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n options = options || {}\n\n var strict = options.strict\n var start = options.start !== false\n var end = options.end !== false\n var delimiter = options.delimiter || DEFAULT_DELIMITER\n var endsWith = [].concat(options.endsWith || []).map(escapeString).concat('$').join('|')\n var route = start ? '^' : ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var capture = token.repeat\n ? '(?:' + token.pattern + ')(?:' + escapeString(token.delimiter) + '(?:' + token.pattern + '))*'\n : token.pattern\n\n if (keys) keys.push(token)\n\n if (token.optional) {\n if (!token.prefix) {\n route += '(' + capture + ')?'\n } else {\n route += '(?:' + escapeString(token.prefix) + '(' + capture + '))?'\n }\n } else {\n route += escapeString(token.prefix) + '(' + capture + ')'\n }\n }\n }\n\n if (end) {\n if (!strict) route += '(?:' + escapeString(delimiter) + ')?'\n\n route += endsWith === '$' ? '$' : '(?=' + endsWith + ')'\n } else {\n var endToken = tokens[tokens.length - 1]\n var isEndDelimited = typeof endToken === 'string'\n ? endToken[endToken.length - 1] === delimiter\n : endToken === undefined\n\n if (!strict) route += '(?:' + escapeString(delimiter) + '(?=' + endsWith + '))?'\n if (!isEndDelimited) route += '(?=' + escapeString(delimiter) + '|' + endsWith + ')'\n }\n\n return new RegExp(route, flags(options))\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (path instanceof RegExp) {\n return regexpToRegexp(path, keys)\n }\n\n if (Array.isArray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), keys, options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), keys, options)\n}\n","/*! Universal Router | MIT License | https://www.kriasoft.com/universal-router/ */\n\nimport pathToRegexp from 'path-to-regexp';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar cache = new Map();\n\nfunction decodeParam(val) {\n try {\n return decodeURIComponent(val);\n } catch (err) {\n return val;\n }\n}\n\nfunction matchPath(route, pathname, parentKeys, parentParams) {\n var end = !route.children;\n var cacheKey = (route.path || '') + \"|\" + end;\n var regexp = cache.get(cacheKey);\n\n if (!regexp) {\n var keys = [];\n regexp = {\n keys: keys,\n pattern: pathToRegexp(route.path || '', keys, {\n end: end\n })\n };\n cache.set(cacheKey, regexp);\n }\n\n var m = regexp.pattern.exec(pathname);\n\n if (!m) {\n return null;\n }\n\n var path = m[0];\n var params = Object.assign({}, parentParams);\n\n for (var i = 1; i < m.length; i++) {\n var key = regexp.keys[i - 1];\n var prop = key.name;\n var value = m[i];\n\n if (value !== undefined || !hasOwnProperty.call(params, prop)) {\n if (key.repeat) {\n params[prop] = value ? value.split(key.delimiter).map(decodeParam) : [];\n } else {\n params[prop] = value ? decodeParam(value) : value;\n }\n }\n }\n\n return {\n path: !end && path.charAt(path.length - 1) === '/' ? path.substr(1) : path,\n keys: parentKeys.concat(regexp.keys),\n params: params\n };\n}\n\nfunction matchRoute(route, baseUrl, pathname, parentKeys, parentParams) {\n var match;\n var childMatches;\n var childIndex = 0;\n return {\n next: function next(routeToSkip) {\n if (route === routeToSkip) {\n return {\n done: true\n };\n }\n\n if (!match) {\n match = matchPath(route, pathname, parentKeys, parentParams);\n\n if (match) {\n return {\n done: false,\n value: {\n route: route,\n baseUrl: baseUrl,\n path: match.path,\n keys: match.keys,\n params: match.params\n }\n };\n }\n }\n\n if (match && route.children) {\n while (childIndex < route.children.length) {\n if (!childMatches) {\n var childRoute = route.children[childIndex];\n childRoute.parent = route;\n childMatches = matchRoute(childRoute, baseUrl + match.path, pathname.substr(match.path.length), match.keys, match.params);\n }\n\n var childMatch = childMatches.next(routeToSkip);\n\n if (!childMatch.done) {\n return {\n done: false,\n value: childMatch.value\n };\n }\n\n childMatches = null;\n childIndex++;\n }\n }\n\n return {\n done: true\n };\n }\n };\n}\n\nfunction resolveRoute(context, params) {\n if (typeof context.route.action === 'function') {\n return context.route.action(context, params);\n }\n\n return undefined;\n}\n\nfunction isChildRoute(parentRoute, childRoute) {\n var route = childRoute;\n\n while (route) {\n route = route.parent;\n\n if (route === parentRoute) {\n return true;\n }\n }\n\n return false;\n}\n\nvar UniversalRouter = function () {\n function UniversalRouter(routes, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (!routes || typeof routes !== 'object') {\n throw new TypeError('Invalid routes');\n }\n\n this.baseUrl = options.baseUrl || '';\n this.errorHandler = options.errorHandler;\n this.resolveRoute = options.resolveRoute || resolveRoute;\n this.context = Object.assign({\n router: this\n }, options.context);\n this.root = Array.isArray(routes) ? {\n path: '',\n children: routes,\n parent: null\n } : routes;\n this.root.parent = null;\n }\n\n var _proto = UniversalRouter.prototype;\n\n _proto.resolve = function resolve(pathnameOrContext) {\n var _this = this;\n\n var context = Object.assign({}, this.context, {}, typeof pathnameOrContext === 'string' ? {\n pathname: pathnameOrContext\n } : pathnameOrContext);\n var match = matchRoute(this.root, this.baseUrl, context.pathname.substr(this.baseUrl.length), [], null);\n var resolve = this.resolveRoute;\n var matches = null;\n var nextMatches = null;\n var currentContext = context;\n\n function next(resume, parent, prevResult) {\n if (parent === void 0) {\n parent = matches.value.route;\n }\n\n var routeToSkip = prevResult === null && !matches.done && matches.value.route;\n matches = nextMatches || match.next(routeToSkip);\n nextMatches = null;\n\n if (!resume) {\n if (matches.done || !isChildRoute(parent, matches.value.route)) {\n nextMatches = matches;\n return Promise.resolve(null);\n }\n }\n\n if (matches.done) {\n var error = new Error('Route not found');\n error.status = 404;\n return Promise.reject(error);\n }\n\n currentContext = Object.assign({}, context, {}, matches.value);\n return Promise.resolve(resolve(currentContext, matches.value.params)).then(function (result) {\n if (result !== null && result !== undefined) {\n return result;\n }\n\n return next(resume, parent, result);\n });\n }\n\n context.next = next;\n return Promise.resolve().then(function () {\n return next(true, _this.root);\n })[\"catch\"](function (error) {\n if (_this.errorHandler) {\n return _this.errorHandler(error, currentContext);\n }\n\n throw error;\n });\n };\n\n return UniversalRouter;\n}();\n\nUniversalRouter.pathToRegexp = pathToRegexp;\n\nexport default UniversalRouter;\n//# sourceMappingURL=module.js.map\n","import { AppConfig } from '@tarojs/taro'\nimport { history } from './history'\n\nexport function initTabbar (config: AppConfig) {\n if (config.tabBar == null) {\n return\n }\n\n // TODO: 找到 tabbar 的类型\n const tabbar = document.createElement('taro-tabbar') as any\n const homePage = config.pages ? config.pages[0] : ''\n tabbar.conf = config.tabBar\n tabbar.conf.homePage = history.location.pathname === '/' ? homePage : history.location.pathname\n const routerConfig = (config as any).router\n tabbar.conf.mode = routerConfig && routerConfig.mode ? routerConfig.mode : 'hash'\n tabbar.conf.custom = !!routerConfig.customRoutes\n if (routerConfig.customRoutes) {\n tabbar.conf.custom = true\n tabbar.conf.customRoutes = routerConfig.customRoutes\n } else {\n tabbar.conf.custom = false\n tabbar.conf.customRoutes = {}\n }\n const container = document.getElementById('container')\n // eslint-disable-next-line no-unused-expressions\n container?.appendChild(tabbar)\n}\n","import { initTabbar } from './tabbar'\nimport { setHistoryMode } from './history'\nimport { RouterConfig } from './router'\n\nexport const routerConfig: RouterConfig = Object.create(null)\n\nexport function init (config: RouterConfig) {\n config.router.mode = config.router.mode || 'hash'\n setHistoryMode(config.router.mode, config.router.basename)\n Object.assign(routerConfig, config)\n document.getElementById('app')?.remove()\n\n const container = document.createElement('div')\n container.classList.add('taro-tabbar__container')\n container.id = 'container'\n\n const panel = document.createElement('div')\n panel.classList.add('taro-tabbar__panel')\n\n const app = document.createElement('div')\n app.id = 'app'\n app.classList.add('taro_router')\n\n panel.appendChild(app)\n container.appendChild(panel)\n\n document.body.appendChild(container)\n\n initTabbar(config)\n}\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (value === null || value === undefined || value.length === 0) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${encode(object.fragmentIdentifier, options)}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","import { routerConfig } from './init'\nimport queryString from 'query-string'\n\nexport const qs = function (stamp = 0) {\n const search = routerConfig.router.mode === 'hash'\n ? location.hash.slice(routerConfig.router.pathname.length + 1)\n : location.search\n const query = search\n ? queryString.parse(search.substr(1))\n : {}\n\n if (stamp) {\n query.stamp = stamp.toString()\n }\n return query\n}\n","import type { PageInstance } from '@tarojs/runtime'\nimport { PageConfig } from '@tarojs/taro'\n\nlet pageScrollFn\nlet pageDOM: Element | Window = window\n\nexport function bindPageScroll (page: PageInstance, config: Partial<PageConfig>) {\n pageDOM.removeEventListener('scroll', pageScrollFn)\n pageDOM = getScrollContainer()\n\n const distance = config.onReachBottomDistance || 50\n let isReachBottom = false\n\n pageScrollFn = function () {\n page.onPageScroll && page.onPageScroll({\n scrollTop: pageDOM instanceof Window ? window.scrollY : pageDOM.scrollTop\n })\n\n if (isReachBottom && getOffset() > distance) {\n isReachBottom = false\n }\n\n if (\n page.onReachBottom &&\n !isReachBottom &&\n getOffset() < distance\n ) {\n isReachBottom = true\n page.onReachBottom()\n }\n }\n\n pageDOM.addEventListener('scroll', pageScrollFn, false)\n}\n\nwindow.addEventListener('DOMSubtreeModified', (e) => {\n // @ts-ignore\n const className = e.target?.className\n if (className && /taro-tabbar__/.test(className)) {\n pageDOM.removeEventListener('scroll', pageScrollFn)\n pageDOM = getScrollContainer()\n pageDOM.addEventListener('scroll', pageScrollFn, false)\n }\n}, false)\n\nfunction getScrollContainer (): Element | Window {\n if (document.querySelector('.taro-tabbar__tabbar') === null) {\n // 没设置tabbar\n return window\n } else {\n // 有设置tabbar\n return document.querySelector('.taro-tabbar__panel') || window\n }\n}\n\nfunction getOffset () {\n if (pageDOM instanceof Window) {\n return document.documentElement.scrollHeight - window.scrollY - window.innerHeight\n } else {\n return pageDOM.scrollHeight - pageDOM.scrollTop - pageDOM.clientHeight\n }\n}\n","/* eslint-disable dot-notation */\nimport UniversalRouter, { Routes } from 'universal-router'\nimport { Listener as LocationListener, State as LocationState, Action as LocationAction } from 'history'\nimport { createPageConfig, Current, eventCenter, container, SERVICE_IDENTIFIER, stringify, requestAnimationFrame } from '@tarojs/runtime'\nimport { qs } from './qs'\nimport { history, parsePath } from './history'\nimport { stacks } from './stack'\nimport { init, routerConfig } from './init'\nimport { bindPageScroll } from './scroll'\nimport { setRoutesAlias, addLeadingSlash, historyBackDelta, setHistoryBackDelta, throttle } from './utils'\n\nimport type { AppConfig, PageConfig } from '@tarojs/taro'\nimport type { PageInstance, AppInstance, IHooks } from '@tarojs/runtime'\n\nexport interface Route extends PageConfig {\n path?: string\n load?: () => Promise<any>\n}\n\nexport interface RouterConfig extends AppConfig {\n routes: Route[],\n router: {\n mode: 'hash' | 'browser'\n basename: string,\n customRoutes?: Record<string, string>,\n pathname: string,\n forcePath?: string\n },\n PullDownRefresh?: any\n}\n\nfunction hidePage (page: PageInstance | null) {\n if (page != null) {\n page.onHide!()\n const pageEl = document.getElementById(page.path!)\n if (pageEl) {\n pageEl.style.display = 'none'\n }\n }\n}\n\nfunction showPage (page: PageInstance | null, pageConfig: Route | undefined, stacksIndex = 0) {\n if (page != null) {\n page.onShow!()\n let pageEl = document.getElementById(page.path!)\n if (pageEl) {\n pageEl.style.display = 'block'\n } else {\n page.onLoad(qs(stacksIndex))\n pageEl = document.getElementById(page.path!)\n pageOnReady(pageEl, page, false)\n }\n bindPageScroll(page, pageConfig || {})\n }\n}\n\nfunction unloadPage (page: PageInstance | null) {\n if (page != null) {\n stacks.pop()\n page.onUnload()\n }\n}\n\nfunction pageOnReady (pageEl: Element | null, page: PageInstance, onLoad = true) {\n if (pageEl && !pageEl?.['__isReady']) {\n const el = pageEl.firstElementChild\n // eslint-disable-next-line no-unused-expressions\n el?.['componentOnReady']?.().then(() => {\n requestAnimationFrame(() => {\n page.onReady!()\n pageEl!['__isReady'] = true\n })\n })\n onLoad && (pageEl['__page'] = page)\n }\n}\n\nfunction loadPage (page: PageInstance | null, pageConfig: Route | undefined, stacksIndex = 0) {\n if (page !== null) {\n let pageEl = document.getElementById(page.path!)\n if (pageEl) {\n pageEl.style.display = 'block'\n } else {\n page.onLoad(qs(stacksIndex), function () {\n pageEl = document.getElementById(page.path!)\n pageOnReady(pageEl, page)\n })\n }\n stacks.push(page)\n page.onShow!()\n bindPageScroll(page, pageConfig || {})\n }\n}\n\nexport function createRouter (\n app: AppInstance,\n config: RouterConfig,\n framework\n) {\n init(config)\n\n const routes: Routes = []\n const alias = config.router.customRoutes ?? {}\n const runtimeHooks = container.get<IHooks>(SERVICE_IDENTIFIER.Hooks)\n\n setRoutesAlias(alias)\n for (let i = 0; i < config.routes.length; i++) {\n const route = config.routes[i]\n const path = addLeadingSlash(route.path)\n routes.push({\n path: alias[path] || path,\n action: route.load\n })\n }\n\n const basename = config.router.basename\n const router = new UniversalRouter(routes, { baseUrl: basename || '' })\n app.onLaunch!()\n\n const render: LocationListener<LocationState> = throttle(async ({ location, action }) => {\n routerConfig.router.pathname = location.pathname\n let element\n try {\n element = await router.resolve(config.router.forcePath || location.pathname)\n } catch (error) {\n if (error.status === 404) {\n app.onPageNotFound?.({\n path: location.pathname\n })\n } else {\n throw new Error(error)\n }\n }\n if (!element) return\n const pageConfig = config.routes.find(r => {\n const path = addLeadingSlash(r.path)\n return path === location.pathname || alias[path] === location.pathname\n })\n let enablePullDownRefresh = false\n\n eventCenter.trigger('__taroRouterChange', {\n toLocation: {\n path: location.pathname\n }\n })\n\n if (pageConfig) {\n document.title = pageConfig.navigationBarTitleText ?? document.title\n enablePullDownRefresh = pageConfig.enablePullDownRefresh!\n }\n\n let shouldLoad = false\n\n if (action === 'POP') {\n unloadPage(Current.page)\n let delta = historyBackDelta\n while (delta-- > 1) {\n unloadPage(stacks.slice(-1)[0])\n }\n // 最终必须重置为 1\n setHistoryBackDelta(1)\n const prevIndex = stacks.reduceRight((p, s, i) => {\n if (p !== 0) return p\n else if (s.path === location.pathname + stringify(qs(i))) return i\n else return 0\n }, 0)\n const prev = stacks[prevIndex]\n if (prev) {\n showPage(prev, pageConfig, prevIndex)\n } else {\n shouldLoad = true\n }\n } else if (action === 'PUSH') {\n hidePage(Current.page)\n shouldLoad = true\n } else if (action === 'REPLACE') {\n unloadPage(Current.page)\n shouldLoad = true\n }\n\n if (shouldLoad) {\n const el = element.default ?? element\n const config = { ...pageConfig }\n delete config['path']\n delete config['load']\n\n const pathname = basename ? location.pathname.replace(basename, '') : location.pathname\n const page = createPageConfig(\n enablePullDownRefresh ? runtimeHooks.createPullDownComponent?.(el, location.pathname, framework, routerConfig.PullDownRefresh) : el,\n pathname + stringify(qs(stacks.length)),\n {},\n config\n )\n loadPage(page, pageConfig, stacks.length)\n }\n }, 500)\n\n if (history.location.pathname === '/') {\n history.replace(parsePath(routes[0].path as string + history.location.search))\n }\n\n render({ location: history.location, action: LocationAction.Push })\n\n app.onShow!(qs(stacks.length))\n\n return history.listen(render)\n}\n"],"names":["arguments","let","const","history","pathToRegexp","decodeComponent","key","value","filterObject","requestAnimationFrame","container","SERVICE_IDENTIFIER","eventCenter","Current","stringify","config","createPageConfig","LocationAction"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/history/index.js","../src/history.ts","../src/stack.ts","../src/utils.ts","../src/api.ts","../node_modules/path-to-regexp/index.js","../node_modules/universal-router/module.js","../src/tabbar.ts","../src/init.ts","../node_modules/strict-uri-encode/index.js","../node_modules/decode-uri-component/index.js","../node_modules/split-on-first/index.js","../node_modules/filter-obj/index.js","../node_modules/query-string/index.js","../src/qs.ts","../src/scroll.ts","../src/router.ts"],"sourcesContent":["export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import _extends from'@babel/runtime/helpers/esm/extends';var r,B=r||(r={});B.Pop=\"POP\";B.Push=\"PUSH\";B.Replace=\"REPLACE\";var C=\"production\"!==process.env.NODE_ENV?function(b){return Object.freeze(b)}:function(b){return b};function D(b,h){if(!b){\"undefined\"!==typeof console&&console.warn(h);try{throw Error(h);}catch(k){}}}function E(b){b.preventDefault();b.returnValue=\"\"}\nfunction F(){var b=[];return{get length(){return b.length},push:function(h){b.push(h);return function(){b=b.filter(function(k){return k!==h})}},call:function(h){b.forEach(function(k){return k&&k(h)})}}}function H(){return Math.random().toString(36).substr(2,8)}function I(b){var h=b.pathname,k=b.search;b=b.hash;return(void 0===h?\"/\":h)+(void 0===k?\"\":k)+(void 0===b?\"\":b)}\nfunction J(b){var h={};if(b){var k=b.indexOf(\"#\");0<=k&&(h.hash=b.substr(k),b=b.substr(0,k));k=b.indexOf(\"?\");0<=k&&(h.search=b.substr(k),b=b.substr(0,k));b&&(h.pathname=b)}return h}\nfunction createBrowserHistory(b){function h(){var c=p.location,a=m.state||{};return[a.idx,C({pathname:c.pathname,search:c.search,hash:c.hash,state:a.usr||null,key:a.key||\"default\"})]}function k(c){return\"string\"===typeof c?c:I(c)}function x(c,a){void 0===a&&(a=null);return C(_extends({},q,\"string\"===typeof c?J(c):c,{state:a,key:H()}))}function z(c){t=c;c=h();v=c[0];q=c[1];d.call({action:t,location:q})}function A(c,a){function e(){A(c,a)}var l=r.Push,g=x(c,a);if(!f.length||(f.call({action:l,\nlocation:g,retry:e}),!1)){var n=[{usr:g.state,key:g.key,idx:v+1},k(g)];g=n[0];n=n[1];try{m.pushState(g,\"\",n)}catch(G){p.location.assign(n)}z(l)}}function y(c,a){function e(){y(c,a)}var l=r.Replace,g=x(c,a);f.length&&(f.call({action:l,location:g,retry:e}),1)||(g=[{usr:g.state,key:g.key,idx:v},k(g)],m.replaceState(g[0],\"\",g[1]),z(l))}function w(c){m.go(c)}void 0===b&&(b={});b=b.window;var p=void 0===b?document.defaultView:b,m=p.history,u=null;p.addEventListener(\"popstate\",function(){if(u)f.call(u),\nu=null;else{var c=r.Pop,a=h(),e=a[0];a=a[1];if(f.length)if(null!=e){var l=v-e;l&&(u={action:c,location:a,retry:function(){w(-1*l)}},w(l))}else\"production\"!==process.env.NODE_ENV?D(!1,\"You are trying to block a POP navigation to a location that was not created by the history library. The block will fail silently in production, but in general you should do all navigation with the history library (instead of using window.history.pushState directly) to avoid this situation.\"):void 0;else z(c)}});var t=\nr.Pop;b=h();var v=b[0],q=b[1],d=F(),f=F();null==v&&(v=0,m.replaceState(_extends({},m.state,{idx:v}),\"\"));return{get action(){return t},get location(){return q},createHref:k,push:A,replace:y,go:w,back:function(){w(-1)},forward:function(){w(1)},listen:function(c){return d.push(c)},block:function(c){var a=f.push(c);1===f.length&&p.addEventListener(\"beforeunload\",E);return function(){a();f.length||p.removeEventListener(\"beforeunload\",E)}}}};\nfunction createHashHistory(b){function h(){var a=J(m.location.hash.substr(1)),e=a.pathname,l=a.search;a=a.hash;var g=u.state||{};return[g.idx,C({pathname:void 0===e?\"/\":e,search:void 0===l?\"\":l,hash:void 0===a?\"\":a,state:g.usr||null,key:g.key||\"default\"})]}function k(){if(t)c.call(t),t=null;else{var a=r.Pop,e=h(),l=e[0];e=e[1];if(c.length)if(null!=l){var g=q-l;g&&(t={action:a,location:e,retry:function(){p(-1*g)}},p(g))}else\"production\"!==process.env.NODE_ENV?D(!1,\"You are trying to block a POP navigation to a location that was not created by the history library. The block will fail silently in production, but in general you should do all navigation with the history library (instead of using window.history.pushState directly) to avoid this situation.\"):\nvoid 0;else A(a)}}function x(a){var e=document.querySelector(\"base\"),l=\"\";e&&e.getAttribute(\"href\")&&(e=m.location.href,l=e.indexOf(\"#\"),l=-1===l?e:e.slice(0,l));return l+\"#\"+(\"string\"===typeof a?a:I(a))}function z(a,e){void 0===e&&(e=null);return C(_extends({},d,\"string\"===typeof a?J(a):a,{state:e,key:H()}))}function A(a){v=a;a=h();q=a[0];d=a[1];f.call({action:v,location:d})}function y(a,e){function l(){y(a,e)}var g=r.Push,n=z(a,e);\"production\"!==process.env.NODE_ENV?D(\"/\"===n.pathname.charAt(0),\n\"Relative pathnames are not supported in hash history.push(\"+JSON.stringify(a)+\")\"):void 0;if(!c.length||(c.call({action:g,location:n,retry:l}),!1)){var G=[{usr:n.state,key:n.key,idx:q+1},x(n)];n=G[0];G=G[1];try{u.pushState(n,\"\",G)}catch(K){m.location.assign(G)}A(g)}}function w(a,e){function l(){w(a,e)}var g=r.Replace,n=z(a,e);\"production\"!==process.env.NODE_ENV?D(\"/\"===n.pathname.charAt(0),\"Relative pathnames are not supported in hash history.replace(\"+JSON.stringify(a)+\")\"):void 0;c.length&&(c.call({action:g,\nlocation:n,retry:l}),1)||(n=[{usr:n.state,key:n.key,idx:q},x(n)],u.replaceState(n[0],\"\",n[1]),A(g))}function p(a){u.go(a)}void 0===b&&(b={});b=b.window;var m=void 0===b?document.defaultView:b,u=m.history,t=null;m.addEventListener(\"popstate\",k);m.addEventListener(\"hashchange\",function(){var a=h()[1];I(a)!==I(d)&&k()});var v=r.Pop;b=h();var q=b[0],d=b[1],f=F(),c=F();null==q&&(q=0,u.replaceState(_extends({},u.state,{idx:q}),\"\"));return{get action(){return v},get location(){return d},createHref:x,push:y,\nreplace:w,go:p,back:function(){p(-1)},forward:function(){p(1)},listen:function(a){return f.push(a)},block:function(a){var e=c.push(a);1===c.length&&m.addEventListener(\"beforeunload\",E);return function(){e();c.length||m.removeEventListener(\"beforeunload\",E)}}}};\nfunction createMemoryHistory(b){function h(d,f){void 0===f&&(f=null);return C(_extends({},t,\"string\"===typeof d?J(d):d,{state:f,key:H()}))}function k(d,f,c){return!q.length||(q.call({action:d,location:f,retry:c}),!1)}function x(d,f){u=d;t=f;v.call({action:u,location:t})}function z(d,f){var c=r.Push,a=h(d,f);\"production\"!==process.env.NODE_ENV?D(\"/\"===t.pathname.charAt(0),\"Relative pathnames are not supported in memory history.push(\"+JSON.stringify(d)+\")\"):void 0;k(c,a,function(){z(d,f)})&&\n(m+=1,p.splice(m,p.length,a),x(c,a))}function A(d,f){var c=r.Replace,a=h(d,f);\"production\"!==process.env.NODE_ENV?D(\"/\"===t.pathname.charAt(0),\"Relative pathnames are not supported in memory history.replace(\"+JSON.stringify(d)+\")\"):void 0;k(c,a,function(){A(d,f)})&&(p[m]=a,x(c,a))}function y(d){var f=Math.min(Math.max(m+d,0),p.length-1),c=r.Pop,a=p[f];k(c,a,function(){y(d)})&&(m=f,x(c,a))}void 0===b&&(b={});var w=b;b=w.initialEntries;w=w.initialIndex;var p=(void 0===b?[\"/\"]:b).map(function(d){var f=\nC(_extends({pathname:\"/\",search:\"\",hash:\"\",state:null,key:H()},\"string\"===typeof d?J(d):d));\"production\"!==process.env.NODE_ENV?D(\"/\"===f.pathname.charAt(0),\"Relative pathnames are not supported in createMemoryHistory({ initialEntries }) (invalid entry: \"+JSON.stringify(d)+\")\"):void 0;return f}),m=Math.min(Math.max(null==w?p.length-1:w,0),p.length-1),u=r.Pop,t=p[m],v=F(),q=F();return{get index(){return m},get action(){return u},get location(){return t},createHref:function(d){return\"string\"===typeof d?\nd:I(d)},push:z,replace:A,go:y,back:function(){y(-1)},forward:function(){y(1)},listen:function(d){return v.push(d)},block:function(d){return q.push(d)}}};export{r as Action,createBrowserHistory,createHashHistory,createMemoryHistory,I as createPath,J as parsePath}\n//# sourceMappingURL=index.js.map\n","import { BrowserHistoryOptions, createBrowserHistory, createHashHistory, History } from 'history'\n\nexport let history: History\n\nlet basename = '/'\n\nexport function setHistoryMode (mode?: 'hash' | 'browser', base = '/') {\n const options: BrowserHistoryOptions = {\n window\n }\n basename = base\n if (mode === 'browser') {\n history = createBrowserHistory(options)\n } else {\n // default is hash\n history = createHashHistory(options)\n }\n}\n\nexport function parsePath (url = '') {\n return basename.replace(/\\/$/, '') + '/' + url.replace(/^\\//, '')\n}\n","import { PageInstance } from '@tarojs/runtime'\n\nexport const stacks: PageInstance[] = []\n","export let routesAlias = {}\n\nexport function setRoutesAlias (alias) {\n routesAlias = alias\n}\n\nexport function addLeadingSlash (path?: string) {\n if (path == null) {\n return ''\n }\n return path.charAt(0) === '/' ? path : '/' + path\n}\n\n// 解决navigateBack调用delta>1时,路由栈异常问题\n// 比如:A->B->C,navigateBack({delta: 2}),此时路由栈中还存在B页面\n// 原因:主要是由于一次性退出多层级页面时,此action只会执行一次,此处进行手动处理\nexport let historyBackDelta = 1\nexport function setHistoryBackDelta (delta: number) {\n historyBackDelta = delta\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const throttle = (fn: Function, threshold: number) => {\n let lastTime = 0\n return function () {\n const now = Date.now()\n if (now - lastTime > threshold) {\n fn.apply(this, arguments)\n lastTime = now\n }\n }\n}\n","import { stacks } from './stack'\nimport { history, parsePath } from './history'\nimport { routesAlias, addLeadingSlash, setHistoryBackDelta } from './utils'\n\ninterface Base {\n success?: (...args: any[]) => void\n fail?: (...args: any[]) => void\n complete?: (...args: any[]) => void\n}\n\ninterface Option extends Base {\n url: string\n}\n\ninterface NavigateBackOption extends Base {\n delta: number\n}\n\nfunction processNavigateUrl (option: Option) {\n let url = option.url\n const matches = option.url.match(/[?&?].*/)\n let parameters = ''\n if (matches && matches.length) {\n parameters = matches[0]\n url = url.replace(parameters, '')\n }\n Object.keys(routesAlias).forEach(key => {\n if (addLeadingSlash(key) === addLeadingSlash(url)) {\n option.url = routesAlias[key] + parameters\n }\n })\n}\n\nfunction navigate (option: Option | NavigateBackOption, method: 'navigateTo' | 'redirectTo' | 'navigateBack') {\n const { success, complete, fail } = option\n let failReason\n if ((option as Option).url) {\n processNavigateUrl(option as Option)\n }\n try {\n if (method === 'navigateTo') {\n history.push(parsePath((option as Option).url), { timestamp: Date.now() })\n } else if (method === 'redirectTo') {\n history.replace(parsePath((option as Option).url), { timestamp: Date.now() })\n } else if (method === 'navigateBack') {\n setHistoryBackDelta((option as NavigateBackOption).delta)\n history.go(-(option as NavigateBackOption).delta)\n }\n } catch (error) {\n failReason = error\n }\n\n return new Promise<void>((resolve, reject) => {\n if (failReason) {\n fail && fail(failReason)\n complete && complete()\n reject(failReason)\n return\n }\n\n const unlisten = history.listen(() => {\n success && success()\n complete && complete()\n resolve()\n unlisten()\n })\n })\n}\n\nexport function navigateTo (option: Option) {\n return navigate(option, 'navigateTo')\n}\n\nexport function redirectTo (option: Option) {\n return navigate(option, 'redirectTo')\n}\n\nexport function navigateBack (options: NavigateBackOption = { delta: 1 }) {\n if (!options.delta || options.delta < 1) {\n options.delta = 1\n }\n return navigate(options, 'navigateBack')\n}\n\nexport function switchTab (option: Option) {\n return navigateTo(option)\n}\n\nexport function reLaunch (option: Option) {\n return redirectTo(option)\n}\n\nexport function getCurrentPages () {\n return stacks\n}\n","/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.match = match\nmodule.exports.regexpToFunction = regexpToFunction\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * Default configs.\n */\nvar DEFAULT_DELIMITER = '/'\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \":test(\\\\d+)?\" => [\"test\", \"\\d+\", undefined, \"?\"]\n // \"(\\\\d+)\" => [undefined, undefined, \"\\d+\", undefined]\n '(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = (options && options.delimiter) || DEFAULT_DELIMITER\n var whitelist = (options && options.whitelist) || undefined\n var pathEscaped = false\n var res\n\n while ((res = PATH_REGEXP.exec(str)) !== null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n pathEscaped = true\n continue\n }\n\n var prev = ''\n var name = res[2]\n var capture = res[3]\n var group = res[4]\n var modifier = res[5]\n\n if (!pathEscaped && path.length) {\n var k = path.length - 1\n var c = path[k]\n var matches = whitelist ? whitelist.indexOf(c) > -1 : true\n\n if (matches) {\n prev = c\n path = path.slice(0, k)\n }\n }\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n pathEscaped = false\n }\n\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var pattern = capture || group\n var delimiter = prev || defaultDelimiter\n\n tokens.push({\n name: name || key++,\n prefix: prev,\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n pattern: pattern\n ? escapeGroup(pattern)\n : '[^' + escapeString(delimiter === defaultDelimiter ? delimiter : (delimiter + defaultDelimiter)) + ']+?'\n })\n }\n\n // Push any remaining characters.\n if (path || index < str.length) {\n tokens.push(path + str.substr(index))\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Create path match function from `path-to-regexp` spec.\n */\nfunction match (str, options) {\n var keys = []\n var re = pathToRegexp(str, keys, options)\n return regexpToFunction(re, keys)\n}\n\n/**\n * Create a path match function from `path-to-regexp` output.\n */\nfunction regexpToFunction (re, keys) {\n return function (pathname, options) {\n var m = re.exec(pathname)\n if (!m) return false\n\n var path = m[0]\n var index = m.index\n var params = {}\n var decode = (options && options.decode) || decodeURIComponent\n\n for (var i = 1; i < m.length; i++) {\n if (m[i] === undefined) continue\n\n var key = keys[i - 1]\n\n if (key.repeat) {\n params[key.name] = m[i].split(key.delimiter).map(function (value) {\n return decode(value, key)\n })\n } else {\n params[key.name] = decode(m[i], key)\n }\n }\n\n return { path: path, index: index, params: params }\n }\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (data, options) {\n var path = ''\n var encode = (options && options.encode) || encodeURIComponent\n var validate = options ? options.validate !== false : true\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n continue\n }\n\n var value = data ? data[token.name] : undefined\n var segment\n\n if (Array.isArray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but got array')\n }\n\n if (value.length === 0) {\n if (token.optional) continue\n\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j], token)\n\n if (validate && !matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\"')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n segment = encode(String(value), token)\n\n if (validate && !matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but got \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n continue\n }\n\n if (token.optional) continue\n\n throw new TypeError('Expected \"' + token.name + '\" to be ' + (token.repeat ? 'an array' : 'a string'))\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$/()])/g, '\\\\$1')\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {Array=} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n if (!keys) return path\n\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n pattern: null\n })\n }\n }\n\n return path\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n return new RegExp('(?:' + parts.join('|') + ')', flags(options))\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n options = options || {}\n\n var strict = options.strict\n var start = options.start !== false\n var end = options.end !== false\n var delimiter = options.delimiter || DEFAULT_DELIMITER\n var endsWith = [].concat(options.endsWith || []).map(escapeString).concat('$').join('|')\n var route = start ? '^' : ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var capture = token.repeat\n ? '(?:' + token.pattern + ')(?:' + escapeString(token.delimiter) + '(?:' + token.pattern + '))*'\n : token.pattern\n\n if (keys) keys.push(token)\n\n if (token.optional) {\n if (!token.prefix) {\n route += '(' + capture + ')?'\n } else {\n route += '(?:' + escapeString(token.prefix) + '(' + capture + '))?'\n }\n } else {\n route += escapeString(token.prefix) + '(' + capture + ')'\n }\n }\n }\n\n if (end) {\n if (!strict) route += '(?:' + escapeString(delimiter) + ')?'\n\n route += endsWith === '$' ? '$' : '(?=' + endsWith + ')'\n } else {\n var endToken = tokens[tokens.length - 1]\n var isEndDelimited = typeof endToken === 'string'\n ? endToken[endToken.length - 1] === delimiter\n : endToken === undefined\n\n if (!strict) route += '(?:' + escapeString(delimiter) + '(?=' + endsWith + '))?'\n if (!isEndDelimited) route += '(?=' + escapeString(delimiter) + '|' + endsWith + ')'\n }\n\n return new RegExp(route, flags(options))\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (path instanceof RegExp) {\n return regexpToRegexp(path, keys)\n }\n\n if (Array.isArray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), keys, options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), keys, options)\n}\n","/*! Universal Router | MIT License | https://www.kriasoft.com/universal-router/ */\n\nimport pathToRegexp from 'path-to-regexp';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar cache = new Map();\n\nfunction decodeParam(val) {\n try {\n return decodeURIComponent(val);\n } catch (err) {\n return val;\n }\n}\n\nfunction matchPath(route, pathname, parentKeys, parentParams) {\n var end = !route.children;\n var cacheKey = (route.path || '') + \"|\" + end;\n var regexp = cache.get(cacheKey);\n\n if (!regexp) {\n var keys = [];\n regexp = {\n keys: keys,\n pattern: pathToRegexp(route.path || '', keys, {\n end: end\n })\n };\n cache.set(cacheKey, regexp);\n }\n\n var m = regexp.pattern.exec(pathname);\n\n if (!m) {\n return null;\n }\n\n var path = m[0];\n var params = Object.assign({}, parentParams);\n\n for (var i = 1; i < m.length; i++) {\n var key = regexp.keys[i - 1];\n var prop = key.name;\n var value = m[i];\n\n if (value !== undefined || !hasOwnProperty.call(params, prop)) {\n if (key.repeat) {\n params[prop] = value ? value.split(key.delimiter).map(decodeParam) : [];\n } else {\n params[prop] = value ? decodeParam(value) : value;\n }\n }\n }\n\n return {\n path: !end && path.charAt(path.length - 1) === '/' ? path.substr(1) : path,\n keys: parentKeys.concat(regexp.keys),\n params: params\n };\n}\n\nfunction matchRoute(route, baseUrl, pathname, parentKeys, parentParams) {\n var match;\n var childMatches;\n var childIndex = 0;\n return {\n next: function next(routeToSkip) {\n if (route === routeToSkip) {\n return {\n done: true\n };\n }\n\n if (!match) {\n match = matchPath(route, pathname, parentKeys, parentParams);\n\n if (match) {\n return {\n done: false,\n value: {\n route: route,\n baseUrl: baseUrl,\n path: match.path,\n keys: match.keys,\n params: match.params\n }\n };\n }\n }\n\n if (match && route.children) {\n while (childIndex < route.children.length) {\n if (!childMatches) {\n var childRoute = route.children[childIndex];\n childRoute.parent = route;\n childMatches = matchRoute(childRoute, baseUrl + match.path, pathname.substr(match.path.length), match.keys, match.params);\n }\n\n var childMatch = childMatches.next(routeToSkip);\n\n if (!childMatch.done) {\n return {\n done: false,\n value: childMatch.value\n };\n }\n\n childMatches = null;\n childIndex++;\n }\n }\n\n return {\n done: true\n };\n }\n };\n}\n\nfunction resolveRoute(context, params) {\n if (typeof context.route.action === 'function') {\n return context.route.action(context, params);\n }\n\n return undefined;\n}\n\nfunction isChildRoute(parentRoute, childRoute) {\n var route = childRoute;\n\n while (route) {\n route = route.parent;\n\n if (route === parentRoute) {\n return true;\n }\n }\n\n return false;\n}\n\nvar UniversalRouter = function () {\n function UniversalRouter(routes, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (!routes || typeof routes !== 'object') {\n throw new TypeError('Invalid routes');\n }\n\n this.baseUrl = options.baseUrl || '';\n this.errorHandler = options.errorHandler;\n this.resolveRoute = options.resolveRoute || resolveRoute;\n this.context = Object.assign({\n router: this\n }, options.context);\n this.root = Array.isArray(routes) ? {\n path: '',\n children: routes,\n parent: null\n } : routes;\n this.root.parent = null;\n }\n\n var _proto = UniversalRouter.prototype;\n\n _proto.resolve = function resolve(pathnameOrContext) {\n var _this = this;\n\n var context = Object.assign({}, this.context, {}, typeof pathnameOrContext === 'string' ? {\n pathname: pathnameOrContext\n } : pathnameOrContext);\n var match = matchRoute(this.root, this.baseUrl, context.pathname.substr(this.baseUrl.length), [], null);\n var resolve = this.resolveRoute;\n var matches = null;\n var nextMatches = null;\n var currentContext = context;\n\n function next(resume, parent, prevResult) {\n if (parent === void 0) {\n parent = matches.value.route;\n }\n\n var routeToSkip = prevResult === null && !matches.done && matches.value.route;\n matches = nextMatches || match.next(routeToSkip);\n nextMatches = null;\n\n if (!resume) {\n if (matches.done || !isChildRoute(parent, matches.value.route)) {\n nextMatches = matches;\n return Promise.resolve(null);\n }\n }\n\n if (matches.done) {\n var error = new Error('Route not found');\n error.status = 404;\n return Promise.reject(error);\n }\n\n currentContext = Object.assign({}, context, {}, matches.value);\n return Promise.resolve(resolve(currentContext, matches.value.params)).then(function (result) {\n if (result !== null && result !== undefined) {\n return result;\n }\n\n return next(resume, parent, result);\n });\n }\n\n context.next = next;\n return Promise.resolve().then(function () {\n return next(true, _this.root);\n })[\"catch\"](function (error) {\n if (_this.errorHandler) {\n return _this.errorHandler(error, currentContext);\n }\n\n throw error;\n });\n };\n\n return UniversalRouter;\n}();\n\nUniversalRouter.pathToRegexp = pathToRegexp;\n\nexport default UniversalRouter;\n//# sourceMappingURL=module.js.map\n","import { AppConfig } from '@tarojs/taro'\nimport { history } from './history'\n\nexport function initTabbar (config: AppConfig) {\n if (config.tabBar == null) {\n return\n }\n\n // TODO: 找到 tabbar 的类型\n const tabbar = document.createElement('taro-tabbar') as any\n const homePage = config.pages ? config.pages[0] : ''\n tabbar.conf = config.tabBar\n tabbar.conf.homePage = history.location.pathname === '/' ? homePage : history.location.pathname\n const routerConfig = (config as any).router\n tabbar.conf.mode = routerConfig && routerConfig.mode ? routerConfig.mode : 'hash'\n tabbar.conf.custom = !!routerConfig.customRoutes\n if (routerConfig.customRoutes) {\n tabbar.conf.custom = true\n tabbar.conf.customRoutes = routerConfig.customRoutes\n } else {\n tabbar.conf.custom = false\n tabbar.conf.customRoutes = {}\n }\n const container = document.getElementById('container')\n // eslint-disable-next-line no-unused-expressions\n container?.appendChild(tabbar)\n}\n","import { initTabbar } from './tabbar'\nimport { setHistoryMode } from './history'\nimport { RouterConfig } from './router'\n\nexport const routerConfig: RouterConfig = Object.create(null)\n\nexport function init (config: RouterConfig) {\n config.router.mode = config.router.mode || 'hash'\n setHistoryMode(config.router.mode, config.router.basename)\n Object.assign(routerConfig, config)\n document.getElementById('app')?.remove()\n\n const container = document.createElement('div')\n container.classList.add('taro-tabbar__container')\n container.id = 'container'\n\n const panel = document.createElement('div')\n panel.classList.add('taro-tabbar__panel')\n\n const app = document.createElement('div')\n app.id = 'app'\n app.classList.add('taro_router')\n\n panel.appendChild(app)\n container.appendChild(panel)\n\n document.body.appendChild(container)\n\n initTabbar(config)\n}\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (value === null || value === undefined || value.length === 0) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${encode(object.fragmentIdentifier, options)}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","import { routerConfig } from './init'\nimport queryString from 'query-string'\n\nexport const qs = function (stamp = 0) {\n const search = routerConfig.router.mode === 'hash'\n ? location.hash.slice(routerConfig.router.pathname.length + 1)\n : location.search\n const query = search\n ? queryString.parse(search.substr(1))\n : {}\n\n if (stamp) {\n query.stamp = stamp.toString()\n }\n return query\n}\n","import type { PageInstance } from '@tarojs/runtime'\nimport { PageConfig } from '@tarojs/taro'\n\nlet pageScrollFn\nlet pageDOM: Element | Window = window\n\nexport function bindPageScroll (page: PageInstance, config: Partial<PageConfig>) {\n pageDOM.removeEventListener('scroll', pageScrollFn)\n pageDOM = getScrollContainer()\n\n const distance = config.onReachBottomDistance || 50\n let isReachBottom = false\n\n pageScrollFn = function () {\n page.onPageScroll && page.onPageScroll({\n scrollTop: pageDOM instanceof Window ? window.scrollY : pageDOM.scrollTop\n })\n\n if (isReachBottom && getOffset() > distance) {\n isReachBottom = false\n }\n\n if (\n page.onReachBottom &&\n !isReachBottom &&\n getOffset() < distance\n ) {\n isReachBottom = true\n page.onReachBottom()\n }\n }\n\n pageDOM.addEventListener('scroll', pageScrollFn, false)\n}\n\nwindow.addEventListener('DOMSubtreeModified', (e) => {\n // @ts-ignore\n const className = e.target?.className\n if (className && /taro-tabbar__/.test(className)) {\n pageDOM.removeEventListener('scroll', pageScrollFn)\n pageDOM = getScrollContainer()\n pageDOM.addEventListener('scroll', pageScrollFn, false)\n }\n}, false)\n\nfunction getScrollContainer (): Element | Window {\n if (document.querySelector('.taro-tabbar__tabbar') === null) {\n // 没设置tabbar\n return window\n } else {\n // 有设置tabbar\n return document.querySelector('.taro-tabbar__panel') || window\n }\n}\n\nfunction getOffset () {\n if (pageDOM instanceof Window) {\n return document.documentElement.scrollHeight - window.scrollY - window.innerHeight\n } else {\n return pageDOM.scrollHeight - pageDOM.scrollTop - pageDOM.clientHeight\n }\n}\n","/* eslint-disable dot-notation */\nimport UniversalRouter, { Routes } from 'universal-router'\nimport { Listener as LocationListener, State as LocationState, Action as LocationAction } from 'history'\nimport { createPageConfig, Current, eventCenter, container, SERVICE_IDENTIFIER, stringify, requestAnimationFrame } from '@tarojs/runtime'\nimport { qs } from './qs'\nimport { history, parsePath } from './history'\nimport { stacks } from './stack'\nimport { init, routerConfig } from './init'\nimport { bindPageScroll } from './scroll'\nimport { setRoutesAlias, addLeadingSlash, historyBackDelta, setHistoryBackDelta, throttle } from './utils'\n\nimport type { AppConfig, PageConfig } from '@tarojs/taro'\nimport type { PageInstance, AppInstance, IHooks } from '@tarojs/runtime'\n\nexport interface Route extends PageConfig {\n path?: string\n load?: () => Promise<any>\n}\n\nexport interface RouterConfig extends AppConfig {\n routes: Route[],\n router: {\n mode: 'hash' | 'browser'\n basename: string,\n customRoutes?: Record<string, string>,\n pathname: string,\n forcePath?: string\n },\n PullDownRefresh?: any\n}\n\nfunction hidePage (page: PageInstance | null) {\n if (page != null) {\n page.onHide!()\n const pageEl = document.getElementById(page.path!)\n if (pageEl) {\n pageEl.style.display = 'none'\n }\n }\n}\n\nfunction showPage (page: PageInstance | null, pageConfig: Route | undefined, stacksIndex = 0) {\n if (page != null) {\n page.onShow!()\n let pageEl = document.getElementById(page.path!)\n if (pageEl) {\n pageEl.style.display = 'block'\n } else {\n page.onLoad(qs(stacksIndex))\n pageEl = document.getElementById(page.path!)\n pageOnReady(pageEl, page, false)\n }\n bindPageScroll(page, pageConfig || {})\n }\n}\n\nfunction unloadPage (page: PageInstance | null) {\n if (page != null) {\n stacks.pop()\n page.onUnload()\n }\n}\n\nfunction pageOnReady (pageEl: Element | null, page: PageInstance, onLoad = true) {\n if (pageEl && !pageEl?.['__isReady']) {\n const el = pageEl.firstElementChild\n // eslint-disable-next-line no-unused-expressions\n el?.['componentOnReady']?.().then(() => {\n requestAnimationFrame(() => {\n page.onReady!()\n pageEl!['__isReady'] = true\n })\n })\n onLoad && (pageEl['__page'] = page)\n }\n}\n\nfunction loadPage (page: PageInstance | null, pageConfig: Route | undefined, stacksIndex = 0) {\n if (page !== null) {\n let pageEl = document.getElementById(page.path!)\n if (pageEl) {\n pageEl.style.display = 'block'\n } else {\n page.onLoad(qs(stacksIndex), function () {\n pageEl = document.getElementById(page.path!)\n pageOnReady(pageEl, page)\n })\n }\n stacks.push(page)\n page.onShow!()\n bindPageScroll(page, pageConfig || {})\n }\n}\n\nexport function createRouter (\n app: AppInstance,\n config: RouterConfig,\n framework\n) {\n init(config)\n\n const routes: Routes = []\n const alias = config.router.customRoutes ?? {}\n const runtimeHooks = container.get<IHooks>(SERVICE_IDENTIFIER.Hooks)\n\n setRoutesAlias(alias)\n for (let i = 0; i < config.routes.length; i++) {\n const route = config.routes[i]\n const path = addLeadingSlash(route.path)\n routes.push({\n path: alias[path] || path,\n action: route.load\n })\n }\n\n const basename = config.router.basename\n const router = new UniversalRouter(routes, { baseUrl: basename || '' })\n app.onLaunch!()\n\n const render: LocationListener<LocationState> = throttle(async ({ location, action }) => {\n routerConfig.router.pathname = location.pathname\n let element\n try {\n element = await router.resolve(config.router.forcePath || location.pathname)\n } catch (error) {\n if (error.status === 404) {\n app.onPageNotFound?.({\n path: location.pathname\n })\n } else {\n throw new Error(error)\n }\n }\n if (!element) return\n const pageConfig = config.routes.find(r => {\n const path = addLeadingSlash(r.path)\n return path === location.pathname || alias[path] === location.pathname\n })\n let enablePullDownRefresh = false\n\n eventCenter.trigger('__taroRouterChange', {\n toLocation: {\n path: location.pathname\n }\n })\n\n if (pageConfig) {\n document.title = pageConfig.navigationBarTitleText ?? document.title\n enablePullDownRefresh = pageConfig.enablePullDownRefresh!\n }\n\n let shouldLoad = false\n\n if (action === 'POP') {\n unloadPage(Current.page)\n let delta = historyBackDelta\n while (delta-- > 1) {\n unloadPage(stacks.slice(-1)[0])\n }\n // 最终必须重置为 1\n setHistoryBackDelta(1)\n const prevIndex = stacks.reduceRight((p, s, i) => {\n if (p !== 0) return p\n else if (s.path === location.pathname + stringify(qs(i))) return i\n else return 0\n }, 0)\n const prev = stacks[prevIndex]\n if (prev) {\n showPage(prev, pageConfig, prevIndex)\n } else {\n shouldLoad = true\n }\n } else if (action === 'PUSH') {\n hidePage(Current.page)\n shouldLoad = true\n } else if (action === 'REPLACE') {\n unloadPage(Current.page)\n shouldLoad = true\n }\n\n if (shouldLoad) {\n const el = element.default ?? element\n const config = { ...pageConfig }\n delete config['path']\n delete config['load']\n\n const pathname = basename ? location.pathname.replace(basename, '') : location.pathname\n let routerIndex\n\n const isTabBar = routerConfig.tabBar?.list.some((TabBarItem) => {\n return TabBarItem.pagePath?.replace(/\\?.*/g, '') === pathname\n })\n if (stacks?.length > 0 && isTabBar) {\n routerIndex = stacks.findIndex((r) => {\n return r.path?.replace(/\\?.*/g, '') === pathname\n })\n }\n routerIndex = ((routerIndex || routerIndex === 0) && routerIndex !== -1) ? routerIndex : stacks.length\n const page = createPageConfig(\n enablePullDownRefresh ? runtimeHooks.createPullDownComponent?.(el, location.pathname, framework, routerConfig.PullDownRefresh) : el,\n pathname + stringify(qs(routerIndex)),\n {},\n config\n )\n loadPage(page, pageConfig, routerIndex)\n }\n }, 500)\n\n if (history.location.pathname === '/') {\n history.replace(parsePath(routes[0].path as string + history.location.search))\n }\n\n render({ location: history.location, action: LocationAction.Push })\n\n app.onShow!(qs(stacks.length))\n\n return history.listen(render)\n}\n"],"names":["arguments","let","const","history","pathToRegexp","decodeComponent","key","value","filterObject","requestAnimationFrame","container","SERVICE_IDENTIFIER","eventCenter","Current","stringify","config","createPageConfig","LocationAction"],"mappings":"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"}