@dcloudio/uni-app-plus 3.0.0-alpha-4080720251125001 → 3.0.0-alpha-5000020260104004

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.
@@ -0,0 +1,4892 @@
1
+ import { normalizeStyles as normalizeStyles$1, addLeadingSlash, invokeArrayFns, ON_HIDE, ON_SHOW, parseQuery, UTSJSONObject, EventChannel, once, parseUrl, Emitter, ON_UNHANDLE_REJECTION, ON_PAGE_NOT_FOUND, ON_ERROR, removeLeadingSlash, getLen, ON_UNLOAD, ON_READY, ON_PAGE_SCROLL, ON_PULL_DOWN_REFRESH, ON_REACH_BOTTOM, ON_RESIZE, ON_BACK_PRESS, ON_LAUNCH, ON_EXIT, ON_LAST_PAGE_BACK_PRESS } from "@dcloudio/uni-shared";
2
+ import { extend, isString, isPlainObject, isFunction as isFunction$1, isArray, isPromise, hasOwn, remove, invokeArrayFns as invokeArrayFns$1, capitalize, toTypeString, toRawType } from "@vue/shared";
3
+ import { createMountPage, unmountPage, ref, getCurrentGenericInstance, injectHook, defineComponent, getCurrentInstance, onMounted, camelize, createVNode, renderSlot } from "vue";
4
+ function get$pageByPage(page) {
5
+ return page.vm.$basePage;
6
+ }
7
+ function getCurrentPage() {
8
+ var pages2 = getCurrentPages();
9
+ var len = pages2.length;
10
+ if (len) {
11
+ return pages2[len - 1];
12
+ }
13
+ }
14
+ function getCurrentPageMeta() {
15
+ var _getCurrentPage;
16
+ var $page = (_getCurrentPage = getCurrentPage()) === null || _getCurrentPage === void 0 || (_getCurrentPage = _getCurrentPage.vm) === null || _getCurrentPage === void 0 ? void 0 : _getCurrentPage.$basePage;
17
+ if ($page) {
18
+ return $page.meta;
19
+ }
20
+ }
21
+ function getCurrentPageVm() {
22
+ var _getCurrentPage3;
23
+ var page = (_getCurrentPage3 = getCurrentPage()) === null || _getCurrentPage3 === void 0 ? void 0 : _getCurrentPage3.vm;
24
+ if (page) {
25
+ return page.$vm;
26
+ }
27
+ }
28
+ var PAGE_META_KEYS = ["navigationBar", "pullToRefresh"];
29
+ function initGlobalStyle() {
30
+ return JSON.parse(JSON.stringify(__uniConfig.globalStyle || {}));
31
+ }
32
+ function initRouteMeta(pageMeta, id2) {
33
+ var globalStyle = initGlobalStyle();
34
+ var res = extend({
35
+ id: id2
36
+ }, globalStyle, pageMeta);
37
+ PAGE_META_KEYS.forEach((name) => {
38
+ res[name] = extend({}, globalStyle[name], pageMeta[name]);
39
+ });
40
+ var {
41
+ navigationBar
42
+ } = res;
43
+ navigationBar.titleText && navigationBar.titleImage && (navigationBar.titleText = "");
44
+ return res;
45
+ }
46
+ function initPageInternalInstance(openType, url, pageQuery, meta, eventChannel, themeMode) {
47
+ var {
48
+ id: id2,
49
+ route
50
+ } = meta;
51
+ var titleColor = normalizeStyles$1(meta.navigationBar, __uniConfig.themeConfig, themeMode).titleColor;
52
+ return {
53
+ id: id2,
54
+ path: addLeadingSlash(route),
55
+ route,
56
+ fullPath: url,
57
+ options: pageQuery,
58
+ meta,
59
+ openType,
60
+ eventChannel,
61
+ statusBarStyle: titleColor === "#ffffff" ? "light" : "dark"
62
+ };
63
+ }
64
+ function invokeHook(vm, name, args) {
65
+ if (isString(vm)) {
66
+ args = name;
67
+ name = vm;
68
+ vm = getCurrentPageVm();
69
+ } else if (typeof vm === "number") {
70
+ var page = getCurrentPages().find((page2) => get$pageByPage(page2).id === vm);
71
+ if (page) {
72
+ vm = page.$vm;
73
+ } else {
74
+ vm = getCurrentPageVm();
75
+ }
76
+ }
77
+ if (!vm) {
78
+ return;
79
+ }
80
+ {
81
+ if (vm.__call_hook) {
82
+ return vm.__call_hook(name, args);
83
+ }
84
+ }
85
+ var hooks = vm.$[name];
86
+ return hooks && invokeArrayFns(hooks, args);
87
+ }
88
+ function normalizeRoute(toRoute) {
89
+ if (toRoute.indexOf("/") === 0 || toRoute.indexOf("uni:") === 0) {
90
+ return toRoute;
91
+ }
92
+ var fromRoute = "";
93
+ var pages2 = getCurrentPages();
94
+ if (pages2.length) {
95
+ fromRoute = get$pageByPage(pages2[pages2.length - 1]).route;
96
+ }
97
+ return getRealRoute(fromRoute, toRoute);
98
+ }
99
+ function getRealRoute(fromRoute, toRoute) {
100
+ if (toRoute.indexOf("/") === 0) {
101
+ return toRoute;
102
+ }
103
+ if (toRoute.indexOf("./") === 0) {
104
+ return getRealRoute(fromRoute, toRoute.slice(2));
105
+ }
106
+ var toRouteArray = toRoute.split("/");
107
+ var toRouteLength = toRouteArray.length;
108
+ var i = 0;
109
+ for (; i < toRouteLength && toRouteArray[i] === ".."; i++) {
110
+ }
111
+ toRouteArray.splice(0, i);
112
+ toRoute = toRouteArray.join("/");
113
+ var fromRouteArray = fromRoute.length > 0 ? fromRoute.split("/") : [];
114
+ fromRouteArray.splice(fromRouteArray.length - i - 1, i + 1);
115
+ return addLeadingSlash(fromRouteArray.concat(toRouteArray).join("/"));
116
+ }
117
+ function getRouteOptions(path) {
118
+ var alias = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
119
+ if (alias) {
120
+ return __uniRoutes.find((route) => route.path === path || route.alias === path);
121
+ }
122
+ return __uniRoutes.find((route) => route.path === path);
123
+ }
124
+ function getRouteMeta(path) {
125
+ var routeOptions = getRouteOptions(path);
126
+ if (routeOptions) {
127
+ return routeOptions.meta;
128
+ }
129
+ }
130
+ var SYSTEM_DIALOG_PAGE_PATH_STARTER = "uni:";
131
+ var SYSTEM_DIALOG_ACTION_SHEET_PAGE_PATH = "uni:actionSheet";
132
+ function isSystemDialogPage(page) {
133
+ return page.route.startsWith(SYSTEM_DIALOG_PAGE_PATH_STARTER);
134
+ }
135
+ function isSystemActionSheetDialogPage(page) {
136
+ return page.route.startsWith(SYSTEM_DIALOG_ACTION_SHEET_PAGE_PATH);
137
+ }
138
+ function dialogPageTriggerParentHide(dialogPage) {
139
+ dialogPageTriggerParentLifeCycle(dialogPage, ON_HIDE);
140
+ }
141
+ function dialogPageTriggerParentShow(dialogPage) {
142
+ var triggerParentHideDialogPageNum = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
143
+ dialogPageTriggerParentLifeCycle(dialogPage, ON_SHOW, triggerParentHideDialogPageNum);
144
+ }
145
+ function dialogPageTriggerParentLifeCycle(dialogPage, lifeCycle) {
146
+ var triggerParentHideDialogPageNum = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0;
147
+ if (!dialogPage.$triggerParentHide)
148
+ return;
149
+ var pages2 = getCurrentPages();
150
+ var currentPage = pages2[pages2.length - 1];
151
+ if (!currentPage)
152
+ return;
153
+ var parentPage = dialogPage.getParentPage();
154
+ if (!parentPage)
155
+ return;
156
+ if (parentPage !== currentPage)
157
+ return;
158
+ var dialogPages = currentPage.getDialogPages();
159
+ for (var i = 0; i < dialogPages.length; i++) {
160
+ if (!!dialogPages[i].$triggerParentHide) {
161
+ triggerParentHideDialogPageNum++;
162
+ if (triggerParentHideDialogPageNum > 1) {
163
+ return;
164
+ }
165
+ }
166
+ }
167
+ if (triggerParentHideDialogPageNum <= 1) {
168
+ var systemDialogPage = getSystemDialogPages(parentPage);
169
+ for (var _i = 0; _i < systemDialogPage.length; _i++) {
170
+ if (!!systemDialogPage[_i].$triggerParentHide) {
171
+ triggerParentHideDialogPageNum++;
172
+ if (triggerParentHideDialogPageNum > 1) {
173
+ return;
174
+ }
175
+ }
176
+ }
177
+ }
178
+ invokeHook(currentPage.vm, lifeCycle);
179
+ }
180
+ function getSystemDialogPages(parentPage) {
181
+ if (!parentPage)
182
+ return [];
183
+ {
184
+ return typeof parentPage.__$$getSystemDialogPages === "undefined" ? parentPage.$getSystemDialogPages() : parentPage.__$$getSystemDialogPages();
185
+ }
186
+ }
187
+ function dialogPageTriggerPrevDialogPageLifeCycle(parentPage, lifeCycle) {
188
+ if (!parentPage)
189
+ return;
190
+ var pages2 = getCurrentPages();
191
+ var currentPage = pages2[pages2.length - 1];
192
+ if (!currentPage || parentPage !== currentPage)
193
+ return;
194
+ var dialogPages = currentPage.getDialogPages();
195
+ var systemDialogPage = getSystemDialogPages(parentPage);
196
+ var lastSystemDialogPage = systemDialogPage[systemDialogPage.length - 1];
197
+ var lastDialogPage = dialogPages[dialogPages.length - 1];
198
+ var prevDialogPage;
199
+ if (!lastDialogPage) {
200
+ prevDialogPage = lastSystemDialogPage;
201
+ } else if (!lastSystemDialogPage) {
202
+ prevDialogPage = lastDialogPage;
203
+ } else {
204
+ var _lastSystemDialogPage, _lastDialogPage$vm;
205
+ var lastSystemDialogPageId = ((_lastSystemDialogPage = lastSystemDialogPage.vm) === null || _lastSystemDialogPage === void 0 || (_lastSystemDialogPage = _lastSystemDialogPage.$basePage) === null || _lastSystemDialogPage === void 0 ? void 0 : _lastSystemDialogPage.id) || Number.MAX_SAFE_INTEGER;
206
+ var lastDialogPageId = ((_lastDialogPage$vm = lastDialogPage.vm) === null || _lastDialogPage$vm === void 0 || (_lastDialogPage$vm = _lastDialogPage$vm.$basePage) === null || _lastDialogPage$vm === void 0 ? void 0 : _lastDialogPage$vm.id) || Number.MAX_SAFE_INTEGER;
207
+ prevDialogPage = lastSystemDialogPageId > lastDialogPageId ? lastSystemDialogPage : lastDialogPage;
208
+ }
209
+ prevDialogPage && invokeHook(prevDialogPage.vm, lifeCycle);
210
+ }
211
+ function initPageVm(pageVm, page) {
212
+ pageVm.route = page.route;
213
+ pageVm.$vm = pageVm;
214
+ {
215
+ pageVm.$basePage = page;
216
+ }
217
+ pageVm.$mpType = "page";
218
+ pageVm.$fontFamilySet = /* @__PURE__ */ new Set();
219
+ if (page.meta.isTabBar) {
220
+ pageVm.$.__isTabBar = true;
221
+ pageVm.$.__isActive = true;
222
+ }
223
+ }
224
+ function createLaunchOptions() {
225
+ return {
226
+ path: "",
227
+ query: {},
228
+ scene: 1001,
229
+ referrerInfo: {
230
+ appId: "",
231
+ extraData: {}
232
+ }
233
+ };
234
+ }
235
+ function defineGlobalData(app, defaultGlobalData) {
236
+ var options = app.$options || {};
237
+ options.globalData = extend(options.globalData || {}, defaultGlobalData);
238
+ Object.defineProperty(app, "globalData", {
239
+ get() {
240
+ return options.globalData;
241
+ },
242
+ set(newGlobalData) {
243
+ options.globalData = newGlobalData;
244
+ }
245
+ });
246
+ }
247
+ function tryCatch(fn) {
248
+ return function() {
249
+ try {
250
+ return fn.apply(fn, arguments);
251
+ } catch (e) {
252
+ console.error(e);
253
+ }
254
+ };
255
+ }
256
+ var invokeCallbackId = 1;
257
+ var invokeCallbacks = {};
258
+ function addInvokeCallback(id2, name, callback) {
259
+ var keepAlive = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;
260
+ invokeCallbacks[id2] = {
261
+ name,
262
+ keepAlive,
263
+ callback
264
+ };
265
+ return id2;
266
+ }
267
+ function invokeCallback(id2, res, extras) {
268
+ if (typeof id2 === "number") {
269
+ var opts = invokeCallbacks[id2];
270
+ if (opts) {
271
+ if (!opts.keepAlive) {
272
+ delete invokeCallbacks[id2];
273
+ }
274
+ return opts.callback(res, extras);
275
+ }
276
+ }
277
+ return res;
278
+ }
279
+ function findInvokeCallbackByName(name) {
280
+ for (var key in invokeCallbacks) {
281
+ if (invokeCallbacks[key].name === name) {
282
+ return true;
283
+ }
284
+ }
285
+ return false;
286
+ }
287
+ function removeKeepAliveApiCallback(name, callback) {
288
+ for (var key in invokeCallbacks) {
289
+ var item = invokeCallbacks[key];
290
+ if (item.callback === callback && item.name === name) {
291
+ delete invokeCallbacks[key];
292
+ }
293
+ }
294
+ }
295
+ function offKeepAliveApiCallback(name) {
296
+ UniServiceJSBridge.off("api." + name);
297
+ }
298
+ function onKeepAliveApiCallback(name) {
299
+ UniServiceJSBridge.on("api." + name, (res) => {
300
+ for (var key in invokeCallbacks) {
301
+ var opts = invokeCallbacks[key];
302
+ if (opts.name === name) {
303
+ opts.callback(res);
304
+ }
305
+ }
306
+ });
307
+ }
308
+ function createKeepAliveApiCallback(name, callback) {
309
+ return addInvokeCallback(invokeCallbackId++, name, callback, true);
310
+ }
311
+ var API_SUCCESS = "success";
312
+ var API_FAIL = "fail";
313
+ var API_COMPLETE = "complete";
314
+ function getApiCallbacks(args) {
315
+ var apiCallbacks = {};
316
+ for (var name in args) {
317
+ var fn = args[name];
318
+ if (isFunction$1(fn)) {
319
+ apiCallbacks[name] = tryCatch(fn);
320
+ delete args[name];
321
+ }
322
+ }
323
+ return apiCallbacks;
324
+ }
325
+ function normalizeErrMsg(errMsg, name) {
326
+ if (!errMsg || errMsg.indexOf(":fail") === -1) {
327
+ return name + ":ok";
328
+ }
329
+ return name + errMsg.substring(errMsg.indexOf(":fail"));
330
+ }
331
+ function createAsyncApiCallback(name) {
332
+ var args = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
333
+ var {
334
+ beforeAll,
335
+ beforeSuccess
336
+ } = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
337
+ if (!isPlainObject(args)) {
338
+ args = {};
339
+ }
340
+ var {
341
+ success,
342
+ fail,
343
+ complete
344
+ } = getApiCallbacks(args);
345
+ var hasSuccess = isFunction$1(success);
346
+ var hasFail = isFunction$1(fail);
347
+ var hasComplete = isFunction$1(complete);
348
+ var callbackId2 = invokeCallbackId++;
349
+ addInvokeCallback(callbackId2, name, (res) => {
350
+ res = res || {};
351
+ res.errMsg = normalizeErrMsg(res.errMsg, name);
352
+ isFunction$1(beforeAll) && beforeAll(res);
353
+ if (res.errMsg === name + ":ok") {
354
+ isFunction$1(beforeSuccess) && beforeSuccess(res, args);
355
+ hasSuccess && success(res);
356
+ } else {
357
+ hasFail && fail(res);
358
+ }
359
+ hasComplete && complete(res);
360
+ });
361
+ return callbackId2;
362
+ }
363
+ var HOOK_SUCCESS = "success";
364
+ var HOOK_FAIL = "fail";
365
+ var HOOK_COMPLETE = "complete";
366
+ var globalInterceptors = {};
367
+ var scopedInterceptors = {};
368
+ function wrapperHook(hook, params) {
369
+ return function(data) {
370
+ return hook(data, params) || data;
371
+ };
372
+ }
373
+ function queue(hooks, data, params) {
374
+ var promise = false;
375
+ for (var i = 0; i < hooks.length; i++) {
376
+ var hook = hooks[i];
377
+ if (promise) {
378
+ promise = Promise.resolve(wrapperHook(hook, params));
379
+ } else {
380
+ var res = hook(data, params);
381
+ if (isPromise(res)) {
382
+ promise = Promise.resolve(res);
383
+ }
384
+ if (res === false) {
385
+ return {
386
+ then() {
387
+ },
388
+ catch() {
389
+ }
390
+ };
391
+ }
392
+ }
393
+ }
394
+ return promise || {
395
+ then(callback) {
396
+ return callback(data);
397
+ },
398
+ catch() {
399
+ }
400
+ };
401
+ }
402
+ function wrapperOptions(interceptors) {
403
+ var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
404
+ [HOOK_SUCCESS, HOOK_FAIL, HOOK_COMPLETE].forEach((name) => {
405
+ var hooks = interceptors[name];
406
+ if (!isArray(hooks)) {
407
+ return;
408
+ }
409
+ var oldCallback = options[name];
410
+ options[name] = function callbackInterceptor(res) {
411
+ queue(hooks, res, options).then((res2) => {
412
+ return isFunction$1(oldCallback) && oldCallback(res2) || res2;
413
+ });
414
+ };
415
+ });
416
+ return options;
417
+ }
418
+ function wrapperReturnValue(method, returnValue) {
419
+ var returnValueHooks = [];
420
+ if (isArray(globalInterceptors.returnValue)) {
421
+ returnValueHooks.push(...globalInterceptors.returnValue);
422
+ }
423
+ var interceptor = scopedInterceptors[method];
424
+ if (interceptor && isArray(interceptor.returnValue)) {
425
+ returnValueHooks.push(...interceptor.returnValue);
426
+ }
427
+ returnValueHooks.forEach((hook) => {
428
+ returnValue = hook(returnValue) || returnValue;
429
+ });
430
+ return returnValue;
431
+ }
432
+ function getApiInterceptorHooks(method) {
433
+ var interceptor = /* @__PURE__ */ Object.create(null);
434
+ Object.keys(globalInterceptors).forEach((hook) => {
435
+ if (hook !== "returnValue") {
436
+ interceptor[hook] = globalInterceptors[hook].slice();
437
+ }
438
+ });
439
+ var scopedInterceptor = scopedInterceptors[method];
440
+ if (scopedInterceptor) {
441
+ Object.keys(scopedInterceptor).forEach((hook) => {
442
+ if (hook !== "returnValue") {
443
+ interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]);
444
+ }
445
+ });
446
+ }
447
+ return interceptor;
448
+ }
449
+ function invokeApi(method, api, options, params) {
450
+ var interceptor = getApiInterceptorHooks(method);
451
+ if (interceptor && Object.keys(interceptor).length) {
452
+ if (isArray(interceptor.invoke)) {
453
+ var res = queue(interceptor.invoke, options);
454
+ return res.then((options2) => {
455
+ return api(wrapperOptions(getApiInterceptorHooks(method), options2), ...params);
456
+ });
457
+ } else {
458
+ return api(wrapperOptions(interceptor, options), ...params);
459
+ }
460
+ }
461
+ return api(options, ...params);
462
+ }
463
+ function hasCallback(args) {
464
+ if (isPlainObject(args) && [API_SUCCESS, API_FAIL, API_COMPLETE].find((cb) => isFunction$1(args[cb]))) {
465
+ return true;
466
+ }
467
+ return false;
468
+ }
469
+ function handlePromise(promise) {
470
+ return promise;
471
+ }
472
+ function promisify(name, fn) {
473
+ return function() {
474
+ var args = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
475
+ for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
476
+ rest[_key - 1] = arguments[_key];
477
+ }
478
+ if (hasCallback(args)) {
479
+ return wrapperReturnValue(name, invokeApi(name, fn, extend({}, args), rest));
480
+ }
481
+ return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => {
482
+ invokeApi(name, fn, extend({}, args, {
483
+ success: resolve,
484
+ fail: reject
485
+ }), rest);
486
+ })));
487
+ };
488
+ }
489
+ function formatApiArgs(args, options) {
490
+ var params = args[0];
491
+ if (!options || !options.formatArgs || !isPlainObject(options.formatArgs) && isPlainObject(params)) {
492
+ return;
493
+ }
494
+ var formatArgs = options.formatArgs;
495
+ var keys = Object.keys(formatArgs);
496
+ for (var i = 0; i < keys.length; i++) {
497
+ var name = keys[i];
498
+ var formatterOrDefaultValue = formatArgs[name];
499
+ if (isFunction$1(formatterOrDefaultValue)) {
500
+ var errMsg = formatterOrDefaultValue(args[0][name], params);
501
+ if (isString(errMsg)) {
502
+ return errMsg;
503
+ }
504
+ } else {
505
+ if (!hasOwn(params, name)) {
506
+ params[name] = formatterOrDefaultValue;
507
+ }
508
+ }
509
+ }
510
+ }
511
+ function invokeSuccess(id2, name, res) {
512
+ var result = {
513
+ errMsg: name + ":ok"
514
+ };
515
+ {
516
+ result.errSubject = name;
517
+ }
518
+ return invokeCallback(id2, extend(res || {}, result));
519
+ }
520
+ function invokeFail(id2, name, errMsg) {
521
+ var errRes = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {};
522
+ var errMsgPrefix = name + ":fail";
523
+ var apiErrMsg = "";
524
+ if (!errMsg) {
525
+ apiErrMsg = errMsgPrefix;
526
+ } else if (errMsg.indexOf(errMsgPrefix) === 0) {
527
+ apiErrMsg = errMsg;
528
+ } else {
529
+ apiErrMsg = errMsgPrefix + " " + errMsg;
530
+ }
531
+ var res = extend({
532
+ errMsg: apiErrMsg
533
+ }, errRes);
534
+ {
535
+ if (typeof UniError !== "undefined") {
536
+ res = typeof errRes.errCode !== "undefined" ? new UniError(name, errRes.errCode, apiErrMsg) : new UniError(apiErrMsg, errRes);
537
+ }
538
+ }
539
+ return invokeCallback(id2, res);
540
+ }
541
+ function beforeInvokeApi(name, args, protocol, options) {
542
+ if (options && options.beforeInvoke) {
543
+ var errMsg2 = options.beforeInvoke(args);
544
+ if (isString(errMsg2)) {
545
+ return errMsg2;
546
+ }
547
+ }
548
+ var errMsg = formatApiArgs(args, options);
549
+ if (errMsg) {
550
+ return errMsg;
551
+ }
552
+ }
553
+ function checkCallback(callback) {
554
+ if (!isFunction$1(callback)) {
555
+ throw new Error('Invalid args: type check failed for args "callback". Expected Function');
556
+ }
557
+ }
558
+ function wrapperOnApi(name, fn, options) {
559
+ return (callback) => {
560
+ checkCallback(callback);
561
+ var errMsg = beforeInvokeApi(name, [callback], void 0, options);
562
+ if (errMsg) {
563
+ throw new Error(errMsg);
564
+ }
565
+ var isFirstInvokeOnApi = !findInvokeCallbackByName(name);
566
+ createKeepAliveApiCallback(name, callback);
567
+ if (isFirstInvokeOnApi) {
568
+ onKeepAliveApiCallback(name);
569
+ fn();
570
+ }
571
+ };
572
+ }
573
+ function wrapperOffApi(name, fn, options) {
574
+ return (callback) => {
575
+ checkCallback(callback);
576
+ var errMsg = beforeInvokeApi(name, [callback], void 0, options);
577
+ if (errMsg) {
578
+ throw new Error(errMsg);
579
+ }
580
+ name = name.replace("off", "on");
581
+ removeKeepAliveApiCallback(name, callback);
582
+ var hasInvokeOnApi = findInvokeCallbackByName(name);
583
+ if (!hasInvokeOnApi) {
584
+ offKeepAliveApiCallback(name);
585
+ fn();
586
+ }
587
+ };
588
+ }
589
+ function parseErrMsg(errMsg) {
590
+ if (!errMsg || isString(errMsg)) {
591
+ return errMsg;
592
+ }
593
+ if (errMsg.stack) {
594
+ return errMsg.message;
595
+ }
596
+ return errMsg;
597
+ }
598
+ function wrapperTaskApi(name, fn, protocol, options) {
599
+ return (args) => {
600
+ var id2 = createAsyncApiCallback(name, args, options);
601
+ var errMsg = beforeInvokeApi(name, [args], protocol, options);
602
+ if (errMsg) {
603
+ return invokeFail(id2, name, errMsg);
604
+ }
605
+ return fn(args, {
606
+ resolve: (res) => invokeSuccess(id2, name, res),
607
+ reject: (errMsg2, errRes) => invokeFail(id2, name, parseErrMsg(errMsg2), errRes)
608
+ });
609
+ };
610
+ }
611
+ function wrapperSyncApi(name, fn, protocol, options) {
612
+ return function() {
613
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
614
+ args[_key] = arguments[_key];
615
+ }
616
+ var errMsg = beforeInvokeApi(name, args, protocol, options);
617
+ if (errMsg) {
618
+ throw new Error(errMsg);
619
+ }
620
+ return fn.apply(null, args);
621
+ };
622
+ }
623
+ function wrapperAsyncApi(name, fn, protocol, options) {
624
+ return wrapperTaskApi(name, fn, protocol, options);
625
+ }
626
+ function defineOnApi(name, fn, options) {
627
+ return wrapperOnApi(name, fn, options);
628
+ }
629
+ function defineOffApi(name, fn, options) {
630
+ return wrapperOffApi(name, fn, options);
631
+ }
632
+ function defineTaskApi(name, fn, protocol, options) {
633
+ return promisify(name, wrapperTaskApi(name, fn, void 0, options));
634
+ }
635
+ function defineSyncApi(name, fn, protocol, options) {
636
+ return wrapperSyncApi(name, fn, void 0, options);
637
+ }
638
+ function defineAsyncApi(name, fn, protocol, options) {
639
+ return promisify(name, wrapperAsyncApi(name, fn, void 0, options));
640
+ }
641
+ var vueApp;
642
+ function getVueApp() {
643
+ return vueApp;
644
+ }
645
+ function initVueApp(appVm) {
646
+ var internalInstance = appVm.$;
647
+ Object.defineProperty(internalInstance.ctx, "$children", {
648
+ get() {
649
+ return getAllPages().map((page) => page.$vm);
650
+ }
651
+ });
652
+ var appContext = internalInstance.appContext;
653
+ var mountPage = createMountPage(appContext);
654
+ vueApp = extend(appContext.app, {
655
+ mountPage(pageComponent, pageProps, pageContainer) {
656
+ return mountPage(pageComponent, pageProps, pageContainer);
657
+ },
658
+ unmountPage: (pageInstance) => {
659
+ unmountPage(pageInstance);
660
+ }
661
+ });
662
+ }
663
+ function getPage$BasePage(page) {
664
+ return page.$basePage;
665
+ }
666
+ var pages = [];
667
+ function addCurrentPage(page) {
668
+ var $page = getPage$BasePage(page);
669
+ if (!$page.meta.isNVue) {
670
+ return pages.push(page);
671
+ }
672
+ var index2 = pages.findIndex((p) => getPage$BasePage(p).id === $page.id);
673
+ if (index2 > -1) {
674
+ pages.splice(index2, 1, page);
675
+ } else {
676
+ pages.push(page);
677
+ }
678
+ }
679
+ function getAllPages() {
680
+ return pages;
681
+ }
682
+ function getCurrentPages$1() {
683
+ var curPages = getCurrentBasePages();
684
+ {
685
+ return curPages.map((page) => page.$page);
686
+ }
687
+ }
688
+ function getCurrentBasePages() {
689
+ var curPages = [];
690
+ pages.forEach((page) => {
691
+ if (page.$.__isTabBar) {
692
+ if (page.$.__isActive) {
693
+ curPages.push(page);
694
+ }
695
+ } else {
696
+ curPages.push(page);
697
+ }
698
+ });
699
+ return curPages;
700
+ }
701
+ function removePage(curPage) {
702
+ var index2 = pages.findIndex((page) => page === curPage);
703
+ if (index2 === -1) {
704
+ return;
705
+ }
706
+ var $basePage = getPage$BasePage(curPage);
707
+ if (!$basePage.meta.isNVue) {
708
+ getVueApp().unmountPage(curPage);
709
+ }
710
+ pages.splice(index2, 1);
711
+ {
712
+ var ins = curPage;
713
+ if (ins.$.page) {
714
+ ins.$.page.vm = null;
715
+ ins.$.page = null;
716
+ }
717
+ }
718
+ }
719
+ function backbuttonListener() {
720
+ uni.navigateBack({
721
+ from: "backbutton",
722
+ success() {
723
+ }
724
+ // 传入空方法,避免返回Promise,因为onBackPress可能导致fail
725
+ });
726
+ }
727
+ var enterOptions$1 = /* @__PURE__ */ createLaunchOptions();
728
+ var launchOptions$1 = /* @__PURE__ */ createLaunchOptions();
729
+ function getLaunchOptions() {
730
+ return extend({}, launchOptions$1);
731
+ }
732
+ function initLaunchOptions(_ref2) {
733
+ var {
734
+ path,
735
+ query,
736
+ referrerInfo,
737
+ appScheme,
738
+ appLink
739
+ } = _ref2;
740
+ extend(launchOptions$1, {
741
+ path,
742
+ query: query ? parseQuery(query) : {},
743
+ referrerInfo: referrerInfo || {},
744
+ // TODO uni-app x
745
+ channel: void 0,
746
+ launcher: void 0,
747
+ appScheme,
748
+ appLink
749
+ });
750
+ {
751
+ launchOptions$1.query = new UTSJSONObject(launchOptions$1.query);
752
+ }
753
+ extend(enterOptions$1, launchOptions$1);
754
+ return enterOptions$1;
755
+ }
756
+ var ON_BACK_BUTTON = "onBackButton";
757
+ var ON_POP_GESTURE = "onPopGesture";
758
+ var OPEN_DIALOG_PAGE = "openDialogPage";
759
+ var homeDialogPages = [];
760
+ var homeSystemDialogPages = [];
761
+ var currentNormalDialogPage = null;
762
+ function setCurrentNormalDialogPage(value) {
763
+ currentNormalDialogPage = value;
764
+ }
765
+ function getCurrentNormalDialogPage() {
766
+ return currentNormalDialogPage;
767
+ }
768
+ var currentSystemDialogPage = null;
769
+ function setCurrentSystemDialogPage(value) {
770
+ currentSystemDialogPage = value;
771
+ }
772
+ function getCurrentSystemDialogPage() {
773
+ return currentSystemDialogPage;
774
+ }
775
+ function setupXPage(instance, pageInstance, pageVm, pageId, pagePath) {
776
+ instance.$dialogPages = ref([]);
777
+ var uniPage;
778
+ if (pageInstance.openType === OPEN_DIALOG_PAGE) {
779
+ if (pagePath.startsWith(SYSTEM_DIALOG_PAGE_PATH_STARTER)) {
780
+ uniPage = getCurrentSystemDialogPage();
781
+ setCurrentSystemDialogPage(null);
782
+ } else {
783
+ uniPage = getCurrentNormalDialogPage();
784
+ setCurrentNormalDialogPage(null);
785
+ }
786
+ } else {
787
+ uniPage = new UniNormalPageImpl();
788
+ }
789
+ pageVm.$.page = uniPage;
790
+ uniPage.route = pageVm.$basePage.route;
791
+ uniPage.optionsByJS = pageVm.$basePage.options;
792
+ Object.defineProperty(uniPage, "options", {
793
+ get: function() {
794
+ return new UTSJSONObject(pageVm.$basePage.options);
795
+ }
796
+ });
797
+ uniPage.vm = pageVm;
798
+ uniPage.$vm = pageVm;
799
+ if (getPage$BasePage(pageVm).openType !== OPEN_DIALOG_PAGE) {
800
+ addCurrentPageWithInitScope(pageId, pageVm, pageInstance);
801
+ }
802
+ }
803
+ var beforeSetupPage = (props, ctx) => {
804
+ var {
805
+ attrs: {
806
+ __pageId,
807
+ __pagePath,
808
+ /*__pageQuery,*/
809
+ __pageInstance
810
+ }
811
+ } = ctx;
812
+ var instance = getCurrentGenericInstance();
813
+ var pageVm = instance.proxy;
814
+ initPageVm(pageVm, __pageInstance);
815
+ {
816
+ setupXPage(instance, __pageInstance, pageVm, __pageId, __pagePath);
817
+ }
818
+ };
819
+ function setupPage(component) {
820
+ if (!component.__vapor) {
821
+ var oldSetup = component.setup;
822
+ component.inheritAttrs = false;
823
+ component.setup = (props, ctx) => {
824
+ beforeSetupPage(props, ctx);
825
+ if (oldSetup) {
826
+ return oldSetup(props, ctx);
827
+ }
828
+ };
829
+ }
830
+ return component;
831
+ }
832
+ function initScope(pageId, vm, pageInstance) {
833
+ {
834
+ Object.defineProperty(vm, "$viewToTempFilePath", {
835
+ get() {
836
+ return vm.$nativePage.viewToTempFilePath.bind(vm.$nativePage);
837
+ }
838
+ });
839
+ Object.defineProperty(vm, "$getPageStyle", {
840
+ get() {
841
+ return vm.$nativePage.getPageStyle.bind(vm.$nativePage);
842
+ }
843
+ });
844
+ Object.defineProperty(vm, "$setPageStyle", {
845
+ get() {
846
+ return vm.$nativePage.setPageStyle.bind(vm.$nativePage);
847
+ }
848
+ });
849
+ }
850
+ vm.getOpenerEventChannel = () => {
851
+ if (!pageInstance.eventChannel) {
852
+ pageInstance.eventChannel = new EventChannel(pageId);
853
+ }
854
+ return pageInstance.eventChannel;
855
+ };
856
+ return vm;
857
+ }
858
+ function addCurrentPageWithInitScope(pageId, pageVm, pageInstance) {
859
+ addCurrentPage(initScope(pageId, pageVm, pageInstance));
860
+ }
861
+ function isVuePageAsyncComponent(component) {
862
+ return isFunction$1(component);
863
+ }
864
+ var pagesMap = /* @__PURE__ */ new Map();
865
+ function definePage(pagePath, asyncComponent) {
866
+ pagesMap.set(pagePath, once(createPageFactory(asyncComponent)));
867
+ }
868
+ function createPageFactory(component) {
869
+ return () => {
870
+ if (isVuePageAsyncComponent(component)) {
871
+ return component().then((component2) => setupPage(clonedPageComponent(component2.default || component2)));
872
+ }
873
+ return setupPage(clonedPageComponent(component));
874
+ };
875
+ }
876
+ function clonedPageComponent(component) {
877
+ return extend({}, component);
878
+ }
879
+ function initRouteOptions(path, openType) {
880
+ var routeOptions = JSON.parse(JSON.stringify(getRouteOptions(path)));
881
+ routeOptions.meta = initRouteMeta(routeOptions.meta);
882
+ if (openType !== "preloadPage" && !__uniConfig.realEntryPagePath && (openType === "reLaunch" || getCurrentPages().length === 0)) {
883
+ routeOptions.meta.isQuit = true;
884
+ } else if (!routeOptions.meta.isTabBar) {
885
+ routeOptions.meta.isQuit = false;
886
+ }
887
+ return routeOptions;
888
+ }
889
+ var id = 1;
890
+ function getWebviewId() {
891
+ return id;
892
+ }
893
+ function genWebviewId() {
894
+ return id++;
895
+ }
896
+ function resetWebviewId() {
897
+ id = 1;
898
+ }
899
+ var ANI_SHOW = "pop-in";
900
+ var ANI_DURATION = 300;
901
+ var ANI_CLOSE = "pop-out";
902
+ function hasLeadingSlash(str) {
903
+ return str.indexOf("/") == 0;
904
+ }
905
+ function getRealPath(path) {
906
+ var fix = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
907
+ if (hasLeadingSlash(path)) {
908
+ return path;
909
+ }
910
+ if (fix && path.indexOf(".") !== 0) {
911
+ return "/" + path;
912
+ }
913
+ var currentPage = getCurrentPage().vm;
914
+ var currentPath = !currentPage ? "/" : parseUrl(currentPage.route).path;
915
+ var currentPathArray = currentPath.split("/");
916
+ var pathArray = path.split("/");
917
+ var resultArray = [];
918
+ for (var index2 = 0; index2 < pathArray.length; index2++) {
919
+ var element = pathArray[index2];
920
+ if (element == "..") {
921
+ currentPathArray.pop();
922
+ } else if (element != ".") {
923
+ resultArray.push(element);
924
+ }
925
+ }
926
+ return addLeadingSlash(currentPathArray.concat(resultArray).join("/"));
927
+ }
928
+ var systemRoutes = [];
929
+ function registerSystemRoute(route, page) {
930
+ var meta = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
931
+ if (systemRoutes.find((r) => r.path === route)) {
932
+ return;
933
+ }
934
+ systemRoutes.push({
935
+ path: route,
936
+ meta: extend({
937
+ isQuit: false,
938
+ isEntry: false,
939
+ route,
940
+ navigationBar: {}
941
+ }, meta)
942
+ });
943
+ definePage(route, page);
944
+ }
945
+ var API_ADD_INTERCEPTOR = "addInterceptor";
946
+ var API_REMOVE_INTERCEPTOR = "removeInterceptor";
947
+ function mergeInterceptorHook(interceptors2, interceptor) {
948
+ Object.keys(interceptor).forEach((hook) => {
949
+ if (isFunction$1(interceptor[hook])) {
950
+ interceptors2[hook] = mergeHook(interceptors2[hook], interceptor[hook]);
951
+ }
952
+ });
953
+ }
954
+ function removeInterceptorHook(interceptors2, interceptor) {
955
+ if (!interceptors2 || !interceptor) {
956
+ return;
957
+ }
958
+ Object.keys(interceptor).forEach((name) => {
959
+ var hooks = interceptors2[name];
960
+ var hook = interceptor[name];
961
+ if (isArray(hooks) && isFunction$1(hook)) {
962
+ remove(hooks, hook);
963
+ }
964
+ });
965
+ }
966
+ function mergeHook(parentVal, childVal) {
967
+ var res = childVal ? parentVal ? parentVal.concat(childVal) : isArray(childVal) ? childVal : [childVal] : parentVal;
968
+ return res ? dedupeHooks(res) : res;
969
+ }
970
+ function dedupeHooks(hooks) {
971
+ var res = [];
972
+ for (var i = 0; i < hooks.length; i++) {
973
+ if (res.indexOf(hooks[i]) === -1) {
974
+ res.push(hooks[i]);
975
+ }
976
+ }
977
+ return res;
978
+ }
979
+ var addInterceptor = /* @__PURE__ */ defineSyncApi(API_ADD_INTERCEPTOR, (method, interceptor) => {
980
+ if (isString(method) && isPlainObject(interceptor)) {
981
+ mergeInterceptorHook(scopedInterceptors[method] || (scopedInterceptors[method] = {}), interceptor);
982
+ } else if (isPlainObject(method)) {
983
+ mergeInterceptorHook(globalInterceptors, method);
984
+ }
985
+ });
986
+ var removeInterceptor = /* @__PURE__ */ defineSyncApi(API_REMOVE_INTERCEPTOR, (method, interceptor) => {
987
+ if (isString(method)) {
988
+ if (isPlainObject(interceptor)) {
989
+ removeInterceptorHook(scopedInterceptors[method], interceptor);
990
+ } else {
991
+ delete scopedInterceptors[method];
992
+ }
993
+ } else if (isPlainObject(method)) {
994
+ removeInterceptorHook(globalInterceptors, method);
995
+ }
996
+ });
997
+ var API_ON = "$on";
998
+ var API_ONCE = "$once";
999
+ var API_OFF = "$off";
1000
+ var API_EMIT = "$emit";
1001
+ class EventBus {
1002
+ constructor() {
1003
+ this.$emitter = new Emitter();
1004
+ }
1005
+ on(name, callback) {
1006
+ return this.$emitter.on(name, callback);
1007
+ }
1008
+ once(name, callback) {
1009
+ return this.$emitter.once(name, callback);
1010
+ }
1011
+ off(name, callback) {
1012
+ if (!name) {
1013
+ this.$emitter.e = {};
1014
+ return;
1015
+ }
1016
+ this.$emitter.off(name, callback);
1017
+ }
1018
+ emit(name) {
1019
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
1020
+ args[_key - 1] = arguments[_key];
1021
+ }
1022
+ this.$emitter.emit(name, ...args);
1023
+ }
1024
+ }
1025
+ var eventBus = new EventBus();
1026
+ var $on = /* @__PURE__ */ defineSyncApi(API_ON, (name, callback) => {
1027
+ var id2 = eventBus.on(name, callback);
1028
+ {
1029
+ return id2;
1030
+ }
1031
+ });
1032
+ var $once = /* @__PURE__ */ defineSyncApi(API_ONCE, (name, callback) => {
1033
+ var id2 = eventBus.once(name, callback);
1034
+ {
1035
+ return id2;
1036
+ }
1037
+ });
1038
+ var $off = /* @__PURE__ */ defineSyncApi(API_OFF, (name, callback) => {
1039
+ if (!isArray(name))
1040
+ name = name ? [name] : [];
1041
+ name.forEach((n) => {
1042
+ eventBus.off(n, callback);
1043
+ if (
1044
+ // @ts-expect-error
1045
+ typeof __uniappx__nativeEventBus !== "undefined"
1046
+ ) {
1047
+ __uniappx__nativeEventBus.off(n, callback);
1048
+ }
1049
+ });
1050
+ });
1051
+ var $emit = /* @__PURE__ */ defineSyncApi(API_EMIT, function(name) {
1052
+ for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
1053
+ args[_key2 - 1] = arguments[_key2];
1054
+ }
1055
+ eventBus.emit(name, ...args);
1056
+ });
1057
+ function __f__(type, filename) {
1058
+ for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
1059
+ args[_key - 2] = arguments[_key];
1060
+ }
1061
+ if (filename) {
1062
+ args.push(filename);
1063
+ }
1064
+ console[type].apply(console, args);
1065
+ }
1066
+ var appHooks = {
1067
+ [ON_UNHANDLE_REJECTION]: [],
1068
+ [ON_PAGE_NOT_FOUND]: [],
1069
+ [ON_ERROR]: [],
1070
+ [ON_SHOW]: [],
1071
+ [ON_HIDE]: []
1072
+ };
1073
+ function injectAppHooks(appInstance) {
1074
+ Object.keys(appHooks).forEach((type) => {
1075
+ appHooks[type].forEach((hook) => {
1076
+ injectHook(type, hook, appInstance);
1077
+ });
1078
+ });
1079
+ }
1080
+ function encodeQueryString(url) {
1081
+ if (!isString(url)) {
1082
+ return url;
1083
+ }
1084
+ var index2 = url.indexOf("?");
1085
+ if (index2 === -1) {
1086
+ return url;
1087
+ }
1088
+ var query = url.slice(index2 + 1).trim().replace(/^(\?|#|&)/, "");
1089
+ if (!query) {
1090
+ return url;
1091
+ }
1092
+ url = url.slice(0, index2);
1093
+ var params = [];
1094
+ query.split("&").forEach((param) => {
1095
+ var parts = param.replace(/\+/g, " ").split("=");
1096
+ var key = parts.shift();
1097
+ var val = parts.length > 0 ? parts.join("=") : "";
1098
+ params.push(key + "=" + encodeURIComponent(val));
1099
+ });
1100
+ return params.length ? url + "?" + params.join("&") : url;
1101
+ }
1102
+ var ANIMATION_IN = ["slide-in-right", "slide-in-left", "slide-in-top", "slide-in-bottom", "fade-in", "zoom-out", "zoom-fade-out", "pop-in", "none"];
1103
+ var ANIMATION_OUT = ["slide-out-right", "slide-out-left", "slide-out-top", "slide-out-bottom", "fade-out", "zoom-in", "zoom-fade-in", "pop-out", "none"];
1104
+ var BaseRouteProtocol = {
1105
+ url: {
1106
+ type: String,
1107
+ required: true
1108
+ }
1109
+ };
1110
+ var API_NAVIGATE_TO = "navigateTo";
1111
+ var API_REDIRECT_TO = "redirectTo";
1112
+ var API_RE_LAUNCH = "reLaunch";
1113
+ var API_SWITCH_TAB = "switchTab";
1114
+ var API_NAVIGATE_BACK = "navigateBack";
1115
+ var API_PRELOAD_PAGE = "preloadPage";
1116
+ var API_UN_PRELOAD_PAGE = "unPreloadPage";
1117
+ var NavigateToProtocol = /* @__PURE__ */ extend({}, BaseRouteProtocol, createAnimationProtocol(ANIMATION_IN));
1118
+ var NavigateBackProtocol = /* @__PURE__ */ extend({
1119
+ delta: {
1120
+ type: Number
1121
+ }
1122
+ }, createAnimationProtocol(ANIMATION_OUT));
1123
+ var RedirectToProtocol = BaseRouteProtocol;
1124
+ var ReLaunchProtocol = BaseRouteProtocol;
1125
+ var SwitchTabProtocol = BaseRouteProtocol;
1126
+ var NavigateToOptions = /* @__PURE__ */ createRouteOptions(API_NAVIGATE_TO);
1127
+ var RedirectToOptions = /* @__PURE__ */ createRouteOptions(API_REDIRECT_TO);
1128
+ var ReLaunchOptions = /* @__PURE__ */ createRouteOptions(API_RE_LAUNCH);
1129
+ var SwitchTabOptions = /* @__PURE__ */ createRouteOptions(API_SWITCH_TAB);
1130
+ var NavigateBackOptions = {
1131
+ formatArgs: {
1132
+ delta(value, params) {
1133
+ value = parseInt(value + "") || 1;
1134
+ params.delta = Math.min(getCurrentPages().length - 1, value);
1135
+ }
1136
+ }
1137
+ };
1138
+ function createAnimationProtocol(animationTypes) {
1139
+ return {
1140
+ animationType: {
1141
+ type: String,
1142
+ validator(type) {
1143
+ if (type && animationTypes.indexOf(type) === -1) {
1144
+ return "`" + type + "` is not supported for `animationType` (supported values are: `" + animationTypes.join("`|`") + "`)";
1145
+ }
1146
+ }
1147
+ },
1148
+ animationDuration: {
1149
+ type: Number
1150
+ }
1151
+ };
1152
+ }
1153
+ var navigatorLock;
1154
+ function beforeRoute() {
1155
+ navigatorLock = "";
1156
+ }
1157
+ function createRouteOptions(type) {
1158
+ return {
1159
+ formatArgs: {
1160
+ url: createNormalizeUrl(type)
1161
+ },
1162
+ beforeAll: beforeRoute
1163
+ };
1164
+ }
1165
+ function createNormalizeUrl(type) {
1166
+ return function normalizeUrl(url, params) {
1167
+ if (!url) {
1168
+ return 'Missing required args: "url"';
1169
+ }
1170
+ url = normalizeRoute(url);
1171
+ var pagePath = url.split("?")[0];
1172
+ var routeOptions = getRouteOptions(pagePath, true);
1173
+ if (!routeOptions) {
1174
+ return "page `" + url + "` is not found";
1175
+ }
1176
+ if (type === API_NAVIGATE_TO || type === API_REDIRECT_TO) {
1177
+ if (routeOptions.meta.isTabBar) {
1178
+ return "can not ".concat(type, " a tabbar page");
1179
+ }
1180
+ } else if (type === API_SWITCH_TAB) {
1181
+ if (!routeOptions.meta.isTabBar) {
1182
+ return "can not switch to no-tabBar page";
1183
+ }
1184
+ }
1185
+ if ((type === API_SWITCH_TAB || type === API_PRELOAD_PAGE) && routeOptions.meta.isTabBar && params.openType !== "appLaunch") {
1186
+ url = pagePath;
1187
+ }
1188
+ if (routeOptions.meta.isEntry) {
1189
+ url = url.replace(routeOptions.alias, "/");
1190
+ }
1191
+ params.url = encodeQueryString(url);
1192
+ if (type === API_UN_PRELOAD_PAGE) {
1193
+ return;
1194
+ } else if (type === API_PRELOAD_PAGE) {
1195
+ {
1196
+ if (!routeOptions.meta.isNVue) {
1197
+ return "can not preload vue page";
1198
+ }
1199
+ }
1200
+ if (routeOptions.meta.isTabBar) {
1201
+ var pages2 = getCurrentPages();
1202
+ var tabBarPagePath = routeOptions.path.slice(1);
1203
+ if (pages2.find((page) => page.route === tabBarPagePath)) {
1204
+ return "tabBar page `" + tabBarPagePath + "` already exists";
1205
+ }
1206
+ }
1207
+ return;
1208
+ }
1209
+ if (navigatorLock === url && params.openType !== "appLaunch") {
1210
+ return "".concat(navigatorLock, " locked");
1211
+ }
1212
+ if (__uniConfig.ready) {
1213
+ navigatorLock = url;
1214
+ }
1215
+ };
1216
+ }
1217
+ var API_LOAD_FONT_FACE = "loadFontFace";
1218
+ var FRONT_COLORS = ["#ffffff", "#000000"];
1219
+ var API_SET_NAVIGATION_BAR_COLOR = "setNavigationBarColor";
1220
+ var SetNavigationBarColorOptions = {
1221
+ formatArgs: {
1222
+ animation(animation2, params) {
1223
+ if (!animation2) {
1224
+ animation2 = {
1225
+ duration: 0,
1226
+ timingFunc: "linear"
1227
+ };
1228
+ }
1229
+ params.animation = {
1230
+ duration: animation2.duration || 0,
1231
+ timingFunc: animation2.timingFunc || "linear"
1232
+ };
1233
+ }
1234
+ }
1235
+ };
1236
+ var SetNavigationBarColorProtocol = {
1237
+ frontColor: {
1238
+ type: String,
1239
+ required: true,
1240
+ validator(frontColor) {
1241
+ if (FRONT_COLORS.indexOf(frontColor) === -1) {
1242
+ return 'invalid frontColor "'.concat(frontColor, '"');
1243
+ }
1244
+ }
1245
+ },
1246
+ backgroundColor: {
1247
+ type: String,
1248
+ required: true
1249
+ },
1250
+ animation: Object
1251
+ };
1252
+ var API_SET_NAVIGATION_BAR_TITLE = "setNavigationBarTitle";
1253
+ var API_PAGE_SCROLL_TO = "pageScrollTo";
1254
+ var PageScrollToProtocol = {
1255
+ scrollTop: Number,
1256
+ selector: String,
1257
+ duration: Number
1258
+ };
1259
+ var PageScrollToOptions = {
1260
+ formatArgs: {
1261
+ duration: 300
1262
+ }
1263
+ };
1264
+ var API_START_PULL_DOWN_REFRESH = "startPullDownRefresh";
1265
+ var API_STOP_PULL_DOWN_REFRESH = "stopPullDownRefresh";
1266
+ var IndexProtocol = {
1267
+ index: {
1268
+ type: Number,
1269
+ required: true
1270
+ }
1271
+ };
1272
+ var IndexOptions = {
1273
+ beforeInvoke() {
1274
+ var pageMeta = getCurrentPageMeta();
1275
+ if (pageMeta && !pageMeta.isTabBar) {
1276
+ return "not TabBar page";
1277
+ }
1278
+ },
1279
+ formatArgs: {
1280
+ index(value) {
1281
+ if (!__uniConfig.tabBar.list[value]) {
1282
+ return "tabbar item not found";
1283
+ }
1284
+ }
1285
+ }
1286
+ };
1287
+ var API_SET_TAB_BAR_ITEM = "setTabBarItem";
1288
+ var SetTabBarItemProtocol = /* @__PURE__ */ extend({
1289
+ text: String,
1290
+ iconPath: String,
1291
+ selectedIconPath: String,
1292
+ pagePath: String
1293
+ }, IndexProtocol);
1294
+ var SetTabBarItemOptions = {
1295
+ beforeInvoke: IndexOptions.beforeInvoke,
1296
+ formatArgs: /* @__PURE__ */ extend({
1297
+ pagePath(value, params) {
1298
+ if (value) {
1299
+ params.pagePath = removeLeadingSlash(value);
1300
+ }
1301
+ }
1302
+ }, IndexOptions.formatArgs)
1303
+ };
1304
+ var API_SET_TAB_BAR_STYLE = "setTabBarStyle";
1305
+ var SetTabBarStyleProtocol = {
1306
+ color: String,
1307
+ selectedColor: String,
1308
+ backgroundColor: String,
1309
+ backgroundImage: String,
1310
+ backgroundRepeat: String,
1311
+ borderStyle: String
1312
+ };
1313
+ var SetTabBarStyleOptions = {
1314
+ beforeInvoke: IndexOptions.beforeInvoke,
1315
+ formatArgs: {
1316
+ backgroundImage(value, params) {
1317
+ {
1318
+ params.backgroundImage = value;
1319
+ return;
1320
+ }
1321
+ },
1322
+ borderStyle(value, params) {
1323
+ if (value) {
1324
+ params.borderStyle = value === "white" ? "white" : "black";
1325
+ }
1326
+ }
1327
+ }
1328
+ };
1329
+ var API_HIDE_TAB_BAR = "hideTabBar";
1330
+ var API_SHOW_TAB_BAR = "showTabBar";
1331
+ var API_HIDE_TAB_BAR_RED_DOT = "hideTabBarRedDot";
1332
+ var HideTabBarRedDotProtocol = IndexProtocol;
1333
+ var HideTabBarRedDotOptions = IndexOptions;
1334
+ var API_SHOW_TAB_BAR_RED_DOT = "showTabBarRedDot";
1335
+ var ShowTabBarRedDotProtocol = IndexProtocol;
1336
+ var ShowTabBarRedDotOptions = IndexOptions;
1337
+ var API_REMOVE_TAB_BAR_BADGE = "removeTabBarBadge";
1338
+ var RemoveTabBarBadgeProtocol = IndexProtocol;
1339
+ var RemoveTabBarBadgeOptions = IndexOptions;
1340
+ var API_SET_TAB_BAR_BADGE = "setTabBarBadge";
1341
+ var SetTabBarBadgeProtocol = /* @__PURE__ */ extend({
1342
+ text: {
1343
+ type: String,
1344
+ required: true
1345
+ }
1346
+ }, IndexProtocol);
1347
+ var SetTabBarBadgeOptions = {
1348
+ beforeInvoke: IndexOptions.beforeInvoke,
1349
+ formatArgs: /* @__PURE__ */ extend({
1350
+ text(value, params) {
1351
+ if (getLen(value) >= 4) {
1352
+ params.text = "...";
1353
+ }
1354
+ }
1355
+ }, IndexOptions.formatArgs)
1356
+ };
1357
+ function showWebview(nPage, animationType, animationDuration, showCallback) {
1358
+ nPage.show(/* @__PURE__ */ new Map([["animationType", animationType], ["animationDuration", animationDuration]]), showCallback);
1359
+ }
1360
+ function closeWebview(nPage, animationType, animationDuration, callback) {
1361
+ var options = /* @__PURE__ */ new Map([["animationType", animationType]]);
1362
+ if (typeof animationDuration === "number") {
1363
+ options.set("animationDuration", animationDuration);
1364
+ }
1365
+ nPage.close(options, callback);
1366
+ }
1367
+ var nativeApp;
1368
+ function getNativeApp() {
1369
+ return nativeApp;
1370
+ }
1371
+ function setNativeApp(app) {
1372
+ nativeApp = app;
1373
+ }
1374
+ function getPageManager() {
1375
+ return nativeApp.pageManager;
1376
+ }
1377
+ var beforeRouteHooks = [];
1378
+ var afterRouteHooks = [];
1379
+ var pageReadyHooks = [];
1380
+ function onBeforeRoute(hook) {
1381
+ beforeRouteHooks.push(hook);
1382
+ }
1383
+ function onAfterRoute(hook) {
1384
+ afterRouteHooks.push(hook);
1385
+ }
1386
+ function onPageReady(hook) {
1387
+ pageReadyHooks.push(hook);
1388
+ }
1389
+ function invokeBeforeRouteHooks(type) {
1390
+ invokeArrayFns$1(beforeRouteHooks, type);
1391
+ }
1392
+ function invokeAfterRouteHooks(type) {
1393
+ invokeArrayFns$1(afterRouteHooks, type);
1394
+ }
1395
+ function invokePageReadyHooks(page) {
1396
+ invokeArrayFns$1(pageReadyHooks, page);
1397
+ }
1398
+ var BORDER_COLORS = /* @__PURE__ */ new Map([["white", "rgba(255, 255, 255, 0.33)"], ["black", "rgba(0, 0, 0, 0.33)"]]);
1399
+ function getBorderStyle(borderStyle) {
1400
+ var value = BORDER_COLORS.get(borderStyle);
1401
+ if (borderStyle && !value) {
1402
+ console.warn("4.23 版本起,在 pages.json 设置 tabbar borderStyle、在 uni.setTabBarStyle 设置 borderStyle 时仅支持 white/black,推荐使用 borderColor 自定义颜色。");
1403
+ }
1404
+ return value || BORDER_COLORS.get("black");
1405
+ }
1406
+ function fixBorderStyle(tabBarConfig) {
1407
+ var borderStyle = tabBarConfig.get("borderStyle");
1408
+ var borderColor = tabBarConfig.get("borderColor");
1409
+ var isBorderColorFilled = isString(borderColor);
1410
+ borderStyle = getBorderStyle(borderStyle);
1411
+ if (isBorderColorFilled) {
1412
+ borderStyle = borderColor;
1413
+ }
1414
+ tabBarConfig.set("borderStyle", borderStyle);
1415
+ tabBarConfig.delete("borderColor");
1416
+ }
1417
+ function parseRedirectInfo(app) {
1418
+ var _redirectInfo$get, _redirectInfo$get2, _redirectInfo$get3, _redirectInfo$get4, _redirectInfo$get5;
1419
+ var redirectInfo = app.getRedirectInfo();
1420
+ var path = (_redirectInfo$get = redirectInfo.get("path")) !== null && _redirectInfo$get !== void 0 ? _redirectInfo$get : "";
1421
+ var query = (_redirectInfo$get2 = redirectInfo.get("query")) !== null && _redirectInfo$get2 !== void 0 ? _redirectInfo$get2 : "";
1422
+ var userAction = (_redirectInfo$get3 = redirectInfo.get("userAction")) !== null && _redirectInfo$get3 !== void 0 ? _redirectInfo$get3 : false;
1423
+ var appScheme = (_redirectInfo$get4 = redirectInfo.get("appScheme")) !== null && _redirectInfo$get4 !== void 0 ? _redirectInfo$get4 : "";
1424
+ var appLink = (_redirectInfo$get5 = redirectInfo.get("appLink")) !== null && _redirectInfo$get5 !== void 0 ? _redirectInfo$get5 : "";
1425
+ var referrerInfo = {
1426
+ appId: app.appid,
1427
+ extraData: {}
1428
+ };
1429
+ return {
1430
+ path: path || "",
1431
+ query: query ? "?" + query : "",
1432
+ referrerInfo,
1433
+ userAction,
1434
+ appScheme,
1435
+ appLink
1436
+ };
1437
+ }
1438
+ var onTabBarMidButtonTapCallback = [];
1439
+ var tabBar0 = null;
1440
+ var selected0 = -1;
1441
+ var tabs = /* @__PURE__ */ new Map();
1442
+ function getTabList() {
1443
+ var tabConfig = __uniConfig.tabBar ? /* @__PURE__ */ new Map() : null;
1444
+ if (__uniConfig.tabBar) {
1445
+ for (var key in __uniConfig.tabBar) {
1446
+ tabConfig.set(key, __uniConfig.tabBar[key]);
1447
+ }
1448
+ }
1449
+ if (tabConfig === null) {
1450
+ return null;
1451
+ }
1452
+ var list = tabConfig.get("list");
1453
+ return list;
1454
+ }
1455
+ function init() {
1456
+ var _uniConfig$globalSty, _uniConfig$globalSty2;
1457
+ var list = getTabList();
1458
+ var style = /* @__PURE__ */ new Map();
1459
+ style.set("navigationStyle", "custom");
1460
+ style.set("pageOrientation", (_uniConfig$globalSty = (_uniConfig$globalSty2 = __uniConfig.globalStyle) === null || _uniConfig$globalSty2 === void 0 ? void 0 : _uniConfig$globalSty2.pageOrientation) !== null && _uniConfig$globalSty !== void 0 ? _uniConfig$globalSty : "portrait");
1461
+ var page = getPageManager().createPage(
1462
+ "tabBar",
1463
+ // id 后增加 Date.now() 保证唯一性,与 android 端统一
1464
+ "tabBar_".concat(Date.now()),
1465
+ style
1466
+ );
1467
+ var document = page.createDocument(new NodeData("root", "view", /* @__PURE__ */ new Map(), /* @__PURE__ */ new Map([["flex", "1"]])));
1468
+ var tabParent = document.createElement(new NodeData("tabs", "tabs", /* @__PURE__ */ new Map(), /* @__PURE__ */ new Map([["overflow", "hidden"], ["flex", "1"]])));
1469
+ document.appendChild(tabParent);
1470
+ tabBar0 = document.getRealDomNodeById("tabs");
1471
+ var _tabBarConfig = extend({}, __uniConfig.tabBar);
1472
+ normalizeTabBarStyles(_tabBarConfig, __uniConfig.themeConfig, getAppThemeFallbackOS());
1473
+ var tabBarConfig = /* @__PURE__ */ new Map();
1474
+ for (var key in _tabBarConfig) {
1475
+ tabBarConfig.set(key, _tabBarConfig[key]);
1476
+ }
1477
+ fixBorderStyle(tabBarConfig);
1478
+ tabBar0.initTabBar(tabBarConfig);
1479
+ tabBar0.addEventListener("tabBarItemTap", function(event) {
1480
+ var index2 = event.index;
1481
+ if (index2 !== selected0) {
1482
+ var item = list[index2];
1483
+ var path = item.pagePath;
1484
+ if (isString(path) && findPageRoute(getRealPath(path, true))) {
1485
+ uni.switchTab({
1486
+ url: getRealPath(path, true)
1487
+ });
1488
+ } else {
1489
+ console.error("switchTab: pagePath not found");
1490
+ }
1491
+ }
1492
+ });
1493
+ tabBar0.addEventListener("tabBarMidButtonTap", function(event) {
1494
+ onTabBarMidButtonTapCallback.forEach((callback) => {
1495
+ if (typeof callback === "function") {
1496
+ callback();
1497
+ }
1498
+ });
1499
+ });
1500
+ page.startRender();
1501
+ page.show(null);
1502
+ }
1503
+ function clearTabBarStatus() {
1504
+ tabBar0 = null;
1505
+ selected0 = -1;
1506
+ tabs.clear();
1507
+ }
1508
+ function removeTabBarPage(page) {
1509
+ var pagePath = getRealPath(page.route, true);
1510
+ if (tabs.get(pagePath) === page) {
1511
+ tabs.delete(pagePath);
1512
+ if (getTabIndex(pagePath) === selected0) {
1513
+ selected0 = -1;
1514
+ }
1515
+ }
1516
+ }
1517
+ function getTabBar() {
1518
+ return tabBar0;
1519
+ }
1520
+ function getTabIndex(path) {
1521
+ var list = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : getTabList();
1522
+ var selected = -1;
1523
+ if (list && list.length !== 0) {
1524
+ for (var index2 = 0; index2 < list.length; index2++) {
1525
+ var page = list[index2];
1526
+ var pagePath = page.pagePath;
1527
+ if (isString(pagePath) && getRealPath(pagePath, true) == getRealPath(path, true)) {
1528
+ selected = index2;
1529
+ break;
1530
+ }
1531
+ }
1532
+ }
1533
+ return selected;
1534
+ }
1535
+ function findPageRoute(path) {
1536
+ return __uniRoutes.find((route) => route.path === path);
1537
+ }
1538
+ function createTab(path, query, callback) {
1539
+ registerPage({
1540
+ url: path,
1541
+ path,
1542
+ query,
1543
+ openType: "switchTab",
1544
+ onRegistered() {
1545
+ var page = getCurrentPage().vm;
1546
+ tabBar0.appendItem(page.$basePage.id.toString());
1547
+ callback(page);
1548
+ }
1549
+ });
1550
+ }
1551
+ function findTabPage(path) {
1552
+ var _tabs$get;
1553
+ var page = (_tabs$get = tabs.get(path)) !== null && _tabs$get !== void 0 ? _tabs$get : null;
1554
+ var pages2 = getAllPages();
1555
+ pages2.forEach((item) => item.$.__isActive = item === page);
1556
+ if (page !== null) {
1557
+ var index2 = pages2.indexOf(page);
1558
+ if (index2 !== pages2.length - 1) {
1559
+ pages2.splice(index2, 1);
1560
+ pages2.push(page);
1561
+ }
1562
+ }
1563
+ return page;
1564
+ }
1565
+ function isTabPage(page) {
1566
+ var has = false;
1567
+ tabs.forEach((value, key) => {
1568
+ if (value === page) {
1569
+ has = true;
1570
+ }
1571
+ });
1572
+ return has;
1573
+ }
1574
+ class TabPageInfo {
1575
+ constructor(page, isFirst) {
1576
+ this.page = page;
1577
+ this.isFirst = isFirst;
1578
+ }
1579
+ }
1580
+ function getTabPage(path) {
1581
+ var query = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
1582
+ var rebuild = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
1583
+ var callback = arguments.length > 3 ? arguments[3] : void 0;
1584
+ var page = findTabPage(path);
1585
+ var isFirst = false;
1586
+ if (page === null || rebuild) {
1587
+ isFirst = true;
1588
+ createTab(path, query, (page2) => {
1589
+ tabs.set(path, page2);
1590
+ callback(new TabPageInfo(page2, isFirst));
1591
+ });
1592
+ } else {
1593
+ callback(new TabPageInfo(page, isFirst));
1594
+ }
1595
+ }
1596
+ function switchSelect(selected, path) {
1597
+ var _getCurrentPage;
1598
+ var query = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
1599
+ var rebuild = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;
1600
+ var callback = arguments.length > 4 ? arguments[4] : void 0;
1601
+ var shouldShow = false;
1602
+ if (tabBar0 === null) {
1603
+ init();
1604
+ }
1605
+ var currentPage = (_getCurrentPage = getCurrentPage()) === null || _getCurrentPage === void 0 ? void 0 : _getCurrentPage.vm;
1606
+ var type = currentPage == null ? "appLaunch" : "switchTab";
1607
+ invokeBeforeRouteHooks(type);
1608
+ getTabPage(getRealPath(path, true), query, rebuild, (pageInfo) => {
1609
+ callback === null || callback === void 0 || callback();
1610
+ var page = pageInfo.page;
1611
+ if (currentPage !== page) {
1612
+ shouldShow = true;
1613
+ if (currentPage && isTabPage(currentPage)) {
1614
+ invokeHook(currentPage, ON_HIDE);
1615
+ }
1616
+ }
1617
+ tabBar0.switchSelect(page.$basePage.id.toString(), selected);
1618
+ if (shouldShow) {
1619
+ invokeHook(page, ON_SHOW);
1620
+ }
1621
+ selected0 = selected;
1622
+ invokeAfterRouteHooks(type);
1623
+ });
1624
+ }
1625
+ var APP_THEME_AUTO = "auto";
1626
+ var THEME_KEY_PREFIX = "@";
1627
+ function getAppThemeFallbackOS() {
1628
+ var fallbackOSTheme = "light";
1629
+ try {
1630
+ var appTheme = uni.getAppBaseInfo().appTheme;
1631
+ fallbackOSTheme = appTheme;
1632
+ if (appTheme === APP_THEME_AUTO) {
1633
+ var osTheme = uni.getDeviceInfo().osTheme;
1634
+ fallbackOSTheme = osTheme;
1635
+ }
1636
+ return fallbackOSTheme;
1637
+ } catch (e) {
1638
+ console.error(e);
1639
+ return fallbackOSTheme;
1640
+ }
1641
+ }
1642
+ var appThemeChangeCallbackId = -1;
1643
+ function clearAppThemeChangeCallbackId() {
1644
+ appThemeChangeCallbackId = -1;
1645
+ }
1646
+ function registerThemeChange(callback) {
1647
+ try {
1648
+ if (appThemeChangeCallbackId !== -1) {
1649
+ uni.offAppThemeChange(appThemeChangeCallbackId);
1650
+ clearAppThemeChangeCallbackId();
1651
+ }
1652
+ appThemeChangeCallbackId = uni.onAppThemeChange(function(res1) {
1653
+ var appThemeMode = res1["appTheme"];
1654
+ callback(appThemeMode);
1655
+ });
1656
+ } catch (e) {
1657
+ }
1658
+ }
1659
+ var onThemeChange = function(themeMode) {
1660
+ var handlePage = () => {
1661
+ var pages2 = getAllPages();
1662
+ pages2.forEach((page) => {
1663
+ var routeOptions = initRouteOptions(page.$basePage.path, "");
1664
+ var style = parsePageStyle(routeOptions);
1665
+ page.$page.setPageStyle(new UTSJSONObject(style));
1666
+ });
1667
+ };
1668
+ handlePage();
1669
+ var handleTabBar = () => {
1670
+ var tabBar = getTabBar();
1671
+ if (tabBar !== null) {
1672
+ var tabBarConfig = __uniConfig.getTabBarConfig();
1673
+ normalizeTabBarStyles(tabBarConfig, __uniConfig.themeConfig, themeMode);
1674
+ var tabBarStyle = /* @__PURE__ */ new Map();
1675
+ var tabBarConfigKeys = Object.keys(tabBarConfig);
1676
+ tabBarConfigKeys.forEach((key) => {
1677
+ var value = tabBarConfig[key];
1678
+ if (isString(value)) {
1679
+ tabBarStyle.set(key, value);
1680
+ } else if (isArray(value)) {
1681
+ var valueAsArray = value;
1682
+ var index2 = 0;
1683
+ valueAsArray.forEach((item) => {
1684
+ var tabBarItemMap = /* @__PURE__ */ new Map();
1685
+ tabBarItemMap.set("index", index2);
1686
+ Object.keys(item).forEach((tabBarItemkey) => {
1687
+ if (item[tabBarItemkey] != null) {
1688
+ tabBarItemMap.set(tabBarItemkey, item[tabBarItemkey]);
1689
+ }
1690
+ });
1691
+ tabBar.setTabBarItem(tabBarItemMap);
1692
+ index2++;
1693
+ });
1694
+ }
1695
+ });
1696
+ fixBorderStyle(tabBarStyle);
1697
+ tabBar.setTabBarStyle(tabBarStyle);
1698
+ }
1699
+ };
1700
+ handleTabBar();
1701
+ };
1702
+ function normalizePageStyles(pageStyle, themeConfig, themeMode) {
1703
+ var themeMap = themeConfig === null || themeConfig === void 0 ? void 0 : themeConfig[themeMode];
1704
+ if (!themeMap) {
1705
+ return;
1706
+ }
1707
+ normalizeStyles(pageStyle, themeMap);
1708
+ }
1709
+ function normalizeStyles(style, themeMap) {
1710
+ Object.keys(style).forEach((key) => {
1711
+ var value = style[key];
1712
+ if (isString(value)) {
1713
+ var valueAsString = value;
1714
+ if (valueAsString.startsWith(THEME_KEY_PREFIX)) {
1715
+ var valueKey = valueAsString.slice(1);
1716
+ var configValue = themeMap[valueKey];
1717
+ if (configValue != null) {
1718
+ style[key] = configValue;
1719
+ }
1720
+ }
1721
+ } else if (isArray(value)) {
1722
+ var valueAsArray = value;
1723
+ valueAsArray.forEach((item) => {
1724
+ normalizeStyles(item, themeMap);
1725
+ });
1726
+ } else if (isPlainObject(value)) {
1727
+ normalizeStyles(value, themeMap);
1728
+ }
1729
+ });
1730
+ }
1731
+ function normalizeTabBarStyles(tabBar, themeConfig, themeMode) {
1732
+ if (!themeConfig) {
1733
+ return;
1734
+ }
1735
+ var themeMap = themeConfig[themeMode];
1736
+ if (themeMap == null) {
1737
+ return;
1738
+ }
1739
+ normalizeStyles(tabBar, themeMap);
1740
+ }
1741
+ function useTheme() {
1742
+ registerThemeChange(onThemeChange);
1743
+ }
1744
+ function setStatusBarStyle() {
1745
+ var page;
1746
+ {
1747
+ var currentPage = getCurrentPage();
1748
+ var dialogPages = currentPage === null || currentPage === void 0 ? void 0 : currentPage.getDialogPages();
1749
+ var systemDialogPages = getSystemDialogPages(currentPage);
1750
+ if (systemDialogPages !== null && systemDialogPages !== void 0 && systemDialogPages.length && dialogPages !== null && dialogPages !== void 0 && dialogPages.length) {
1751
+ var lastSystemDialogPage = systemDialogPages[systemDialogPages.length - 1];
1752
+ var lastDialogPage = dialogPages[dialogPages.length - 1];
1753
+ page = // @ts-expect-error
1754
+ Number(lastSystemDialogPage.__nativePageId) > Number(lastDialogPage.__nativePageId) ? lastSystemDialogPage.vm : lastDialogPage.vm;
1755
+ } else if (dialogPages !== null && dialogPages !== void 0 && dialogPages.length) {
1756
+ page = dialogPages[dialogPages.length - 1].vm;
1757
+ } else if (systemDialogPages !== null && systemDialogPages !== void 0 && systemDialogPages.length) {
1758
+ page = systemDialogPages[systemDialogPages.length - 1].vm;
1759
+ } else {
1760
+ page = currentPage === null || currentPage === void 0 ? void 0 : currentPage.vm;
1761
+ }
1762
+ }
1763
+ if (page) {
1764
+ var nativePage = page.$nativePage;
1765
+ nativePage.applyStatusBarStyle();
1766
+ }
1767
+ }
1768
+ function closeNativeDialogPage(dialogPage, animationType, animationDuration, callback) {
1769
+ var _dialogPage$vm;
1770
+ var webview = getNativeApp().pageManager.findPageById(((_dialogPage$vm = dialogPage.vm) === null || _dialogPage$vm === void 0 ? void 0 : _dialogPage$vm.$basePage.id) + "");
1771
+ if (webview) {
1772
+ closeWebview(webview, animationType || "none", animationDuration || 0, () => {
1773
+ getVueApp().unmountPage(dialogPage.vm);
1774
+ setStatusBarStyle();
1775
+ });
1776
+ }
1777
+ }
1778
+ var closeDialogPage = (options) => {
1779
+ var _options$success, _options$complete;
1780
+ var currentPages = getCurrentPages();
1781
+ var currentPage = currentPages[currentPages.length - 1];
1782
+ if (!currentPage) {
1783
+ triggerFailCallback$1(options, "currentPage is null");
1784
+ return;
1785
+ }
1786
+ if ((options === null || options === void 0 ? void 0 : options.animationType) === "pop-out") {
1787
+ options.animationType = "none";
1788
+ }
1789
+ if (options !== null && options !== void 0 && options.dialogPage) {
1790
+ var dialogPage = options === null || options === void 0 ? void 0 : options.dialogPage;
1791
+ if (!(dialogPage instanceof UniDialogPageImpl)) {
1792
+ triggerFailCallback$1(options, "dialogPage is not a valid page");
1793
+ return;
1794
+ }
1795
+ var parentPage = dialogPage.getParentPage();
1796
+ if (!isSystemDialogPage(dialogPage)) {
1797
+ if (parentPage && (isTabPage(parentPage.vm) || currentPages.indexOf(parentPage) !== -1)) {
1798
+ var parentDialogPages = parentPage.getDialogPages();
1799
+ var index2 = parentDialogPages.indexOf(dialogPage);
1800
+ closeNativeDialogPage(dialogPage, (options === null || options === void 0 ? void 0 : options.animationType) || "auto", (options === null || options === void 0 ? void 0 : options.animationDuration) || ANI_DURATION);
1801
+ parentDialogPages.splice(index2, 1);
1802
+ if (index2 === parentDialogPages.length) {
1803
+ dialogPageTriggerPrevDialogPageLifeCycle(parentPage, ON_SHOW);
1804
+ }
1805
+ } else {
1806
+ triggerFailCallback$1(options, "dialogPage is not a valid page");
1807
+ return;
1808
+ }
1809
+ } else {
1810
+ var systemDialogPages = getSystemDialogPages(parentPage);
1811
+ if (systemDialogPages) {
1812
+ var _index = systemDialogPages.indexOf(dialogPage);
1813
+ if (_index > -1) {
1814
+ closeNativeDialogPage(dialogPage, (options === null || options === void 0 ? void 0 : options.animationType) || "auto", (options === null || options === void 0 ? void 0 : options.animationDuration) || ANI_DURATION);
1815
+ systemDialogPages.splice(_index, 1);
1816
+ if (_index === systemDialogPages.length) {
1817
+ dialogPageTriggerPrevDialogPageLifeCycle(parentPage, ON_SHOW);
1818
+ }
1819
+ } else {
1820
+ triggerFailCallback$1(options, "dialogPage is not a valid page");
1821
+ }
1822
+ }
1823
+ return;
1824
+ }
1825
+ } else {
1826
+ var dialogPages = currentPage.getDialogPages();
1827
+ for (var i = dialogPages.length - 1; i >= 0; i--) {
1828
+ closeNativeDialogPage(dialogPages[i], (options === null || options === void 0 ? void 0 : options.animationType) || "auto", (options === null || options === void 0 ? void 0 : options.animationDuration) || ANI_DURATION);
1829
+ if (i > 0) {
1830
+ invokeHook(dialogPages[i - 1].$vm, ON_SHOW);
1831
+ }
1832
+ dialogPages[i] = null;
1833
+ }
1834
+ dialogPages.length = 0;
1835
+ }
1836
+ var successOptions = {
1837
+ errMsg: "closeDialogPage: ok"
1838
+ };
1839
+ options === null || options === void 0 || (_options$success = options.success) === null || _options$success === void 0 || _options$success.call(options, successOptions);
1840
+ options === null || options === void 0 || (_options$complete = options.complete) === null || _options$complete === void 0 || _options$complete.call(options, successOptions);
1841
+ };
1842
+ function triggerFailCallback$1(options, errMsg) {
1843
+ var _options$fail, _options$complete2;
1844
+ var failOptions = new UniError("uni-openDialogPage", 4, "openDialogPage: fail, ".concat(errMsg));
1845
+ options === null || options === void 0 || (_options$fail = options.fail) === null || _options$fail === void 0 || _options$fail.call(options, failOptions);
1846
+ options === null || options === void 0 || (_options$complete2 = options.complete) === null || _options$complete2 === void 0 || _options$complete2.call(options, failOptions);
1847
+ }
1848
+ function parsePageStyle(route) {
1849
+ var style = /* @__PURE__ */ new Map();
1850
+ var routeMeta = route.meta;
1851
+ var routeKeys = [
1852
+ "id",
1853
+ "route",
1854
+ "i18n",
1855
+ "isQuit",
1856
+ "isEntry",
1857
+ "isTabBar",
1858
+ "tabBarIndex",
1859
+ "tabBarText",
1860
+ "windowTop",
1861
+ "topWindow",
1862
+ "leftWindow",
1863
+ "rightWindow",
1864
+ "eventChannel",
1865
+ // 忽略 initRouteMeta产生的 navigationBar 对象
1866
+ "navigationBar"
1867
+ ];
1868
+ var navKeys = ["navigationBarTitleText", "navigationBarBackgroundColor", "navigationBarTextStyle", "navigationStyle"];
1869
+ normalizePageStyles(routeMeta, __uniConfig.themeConfig, getAppThemeFallbackOS());
1870
+ Object.keys(routeMeta).forEach((key) => {
1871
+ if (!routeKeys.includes(key) && !navKeys.includes(key)) {
1872
+ style.set(key, routeMeta[key]);
1873
+ }
1874
+ });
1875
+ var navigationBar = {};
1876
+ navKeys.forEach((key) => {
1877
+ if (key in routeMeta) {
1878
+ navigationBar[key] = routeMeta[key];
1879
+ }
1880
+ });
1881
+ if (Object.keys(navigationBar).length > 0) {
1882
+ if (navigationBar.navigationBarTextStyle !== "custom" && !routeMeta.isQuit && routeMeta.route !== __uniConfig.realEntryPagePath) {
1883
+ style.set("navigationBarAutoBackButton", true);
1884
+ }
1885
+ Object.keys(navigationBar).forEach((key) => {
1886
+ style.set(key, navigationBar[key]);
1887
+ });
1888
+ }
1889
+ return style;
1890
+ }
1891
+ function invokeMountedJobs(proxy2) {
1892
+ var {
1893
+ mountedJobs
1894
+ } = proxy2.$;
1895
+ if (mountedJobs) {
1896
+ var jobs = mountedJobs.slice();
1897
+ mountedJobs.length = 0;
1898
+ jobs.forEach((job) => job());
1899
+ }
1900
+ }
1901
+ function registerPage(_ref, onCreated) {
1902
+ var {
1903
+ url,
1904
+ path,
1905
+ query,
1906
+ openType,
1907
+ webview,
1908
+ nvuePageVm,
1909
+ eventChannel,
1910
+ onRegistered
1911
+ } = _ref;
1912
+ var delay = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0;
1913
+ var id2 = genWebviewId();
1914
+ var routeOptions = initRouteOptions(path, openType);
1915
+ var pageStyle = parsePageStyle(routeOptions);
1916
+ if (openType === "reLaunch") {
1917
+ pageStyle.set("disableSwipeBack", true);
1918
+ }
1919
+ var nativePage = getPageManager().createPage(url, id2.toString(), pageStyle);
1920
+ if (onCreated) {
1921
+ onCreated(nativePage);
1922
+ }
1923
+ routeOptions.meta.id = parseInt(nativePage.pageId);
1924
+ var route = path.slice(1);
1925
+ var pageInstance = initPageInternalInstance(
1926
+ openType,
1927
+ url,
1928
+ query,
1929
+ routeOptions.meta,
1930
+ eventChannel,
1931
+ // TODO ThemeMode
1932
+ "light"
1933
+ );
1934
+ function handleHomeDialogPages(homePage, sourceDialogPages, targetDialogPages) {
1935
+ sourceDialogPages.forEach((dialogPage) => {
1936
+ dialogPage.getParentPage = () => homePage;
1937
+ targetDialogPages.push(dialogPage);
1938
+ });
1939
+ sourceDialogPages.length = 0;
1940
+ }
1941
+ function fn() {
1942
+ createVuePage(id2, route, query, pageInstance, {}, nativePage).then((pageComponentPublicInstance) => {
1943
+ var pages2 = getCurrentPages();
1944
+ if (pages2.length === 1) {
1945
+ var homePage = pages2[0];
1946
+ var sourceDialogPages = [];
1947
+ var targetDialogPages = [];
1948
+ if (homeDialogPages.length) {
1949
+ sourceDialogPages = homeDialogPages;
1950
+ targetDialogPages = homePage.getDialogPages();
1951
+ }
1952
+ if (homeSystemDialogPages.length) {
1953
+ sourceDialogPages = homeSystemDialogPages;
1954
+ targetDialogPages = homePage.__$$getSystemDialogPages();
1955
+ }
1956
+ handleHomeDialogPages(homePage, sourceDialogPages, targetDialogPages);
1957
+ }
1958
+ nativePage.addPageEventListener(ON_POP_GESTURE, function(e) {
1959
+ uni.navigateBack({
1960
+ from: "popGesture",
1961
+ fail(e2) {
1962
+ if (e2.errMsg.endsWith("cancel")) {
1963
+ nativePage.show();
1964
+ }
1965
+ }
1966
+ });
1967
+ });
1968
+ nativePage.addPageEventListener(ON_UNLOAD, (_) => {
1969
+ invokeHook(pageComponentPublicInstance, ON_UNLOAD);
1970
+ });
1971
+ nativePage.addPageEventListener(ON_READY, (_) => {
1972
+ {
1973
+ invokeMountedJobs(pageComponentPublicInstance);
1974
+ }
1975
+ invokePageReadyHooks(pageComponentPublicInstance);
1976
+ invokeHook(pageComponentPublicInstance, ON_READY);
1977
+ });
1978
+ nativePage.addPageEventListener(ON_PAGE_SCROLL, (arg) => {
1979
+ invokeHook(pageComponentPublicInstance, ON_PAGE_SCROLL, {
1980
+ scrollTop: arg.scrollTop
1981
+ });
1982
+ });
1983
+ nativePage.addPageEventListener(ON_PULL_DOWN_REFRESH, (_) => {
1984
+ invokeHook(pageComponentPublicInstance, ON_PULL_DOWN_REFRESH);
1985
+ });
1986
+ nativePage.addPageEventListener(ON_REACH_BOTTOM, (_) => {
1987
+ invokeHook(pageComponentPublicInstance, ON_REACH_BOTTOM);
1988
+ });
1989
+ nativePage.addPageEventListener(ON_RESIZE, (arg) => {
1990
+ var args = {
1991
+ deviceOrientation: arg.deviceOrientation,
1992
+ size: {
1993
+ windowWidth: arg.size.windowWidth,
1994
+ windowHeight: arg.size.windowHeight,
1995
+ screenWidth: arg.size.screenWidth,
1996
+ screenHeight: arg.size.screenHeight
1997
+ }
1998
+ };
1999
+ invokeHook(pageComponentPublicInstance, ON_RESIZE, args);
2000
+ });
2001
+ nativePage.startRender();
2002
+ onRegistered === null || onRegistered === void 0 || onRegistered(nativePage);
2003
+ });
2004
+ }
2005
+ if (delay) {
2006
+ setTimeout(fn, delay);
2007
+ } else {
2008
+ fn();
2009
+ }
2010
+ return nativePage;
2011
+ }
2012
+ function registerDialogPage(_ref2, dialogPage, onCreated) {
2013
+ var _uniRoutes$find;
2014
+ var {
2015
+ url,
2016
+ path,
2017
+ query,
2018
+ openType,
2019
+ eventChannel,
2020
+ onRegistered
2021
+ } = _ref2;
2022
+ var delay = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : 0;
2023
+ var id2 = genWebviewId();
2024
+ var routeOptions = initRouteOptions(path, openType);
2025
+ var pageStyle = parsePageStyle(routeOptions);
2026
+ var routePageMeta = (_uniRoutes$find = __uniRoutes.find((route2) => route2.path === path)) === null || _uniRoutes$find === void 0 ? void 0 : _uniRoutes$find.meta;
2027
+ if (!(routePageMeta !== null && routePageMeta !== void 0 && routePageMeta.navigationStyle)) {
2028
+ pageStyle.set("navigationStyle", "custom");
2029
+ }
2030
+ if (!(routePageMeta !== null && routePageMeta !== void 0 && routePageMeta.backgroundColorContent)) {
2031
+ pageStyle.set("backgroundColorContent", "transparent");
2032
+ }
2033
+ if (typeof pageStyle.get("disableSwipeBack") !== "boolean") {
2034
+ pageStyle.set("disableSwipeBack", true);
2035
+ }
2036
+ var parentPage = dialogPage.getParentPage();
2037
+ var createDialogPage = getPageManager().createDialogPage;
2038
+ var isHarmony = createDialogPage.length === 6;
2039
+ var nativePage = isHarmony ? createDialogPage(url, id2.toString(), pageStyle, parentPage === null || parentPage === void 0 ? void 0 : parentPage.getNativePage()) : createDialogPage(
2040
+ // @ts-expect-error
2041
+ parentPage ? parentPage.__nativePageId : "",
2042
+ id2.toString(),
2043
+ url,
2044
+ pageStyle
2045
+ );
2046
+ if (onCreated) {
2047
+ onCreated(nativePage);
2048
+ }
2049
+ routeOptions.meta.id = parseInt(nativePage.pageId);
2050
+ var route = path.startsWith(SYSTEM_DIALOG_PAGE_PATH_STARTER) ? path : path.slice(1);
2051
+ var pageInstance = initPageInternalInstance(
2052
+ openType,
2053
+ url,
2054
+ query,
2055
+ routeOptions.meta,
2056
+ eventChannel,
2057
+ // TODO ThemeMode
2058
+ "light"
2059
+ );
2060
+ function fn() {
2061
+ createVuePage(id2, route, query, pageInstance, {}, nativePage).then((pageComponentPublicInstance) => {
2062
+ nativePage.addPageEventListener(ON_POP_GESTURE, function(e) {
2063
+ closeDialogPage({
2064
+ dialogPage
2065
+ });
2066
+ });
2067
+ nativePage.addPageEventListener(ON_UNLOAD, (_) => {
2068
+ invokeHook(pageComponentPublicInstance, ON_UNLOAD);
2069
+ dialogPageTriggerParentShow(dialogPage, isSystemDialogPage(dialogPage) ? 1 : 0);
2070
+ });
2071
+ nativePage.addPageEventListener(ON_READY, (_) => {
2072
+ {
2073
+ invokeMountedJobs(pageComponentPublicInstance);
2074
+ }
2075
+ invokePageReadyHooks(pageComponentPublicInstance);
2076
+ invokeHook(pageComponentPublicInstance, ON_READY);
2077
+ });
2078
+ nativePage.addPageEventListener(ON_PAGE_SCROLL, (arg) => {
2079
+ invokeHook(pageComponentPublicInstance, ON_PAGE_SCROLL, arg);
2080
+ });
2081
+ nativePage.addPageEventListener(ON_PULL_DOWN_REFRESH, (_) => {
2082
+ invokeHook(pageComponentPublicInstance, ON_PULL_DOWN_REFRESH);
2083
+ });
2084
+ nativePage.addPageEventListener(ON_REACH_BOTTOM, (_) => {
2085
+ invokeHook(pageComponentPublicInstance, ON_REACH_BOTTOM);
2086
+ });
2087
+ nativePage.addPageEventListener(ON_RESIZE, (arg) => {
2088
+ var args = {
2089
+ deviceOrientation: arg.deviceOrientation,
2090
+ size: {
2091
+ windowWidth: arg.size.windowWidth,
2092
+ windowHeight: arg.size.windowHeight,
2093
+ screenWidth: arg.size.screenWidth,
2094
+ screenHeight: arg.size.screenHeight
2095
+ }
2096
+ };
2097
+ invokeHook(pageComponentPublicInstance, ON_RESIZE, args);
2098
+ });
2099
+ nativePage.startRender();
2100
+ });
2101
+ }
2102
+ if (delay) {
2103
+ setTimeout(fn, delay);
2104
+ } else {
2105
+ fn();
2106
+ }
2107
+ return nativePage;
2108
+ }
2109
+ function createVuePage(__pageId, __pagePath, __pageQuery, __pageInstance, pageOptions, nativePage) {
2110
+ var pageNode = nativePage.document.body;
2111
+ var app = getVueApp();
2112
+ var component = pagesMap.get(__pagePath)();
2113
+ var mountPage = (component2) => app.mountPage(component2, extend({
2114
+ __pageId,
2115
+ __pagePath,
2116
+ __pageQuery,
2117
+ __pageInstance
2118
+ }, __pageQuery), pageNode);
2119
+ if (isPromise(component)) {
2120
+ return component.then((component2) => mountPage(component2)).catch((err) => {
2121
+ console.error(err);
2122
+ throw err;
2123
+ });
2124
+ }
2125
+ return {
2126
+ then(fn) {
2127
+ return fn(mountPage(component));
2128
+ }
2129
+ };
2130
+ }
2131
+ var isInitEntryPage = false;
2132
+ function initEntry(app) {
2133
+ if (isInitEntryPage) {
2134
+ return;
2135
+ }
2136
+ isInitEntryPage = true;
2137
+ var entryPagePath;
2138
+ var entryPageQuery;
2139
+ var redirectInfo = app.getRedirectInfo();
2140
+ if (redirectInfo.size > 0) {
2141
+ var {
2142
+ path,
2143
+ query
2144
+ /* referrerInfo, appScheme, appLink */
2145
+ } = parseRedirectInfo(app);
2146
+ if (path) {
2147
+ entryPagePath = path;
2148
+ entryPageQuery = query;
2149
+ }
2150
+ }
2151
+ if (!entryPagePath || entryPagePath === __uniConfig.entryPagePath) {
2152
+ if (entryPageQuery) {
2153
+ __uniConfig.entryPageQuery = entryPageQuery;
2154
+ }
2155
+ return;
2156
+ }
2157
+ var entryRoute = addLeadingSlash(entryPagePath);
2158
+ var routeOptions = getRouteOptions(entryRoute);
2159
+ if (!routeOptions) {
2160
+ return;
2161
+ }
2162
+ if (!routeOptions.meta.isTabBar) {
2163
+ __uniConfig.realEntryPagePath = __uniConfig.realEntryPagePath || __uniConfig.entryPagePath;
2164
+ }
2165
+ __uniConfig.entryPagePath = entryPagePath;
2166
+ __uniConfig.entryPageQuery = entryPageQuery;
2167
+ }
2168
+ function initGlobalEvent(app) {
2169
+ app.addKeyEventListener(ON_BACK_BUTTON, () => {
2170
+ var currentPage = getCurrentPage();
2171
+ if (currentPage) {
2172
+ var systemDialogPages = getSystemDialogPages(currentPage);
2173
+ var dialogPages = currentPage.getDialogPages();
2174
+ if (systemDialogPages.length > 0 || dialogPages.length > 0) {
2175
+ var lastSystemDialog = systemDialogPages[systemDialogPages.length - 1];
2176
+ var lastDialog = dialogPages[dialogPages.length - 1];
2177
+ if (!systemDialogPages.length) {
2178
+ handleDialogPageBack(lastDialog);
2179
+ } else if (!dialogPages.length) {
2180
+ handleDialogPageBack(lastSystemDialog);
2181
+ } else {
2182
+ handleDialogPageBack(parseInt(lastDialog.vm.$nativePage.pageId) > parseInt(lastSystemDialog.vm.$nativePage.pageId) ? lastDialog : lastSystemDialog);
2183
+ }
2184
+ return true;
2185
+ }
2186
+ }
2187
+ backbuttonListener();
2188
+ return true;
2189
+ });
2190
+ }
2191
+ function handleDialogPageBack(dialogPage) {
2192
+ var onBackPressRes = invokeHook(dialogPage.vm, ON_BACK_PRESS, {
2193
+ from: "navigateBack"
2194
+ });
2195
+ if (onBackPressRes !== true) {
2196
+ closeDialogPage({
2197
+ dialogPage,
2198
+ animationType: "auto"
2199
+ });
2200
+ }
2201
+ }
2202
+ function removeUrlWrap(source) {
2203
+ if (source.startsWith("url(")) {
2204
+ if (source.split("format(").length > 1) {
2205
+ source = source.split("format(")[0].trim();
2206
+ }
2207
+ source = source.substring(4, source.length - 1);
2208
+ }
2209
+ if (source.startsWith('"') || source.startsWith("'")) {
2210
+ source = source.substring(1, source.length - 1);
2211
+ }
2212
+ return source;
2213
+ }
2214
+ function getLoadFontFaceOptions(options, res) {
2215
+ return {
2216
+ family: options.family,
2217
+ source: options.source,
2218
+ success: (_) => {
2219
+ res.resolve(null);
2220
+ },
2221
+ fail: (error) => {
2222
+ res.reject(
2223
+ // new LoadFontFaceErrorImpl(
2224
+ error.errMsg,
2225
+ error.errCode
2226
+ // )
2227
+ );
2228
+ }
2229
+ };
2230
+ }
2231
+ var loadFontFace = /* @__PURE__ */ defineAsyncApi(API_LOAD_FONT_FACE, (options, res) => {
2232
+ options.source = removeUrlWrap(options.source);
2233
+ if (options.global === true) {
2234
+ var app = getNativeApp();
2235
+ var fontInfo = getLoadFontFaceOptions(options, res);
2236
+ app.loadFontFace(fontInfo);
2237
+ } else {
2238
+ var page = getCurrentPage().vm;
2239
+ if (!page) {
2240
+ res.reject("page is not ready", 99);
2241
+ return;
2242
+ }
2243
+ if (page.$fontFamilySet.has(options.family)) {
2244
+ return;
2245
+ }
2246
+ page.$fontFamilySet.add(options.family);
2247
+ var _fontInfo = getLoadFontFaceOptions(options, res);
2248
+ page.$nativePage.loadFontFace(_fontInfo);
2249
+ }
2250
+ });
2251
+ function loadFontFaceByStyles(styles, global) {
2252
+ styles = Array.isArray(styles) ? styles : [styles];
2253
+ var fontFaceStyle = [];
2254
+ styles.forEach((style) => {
2255
+ if (style["@FONT-FACE"]) {
2256
+ fontFaceStyle.push(...style["@FONT-FACE"]);
2257
+ }
2258
+ });
2259
+ if (fontFaceStyle.length === 0)
2260
+ return;
2261
+ fontFaceStyle.forEach((style) => {
2262
+ var fontFamily = style["fontFamily"];
2263
+ var fontWeight = style["fontWeight"];
2264
+ var fontStyle = style["fontStyle"];
2265
+ var fontVariant = style["fontVariant"];
2266
+ var src = style["src"];
2267
+ if (fontFamily != null && src != null) {
2268
+ loadFontFace({
2269
+ global,
2270
+ family: fontFamily,
2271
+ source: src,
2272
+ desc: {
2273
+ style: fontStyle,
2274
+ weight: fontWeight,
2275
+ variant: fontVariant
2276
+ }
2277
+ });
2278
+ } else {
2279
+ console.warn("loadFontFace: fail, font-family or src is null");
2280
+ }
2281
+ });
2282
+ }
2283
+ var API_GET_LAUNCH_OPTIONS_SYNC = "getLaunchOptionsSync";
2284
+ var launchOptions = {
2285
+ path: "",
2286
+ appScheme: null,
2287
+ appLink: null
2288
+ };
2289
+ var setLaunchOptionsSync = function(options) {
2290
+ launchOptions = options;
2291
+ };
2292
+ var getLaunchOptionsSync = /* @__PURE__ */ defineSyncApi(API_GET_LAUNCH_OPTIONS_SYNC, () => {
2293
+ var baseInfo = getLaunchOptions();
2294
+ return Object.assign({}, baseInfo, launchOptions);
2295
+ });
2296
+ var API_GET_ENTER_OPTIONS_SYNC = "getEnterOptionsSync";
2297
+ var enterOptions = {
2298
+ path: "",
2299
+ appScheme: null,
2300
+ appLink: null
2301
+ };
2302
+ var setEnterOptionsSync = function(options) {
2303
+ enterOptions = options;
2304
+ };
2305
+ var getEnterOptionsSync = /* @__PURE__ */ defineSyncApi(API_GET_ENTER_OPTIONS_SYNC, () => {
2306
+ var baseInfo = getLaunchOptions();
2307
+ return Object.assign({}, baseInfo, enterOptions);
2308
+ });
2309
+ function initAppLaunch(appVm) {
2310
+ var _app$getLaunchOptions;
2311
+ injectAppHooks(appVm.$);
2312
+ var {
2313
+ entryPagePath,
2314
+ entryPageQuery,
2315
+ referrerInfo
2316
+ } = __uniConfig;
2317
+ var args = initLaunchOptions({
2318
+ path: entryPagePath,
2319
+ query: entryPageQuery,
2320
+ referrerInfo
2321
+ });
2322
+ var app = getNativeApp();
2323
+ var schemaLink = (_app$getLaunchOptions = app.getLaunchOptionsSync()) !== null && _app$getLaunchOptions !== void 0 ? _app$getLaunchOptions : {
2324
+ appScheme: "",
2325
+ appLink: ""
2326
+ };
2327
+ var appScheme = schemaLink.appScheme == null ? null : schemaLink.appScheme.length === 0 ? null : schemaLink.appScheme;
2328
+ var appLink = schemaLink.appLink == null ? null : schemaLink.appLink.length === 0 ? null : schemaLink.appLink;
2329
+ var launchOption = extend({}, args, {
2330
+ appScheme,
2331
+ appLink
2332
+ });
2333
+ setLaunchOptionsSync(launchOption);
2334
+ invokeHook(appVm, ON_LAUNCH, launchOption);
2335
+ var showOption = extend({}, launchOption);
2336
+ setEnterOptionsSync(showOption);
2337
+ invokeHook(appVm, ON_SHOW, showOption);
2338
+ var appStyle = appVm.$options.styles;
2339
+ if (appStyle) {
2340
+ loadFontFaceByStyles(appStyle, true);
2341
+ }
2342
+ useTheme();
2343
+ }
2344
+ function initAppError(appVm, nativeApp2) {
2345
+ nativeApp2.addEventListener(ON_ERROR, function(errorEvent) {
2346
+ invokeHook(appVm, ON_ERROR, errorEvent.error);
2347
+ });
2348
+ }
2349
+ var redirectTo = /* @__PURE__ */ defineAsyncApi(API_REDIRECT_TO, (_ref, _ref2) => {
2350
+ var {
2351
+ url
2352
+ } = _ref;
2353
+ var {
2354
+ resolve,
2355
+ reject
2356
+ } = _ref2;
2357
+ var {
2358
+ path,
2359
+ query
2360
+ } = parseUrl(url);
2361
+ if (!entryPageState.isReady) {
2362
+ redirectToPagesBeforeEntryPages.push({
2363
+ args: {
2364
+ url,
2365
+ path,
2366
+ query
2367
+ },
2368
+ handler: {
2369
+ resolve,
2370
+ reject
2371
+ }
2372
+ });
2373
+ return;
2374
+ }
2375
+ _redirectTo({
2376
+ url,
2377
+ path,
2378
+ query
2379
+ }).then(resolve).catch(reject);
2380
+ }, RedirectToProtocol, RedirectToOptions);
2381
+ function _redirectTo(_ref3) {
2382
+ var {
2383
+ url,
2384
+ path,
2385
+ query
2386
+ } = _ref3;
2387
+ return new Promise((resolve) => {
2388
+ setTimeout(() => {
2389
+ var lastPage = getCurrentPage().vm;
2390
+ invokeAfterRouteHooks(API_REDIRECT_TO);
2391
+ showWebview(registerPage({
2392
+ url,
2393
+ path,
2394
+ query,
2395
+ openType: isTabPage(lastPage) || getAllPages().length === 1 ? "reLaunch" : "redirectTo",
2396
+ onRegistered() {
2397
+ if (lastPage) {
2398
+ removePages(lastPage);
2399
+ }
2400
+ resolve(void 0);
2401
+ setStatusBarStyle();
2402
+ }
2403
+ }), "none", 0);
2404
+ invokeBeforeRouteHooks(API_REDIRECT_TO);
2405
+ }, 0);
2406
+ });
2407
+ }
2408
+ function removePages(currentPage) {
2409
+ if (isTabPage(currentPage)) {
2410
+ var pages2 = getAllPages().slice(0, -1);
2411
+ pages2.forEach((page) => {
2412
+ closePage(page, "none");
2413
+ });
2414
+ } else {
2415
+ closePage(currentPage, "none");
2416
+ }
2417
+ }
2418
+ var $reLaunch = (_ref, _ref2) => {
2419
+ var {
2420
+ url
2421
+ } = _ref;
2422
+ var {
2423
+ resolve,
2424
+ reject
2425
+ } = _ref2;
2426
+ var {
2427
+ path,
2428
+ query
2429
+ } = parseUrl(url);
2430
+ if (!entryPageState.isReady) {
2431
+ reLaunchPagesBeforeEntryPages.push({
2432
+ args: {
2433
+ url
2434
+ },
2435
+ handler: {
2436
+ resolve,
2437
+ reject
2438
+ }
2439
+ });
2440
+ return;
2441
+ }
2442
+ _reLaunch({
2443
+ url,
2444
+ path,
2445
+ query
2446
+ }).then(resolve).catch(reject);
2447
+ };
2448
+ function _reLaunch(_ref3) {
2449
+ var {
2450
+ url,
2451
+ path,
2452
+ query
2453
+ } = _ref3;
2454
+ return new Promise((resolve) => {
2455
+ setTimeout(() => {
2456
+ var pages2 = getAllPages().slice(0);
2457
+ var selected = getTabIndex(path);
2458
+ function callback() {
2459
+ pages2.forEach((page) => closePage(page, "none"));
2460
+ pages2.length = 0;
2461
+ resolve(void 0);
2462
+ setStatusBarStyle();
2463
+ }
2464
+ if (selected === -1) {
2465
+ showWebview(registerPage({
2466
+ url,
2467
+ path,
2468
+ query,
2469
+ openType: "reLaunch",
2470
+ onRegistered: callback
2471
+ }), "none", 0);
2472
+ } else {
2473
+ switchSelect(selected, path, query, true, callback);
2474
+ }
2475
+ }, 0);
2476
+ });
2477
+ }
2478
+ var reLaunch = /* @__PURE__ */ defineAsyncApi(API_RE_LAUNCH, $reLaunch, ReLaunchProtocol, ReLaunchOptions);
2479
+ function closePage(page, animationType, animationDuration) {
2480
+ if (page.$page) {
2481
+ clearDialogPages(page.$page);
2482
+ }
2483
+ var nativePage = page.$nativePage;
2484
+ nativePage && closeWebview(nativePage, animationType, animationDuration);
2485
+ removePage(page);
2486
+ removeTabBarPage(page);
2487
+ }
2488
+ function updateEntryPageIsReady(path) {
2489
+ if (!getCurrentPage() && path === addLeadingSlash(__uniConfig.entryPagePath)) {
2490
+ entryPageState.isReady = true;
2491
+ }
2492
+ }
2493
+ function handleBeforeEntryPageRoutes() {
2494
+ if (entryPageState.handledBeforeEntryPageRoutes) {
2495
+ return;
2496
+ }
2497
+ entryPageState.handledBeforeEntryPageRoutes = true;
2498
+ var navigateToPages = [...navigateToPagesBeforeEntryPages];
2499
+ navigateToPagesBeforeEntryPages.length = 0;
2500
+ navigateToPages.forEach((_ref) => {
2501
+ var {
2502
+ args,
2503
+ handler
2504
+ } = _ref;
2505
+ return $navigateTo(args, handler);
2506
+ });
2507
+ var switchTabPages = [...switchTabPagesBeforeEntryPages];
2508
+ switchTabPagesBeforeEntryPages.length = 0;
2509
+ switchTabPages.forEach((_ref2) => {
2510
+ var {
2511
+ args,
2512
+ handler
2513
+ } = _ref2;
2514
+ return $switchTab(args, handler);
2515
+ });
2516
+ var redirectToPages = [...redirectToPagesBeforeEntryPages];
2517
+ redirectToPagesBeforeEntryPages.length = 0;
2518
+ redirectToPages.forEach((_ref3) => {
2519
+ var {
2520
+ args,
2521
+ handler
2522
+ } = _ref3;
2523
+ return _redirectTo(args).then(handler.resolve).catch(handler.reject);
2524
+ });
2525
+ var reLaunchPages = [...reLaunchPagesBeforeEntryPages];
2526
+ reLaunchPagesBeforeEntryPages.length = 0;
2527
+ reLaunchPages.forEach((_ref4) => {
2528
+ var {
2529
+ args,
2530
+ handler
2531
+ } = _ref4;
2532
+ return $reLaunch(args, handler);
2533
+ });
2534
+ }
2535
+ function closePreSystemDialogPage(dialogPages, type) {
2536
+ var targetSystemDialogPages = dialogPages.filter((page) => page.route.startsWith(type));
2537
+ if (targetSystemDialogPages.length > 1) {
2538
+ setTimeout(() => {
2539
+ closeNativeDialogPage(targetSystemDialogPages[0]);
2540
+ dialogPages.splice(dialogPages.indexOf(targetSystemDialogPages[0]), 1);
2541
+ }, 150);
2542
+ }
2543
+ }
2544
+ function clearDialogPages(uniPage) {
2545
+ var dialogPages = uniPage.getDialogPages();
2546
+ for (var i = dialogPages.length - 1; i >= 0; i--) {
2547
+ closeNativeDialogPage(dialogPages[i]);
2548
+ if (i > 0) {
2549
+ invokeHook(dialogPages[i - 1].vm, ON_SHOW);
2550
+ }
2551
+ }
2552
+ var systemDialogPages = getSystemDialogPages(uniPage);
2553
+ for (var _i = 0; _i < systemDialogPages.length; _i++) {
2554
+ closeNativeDialogPage(systemDialogPages[_i]);
2555
+ }
2556
+ systemDialogPages.length = 0;
2557
+ }
2558
+ var $switchTab = (args, _ref) => {
2559
+ var {
2560
+ resolve,
2561
+ reject
2562
+ } = _ref;
2563
+ var {
2564
+ url
2565
+ } = args;
2566
+ var {
2567
+ path,
2568
+ query
2569
+ } = parseUrl(url);
2570
+ updateEntryPageIsReady(path);
2571
+ if (!entryPageState.isReady) {
2572
+ switchTabPagesBeforeEntryPages.push({
2573
+ args,
2574
+ handler: {
2575
+ resolve,
2576
+ reject
2577
+ }
2578
+ });
2579
+ return;
2580
+ }
2581
+ _switchTab({
2582
+ url,
2583
+ path,
2584
+ query
2585
+ }).then(resolve).catch(reject);
2586
+ handleBeforeEntryPageRoutes();
2587
+ };
2588
+ var switchTab = /* @__PURE__ */ defineAsyncApi(API_SWITCH_TAB, $switchTab, SwitchTabProtocol, SwitchTabOptions);
2589
+ function _switchTab(_ref2) {
2590
+ var {
2591
+ url,
2592
+ path,
2593
+ query
2594
+ } = _ref2;
2595
+ var selected = getTabIndex(path);
2596
+ if (selected == -1) {
2597
+ return Promise.reject("tab ".concat(path, " not found"));
2598
+ }
2599
+ var pages2 = getCurrentBasePages();
2600
+ return new Promise((resolve) => {
2601
+ setTimeout(() => {
2602
+ switchSelect(selected, path, query);
2603
+ for (var index2 = pages2.length - 1; index2 >= 0; index2--) {
2604
+ var page = pages2[index2];
2605
+ if (isTabPage(page)) {
2606
+ break;
2607
+ }
2608
+ closePage(page, "none");
2609
+ }
2610
+ resolve(void 0);
2611
+ }, 0);
2612
+ });
2613
+ }
2614
+ var isLaunchWebviewReady = false;
2615
+ function subscribeWebviewReady(_data, pageId) {
2616
+ if (isLaunchWebviewReady) {
2617
+ return;
2618
+ }
2619
+ {
2620
+ isLaunchWebviewReady = true;
2621
+ }
2622
+ onLaunchWebviewReady();
2623
+ }
2624
+ function onLaunchWebviewReady() {
2625
+ var _routeOptions;
2626
+ var entryPagePath = addLeadingSlash(__uniConfig.entryPagePath);
2627
+ var routeOptions = getRouteOptions(entryPagePath);
2628
+ if (!routeOptions) {
2629
+ if (__uniRoutes.length > 0) {
2630
+ entryPagePath = __uniRoutes[0].path;
2631
+ routeOptions = getRouteOptions(addLeadingSlash(entryPagePath));
2632
+ } else {
2633
+ console.error("未匹配到路由,请检查配置");
2634
+ return;
2635
+ }
2636
+ }
2637
+ var args = {
2638
+ url: entryPagePath + (__uniConfig.entryPageQuery || ""),
2639
+ openType: "appLaunch"
2640
+ };
2641
+ var handler = {
2642
+ resolve() {
2643
+ },
2644
+ reject() {
2645
+ }
2646
+ };
2647
+ if ((_routeOptions = routeOptions) !== null && _routeOptions !== void 0 && (_routeOptions = _routeOptions.meta) !== null && _routeOptions !== void 0 && _routeOptions.isTabBar) {
2648
+ return $switchTab(args, handler);
2649
+ }
2650
+ return $navigateTo(args, handler);
2651
+ }
2652
+ function clearWebviewReady() {
2653
+ isLaunchWebviewReady = false;
2654
+ }
2655
+ function initSubscribeHandlers() {
2656
+ subscribeWebviewReady();
2657
+ }
2658
+ function asyncGeneratorStep(n, t, e, r, o, a, c) {
2659
+ try {
2660
+ var i = n[a](c), u = i.value;
2661
+ } catch (n2) {
2662
+ return void e(n2);
2663
+ }
2664
+ i.done ? t(u) : Promise.resolve(u).then(r, o);
2665
+ }
2666
+ function _asyncToGenerator(n) {
2667
+ return function() {
2668
+ var t = this, e = arguments;
2669
+ return new Promise(function(r, o) {
2670
+ var a = n.apply(t, e);
2671
+ function _next(n2) {
2672
+ asyncGeneratorStep(a, r, o, _next, _throw, "next", n2);
2673
+ }
2674
+ function _throw(n2) {
2675
+ asyncGeneratorStep(a, r, o, _next, _throw, "throw", n2);
2676
+ }
2677
+ _next(void 0);
2678
+ });
2679
+ };
2680
+ }
2681
+ function initOn(app, unregisterApp2) {
2682
+ app.addEventListener(ON_SHOW, /* @__PURE__ */ function() {
2683
+ var _ref = _asyncToGenerator(function* (event) {
2684
+ var _getCurrentPage;
2685
+ var app2 = getNativeApp();
2686
+ var MAX_TIMEOUT = 200;
2687
+ function getNewIntent() {
2688
+ return new Promise((resolve, reject) => {
2689
+ var callbackWrapper = null;
2690
+ var handleNewIntent = (newIntent) => {
2691
+ var _newIntent$appScheme, _newIntent$appLink;
2692
+ clearTimeout(timeout);
2693
+ app2.removeEventListener("onNewIntent", callbackWrapper);
2694
+ resolve({
2695
+ appScheme: (_newIntent$appScheme = newIntent.appScheme) !== null && _newIntent$appScheme !== void 0 ? _newIntent$appScheme : null,
2696
+ appLink: (_newIntent$appLink = newIntent.appLink) !== null && _newIntent$appLink !== void 0 ? _newIntent$appLink : null
2697
+ });
2698
+ };
2699
+ callbackWrapper = app2.addEventListener("onNewIntent", handleNewIntent);
2700
+ var timeout = setTimeout(() => {
2701
+ app2.removeEventListener("onNewIntent", callbackWrapper);
2702
+ var appLink = {
2703
+ appScheme: null,
2704
+ appLink: null
2705
+ };
2706
+ resolve(appLink);
2707
+ }, MAX_TIMEOUT);
2708
+ });
2709
+ }
2710
+ var schemaLink = yield getNewIntent();
2711
+ var showOptions = extend({
2712
+ path: __uniConfig.entryPagePath
2713
+ }, schemaLink);
2714
+ setEnterOptionsSync(showOptions);
2715
+ var page = (_getCurrentPage = getCurrentPage()) === null || _getCurrentPage === void 0 ? void 0 : _getCurrentPage.vm;
2716
+ invokeHook(getApp().vm, ON_SHOW, showOptions);
2717
+ if (page) {
2718
+ invokeHook(page, ON_SHOW);
2719
+ }
2720
+ });
2721
+ return function(_x) {
2722
+ return _ref.apply(this, arguments);
2723
+ };
2724
+ }());
2725
+ app.addEventListener(ON_HIDE, function() {
2726
+ var _getCurrentPage2;
2727
+ var page = (_getCurrentPage2 = getCurrentPage()) === null || _getCurrentPage2 === void 0 ? void 0 : _getCurrentPage2.vm;
2728
+ invokeHook(getApp().vm, ON_HIDE);
2729
+ if (page) {
2730
+ invokeHook(page, ON_HIDE);
2731
+ }
2732
+ });
2733
+ app.addEventListener(ON_EXIT, function() {
2734
+ var appInstance = getApp().vm;
2735
+ var pages2 = getAllPages().slice(0);
2736
+ pages2.forEach((page) => closePage(page, "none"));
2737
+ clearTabBarStatus();
2738
+ clearWebviewReady();
2739
+ resetWebviewId();
2740
+ invokeHook(appInstance, ON_EXIT);
2741
+ unregisterApp2();
2742
+ });
2743
+ }
2744
+ function initService(app, unregisterApp2) {
2745
+ initOn(app, unregisterApp2);
2746
+ }
2747
+ function initNativePage(vm) {
2748
+ var instance = vm.$;
2749
+ if (instance.type.mpType === "app") {
2750
+ return;
2751
+ }
2752
+ var pageId = instance.root.attrs.__pageId;
2753
+ vm.$nativePage = getNativeApp().pageManager.findPageById(pageId + "");
2754
+ if (vm.$page) {
2755
+ vm.$page.__nativePageId = vm.$nativePage.pageId;
2756
+ }
2757
+ }
2758
+ function initFontFace(vm) {
2759
+ var _vm$$options$styles;
2760
+ var instance = vm.$;
2761
+ if (instance.type.mpType === "app") {
2762
+ return;
2763
+ }
2764
+ loadFontFaceByStyles((_vm$$options$styles = vm.$options.styles) !== null && _vm$$options$styles !== void 0 ? _vm$$options$styles : [], false);
2765
+ }
2766
+ function initComponentInstance(app) {
2767
+ app.config.uniX = {
2768
+ beforeSetupPage,
2769
+ initNativePage,
2770
+ initFontFace
2771
+ };
2772
+ !app.vapor && app.mixin({
2773
+ beforeCreate() {
2774
+ initNativePage(this);
2775
+ },
2776
+ beforeMount() {
2777
+ initFontFace(this);
2778
+ }
2779
+ });
2780
+ }
2781
+ var appCtx;
2782
+ var entryPageState = {
2783
+ isReady: false,
2784
+ handledBeforeEntryPageRoutes: false
2785
+ };
2786
+ var navigateToPagesBeforeEntryPages = [];
2787
+ var switchTabPagesBeforeEntryPages = [];
2788
+ var redirectToPagesBeforeEntryPages = [];
2789
+ var reLaunchPagesBeforeEntryPages = [];
2790
+ function initAppVm(appVm) {
2791
+ appVm.$vm = appVm;
2792
+ appVm.$mpType = "app";
2793
+ }
2794
+ function initUniApp(uniApp) {
2795
+ uniApp.vm = appCtx;
2796
+ uniApp.$vm = appCtx;
2797
+ Object.defineProperty(uniApp, "globalData", {
2798
+ get: () => {
2799
+ return appCtx.globalData || {};
2800
+ }
2801
+ });
2802
+ }
2803
+ function registerApp(appVm, nativeApp2, uniApp) {
2804
+ setNativeApp(nativeApp2);
2805
+ initVueApp(appVm);
2806
+ appCtx = appVm;
2807
+ initAppVm(appCtx);
2808
+ initUniApp(uniApp);
2809
+ var defaultApp = {
2810
+ globalData: {}
2811
+ };
2812
+ extend(appCtx, defaultApp);
2813
+ defineGlobalData(appCtx, defaultApp.globalData);
2814
+ initService(nativeApp2, unregisterApp);
2815
+ initEntry(nativeApp2);
2816
+ initEntryPagePath(nativeApp2);
2817
+ initGlobalEvent(nativeApp2);
2818
+ initAppLaunch(appVm);
2819
+ initAppError(appVm, nativeApp2);
2820
+ initSubscribeHandlers();
2821
+ __uniConfig.ready = true;
2822
+ }
2823
+ function unregisterApp() {
2824
+ appCtx.$.appContext.app.unmount();
2825
+ appCtx = void 0;
2826
+ setNativeApp(void 0);
2827
+ __uniConfig.ready = false;
2828
+ }
2829
+ function initApp(app) {
2830
+ initComponentInstance(app);
2831
+ }
2832
+ function initEntryPagePath(app) {
2833
+ var redirectInfo = app.getRedirectInfo();
2834
+ var debugInfo = redirectInfo.get("debug");
2835
+ if (debugInfo) {
2836
+ var url = debugInfo.get("url");
2837
+ if (url && url != __uniConfig.entryPagePath) {
2838
+ __uniConfig.realEntryPagePath = __uniConfig.entryPagePath;
2839
+ var [path, query] = url.split("?");
2840
+ __uniConfig.entryPagePath = path;
2841
+ if (query) {
2842
+ __uniConfig.entryPageQuery = "?".concat(query);
2843
+ }
2844
+ return;
2845
+ }
2846
+ }
2847
+ if (__uniConfig.conditionUrl) {
2848
+ __uniConfig.realEntryPagePath = __uniConfig.entryPagePath;
2849
+ var conditionUrl = __uniConfig.conditionUrl;
2850
+ var [_path, _query] = conditionUrl.split("?");
2851
+ __uniConfig.entryPagePath = _path;
2852
+ if (_query) {
2853
+ __uniConfig.entryPageQuery = "?".concat(_query);
2854
+ }
2855
+ }
2856
+ }
2857
+ var $navigateTo = (args, _ref) => {
2858
+ var {
2859
+ resolve,
2860
+ reject
2861
+ } = _ref;
2862
+ var {
2863
+ url,
2864
+ events,
2865
+ animationType,
2866
+ animationDuration
2867
+ } = args;
2868
+ var {
2869
+ path,
2870
+ query
2871
+ } = parseUrl(url);
2872
+ var [aniType, aniDuration] = initAnimation$1(path, animationType, animationDuration);
2873
+ updateEntryPageIsReady(path);
2874
+ if (!entryPageState.isReady) {
2875
+ navigateToPagesBeforeEntryPages.push({
2876
+ args,
2877
+ handler: {
2878
+ resolve,
2879
+ reject
2880
+ }
2881
+ });
2882
+ return;
2883
+ }
2884
+ _navigateTo({
2885
+ url,
2886
+ path,
2887
+ query,
2888
+ events,
2889
+ aniType,
2890
+ aniDuration
2891
+ }).then(resolve).catch(reject);
2892
+ handleBeforeEntryPageRoutes();
2893
+ };
2894
+ var navigateTo = /* @__PURE__ */ defineAsyncApi(API_NAVIGATE_TO, $navigateTo, NavigateToProtocol, NavigateToOptions);
2895
+ function _navigateTo(_ref2) {
2896
+ var _getCurrentPage;
2897
+ var {
2898
+ url,
2899
+ path,
2900
+ query,
2901
+ events,
2902
+ aniType,
2903
+ aniDuration
2904
+ } = _ref2;
2905
+ var currentPage = (_getCurrentPage = getCurrentPage()) === null || _getCurrentPage === void 0 ? void 0 : _getCurrentPage.vm;
2906
+ var currentRouteType = currentPage == null ? "appLaunch" : API_NAVIGATE_TO;
2907
+ invokeBeforeRouteHooks(currentRouteType);
2908
+ invokeHook(ON_HIDE);
2909
+ var eventChannel = new EventChannel(getWebviewId() + 1, events);
2910
+ return new Promise((resolve) => {
2911
+ setTimeout(() => {
2912
+ var noAnimation = aniType === "none" || aniDuration === 0;
2913
+ function callback(page) {
2914
+ showWebview(page, aniType, aniDuration, () => {
2915
+ invokeAfterRouteHooks(currentRouteType);
2916
+ resolve({
2917
+ eventChannel
2918
+ });
2919
+ setStatusBarStyle();
2920
+ });
2921
+ }
2922
+ registerPage(
2923
+ {
2924
+ url,
2925
+ path,
2926
+ query,
2927
+ openType: "navigateTo",
2928
+ eventChannel,
2929
+ onRegistered(page) {
2930
+ if (noAnimation) {
2931
+ callback(page);
2932
+ }
2933
+ }
2934
+ },
2935
+ noAnimation ? void 0 : callback,
2936
+ // 有动画时延迟创建 vm
2937
+ noAnimation ? 0 : 1
2938
+ );
2939
+ }, 0);
2940
+ });
2941
+ }
2942
+ function initAnimation$1(path, animationType, animationDuration) {
2943
+ if (!getCurrentPage()) {
2944
+ return ["none", 0];
2945
+ }
2946
+ var {
2947
+ globalStyle
2948
+ } = __uniConfig;
2949
+ var meta = getRouteMeta(path);
2950
+ return [animationType || meta.animationType || globalStyle.animationType || ANI_SHOW, animationDuration || meta.animationDuration || globalStyle.animationDuration || ANI_DURATION];
2951
+ }
2952
+ function isDirectPage(page) {
2953
+ var _getCurrentPages$;
2954
+ return !!__uniConfig.realEntryPagePath && ((_getCurrentPages$ = getCurrentPages$1()[0]) === null || _getCurrentPages$ === void 0 ? void 0 : _getCurrentPages$.vm) === page;
2955
+ }
2956
+ function reLaunchEntryPage() {
2957
+ var _uniConfig$entryPage;
2958
+ __uniConfig.entryPagePath = __uniConfig.realEntryPagePath;
2959
+ __uniConfig.realEntryPagePath = "";
2960
+ reLaunch({
2961
+ url: (_uniConfig$entryPage = __uniConfig.entryPagePath) !== null && _uniConfig$entryPage !== void 0 && _uniConfig$entryPage.startsWith("/") ? __uniConfig.entryPagePath : "/" + __uniConfig.entryPagePath
2962
+ });
2963
+ }
2964
+ var navigateBack = /* @__PURE__ */ defineAsyncApi(API_NAVIGATE_BACK, (args, _ref) => {
2965
+ var {
2966
+ resolve,
2967
+ reject
2968
+ } = _ref;
2969
+ var page = getCurrentPage().vm;
2970
+ if (!page) {
2971
+ return reject("getCurrentPages is empty");
2972
+ }
2973
+ if (
2974
+ // popGesture 时不触发 onBackPress 事件,避免引发半屏弹窗这种冲突情况
2975
+ args.from !== "popGesture"
2976
+ ) {
2977
+ var onBackPressRes = invokeHook(page, ON_BACK_PRESS, {
2978
+ from: args.from || "navigateBack"
2979
+ });
2980
+ if (onBackPressRes !== true) {
2981
+ var dialogPages = page.$page.getDialogPages();
2982
+ if (dialogPages.length > 0) {
2983
+ var dialogPage = dialogPages[dialogPages.length - 1];
2984
+ onBackPressRes = invokeHook(dialogPage.$vm, ON_BACK_PRESS, {
2985
+ from: args.from || "navigateBack"
2986
+ });
2987
+ }
2988
+ }
2989
+ if (onBackPressRes === true) {
2990
+ return reject("cancel");
2991
+ }
2992
+ }
2993
+ try {
2994
+ uni.hideToast();
2995
+ uni.hideLoading();
2996
+ } catch (error) {
2997
+ console.warn(error);
2998
+ }
2999
+ if (getPage$BasePage(page).meta.isQuit) {
3000
+ invokeHook(getApp().vm, ON_LAST_PAGE_BACK_PRESS);
3001
+ } else {
3002
+ if (isDirectPage(page)) {
3003
+ return reLaunchEntryPage();
3004
+ } else {
3005
+ var {
3006
+ delta,
3007
+ animationType,
3008
+ animationDuration
3009
+ } = args;
3010
+ back(delta, animationType, animationDuration);
3011
+ }
3012
+ }
3013
+ return resolve();
3014
+ }, NavigateBackProtocol, NavigateBackOptions);
3015
+ function back(delta, animationType, animationDuration) {
3016
+ var pages2 = getCurrentBasePages();
3017
+ var len = pages2.length;
3018
+ var currentPage = pages2[len - 1];
3019
+ if (delta > 1) {
3020
+ pages2.slice(len - delta, len - 1).reverse().forEach((deltaPage) => {
3021
+ clearDialogPages(deltaPage.$page);
3022
+ var webview2 = getNativeApp().pageManager.findPageById(deltaPage.$basePage.id + "");
3023
+ if (webview2) {
3024
+ closeWebview(webview2, "none", 0);
3025
+ }
3026
+ });
3027
+ }
3028
+ var backPage = function(webview2) {
3029
+ if (animationType) {
3030
+ animationDuration = animationDuration || ANI_DURATION;
3031
+ } else {
3032
+ if (currentPage.$basePage.openType === "redirectTo") {
3033
+ animationType = ANI_CLOSE;
3034
+ animationDuration = ANI_DURATION;
3035
+ } else {
3036
+ animationType = "auto";
3037
+ }
3038
+ }
3039
+ closeWebview(webview2, animationType, animationDuration, () => {
3040
+ pages2.slice(len - delta, len).forEach((page) => removePage(page));
3041
+ invokeHook(ON_SHOW);
3042
+ setStatusBarStyle();
3043
+ });
3044
+ };
3045
+ var webview = getNativeApp().pageManager.findPageById(currentPage.$basePage.id + "");
3046
+ clearDialogPages(currentPage.$page);
3047
+ webview && backPage(webview);
3048
+ }
3049
+ var openDialogPage = (options) => {
3050
+ var _options$success, _options$complete;
3051
+ var {
3052
+ url,
3053
+ animationType,
3054
+ animationDuration
3055
+ } = options;
3056
+ if (!options.url) {
3057
+ triggerFailCallback(options, "url is required");
3058
+ return null;
3059
+ }
3060
+ var {
3061
+ path,
3062
+ query
3063
+ } = parseUrl(url);
3064
+ path = normalizeRoute(path);
3065
+ var normalizeUrl = createNormalizeUrl("navigateTo");
3066
+ var errMsg = normalizeUrl(path, {});
3067
+ if (errMsg) {
3068
+ triggerFailCallback(options, errMsg);
3069
+ return null;
3070
+ }
3071
+ var parentPage = options.parentPage || null;
3072
+ var currentPages = getCurrentPages();
3073
+ if (parentPage) {
3074
+ if (currentPages.indexOf(parentPage) === -1) {
3075
+ triggerFailCallback(options, "parentPage is not a valid page");
3076
+ return null;
3077
+ }
3078
+ }
3079
+ if (currentPages.length && !parentPage) {
3080
+ parentPage = currentPages[currentPages.length - 1];
3081
+ }
3082
+ var dialogPage = new UniDialogPageImpl();
3083
+ dialogPage.route = path;
3084
+ dialogPage.getParentPage = () => parentPage;
3085
+ dialogPage.$component = null;
3086
+ dialogPage.$disableEscBack = false;
3087
+ dialogPage.$triggerParentHide = !!options.triggerParentHide;
3088
+ var systemDialog = isSystemDialogPage(dialogPage);
3089
+ if (!systemDialog) {
3090
+ if (!parentPage) {
3091
+ homeDialogPages.push(dialogPage);
3092
+ } else {
3093
+ var dialogPages = parentPage.getDialogPages();
3094
+ dialogPageTriggerPrevDialogPageLifeCycle(parentPage, ON_HIDE);
3095
+ dialogPages.push(dialogPage);
3096
+ }
3097
+ setCurrentNormalDialogPage(dialogPage);
3098
+ } else {
3099
+ var targetSystemDialogPages = [];
3100
+ if (!parentPage) {
3101
+ targetSystemDialogPages = homeSystemDialogPages;
3102
+ } else {
3103
+ dialogPageTriggerPrevDialogPageLifeCycle(parentPage, ON_HIDE);
3104
+ targetSystemDialogPages = getSystemDialogPages(parentPage);
3105
+ }
3106
+ targetSystemDialogPages.push(dialogPage);
3107
+ if (isSystemActionSheetDialogPage(dialogPage)) {
3108
+ closePreSystemDialogPage(targetSystemDialogPages, SYSTEM_DIALOG_ACTION_SHEET_PAGE_PATH);
3109
+ }
3110
+ setCurrentSystemDialogPage(dialogPage);
3111
+ }
3112
+ var [aniType, aniDuration] = initAnimation(
3113
+ path,
3114
+ // @ts-expect-error
3115
+ animationType,
3116
+ animationDuration
3117
+ );
3118
+ var noAnimation = aniType === "none" || aniDuration === 0;
3119
+ function callback(page2) {
3120
+ showWebview(page2, aniType, aniDuration, () => {
3121
+ beforeRoute();
3122
+ dialogPageTriggerParentHide(dialogPage);
3123
+ });
3124
+ }
3125
+ var page = registerDialogPage(
3126
+ {
3127
+ url,
3128
+ path,
3129
+ query,
3130
+ openType: OPEN_DIALOG_PAGE
3131
+ },
3132
+ dialogPage,
3133
+ noAnimation ? void 0 : callback,
3134
+ // 有动画时延迟创建 vm
3135
+ noAnimation ? 0 : 1
3136
+ );
3137
+ if (systemDialog) {
3138
+ dialogPage.__nativeType = "systemDialog";
3139
+ }
3140
+ if (noAnimation) {
3141
+ callback(page);
3142
+ }
3143
+ var successOptions = {
3144
+ errMsg: "openDialogPage:ok"
3145
+ };
3146
+ (_options$success = options.success) === null || _options$success === void 0 || _options$success.call(options, successOptions);
3147
+ (_options$complete = options.complete) === null || _options$complete === void 0 || _options$complete.call(options, successOptions);
3148
+ return dialogPage;
3149
+ };
3150
+ function triggerFailCallback(options, errMsg) {
3151
+ var _options$fail, _options$complete2;
3152
+ var failOptions = new UniError("uni-openDialogPage", 4, "openDialogPage: fail, ".concat(errMsg));
3153
+ (_options$fail = options.fail) === null || _options$fail === void 0 || _options$fail.call(options, failOptions);
3154
+ (_options$complete2 = options.complete) === null || _options$complete2 === void 0 || _options$complete2.call(options, failOptions);
3155
+ }
3156
+ function initAnimation(path, animationType, animationDuration) {
3157
+ if (!getCurrentPage()) {
3158
+ return ["none", 0];
3159
+ }
3160
+ var {
3161
+ globalStyle
3162
+ } = __uniConfig;
3163
+ var meta = getRouteMeta(path);
3164
+ var _animationType = animationType || meta.animationType || globalStyle.animationType || ANI_SHOW;
3165
+ if (_animationType == "pop-in") {
3166
+ _animationType = "none";
3167
+ }
3168
+ return [_animationType, animationDuration || meta.animationDuration || globalStyle.animationDuration || ANI_DURATION];
3169
+ }
3170
+ var setTabBarBadge = /* @__PURE__ */ defineAsyncApi(API_SET_TAB_BAR_BADGE, (_ref, _ref2) => {
3171
+ var {
3172
+ index: index2,
3173
+ text
3174
+ } = _ref;
3175
+ var {
3176
+ resolve,
3177
+ reject
3178
+ } = _ref2;
3179
+ var tabBar = getTabBar();
3180
+ if (tabBar === null) {
3181
+ reject("tabBar is not exist");
3182
+ return;
3183
+ }
3184
+ tabBar.setTabBarBadge(/* @__PURE__ */ new Map([["index", index2], ["text", text]]));
3185
+ resolve();
3186
+ }, SetTabBarBadgeProtocol, SetTabBarBadgeOptions);
3187
+ var removeTabBarBadge = /* @__PURE__ */ defineAsyncApi(API_REMOVE_TAB_BAR_BADGE, (_ref, _ref2) => {
3188
+ var {
3189
+ index: index2
3190
+ } = _ref;
3191
+ var {
3192
+ resolve,
3193
+ reject
3194
+ } = _ref2;
3195
+ var tabBar = getTabBar();
3196
+ if (tabBar === null) {
3197
+ reject("tabBar is not exist");
3198
+ return;
3199
+ }
3200
+ tabBar.removeTabBarBadge(/* @__PURE__ */ new Map([["index", index2]]));
3201
+ resolve();
3202
+ }, RemoveTabBarBadgeProtocol, RemoveTabBarBadgeOptions);
3203
+ var setTabBarItem = /* @__PURE__ */ defineAsyncApi(API_SET_TAB_BAR_ITEM, (_ref, _ref2) => {
3204
+ var {
3205
+ index: index2,
3206
+ text,
3207
+ iconPath,
3208
+ selectedIconPath,
3209
+ pagePath,
3210
+ visible,
3211
+ iconfont
3212
+ } = _ref;
3213
+ var {
3214
+ resolve,
3215
+ reject
3216
+ } = _ref2;
3217
+ var tabBar = getTabBar();
3218
+ if (tabBar === null) {
3219
+ reject("tabBar is not exist");
3220
+ return;
3221
+ }
3222
+ var item = /* @__PURE__ */ new Map([["index", index2], ["text", text], ["iconPath", iconPath], ["selectedIconPath", selectedIconPath], ["pagePath", pagePath], ["visible", visible]]);
3223
+ if (!!iconfont) {
3224
+ var iconfontOptions = iconfont;
3225
+ var _iconfont = /* @__PURE__ */ new Map([["text", iconfontOptions.text], ["selectedText", iconfontOptions.selectedText], ["fontSize", iconfontOptions.fontSize], ["color", iconfontOptions.color], ["selectedColor", iconfontOptions.selectedColor]]);
3226
+ item.set("iconfont", _iconfont);
3227
+ }
3228
+ tabBar.setTabBarItem(item);
3229
+ resolve();
3230
+ }, SetTabBarItemProtocol, SetTabBarItemOptions);
3231
+ var setTabBarStyle = /* @__PURE__ */ defineAsyncApi(API_SET_TAB_BAR_STYLE, (options, _ref) => {
3232
+ var {
3233
+ resolve,
3234
+ reject
3235
+ } = _ref;
3236
+ var tabBar = getTabBar();
3237
+ if (tabBar === null) {
3238
+ reject("tabBar is not exist");
3239
+ return;
3240
+ }
3241
+ var style = /* @__PURE__ */ new Map([["color", options.color], ["selectedColor", options.selectedColor], ["backgroundColor", options.backgroundColor], ["backgroundImage", options.backgroundImage], ["backgroundRepeat", options.backgroundRepeat], ["borderStyle", options.borderStyle], ["borderColor", options.borderColor]]);
3242
+ if (!!options.midButton) {
3243
+ var midButtonOptions = options.midButton;
3244
+ var midButton = /* @__PURE__ */ new Map([["width", midButtonOptions.width], ["height", midButtonOptions.height], ["iconPath", midButtonOptions.iconPath], ["text", midButtonOptions.text], ["iconPath", midButtonOptions.iconPath], ["iconWidth", midButtonOptions.iconWidth], ["backgroundImage", midButtonOptions.backgroundImage]]);
3245
+ if (!!midButtonOptions.iconfont) {
3246
+ var iconfontOptions = midButtonOptions.iconfont;
3247
+ var iconfont = /* @__PURE__ */ new Map([["text", iconfontOptions.text], ["selectedText", iconfontOptions.selectedText], ["fontSize", iconfontOptions.fontSize], ["color", iconfontOptions.color], ["selectedColor", iconfontOptions.selectedColor]]);
3248
+ midButton.set("iconfont", iconfont);
3249
+ }
3250
+ style.set("midButton", midButton);
3251
+ }
3252
+ fixBorderStyle(style);
3253
+ tabBar.setTabBarStyle(style);
3254
+ resolve();
3255
+ }, SetTabBarStyleProtocol, SetTabBarStyleOptions);
3256
+ var hideTabBar = /* @__PURE__ */ defineAsyncApi(API_HIDE_TAB_BAR, (options, _ref) => {
3257
+ var {
3258
+ resolve,
3259
+ reject
3260
+ } = _ref;
3261
+ var tabBar = getTabBar();
3262
+ if (tabBar === null) {
3263
+ reject("tabBar is not exist");
3264
+ return;
3265
+ }
3266
+ tabBar.hideTabBar(/* @__PURE__ */ new Map([["animation", options === null || options === void 0 ? void 0 : options.animation]]));
3267
+ resolve();
3268
+ });
3269
+ var showTabBar = /* @__PURE__ */ defineAsyncApi(API_SHOW_TAB_BAR, (args, _ref) => {
3270
+ var {
3271
+ resolve,
3272
+ reject
3273
+ } = _ref;
3274
+ var tabBar = getTabBar();
3275
+ var animation2 = args && args.animation;
3276
+ if (tabBar === null) {
3277
+ reject("tabBar is not exist");
3278
+ return;
3279
+ }
3280
+ tabBar.showTabBar(/* @__PURE__ */ new Map([["animation", animation2]]));
3281
+ resolve();
3282
+ });
3283
+ var showTabBarRedDot = /* @__PURE__ */ defineAsyncApi(API_SHOW_TAB_BAR_RED_DOT, (_ref, _ref2) => {
3284
+ var {
3285
+ index: index2
3286
+ } = _ref;
3287
+ var {
3288
+ resolve,
3289
+ reject
3290
+ } = _ref2;
3291
+ var tabBar = getTabBar();
3292
+ if (tabBar === null) {
3293
+ reject("tabBar is not exist");
3294
+ return;
3295
+ }
3296
+ tabBar.showTabBarRedDot(/* @__PURE__ */ new Map([["index", index2]]));
3297
+ resolve();
3298
+ }, ShowTabBarRedDotProtocol, ShowTabBarRedDotOptions);
3299
+ var hideTabBarRedDot = /* @__PURE__ */ defineAsyncApi(API_HIDE_TAB_BAR_RED_DOT, (_ref, _ref2) => {
3300
+ var {
3301
+ index: index2
3302
+ } = _ref;
3303
+ var {
3304
+ resolve,
3305
+ reject
3306
+ } = _ref2;
3307
+ var tabBar = getTabBar();
3308
+ if (tabBar === null) {
3309
+ reject("tabBar is not exist");
3310
+ return;
3311
+ }
3312
+ tabBar.hideTabBarRedDot(/* @__PURE__ */ new Map([["index", index2]]));
3313
+ resolve();
3314
+ }, HideTabBarRedDotProtocol, HideTabBarRedDotOptions);
3315
+ var onTabBarMidButtonTap = (cb) => {
3316
+ onTabBarMidButtonTapCallback.push(cb);
3317
+ };
3318
+ var setNavigationBarColor = /* @__PURE__ */ defineAsyncApi(API_SET_NAVIGATION_BAR_COLOR, (_ref, _ref2) => {
3319
+ var {
3320
+ frontColor,
3321
+ backgroundColor
3322
+ } = _ref;
3323
+ var {
3324
+ resolve,
3325
+ reject
3326
+ } = _ref2;
3327
+ var page = getCurrentPage();
3328
+ if (!page) {
3329
+ return reject("getCurrentPages is empty");
3330
+ }
3331
+ var appPage = page.vm.$nativePage;
3332
+ appPage.updateStyle(/* @__PURE__ */ new Map([["navigationBarTextStyle", frontColor == "#000000" ? "black" : "white"], ["navigationBarBackgroundColor", backgroundColor]]));
3333
+ resolve();
3334
+ }, SetNavigationBarColorProtocol, SetNavigationBarColorOptions);
3335
+ var setNavigationBarTitle = /* @__PURE__ */ defineAsyncApi(API_SET_NAVIGATION_BAR_TITLE, (options, _ref) => {
3336
+ var {
3337
+ resolve,
3338
+ reject
3339
+ } = _ref;
3340
+ var page = getCurrentPage().vm;
3341
+ if (page == null) {
3342
+ reject("page is not ready");
3343
+ return;
3344
+ }
3345
+ var appPage = page.$nativePage;
3346
+ appPage.updateStyle(/* @__PURE__ */ new Map([["navigationBarTitleText", options.title]]));
3347
+ resolve();
3348
+ });
3349
+ var getElementById = /* @__PURE__ */ defineSyncApi("getElementById", (id2) => {
3350
+ var page = getCurrentPage();
3351
+ if (page == null) {
3352
+ return null;
3353
+ }
3354
+ return page.getElementById(id2);
3355
+ });
3356
+ function isVueComponent(comp) {
3357
+ var has$instance = typeof comp.$ === "object";
3358
+ var has$el = typeof comp.$el === "object";
3359
+ return has$instance && has$el;
3360
+ }
3361
+ var isFunction = (val) => typeof val === "function";
3362
+ class NodesRefImpl {
3363
+ constructor(selectorQuery, component, selector, single) {
3364
+ this._selectorQuery = selectorQuery;
3365
+ this._component = component;
3366
+ this._selector = selector;
3367
+ this._single = single;
3368
+ }
3369
+ boundingClientRect(callback) {
3370
+ var hasArg = callback === null || typeof callback === "function";
3371
+ if (hasArg) {
3372
+ this._selectorQuery._push(this._selector, this._component, this._single, {
3373
+ id: true,
3374
+ dataset: true,
3375
+ rect: true,
3376
+ size: true
3377
+ }, callback);
3378
+ return this._selectorQuery;
3379
+ } else {
3380
+ return this.boundingClientRect(null);
3381
+ }
3382
+ }
3383
+ fields(fields, callback) {
3384
+ this._selectorQuery._push(this._selector, this._component, this._single, fields, callback);
3385
+ return this._selectorQuery;
3386
+ }
3387
+ scrollOffset(callback) {
3388
+ this._selectorQuery._push(this._selector, this._component, this._single, {
3389
+ id: true,
3390
+ dataset: true,
3391
+ scrollOffset: true
3392
+ }, callback);
3393
+ return this._selectorQuery;
3394
+ }
3395
+ context(callback) {
3396
+ this._selectorQuery._push(this._selector, this._component, this._single, {
3397
+ context: true
3398
+ }, callback);
3399
+ return this._selectorQuery;
3400
+ }
3401
+ /**
3402
+ * fields({node:true})
3403
+ */
3404
+ node(_callback) {
3405
+ this._selectorQuery._push(this._selector, this._component, this._single, {
3406
+ node: true
3407
+ }, _callback);
3408
+ return this._selectorQuery;
3409
+ }
3410
+ }
3411
+ class SelectorQueryImpl {
3412
+ constructor(component) {
3413
+ this._component = null;
3414
+ this._component = component;
3415
+ this._queue = [];
3416
+ this._queueCb = [];
3417
+ }
3418
+ exec(callback) {
3419
+ var _this$_component;
3420
+ (_this$_component = this._component) === null || _this$_component === void 0 || (_this$_component = _this$_component.$) === null || _this$_component === void 0 || _this$_component.$waitNativeRender(() => {
3421
+ requestComponentInfo(this._component, this._queue, (res) => {
3422
+ var queueCbs = this._queueCb;
3423
+ res.forEach((info, _index) => {
3424
+ var queueCb = queueCbs[_index];
3425
+ if (isFunction(queueCb)) {
3426
+ queueCb(info);
3427
+ }
3428
+ });
3429
+ if (callback && isFunction(callback)) {
3430
+ callback(res);
3431
+ }
3432
+ });
3433
+ });
3434
+ return this._nodesRef;
3435
+ }
3436
+ in(component) {
3437
+ if (component && isVueComponent(component)) {
3438
+ this._component = component;
3439
+ }
3440
+ return this;
3441
+ }
3442
+ select(selector) {
3443
+ this._nodesRef = new NodesRefImpl(this, this._component, selector, true);
3444
+ return this._nodesRef;
3445
+ }
3446
+ selectAll(selector) {
3447
+ this._nodesRef = new NodesRefImpl(this, this._component, selector, false);
3448
+ return this._nodesRef;
3449
+ }
3450
+ selectViewport() {
3451
+ this._nodesRef = new NodesRefImpl(this, null, "", true);
3452
+ return this._nodesRef;
3453
+ }
3454
+ _push(selector, component, single, fields, callback) {
3455
+ this._queue.push({
3456
+ component,
3457
+ selector,
3458
+ single,
3459
+ fields
3460
+ });
3461
+ this._queueCb.push(callback);
3462
+ }
3463
+ }
3464
+ class QuerySelectorHelper {
3465
+ constructor(element, vnode, fields) {
3466
+ this._element = element;
3467
+ this._commentStartVNode = vnode;
3468
+ this._fields = fields;
3469
+ }
3470
+ /**
3471
+ * entry
3472
+ */
3473
+ static queryElement(element, selector, all, vnode, fields) {
3474
+ return new QuerySelectorHelper(element, vnode, fields).query(selector, all);
3475
+ }
3476
+ /**
3477
+ * 执行查询
3478
+ * @param selector 选择器
3479
+ * @param all 是否查询所有 selectAll
3480
+ * @returns
3481
+ */
3482
+ query(selector, all) {
3483
+ if (this._element.nodeName == "#comment") {
3484
+ return this.queryFragment(this._element, selector, all);
3485
+ } else {
3486
+ return all ? this.querySelectorAll(this._element, selector) : this.querySelector(this._element, selector);
3487
+ }
3488
+ }
3489
+ queryFragment(el, selector, all) {
3490
+ var current = el.nextSibling;
3491
+ if (current == null) {
3492
+ return null;
3493
+ }
3494
+ if (all) {
3495
+ var result1 = [];
3496
+ while (true) {
3497
+ var queryResult = this.querySelectorAll(current, selector);
3498
+ if (queryResult != null) {
3499
+ result1.push(...queryResult);
3500
+ }
3501
+ current = current.nextSibling;
3502
+ if (current == null || this._commentStartVNode.anchor == current) {
3503
+ break;
3504
+ }
3505
+ }
3506
+ return result1;
3507
+ } else {
3508
+ var result2 = null;
3509
+ while (true) {
3510
+ result2 = this.querySelector(current, selector);
3511
+ current = current.nextSibling;
3512
+ if (result2 != null || current == null || this._commentStartVNode.anchor == current) {
3513
+ break;
3514
+ }
3515
+ }
3516
+ return result2;
3517
+ }
3518
+ }
3519
+ querySelector(element, selector) {
3520
+ var element2 = this.querySelf(element, selector);
3521
+ if (element2 == null) {
3522
+ element2 = element.querySelector(selector);
3523
+ }
3524
+ if (element2 != null) {
3525
+ return this.getNodeInfo(element2);
3526
+ }
3527
+ return null;
3528
+ }
3529
+ querySelectorAll(element, selector) {
3530
+ var nodesInfoArray = [];
3531
+ var element2 = this.querySelf(element, selector);
3532
+ if (element2 != null) {
3533
+ nodesInfoArray.push(this.getNodeInfo(element));
3534
+ }
3535
+ var findNodes = element.querySelectorAll(selector);
3536
+ findNodes === null || findNodes === void 0 || findNodes.forEach((el) => {
3537
+ nodesInfoArray.push(this.getNodeInfo(el));
3538
+ });
3539
+ return nodesInfoArray;
3540
+ }
3541
+ querySelf(element, selector) {
3542
+ if (element == null || selector.length < 2) {
3543
+ return null;
3544
+ }
3545
+ var selectorType = selector.charAt(0);
3546
+ var selectorName = selector.slice(1);
3547
+ if (selectorType == "." && element.classList.includes(selectorName)) {
3548
+ return element;
3549
+ }
3550
+ if (selectorType == "#" && element.getAttribute("id") == selectorName) {
3551
+ return element;
3552
+ }
3553
+ if (selector.toUpperCase() == element.nodeName.toUpperCase()) {
3554
+ return element;
3555
+ }
3556
+ return null;
3557
+ }
3558
+ /**
3559
+ * 查询元素信息
3560
+ * @param element
3561
+ * @returns
3562
+ */
3563
+ getNodeInfo(element) {
3564
+ var _element$getAttribute;
3565
+ if (this._fields.node == true) {
3566
+ var nodeInfo2 = {
3567
+ node: element
3568
+ };
3569
+ if (this._fields.size == true) {
3570
+ var rect2 = element.getBoundingClientRect();
3571
+ nodeInfo2.width = rect2.width;
3572
+ nodeInfo2.height = rect2.height;
3573
+ }
3574
+ return nodeInfo2;
3575
+ }
3576
+ var rect = element.getBoundingClientRect();
3577
+ var nodeInfo = {
3578
+ id: (_element$getAttribute = element.getAttribute("id")) === null || _element$getAttribute === void 0 ? void 0 : _element$getAttribute.toString(),
3579
+ dataset: null,
3580
+ left: rect.left,
3581
+ top: rect.top,
3582
+ right: rect.right,
3583
+ bottom: rect.bottom,
3584
+ width: rect.width,
3585
+ height: rect.height
3586
+ };
3587
+ return nodeInfo;
3588
+ }
3589
+ }
3590
+ function requestComponentInfo(vueComponent, queue2, callback) {
3591
+ var result = [];
3592
+ var el = vueComponent === null || vueComponent === void 0 ? void 0 : vueComponent.$el;
3593
+ if (el != null) {
3594
+ queue2.forEach((item) => {
3595
+ var queryResult = QuerySelectorHelper.queryElement(el, item.selector, !item.single, vueComponent === null || vueComponent === void 0 ? void 0 : vueComponent.$.subTree, item.fields);
3596
+ if (queryResult != null) {
3597
+ result.push(queryResult);
3598
+ }
3599
+ });
3600
+ }
3601
+ callback(result);
3602
+ }
3603
+ var createSelectorQuery = function() {
3604
+ var instance = getCurrentPage().vm;
3605
+ return new SelectorQueryImpl(instance);
3606
+ };
3607
+ class CanvasContextImpl {
3608
+ constructor(element) {
3609
+ this._element = element;
3610
+ }
3611
+ // @ts-expect-error 类型不匹配
3612
+ getContext(contextType) {
3613
+ return this._element.getContext(contextType);
3614
+ }
3615
+ toBlob(callback, type, quality) {
3616
+ throw new Error("Method not implemented.");
3617
+ }
3618
+ toDataURL(type, quality) {
3619
+ return this._element.toDataURL(type, quality);
3620
+ }
3621
+ createImage() {
3622
+ return new Image();
3623
+ }
3624
+ createPath2D() {
3625
+ return new Path2D();
3626
+ }
3627
+ requestAnimationFrame(callback) {
3628
+ return requestAnimationFrame(callback);
3629
+ }
3630
+ cancelAnimationFrame(taskId) {
3631
+ cancelAnimationFrame(taskId);
3632
+ }
3633
+ }
3634
+ var createCanvasContextAsync = /* @__PURE__ */ defineAsyncApi("createCanvasContextAsync", (options, _ref) => {
3635
+ var _options$component;
3636
+ var {
3637
+ resolve,
3638
+ reject
3639
+ } = _ref;
3640
+ var page = getCurrentPage().vm;
3641
+ if (page == null) {
3642
+ return null;
3643
+ }
3644
+ createSelectorQuery().in((_options$component = options.component) !== null && _options$component !== void 0 ? _options$component : null).select("#" + options.id).fields({
3645
+ node: true
3646
+ }, (ret) => {
3647
+ var node = ret.node;
3648
+ if (node != null) {
3649
+ resolve(new CanvasContextImpl(node));
3650
+ } else {
3651
+ var uniError = new UniError("uni-createCanvasContextAsync", -1, "canvas id invalid.");
3652
+ reject(uniError.errMsg);
3653
+ }
3654
+ }).exec();
3655
+ });
3656
+ function queryElementTop(component, selector) {
3657
+ var _component$$el;
3658
+ var scrollNode = (_component$$el = component.$el) === null || _component$$el === void 0 ? void 0 : _component$$el.querySelector(selector);
3659
+ if (scrollNode != null) {
3660
+ return scrollNode.getBoundingClientRect().top;
3661
+ }
3662
+ return null;
3663
+ }
3664
+ var pageScrollTo = /* @__PURE__ */ defineAsyncApi(API_PAGE_SCROLL_TO, (options, res) => {
3665
+ var currentPage = getCurrentPage().vm;
3666
+ var scrollViewNode = currentPage === null || currentPage === void 0 ? void 0 : currentPage.$el;
3667
+ if (scrollViewNode == null || scrollViewNode.tagName != "SCROLL-VIEW") {
3668
+ res.reject("selector invalid");
3669
+ return;
3670
+ }
3671
+ var top = options.scrollTop;
3672
+ if (!!options.selector) {
3673
+ top = queryElementTop(currentPage, options.selector);
3674
+ if (top != null) {
3675
+ var currentScrollTop = scrollViewNode.scrollTop;
3676
+ top += currentScrollTop;
3677
+ }
3678
+ }
3679
+ if (top == null || top < 0) {
3680
+ res.reject("top or selector invalid");
3681
+ return;
3682
+ }
3683
+ if (options.offsetTop != null) {
3684
+ top += options.offsetTop;
3685
+ }
3686
+ scrollViewNode.scrollTop = top;
3687
+ res.resolve();
3688
+ }, PageScrollToProtocol, PageScrollToOptions);
3689
+ var startPullDownRefresh = /* @__PURE__ */ defineAsyncApi(API_START_PULL_DOWN_REFRESH, (_options, res) => {
3690
+ var page = getCurrentPage().vm;
3691
+ if (page === null) {
3692
+ res.reject("page is not ready");
3693
+ return;
3694
+ }
3695
+ page.$nativePage.startPullDownRefresh({
3696
+ success: res.resolve,
3697
+ fail: res.reject
3698
+ });
3699
+ });
3700
+ var stopPullDownRefresh = /* @__PURE__ */ defineAsyncApi(API_STOP_PULL_DOWN_REFRESH, (_args, res) => {
3701
+ var page = getCurrentPage().vm;
3702
+ if (page === null) {
3703
+ res.reject("page is not ready");
3704
+ return;
3705
+ }
3706
+ page.$nativePage.stopPullDownRefresh();
3707
+ res.resolve();
3708
+ });
3709
+ var env = {
3710
+ USER_DATA_PATH: "unifile://usr/",
3711
+ CACHE_PATH: "unifile://cache/",
3712
+ SANDBOX_PATH: "unifile://sandbox/",
3713
+ TEMP_PATH: "unifile://temp/"
3714
+ };
3715
+ var _PerformanceEntryStatus;
3716
+ var APP_LAUNCH = "appLaunch";
3717
+ var PERFORMANCE_BUFFER_SIZE = 30;
3718
+ var ENTRY_TYPE_RENDER = "render";
3719
+ var ENTRY_TYPE_NAVIGATION = "navigation";
3720
+ var RENDER_TYPE_FIRST_LAYOUT = "firstLayout";
3721
+ var RENDER_TYPE_FIRST_RENDER = "firstRender";
3722
+ class PerformanceEntryStatus {
3723
+ constructor(entryType, name) {
3724
+ this._state = PerformanceEntryStatus.STATE_EMPTY;
3725
+ this._entryData = {
3726
+ entryType,
3727
+ name,
3728
+ duration: 0,
3729
+ startTime: 0
3730
+ };
3731
+ }
3732
+ get state() {
3733
+ return this._state;
3734
+ }
3735
+ set state(state) {
3736
+ this._state = state;
3737
+ if (this._state == PerformanceEntryStatus.STATE_BEFORE) {
3738
+ this.executeBefore();
3739
+ } else if (this._state == PerformanceEntryStatus.STATE_AFTER) {
3740
+ this.executeAfter();
3741
+ } else if (this._state == PerformanceEntryStatus.STATE_READY) {
3742
+ this.executeReady();
3743
+ }
3744
+ }
3745
+ get entryData() {
3746
+ return this._entryData;
3747
+ }
3748
+ executeBefore() {
3749
+ var _getCurrentPage;
3750
+ var page = (_getCurrentPage = getCurrentPage()) === null || _getCurrentPage === void 0 ? void 0 : _getCurrentPage.vm;
3751
+ if (page != null) {
3752
+ this._entryData.referrerPath = page.route;
3753
+ }
3754
+ }
3755
+ executeAfter() {
3756
+ var _getCurrentPage2;
3757
+ var page = (_getCurrentPage2 = getCurrentPage()) === null || _getCurrentPage2 === void 0 ? void 0 : _getCurrentPage2.vm;
3758
+ if (page != null) {
3759
+ this._entryData.pageId = parseInt(page.$nativePage.pageId);
3760
+ this._entryData.path = page.route;
3761
+ }
3762
+ }
3763
+ executeReady() {
3764
+ }
3765
+ getCurrentInnerPage() {
3766
+ var _getCurrentPage3;
3767
+ var currentPage = (_getCurrentPage3 = getCurrentPage()) === null || _getCurrentPage3 === void 0 ? void 0 : _getCurrentPage3.vm;
3768
+ if (currentPage == null) {
3769
+ return null;
3770
+ }
3771
+ return currentPage.$nativePage;
3772
+ }
3773
+ }
3774
+ _PerformanceEntryStatus = PerformanceEntryStatus;
3775
+ _PerformanceEntryStatus.STATE_EMPTY = 0;
3776
+ _PerformanceEntryStatus.STATE_BEFORE = 1;
3777
+ _PerformanceEntryStatus.STATE_AFTER = 2;
3778
+ _PerformanceEntryStatus.STATE_READY = 3;
3779
+ class PerformanceEntryStatusLayout extends PerformanceEntryStatus {
3780
+ constructor() {
3781
+ super(ENTRY_TYPE_RENDER, RENDER_TYPE_FIRST_LAYOUT);
3782
+ }
3783
+ executeAfter() {
3784
+ super.executeAfter();
3785
+ this._entryData.startTime = Date.now();
3786
+ }
3787
+ executeReady() {
3788
+ super.executeReady();
3789
+ var innerPage = super.getCurrentInnerPage();
3790
+ if (innerPage != null) {
3791
+ this._entryData.duration = innerPage.getFirstPageLayoutDuration();
3792
+ }
3793
+ }
3794
+ }
3795
+ class PerformanceEntryStatusRender extends PerformanceEntryStatus {
3796
+ constructor() {
3797
+ super(ENTRY_TYPE_RENDER, RENDER_TYPE_FIRST_RENDER);
3798
+ }
3799
+ executeAfter() {
3800
+ super.executeAfter();
3801
+ this._entryData.startTime = Date.now();
3802
+ }
3803
+ executeReady() {
3804
+ super.executeReady();
3805
+ var innerPage = super.getCurrentInnerPage();
3806
+ if (innerPage != null) {
3807
+ this._entryData.duration = innerPage.getFirstPageRenderDuration();
3808
+ }
3809
+ }
3810
+ }
3811
+ class PerformanceEntryStatusNavigation extends PerformanceEntryStatus {
3812
+ constructor(name, navigationType) {
3813
+ super(ENTRY_TYPE_NAVIGATION, name);
3814
+ this._entryData.navigationType = navigationType;
3815
+ }
3816
+ executeBefore() {
3817
+ super.executeBefore();
3818
+ this._entryData.startTime = Date.now();
3819
+ }
3820
+ executeReady() {
3821
+ var innerPage = super.getCurrentInnerPage();
3822
+ if (innerPage != null) {
3823
+ this._entryData.duration = Date.now() - this._entryData.startTime;
3824
+ if (this._entryData.name == APP_LAUNCH) {
3825
+ this._entryData.duration += getNativeApp().getAppStartDuration();
3826
+ }
3827
+ }
3828
+ }
3829
+ }
3830
+ class PerformanceEntryQueue extends Array {
3831
+ constructor() {
3832
+ super(...arguments);
3833
+ this._queueSize = PERFORMANCE_BUFFER_SIZE;
3834
+ }
3835
+ get queueSize() {
3836
+ return this._queueSize;
3837
+ }
3838
+ set queueSize(value) {
3839
+ this._queueSize = value;
3840
+ if (this.length > value) {
3841
+ this.dequeue(this.length - value);
3842
+ }
3843
+ }
3844
+ push() {
3845
+ return this.enqueue(...arguments);
3846
+ }
3847
+ enqueue() {
3848
+ if (this.length > this._queueSize - 1) {
3849
+ this.shift();
3850
+ }
3851
+ return super.push(...arguments);
3852
+ }
3853
+ dequeue() {
3854
+ var count = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 1;
3855
+ this.splice(0, count);
3856
+ }
3857
+ }
3858
+ class PerformanceObserverEntryListImpl {
3859
+ constructor() {
3860
+ this._queue = new PerformanceEntryQueue();
3861
+ }
3862
+ push() {
3863
+ this._queue.push(...arguments);
3864
+ }
3865
+ getEntries() {
3866
+ return this._queue;
3867
+ }
3868
+ getEntriesByType(entryType) {
3869
+ return this._queue.filter((entry) => entry.entryType == entryType);
3870
+ }
3871
+ getEntriesByName(name, entryType) {
3872
+ return this._queue.filter((entry) => entry.entryType == entryType && entry.name == name);
3873
+ }
3874
+ clear() {
3875
+ this._queue.length = 0;
3876
+ }
3877
+ get bufferSize() {
3878
+ return this._queue.queueSize;
3879
+ }
3880
+ set bufferSize(size) {
3881
+ this._queue.queueSize = size;
3882
+ }
3883
+ }
3884
+ class PerformanceObserverImpl {
3885
+ constructor(performance, callback) {
3886
+ this._entryTypes = [];
3887
+ this._callback = null;
3888
+ this._entryList = new PerformanceObserverEntryListImpl();
3889
+ this._owner = performance;
3890
+ this._callback = callback;
3891
+ }
3892
+ observe(options) {
3893
+ if ((options === null || options === void 0 ? void 0 : options.entryTypes) != null) {
3894
+ this._entryTypes.length = 0;
3895
+ this._entryTypes.push(...options.entryTypes);
3896
+ }
3897
+ if (this._entryTypes.length > 0) {
3898
+ this._owner.connect(this);
3899
+ } else {
3900
+ this.disconnect();
3901
+ }
3902
+ }
3903
+ disconnect() {
3904
+ this._entryList.clear();
3905
+ this._owner.disconnect(this);
3906
+ }
3907
+ dispatchCallback() {
3908
+ var _this$_callback;
3909
+ (_this$_callback = this._callback) === null || _this$_callback === void 0 || _this$_callback.call(this, this._entryList);
3910
+ }
3911
+ get entryTypes() {
3912
+ return this._entryTypes;
3913
+ }
3914
+ get entryList() {
3915
+ return this._entryList;
3916
+ }
3917
+ }
3918
+ class PerformanceProvider {
3919
+ constructor() {
3920
+ this._entryStatus = [];
3921
+ }
3922
+ get entryStatus() {
3923
+ return this._entryStatus;
3924
+ }
3925
+ onBefore(type) {
3926
+ if (type == APP_LAUNCH || type == API_SWITCH_TAB || type == API_NAVIGATE_TO || type == API_REDIRECT_TO || type == API_NAVIGATE_BACK) {
3927
+ this._pushEntryStatus(ENTRY_TYPE_NAVIGATION, this._navigationToName(type), type);
3928
+ }
3929
+ if (type == APP_LAUNCH || type == API_NAVIGATE_TO || type == API_REDIRECT_TO) {
3930
+ this._pushEntryStatus(ENTRY_TYPE_RENDER, RENDER_TYPE_FIRST_LAYOUT, type);
3931
+ this._pushEntryStatus(ENTRY_TYPE_RENDER, RENDER_TYPE_FIRST_RENDER, type);
3932
+ }
3933
+ this._forwardState();
3934
+ }
3935
+ onAfter(type) {
3936
+ this._forwardState();
3937
+ }
3938
+ onReady() {
3939
+ this._forwardState();
3940
+ }
3941
+ removeAllStatus() {
3942
+ this._entryStatus.length = 0;
3943
+ }
3944
+ _pushEntryStatus(entryType, name, navigationType) {
3945
+ var entry = null;
3946
+ if (entryType == ENTRY_TYPE_NAVIGATION) {
3947
+ entry = new PerformanceEntryStatusNavigation(name, navigationType);
3948
+ } else if (entryType == ENTRY_TYPE_RENDER) {
3949
+ if (name == RENDER_TYPE_FIRST_LAYOUT) {
3950
+ entry = new PerformanceEntryStatusLayout();
3951
+ } else if (name == RENDER_TYPE_FIRST_RENDER) {
3952
+ entry = new PerformanceEntryStatusRender();
3953
+ }
3954
+ }
3955
+ if (entry != null) {
3956
+ this._entryStatus.push(entry);
3957
+ }
3958
+ }
3959
+ _forwardState() {
3960
+ this._entryStatus.forEach((entry) => {
3961
+ entry.state += 1;
3962
+ });
3963
+ }
3964
+ _navigationToName(type) {
3965
+ if (type == APP_LAUNCH) {
3966
+ return APP_LAUNCH;
3967
+ }
3968
+ return "route";
3969
+ }
3970
+ }
3971
+ class PerformanceAllocate {
3972
+ constructor(allEntryList, observerList) {
3973
+ this._allEntryList = allEntryList;
3974
+ this._observerList = observerList;
3975
+ }
3976
+ pushEntryStatus(status) {
3977
+ this.pushAllEntryData(status);
3978
+ this.pushObserverList(status);
3979
+ }
3980
+ pushAllEntryData(status) {
3981
+ status.forEach((entryStatus) => {
3982
+ this._allEntryList.push(entryStatus.entryData);
3983
+ });
3984
+ }
3985
+ pushObserverList(status) {
3986
+ this._observerList.forEach((observer) => {
3987
+ var entryList = observer.entryList;
3988
+ entryList.clear();
3989
+ status.forEach((entryStatus) => {
3990
+ var entryData = entryStatus.entryData;
3991
+ if (observer.entryTypes.includes(entryData.entryType)) {
3992
+ entryList.push(entryData);
3993
+ }
3994
+ });
3995
+ observer.dispatchCallback();
3996
+ });
3997
+ }
3998
+ }
3999
+ class PerformanceImpl {
4000
+ constructor() {
4001
+ this._allEntryList = new PerformanceObserverEntryListImpl();
4002
+ this._observerList = [];
4003
+ this._provider = new PerformanceProvider();
4004
+ this._allocate = new PerformanceAllocate(this._allEntryList, this._observerList);
4005
+ onBeforeRoute((type) => {
4006
+ this._provider.onBefore(type);
4007
+ });
4008
+ onAfterRoute((type) => {
4009
+ this._provider.onAfter(type);
4010
+ if (type == API_NAVIGATE_BACK) {
4011
+ this.dispatchObserver();
4012
+ }
4013
+ });
4014
+ onPageReady((page) => {
4015
+ this.dispatchObserver();
4016
+ });
4017
+ }
4018
+ dispatchObserver() {
4019
+ this._provider.onReady();
4020
+ this._allocate.pushEntryStatus(this._provider.entryStatus);
4021
+ this._provider.removeAllStatus();
4022
+ }
4023
+ createObserver(callback) {
4024
+ return new PerformanceObserverImpl(this, callback);
4025
+ }
4026
+ connect(observer) {
4027
+ var index2 = this._observerList.indexOf(observer);
4028
+ if (index2 < 0) {
4029
+ this._observerList.push(observer);
4030
+ }
4031
+ }
4032
+ disconnect(observer) {
4033
+ var index2 = this._observerList.indexOf(observer);
4034
+ if (index2 >= 0) {
4035
+ this._observerList.splice(index2, 1);
4036
+ }
4037
+ }
4038
+ getEntries() {
4039
+ return this._allEntryList.getEntries();
4040
+ }
4041
+ getEntriesByType(entryType) {
4042
+ return this._allEntryList.getEntriesByType(entryType);
4043
+ }
4044
+ getEntriesByName(name, entryType) {
4045
+ return this._allEntryList.getEntriesByName(name, entryType);
4046
+ }
4047
+ setBufferSize(size) {
4048
+ this._allEntryList.bufferSize = size;
4049
+ }
4050
+ }
4051
+ var getPerformance = function() {
4052
+ return new PerformanceImpl();
4053
+ };
4054
+ var callbackId = 1;
4055
+ var proxy;
4056
+ var keepAliveCallbacks = {};
4057
+ function isUniElement(obj) {
4058
+ return obj && typeof obj.getNodeId === "function" && obj.pageId;
4059
+ }
4060
+ function isComponentPublicInstance(instance) {
4061
+ return instance && instance.$ && instance.$.proxy === instance;
4062
+ }
4063
+ function parseElement(obj) {
4064
+ if (isUniElement(obj)) {
4065
+ return obj;
4066
+ }
4067
+ }
4068
+ function parseComponentPublicInstance(obj) {
4069
+ if (isComponentPublicInstance(obj)) {
4070
+ return obj.$el;
4071
+ }
4072
+ }
4073
+ function serializeArrayBuffer(obj) {
4074
+ if (typeof ArrayBufferWrapper !== "undefined") {
4075
+ return {
4076
+ __type__: "ArrayBuffer",
4077
+ value: new ArrayBufferWrapper(obj)
4078
+ };
4079
+ }
4080
+ return {
4081
+ __type__: "ArrayBuffer",
4082
+ value: obj
4083
+ };
4084
+ }
4085
+ function serializeUniElement(el, type) {
4086
+ var nodeId = "";
4087
+ var pageId = "";
4088
+ if (el && el.getNodeId) {
4089
+ pageId = el.pageId;
4090
+ nodeId = el.getNodeId();
4091
+ }
4092
+ return {
4093
+ __type__: type,
4094
+ pageId,
4095
+ nodeId
4096
+ };
4097
+ }
4098
+ function toRaw(observed) {
4099
+ var raw = observed && observed.__v_raw;
4100
+ return raw ? toRaw(raw) : observed;
4101
+ }
4102
+ function normalizeArg(arg, callbacks, keepAlive, context) {
4103
+ arg = toRaw(arg);
4104
+ if (typeof arg === "function") {
4105
+ var id2;
4106
+ if (keepAlive) {
4107
+ var oldId = Object.keys(callbacks).find((id22) => callbacks[id22] === arg);
4108
+ id2 = oldId ? parseInt(oldId) : callbackId++;
4109
+ callbacks[id2] = arg;
4110
+ } else {
4111
+ id2 = callbackId++;
4112
+ callbacks[id2] = arg;
4113
+ }
4114
+ return id2;
4115
+ } else if (isArray(arg)) {
4116
+ context.depth++;
4117
+ return arg.map((item) => normalizeArg(item, callbacks, keepAlive, context));
4118
+ } else if (arg instanceof ArrayBuffer) {
4119
+ if (context.depth > 0) {
4120
+ context.nested = true;
4121
+ }
4122
+ return serializeArrayBuffer(arg);
4123
+ } else if (isPlainObject(arg) || isUniElement(arg)) {
4124
+ var uniElement = parseElement(arg);
4125
+ var componentPublicInstanceUniElement = !uniElement ? parseComponentPublicInstance(arg) : void 0;
4126
+ var el = uniElement || componentPublicInstanceUniElement;
4127
+ if (el) {
4128
+ if (context.depth > 0) {
4129
+ context.nested = true;
4130
+ }
4131
+ return serializeUniElement(el, uniElement ? "UniElement" : "ComponentPublicInstance");
4132
+ } else {
4133
+ var newArg = {};
4134
+ Object.keys(arg).forEach((name) => {
4135
+ context.depth++;
4136
+ newArg[name] = normalizeArg(arg[name], callbacks, keepAlive, context);
4137
+ });
4138
+ return newArg;
4139
+ }
4140
+ }
4141
+ return arg;
4142
+ }
4143
+ function initUTSInstanceMethod(async, opts, instanceId, proxy2) {
4144
+ return initProxyFunction("method", async, opts, instanceId, proxy2);
4145
+ }
4146
+ function getProxy() {
4147
+ if (!proxy) {
4148
+ {
4149
+ proxy = {
4150
+ invokeSync(args, callback) {
4151
+ return nativeChannel.invokeSync("APP-SERVICE", args, callback);
4152
+ },
4153
+ invokeAsync(args, callback) {
4154
+ return nativeChannel.invokeAsync("APP-SERVICE", args, callback);
4155
+ }
4156
+ };
4157
+ }
4158
+ }
4159
+ return proxy;
4160
+ }
4161
+ function resolveSyncResult(args, res, returnOptions, instanceId, proxy2) {
4162
+ if (!res) {
4163
+ throw new Error("返回值为:" + JSON.stringify(res) + ";请求参数为:" + JSON.stringify(args));
4164
+ }
4165
+ if (isString(res)) {
4166
+ try {
4167
+ res = JSON.parse(res);
4168
+ } catch (e) {
4169
+ throw new Error("JSON.parse(".concat(res, "): ") + e);
4170
+ }
4171
+ }
4172
+ if (res.errMsg) {
4173
+ throw new Error(res.errMsg);
4174
+ }
4175
+ if (returnOptions) {
4176
+ if (returnOptions.type === "interface" && typeof res.params === "number") {
4177
+ if (!res.params) {
4178
+ return null;
4179
+ }
4180
+ if (res.params === instanceId && proxy2) {
4181
+ return proxy2;
4182
+ }
4183
+ if (interfaceDefines[returnOptions.options]) {
4184
+ var ProxyClass = initUTSProxyClass(extend({
4185
+ instanceId: res.params
4186
+ }, interfaceDefines[returnOptions.options]));
4187
+ return new ProxyClass();
4188
+ }
4189
+ }
4190
+ }
4191
+ return res.params;
4192
+ }
4193
+ function invokePropGetter(args) {
4194
+ if (args.errMsg) {
4195
+ throw new Error(args.errMsg);
4196
+ }
4197
+ delete args.errMsg;
4198
+ return resolveSyncResult(args, getProxy().invokeSync(args, () => {
4199
+ }));
4200
+ }
4201
+ function initProxyFunction(type, async, _ref, instanceId, proxy2) {
4202
+ var {
4203
+ moduleName,
4204
+ moduleType,
4205
+ package: pkg,
4206
+ class: cls,
4207
+ name: methodName,
4208
+ method,
4209
+ companion,
4210
+ keepAlive,
4211
+ params: methodParams,
4212
+ return: returnOptions,
4213
+ errMsg
4214
+ } = _ref;
4215
+ if (!keepAlive) {
4216
+ keepAlive = (methodName.indexOf("on") === 0 || methodName.indexOf("off") === 0) && methodParams.length === 1 && methodParams[0].type === "UTSCallback";
4217
+ }
4218
+ var baseArgs = instanceId ? {
4219
+ moduleName,
4220
+ moduleType,
4221
+ id: instanceId,
4222
+ type,
4223
+ name: methodName,
4224
+ method: methodParams,
4225
+ nested: false,
4226
+ keepAlive
4227
+ } : {
4228
+ moduleName,
4229
+ moduleType,
4230
+ package: pkg,
4231
+ class: cls,
4232
+ name: method || methodName,
4233
+ type,
4234
+ companion,
4235
+ method: methodParams,
4236
+ nested: false,
4237
+ keepAlive
4238
+ };
4239
+ return function() {
4240
+ if (errMsg) {
4241
+ throw new Error(errMsg);
4242
+ }
4243
+ var callbacks = keepAlive ? keepAliveCallbacks : {};
4244
+ var invokeCallback2 = (_ref2) => {
4245
+ var {
4246
+ id: id2,
4247
+ name,
4248
+ params
4249
+ } = _ref2;
4250
+ var callback = callbacks[id2];
4251
+ if (callback) {
4252
+ callback(...params);
4253
+ if (!keepAlive) {
4254
+ delete callbacks[id2];
4255
+ }
4256
+ } else {
4257
+ console.error("uts插件[".concat(moduleName, "] ").concat(pkg).concat(cls, ".").concat(methodName.replace("ByJs", ""), " ").concat(name, "回调函数已释放,不能再次执行,参考文档:https://doc.dcloud.net.cn/uni-app-x/plugin/uts-plugin.html#keepalive"));
4258
+ }
4259
+ };
4260
+ var context = {
4261
+ depth: 0,
4262
+ nested: false
4263
+ };
4264
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
4265
+ args[_key] = arguments[_key];
4266
+ }
4267
+ var invokeArgs = extend({}, baseArgs, {
4268
+ params: args.map((arg) => normalizeArg(arg, callbacks, keepAlive, context))
4269
+ });
4270
+ invokeArgs.nested = context.nested;
4271
+ if (async) {
4272
+ return new Promise((resolve, reject) => {
4273
+ getProxy().invokeAsync(invokeArgs, (res) => {
4274
+ if (res.type !== "return") {
4275
+ invokeCallback2(res);
4276
+ } else {
4277
+ if (res.errMsg) {
4278
+ reject(res.errMsg);
4279
+ } else {
4280
+ resolve(res.params);
4281
+ }
4282
+ }
4283
+ });
4284
+ });
4285
+ }
4286
+ return resolveSyncResult(invokeArgs, getProxy().invokeSync(invokeArgs, invokeCallback2), returnOptions, instanceId, proxy2);
4287
+ };
4288
+ }
4289
+ function initUTSStaticMethod(async, opts) {
4290
+ if (opts.main && !opts.method) {
4291
+ if (isUTSiOS()) {
4292
+ opts.method = "s_" + opts.name;
4293
+ }
4294
+ }
4295
+ return initProxyFunction("method", async, opts, 0);
4296
+ }
4297
+ var initUTSProxyFunction = initUTSStaticMethod;
4298
+ function parseClassMethodName(name, methods) {
4299
+ if (typeof name === "string" && hasOwn(methods, name + "ByJs")) {
4300
+ return name + "ByJs";
4301
+ }
4302
+ return name;
4303
+ }
4304
+ function isUndefined(value) {
4305
+ return typeof value === "undefined";
4306
+ }
4307
+ function isProxyInterfaceOptions(options) {
4308
+ return !isUndefined(options.instanceId);
4309
+ }
4310
+ function parseClassPropertySetter(name) {
4311
+ return "__$set" + capitalize(name);
4312
+ }
4313
+ function initUTSProxyClass(options) {
4314
+ var {
4315
+ moduleName,
4316
+ moduleType,
4317
+ package: pkg,
4318
+ class: cls,
4319
+ methods,
4320
+ props,
4321
+ setters,
4322
+ errMsg
4323
+ } = options;
4324
+ var baseOptions = {
4325
+ moduleName,
4326
+ moduleType,
4327
+ package: pkg,
4328
+ class: cls,
4329
+ errMsg
4330
+ };
4331
+ var instanceId;
4332
+ var constructorParams = [];
4333
+ var staticMethods = {};
4334
+ var staticProps = [];
4335
+ var staticSetters = {};
4336
+ var isProxyInterface = false;
4337
+ if (isProxyInterfaceOptions(options)) {
4338
+ isProxyInterface = true;
4339
+ instanceId = options.instanceId;
4340
+ } else {
4341
+ constructorParams = options.constructor.params;
4342
+ staticMethods = options.staticMethods;
4343
+ staticProps = options.staticProps;
4344
+ staticSetters = options.staticSetters;
4345
+ }
4346
+ if (isUTSiOS()) {
4347
+ if (constructorParams.find((p) => p.type === "UTSCallback" || p.type.indexOf("JSONObject") > 0)) {
4348
+ constructorParams.push({
4349
+ name: "_byJs",
4350
+ type: "boolean"
4351
+ });
4352
+ }
4353
+ }
4354
+ var ProxyClass = class UTSClass {
4355
+ constructor() {
4356
+ this.__instanceId = 0;
4357
+ if (errMsg) {
4358
+ throw new Error(errMsg);
4359
+ }
4360
+ var target = {};
4361
+ if (!isProxyInterface) {
4362
+ for (var _len2 = arguments.length, params = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
4363
+ params[_key2] = arguments[_key2];
4364
+ }
4365
+ this.__instanceId = initProxyFunction("constructor", false, extend({
4366
+ name: "constructor",
4367
+ keepAlive: false,
4368
+ params: constructorParams
4369
+ }, baseOptions), 0).apply(null, params);
4370
+ } else if (typeof instanceId === "number") {
4371
+ this.__instanceId = instanceId;
4372
+ }
4373
+ if (!this.__instanceId) {
4374
+ throw new Error("new ".concat(cls, " is failed"));
4375
+ }
4376
+ var instance = this;
4377
+ var proxy2 = new Proxy(instance, {
4378
+ get(_, name) {
4379
+ if (name === "__v_skip") {
4380
+ return true;
4381
+ }
4382
+ if (!target[name]) {
4383
+ name = parseClassMethodName(name, methods);
4384
+ if (hasOwn(methods, name)) {
4385
+ var {
4386
+ async,
4387
+ keepAlive,
4388
+ params: params2,
4389
+ return: returnOptions
4390
+ } = methods[name];
4391
+ target[name] = initUTSInstanceMethod(!!async, extend({
4392
+ name,
4393
+ keepAlive,
4394
+ params: params2,
4395
+ return: returnOptions
4396
+ }, baseOptions), instance.__instanceId, proxy2);
4397
+ } else if (props.includes(name)) {
4398
+ return invokePropGetter({
4399
+ moduleName,
4400
+ moduleType,
4401
+ id: instance.__instanceId,
4402
+ type: "getter",
4403
+ keepAlive: false,
4404
+ nested: false,
4405
+ name,
4406
+ errMsg
4407
+ });
4408
+ }
4409
+ }
4410
+ return target[name];
4411
+ },
4412
+ set(_, name, newValue) {
4413
+ if (props.includes(name)) {
4414
+ var setter = parseClassPropertySetter(name);
4415
+ if (!target[setter]) {
4416
+ var param = setters[name];
4417
+ if (param) {
4418
+ target[setter] = initProxyFunction("setter", false, extend({
4419
+ name,
4420
+ keepAlive: false,
4421
+ params: [param]
4422
+ }, baseOptions), instance.__instanceId, proxy2);
4423
+ }
4424
+ }
4425
+ target[parseClassPropertySetter(name)](newValue);
4426
+ return true;
4427
+ }
4428
+ return false;
4429
+ }
4430
+ });
4431
+ return Object.freeze(proxy2);
4432
+ }
4433
+ };
4434
+ var staticPropSetterCache = {};
4435
+ var staticMethodCache = {};
4436
+ return Object.freeze(new Proxy(ProxyClass, {
4437
+ get(target, name, receiver) {
4438
+ name = parseClassMethodName(name, staticMethods);
4439
+ if (hasOwn(staticMethods, name)) {
4440
+ if (!staticMethodCache[name]) {
4441
+ var {
4442
+ async,
4443
+ keepAlive,
4444
+ params,
4445
+ return: returnOptions
4446
+ } = staticMethods[name];
4447
+ staticMethodCache[name] = initUTSStaticMethod(!!async, extend({
4448
+ name,
4449
+ companion: true,
4450
+ keepAlive,
4451
+ params,
4452
+ return: returnOptions
4453
+ }, baseOptions));
4454
+ }
4455
+ return staticMethodCache[name];
4456
+ }
4457
+ if (staticProps.includes(name)) {
4458
+ return invokePropGetter(extend({
4459
+ name,
4460
+ companion: true,
4461
+ type: "getter"
4462
+ }, baseOptions));
4463
+ }
4464
+ return Reflect.get(target, name, receiver);
4465
+ },
4466
+ set(_, name, newValue) {
4467
+ if (staticProps.includes(name)) {
4468
+ var setter = parseClassPropertySetter(name);
4469
+ if (!staticPropSetterCache[setter]) {
4470
+ var param = staticSetters[name];
4471
+ if (param) {
4472
+ staticPropSetterCache[setter] = initProxyFunction("setter", false, extend({
4473
+ name,
4474
+ keepAlive: false,
4475
+ params: [param]
4476
+ }, baseOptions), 0);
4477
+ }
4478
+ }
4479
+ staticPropSetterCache[parseClassPropertySetter(name)](newValue);
4480
+ return true;
4481
+ }
4482
+ return false;
4483
+ }
4484
+ }));
4485
+ }
4486
+ function isUTSAndroid() {
4487
+ {
4488
+ return false;
4489
+ }
4490
+ }
4491
+ function isUTSiOS() {
4492
+ return !isUTSAndroid();
4493
+ }
4494
+ function initUTSPackageName(name, is_uni_modules) {
4495
+ if (isUTSAndroid()) {
4496
+ return "uts.sdk." + (is_uni_modules ? "modules." : "") + name;
4497
+ }
4498
+ return "";
4499
+ }
4500
+ function initUTSIndexClassName(moduleName, is_uni_modules) {
4501
+ return initUTSClassName(moduleName, isUTSAndroid() ? "IndexKt" : "IndexSwift", is_uni_modules);
4502
+ }
4503
+ function initUTSClassName(moduleName, className, is_uni_modules) {
4504
+ if (isUTSAndroid()) {
4505
+ return className;
4506
+ }
4507
+ return "UTSSDK" + (is_uni_modules ? "Modules" : "") + capitalize(moduleName) + capitalize(className);
4508
+ }
4509
+ var interfaceDefines = {};
4510
+ function registerUTSInterface(name, define) {
4511
+ interfaceDefines[name] = define;
4512
+ }
4513
+ var pluginDefines = {};
4514
+ function registerUTSPlugin(name, define) {
4515
+ pluginDefines[name] = define;
4516
+ }
4517
+ function requireUTSPlugin(name) {
4518
+ var silent = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
4519
+ var define = pluginDefines[name];
4520
+ if (!define) {
4521
+ if (!silent) {
4522
+ console.error("".concat(name, " is not found"));
4523
+ }
4524
+ }
4525
+ return define;
4526
+ }
4527
+ function __log__(type, filename) {
4528
+ for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
4529
+ args[_key - 2] = arguments[_key];
4530
+ }
4531
+ var res = normalizeLog(type, filename, args);
4532
+ res && console[type](res);
4533
+ }
4534
+ function isDebugMode() {
4535
+ return typeof __channelId__ === "string" && __channelId__;
4536
+ }
4537
+ function jsonStringifyReplacer(k, p) {
4538
+ switch (toRawType(p)) {
4539
+ case "Function":
4540
+ return "function() { [native code] }";
4541
+ default:
4542
+ return p;
4543
+ }
4544
+ }
4545
+ function normalizeLog(type, filename, args) {
4546
+ if (isDebugMode()) {
4547
+ args.push(filename.replace("at ", "uni-app:///"));
4548
+ return console[type].apply(console, args);
4549
+ }
4550
+ var msgs = args.map(function(v) {
4551
+ var type2 = toTypeString(v).toLowerCase();
4552
+ if (["[object object]", "[object array]", "[object module]"].indexOf(type2) !== -1) {
4553
+ try {
4554
+ v = "---BEGIN:JSON---" + JSON.stringify(v, jsonStringifyReplacer) + "---END:JSON---";
4555
+ } catch (e) {
4556
+ v = type2;
4557
+ }
4558
+ } else {
4559
+ if (v === null) {
4560
+ v = "---NULL---";
4561
+ } else if (v === void 0) {
4562
+ v = "---UNDEFINED---";
4563
+ } else {
4564
+ var vType = toRawType(v).toUpperCase();
4565
+ if (vType === "NUMBER" || vType === "BOOLEAN") {
4566
+ v = "---BEGIN:" + vType + "---" + v + "---END:" + vType + "---";
4567
+ } else {
4568
+ v = String(v);
4569
+ }
4570
+ }
4571
+ }
4572
+ return v;
4573
+ });
4574
+ return msgs.join("---COMMA---") + " " + filename;
4575
+ }
4576
+ const index$1 = /* @__PURE__ */ Object.defineProperty({
4577
+ __proto__: null,
4578
+ $emit,
4579
+ $off,
4580
+ $on,
4581
+ $once,
4582
+ __f__,
4583
+ __log__,
4584
+ addInterceptor,
4585
+ closeDialogPage,
4586
+ createCanvasContextAsync,
4587
+ createSelectorQuery,
4588
+ env,
4589
+ getElementById,
4590
+ getEnterOptionsSync,
4591
+ getLaunchOptionsSync,
4592
+ getPerformance,
4593
+ hideTabBar,
4594
+ hideTabBarRedDot,
4595
+ initUTSClassName,
4596
+ initUTSIndexClassName,
4597
+ initUTSPackageName,
4598
+ initUTSProxyClass,
4599
+ initUTSProxyFunction,
4600
+ loadFontFace,
4601
+ navigateBack,
4602
+ navigateTo,
4603
+ onTabBarMidButtonTap,
4604
+ openDialogPage,
4605
+ pageScrollTo,
4606
+ reLaunch,
4607
+ redirectTo,
4608
+ registerUTSInterface,
4609
+ registerUTSPlugin,
4610
+ removeInterceptor,
4611
+ removeTabBarBadge,
4612
+ requireUTSPlugin,
4613
+ setNavigationBarColor,
4614
+ setNavigationBarTitle,
4615
+ setTabBarBadge,
4616
+ setTabBarItem,
4617
+ setTabBarStyle,
4618
+ showTabBar,
4619
+ showTabBarRedDot,
4620
+ startPullDownRefresh,
4621
+ stopPullDownRefresh,
4622
+ switchTab
4623
+ }, Symbol.toStringTag, { value: "Module" });
4624
+ function converPx(value) {
4625
+ if (/^-?\d+[ur]px$/i.test(value)) {
4626
+ return value.replace(/(^-?\d+)[ur]px$/i, (text, num) => {
4627
+ return "".concat(uni.upx2px(parseFloat(num)), "px");
4628
+ });
4629
+ } else if (/^-?[\d\.]+$/.test(value)) {
4630
+ return "".concat(value, "px");
4631
+ }
4632
+ return value || "";
4633
+ }
4634
+ function converType(type) {
4635
+ return type.replace(/[A-Z]/g, (text) => {
4636
+ return "-".concat(text.toLowerCase());
4637
+ }).replace("webkit", "-webkit");
4638
+ }
4639
+ function getStyle(action) {
4640
+ var animateTypes1 = ["matrix", "matrix3d", "scale", "scale3d", "rotate3d", "skew", "translate", "translate3d"];
4641
+ var animateTypes2 = ["scaleX", "scaleY", "scaleZ", "rotate", "rotateX", "rotateY", "rotateZ", "skewX", "skewY", "translateX", "translateY", "translateZ"];
4642
+ var animateTypes3 = ["opacity", "background-color"];
4643
+ var animateTypes4 = ["width", "height", "left", "right", "top", "bottom"];
4644
+ var animates = action.animates;
4645
+ var option = action.option;
4646
+ var transition = option.transition;
4647
+ var style = {};
4648
+ var transform = [];
4649
+ animates.forEach((animate) => {
4650
+ var type = animate.type;
4651
+ var args = [...animate.args];
4652
+ if (animateTypes1.concat(animateTypes2).includes(type)) {
4653
+ if (type.startsWith("rotate") || type.startsWith("skew")) {
4654
+ args = args.map((value2) => parseFloat(value2) + "deg");
4655
+ } else if (type.startsWith("translate")) {
4656
+ args = args.map(converPx);
4657
+ }
4658
+ if (animateTypes2.indexOf(type) >= 0) {
4659
+ args.length = 1;
4660
+ }
4661
+ transform.push("".concat(type, "(").concat(args.join(","), ")"));
4662
+ } else if (animateTypes3.concat(animateTypes4).includes(args[0])) {
4663
+ type = args[0];
4664
+ var value = args[1];
4665
+ style[type] = animateTypes4.includes(type) ? converPx(value) : value;
4666
+ }
4667
+ });
4668
+ style.transform = style.webkitTransform = transform.join(" ");
4669
+ style.transition = style.webkitTransition = Object.keys(style).map((type) => "".concat(converType(type), " ").concat(transition.duration, "ms ").concat(transition.timingFunction, " ").concat(transition.delay, "ms")).join(",");
4670
+ style.transformOrigin = style.webkitTransformOrigin = option.transformOrigin;
4671
+ return style;
4672
+ }
4673
+ function startAnimation(context) {
4674
+ var animation2 = context.animation;
4675
+ if (!animation2 || !animation2.actions || !animation2.actions.length) {
4676
+ return;
4677
+ }
4678
+ var index2 = 0;
4679
+ var actions = animation2.actions;
4680
+ var length = animation2.actions.length;
4681
+ function animate() {
4682
+ var action = actions[index2];
4683
+ var transition = action.option.transition;
4684
+ var style = getStyle(action);
4685
+ Object.keys(style).forEach((key) => {
4686
+ context.$el.style[key] = style[key];
4687
+ });
4688
+ index2 += 1;
4689
+ if (index2 < length) {
4690
+ setTimeout(animate, transition.duration + transition.delay);
4691
+ }
4692
+ }
4693
+ setTimeout(() => {
4694
+ animate();
4695
+ }, 0);
4696
+ }
4697
+ const animation = {
4698
+ props: ["animation"],
4699
+ watch: {
4700
+ animation: {
4701
+ deep: true,
4702
+ handler() {
4703
+ startAnimation(this);
4704
+ }
4705
+ }
4706
+ },
4707
+ mounted() {
4708
+ startAnimation(this);
4709
+ }
4710
+ };
4711
+ var defineBuiltInComponent = (options) => {
4712
+ options.__reserved = true;
4713
+ var {
4714
+ props,
4715
+ mixins
4716
+ } = options;
4717
+ if (!props || !props.animation) {
4718
+ (mixins || (options.mixins = [])).push(animation);
4719
+ }
4720
+ {
4721
+ var rootElement = options.rootElement;
4722
+ if (rootElement) {
4723
+ customElements.define(rootElement.name, rootElement.class, rootElement.options);
4724
+ }
4725
+ }
4726
+ return defineSystemComponent(options);
4727
+ };
4728
+ var defineSystemComponent = (options) => {
4729
+ options.__reserved = true;
4730
+ options.compatConfig = {
4731
+ MODE: 3
4732
+ // 标记为vue3
4733
+ };
4734
+ return defineComponent(options);
4735
+ };
4736
+ var UniNavigatorElement = /* @__PURE__ */ (() => class extends UniElementImpl {
4737
+ constructor(data, pageNode) {
4738
+ super(data, pageNode);
4739
+ this.tagName = "NAVIGATOR";
4740
+ this.nodeName = this.tagName;
4741
+ this._getAttribute = (key) => {
4742
+ return null;
4743
+ };
4744
+ }
4745
+ getAnyAttribute(key) {
4746
+ var value = this._getAttribute(key);
4747
+ if (value != null) {
4748
+ return value;
4749
+ }
4750
+ return super.getAnyAttribute(key);
4751
+ }
4752
+ })();
4753
+ var navigatorProps = {
4754
+ url: {
4755
+ type: String,
4756
+ default: ""
4757
+ },
4758
+ openType: {
4759
+ type: String,
4760
+ default: "navigate"
4761
+ },
4762
+ delta: {
4763
+ type: Number,
4764
+ default: 1
4765
+ },
4766
+ animationType: {
4767
+ type: String,
4768
+ default: ""
4769
+ },
4770
+ animationDuration: {
4771
+ type: Number,
4772
+ default: 300
4773
+ },
4774
+ hoverClass: {
4775
+ type: String,
4776
+ default: "navigator-hover"
4777
+ },
4778
+ hoverStopPropagation: {
4779
+ type: Boolean,
4780
+ default: false
4781
+ },
4782
+ hoverStartTime: {
4783
+ type: Number,
4784
+ default: 50
4785
+ },
4786
+ hoverStayTime: {
4787
+ type: Number,
4788
+ default: 600
4789
+ }
4790
+ };
4791
+ const navigator = /* @__PURE__ */ defineBuiltInComponent({
4792
+ name: "Navigator",
4793
+ rootElement: {
4794
+ name: "uni-navigator-element",
4795
+ // @ts-expect-error not web element
4796
+ class: UniNavigatorElement
4797
+ },
4798
+ props: navigatorProps,
4799
+ emits: ["click"],
4800
+ setup(props, _ref) {
4801
+ var {
4802
+ emit,
4803
+ slots
4804
+ } = _ref;
4805
+ var $uniNavigatorElement = ref();
4806
+ var instance = getCurrentInstance();
4807
+ onMounted(() => {
4808
+ instance === null || instance === void 0 || instance.$waitNativeRender(() => {
4809
+ if (!instance)
4810
+ return;
4811
+ $uniNavigatorElement.value._getAttribute = (key) => {
4812
+ var _props$keyString$toSt, _props$keyString;
4813
+ var keyString = camelize(key);
4814
+ return props[keyString] !== null ? (_props$keyString$toSt = (_props$keyString = props[keyString]) === null || _props$keyString === void 0 ? void 0 : _props$keyString.toString()) !== null && _props$keyString$toSt !== void 0 ? _props$keyString$toSt : null : null;
4815
+ };
4816
+ });
4817
+ });
4818
+ var _onClick = ($event) => {
4819
+ var url = props.url;
4820
+ emit("click", $event);
4821
+ var animationDuration = props.animationDuration;
4822
+ switch (props.openType) {
4823
+ case "navigate":
4824
+ uni.navigateTo({
4825
+ url,
4826
+ animationType: props.animationType.length > 0 ? props.animationType : "pop-in",
4827
+ animationDuration
4828
+ });
4829
+ break;
4830
+ case "redirect":
4831
+ uni.redirectTo({
4832
+ url
4833
+ });
4834
+ break;
4835
+ case "switchTab":
4836
+ uni.switchTab({
4837
+ url
4838
+ });
4839
+ break;
4840
+ case "reLaunch":
4841
+ uni.reLaunch({
4842
+ url
4843
+ });
4844
+ break;
4845
+ case "navigateBack":
4846
+ uni.navigateBack({
4847
+ delta: props.delta,
4848
+ animationType: props.animationType.length > 0 ? props.animationType : "pop-out",
4849
+ animationDuration
4850
+ });
4851
+ break;
4852
+ default:
4853
+ console.log("<navigator/> openType attribute invalid");
4854
+ break;
4855
+ }
4856
+ };
4857
+ return () => {
4858
+ return createVNode("uni-navigator-element", {
4859
+ "ref": $uniNavigatorElement,
4860
+ "onClick": _onClick,
4861
+ "hoverClass": props.hoverClass,
4862
+ "hoverStopPropagation": props.hoverStopPropagation,
4863
+ "hoverStartTime": props.hoverStartTime,
4864
+ "hoverStayTime": props.hoverStayTime
4865
+ }, [renderSlot(slots, "default")], 8, ["onClick", "hoverClass", "hoverStopPropagation", "hoverStartTime", "hoverStayTime"]);
4866
+ };
4867
+ }
4868
+ });
4869
+ const navigator$1 = /* @__PURE__ */ Object.defineProperty({
4870
+ __proto__: null,
4871
+ UniNavigatorElement,
4872
+ default: navigator
4873
+ }, Symbol.toStringTag, { value: "Module" });
4874
+ const index = /* @__PURE__ */ Object.defineProperty({
4875
+ __proto__: null,
4876
+ Navigator: navigator$1
4877
+ }, Symbol.toStringTag, { value: "Module" });
4878
+ export {
4879
+ definePage as __definePage,
4880
+ registerApp as __registerApp,
4881
+ registerSystemRoute as __registerSystemRoute,
4882
+ systemRoutes as __uniSystemRoutes,
4883
+ index as components,
4884
+ defineAsyncApi,
4885
+ defineOffApi,
4886
+ defineOnApi,
4887
+ defineSyncApi,
4888
+ defineTaskApi,
4889
+ getCurrentPages$1 as getCurrentPages,
4890
+ initApp,
4891
+ index$1 as uni
4892
+ };