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.
- package/README.md +0 -2
- package/dist/kdu-router.common.js +128 -68
- package/dist/kdu-router.esm.browser.js +2632 -0
- package/dist/kdu-router.esm.browser.min.js +11 -0
- package/dist/kdu-router.esm.js +128 -68
- package/dist/kdu-router.js +128 -68
- package/dist/kdu-router.min.js +8 -3
- package/package.json +43 -26
- package/src/create-matcher.js +200 -0
- package/src/create-route-map.js +171 -0
- package/src/index.js +247 -0
- package/src/install.js +52 -0
- package/types/kdu.d.ts +3 -3
- package/types/router.d.ts +9 -8
package/dist/kdu-router.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
* kdu-router v3.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: '
|
|
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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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
|
-
//
|
|
103
|
-
|
|
104
|
-
data.
|
|
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
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
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: '
|
|
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
|
-
|
|
415
|
-
|
|
439
|
+
? 'router-link-active'
|
|
440
|
+
: globalActiveClass;
|
|
416
441
|
var exactActiveClassFallback = globalExactActiveClass == null
|
|
417
|
-
|
|
418
|
-
|
|
442
|
+
? 'router-link-exact-active'
|
|
443
|
+
: globalExactActiveClass;
|
|
419
444
|
var activeClass = this.activeClass == null
|
|
420
|
-
|
|
421
|
-
|
|
445
|
+
? activeClassFallback
|
|
446
|
+
: this.activeClass;
|
|
422
447
|
var exactActiveClass = this.exactActiveClass == null
|
|
423
|
-
|
|
424
|
-
|
|
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('
|
|
556
|
-
Kdu.component('
|
|
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
|
-
|
|
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.
|
|
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 =
|
|
1309
|
+
next = extend({}, next);
|
|
1278
1310
|
next._normalized = true;
|
|
1279
|
-
var 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
|
-
|
|
1371
|
-
|
|
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
|
-
|
|
1395
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 (
|
|
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 (
|
|
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 (
|
|
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
|
-
|
|
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
|
-
//
|
|
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
|
|
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.
|
|
2672
|
+
KduRouter.version = '3.0.7';
|
|
2613
2673
|
|
|
2614
2674
|
if (inBrowser && window.Kdu) {
|
|
2615
2675
|
window.Kdu.use(KduRouter);
|
package/dist/kdu-router.min.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
* kdu-router v3.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();
|