kdu-router 3.0.0 → 3.0.7

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.
@@ -1,5 +1,5 @@
1
- /**
2
- * kdu-router v3.0.0
1
+ /*!
2
+ * kdu-router v3.0.7
3
3
  * (c) 2022 NKDuy
4
4
  * @license MIT
5
5
  */
@@ -27,8 +27,15 @@ function isError (err) {
27
27
  return Object.prototype.toString.call(err).indexOf('Error') > -1
28
28
  }
29
29
 
30
+ function extend (a, b) {
31
+ for (var key in b) {
32
+ a[key] = b[key];
33
+ }
34
+ return a
35
+ }
36
+
30
37
  var View = {
31
- name: 'router-view',
38
+ name: 'RouterView',
32
39
  functional: true,
33
40
  props: {
34
41
  name: {
@@ -42,6 +49,7 @@ var View = {
42
49
  var parent = ref.parent;
43
50
  var data = ref.data;
44
51
 
52
+ // used by devtools to display a router-view badge
45
53
  data.routerView = true;
46
54
 
47
55
  // directly use parent context's createElement() function
@@ -56,11 +64,14 @@ var View = {
56
64
  var depth = 0;
57
65
  var inactive = false;
58
66
  while (parent && parent._routerRoot !== parent) {
59
- if (parent.$knode && parent.$knode.data.routerView) {
60
- depth++;
61
- }
62
- if (parent._inactive) {
63
- inactive = true;
67
+ var knodeData = parent.$knode && parent.$knode.data;
68
+ if (knodeData) {
69
+ if (knodeData.routerView) {
70
+ depth++;
71
+ }
72
+ if (knodeData.keepAlive && parent._inactive) {
73
+ inactive = true;
74
+ }
64
75
  }
65
76
  parent = parent.$parent;
66
77
  }
@@ -99,20 +110,35 @@ var View = {
99
110
  matched.instances[name] = knode.componentInstance;
100
111
  };
101
112
 
102
- // resolve props
103
- data.props = resolveProps(route, matched.props && matched.props[name]);
104
- data.attrs = {};
113
+ // register instance in init hook
114
+ // in case kept-alive component be actived when routes changed
115
+ data.hook.init = function (knode) {
116
+ if (knode.data.keepAlive &&
117
+ knode.componentInstance &&
118
+ knode.componentInstance !== matched.instances[name]
119
+ ) {
120
+ matched.instances[name] = knode.componentInstance;
121
+ }
122
+ };
105
123
 
106
- for (var key in data.props) {
107
- if (!('props' in component) || !(key in component.props)) {
108
- data.attrs[key] = data.props[key];
109
- delete data.props[key];
124
+ // resolve props
125
+ var propsToPass = data.props = resolveProps(route, matched.props && matched.props[name]);
126
+ if (propsToPass) {
127
+ // clone to prevent mutation
128
+ propsToPass = data.props = extend({}, propsToPass);
129
+ // pass non-declared props as attrs
130
+ var attrs = data.attrs = data.attrs || {};
131
+ for (var key in propsToPass) {
132
+ if (!component.props || !(key in component.props)) {
133
+ attrs[key] = propsToPass[key];
134
+ delete propsToPass[key];
135
+ }
110
136
  }
111
137
  }
112
138
 
113
139
  return h(component, data, children)
114
140
  }
115
- };
141
+ }
116
142
 
117
143
  function resolveProps (route, config) {
118
144
  switch (typeof config) {
@@ -233,7 +259,6 @@ function stringifyQuery (obj) {
233
259
 
234
260
  /* */
235
261
 
236
-
237
262
  var trailingSlashRE = /\/?$/;
238
263
 
239
264
  function createRoute (
@@ -376,7 +401,7 @@ var toTypes = [String, Object];
376
401
  var eventTypes = [String, Array];
377
402
 
378
403
  var Link = {
379
- name: 'router-link',
404
+ name: 'RouterLink',
380
405
  props: {
381
406
  to: {
382
407
  type: toTypes,
@@ -411,17 +436,17 @@ var Link = {
411
436
  var globalExactActiveClass = router.options.linkExactActiveClass;
412
437
  // Support global empty active class
413
438
  var activeClassFallback = globalActiveClass == null
414
- ? 'router-link-active'
415
- : globalActiveClass;
439
+ ? 'router-link-active'
440
+ : globalActiveClass;
416
441
  var exactActiveClassFallback = globalExactActiveClass == null
417
- ? 'router-link-exact-active'
418
- : globalExactActiveClass;
442
+ ? 'router-link-exact-active'
443
+ : globalExactActiveClass;
419
444
  var activeClass = this.activeClass == null
420
- ? activeClassFallback
421
- : this.activeClass;
445
+ ? activeClassFallback
446
+ : this.activeClass;
422
447
  var exactActiveClass = this.exactActiveClass == null
423
- ? exactActiveClassFallback
424
- : this.exactActiveClass;
448
+ ? exactActiveClassFallback
449
+ : this.exactActiveClass;
425
450
  var compareTarget = location.path
426
451
  ? createRoute(null, location, null, router)
427
452
  : route;
@@ -461,7 +486,6 @@ var Link = {
461
486
  if (a) {
462
487
  // in case the <a> is a static node
463
488
  a.isStatic = false;
464
- var extend = _Kdu.util.extend;
465
489
  var aData = a.data = extend({}, a.data);
466
490
  aData.on = on;
467
491
  var aAttrs = a.data.attrs = extend({}, a.data.attrs);
@@ -474,7 +498,7 @@ var Link = {
474
498
 
475
499
  return h(this.tag, data, this.$slots.default)
476
500
  }
477
- };
501
+ }
478
502
 
479
503
  function guardEvent (e) {
480
504
  // don't redirect with control keys
@@ -552,8 +576,8 @@ function install (Kdu) {
552
576
  get: function get () { return this._routerRoot._route }
553
577
  });
554
578
 
555
- Kdu.component('router-view', View);
556
- Kdu.component('router-link', Link);
579
+ Kdu.component('RouterView', View);
580
+ Kdu.component('RouterLink', Link);
557
581
 
558
582
  var strats = Kdu.config.optionMergeStrategies;
559
583
  // use the same hook merging strategy for route hooks
@@ -1063,7 +1087,6 @@ function pathToRegexp (path, keys, options) {
1063
1087
 
1064
1088
  return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)
1065
1089
  }
1066
-
1067
1090
  pathToRegexp_1.parse = parse_1;
1068
1091
  pathToRegexp_1.compile = compile_1;
1069
1092
  pathToRegexp_1.tokensToFunction = tokensToFunction_1;
@@ -1079,16 +1102,24 @@ function fillParams (
1079
1102
  params,
1080
1103
  routeMsg
1081
1104
  ) {
1105
+ params = params || {};
1082
1106
  try {
1083
1107
  var filler =
1084
1108
  regexpCompileCache[path] ||
1085
1109
  (regexpCompileCache[path] = pathToRegexp_1.compile(path));
1086
- return filler(params || {}, { pretty: true })
1110
+
1111
+ // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}
1112
+ if (params.pathMatch) { params[0] = params.pathMatch; }
1113
+
1114
+ return filler(params, { pretty: true })
1087
1115
  } catch (e) {
1088
1116
  {
1089
1117
  warn(false, ("missing param for " + routeMsg + ": " + (e.message)));
1090
1118
  }
1091
1119
  return ''
1120
+ } finally {
1121
+ // delete the 0 if it was added
1122
+ delete params[0];
1092
1123
  }
1093
1124
  }
1094
1125
 
@@ -1259,7 +1290,6 @@ function normalizePath (path, parent, strict) {
1259
1290
 
1260
1291
  /* */
1261
1292
 
1262
-
1263
1293
  function normalizeLocation (
1264
1294
  raw,
1265
1295
  current,
@@ -1268,15 +1298,17 @@ function normalizeLocation (
1268
1298
  ) {
1269
1299
  var next = typeof raw === 'string' ? { path: raw } : raw;
1270
1300
  // named target
1271
- if (next.name || next._normalized) {
1301
+ if (next._normalized) {
1272
1302
  return next
1303
+ } else if (next.name) {
1304
+ return extend({}, raw)
1273
1305
  }
1274
1306
 
1275
1307
  // relative params
1276
1308
  if (!next.path && next.params && current) {
1277
- next = assign({}, next);
1309
+ next = extend({}, next);
1278
1310
  next._normalized = true;
1279
- var params = assign(assign({}, current.params), next.params);
1311
+ var params = extend(extend({}, current.params), next.params);
1280
1312
  if (current.name) {
1281
1313
  next.name = current.name;
1282
1314
  next.params = params;
@@ -1314,16 +1346,10 @@ function normalizeLocation (
1314
1346
  }
1315
1347
  }
1316
1348
 
1317
- function assign (a, b) {
1318
- for (var key in b) {
1319
- a[key] = b[key];
1320
- }
1321
- return a
1322
- }
1323
-
1324
1349
  /* */
1325
1350
 
1326
1351
 
1352
+
1327
1353
  function createMatcher (
1328
1354
  routes,
1329
1355
  router
@@ -1367,10 +1393,8 @@ function createMatcher (
1367
1393
  }
1368
1394
  }
1369
1395
 
1370
- if (record) {
1371
- location.path = fillParams(record.path, location.params, ("named route \"" + name + "\""));
1372
- return _createRoute(record, location, redirectedFrom)
1373
- }
1396
+ location.path = fillParams(record.path, location.params, ("named route \"" + name + "\""));
1397
+ return _createRoute(record, location, redirectedFrom)
1374
1398
  } else if (location.path) {
1375
1399
  location.params = {};
1376
1400
  for (var i = 0; i < pathList.length; i++) {
@@ -1391,8 +1415,8 @@ function createMatcher (
1391
1415
  ) {
1392
1416
  var originalRedirect = record.redirect;
1393
1417
  var redirect = typeof originalRedirect === 'function'
1394
- ? originalRedirect(createRoute(record, location, null, router))
1395
- : originalRedirect;
1418
+ ? originalRedirect(createRoute(record, location, null, router))
1419
+ : originalRedirect;
1396
1420
 
1397
1421
  if (typeof redirect === 'string') {
1398
1422
  redirect = { path: redirect };
@@ -1506,7 +1530,8 @@ function matchRoute (
1506
1530
  var key = regex.keys[i - 1];
1507
1531
  var val = typeof m[i] === 'string' ? decodeURIComponent(m[i]) : m[i];
1508
1532
  if (key) {
1509
- params[key.name] = val;
1533
+ // Fix #1994: using * with props: true generates a param named 0
1534
+ params[key.name || 'pathMatch'] = val;
1510
1535
  }
1511
1536
  }
1512
1537
 
@@ -1519,12 +1544,17 @@ function resolveRecordPath (path, record) {
1519
1544
 
1520
1545
  /* */
1521
1546
 
1522
-
1523
1547
  var positionStore = Object.create(null);
1524
1548
 
1525
1549
  function setupScroll () {
1526
1550
  // Fix for #1585 for Firefox
1527
- window.history.replaceState({ key: getStateKey() }, '');
1551
+ // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678
1552
+ // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with
1553
+ // window.location.protocol + '//' + window.location.host
1554
+ // location.host contains the port and location.hostname doesn't
1555
+ var protocolAndPath = window.location.protocol + '//' + window.location.host;
1556
+ var absolutePath = window.location.href.replace(protocolAndPath, '');
1557
+ window.history.replaceState({ key: getStateKey() }, '', absolutePath);
1528
1558
  window.addEventListener('popstate', function (e) {
1529
1559
  saveScrollPosition();
1530
1560
  if (e.state && e.state.key) {
@@ -1555,7 +1585,7 @@ function handleScroll (
1555
1585
  // wait until re-render finishes before scrolling
1556
1586
  router.app.$nextTick(function () {
1557
1587
  var position = getScrollPosition();
1558
- var shouldScroll = behavior(to, from, isPop ? position : null);
1588
+ var shouldScroll = behavior.call(router, to, from, isPop ? position : null);
1559
1589
 
1560
1590
  if (!shouldScroll) {
1561
1591
  return
@@ -2096,7 +2126,6 @@ function bindEnterGuard (
2096
2126
  ) {
2097
2127
  return function routeEnterGuard (to, from, next) {
2098
2128
  return guard(to, from, function (cb) {
2099
- next(cb);
2100
2129
  if (typeof cb === 'function') {
2101
2130
  cbs.push(function () {
2102
2131
  // #750
@@ -2107,6 +2136,7 @@ function bindEnterGuard (
2107
2136
  poll(cb, match.instances, key, isValid);
2108
2137
  });
2109
2138
  }
2139
+ next(cb);
2110
2140
  })
2111
2141
  }
2112
2142
  }
@@ -2117,7 +2147,10 @@ function poll (
2117
2147
  key,
2118
2148
  isValid
2119
2149
  ) {
2120
- if (instances[key]) {
2150
+ if (
2151
+ instances[key] &&
2152
+ !instances[key]._isBeingDestroyed // do not reuse being destroyed instance
2153
+ ) {
2121
2154
  cb(instances[key]);
2122
2155
  } else if (isValid()) {
2123
2156
  setTimeout(function () {
@@ -2128,16 +2161,16 @@ function poll (
2128
2161
 
2129
2162
  /* */
2130
2163
 
2131
-
2132
- var HTML5History = (function (History$$1) {
2164
+ var HTML5History = /*@__PURE__*/(function (History$$1) {
2133
2165
  function HTML5History (router, base) {
2134
2166
  var this$1 = this;
2135
2167
 
2136
2168
  History$$1.call(this, router, base);
2137
2169
 
2138
2170
  var expectScroll = router.options.scrollBehavior;
2171
+ var supportsScroll = supportsPushState && expectScroll;
2139
2172
 
2140
- if (expectScroll) {
2173
+ if (supportsScroll) {
2141
2174
  setupScroll();
2142
2175
  }
2143
2176
 
@@ -2153,7 +2186,7 @@ var HTML5History = (function (History$$1) {
2153
2186
  }
2154
2187
 
2155
2188
  this$1.transitionTo(location, function (route) {
2156
- if (expectScroll) {
2189
+ if (supportsScroll) {
2157
2190
  handleScroll(router, route, current, true);
2158
2191
  }
2159
2192
  });
@@ -2207,7 +2240,7 @@ var HTML5History = (function (History$$1) {
2207
2240
  }(History));
2208
2241
 
2209
2242
  function getLocation (base) {
2210
- var path = window.location.pathname;
2243
+ var path = decodeURI(window.location.pathname);
2211
2244
  if (base && path.indexOf(base) === 0) {
2212
2245
  path = path.slice(base.length);
2213
2246
  }
@@ -2216,8 +2249,7 @@ function getLocation (base) {
2216
2249
 
2217
2250
  /* */
2218
2251
 
2219
-
2220
- var HashHistory = (function (History$$1) {
2252
+ var HashHistory = /*@__PURE__*/(function (History$$1) {
2221
2253
  function HashHistory (router, base, fallback) {
2222
2254
  History$$1.call(this, router, base);
2223
2255
  // check history fallback deeplinking
@@ -2326,7 +2358,22 @@ function getHash () {
2326
2358
  // consistent across browsers - Firefox will pre-decode it!
2327
2359
  var href = window.location.href;
2328
2360
  var index = href.indexOf('#');
2329
- return index === -1 ? '' : href.slice(index + 1)
2361
+ // empty path
2362
+ if (index < 0) { return '' }
2363
+
2364
+ href = href.slice(index + 1);
2365
+ // decode the hash but not the search or hash
2366
+ // as search(query) is already decoded
2367
+ var searchIndex = href.indexOf('?');
2368
+ if (searchIndex < 0) {
2369
+ var hashIndex = href.indexOf('#');
2370
+ if (hashIndex > -1) { href = decodeURI(href.slice(0, hashIndex)) + href.slice(hashIndex); }
2371
+ else { href = decodeURI(href); }
2372
+ } else {
2373
+ if (searchIndex > -1) { href = decodeURI(href.slice(0, searchIndex)) + href.slice(searchIndex); }
2374
+ }
2375
+
2376
+ return href
2330
2377
  }
2331
2378
 
2332
2379
  function getUrl (path) {
@@ -2354,8 +2401,7 @@ function replaceHash (path) {
2354
2401
 
2355
2402
  /* */
2356
2403
 
2357
-
2358
- var AbstractHistory = (function (History$$1) {
2404
+ var AbstractHistory = /*@__PURE__*/(function (History$$1) {
2359
2405
  function AbstractHistory (router, base) {
2360
2406
  History$$1.call(this, router, base);
2361
2407
  this.stack = [];
@@ -2413,6 +2459,8 @@ var AbstractHistory = (function (History$$1) {
2413
2459
 
2414
2460
  /* */
2415
2461
 
2462
+
2463
+
2416
2464
  var KduRouter = function KduRouter (options) {
2417
2465
  if ( options === void 0 ) options = {};
2418
2466
 
@@ -2476,7 +2524,18 @@ KduRouter.prototype.init = function init (app /* Kdu component instance */) {
2476
2524
 
2477
2525
  this.apps.push(app);
2478
2526
 
2479
- // main app already initialized.
2527
+ // set up app destroyed handler
2528
+ app.$once('hook:destroyed', function () {
2529
+ // clean out app from this.apps array once destroyed
2530
+ var index = this$1.apps.indexOf(app);
2531
+ if (index > -1) { this$1.apps.splice(index, 1); }
2532
+ // ensure we still have a main app or null if no apps
2533
+ // we do not release the router so it can be reused
2534
+ if (this$1.app === app) { this$1.app = this$1.apps[0] || null; }
2535
+ });
2536
+
2537
+ // main app previously initialized
2538
+ // return as we don't need to set up new history listener
2480
2539
  if (this.app) {
2481
2540
  return
2482
2541
  }
@@ -2566,9 +2625,10 @@ KduRouter.prototype.resolve = function resolve (
2566
2625
  current,
2567
2626
  append
2568
2627
  ) {
2628
+ current = current || this.history.current;
2569
2629
  var location = normalizeLocation(
2570
2630
  to,
2571
- current || this.history.current,
2631
+ current,
2572
2632
  append,
2573
2633
  this
2574
2634
  );
@@ -2609,7 +2669,7 @@ function createHref (base, fullPath, mode) {
2609
2669
  }
2610
2670
 
2611
2671
  KduRouter.install = install;
2612
- KduRouter.version = '3.0.0';
2672
+ KduRouter.version = '3.0.7';
2613
2673
 
2614
2674
  if (inBrowser && window.Kdu) {
2615
2675
  window.Kdu.use(KduRouter);
@@ -1,6 +1,11 @@
1
- /**
2
- * kdu-router v3.0.0
1
+ /*!
2
+ * kdu-router v3.0.7
3
3
  * (c) 2022 NKDuy
4
4
  * @license MIT
5
5
  */
6
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.KduRouter=e()}(this,function(){"use strict";function f(t){return-1<Object.prototype.toString.call(t).indexOf("Error")}var U={name:"router-view",functional:!0,props:{name:{type:String,default:"default"}},render:function(t,e){for(var r=e.props,n=e.children,o=e.parent,i=e.data,e=(i.routerView=!0,o.$createElement),a=r.name,r=o.$route,u=o._routerViewCache||(o._routerViewCache={}),c=0,s=!1;o&&o._routerRoot!==o;)o.$knode&&o.$knode.data.routerView&&c++,o._inactive&&(s=!0),o=o.$parent;if(i.routerViewDepth=c,s)return e(u[a],i,n);var p=r.matched[c];if(!p)return u[a]=null,e();var h,f=u[a]=p.components[a];for(h in i.registerRouteInstance=function(t,e){var r=p.instances[a];(e&&r!==t||!e&&r===t)&&(p.instances[a]=e)},(i.hook||(i.hook={})).prepatch=function(t,e){p.instances[a]=e.componentInstance},i.props=function(t,e){switch(typeof e){case"undefined":return;case"object":return e;case"function":return e(t);case"boolean":return e?t.params:void 0}}(r,p.props&&p.props[a]),i.attrs={},i.props)"props"in f&&h in f.props||(i.attrs[h]=i.props[h],delete i.props[h]);return e(f,i,n)}};function o(t){return encodeURIComponent(t).replace(M,H).replace(I,",")}var M=/[!'()*]/g,H=function(t){return"%"+t.charCodeAt(0).toString(16)},I=/%2C/g,z=decodeURIComponent;function B(t){var r={};return(t=t.trim().replace(/^(\?|#|&)/,""))&&t.split("&").forEach(function(t){var t=t.replace(/\+/g," ").split("="),e=z(t.shift()),t=0<t.length?z(t.join("=")):null;void 0===r[e]?r[e]=t:Array.isArray(r[e])?r[e].push(t):r[e]=[r[e],t]}),r}function K(n){var t=n?Object.keys(n).map(function(e){var r,t=n[e];return void 0===t?"":null===t?o(e):Array.isArray(t)?(r=[],t.forEach(function(t){void 0!==t&&r.push(null===t?o(e):o(e)+"="+o(t))}),r.join("&")):o(e)+"="+o(t)}).filter(function(t){return 0<t.length}).join("&"):null;return t?"?"+t:""}var r=/\/?$/;function d(t,e,r,n){var n=n&&n.options.stringifyQuery,o=e.query||{};try{o=i(o)}catch(t){}o={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:o,params:e.params||{},fullPath:F(e,n),matched:t?function(t){var e=[];for(;t;)e.unshift(t),t=t.parent;return e}(t):[]};return r&&(o.redirectedFrom=F(r,n)),Object.freeze(o)}function i(t){if(Array.isArray(t))return t.map(i);if(t&&"object"==typeof t){var e,r={};for(e in t)r[e]=i(t[e]);return r}return t}var u=d(null,{path:"/"});function F(t,e){var r=t.path,n=t.query,t=t.hash;return void 0===t&&(t=""),(r||"/")+(e||K)(n=void 0===n?{}:n)+t}function V(t,e){return e===u?t===e:!!e&&(t.path&&e.path?t.path.replace(r,"")===e.path.replace(r,"")&&t.hash===e.hash&&a(t.query,e.query):!(!t.name||!e.name)&&t.name===e.name&&t.hash===e.hash&&a(t.query,e.query)&&a(t.params,e.params))}function a(r,n){var t,e;return void 0===n&&(n={}),(r=void 0===r?{}:r)&&n?(t=Object.keys(r),e=Object.keys(n),t.length===e.length&&t.every(function(t){var e=r[t],t=n[t];return"object"==typeof e&&"object"==typeof t?a(e,t):String(e)===String(t)})):r===n}function D(t,e){return 0===t.path.replace(r,"/").indexOf(e.path.replace(r,"/"))&&(!e.hash||t.hash===e.hash)&&function(t,e){for(var r in e)if(!(r in t))return!1;return!0}(t.query,e.query)}var l,t=[String,Object],e=[String,Array],J={name:"router-link",props:{to:{type:t,required:!0},tag:{type:String,default:"a"},exact:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,event:{type:e,default:"click"}},render:function(t){function e(t){N(t)&&(r.replace?n.replace(a):n.push(a))}var r=this,n=this.$router,o=this.$route,i=n.resolve(this.to,o,this.append),a=i.location,u=i.route,i=i.href,c={},s=n.options.linkActiveClass,p=n.options.linkExactActiveClass,s=null==this.activeClass?null==s?"router-link-active":s:this.activeClass,p=null==this.exactActiveClass?null==p?"router-link-exact-active":p:this.exactActiveClass,u=a.path?d(null,a,null,n):u,h=(c[p]=V(o,u),c[s]=this.exact?c[p]:D(o,u),{click:N}),s=(Array.isArray(this.event)?this.event.forEach(function(t){h[t]=e}):h[this.event]=e,{class:c});return"a"===this.tag?(s.on=h,s.attrs={href:i}):(p=function t(e){if(e)for(var r,n=0;n<e.length;n++){if("a"===(r=e[n]).tag)return r;if(r.children&&(r=t(r.children)))return r}}(this.$slots.default))?(p.isStatic=!1,o=l.util.extend,(p.data=o({},p.data)).on=h,(p.data.attrs=o({},p.data.attrs)).href=i):s.on=h,t(this.tag,s,this.$slots.default)}};function N(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey||t.defaultPrevented||void 0!==t.button&&0!==t.button)){if(t.currentTarget&&t.currentTarget.getAttribute){var e=t.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return t.preventDefault&&t.preventDefault(),!0}}function c(t){var n,e,r;c.installed&&l===t||(c.installed=!0,n=function(t){return void 0!==t},e=function(t,e){var r=t.$options._parentKnode;n(r)&&n(r=r.data)&&n(r=r.registerRouteInstance)&&r(t,e)},(l=t).mixin({beforeCreate:function(){n(this.$options.router)?((this._routerRoot=this)._router=this.$options.router,this._router.init(this),t.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,e(this,this)},destroyed:function(){e(this)}}),Object.defineProperty(t.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(t.prototype,"$route",{get:function(){return this._routerRoot._route}}),t.component("router-view",U),t.component("router-link",J),(r=t.config.optionMergeStrategies).beforeRouteEnter=r.beforeRouteLeave=r.beforeRouteUpdate=r.created)}var n="undefined"!=typeof window;function Q(t,e,r){var n=t.charAt(0);if("/"===n)return t;if("?"===n||"#"===n)return e+t;for(var o=e.split("/"),i=(r&&o[o.length-1]||o.pop(),t.replace(/^\//,"").split("/")),a=0;a<i.length;a++){var u=i[a];".."===u?o.pop():"."!==u&&o.push(u)}return""!==o[0]&&o.unshift(""),o.join("/")}function h(t){return t.replace(/\/\//g,"/")}function X(t,e){return Z(v(t,e),e)}var y=Array.isArray||function(t){return"[object Array]"==Object.prototype.toString.call(t)},s=et,t=v,e=Z,Y=tt,W=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function v(t,e){for(var r=[],n=0,o=0,i="",a=e&&e.delimiter||"/";null!=(h=W.exec(t));){var u,c,s,p,h,f=h[0],l=h[1],d=h.index;i+=t.slice(o,d),o=d+f.length,l?i+=l[1]:(d=t[o],f=h[2],l=h[3],u=h[4],c=h[5],s=h[6],p=h[7],d=(i&&(r.push(i),i=""),null!=f&&null!=d&&d!==f),h=h[2]||a,r.push({name:l||n++,prefix:f||"",delimiter:h,optional:"?"===s||"*"===s,repeat:"+"===s||"*"===s,partial:d,asterisk:!!p,pattern:(l=u||c)?l.replace(/([=!:$\/()])/g,"\\$1"):p?".*":"[^"+m(h)+"]+?"}))}return o<t.length&&(i+=t.substr(o)),i&&r.push(i),r}function G(t){return encodeURI(t).replace(/[\/?#]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function Z(p,t){for(var h=new Array(p.length),e=0;e<p.length;e++)"object"==typeof p[e]&&(h[e]=new RegExp("^(?:"+p[e].pattern+")$",b(t)));return function(t,e){for(var r="",n=t||{},o=(e||{}).pretty?G:encodeURIComponent,i=0;i<p.length;i++){var a=p[i];if("string"==typeof a)r+=a;else{var u,c=n[a.name];if(null==c){if(a.optional){a.partial&&(r+=a.prefix);continue}throw new TypeError('Expected "'+a.name+'" to be defined')}if(y(c)){if(!a.repeat)throw new TypeError('Expected "'+a.name+'" to not repeat, but received `'+JSON.stringify(c)+"`");if(0===c.length){if(a.optional)continue;throw new TypeError('Expected "'+a.name+'" to not be empty')}for(var s=0;s<c.length;s++){if(u=o(c[s]),!h[i].test(u))throw new TypeError('Expected all "'+a.name+'" to match "'+a.pattern+'", but received `'+JSON.stringify(u)+"`");r+=(0===s?a.prefix:a.delimiter)+u}}else{if(u=a.asterisk?encodeURI(c).replace(/[?#]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()}):o(c),!h[i].test(u))throw new TypeError('Expected "'+a.name+'" to match "'+a.pattern+'", but received "'+u+'"');r+=a.prefix+u}}}return r}}function m(t){return t.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function g(t,e){return t.keys=e,t}function b(t){return t&&t.sensitive?"":"i"}function tt(t,e,r){y(e)||(r=e||r,e=[]);for(var n=(r=r||{}).strict,o=!1!==r.end,i="",a=0;a<t.length;a++){var u,c,s=t[a];"string"==typeof s?i+=m(s):(u=m(s.prefix),c="(?:"+s.pattern+")",e.push(s),s.repeat&&(c+="(?:"+u+c+")*"),i+=c=s.optional?s.partial?u+"("+c+")?":"(?:"+u+"("+c+"))?":u+"("+c+")")}var p=m(r.delimiter||"/"),h=i.slice(-p.length)===p;return n||(i=(h?i.slice(0,-p.length):i)+"(?:"+p+"(?=$))?"),i+=o?"$":n&&h?"":"(?="+p+"|$)",g(new RegExp("^"+i,b(r)),e)}function et(t,e,r){if(y(e)||(r=e||r,e=[]),r=r||{},t instanceof RegExp){var n=t,o=e,i=n.source.match(/\((?!\?)/g);if(i)for(var a=0;a<i.length;a++)o.push({name:a,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return g(n,o)}if(y(t)){for(var u=t,c=e,s=r,p=[],h=0;h<u.length;h++)p.push(et(u[h],c,s).source);return g(new RegExp("(?:"+p.join("|")+")",b(s)),c)}return n=e,tt(v(t,e=r),n,e)}s.parse=t,s.compile=X,s.tokensToFunction=e,s.tokensToRegExp=Y;var rt=Object.create(null);function w(t,e){try{return(rt[t]||(rt[t]=s.compile(t)))(e||{},{pretty:!0})}catch(t){return""}}function nt(t,e,r,n){var o=e||[],i=r||Object.create(null),a=n||Object.create(null);t.forEach(function(t){!function r(n,o,i,e,a,u){var t=e.path;var c=e.name;var s=e.pathToRegexpOptions||{};t=it(t,a,s.strict);"boolean"==typeof e.caseSensitive&&(s.sensitive=e.caseSensitive);var p={path:t,regex:ot(t,s),components:e.components||{default:e.component},instances:{},name:c,parent:a,matchAs:u,redirect:e.redirect,beforeEnter:e.beforeEnter,meta:e.meta||{},props:null==e.props?{}:e.components?e.props:{default:e.props}};e.children&&e.children.forEach(function(t){var e=u?h(u+"/"+t.path):void 0;r(n,o,i,t,p,e)});void 0!==e.alias&&(Array.isArray(e.alias)?e.alias:[e.alias]).forEach(function(t){t={path:t,children:e.children};r(n,o,i,t,a,p.path||"/")});o[p.path]||(n.push(p.path),o[p.path]=p);!c||i[c]||(i[c]=p)}(o,i,a,t)});for(var u=0,c=o.length;u<c;u++)"*"===o[u]&&(o.push(o.splice(u,1)[0]),c--,u--);return{pathList:o,pathMap:i,nameMap:a}}function ot(t,e){return s(t,[],e)}function it(t,e,r){return"/"===(t=r?t:t.replace(/\/$/,""))[0]||null==e?t:h(e.path+"/"+t)}function at(t,e,r,n){var o,i,a,u,t="string"==typeof t?{path:t}:t;return t.name||t._normalized?t:!t.path&&t.params&&e?((t=ut({},t))._normalized=!0,i=ut(ut({},e.params),t.params),e.name?(t.name=e.name,t.params=i):e.matched.length&&(o=e.matched[e.matched.length-1].path,t.path=w(o,i,e.path)),t):(o=t.path||"",u=i="",0<=(a=o.indexOf("#"))&&(i=o.slice(a),o=o.slice(0,a)),0<=(a=o.indexOf("?"))&&(u=o.slice(a+1),o=o.slice(0,a)),a=e&&e.path||"/",{_normalized:!0,path:(e={path:o,query:u,hash:i}).path?Q(e.path,a,r||t.append):a,query:function(t,e,r){void 0===e&&(e={});var n,o,r=r||B;try{n=r(t||"")}catch(t){n={}}for(o in e)n[o]=e[o];return n}(e.query,t.query,n&&n.options.parseQuery),hash:u=(u=t.hash||e.hash)&&"#"!==u.charAt(0)?"#"+u:u})}function ut(t,e){for(var r in e)t[r]=e[r];return t}function ct(t,c){var t=nt(t),s=t.pathList,p=t.pathMap,h=t.nameMap;function f(t,e,r){var n=at(t,e,!1,c),t=n.name;if(t){t=h[t];if(!t)return l(null,n);var o=t.regex.keys.filter(function(t){return!t.optional}).map(function(t){return t.name});if("object"!=typeof n.params&&(n.params={}),e&&"object"==typeof e.params)for(var i in e.params)!(i in n.params)&&-1<o.indexOf(i)&&(n.params[i]=e.params[i]);if(t)return n.path=w(t.path,n.params),l(t,n,r)}else if(n.path){n.params={};for(var a=0;a<s.length;a++){var u=s[a],u=p[u];if(function(t,e,r){var n=e.match(t);{if(!n)return;if(!r)return 1}for(var o=1,i=n.length;o<i;++o){var a=t.keys[o-1],u="string"==typeof n[o]?decodeURIComponent(n[o]):n[o];a&&(r[a.name]=u)}return 1}(u.regex,n.path,n.params))return l(u,n,r)}}return l(null,n)}function a(t,e){var r,n,o,i,a,u=t.redirect,u="function"==typeof u?u(d(t,e,null,c)):u;return(u="string"==typeof u?{path:u}:u)&&"object"==typeof u?(r=(u=u).name,n=u.path,o=e.query,i=e.hash,a=e.params,o=u.hasOwnProperty("query")?u.query:o,i=u.hasOwnProperty("hash")?u.hash:i,a=u.hasOwnProperty("params")?u.params:a,r?f({_normalized:!0,name:r,query:o,hash:i,params:a},void 0,e):n?f({_normalized:!0,path:w(Q(n,(u=t).parent?u.parent.path:"/",!0),a),query:o,hash:i},void 0,e):l(null,e)):l(null,e)}function l(t,e,r){var n,o,i;return t&&t.redirect?a(t,r||e):t&&t.matchAs?(n=e,(o=f({_normalized:!0,path:w(o=t.matchAs,n.params)}))?(i=(i=o.matched)[i.length-1],n.params=o.params,l(i,n)):l(null,n)):d(t,e,r,c)}return{match:f,addRoutes:function(t){nt(t,s,p,h)}}}var st=Object.create(null);function pt(){window.history.replaceState({key:R},""),window.addEventListener("popstate",function(t){ht(),t.state&&t.state.key&&(t=t.state.key,R=t)})}function p(t,r,n,o){var i;t.app&&(i=t.options.scrollBehavior)&&t.app.$nextTick(function(){var e=function(){var t=R;if(t)return st[t]}(),t=i(r,n,o?e:null);t&&("function"==typeof t.then?t.then(function(t){dt(t,e)}).catch(function(t){}):dt(t,e))})}function ht(){R&&(st[R]={x:window.pageXOffset,y:window.pageYOffset})}function ft(t){return x(t.x)||x(t.y)}function lt(t){return{x:x(t.x)?t.x:window.pageXOffset,y:x(t.y)?t.y:window.pageYOffset}}function x(t){return"number"==typeof t}function dt(t,e){var r,n,o,i="object"==typeof t;i&&"string"==typeof t.selector?(r=document.querySelector(t.selector))?(n=t.offset&&"object"==typeof t.offset?t.offset:{},n={x:x((o=n).x)?o.x:0,y:x(o.y)?o.y:0},o=r,r=n,n=document.documentElement.getBoundingClientRect(),e={x:(o=o.getBoundingClientRect()).left-n.left-r.x,y:o.top-n.top-r.y}):ft(t)&&(e=lt(t)):i&&ft(t)&&(e=lt(t)),e&&window.scrollTo(e.x,e.y)}var k=n&&(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,yt=n&&window.performance&&window.performance.now?window.performance:Date,R=vt();function vt(){return yt.now().toFixed(3)}function E(e,r){ht();var t=window.history;try{r?t.replaceState({key:R},"",e):(R=vt(),t.pushState({key:R},"",e))}catch(t){window.location[r?"replace":"assign"](e)}}function mt(t){E(t,!0)}function gt(e,r,n){function o(t){t>=e.length?n():e[t]?r(e[t],function(){o(t+1)}):o(t+1)}o(0)}function bt(r){return function(t,e,u){var c=!1,s=0,p=null;wt(r,function(r,t,n,o){if("function"==typeof r&&void 0===r.cid){c=!0,s++;var e,i=Rt(function(t){var e;((e=t).__esModule||kt&&"Module"===e[Symbol.toStringTag])&&(t=t.default),r.resolved="function"==typeof t?t:l.extend(t),n.components[o]=t,--s<=0&&u()}),a=Rt(function(t){var e="Failed to resolve async component "+o+": "+t;p||(p=f(t)?t:new Error(e),u(p))});try{e=r(i,a)}catch(t){a(t)}e&&("function"==typeof e.then?e.then(i,a):(e=e.component)&&"function"==typeof e.then&&e.then(i,a))}}),c||u()}}function wt(t,r){return xt(t.map(function(e){return Object.keys(e.components).map(function(t){return r(e.components[t],e.instances[t],e,t)})}))}function xt(t){return Array.prototype.concat.apply([],t)}var kt="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function Rt(r){var n=!1;return function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];if(!n)return n=!0,r.apply(this,t)}}function O(t,e){this.router=t,this.base=function(t){{var e;t=t||(n?(e=document.querySelector("base"),(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")):"/")}"/"!==t.charAt(0)&&(t="/"+t);return t.replace(/\/$/,"")}(e),this.current=u,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[]}function Et(t,o,i,e){t=wt(t,function(t,e,r,n){t=function(t,e){"function"!=typeof t&&(t=l.extend(t));return t.options[e]}(t,o);if(t)return Array.isArray(t)?t.map(function(t){return i(t,e,r,n)}):i(t,e,r,n)});return xt(e?t.reverse():t)}function Ot(t,e){if(e)return function(){return t.apply(e,arguments)}}O.prototype.listen=function(t){this.cb=t},O.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},O.prototype.onError=function(t){this.errorCbs.push(t)},O.prototype.transitionTo=function(t,e,r){var n=this,o=this.router.match(t,this.current);this.confirmTransition(o,function(){n.updateRoute(o),e&&e(o),n.ensureURL(),n.ready||(n.ready=!0,n.readyCbs.forEach(function(t){t(o)}))},function(e){r&&r(e),e&&!n.ready&&(n.ready=!0,n.readyErrorCbs.forEach(function(t){t(e)}))})},O.prototype.confirmTransition=function(r,e,t){var n=this,o=this.current,i=function(e){f(e)&&(n.errorCbs.length?n.errorCbs.forEach(function(t){t(e)}):console.error(e)),t&&t(e)};if(V(r,o)&&r.matched.length===o.matched.length)return this.ensureURL(),i();function a(t,e){if(n.pending!==r)return i();try{t(r,o,function(t){!1===t||f(t)?(n.ensureURL(!0),i(t)):"string"==typeof t||"object"==typeof t&&("string"==typeof t.path||"string"==typeof t.name)?(i(),"object"==typeof t&&t.replace?n.replace(t):n.push(t)):e(t)})}catch(t){i(t)}}var u=function(t,e){var r,n=Math.max(t.length,e.length);for(r=0;r<n&&t[r]===e[r];r++);return{updated:e.slice(0,r),activated:e.slice(r),deactivated:t.slice(r)}}(this.current.matched,r.matched),c=u.updated,s=u.deactivated,h=u.activated,u=[].concat(Et(s,"beforeRouteLeave",Ot,!0),this.router.beforeHooks,Et(c,"beforeRouteUpdate",Ot),h.map(function(t){return t.beforeEnter}),bt(h));this.pending=r;gt(u,a,function(){var s,p,t=[];s=t,p=function(){return n.current===r},gt(Et(h,"beforeRouteEnter",function(t,e,r,n){return o=t,i=r,a=n,u=s,c=p,function(t,e,r){return o(t,e,function(t){r(t),"function"==typeof t&&u.push(function(){!function t(e,r,n,o){r[n]?e(r[n]):o()&&setTimeout(function(){t(e,r,n,o)},16)}(t,i.instances,a,c)})})};var o,i,a,u,c}).concat(n.router.resolveHooks),a,function(){if(n.pending!==r)return i();n.pending=null,e(r),n.router.app&&n.router.app.$nextTick(function(){t.forEach(function(t){t()})})})})},O.prototype.updateRoute=function(e){var r=this.current;this.current=e,this.cb&&this.cb(e),this.router.afterHooks.forEach(function(t){t&&t(e,r)})};(C=O)&&(j.__proto__=C),((j.prototype=Object.create(C&&C.prototype)).constructor=j).prototype.go=function(t){window.history.go(t)},j.prototype.push=function(t,e,r){var n=this,o=this.current;this.transitionTo(t,function(t){E(h(n.base+t.fullPath)),p(n.router,t,o,!1),e&&e(t)},r)},j.prototype.replace=function(t,e,r){var n=this,o=this.current;this.transitionTo(t,function(t){mt(h(n.base+t.fullPath)),p(n.router,t,o,!1),e&&e(t)},r)},j.prototype.ensureURL=function(t){A(this.base)!==this.current.fullPath&&(t?E:mt)(h(this.base+this.current.fullPath))},j.prototype.getCurrentLocation=function(){return A(this.base)};var C,Ct=j;function j(n,t){var o=this,i=(C.call(this,n,t),n.options.scrollBehavior),a=(i&&pt(),A(this.base));window.addEventListener("popstate",function(t){var e=o.current,r=A(o.base);o.current===u&&r===a||o.transitionTo(r,function(t){i&&p(n,t,e,!0)})})}function A(t){var e=window.location.pathname;return((e=t&&0===e.indexOf(t)?e.slice(t.length):e)||"/")+window.location.search+window.location.hash}(_=O)&&(T.__proto__=_),((T.prototype=Object.create(_&&_.prototype)).constructor=T).prototype.setupListeners=function(){var r=this,t=this.router.options.scrollBehavior,n=k&&t;n&&pt(),window.addEventListener(k?"popstate":"hashchange",function(){var e=r.current;At()&&r.transitionTo(S(),function(t){n&&p(r.router,t,e,!0),k||$(t.fullPath)})})},T.prototype.push=function(t,e,r){var n=this,o=this.current;this.transitionTo(t,function(t){Tt(t.fullPath),p(n.router,t,o,!1),e&&e(t)},r)},T.prototype.replace=function(t,e,r){var n=this,o=this.current;this.transitionTo(t,function(t){$(t.fullPath),p(n.router,t,o,!1),e&&e(t)},r)},T.prototype.go=function(t){window.history.go(t)},T.prototype.ensureURL=function(t){var e=this.current.fullPath;S()!==e&&(t?Tt:$)(e)},T.prototype.getCurrentLocation=S;var _,jt=T;function T(t,e,r){_.call(this,t,e),r&&function(t){var e=A(t);if(!/^\/#/.test(e))return window.location.replace(h(t+"/#"+e)),1}(this.base)||At()}function At(){var t=S();if("/"===t.charAt(0))return 1;$("/"+t)}function S(){var t=window.location.href,e=t.indexOf("#");return-1===e?"":t.slice(e+1)}function _t(t){var e=window.location.href,r=e.indexOf("#");return(0<=r?e.slice(0,r):e)+"#"+t}function Tt(t){k?E(_t(t)):window.location.hash=t}function $(t){k?mt(_t(t)):window.location.replace(_t(t))}(q=O)&&(L.__proto__=q),((L.prototype=Object.create(q&&q.prototype)).constructor=L).prototype.push=function(t,e,r){var n=this;this.transitionTo(t,function(t){n.stack=n.stack.slice(0,n.index+1).concat(t),n.index++,e&&e(t)},r)},L.prototype.replace=function(t,e,r){var n=this;this.transitionTo(t,function(t){n.stack=n.stack.slice(0,n.index).concat(t),e&&e(t)},r)},L.prototype.go=function(t){var e,r=this,n=this.index+t;n<0||n>=this.stack.length||(e=this.stack[n],this.confirmTransition(e,function(){r.index=n,r.updateRoute(e)}))},L.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},L.prototype.ensureURL=function(){};var q,St=L;function L(t,e){q.call(this,t,e),this.stack=[],this.index=-1}function P(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=ct(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!k&&!1!==t.fallback,this.fallback&&(e="hash"),this.mode=e=n?e:"abstract"){case"history":this.history=new Ct(this,t.base);break;case"hash":this.history=new jt(this,t.base,this.fallback);break;case"abstract":this.history=new St(this,t.base)}}e={currentRoute:{configurable:!0}};function $t(e,r){return e.push(r),function(){var t=e.indexOf(r);-1<t&&e.splice(t,1)}}return P.prototype.match=function(t,e,r){return this.matcher.match(t,e,r)},e.currentRoute.get=function(){return this.history&&this.history.current},P.prototype.init=function(t){var e,r=this;this.apps.push(t),this.app||(this.app=t,(e=this.history)instanceof Ct?e.transitionTo(e.getCurrentLocation()):e instanceof jt&&(t=function(){e.setupListeners()},e.transitionTo(e.getCurrentLocation(),t,t)),e.listen(function(e){r.apps.forEach(function(t){t._route=e})}))},P.prototype.beforeEach=function(t){return $t(this.beforeHooks,t)},P.prototype.beforeResolve=function(t){return $t(this.resolveHooks,t)},P.prototype.afterEach=function(t){return $t(this.afterHooks,t)},P.prototype.onReady=function(t,e){this.history.onReady(t,e)},P.prototype.onError=function(t){this.history.onError(t)},P.prototype.push=function(t,e,r){this.history.push(t,e,r)},P.prototype.replace=function(t,e,r){this.history.replace(t,e,r)},P.prototype.go=function(t){this.history.go(t)},P.prototype.back=function(){this.go(-1)},P.prototype.forward=function(){this.go(1)},P.prototype.getMatchedComponents=function(t){t=t?t.matched?t:this.resolve(t).route:this.currentRoute;return t?[].concat.apply([],t.matched.map(function(e){return Object.keys(e.components).map(function(t){return e.components[t]})})):[]},P.prototype.resolve=function(t,e,r){t=at(t,e||this.history.current,r,this),r=this.match(t,e),e=r.redirectedFrom||r.fullPath;return{location:t,route:r,href:function(t,e,r){r="hash"===r?"#"+e:e;return t?h(t+"/"+r):r}(this.history.base,e,this.mode),normalizedTo:t,resolved:r}},P.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==u&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(P.prototype,e),P.install=c,P.version="3.0.0",n&&window.Kdu&&window.Kdu.use(P),P});
6
+ /*!
7
+ * kdu-router v3.0.7
8
+ * (c) 2022 NKDuy
9
+ * @license MIT
10
+ */
11
+ var t,e;t=this,e=function(){"use strict";function t(t){return Object.prototype.toString.call(t).indexOf("Error")>-1}function e(t,e){for(var r in e)t[r]=e[r];return t}var r={name:"RouterView",functional:!0,props:{name:{type:String,default:"default"}},render:function(t,r){var n=r.props,o=r.children,i=r.parent,a=r.data;a.routerView=!0;for(var u=i.$createElement,c=n.name,s=i.$route,p=i._routerViewCache||(i._routerViewCache={}),f=0,h=!1;i&&i._routerRoot!==i;){var l=i.$knode&&i.$knode.data;l&&(l.routerView&&f++,l.keepAlive&&i._inactive&&(h=!0)),i=i.$parent}if(a.routerViewDepth=f,h)return u(p[c],a,o);var d=s.matched[f];if(!d)return p[c]=null,u();var y=p[c]=d.components[c];a.registerRouteInstance=function(t,e){var r=d.instances[c];(e&&r!==t||!e&&r===t)&&(d.instances[c]=e)},(a.hook||(a.hook={})).prepatch=function(t,e){d.instances[c]=e.componentInstance},a.hook.init=function(t){t.data.keepAlive&&t.componentInstance&&t.componentInstance!==d.instances[c]&&(d.instances[c]=t.componentInstance)};var v=a.props=function(t,e){switch(typeof e){case"undefined":return;case"object":return e;case"function":return e(t);case"boolean":return e?t.params:void 0}}(s,d.props&&d.props[c]);if(v){v=a.props=e({},v);var m=a.attrs=a.attrs||{};for(var g in v)y.props&&g in y.props||(m[g]=v[g],delete v[g])}return u(y,a,o)}},n=/[!'()*]/g,o=function(t){return"%"+t.charCodeAt(0).toString(16)},i=/%2C/g,a=function(t){return encodeURIComponent(t).replace(n,o).replace(i,",")},u=decodeURIComponent;function c(t){var e={};return(t=t.trim().replace(/^(\?|#|&)/,""))?(t.split("&").forEach((function(t){var r=t.replace(/\+/g," ").split("="),n=u(r.shift()),o=r.length>0?u(r.join("=")):null;void 0===e[n]?e[n]=o:Array.isArray(e[n])?e[n].push(o):e[n]=[e[n],o]})),e):e}function s(t){var e=t?Object.keys(t).map((function(e){var r=t[e];if(void 0===r)return"";if(null===r)return a(e);if(Array.isArray(r)){var n=[];return r.forEach((function(t){void 0!==t&&(null===t?n.push(a(e)):n.push(a(e)+"="+a(t)))})),n.join("&")}return a(e)+"="+a(r)})).filter((function(t){return t.length>0})).join("&"):null;return e?"?"+e:""}var p=/\/?$/;function f(t,e,r,n){var o=n&&n.options.stringifyQuery,i=e.query||{};try{i=h(i)}catch(t){}var a={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:i,params:e.params||{},fullPath:y(e,o),matched:t?d(t):[]};return r&&(a.redirectedFrom=y(r,o)),Object.freeze(a)}function h(t){if(Array.isArray(t))return t.map(h);if(t&&"object"==typeof t){var e={};for(var r in t)e[r]=h(t[r]);return e}return t}var l=f(null,{path:"/"});function d(t){for(var e=[];t;)e.unshift(t),t=t.parent;return e}function y(t,e){var r=t.path,n=t.query;void 0===n&&(n={});var o=t.hash;return void 0===o&&(o=""),(r||"/")+(e||s)(n)+o}function v(t,e){return e===l?t===e:!!e&&(t.path&&e.path?t.path.replace(p,"")===e.path.replace(p,"")&&t.hash===e.hash&&m(t.query,e.query):!(!t.name||!e.name)&&t.name===e.name&&t.hash===e.hash&&m(t.query,e.query)&&m(t.params,e.params))}function m(t,e){if(void 0===t&&(t={}),void 0===e&&(e={}),!t||!e)return t===e;var r=Object.keys(t),n=Object.keys(e);return r.length===n.length&&r.every((function(r){var n=t[r],o=e[r];return"object"==typeof n&&"object"==typeof o?m(n,o):String(n)===String(o)}))}var g,b={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},exact:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,event:{type:[String,Array],default:"click"}},render:function(t){var r=this,n=this.$router,o=this.$route,i=n.resolve(this.to,o,this.append),a=i.location,u=i.route,c=i.href,s={},h=n.options.linkActiveClass,l=n.options.linkExactActiveClass,d=null==h?"router-link-active":h,y=null==l?"router-link-exact-active":l,m=null==this.activeClass?d:this.activeClass,g=null==this.exactActiveClass?y:this.exactActiveClass,b=a.path?f(null,a,null,n):u;s[g]=v(o,b),s[m]=this.exact?s[g]:function(t,e){return 0===t.path.replace(p,"/").indexOf(e.path.replace(p,"/"))&&(!e.hash||t.hash===e.hash)&&function(t,e){for(var r in e)if(!(r in t))return!1;return!0}(t.query,e.query)}(o,b);var x=function(t){w(t)&&(r.replace?n.replace(a):n.push(a))},k={click:w};Array.isArray(this.event)?this.event.forEach((function(t){k[t]=x})):k[this.event]=x;var R={class:s};if("a"===this.tag)R.on=k,R.attrs={href:c};else{var E=function t(e){var r;if(e)for(var n=0;n<e.length;n++){if("a"===(r=e[n]).tag)return r;if(r.children&&(r=t(r.children)))return r}}(this.$slots.default);E?(E.isStatic=!1,(E.data=e({},E.data)).on=k,(E.data.attrs=e({},E.data.attrs)).href=c):R.on=k}return t(this.tag,R,this.$slots.default)}};function w(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey||t.defaultPrevented||void 0!==t.button&&0!==t.button)){if(t.currentTarget&&t.currentTarget.getAttribute){var e=t.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return t.preventDefault&&t.preventDefault(),!0}}var x="undefined"!=typeof window;function k(t,e,r){var n=t.charAt(0);if("/"===n)return t;if("?"===n||"#"===n)return e+t;var o=e.split("/");r&&o[o.length-1]||o.pop();for(var i=t.replace(/^\//,"").split("/"),a=0;a<i.length;a++){var u=i[a];".."===u?o.pop():"."!==u&&o.push(u)}return""!==o[0]&&o.unshift(""),o.join("/")}function R(t){return t.replace(/\/\//g,"/")}var E=Array.isArray||function(t){return"[object Array]"==Object.prototype.toString.call(t)},O=B,A=S,C=function(t,e){return L(S(t,e),e)},j=L,_=M,T=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function S(t,e){for(var r,n=[],o=0,i=0,a="",u=e&&e.delimiter||"/";null!=(r=T.exec(t));){var c=r[0],s=r[1],p=r.index;if(a+=t.slice(i,p),i=p+c.length,s)a+=s[1];else{var f=t[i],h=r[2],l=r[3],d=r[4],y=r[5],v=r[6],m=r[7];a&&(n.push(a),a="");var g=null!=h&&null!=f&&f!==h,b="+"===v||"*"===v,w="?"===v||"*"===v,x=r[2]||u,k=d||y;n.push({name:l||o++,prefix:h||"",delimiter:x,optional:w,repeat:b,partial:g,asterisk:!!m,pattern:k?U(k):m?".*":"[^"+q(x)+"]+?"})}}return i<t.length&&(a+=t.substr(i)),a&&n.push(a),n}function $(t){return encodeURI(t).replace(/[\/?#]/g,(function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()}))}function L(t,e){for(var r=new Array(t.length),n=0;n<t.length;n++)"object"==typeof t[n]&&(r[n]=new RegExp("^(?:"+t[n].pattern+")$",I(e)));return function(e,n){for(var o="",i=e||{},a=(n||{}).pretty?$:encodeURIComponent,u=0;u<t.length;u++){var c=t[u];if("string"!=typeof c){var s,p=i[c.name];if(null==p){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(E(p)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(s=a(p[f]),!r[u].test(s))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(s)+"`");o+=(0===f?c.prefix:c.delimiter)+s}}else{if(s=c.asterisk?encodeURI(p).replace(/[?#]/g,(function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})):a(p),!r[u].test(s))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+s+'"');o+=c.prefix+s}}else o+=c}return o}}function q(t){return t.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function U(t){return t.replace(/([=!:$\/()])/g,"\\$1")}function P(t,e){return t.keys=e,t}function I(t){return t&&t.sensitive?"":"i"}function M(t,e,r){E(e)||(r=e||r,e=[]);for(var n=(r=r||{}).strict,o=!1!==r.end,i="",a=0;a<t.length;a++){var u=t[a];if("string"==typeof u)i+=q(u);else{var c=q(u.prefix),s="(?:"+u.pattern+")";e.push(u),u.repeat&&(s+="(?:"+c+s+")*"),i+=s=u.optional?u.partial?c+"("+s+")?":"(?:"+c+"("+s+"))?":c+"("+s+")"}}var p=q(r.delimiter||"/"),f=i.slice(-p.length)===p;return n||(i=(f?i.slice(0,-p.length):i)+"(?:"+p+"(?=$))?"),i+=o?"$":n&&f?"":"(?="+p+"|$)",P(new RegExp("^"+i,I(r)),e)}function B(t,e,r){return E(e)||(r=e||r,e=[]),r=r||{},t instanceof RegExp?function(t,e){var r=t.source.match(/\((?!\?)/g);if(r)for(var n=0;n<r.length;n++)e.push({name:n,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return P(t,e)}(t,e):E(t)?function(t,e,r){for(var n=[],o=0;o<t.length;o++)n.push(B(t[o],e,r).source);return P(new RegExp("(?:"+n.join("|")+")",I(r)),e)}(t,e,r):function(t,e,r){return M(S(t,r),e,r)}(t,e,r)}O.parse=A,O.compile=C,O.tokensToFunction=j,O.tokensToRegExp=_;var H=Object.create(null);function z(t,e,r){e=e||{};try{var n=H[t]||(H[t]=O.compile(t));return e.pathMatch&&(e[0]=e.pathMatch),n(e,{pretty:!0})}catch(t){return""}finally{delete e[0]}}function K(t,e,r,n){var o=e||[],i=r||Object.create(null),a=n||Object.create(null);t.forEach((function(t){!function t(e,r,n,o,i,a){var u=o.path,c=o.name,s=o.pathToRegexpOptions||{},p=function(t,e,r){return r||(t=t.replace(/\/$/,"")),"/"===t[0]||null==e?t:R(e.path+"/"+t)}(u,i,s.strict);"boolean"==typeof o.caseSensitive&&(s.sensitive=o.caseSensitive);var f={path:p,regex:V(p,s),components:o.components||{default:o.component},instances:{},name:c,parent:i,matchAs:a,redirect:o.redirect,beforeEnter:o.beforeEnter,meta:o.meta||{},props:null==o.props?{}:o.components?o.props:{default:o.props}};o.children&&o.children.forEach((function(o){var i=a?R(a+"/"+o.path):void 0;t(e,r,n,o,f,i)})),void 0!==o.alias&&(Array.isArray(o.alias)?o.alias:[o.alias]).forEach((function(a){var u={path:a,children:o.children};t(e,r,n,u,i,f.path||"/")})),r[f.path]||(e.push(f.path),r[f.path]=f),c&&(n[c]||(n[c]=f))}(o,i,a,t)}));for(var u=0,c=o.length;u<c;u++)"*"===o[u]&&(o.push(o.splice(u,1)[0]),c--,u--);return{pathList:o,pathMap:i,nameMap:a}}function V(t,e){return O(t,[],e)}function D(t,r,n,o){var i="string"==typeof t?{path:t}:t;if(i._normalized)return i;if(i.name)return e({},t);if(!i.path&&i.params&&r){(i=e({},i))._normalized=!0;var a=e(e({},r.params),i.params);if(r.name)i.name=r.name,i.params=a;else if(r.matched.length){var u=r.matched[r.matched.length-1].path;i.path=z(u,a,r.path)}return i}var s=function(t){var e="",r="",n=t.indexOf("#");n>=0&&(e=t.slice(n),t=t.slice(0,n));var o=t.indexOf("?");return o>=0&&(r=t.slice(o+1),t=t.slice(0,o)),{path:t,query:r,hash:e}}(i.path||""),p=r&&r.path||"/",f=s.path?k(s.path,p,n||i.append):p,h=function(t,e,r){void 0===e&&(e={});var n,o=r||c;try{n=o(t||"")}catch(t){n={}}for(var i in e)n[i]=e[i];return n}(s.query,i.query,o&&o.options.parseQuery),l=i.hash||s.hash;return l&&"#"!==l.charAt(0)&&(l="#"+l),{_normalized:!0,path:f,query:h,hash:l}}function F(t,e){var r=K(t),n=r.pathList,o=r.pathMap,i=r.nameMap;function a(t,r,a){var u=D(t,r,!1,e),s=u.name;if(s){var p=i[s];if(!p)return c(null,u);var f=p.regex.keys.filter((function(t){return!t.optional})).map((function(t){return t.name}));if("object"!=typeof u.params&&(u.params={}),r&&"object"==typeof r.params)for(var h in r.params)!(h in u.params)&&f.indexOf(h)>-1&&(u.params[h]=r.params[h]);return u.path=z(p.path,u.params),c(p,u,a)}if(u.path){u.params={};for(var l=0;l<n.length;l++){var d=n[l],y=o[d];if(J(y.regex,u.path,u.params))return c(y,u,a)}}return c(null,u)}function u(t,r){var n=t.redirect,o="function"==typeof n?n(f(t,r,null,e)):n;if("string"==typeof o&&(o={path:o}),!o||"object"!=typeof o)return c(null,r);var u=o,s=u.name,p=u.path,h=r.query,l=r.hash,d=r.params;if(h=u.hasOwnProperty("query")?u.query:h,l=u.hasOwnProperty("hash")?u.hash:l,d=u.hasOwnProperty("params")?u.params:d,s)return i[s],a({_normalized:!0,name:s,query:h,hash:l,params:d},void 0,r);if(p){var y=function(t,e){return k(t,e.parent?e.parent.path:"/",!0)}(p,t);return a({_normalized:!0,path:z(y,d),query:h,hash:l},void 0,r)}return c(null,r)}function c(t,r,n){return t&&t.redirect?u(t,n||r):t&&t.matchAs?function(t,e,r){var n=a({_normalized:!0,path:z(r,e.params)});if(n){var o=n.matched,i=o[o.length-1];return e.params=n.params,c(i,e)}return c(null,e)}(0,r,t.matchAs):f(t,r,n,e)}return{match:a,addRoutes:function(t){K(t,n,o,i)}}}function J(t,e,r){var n=e.match(t);if(!n)return!1;if(!r)return!0;for(var o=1,i=n.length;o<i;++o){var a=t.keys[o-1],u="string"==typeof n[o]?decodeURIComponent(n[o]):n[o];a&&(r[a.name||"pathMatch"]=u)}return!0}var N=Object.create(null);function Q(){var t=window.location.protocol+"//"+window.location.host,e=window.location.href.replace(t,"");window.history.replaceState({key:at()},"",e),window.addEventListener("popstate",(function(t){var e;Y(),t.state&&t.state.key&&(e=t.state.key,ot=e)}))}function X(t,e,r,n){if(t.app){var o=t.options.scrollBehavior;o&&t.app.$nextTick((function(){var i=function(){var t=at();if(t)return N[t]}(),a=o.call(t,e,r,n?i:null);a&&("function"==typeof a.then?a.then((function(t){tt(t,i)})).catch((function(t){})):tt(a,i))}))}}function Y(){var t=at();t&&(N[t]={x:window.pageXOffset,y:window.pageYOffset})}function W(t){return Z(t.x)||Z(t.y)}function G(t){return{x:Z(t.x)?t.x:window.pageXOffset,y:Z(t.y)?t.y:window.pageYOffset}}function Z(t){return"number"==typeof t}function tt(t,e){var r,n="object"==typeof t;if(n&&"string"==typeof t.selector){var o=document.querySelector(t.selector);if(o){var i=t.offset&&"object"==typeof t.offset?t.offset:{};e=function(t,e){var r=document.documentElement.getBoundingClientRect(),n=t.getBoundingClientRect();return{x:n.left-r.left-e.x,y:n.top-r.top-e.y}}(o,i={x:Z((r=i).x)?r.x:0,y:Z(r.y)?r.y:0})}else W(t)&&(e=G(t))}else n&&W(t)&&(e=G(t));e&&window.scrollTo(e.x,e.y)}var et,rt=x&&(-1===(et=window.navigator.userAgent).indexOf("Android 2.")&&-1===et.indexOf("Android 4.0")||-1===et.indexOf("Mobile Safari")||-1!==et.indexOf("Chrome")||-1!==et.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,nt=x&&window.performance&&window.performance.now?window.performance:Date,ot=it();function it(){return nt.now().toFixed(3)}function at(){return ot}function ut(t,e){Y();var r=window.history;try{e?r.replaceState({key:ot},"",t):(ot=it(),r.pushState({key:ot},"",t))}catch(r){window.location[e?"replace":"assign"](t)}}function ct(t){ut(t,!0)}function st(t,e,r){var n=function(o){o>=t.length?r():t[o]?e(t[o],(function(){n(o+1)})):n(o+1)};n(0)}function pt(e){return function(r,n,o){var i=!1,a=0,u=null;ft(e,(function(e,r,n,c){if("function"==typeof e&&void 0===e.cid){i=!0,a++;var s,p=dt((function(t){var r;((r=t).__esModule||lt&&"Module"===r[Symbol.toStringTag])&&(t=t.default),e.resolved="function"==typeof t?t:g.extend(t),n.components[c]=t,--a<=0&&o()})),f=dt((function(e){var r="Failed to resolve async component "+c+": "+e;u||(u=t(e)?e:new Error(r),o(u))}));try{s=e(p,f)}catch(t){f(t)}if(s)if("function"==typeof s.then)s.then(p,f);else{var h=s.component;h&&"function"==typeof h.then&&h.then(p,f)}}})),i||o()}}function ft(t,e){return ht(t.map((function(t){return Object.keys(t.components).map((function(r){return e(t.components[r],t.instances[r],t,r)}))})))}function ht(t){return Array.prototype.concat.apply([],t)}var lt="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function dt(t){var e=!1;return function(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];if(!e)return e=!0,t.apply(this,r)}}var yt=function(t,e){this.router=t,this.base=function(t){if(!t)if(x){var e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else t="/";return"/"!==t.charAt(0)&&(t="/"+t),t.replace(/\/$/,"")}(e),this.current=l,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[]};function vt(t,e,r,n){var o=ft(t,(function(t,n,o,i){var a=function(t,e){return"function"!=typeof t&&(t=g.extend(t)),t.options[e]}(t,e);if(a)return Array.isArray(a)?a.map((function(t){return r(t,n,o,i)})):r(a,n,o,i)}));return ht(n?o.reverse():o)}function mt(t,e){if(e)return function(){return t.apply(e,arguments)}}yt.prototype.listen=function(t){this.cb=t},yt.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},yt.prototype.onError=function(t){this.errorCbs.push(t)},yt.prototype.transitionTo=function(t,e,r){var n=this,o=this.router.match(t,this.current);this.confirmTransition(o,(function(){n.updateRoute(o),e&&e(o),n.ensureURL(),n.ready||(n.ready=!0,n.readyCbs.forEach((function(t){t(o)})))}),(function(t){r&&r(t),t&&!n.ready&&(n.ready=!0,n.readyErrorCbs.forEach((function(e){e(t)})))}))},yt.prototype.confirmTransition=function(e,r,n){var o=this,i=this.current,a=function(e){t(e)&&(o.errorCbs.length?o.errorCbs.forEach((function(t){t(e)})):console.error(e)),n&&n(e)};if(v(e,i)&&e.matched.length===i.matched.length)return this.ensureURL(),a();var u=function(t,e){var r,n=Math.max(t.length,e.length);for(r=0;r<n&&t[r]===e[r];r++);return{updated:e.slice(0,r),activated:e.slice(r),deactivated:t.slice(r)}}(this.current.matched,e.matched),c=u.updated,s=u.deactivated,p=u.activated,f=[].concat(function(t){return vt(t,"beforeRouteLeave",mt,!0)}(s),this.router.beforeHooks,function(t){return vt(t,"beforeRouteUpdate",mt)}(c),p.map((function(t){return t.beforeEnter})),pt(p));this.pending=e;var h=function(r,n){if(o.pending!==e)return a();try{r(e,i,(function(e){!1===e||t(e)?(o.ensureURL(!0),a(e)):"string"==typeof e||"object"==typeof e&&("string"==typeof e.path||"string"==typeof e.name)?(a(),"object"==typeof e&&e.replace?o.replace(e):o.push(e)):n(e)}))}catch(t){a(t)}};st(f,h,(function(){var t=[];st(function(t,e,r){return vt(t,"beforeRouteEnter",(function(t,n,o,i){return function(t,e,r,n,o){return function(i,a,u){return t(i,a,(function(t){"function"==typeof t&&n.push((function(){!function t(e,r,n,o){r[n]&&!r[n]._isBeingDestroyed?e(r[n]):o()&&setTimeout((function(){t(e,r,n,o)}),16)}(t,e.instances,r,o)})),u(t)}))}}(t,o,i,e,r)}))}(p,t,(function(){return o.current===e})).concat(o.router.resolveHooks),h,(function(){if(o.pending!==e)return a();o.pending=null,r(e),o.router.app&&o.router.app.$nextTick((function(){t.forEach((function(t){t()}))}))}))}))},yt.prototype.updateRoute=function(t){var e=this.current;this.current=t,this.cb&&this.cb(t),this.router.afterHooks.forEach((function(r){r&&r(t,e)}))};var gt=function(t){function e(e,r){var n=this;t.call(this,e,r);var o=e.options.scrollBehavior,i=rt&&o;i&&Q();var a=bt(this.base);window.addEventListener("popstate",(function(t){var r=n.current,o=bt(n.base);n.current===l&&o===a||n.transitionTo(o,(function(t){i&&X(e,t,r,!0)}))}))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,r){var n=this,o=this.current;this.transitionTo(t,(function(t){ut(R(n.base+t.fullPath)),X(n.router,t,o,!1),e&&e(t)}),r)},e.prototype.replace=function(t,e,r){var n=this,o=this.current;this.transitionTo(t,(function(t){ct(R(n.base+t.fullPath)),X(n.router,t,o,!1),e&&e(t)}),r)},e.prototype.ensureURL=function(t){if(bt(this.base)!==this.current.fullPath){var e=R(this.base+this.current.fullPath);t?ut(e):ct(e)}},e.prototype.getCurrentLocation=function(){return bt(this.base)},e}(yt);function bt(t){var e=decodeURI(window.location.pathname);return t&&0===e.indexOf(t)&&(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var wt=function(t){function e(e,r,n){t.call(this,e,r),n&&function(t){var e=bt(t);if(!/^\/#/.test(e))return window.location.replace(R(t+"/#"+e)),!0}(this.base)||xt()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this,e=this.router.options.scrollBehavior,r=rt&&e;r&&Q(),window.addEventListener(rt?"popstate":"hashchange",(function(){var e=t.current;xt()&&t.transitionTo(kt(),(function(n){r&&X(t.router,n,e,!0),rt||Ot(n.fullPath)}))}))},e.prototype.push=function(t,e,r){var n=this,o=this.current;this.transitionTo(t,(function(t){Et(t.fullPath),X(n.router,t,o,!1),e&&e(t)}),r)},e.prototype.replace=function(t,e,r){var n=this,o=this.current;this.transitionTo(t,(function(t){Ot(t.fullPath),X(n.router,t,o,!1),e&&e(t)}),r)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;kt()!==e&&(t?Et(e):Ot(e))},e.prototype.getCurrentLocation=function(){return kt()},e}(yt);function xt(){var t=kt();return"/"===t.charAt(0)||(Ot("/"+t),!1)}function kt(){var t=window.location.href,e=t.indexOf("#");if(e<0)return"";var r=(t=t.slice(e+1)).indexOf("?");if(r<0){var n=t.indexOf("#");t=n>-1?decodeURI(t.slice(0,n))+t.slice(n):decodeURI(t)}else r>-1&&(t=decodeURI(t.slice(0,r))+t.slice(r));return t}function Rt(t){var e=window.location.href,r=e.indexOf("#");return(r>=0?e.slice(0,r):e)+"#"+t}function Et(t){rt?ut(Rt(t)):window.location.hash=t}function Ot(t){rt?ct(Rt(t)):window.location.replace(Rt(t))}var At=function(t){function e(e,r){t.call(this,e,r),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,r){var n=this;this.transitionTo(t,(function(t){n.stack=n.stack.slice(0,n.index+1).concat(t),n.index++,e&&e(t)}),r)},e.prototype.replace=function(t,e,r){var n=this;this.transitionTo(t,(function(t){n.stack=n.stack.slice(0,n.index).concat(t),e&&e(t)}),r)},e.prototype.go=function(t){var e=this,r=this.index+t;if(!(r<0||r>=this.stack.length)){var n=this.stack[r];this.confirmTransition(n,(function(){e.index=r,e.updateRoute(n)}))}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(yt),Ct=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=F(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!rt&&!1!==t.fallback,this.fallback&&(e="hash"),x||(e="abstract"),this.mode=e,e){case"history":this.history=new gt(this,t.base);break;case"hash":this.history=new wt(this,t.base,this.fallback);break;case"abstract":this.history=new At(this,t.base)}},jt={currentRoute:{configurable:!0}};function _t(t,e){return t.push(e),function(){var r=t.indexOf(e);r>-1&&t.splice(r,1)}}return Ct.prototype.match=function(t,e,r){return this.matcher.match(t,e,r)},jt.currentRoute.get=function(){return this.history&&this.history.current},Ct.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",(function(){var r=e.apps.indexOf(t);r>-1&&e.apps.splice(r,1),e.app===t&&(e.app=e.apps[0]||null)})),!this.app){this.app=t;var r=this.history;if(r instanceof gt)r.transitionTo(r.getCurrentLocation());else if(r instanceof wt){var n=function(){r.setupListeners()};r.transitionTo(r.getCurrentLocation(),n,n)}r.listen((function(t){e.apps.forEach((function(e){e._route=t}))}))}},Ct.prototype.beforeEach=function(t){return _t(this.beforeHooks,t)},Ct.prototype.beforeResolve=function(t){return _t(this.resolveHooks,t)},Ct.prototype.afterEach=function(t){return _t(this.afterHooks,t)},Ct.prototype.onReady=function(t,e){this.history.onReady(t,e)},Ct.prototype.onError=function(t){this.history.onError(t)},Ct.prototype.push=function(t,e,r){this.history.push(t,e,r)},Ct.prototype.replace=function(t,e,r){this.history.replace(t,e,r)},Ct.prototype.go=function(t){this.history.go(t)},Ct.prototype.back=function(){this.go(-1)},Ct.prototype.forward=function(){this.go(1)},Ct.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map((function(t){return Object.keys(t.components).map((function(e){return t.components[e]}))}))):[]},Ct.prototype.resolve=function(t,e,r){var n=D(t,e=e||this.history.current,r,this),o=this.match(n,e),i=o.redirectedFrom||o.fullPath;return{location:n,route:o,href:function(t,e,r){var n="hash"===r?"#"+e:e;return t?R(t+"/"+n):n}(this.history.base,i,this.mode),normalizedTo:n,resolved:o}},Ct.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==l&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(Ct.prototype,jt),Ct.install=function t(e){if(!t.installed||g!==e){t.installed=!0,g=e;var n=function(t){return void 0!==t},o=function(t,e){var r=t.$options._parentKnode;n(r)&&n(r=r.data)&&n(r=r.registerRouteInstance)&&r(t,e)};e.mixin({beforeCreate:function(){n(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),e.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,o(this,this)},destroyed:function(){o(this)}}),Object.defineProperty(e.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(e.prototype,"$route",{get:function(){return this._routerRoot._route}}),e.component("RouterView",r),e.component("RouterLink",b);var i=e.config.optionMergeStrategies;i.beforeRouteEnter=i.beforeRouteLeave=i.beforeRouteUpdate=i.created}},Ct.version="3.0.7",x&&window.Kdu&&window.Kdu.use(Ct),Ct},"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.KduRouter=e();