@tarojs/taro-h5 3.3.14 → 3.3.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.js +298 -234
- package/package.json +5 -5
- package/src/api/tabBar/index.js +18 -40
package/dist/index.cjs.js
CHANGED
|
@@ -1263,7 +1263,87 @@ function prependBasename() {
|
|
|
1263
1263
|
return basename.replace(/\/$/, '') + '/' + url.replace(/^\//, '');
|
|
1264
1264
|
}
|
|
1265
1265
|
|
|
1266
|
-
var
|
|
1266
|
+
var hasBasename = function hasBasename(path, prefix) {
|
|
1267
|
+
return new RegExp('^' + prefix + '(\\/|\\?|#|$)', 'i').test(path);
|
|
1268
|
+
};
|
|
1269
|
+
|
|
1270
|
+
var stripBasename = function stripBasename(path, prefix) {
|
|
1271
|
+
return hasBasename(path, prefix) ? path.substr(prefix.length) : path;
|
|
1272
|
+
};
|
|
1273
|
+
|
|
1274
|
+
var Stacks = /*#__PURE__*/function () {
|
|
1275
|
+
function Stacks() {
|
|
1276
|
+
_classCallCheck$1(this, Stacks);
|
|
1277
|
+
|
|
1278
|
+
this.stacks = [];
|
|
1279
|
+
this.backDelta = 0;
|
|
1280
|
+
}
|
|
1281
|
+
|
|
1282
|
+
_createClass$1(Stacks, [{
|
|
1283
|
+
key: "delta",
|
|
1284
|
+
set: function set(delta) {
|
|
1285
|
+
if (delta > 0) {
|
|
1286
|
+
this.backDelta = delta;
|
|
1287
|
+
} else {
|
|
1288
|
+
--this.backDelta;
|
|
1289
|
+
}
|
|
1290
|
+
}
|
|
1291
|
+
}, {
|
|
1292
|
+
key: "length",
|
|
1293
|
+
get: function get() {
|
|
1294
|
+
return this.stacks.length;
|
|
1295
|
+
}
|
|
1296
|
+
}, {
|
|
1297
|
+
key: "last",
|
|
1298
|
+
get: function get() {
|
|
1299
|
+
return this.stacks[this.length - 1];
|
|
1300
|
+
}
|
|
1301
|
+
}, {
|
|
1302
|
+
key: "get",
|
|
1303
|
+
value: function get() {
|
|
1304
|
+
return this.stacks;
|
|
1305
|
+
}
|
|
1306
|
+
}, {
|
|
1307
|
+
key: "getItem",
|
|
1308
|
+
value: function getItem(index) {
|
|
1309
|
+
return this.stacks[index];
|
|
1310
|
+
}
|
|
1311
|
+
}, {
|
|
1312
|
+
key: "getDelta",
|
|
1313
|
+
value: function getDelta(pathname) {
|
|
1314
|
+
if (this.backDelta >= 1) {
|
|
1315
|
+
return this.backDelta;
|
|
1316
|
+
} // NOTE: 此处为了修复浏览器后退多级页面,在大量重复路由状况下可能出现判断错误的情况 (增强判断能力只能考虑在 query 中新增参数来判断,暂时搁置)
|
|
1317
|
+
|
|
1318
|
+
|
|
1319
|
+
var prevIndex = this.stacks.findIndex(function (r) {
|
|
1320
|
+
var _a;
|
|
1321
|
+
|
|
1322
|
+
return ((_a = r.path) === null || _a === void 0 ? void 0 : _a.replace(/\?.*/g, '')) === pathname;
|
|
1323
|
+
});
|
|
1324
|
+
return this.length - 1 - prevIndex;
|
|
1325
|
+
}
|
|
1326
|
+
}, {
|
|
1327
|
+
key: "getPrevIndex",
|
|
1328
|
+
value: function getPrevIndex(pathname) {
|
|
1329
|
+
return this.length - 1 - this.getDelta(pathname);
|
|
1330
|
+
}
|
|
1331
|
+
}, {
|
|
1332
|
+
key: "pop",
|
|
1333
|
+
value: function pop() {
|
|
1334
|
+
return this.stacks.pop();
|
|
1335
|
+
}
|
|
1336
|
+
}, {
|
|
1337
|
+
key: "push",
|
|
1338
|
+
value: function push(page) {
|
|
1339
|
+
return this.stacks.push(page);
|
|
1340
|
+
}
|
|
1341
|
+
}]);
|
|
1342
|
+
|
|
1343
|
+
return Stacks;
|
|
1344
|
+
}();
|
|
1345
|
+
|
|
1346
|
+
var stacks = new Stacks();
|
|
1267
1347
|
var routesAlias = {};
|
|
1268
1348
|
|
|
1269
1349
|
function setRoutesAlias(alias) {
|
|
@@ -1276,33 +1356,7 @@ function addLeadingSlash(path) {
|
|
|
1276
1356
|
}
|
|
1277
1357
|
|
|
1278
1358
|
return path.charAt(0) === '/' ? path : '/' + path;
|
|
1279
|
-
}
|
|
1280
|
-
// 比如:A->B->C,navigateBack({delta: 2}),此时路由栈中还存在B页面
|
|
1281
|
-
// 原因:主要是由于一次性退出多层级页面时,此action只会执行一次,此处进行手动处理
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
var historyBackDelta = 1;
|
|
1285
|
-
|
|
1286
|
-
function setHistoryBackDelta(delta) {
|
|
1287
|
-
historyBackDelta = delta;
|
|
1288
|
-
} // eslint-disable-next-line @typescript-eslint/ban-types
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
var throttle = function throttle(fn, threshold) {
|
|
1292
|
-
var lastTime = 0;
|
|
1293
|
-
return function () {
|
|
1294
|
-
var now = Date.now();
|
|
1295
|
-
|
|
1296
|
-
if (now - lastTime > threshold) {
|
|
1297
|
-
fn.apply(this, arguments);
|
|
1298
|
-
lastTime = now;
|
|
1299
|
-
}
|
|
1300
|
-
};
|
|
1301
|
-
};
|
|
1302
|
-
|
|
1303
|
-
var stripBasename = function stripBasename(path, basename) {
|
|
1304
|
-
return path.startsWith(basename) ? path.replace(basename, '') : path;
|
|
1305
|
-
};
|
|
1359
|
+
}
|
|
1306
1360
|
|
|
1307
1361
|
var isTabBar = function isTabBar(config) {
|
|
1308
1362
|
var _a, _b;
|
|
@@ -1326,13 +1380,29 @@ var isTabBar = function isTabBar(config) {
|
|
|
1326
1380
|
};
|
|
1327
1381
|
|
|
1328
1382
|
function processNavigateUrl(option) {
|
|
1383
|
+
var _a;
|
|
1384
|
+
|
|
1329
1385
|
var pathPieces = J(option.url); // 处理自定义路由
|
|
1330
1386
|
|
|
1331
1387
|
Object.keys(routesAlias).forEach(function (key) {
|
|
1332
1388
|
if (addLeadingSlash(key) === addLeadingSlash(pathPieces.pathname)) {
|
|
1333
1389
|
pathPieces.pathname = routesAlias[key];
|
|
1334
1390
|
}
|
|
1335
|
-
}); //
|
|
1391
|
+
}); // 处理相对路径
|
|
1392
|
+
|
|
1393
|
+
if ((_a = pathPieces === null || pathPieces === void 0 ? void 0 : pathPieces.pathname) === null || _a === void 0 ? void 0 : _a.includes('./')) {
|
|
1394
|
+
var parts = exports.history.location.pathname.split('/');
|
|
1395
|
+
parts.pop();
|
|
1396
|
+
pathPieces.pathname.split('/').forEach(function (item) {
|
|
1397
|
+
if (item === '.') {
|
|
1398
|
+
return;
|
|
1399
|
+
}
|
|
1400
|
+
|
|
1401
|
+
item === '..' ? parts.pop() : parts.push(item);
|
|
1402
|
+
});
|
|
1403
|
+
pathPieces.pathname = parts.join('/');
|
|
1404
|
+
} // 处理 basename
|
|
1405
|
+
|
|
1336
1406
|
|
|
1337
1407
|
pathPieces.pathname = prependBasename(pathPieces.pathname); // hack fix history v5 bug: https://github.com/remix-run/history/issues/814
|
|
1338
1408
|
|
|
@@ -1374,7 +1444,7 @@ function _navigate() {
|
|
|
1374
1444
|
exports.history.replace(pathPieces, state);
|
|
1375
1445
|
}
|
|
1376
1446
|
} else if (method === 'navigateBack') {
|
|
1377
|
-
|
|
1447
|
+
stacks.delta = option.delta;
|
|
1378
1448
|
exports.history.go(-option.delta);
|
|
1379
1449
|
}
|
|
1380
1450
|
} catch (error) {
|
|
@@ -1425,7 +1495,7 @@ function reLaunch(option) {
|
|
|
1425
1495
|
}
|
|
1426
1496
|
|
|
1427
1497
|
function getCurrentPages() {
|
|
1428
|
-
return stacks;
|
|
1498
|
+
return stacks.get();
|
|
1429
1499
|
}
|
|
1430
1500
|
/**
|
|
1431
1501
|
* Expose `pathToRegexp`.
|
|
@@ -2070,6 +2140,8 @@ var UniversalRouter = function () {
|
|
|
2070
2140
|
|
|
2071
2141
|
UniversalRouter.pathToRegexp = pathToRegexp_1;
|
|
2072
2142
|
|
|
2143
|
+
var Taro$1 = require('@tarojs/taro-h5');
|
|
2144
|
+
|
|
2073
2145
|
function initTabbar(config) {
|
|
2074
2146
|
if (config.tabBar == null) {
|
|
2075
2147
|
return;
|
|
@@ -2082,7 +2154,6 @@ function initTabbar(config) {
|
|
|
2082
2154
|
tabbar.conf.homePage = exports.history.location.pathname === '/' ? homePage : exports.history.location.pathname;
|
|
2083
2155
|
var routerConfig = config.router;
|
|
2084
2156
|
tabbar.conf.mode = routerConfig && routerConfig.mode ? routerConfig.mode : 'hash';
|
|
2085
|
-
tabbar.conf.custom = !!routerConfig.customRoutes;
|
|
2086
2157
|
|
|
2087
2158
|
if (routerConfig.customRoutes) {
|
|
2088
2159
|
tabbar.conf.custom = true;
|
|
@@ -2099,6 +2170,7 @@ function initTabbar(config) {
|
|
|
2099
2170
|
var container = document.getElementById('container'); // eslint-disable-next-line no-unused-expressions
|
|
2100
2171
|
|
|
2101
2172
|
container === null || container === void 0 ? void 0 : container.appendChild(tabbar);
|
|
2173
|
+
Taro$1.initTabBarApis(config);
|
|
2102
2174
|
}
|
|
2103
2175
|
|
|
2104
2176
|
var routerConfig = Object.create(null);
|
|
@@ -2124,6 +2196,64 @@ function init(config) {
|
|
|
2124
2196
|
initTabbar(config);
|
|
2125
2197
|
}
|
|
2126
2198
|
|
|
2199
|
+
var pageScrollFn;
|
|
2200
|
+
var pageDOM = window;
|
|
2201
|
+
|
|
2202
|
+
function bindPageScroll(page, config) {
|
|
2203
|
+
pageDOM.removeEventListener('scroll', pageScrollFn);
|
|
2204
|
+
pageDOM = getScrollContainer();
|
|
2205
|
+
var distance = config.onReachBottomDistance || 50;
|
|
2206
|
+
var isReachBottom = false;
|
|
2207
|
+
|
|
2208
|
+
pageScrollFn = function pageScrollFn() {
|
|
2209
|
+
page.onPageScroll && page.onPageScroll({
|
|
2210
|
+
scrollTop: pageDOM instanceof Window ? window.scrollY : pageDOM.scrollTop
|
|
2211
|
+
});
|
|
2212
|
+
|
|
2213
|
+
if (isReachBottom && getOffset() > distance) {
|
|
2214
|
+
isReachBottom = false;
|
|
2215
|
+
}
|
|
2216
|
+
|
|
2217
|
+
if (page.onReachBottom && !isReachBottom && getOffset() < distance) {
|
|
2218
|
+
isReachBottom = true;
|
|
2219
|
+
page.onReachBottom();
|
|
2220
|
+
}
|
|
2221
|
+
};
|
|
2222
|
+
|
|
2223
|
+
pageDOM.addEventListener('scroll', pageScrollFn, false);
|
|
2224
|
+
}
|
|
2225
|
+
|
|
2226
|
+
window.addEventListener('DOMSubtreeModified', function (e) {
|
|
2227
|
+
var _a; // @ts-ignore
|
|
2228
|
+
|
|
2229
|
+
|
|
2230
|
+
var className = (_a = e.target) === null || _a === void 0 ? void 0 : _a.className;
|
|
2231
|
+
|
|
2232
|
+
if (className && /taro-tabbar__/.test(className)) {
|
|
2233
|
+
pageDOM.removeEventListener('scroll', pageScrollFn);
|
|
2234
|
+
pageDOM = getScrollContainer();
|
|
2235
|
+
pageDOM.addEventListener('scroll', pageScrollFn, false);
|
|
2236
|
+
}
|
|
2237
|
+
}, false);
|
|
2238
|
+
|
|
2239
|
+
function getScrollContainer() {
|
|
2240
|
+
if (document.querySelector('.taro-tabbar__tabbar') === null) {
|
|
2241
|
+
// 没设置tabbar
|
|
2242
|
+
return window;
|
|
2243
|
+
} else {
|
|
2244
|
+
// 有设置tabbar
|
|
2245
|
+
return document.querySelector('.taro-tabbar__panel') || window;
|
|
2246
|
+
}
|
|
2247
|
+
}
|
|
2248
|
+
|
|
2249
|
+
function getOffset() {
|
|
2250
|
+
if (pageDOM instanceof Window) {
|
|
2251
|
+
return document.documentElement.scrollHeight - window.scrollY - window.innerHeight;
|
|
2252
|
+
} else {
|
|
2253
|
+
return pageDOM.scrollHeight - pageDOM.scrollTop - pageDOM.clientHeight;
|
|
2254
|
+
}
|
|
2255
|
+
}
|
|
2256
|
+
|
|
2127
2257
|
function createCommonjsModule$1(fn, module) {
|
|
2128
2258
|
return module = {
|
|
2129
2259
|
exports: {}
|
|
@@ -2693,10 +2823,26 @@ var queryString_5 = queryString.stringifyUrl;
|
|
|
2693
2823
|
var queryString_6 = queryString.pick;
|
|
2694
2824
|
var queryString_7 = queryString.exclude;
|
|
2695
2825
|
|
|
2826
|
+
function getSearch() {
|
|
2827
|
+
var search = '?';
|
|
2828
|
+
|
|
2829
|
+
if (routerConfig.router.mode === 'hash') {
|
|
2830
|
+
var idx = location.hash.indexOf('?');
|
|
2831
|
+
|
|
2832
|
+
if (idx > -1) {
|
|
2833
|
+
search = location.hash.slice(idx);
|
|
2834
|
+
}
|
|
2835
|
+
} else {
|
|
2836
|
+
search = location.search;
|
|
2837
|
+
}
|
|
2838
|
+
|
|
2839
|
+
return search.substr(1);
|
|
2840
|
+
}
|
|
2841
|
+
|
|
2696
2842
|
var qs = function qs() {
|
|
2697
2843
|
var stamp = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
2698
|
-
var search =
|
|
2699
|
-
var query = search ? queryString.parse(search
|
|
2844
|
+
var search = getSearch();
|
|
2845
|
+
var query = search ? queryString.parse(search) : {};
|
|
2700
2846
|
|
|
2701
2847
|
if (stamp) {
|
|
2702
2848
|
query.stamp = stamp.toString();
|
|
@@ -2704,142 +2850,90 @@ var qs = function qs() {
|
|
|
2704
2850
|
|
|
2705
2851
|
return query;
|
|
2706
2852
|
};
|
|
2853
|
+
/* eslint-disable dot-notation */
|
|
2707
2854
|
|
|
2708
|
-
var pageScrollFn;
|
|
2709
|
-
var pageDOM = window;
|
|
2710
|
-
|
|
2711
|
-
function bindPageScroll(page, config) {
|
|
2712
|
-
pageDOM.removeEventListener('scroll', pageScrollFn);
|
|
2713
|
-
pageDOM = getScrollContainer();
|
|
2714
|
-
var distance = config.onReachBottomDistance || 50;
|
|
2715
|
-
var isReachBottom = false;
|
|
2716
2855
|
|
|
2717
|
-
|
|
2718
|
-
|
|
2719
|
-
scrollTop: pageDOM instanceof Window ? window.scrollY : pageDOM.scrollTop
|
|
2720
|
-
});
|
|
2856
|
+
function pageOnReady(page) {
|
|
2857
|
+
var onLoad = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
2721
2858
|
|
|
2722
|
-
|
|
2723
|
-
isReachBottom = false;
|
|
2724
|
-
}
|
|
2859
|
+
var _a;
|
|
2725
2860
|
|
|
2726
|
-
|
|
2727
|
-
isReachBottom = true;
|
|
2728
|
-
page.onReachBottom();
|
|
2729
|
-
}
|
|
2730
|
-
};
|
|
2861
|
+
var pageEl = document.getElementById(page.path);
|
|
2731
2862
|
|
|
2732
|
-
|
|
2863
|
+
if (pageEl && !(pageEl === null || pageEl === void 0 ? void 0 : pageEl['__isReady'])) {
|
|
2864
|
+
var el = pageEl.firstElementChild;
|
|
2865
|
+
(_a = el === null || el === void 0 ? void 0 : el['componentOnReady']) === null || _a === void 0 ? void 0 : _a.call(el).then(function () {
|
|
2866
|
+
runtime.requestAnimationFrame(function () {
|
|
2867
|
+
page.onReady();
|
|
2868
|
+
pageEl['__isReady'] = true;
|
|
2869
|
+
});
|
|
2870
|
+
});
|
|
2871
|
+
onLoad && (pageEl['__page'] = page);
|
|
2872
|
+
}
|
|
2733
2873
|
}
|
|
2734
2874
|
|
|
2735
|
-
|
|
2736
|
-
var
|
|
2737
|
-
|
|
2738
|
-
|
|
2739
|
-
var
|
|
2740
|
-
|
|
2741
|
-
if (className && /taro-tabbar__/.test(className)) {
|
|
2742
|
-
pageDOM.removeEventListener('scroll', pageScrollFn);
|
|
2743
|
-
pageDOM = getScrollContainer();
|
|
2744
|
-
pageDOM.addEventListener('scroll', pageScrollFn, false);
|
|
2745
|
-
}
|
|
2746
|
-
}, false);
|
|
2875
|
+
function loadPage(page) {
|
|
2876
|
+
var pageConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
2877
|
+
var stacksIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
2878
|
+
if (!page) return;
|
|
2879
|
+
var pageEl = document.getElementById(page.path);
|
|
2747
2880
|
|
|
2748
|
-
|
|
2749
|
-
|
|
2750
|
-
// 没设置tabbar
|
|
2751
|
-
return window;
|
|
2881
|
+
if (pageEl) {
|
|
2882
|
+
pageEl.style.display = 'block';
|
|
2752
2883
|
} else {
|
|
2753
|
-
|
|
2754
|
-
|
|
2884
|
+
page.onLoad(qs(stacksIndex), function () {
|
|
2885
|
+
return pageOnReady(page, true);
|
|
2886
|
+
});
|
|
2755
2887
|
}
|
|
2756
|
-
}
|
|
2757
2888
|
|
|
2758
|
-
|
|
2759
|
-
|
|
2760
|
-
|
|
2761
|
-
} else {
|
|
2762
|
-
return pageDOM.scrollHeight - pageDOM.scrollTop - pageDOM.clientHeight;
|
|
2763
|
-
}
|
|
2889
|
+
stacks.push(page);
|
|
2890
|
+
page.onShow();
|
|
2891
|
+
bindPageScroll(page, pageConfig);
|
|
2764
2892
|
}
|
|
2765
|
-
/* eslint-disable dot-notation */
|
|
2766
|
-
|
|
2767
|
-
|
|
2768
|
-
function hidePage(page) {
|
|
2769
|
-
if (page != null) {
|
|
2770
|
-
page.onHide();
|
|
2771
|
-
var pageEl = document.getElementById(page.path);
|
|
2772
2893
|
|
|
2773
|
-
|
|
2774
|
-
|
|
2775
|
-
|
|
2776
|
-
|
|
2894
|
+
function unloadPage(page) {
|
|
2895
|
+
var delta = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
2896
|
+
if (!page) return;
|
|
2897
|
+
stacks.delta = --delta;
|
|
2898
|
+
stacks.pop();
|
|
2899
|
+
page.onUnload();
|
|
2900
|
+
if (delta >= 1) unloadPage(stacks.last, delta);
|
|
2777
2901
|
}
|
|
2778
2902
|
|
|
2779
|
-
function showPage(page
|
|
2903
|
+
function showPage(page) {
|
|
2904
|
+
var pageConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
2780
2905
|
var stacksIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
2906
|
+
if (!page) return;
|
|
2907
|
+
page.onShow();
|
|
2908
|
+
var pageEl = document.getElementById(page.path);
|
|
2781
2909
|
|
|
2782
|
-
if (
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
|
-
} else {
|
|
2789
|
-
page.onLoad(qs(stacksIndex));
|
|
2790
|
-
pageEl = document.getElementById(page.path);
|
|
2791
|
-
pageOnReady(pageEl, page, false);
|
|
2792
|
-
}
|
|
2793
|
-
|
|
2794
|
-
bindPageScroll(page, pageConfig || {});
|
|
2910
|
+
if (pageEl) {
|
|
2911
|
+
pageEl.style.display = 'block';
|
|
2912
|
+
} else {
|
|
2913
|
+
page.onLoad(qs(stacksIndex), function () {
|
|
2914
|
+
return pageOnReady(page, false);
|
|
2915
|
+
});
|
|
2795
2916
|
}
|
|
2796
|
-
}
|
|
2797
2917
|
|
|
2798
|
-
|
|
2799
|
-
if (page != null) {
|
|
2800
|
-
stacks.pop();
|
|
2801
|
-
page.onUnload();
|
|
2802
|
-
}
|
|
2918
|
+
bindPageScroll(page, pageConfig);
|
|
2803
2919
|
}
|
|
2804
2920
|
|
|
2805
|
-
function
|
|
2806
|
-
|
|
2807
|
-
|
|
2808
|
-
var _a;
|
|
2921
|
+
function hidePage(page) {
|
|
2922
|
+
if (!page) return; // NOTE: 修复多页并发问题,此处可能因为路由跳转过快,执行时页面可能还没有创建成功
|
|
2809
2923
|
|
|
2810
|
-
|
|
2811
|
-
var el = pageEl.firstElementChild; // eslint-disable-next-line no-unused-expressions
|
|
2924
|
+
var pageEl = document.getElementById(page.path);
|
|
2812
2925
|
|
|
2813
|
-
|
|
2814
|
-
|
|
2815
|
-
|
|
2816
|
-
|
|
2817
|
-
|
|
2818
|
-
|
|
2819
|
-
|
|
2926
|
+
if (pageEl) {
|
|
2927
|
+
pageEl.style.display = 'none';
|
|
2928
|
+
page.onHide();
|
|
2929
|
+
} else {
|
|
2930
|
+
setTimeout(function () {
|
|
2931
|
+
return hidePage(page);
|
|
2932
|
+
}, 0);
|
|
2820
2933
|
}
|
|
2821
2934
|
}
|
|
2935
|
+
/* eslint-disable dot-notation */
|
|
2822
2936
|
|
|
2823
|
-
function loadPage(page, pageConfig) {
|
|
2824
|
-
var stacksIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
2825
|
-
|
|
2826
|
-
if (page !== null) {
|
|
2827
|
-
var pageEl = document.getElementById(page.path);
|
|
2828
|
-
|
|
2829
|
-
if (pageEl) {
|
|
2830
|
-
pageEl.style.display = 'block';
|
|
2831
|
-
} else {
|
|
2832
|
-
page.onLoad(qs(stacksIndex), function () {
|
|
2833
|
-
pageEl = document.getElementById(page.path);
|
|
2834
|
-
pageOnReady(pageEl, page);
|
|
2835
|
-
});
|
|
2836
|
-
}
|
|
2837
|
-
|
|
2838
|
-
stacks.push(page);
|
|
2839
|
-
page.onShow();
|
|
2840
|
-
bindPageScroll(page, pageConfig || {});
|
|
2841
|
-
}
|
|
2842
|
-
}
|
|
2843
2937
|
|
|
2844
2938
|
function createRouter(app, config, framework) {
|
|
2845
2939
|
var _a;
|
|
@@ -2864,9 +2958,10 @@ function createRouter(app, config, framework) {
|
|
|
2864
2958
|
baseUrl: basename || ''
|
|
2865
2959
|
});
|
|
2866
2960
|
app.onLaunch();
|
|
2867
|
-
|
|
2961
|
+
|
|
2962
|
+
var render = /*#__PURE__*/function () {
|
|
2868
2963
|
var _ref4 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(_ref3) {
|
|
2869
|
-
var location, action, _a, _b, _c, _d, element, pageConfig, enablePullDownRefresh,
|
|
2964
|
+
var location, action, _a, _b, _c, _d, element, pageConfig, enablePullDownRefresh, currentPage, pathname, shouldLoad, prevIndex, delta, _prevIndex, el, loadConfig, stacksIndex, page;
|
|
2870
2965
|
|
|
2871
2966
|
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
2872
2967
|
while (1) {
|
|
@@ -2926,98 +3021,86 @@ function createRouter(app, config, framework) {
|
|
|
2926
3021
|
enablePullDownRefresh = pageConfig.enablePullDownRefresh;
|
|
2927
3022
|
}
|
|
2928
3023
|
|
|
3024
|
+
currentPage = runtime.Current.page;
|
|
3025
|
+
pathname = location.pathname;
|
|
2929
3026
|
shouldLoad = false;
|
|
2930
3027
|
|
|
2931
3028
|
if (!(action === 'POP')) {
|
|
2932
|
-
_context.next =
|
|
3029
|
+
_context.next = 31;
|
|
2933
3030
|
break;
|
|
2934
3031
|
}
|
|
2935
3032
|
|
|
2936
|
-
|
|
2937
|
-
|
|
3033
|
+
// NOTE: 浏览器事件退后多次时,该事件只会被触发一次
|
|
3034
|
+
prevIndex = stacks.getPrevIndex(pathname);
|
|
3035
|
+
delta = stacks.getDelta(pathname);
|
|
3036
|
+
unloadPage(currentPage, delta);
|
|
2938
3037
|
|
|
2939
|
-
|
|
2940
|
-
|
|
2941
|
-
} // 最终必须重置为 1
|
|
2942
|
-
|
|
2943
|
-
|
|
2944
|
-
setHistoryBackDelta(1);
|
|
2945
|
-
prevIndex = stacks.reduceRight(function (p, s, i) {
|
|
2946
|
-
if (p !== 0) return p;else if (s.path === location.pathname + runtime.stringify(qs(i))) return i;else return 0;
|
|
2947
|
-
}, 0);
|
|
2948
|
-
prev = stacks[prevIndex];
|
|
2949
|
-
|
|
2950
|
-
if (prev) {
|
|
2951
|
-
showPage(prev, pageConfig, prevIndex);
|
|
3038
|
+
if (prevIndex > -1) {
|
|
3039
|
+
showPage(stacks.getItem(prevIndex), pageConfig, prevIndex);
|
|
2952
3040
|
} else {
|
|
2953
3041
|
shouldLoad = true;
|
|
2954
3042
|
}
|
|
2955
3043
|
|
|
2956
|
-
_context.next =
|
|
3044
|
+
_context.next = 46;
|
|
2957
3045
|
break;
|
|
2958
3046
|
|
|
2959
|
-
case
|
|
3047
|
+
case 31:
|
|
2960
3048
|
if (!(action === 'PUSH')) {
|
|
2961
|
-
_context.next =
|
|
3049
|
+
_context.next = 36;
|
|
2962
3050
|
break;
|
|
2963
3051
|
}
|
|
2964
3052
|
|
|
2965
|
-
hidePage(
|
|
3053
|
+
hidePage(currentPage);
|
|
2966
3054
|
shouldLoad = true;
|
|
2967
|
-
_context.next =
|
|
3055
|
+
_context.next = 46;
|
|
2968
3056
|
break;
|
|
2969
3057
|
|
|
2970
|
-
case
|
|
3058
|
+
case 36:
|
|
2971
3059
|
if (!(action === 'REPLACE')) {
|
|
2972
|
-
_context.next =
|
|
3060
|
+
_context.next = 46;
|
|
2973
3061
|
break;
|
|
2974
3062
|
}
|
|
2975
3063
|
|
|
2976
3064
|
if (!isTabBar(config)) {
|
|
2977
|
-
_context.next =
|
|
3065
|
+
_context.next = 44;
|
|
2978
3066
|
break;
|
|
2979
3067
|
}
|
|
2980
3068
|
|
|
2981
|
-
hidePage(
|
|
2982
|
-
|
|
2983
|
-
_prevIndex = stacks.findIndex(function (r) {
|
|
2984
|
-
var _a;
|
|
2985
|
-
|
|
2986
|
-
return ((_a = r.path) === null || _a === void 0 ? void 0 : _a.replace(/\?.*/g, '')) === pathname;
|
|
2987
|
-
});
|
|
3069
|
+
hidePage(currentPage);
|
|
3070
|
+
_prevIndex = stacks.getPrevIndex(pathname);
|
|
2988
3071
|
|
|
2989
3072
|
if (!(_prevIndex > -1)) {
|
|
2990
|
-
_context.next =
|
|
3073
|
+
_context.next = 42;
|
|
2991
3074
|
break;
|
|
2992
3075
|
}
|
|
2993
3076
|
|
|
2994
|
-
|
|
2995
|
-
_prev = stacks[_prevIndex];
|
|
2996
|
-
return _context.abrupt("return", showPage(_prev, pageConfig, _prevIndex));
|
|
3077
|
+
return _context.abrupt("return", showPage(stacks.getItem(_prevIndex), pageConfig, _prevIndex));
|
|
2997
3078
|
|
|
2998
|
-
case
|
|
2999
|
-
_context.next =
|
|
3079
|
+
case 42:
|
|
3080
|
+
_context.next = 45;
|
|
3000
3081
|
break;
|
|
3001
3082
|
|
|
3002
|
-
case
|
|
3003
|
-
unloadPage(
|
|
3083
|
+
case 44:
|
|
3084
|
+
unloadPage(currentPage);
|
|
3004
3085
|
|
|
3005
|
-
case
|
|
3086
|
+
case 45:
|
|
3006
3087
|
shouldLoad = true;
|
|
3007
3088
|
|
|
3008
|
-
case
|
|
3009
|
-
if (shouldLoad) {
|
|
3010
|
-
|
|
3011
|
-
|
|
3012
|
-
delete loadConfig['path'];
|
|
3013
|
-
delete loadConfig['load'];
|
|
3014
|
-
_pathname = stripBasename(config.router.pathname, basename);
|
|
3015
|
-
routerIndex = stacks.length;
|
|
3016
|
-
page = runtime.createPageConfig(enablePullDownRefresh ? (_d = runtimeHooks.createPullDownComponent) === null || _d === void 0 ? void 0 : _d.call(runtimeHooks, el, location.pathname, framework, routerConfig.PullDownRefresh) : el, _pathname + runtime.stringify(qs(routerIndex)), {}, loadConfig);
|
|
3017
|
-
loadPage(page, pageConfig, routerIndex);
|
|
3089
|
+
case 46:
|
|
3090
|
+
if (!shouldLoad) {
|
|
3091
|
+
_context.next = 54;
|
|
3092
|
+
break;
|
|
3018
3093
|
}
|
|
3019
3094
|
|
|
3020
|
-
|
|
3095
|
+
el = (_c = element["default"]) !== null && _c !== void 0 ? _c : element;
|
|
3096
|
+
loadConfig = Object.assign({}, pageConfig);
|
|
3097
|
+
stacksIndex = stacks.length;
|
|
3098
|
+
delete loadConfig['path'];
|
|
3099
|
+
delete loadConfig['load'];
|
|
3100
|
+
page = runtime.createPageConfig(enablePullDownRefresh ? (_d = runtimeHooks.createPullDownComponent) === null || _d === void 0 ? void 0 : _d.call(runtimeHooks, el, location.pathname, framework, routerConfig.PullDownRefresh) : el, pathname + runtime.stringify(qs(stacksIndex)), {}, loadConfig);
|
|
3101
|
+
return _context.abrupt("return", loadPage(page, pageConfig, stacksIndex));
|
|
3102
|
+
|
|
3103
|
+
case 54:
|
|
3021
3104
|
case "end":
|
|
3022
3105
|
return _context.stop();
|
|
3023
3106
|
}
|
|
@@ -3025,10 +3108,10 @@ function createRouter(app, config, framework) {
|
|
|
3025
3108
|
}, _callee, null, [[2, 8]]);
|
|
3026
3109
|
}));
|
|
3027
3110
|
|
|
3028
|
-
return function (_x3) {
|
|
3111
|
+
return function render(_x3) {
|
|
3029
3112
|
return _ref4.apply(this, arguments);
|
|
3030
3113
|
};
|
|
3031
|
-
}()
|
|
3114
|
+
}();
|
|
3032
3115
|
|
|
3033
3116
|
if (exports.history.location.pathname === '/') {
|
|
3034
3117
|
exports.history.replace(prependBasename(routes[0].path + exports.history.location.search));
|
|
@@ -10343,12 +10426,9 @@ var scanCode = processOpenapi('scanQRCode', {
|
|
|
10343
10426
|
});
|
|
10344
10427
|
|
|
10345
10428
|
var tabConf;
|
|
10346
|
-
var App;
|
|
10347
10429
|
function initTabBarApis() {
|
|
10348
|
-
var
|
|
10349
|
-
|
|
10350
|
-
tabConf = _App.state.__tabs;
|
|
10351
|
-
App = _App;
|
|
10430
|
+
var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
10431
|
+
tabConf = config.tabBar;
|
|
10352
10432
|
}
|
|
10353
10433
|
/**
|
|
10354
10434
|
* 为 tabBar 某一项的右上角添加文本
|
|
@@ -10410,7 +10490,6 @@ function setTabBarBadge() {
|
|
|
10410
10490
|
successHandler: successHandler(success, complete),
|
|
10411
10491
|
errorHandler: errorHandler(fail, complete)
|
|
10412
10492
|
});
|
|
10413
|
-
return successHandler(success, complete)(res);
|
|
10414
10493
|
}
|
|
10415
10494
|
/**
|
|
10416
10495
|
* 移除 tabBar 某一项右上角的文本
|
|
@@ -10458,7 +10537,6 @@ function removeTabBarBadge() {
|
|
|
10458
10537
|
successHandler: successHandler(success, complete),
|
|
10459
10538
|
errorHandler: errorHandler(fail, complete)
|
|
10460
10539
|
});
|
|
10461
|
-
return successHandler(success, complete)(res);
|
|
10462
10540
|
}
|
|
10463
10541
|
/**
|
|
10464
10542
|
* 显示 tabBar 某一项的右上角的红点
|
|
@@ -10506,7 +10584,6 @@ function showTabBarRedDot() {
|
|
|
10506
10584
|
successHandler: successHandler(success, complete),
|
|
10507
10585
|
errorHandler: errorHandler(fail, complete)
|
|
10508
10586
|
});
|
|
10509
|
-
return successHandler(success, complete)(res);
|
|
10510
10587
|
}
|
|
10511
10588
|
/**
|
|
10512
10589
|
* 隐藏 tabBar 某一项的右上角的红点
|
|
@@ -10554,7 +10631,6 @@ function hideTabBarRedDot() {
|
|
|
10554
10631
|
successHandler: successHandler(success, complete),
|
|
10555
10632
|
errorHandler: errorHandler(fail, complete)
|
|
10556
10633
|
});
|
|
10557
|
-
return successHandler(success, complete)(res);
|
|
10558
10634
|
}
|
|
10559
10635
|
/**
|
|
10560
10636
|
* 显示 tabBar
|
|
@@ -10602,7 +10678,6 @@ function showTabBar() {
|
|
|
10602
10678
|
successHandler: successHandler(success, complete),
|
|
10603
10679
|
errorHandler: errorHandler(success, complete)
|
|
10604
10680
|
});
|
|
10605
|
-
return successHandler(success, complete)(res);
|
|
10606
10681
|
}
|
|
10607
10682
|
/**
|
|
10608
10683
|
* 隐藏 tabBar
|
|
@@ -10650,7 +10725,6 @@ function hideTabBar() {
|
|
|
10650
10725
|
successHandler: successHandler(success, complete),
|
|
10651
10726
|
errorHandler: errorHandler(success, complete)
|
|
10652
10727
|
});
|
|
10653
|
-
return successHandler(success, complete)(res);
|
|
10654
10728
|
}
|
|
10655
10729
|
/**
|
|
10656
10730
|
* 动态设置 tabBar 的整体样式
|
|
@@ -10708,17 +10782,14 @@ function setTabBarStyle() {
|
|
|
10708
10782
|
res.errMsg = 'setTabBarStyle:fail';
|
|
10709
10783
|
return Promise.reject(res);
|
|
10710
10784
|
}
|
|
10711
|
-
|
|
10712
|
-
|
|
10713
|
-
|
|
10714
|
-
|
|
10715
|
-
|
|
10716
|
-
|
|
10717
|
-
|
|
10718
|
-
App.setState && App.setState({
|
|
10719
|
-
__tabs: temp
|
|
10785
|
+
Taro.eventCenter.trigger('__taroSetTabBarStyle', {
|
|
10786
|
+
color: color,
|
|
10787
|
+
selectedColor: selectedColor,
|
|
10788
|
+
backgroundColor: backgroundColor,
|
|
10789
|
+
borderStyle: borderStyle,
|
|
10790
|
+
successHandler: successHandler(success, complete),
|
|
10791
|
+
errorHandler: errorHandler(success, complete)
|
|
10720
10792
|
});
|
|
10721
|
-
return successHandler(success, complete)(res);
|
|
10722
10793
|
}
|
|
10723
10794
|
/**
|
|
10724
10795
|
* 动态设置 tabBar 某一项的内容
|
|
@@ -10767,21 +10838,14 @@ function setTabBarItem() {
|
|
|
10767
10838
|
return errorHandler(fail, complete)(res);
|
|
10768
10839
|
}
|
|
10769
10840
|
|
|
10770
|
-
|
|
10771
|
-
|
|
10772
|
-
|
|
10773
|
-
|
|
10774
|
-
|
|
10775
|
-
|
|
10776
|
-
|
|
10777
|
-
if (iconPath) obj.iconPath = iconPath;
|
|
10778
|
-
if (selectedIconPath) obj.selectedIconPath = selectedIconPath;
|
|
10779
|
-
var temp = Object.assign({}, tabConf);
|
|
10780
|
-
temp.list[index] = Object.assign({}, temp.list[index], obj);
|
|
10781
|
-
App.setState && App.setState({
|
|
10782
|
-
__tabs: temp
|
|
10841
|
+
Taro.eventCenter.trigger('__taroSetTabBarItem', {
|
|
10842
|
+
index: index,
|
|
10843
|
+
text: text,
|
|
10844
|
+
iconPath: iconPath,
|
|
10845
|
+
selectedIconPath: selectedIconPath,
|
|
10846
|
+
successHandler: successHandler(success, complete),
|
|
10847
|
+
errorHandler: errorHandler(success, complete)
|
|
10783
10848
|
});
|
|
10784
|
-
return successHandler(success, complete)(res);
|
|
10785
10849
|
}
|
|
10786
10850
|
|
|
10787
10851
|
var vibrator = function vibrator(mm) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tarojs/taro-h5",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.15",
|
|
4
4
|
"description": "Taro h5 framework",
|
|
5
5
|
"main:h5": "src/index.js",
|
|
6
6
|
"main": "dist/index.cjs.js",
|
|
@@ -33,9 +33,9 @@
|
|
|
33
33
|
"author": "O2Team",
|
|
34
34
|
"license": "MIT",
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@tarojs/api": "3.3.
|
|
37
|
-
"@tarojs/router": "3.3.
|
|
38
|
-
"@tarojs/runtime": "3.3.
|
|
36
|
+
"@tarojs/api": "3.3.15",
|
|
37
|
+
"@tarojs/router": "3.3.15",
|
|
38
|
+
"@tarojs/runtime": "3.3.15",
|
|
39
39
|
"base64-js": "^1.3.0",
|
|
40
40
|
"jsonp-retry": "^1.0.3",
|
|
41
41
|
"mobile-detect": "^1.4.2",
|
|
@@ -45,5 +45,5 @@
|
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"jest-fetch-mock": "^3.0.3"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "4a11ab9a8950f6a580e1278c160f6b4aaa8ac4f2"
|
|
49
49
|
}
|
package/src/api/tabBar/index.js
CHANGED
|
@@ -2,11 +2,9 @@ import Taro from '@tarojs/api'
|
|
|
2
2
|
import { shouldBeObject, getParameterError, isValidColor, successHandler, errorHandler } from '../utils'
|
|
3
3
|
|
|
4
4
|
let tabConf
|
|
5
|
-
let App
|
|
6
5
|
|
|
7
|
-
export function initTabBarApis (
|
|
8
|
-
tabConf =
|
|
9
|
-
App = _App
|
|
6
|
+
export function initTabBarApis (config = {}) {
|
|
7
|
+
tabConf = config.tabBar
|
|
10
8
|
}
|
|
11
9
|
|
|
12
10
|
/**
|
|
@@ -64,8 +62,6 @@ export function setTabBarBadge (options = {}) {
|
|
|
64
62
|
successHandler: successHandler(success, complete),
|
|
65
63
|
errorHandler: errorHandler(fail, complete)
|
|
66
64
|
})
|
|
67
|
-
|
|
68
|
-
return successHandler(success, complete)(res)
|
|
69
65
|
}
|
|
70
66
|
|
|
71
67
|
/**
|
|
@@ -109,8 +105,6 @@ export function removeTabBarBadge (options = {}) {
|
|
|
109
105
|
successHandler: successHandler(success, complete),
|
|
110
106
|
errorHandler: errorHandler(fail, complete)
|
|
111
107
|
})
|
|
112
|
-
|
|
113
|
-
return successHandler(success, complete)(res)
|
|
114
108
|
}
|
|
115
109
|
|
|
116
110
|
/**
|
|
@@ -154,8 +148,6 @@ export function showTabBarRedDot (options = {}) {
|
|
|
154
148
|
successHandler: successHandler(success, complete),
|
|
155
149
|
errorHandler: errorHandler(fail, complete)
|
|
156
150
|
})
|
|
157
|
-
|
|
158
|
-
return successHandler(success, complete)(res)
|
|
159
151
|
}
|
|
160
152
|
|
|
161
153
|
/**
|
|
@@ -199,8 +191,6 @@ export function hideTabBarRedDot (options = {}) {
|
|
|
199
191
|
successHandler: successHandler(success, complete),
|
|
200
192
|
errorHandler: errorHandler(fail, complete)
|
|
201
193
|
})
|
|
202
|
-
|
|
203
|
-
return successHandler(success, complete)(res)
|
|
204
194
|
}
|
|
205
195
|
|
|
206
196
|
/**
|
|
@@ -245,8 +235,6 @@ export function showTabBar (options = {}) {
|
|
|
245
235
|
successHandler: successHandler(success, complete),
|
|
246
236
|
errorHandler: errorHandler(success, complete)
|
|
247
237
|
})
|
|
248
|
-
|
|
249
|
-
return successHandler(success, complete)(res)
|
|
250
238
|
}
|
|
251
239
|
|
|
252
240
|
/**
|
|
@@ -291,8 +279,6 @@ export function hideTabBar (options = {}) {
|
|
|
291
279
|
successHandler: successHandler(success, complete),
|
|
292
280
|
errorHandler: errorHandler(success, complete)
|
|
293
281
|
})
|
|
294
|
-
|
|
295
|
-
return successHandler(success, complete)(res)
|
|
296
282
|
}
|
|
297
283
|
|
|
298
284
|
/**
|
|
@@ -353,10 +339,14 @@ export function setTabBarStyle (options = {}) {
|
|
|
353
339
|
if (backgroundColor) obj.backgroundColor = backgroundColor
|
|
354
340
|
if (borderStyle) obj.borderStyle = borderStyle
|
|
355
341
|
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
342
|
+
Taro.eventCenter.trigger('__taroSetTabBarStyle', {
|
|
343
|
+
color,
|
|
344
|
+
selectedColor,
|
|
345
|
+
backgroundColor,
|
|
346
|
+
borderStyle,
|
|
347
|
+
successHandler: successHandler(success, complete),
|
|
348
|
+
errorHandler: errorHandler(success, complete)
|
|
349
|
+
})
|
|
360
350
|
}
|
|
361
351
|
|
|
362
352
|
/**
|
|
@@ -401,24 +391,12 @@ export function setTabBarItem (options = {}) {
|
|
|
401
391
|
return errorHandler(fail, complete)(res)
|
|
402
392
|
}
|
|
403
393
|
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
}
|
|
412
|
-
|
|
413
|
-
const obj = {}
|
|
414
|
-
if (text) obj.text = text
|
|
415
|
-
if (iconPath) obj.iconPath = iconPath
|
|
416
|
-
if (selectedIconPath) obj.selectedIconPath = selectedIconPath
|
|
417
|
-
|
|
418
|
-
const temp = Object.assign({}, tabConf)
|
|
419
|
-
temp.list[index] = Object.assign({}, temp.list[index], obj)
|
|
420
|
-
|
|
421
|
-
App.setState && App.setState({ __tabs: temp })
|
|
422
|
-
|
|
423
|
-
return successHandler(success, complete)(res)
|
|
394
|
+
Taro.eventCenter.trigger('__taroSetTabBarItem', {
|
|
395
|
+
index,
|
|
396
|
+
text,
|
|
397
|
+
iconPath,
|
|
398
|
+
selectedIconPath,
|
|
399
|
+
successHandler: successHandler(success, complete),
|
|
400
|
+
errorHandler: errorHandler(success, complete)
|
|
401
|
+
})
|
|
424
402
|
}
|