7129 lines
254 KiB
JavaScript
7129 lines
254 KiB
JavaScript
import { normalizeStyles as normalizeStyles$1, addLeadingSlash, invokeArrayFns, parseQuery, SYSTEM_DIALOG_PAGE_PATH_STARTER, EventChannel, once, parseUrl, Emitter, ON_UNHANDLE_REJECTION, ON_PAGE_NOT_FOUND, ON_ERROR, ON_SHOW, ON_HIDE, removeLeadingSlash, getLen, ON_UNLOAD, ON_READY, ON_PAGE_SCROLL, ON_PULL_DOWN_REFRESH, ON_REACH_BOTTOM, ON_RESIZE, ON_LAUNCH, ON_BACK_PRESS, isSystemDialogPage, isSystemActionSheetDialogPage } from "@dcloudio/uni-shared";
|
||
import { extend, isString, isPlainObject, isFunction as isFunction$1, isArray, isPromise, hasOwn, remove, invokeArrayFns as invokeArrayFns$1, capitalize, toTypeString, toRawType, parseStringStyle } from "@vue/shared";
|
||
import { createVNode, render, getCurrentInstance, onMounted, onBeforeUnmount, injectHook, resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, normalizeStyle, toDisplayString, withDirectives, vModelText, createCommentVNode, Fragment, renderList, defineComponent, warn, isInSSRComponentSetup, ref, watchEffect, watch, computed, camelize, onUnmounted, reactive, provide, inject, nextTick } from "vue";
|
||
function get$pageByPage(page) {
|
||
return page.vm.$basePage;
|
||
}
|
||
function getCurrentPage() {
|
||
var pages2 = getCurrentPages();
|
||
var len = pages2.length;
|
||
if (len) {
|
||
return pages2[len - 1];
|
||
}
|
||
}
|
||
function getCurrentPageMeta() {
|
||
var _getCurrentPage;
|
||
var $page = (_getCurrentPage = getCurrentPage()) === null || _getCurrentPage === void 0 || (_getCurrentPage = _getCurrentPage.vm) === null || _getCurrentPage === void 0 ? void 0 : _getCurrentPage.$basePage;
|
||
if ($page) {
|
||
return $page.meta;
|
||
}
|
||
}
|
||
function getCurrentPageVm() {
|
||
var _getCurrentPage3;
|
||
var page = (_getCurrentPage3 = getCurrentPage()) === null || _getCurrentPage3 === void 0 ? void 0 : _getCurrentPage3.vm;
|
||
if (page) {
|
||
return page.$vm;
|
||
}
|
||
}
|
||
var PAGE_META_KEYS = ["navigationBar", "pullToRefresh"];
|
||
function initGlobalStyle() {
|
||
return JSON.parse(JSON.stringify(__uniConfig.globalStyle || {}));
|
||
}
|
||
function initRouteMeta(pageMeta, id2) {
|
||
var globalStyle = initGlobalStyle();
|
||
var res = extend({
|
||
id: id2
|
||
}, globalStyle, pageMeta);
|
||
PAGE_META_KEYS.forEach((name) => {
|
||
res[name] = extend({}, globalStyle[name], pageMeta[name]);
|
||
});
|
||
var {
|
||
navigationBar
|
||
} = res;
|
||
navigationBar.titleText && navigationBar.titleImage && (navigationBar.titleText = "");
|
||
return res;
|
||
}
|
||
function initPageInternalInstance(openType, url, pageQuery, meta, eventChannel, themeMode) {
|
||
var {
|
||
id: id2,
|
||
route
|
||
} = meta;
|
||
var titleColor = normalizeStyles$1(meta.navigationBar, __uniConfig.themeConfig, themeMode).titleColor;
|
||
return {
|
||
id: id2,
|
||
path: addLeadingSlash(route),
|
||
route,
|
||
fullPath: url,
|
||
options: pageQuery,
|
||
meta,
|
||
openType,
|
||
eventChannel,
|
||
statusBarStyle: titleColor === "#ffffff" ? "light" : "dark"
|
||
};
|
||
}
|
||
function invokeHook(vm, name, args) {
|
||
if (isString(vm)) {
|
||
args = name;
|
||
name = vm;
|
||
vm = getCurrentPageVm();
|
||
} else if (typeof vm === "number") {
|
||
var page = getCurrentPages().find((page2) => get$pageByPage(page2).id === vm);
|
||
if (page) {
|
||
vm = page.$vm;
|
||
} else {
|
||
vm = getCurrentPageVm();
|
||
}
|
||
}
|
||
if (!vm) {
|
||
return;
|
||
}
|
||
{
|
||
if (vm.__call_hook) {
|
||
return vm.__call_hook(name, args);
|
||
}
|
||
}
|
||
var hooks = vm.$[name];
|
||
return hooks && invokeArrayFns(hooks, args);
|
||
}
|
||
function normalizeRoute(toRoute) {
|
||
if (toRoute.indexOf("/") === 0 || toRoute.indexOf("uni:") === 0) {
|
||
return toRoute;
|
||
}
|
||
var fromRoute = "";
|
||
var pages2 = getCurrentPages();
|
||
if (pages2.length) {
|
||
fromRoute = get$pageByPage(pages2[pages2.length - 1]).route;
|
||
}
|
||
return getRealRoute(fromRoute, toRoute);
|
||
}
|
||
function getRealRoute(fromRoute, toRoute) {
|
||
if (toRoute.indexOf("/") === 0) {
|
||
return toRoute;
|
||
}
|
||
if (toRoute.indexOf("./") === 0) {
|
||
return getRealRoute(fromRoute, toRoute.slice(2));
|
||
}
|
||
var toRouteArray = toRoute.split("/");
|
||
var toRouteLength = toRouteArray.length;
|
||
var i = 0;
|
||
for (; i < toRouteLength && toRouteArray[i] === ".."; i++) {
|
||
}
|
||
toRouteArray.splice(0, i);
|
||
toRoute = toRouteArray.join("/");
|
||
var fromRouteArray = fromRoute.length > 0 ? fromRoute.split("/") : [];
|
||
fromRouteArray.splice(fromRouteArray.length - i - 1, i + 1);
|
||
return addLeadingSlash(fromRouteArray.concat(toRouteArray).join("/"));
|
||
}
|
||
function getRouteOptions(path) {
|
||
var alias = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
|
||
if (alias) {
|
||
return __uniRoutes.find((route) => route.path === path || route.alias === path);
|
||
}
|
||
return __uniRoutes.find((route) => route.path === path);
|
||
}
|
||
function getRouteMeta(path) {
|
||
var routeOptions = getRouteOptions(path);
|
||
if (routeOptions) {
|
||
return routeOptions.meta;
|
||
}
|
||
}
|
||
function initPageVm(pageVm, page) {
|
||
pageVm.route = page.route;
|
||
pageVm.$vm = pageVm;
|
||
pageVm.$page = page;
|
||
pageVm.$mpType = "page";
|
||
pageVm.$fontFamilySet = /* @__PURE__ */ new Set();
|
||
if (page.meta.isTabBar) {
|
||
pageVm.$.__isTabBar = true;
|
||
pageVm.$.__isActive = true;
|
||
}
|
||
}
|
||
function createLaunchOptions() {
|
||
return {
|
||
path: "",
|
||
query: {},
|
||
scene: 1001,
|
||
referrerInfo: {
|
||
appId: "",
|
||
extraData: {}
|
||
}
|
||
};
|
||
}
|
||
function defineGlobalData(app, defaultGlobalData) {
|
||
var options = app.$options || {};
|
||
options.globalData = extend(options.globalData || {}, defaultGlobalData);
|
||
Object.defineProperty(app, "globalData", {
|
||
get() {
|
||
return options.globalData;
|
||
},
|
||
set(newGlobalData) {
|
||
options.globalData = newGlobalData;
|
||
}
|
||
});
|
||
}
|
||
function tryCatch(fn) {
|
||
return function() {
|
||
try {
|
||
return fn.apply(fn, arguments);
|
||
} catch (e) {
|
||
console.error(e);
|
||
}
|
||
};
|
||
}
|
||
var invokeCallbackId = 1;
|
||
var invokeCallbacks = {};
|
||
function addInvokeCallback(id2, name, callback) {
|
||
var keepAlive = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;
|
||
invokeCallbacks[id2] = {
|
||
name,
|
||
keepAlive,
|
||
callback
|
||
};
|
||
return id2;
|
||
}
|
||
function invokeCallback(id2, res, extras) {
|
||
if (typeof id2 === "number") {
|
||
var opts = invokeCallbacks[id2];
|
||
if (opts) {
|
||
if (!opts.keepAlive) {
|
||
delete invokeCallbacks[id2];
|
||
}
|
||
return opts.callback(res, extras);
|
||
}
|
||
}
|
||
return res;
|
||
}
|
||
var API_SUCCESS = "success";
|
||
var API_FAIL = "fail";
|
||
var API_COMPLETE = "complete";
|
||
function getApiCallbacks(args) {
|
||
var apiCallbacks = {};
|
||
for (var name in args) {
|
||
var fn = args[name];
|
||
if (isFunction$1(fn)) {
|
||
apiCallbacks[name] = tryCatch(fn);
|
||
delete args[name];
|
||
}
|
||
}
|
||
return apiCallbacks;
|
||
}
|
||
function normalizeErrMsg(errMsg, name) {
|
||
if (!errMsg || errMsg.indexOf(":fail") === -1) {
|
||
return name + ":ok";
|
||
}
|
||
return name + errMsg.substring(errMsg.indexOf(":fail"));
|
||
}
|
||
function createAsyncApiCallback(name) {
|
||
var args = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
||
var {
|
||
beforeAll,
|
||
beforeSuccess
|
||
} = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
|
||
if (!isPlainObject(args)) {
|
||
args = {};
|
||
}
|
||
var {
|
||
success,
|
||
fail,
|
||
complete
|
||
} = getApiCallbacks(args);
|
||
var hasSuccess = isFunction$1(success);
|
||
var hasFail = isFunction$1(fail);
|
||
var hasComplete = isFunction$1(complete);
|
||
var callbackId2 = invokeCallbackId++;
|
||
addInvokeCallback(callbackId2, name, (res) => {
|
||
res = res || {};
|
||
res.errMsg = normalizeErrMsg(res.errMsg, name);
|
||
isFunction$1(beforeAll) && beforeAll(res);
|
||
if (res.errMsg === name + ":ok") {
|
||
isFunction$1(beforeSuccess) && beforeSuccess(res, args);
|
||
hasSuccess && success(res);
|
||
} else {
|
||
hasFail && fail(res);
|
||
}
|
||
hasComplete && complete(res);
|
||
});
|
||
return callbackId2;
|
||
}
|
||
var HOOK_SUCCESS = "success";
|
||
var HOOK_FAIL = "fail";
|
||
var HOOK_COMPLETE = "complete";
|
||
var globalInterceptors = {};
|
||
var scopedInterceptors = {};
|
||
function wrapperHook(hook, params) {
|
||
return function(data) {
|
||
return hook(data, params) || data;
|
||
};
|
||
}
|
||
function queue(hooks, data, params) {
|
||
var promise = false;
|
||
for (var i = 0; i < hooks.length; i++) {
|
||
var hook = hooks[i];
|
||
if (promise) {
|
||
promise = Promise.resolve(wrapperHook(hook, params));
|
||
} else {
|
||
var res = hook(data, params);
|
||
if (isPromise(res)) {
|
||
promise = Promise.resolve(res);
|
||
}
|
||
if (res === false) {
|
||
return {
|
||
then() {
|
||
},
|
||
catch() {
|
||
}
|
||
};
|
||
}
|
||
}
|
||
}
|
||
return promise || {
|
||
then(callback) {
|
||
return callback(data);
|
||
},
|
||
catch() {
|
||
}
|
||
};
|
||
}
|
||
function wrapperOptions(interceptors) {
|
||
var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
||
[HOOK_SUCCESS, HOOK_FAIL, HOOK_COMPLETE].forEach((name) => {
|
||
var hooks = interceptors[name];
|
||
if (!isArray(hooks)) {
|
||
return;
|
||
}
|
||
var oldCallback = options[name];
|
||
options[name] = function callbackInterceptor(res) {
|
||
queue(hooks, res, options).then((res2) => {
|
||
return isFunction$1(oldCallback) && oldCallback(res2) || res2;
|
||
});
|
||
};
|
||
});
|
||
return options;
|
||
}
|
||
function wrapperReturnValue(method, returnValue) {
|
||
var returnValueHooks = [];
|
||
if (isArray(globalInterceptors.returnValue)) {
|
||
returnValueHooks.push(...globalInterceptors.returnValue);
|
||
}
|
||
var interceptor = scopedInterceptors[method];
|
||
if (interceptor && isArray(interceptor.returnValue)) {
|
||
returnValueHooks.push(...interceptor.returnValue);
|
||
}
|
||
returnValueHooks.forEach((hook) => {
|
||
returnValue = hook(returnValue) || returnValue;
|
||
});
|
||
return returnValue;
|
||
}
|
||
function getApiInterceptorHooks(method) {
|
||
var interceptor = /* @__PURE__ */ Object.create(null);
|
||
Object.keys(globalInterceptors).forEach((hook) => {
|
||
if (hook !== "returnValue") {
|
||
interceptor[hook] = globalInterceptors[hook].slice();
|
||
}
|
||
});
|
||
var scopedInterceptor = scopedInterceptors[method];
|
||
if (scopedInterceptor) {
|
||
Object.keys(scopedInterceptor).forEach((hook) => {
|
||
if (hook !== "returnValue") {
|
||
interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]);
|
||
}
|
||
});
|
||
}
|
||
return interceptor;
|
||
}
|
||
function invokeApi(method, api, options, params) {
|
||
var interceptor = getApiInterceptorHooks(method);
|
||
if (interceptor && Object.keys(interceptor).length) {
|
||
if (isArray(interceptor.invoke)) {
|
||
var res = queue(interceptor.invoke, options);
|
||
return res.then((options2) => {
|
||
return api(wrapperOptions(getApiInterceptorHooks(method), options2), ...params);
|
||
});
|
||
} else {
|
||
return api(wrapperOptions(interceptor, options), ...params);
|
||
}
|
||
}
|
||
return api(options, ...params);
|
||
}
|
||
function hasCallback(args) {
|
||
if (isPlainObject(args) && [API_SUCCESS, API_FAIL, API_COMPLETE].find((cb) => isFunction$1(args[cb]))) {
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
function handlePromise(promise) {
|
||
return promise;
|
||
}
|
||
function promisify(name, fn) {
|
||
return function() {
|
||
var args = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
||
for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
||
rest[_key - 1] = arguments[_key];
|
||
}
|
||
if (hasCallback(args)) {
|
||
return wrapperReturnValue(name, invokeApi(name, fn, args, rest));
|
||
}
|
||
return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => {
|
||
invokeApi(name, fn, extend(args, {
|
||
success: resolve,
|
||
fail: reject
|
||
}), rest);
|
||
})));
|
||
};
|
||
}
|
||
function formatApiArgs(args, options) {
|
||
var params = args[0];
|
||
if (!options || !options.formatArgs || !isPlainObject(options.formatArgs) && isPlainObject(params)) {
|
||
return;
|
||
}
|
||
var formatArgs = options.formatArgs;
|
||
var keys = Object.keys(formatArgs);
|
||
for (var i = 0; i < keys.length; i++) {
|
||
var name = keys[i];
|
||
var formatterOrDefaultValue = formatArgs[name];
|
||
if (isFunction$1(formatterOrDefaultValue)) {
|
||
var errMsg = formatterOrDefaultValue(args[0][name], params);
|
||
if (isString(errMsg)) {
|
||
return errMsg;
|
||
}
|
||
} else {
|
||
if (!hasOwn(params, name)) {
|
||
params[name] = formatterOrDefaultValue;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
function invokeSuccess(id2, name, res) {
|
||
var result = {
|
||
errMsg: name + ":ok"
|
||
};
|
||
{
|
||
result.errSubject = name;
|
||
}
|
||
return invokeCallback(id2, extend(res || {}, result));
|
||
}
|
||
function invokeFail(id2, name, errMsg) {
|
||
var errRes = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {};
|
||
var errMsgPrefix = name + ":fail";
|
||
var apiErrMsg = "";
|
||
if (!errMsg) {
|
||
apiErrMsg = errMsgPrefix;
|
||
} else if (errMsg.indexOf(errMsgPrefix) === 0) {
|
||
apiErrMsg = errMsg;
|
||
} else {
|
||
apiErrMsg = errMsgPrefix + " " + errMsg;
|
||
}
|
||
var res = extend({
|
||
errMsg: apiErrMsg
|
||
}, errRes);
|
||
{
|
||
if (typeof UniError !== "undefined") {
|
||
res = typeof errRes.errCode !== "undefined" ? new UniError(name, errRes.errCode, apiErrMsg) : new UniError(apiErrMsg, errRes);
|
||
}
|
||
}
|
||
return invokeCallback(id2, res);
|
||
}
|
||
function beforeInvokeApi(name, args, protocol, options) {
|
||
if (options && options.beforeInvoke) {
|
||
var errMsg2 = options.beforeInvoke(args);
|
||
if (isString(errMsg2)) {
|
||
return errMsg2;
|
||
}
|
||
}
|
||
var errMsg = formatApiArgs(args, options);
|
||
if (errMsg) {
|
||
return errMsg;
|
||
}
|
||
}
|
||
function parseErrMsg(errMsg) {
|
||
if (!errMsg || isString(errMsg)) {
|
||
return errMsg;
|
||
}
|
||
if (errMsg.stack) {
|
||
return errMsg.message;
|
||
}
|
||
return errMsg;
|
||
}
|
||
function wrapperTaskApi(name, fn, protocol, options) {
|
||
return (args) => {
|
||
var id2 = createAsyncApiCallback(name, args, options);
|
||
var errMsg = beforeInvokeApi(name, [args], protocol, options);
|
||
if (errMsg) {
|
||
return invokeFail(id2, name, errMsg);
|
||
}
|
||
return fn(args, {
|
||
resolve: (res) => invokeSuccess(id2, name, res),
|
||
reject: (errMsg2, errRes) => invokeFail(id2, name, parseErrMsg(errMsg2), errRes)
|
||
});
|
||
};
|
||
}
|
||
function wrapperSyncApi(name, fn, protocol, options) {
|
||
return function() {
|
||
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
||
args[_key] = arguments[_key];
|
||
}
|
||
var errMsg = beforeInvokeApi(name, args, protocol, options);
|
||
if (errMsg) {
|
||
throw new Error(errMsg);
|
||
}
|
||
return fn.apply(null, args);
|
||
};
|
||
}
|
||
function wrapperAsyncApi(name, fn, protocol, options) {
|
||
return wrapperTaskApi(name, fn, protocol, options);
|
||
}
|
||
function defineSyncApi(name, fn, protocol, options) {
|
||
return wrapperSyncApi(name, fn, void 0, options);
|
||
}
|
||
function defineAsyncApi(name, fn, protocol, options) {
|
||
return promisify(name, wrapperAsyncApi(name, fn, void 0, options));
|
||
}
|
||
var vueApp;
|
||
function getVueApp() {
|
||
return vueApp;
|
||
}
|
||
function initVueApp(appVm) {
|
||
var internalInstance = appVm.$;
|
||
Object.defineProperty(internalInstance.ctx, "$children", {
|
||
get() {
|
||
return getAllPages().map((page) => page.$vm);
|
||
}
|
||
});
|
||
var appContext = internalInstance.appContext;
|
||
vueApp = extend(appContext.app, {
|
||
mountPage(pageComponent, pageProps, pageContainer) {
|
||
var vnode = createVNode(pageComponent, pageProps);
|
||
vnode.appContext = appContext;
|
||
vnode.__page_container__ = pageContainer;
|
||
render(vnode, pageContainer);
|
||
var publicThis = vnode.component.proxy;
|
||
publicThis.__page_container__ = pageContainer;
|
||
return publicThis;
|
||
},
|
||
unmountPage: (pageInstance) => {
|
||
var {
|
||
__page_container__
|
||
} = pageInstance;
|
||
if (__page_container__) {
|
||
__page_container__.isUnmounted = true;
|
||
render(null, __page_container__);
|
||
}
|
||
}
|
||
});
|
||
}
|
||
function getPage$BasePage(page) {
|
||
return page.$basePage;
|
||
}
|
||
var pages = [];
|
||
function addCurrentPage(page) {
|
||
var $page = getPage$BasePage(page);
|
||
if (!$page.meta.isNVue) {
|
||
return pages.push(page);
|
||
}
|
||
var index2 = pages.findIndex((p) => getPage$BasePage(p).id === $page.id);
|
||
if (index2 > -1) {
|
||
pages.splice(index2, 1, page);
|
||
} else {
|
||
pages.push(page);
|
||
}
|
||
}
|
||
function getAllPages() {
|
||
return pages;
|
||
}
|
||
function getCurrentPages$1() {
|
||
var curPages = getCurrentBasePages();
|
||
{
|
||
return curPages.map((page) => page.$page);
|
||
}
|
||
}
|
||
function getCurrentBasePages() {
|
||
var curPages = [];
|
||
pages.forEach((page) => {
|
||
if (page.$.__isTabBar) {
|
||
if (page.$.__isActive) {
|
||
curPages.push(page);
|
||
}
|
||
} else {
|
||
curPages.push(page);
|
||
}
|
||
});
|
||
return curPages;
|
||
}
|
||
function removePage(curPage) {
|
||
var index2 = pages.findIndex((page) => page === curPage);
|
||
if (index2 === -1) {
|
||
return;
|
||
}
|
||
var $basePage = getPage$BasePage(curPage);
|
||
if (!$basePage.meta.isNVue) {
|
||
getVueApp().unmountPage(curPage);
|
||
}
|
||
var removePages2 = pages.splice(index2, 1);
|
||
{
|
||
removePages2[0].$page = null;
|
||
}
|
||
}
|
||
function backbuttonListener() {
|
||
uni.navigateBack({
|
||
from: "backbutton",
|
||
success() {
|
||
}
|
||
// 传入空方法,避免返回Promise,因为onBackPress可能导致fail
|
||
});
|
||
}
|
||
var enterOptions$1 = /* @__PURE__ */ createLaunchOptions();
|
||
var launchOptions$1 = /* @__PURE__ */ createLaunchOptions();
|
||
function getLaunchOptions() {
|
||
return extend({}, launchOptions$1);
|
||
}
|
||
function initLaunchOptions(_ref2) {
|
||
var {
|
||
path,
|
||
query,
|
||
referrerInfo
|
||
} = _ref2;
|
||
extend(launchOptions$1, {
|
||
path,
|
||
query: query ? parseQuery(query) : {},
|
||
referrerInfo: referrerInfo || {},
|
||
// TODO uni-app x
|
||
channel: void 0,
|
||
launcher: void 0
|
||
});
|
||
extend(enterOptions$1, launchOptions$1);
|
||
return enterOptions$1;
|
||
}
|
||
var ON_BACK_BUTTON = "onBackButton";
|
||
var ON_POP_GESTURE = "onPopGesture";
|
||
var OPEN_DIALOG_PAGE = "openDialogPage";
|
||
function setupPage(component) {
|
||
var oldSetup = component.setup;
|
||
component.inheritAttrs = false;
|
||
component.setup = (props, ctx) => {
|
||
var {
|
||
attrs: {
|
||
__pageId,
|
||
__pagePath,
|
||
/*__pageQuery,*/
|
||
__pageInstance
|
||
}
|
||
} = ctx;
|
||
var instance = getCurrentInstance();
|
||
var pageVm = instance.proxy;
|
||
initPageVm(pageVm, __pageInstance);
|
||
{
|
||
instance.$dialogPages = [];
|
||
var uniPage;
|
||
if (__pageInstance.openType === OPEN_DIALOG_PAGE) {
|
||
var currentPage = getCurrentPage();
|
||
if (__pagePath.startsWith(SYSTEM_DIALOG_PAGE_PATH_STARTER)) {
|
||
var systemDialogPages = currentPage.vm.$systemDialogPages;
|
||
uniPage = systemDialogPages[systemDialogPages.length - 1];
|
||
} else {
|
||
uniPage = new UniDialogPageImpl();
|
||
}
|
||
} else {
|
||
uniPage = new UniNormalPageImpl();
|
||
}
|
||
pageVm.$basePage = pageVm.$page;
|
||
pageVm.$page = uniPage;
|
||
uniPage.route = pageVm.$basePage.route;
|
||
uniPage.optionsByJS = pageVm.$basePage.options;
|
||
Object.defineProperty(uniPage, "options", {
|
||
get: function() {
|
||
return new UTSJSONObject(pageVm.$basePage.options);
|
||
}
|
||
});
|
||
uniPage.vm = pageVm;
|
||
uniPage.$vm = pageVm;
|
||
uniPage.getElementById = (id2) => {
|
||
var _pageVm$$el;
|
||
var currentPage2 = getCurrentPage();
|
||
if (currentPage2 !== uniPage) {
|
||
return null;
|
||
}
|
||
var bodyNode = (_pageVm$$el = pageVm.$el) === null || _pageVm$$el === void 0 ? void 0 : _pageVm$$el.parentNode;
|
||
if (bodyNode == null) {
|
||
console.warn("bodyNode is null");
|
||
return null;
|
||
}
|
||
return bodyNode.querySelector("#".concat(id2));
|
||
};
|
||
uniPage.getParentPage = () => {
|
||
var parentPage = uniPage.getParentPageByJS();
|
||
return parentPage || null;
|
||
};
|
||
uniPage.getPageStyle = () => {
|
||
var pageStyle = uniPage.getPageStyleByJS();
|
||
return new UTSJSONObject(pageStyle);
|
||
};
|
||
uniPage.$getPageStyle = () => {
|
||
return uniPage.getPageStyle();
|
||
};
|
||
uniPage.setPageStyle = (styles2) => {
|
||
uniPage.setPageStyleByJS(styles2);
|
||
};
|
||
uniPage.$setPageStyle = (styles2) => {
|
||
uniPage.setPageStyle(styles2);
|
||
};
|
||
uniPage.getAndroidView = () => null;
|
||
uniPage.getHTMLElement = () => null;
|
||
if (getPage$BasePage(pageVm).openType !== OPEN_DIALOG_PAGE) {
|
||
addCurrentPageWithInitScope(__pageId, pageVm, __pageInstance);
|
||
}
|
||
}
|
||
{
|
||
onMounted(() => {
|
||
var _pageVm$$el2;
|
||
var rootElement = (_pageVm$$el2 = pageVm.$el) === null || _pageVm$$el2 === void 0 ? void 0 : _pageVm$$el2._parent;
|
||
if (rootElement) {
|
||
rootElement._page = pageVm.$page;
|
||
}
|
||
});
|
||
onBeforeUnmount(() => {
|
||
var _pageVm$$el3;
|
||
var rootElement = (_pageVm$$el3 = pageVm.$el) === null || _pageVm$$el3 === void 0 ? void 0 : _pageVm$$el3._parent;
|
||
if (rootElement) {
|
||
rootElement._page = null;
|
||
}
|
||
});
|
||
}
|
||
if (oldSetup) {
|
||
return oldSetup(props, ctx);
|
||
}
|
||
};
|
||
return component;
|
||
}
|
||
function initScope(pageId, vm, pageInstance) {
|
||
{
|
||
Object.defineProperty(vm, "$viewToTempFilePath", {
|
||
get() {
|
||
return vm.$nativePage.viewToTempFilePath.bind(vm.$nativePage);
|
||
}
|
||
});
|
||
Object.defineProperty(vm, "$getPageStyle", {
|
||
get() {
|
||
return vm.$nativePage.getPageStyle.bind(vm.$nativePage);
|
||
}
|
||
});
|
||
Object.defineProperty(vm, "$setPageStyle", {
|
||
get() {
|
||
return vm.$nativePage.setPageStyle.bind(vm.$nativePage);
|
||
}
|
||
});
|
||
}
|
||
vm.getOpenerEventChannel = () => {
|
||
if (!pageInstance.eventChannel) {
|
||
pageInstance.eventChannel = new EventChannel(pageId);
|
||
}
|
||
return pageInstance.eventChannel;
|
||
};
|
||
return vm;
|
||
}
|
||
function addCurrentPageWithInitScope(pageId, pageVm, pageInstance) {
|
||
addCurrentPage(initScope(pageId, pageVm, pageInstance));
|
||
}
|
||
function isVuePageAsyncComponent(component) {
|
||
return isFunction$1(component);
|
||
}
|
||
var pagesMap = /* @__PURE__ */ new Map();
|
||
function definePage(pagePath, asyncComponent) {
|
||
pagesMap.set(pagePath, once(createFactory(asyncComponent)));
|
||
}
|
||
function createFactory(component) {
|
||
return () => {
|
||
if (isVuePageAsyncComponent(component)) {
|
||
return component().then((component2) => setupPage(component2));
|
||
}
|
||
return setupPage(component);
|
||
};
|
||
}
|
||
function initRouteOptions(path, openType) {
|
||
var routeOptions = JSON.parse(JSON.stringify(getRouteOptions(path)));
|
||
routeOptions.meta = initRouteMeta(routeOptions.meta);
|
||
if (openType !== "preloadPage" && !__uniConfig.realEntryPagePath && (openType === "reLaunch" || getCurrentPages().length === 0)) {
|
||
routeOptions.meta.isQuit = true;
|
||
} else if (!routeOptions.meta.isTabBar) {
|
||
routeOptions.meta.isQuit = false;
|
||
}
|
||
return routeOptions;
|
||
}
|
||
var id = 1;
|
||
function getWebviewId() {
|
||
return id;
|
||
}
|
||
function genWebviewId() {
|
||
return id++;
|
||
}
|
||
var ANI_SHOW = "pop-in";
|
||
var ANI_DURATION = 300;
|
||
var ANI_CLOSE = "pop-out";
|
||
function hasLeadingSlash(str) {
|
||
return str.indexOf("/") == 0;
|
||
}
|
||
function getRealPath(path) {
|
||
var fix = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
|
||
if (hasLeadingSlash(path)) {
|
||
return path;
|
||
}
|
||
if (fix && path.indexOf(".") !== 0) {
|
||
return "/" + path;
|
||
}
|
||
var currentPage = getCurrentPage().vm;
|
||
var currentPath = !currentPage ? "/" : parseUrl(currentPage.route).path;
|
||
var currentPathArray = currentPath.split("/");
|
||
var pathArray = path.split("/");
|
||
var resultArray = [];
|
||
for (var index2 = 0; index2 < pathArray.length; index2++) {
|
||
var element = pathArray[index2];
|
||
if (element == "..") {
|
||
currentPathArray.pop();
|
||
} else if (element != ".") {
|
||
resultArray.push(element);
|
||
}
|
||
}
|
||
return addLeadingSlash(currentPathArray.concat(resultArray).join("/"));
|
||
}
|
||
var systemRoutes = [];
|
||
function registerSystemRoute(route, page) {
|
||
var meta = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
|
||
if (systemRoutes.includes(route)) {
|
||
return;
|
||
}
|
||
systemRoutes.push(route);
|
||
__uniRoutes.push({
|
||
path: route,
|
||
meta: extend({
|
||
isQuit: false,
|
||
isEntry: false,
|
||
route,
|
||
navigationBar: {}
|
||
}, meta)
|
||
});
|
||
definePage(route, page);
|
||
}
|
||
var API_ADD_INTERCEPTOR = "addInterceptor";
|
||
var API_REMOVE_INTERCEPTOR = "removeInterceptor";
|
||
function mergeInterceptorHook(interceptors2, interceptor) {
|
||
Object.keys(interceptor).forEach((hook) => {
|
||
if (isFunction$1(interceptor[hook])) {
|
||
interceptors2[hook] = mergeHook(interceptors2[hook], interceptor[hook]);
|
||
}
|
||
});
|
||
}
|
||
function removeInterceptorHook(interceptors2, interceptor) {
|
||
if (!interceptors2 || !interceptor) {
|
||
return;
|
||
}
|
||
Object.keys(interceptor).forEach((name) => {
|
||
var hooks = interceptors2[name];
|
||
var hook = interceptor[name];
|
||
if (isArray(hooks) && isFunction$1(hook)) {
|
||
remove(hooks, hook);
|
||
}
|
||
});
|
||
}
|
||
function mergeHook(parentVal, childVal) {
|
||
var res = childVal ? parentVal ? parentVal.concat(childVal) : isArray(childVal) ? childVal : [childVal] : parentVal;
|
||
return res ? dedupeHooks(res) : res;
|
||
}
|
||
function dedupeHooks(hooks) {
|
||
var res = [];
|
||
for (var i = 0; i < hooks.length; i++) {
|
||
if (res.indexOf(hooks[i]) === -1) {
|
||
res.push(hooks[i]);
|
||
}
|
||
}
|
||
return res;
|
||
}
|
||
var addInterceptor = /* @__PURE__ */ defineSyncApi(API_ADD_INTERCEPTOR, (method, interceptor) => {
|
||
if (isString(method) && isPlainObject(interceptor)) {
|
||
mergeInterceptorHook(scopedInterceptors[method] || (scopedInterceptors[method] = {}), interceptor);
|
||
} else if (isPlainObject(method)) {
|
||
mergeInterceptorHook(globalInterceptors, method);
|
||
}
|
||
});
|
||
var removeInterceptor = /* @__PURE__ */ defineSyncApi(API_REMOVE_INTERCEPTOR, (method, interceptor) => {
|
||
if (isString(method)) {
|
||
if (isPlainObject(interceptor)) {
|
||
removeInterceptorHook(scopedInterceptors[method], interceptor);
|
||
} else {
|
||
delete scopedInterceptors[method];
|
||
}
|
||
} else if (isPlainObject(method)) {
|
||
removeInterceptorHook(globalInterceptors, method);
|
||
}
|
||
});
|
||
var API_ON = "$on";
|
||
var API_ONCE = "$once";
|
||
var API_OFF = "$off";
|
||
var API_EMIT = "$emit";
|
||
class EventBus {
|
||
constructor() {
|
||
this.$emitter = new Emitter();
|
||
}
|
||
on(name, callback) {
|
||
return this.$emitter.on(name, callback);
|
||
}
|
||
once(name, callback) {
|
||
return this.$emitter.once(name, callback);
|
||
}
|
||
off(name, callback) {
|
||
if (!name) {
|
||
this.$emitter.e = {};
|
||
return;
|
||
}
|
||
this.$emitter.off(name, callback);
|
||
}
|
||
emit(name) {
|
||
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
||
args[_key - 1] = arguments[_key];
|
||
}
|
||
this.$emitter.emit(name, ...args);
|
||
}
|
||
}
|
||
var eventBus = new EventBus();
|
||
var $on = /* @__PURE__ */ defineSyncApi(API_ON, (name, callback) => {
|
||
var id2 = eventBus.on(name, callback);
|
||
{
|
||
return id2;
|
||
}
|
||
});
|
||
var $once = /* @__PURE__ */ defineSyncApi(API_ONCE, (name, callback) => {
|
||
var id2 = eventBus.once(name, callback);
|
||
{
|
||
return id2;
|
||
}
|
||
});
|
||
var $off = /* @__PURE__ */ defineSyncApi(API_OFF, (name, callback) => {
|
||
if (!isArray(name))
|
||
name = name ? [name] : [];
|
||
name.forEach((n) => eventBus.off(n, callback));
|
||
});
|
||
var $emit = /* @__PURE__ */ defineSyncApi(API_EMIT, function(name) {
|
||
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
||
args[_key2 - 1] = arguments[_key2];
|
||
}
|
||
eventBus.emit(name, ...args);
|
||
});
|
||
var appHooks = {
|
||
[ON_UNHANDLE_REJECTION]: [],
|
||
[ON_PAGE_NOT_FOUND]: [],
|
||
[ON_ERROR]: [],
|
||
[ON_SHOW]: [],
|
||
[ON_HIDE]: []
|
||
};
|
||
function injectAppHooks(appInstance) {
|
||
Object.keys(appHooks).forEach((type) => {
|
||
appHooks[type].forEach((hook) => {
|
||
injectHook(type, hook, appInstance);
|
||
});
|
||
});
|
||
}
|
||
function encodeQueryString(url) {
|
||
if (!isString(url)) {
|
||
return url;
|
||
}
|
||
var index2 = url.indexOf("?");
|
||
if (index2 === -1) {
|
||
return url;
|
||
}
|
||
var query = url.slice(index2 + 1).trim().replace(/^(\?|#|&)/, "");
|
||
if (!query) {
|
||
return url;
|
||
}
|
||
url = url.slice(0, index2);
|
||
var params = [];
|
||
query.split("&").forEach((param) => {
|
||
var parts = param.replace(/\+/g, " ").split("=");
|
||
var key = parts.shift();
|
||
var val = parts.length > 0 ? parts.join("=") : "";
|
||
params.push(key + "=" + encodeURIComponent(val));
|
||
});
|
||
return params.length ? url + "?" + params.join("&") : url;
|
||
}
|
||
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"];
|
||
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"];
|
||
var BaseRouteProtocol = {
|
||
url: {
|
||
type: String,
|
||
required: true
|
||
}
|
||
};
|
||
var API_NAVIGATE_TO = "navigateTo";
|
||
var API_REDIRECT_TO = "redirectTo";
|
||
var API_RE_LAUNCH = "reLaunch";
|
||
var API_SWITCH_TAB = "switchTab";
|
||
var API_NAVIGATE_BACK = "navigateBack";
|
||
var API_PRELOAD_PAGE = "preloadPage";
|
||
var API_UN_PRELOAD_PAGE = "unPreloadPage";
|
||
var NavigateToProtocol = /* @__PURE__ */ extend({}, BaseRouteProtocol, createAnimationProtocol(ANIMATION_IN));
|
||
var NavigateBackProtocol = /* @__PURE__ */ extend({
|
||
delta: {
|
||
type: Number
|
||
}
|
||
}, createAnimationProtocol(ANIMATION_OUT));
|
||
var RedirectToProtocol = BaseRouteProtocol;
|
||
var ReLaunchProtocol = BaseRouteProtocol;
|
||
var SwitchTabProtocol = BaseRouteProtocol;
|
||
var NavigateToOptions = /* @__PURE__ */ createRouteOptions(API_NAVIGATE_TO);
|
||
var RedirectToOptions = /* @__PURE__ */ createRouteOptions(API_REDIRECT_TO);
|
||
var ReLaunchOptions = /* @__PURE__ */ createRouteOptions(API_RE_LAUNCH);
|
||
var SwitchTabOptions = /* @__PURE__ */ createRouteOptions(API_SWITCH_TAB);
|
||
var NavigateBackOptions = {
|
||
formatArgs: {
|
||
delta(value, params) {
|
||
value = parseInt(value + "") || 1;
|
||
params.delta = Math.min(getCurrentPages().length - 1, value);
|
||
}
|
||
}
|
||
};
|
||
function createAnimationProtocol(animationTypes) {
|
||
return {
|
||
animationType: {
|
||
type: String,
|
||
validator(type) {
|
||
if (type && animationTypes.indexOf(type) === -1) {
|
||
return "`" + type + "` is not supported for `animationType` (supported values are: `" + animationTypes.join("`|`") + "`)";
|
||
}
|
||
}
|
||
},
|
||
animationDuration: {
|
||
type: Number
|
||
}
|
||
};
|
||
}
|
||
var navigatorLock;
|
||
function beforeRoute() {
|
||
navigatorLock = "";
|
||
}
|
||
function createRouteOptions(type) {
|
||
return {
|
||
formatArgs: {
|
||
url: createNormalizeUrl(type)
|
||
},
|
||
beforeAll: beforeRoute
|
||
};
|
||
}
|
||
function createNormalizeUrl(type) {
|
||
return function normalizeUrl(url, params) {
|
||
if (!url) {
|
||
return 'Missing required args: "url"';
|
||
}
|
||
url = normalizeRoute(url);
|
||
var pagePath = url.split("?")[0];
|
||
var routeOptions = getRouteOptions(pagePath, true);
|
||
if (!routeOptions) {
|
||
return "page `" + url + "` is not found";
|
||
}
|
||
if (type === API_NAVIGATE_TO || type === API_REDIRECT_TO) {
|
||
if (routeOptions.meta.isTabBar) {
|
||
return "can not ".concat(type, " a tabbar page");
|
||
}
|
||
} else if (type === API_SWITCH_TAB) {
|
||
if (!routeOptions.meta.isTabBar) {
|
||
return "can not switch to no-tabBar page";
|
||
}
|
||
}
|
||
if ((type === API_SWITCH_TAB || type === API_PRELOAD_PAGE) && routeOptions.meta.isTabBar && params.openType !== "appLaunch") {
|
||
url = pagePath;
|
||
}
|
||
if (routeOptions.meta.isEntry) {
|
||
url = url.replace(routeOptions.alias, "/");
|
||
}
|
||
params.url = encodeQueryString(url);
|
||
if (type === API_UN_PRELOAD_PAGE) {
|
||
return;
|
||
} else if (type === API_PRELOAD_PAGE) {
|
||
{
|
||
if (!routeOptions.meta.isNVue) {
|
||
return "can not preload vue page";
|
||
}
|
||
}
|
||
if (routeOptions.meta.isTabBar) {
|
||
var pages2 = getCurrentPages();
|
||
var tabBarPagePath = routeOptions.path.slice(1);
|
||
if (pages2.find((page) => page.route === tabBarPagePath)) {
|
||
return "tabBar page `" + tabBarPagePath + "` already exists";
|
||
}
|
||
}
|
||
return;
|
||
}
|
||
if (navigatorLock === url && params.openType !== "appLaunch") {
|
||
return "".concat(navigatorLock, " locked");
|
||
}
|
||
if (__uniConfig.ready) {
|
||
navigatorLock = url;
|
||
}
|
||
};
|
||
}
|
||
var API_LOAD_FONT_FACE = "loadFontFace";
|
||
var FRONT_COLORS = ["#ffffff", "#000000"];
|
||
var API_SET_NAVIGATION_BAR_COLOR = "setNavigationBarColor";
|
||
var SetNavigationBarColorOptions = {
|
||
formatArgs: {
|
||
animation(animation2, params) {
|
||
if (!animation2) {
|
||
animation2 = {
|
||
duration: 0,
|
||
timingFunc: "linear"
|
||
};
|
||
}
|
||
params.animation = {
|
||
duration: animation2.duration || 0,
|
||
timingFunc: animation2.timingFunc || "linear"
|
||
};
|
||
}
|
||
}
|
||
};
|
||
var SetNavigationBarColorProtocol = {
|
||
frontColor: {
|
||
type: String,
|
||
required: true,
|
||
validator(frontColor) {
|
||
if (FRONT_COLORS.indexOf(frontColor) === -1) {
|
||
return 'invalid frontColor "'.concat(frontColor, '"');
|
||
}
|
||
}
|
||
},
|
||
backgroundColor: {
|
||
type: String,
|
||
required: true
|
||
},
|
||
animation: Object
|
||
};
|
||
var API_SET_NAVIGATION_BAR_TITLE = "setNavigationBarTitle";
|
||
var API_PAGE_SCROLL_TO = "pageScrollTo";
|
||
var PageScrollToProtocol = {
|
||
scrollTop: Number,
|
||
selector: String,
|
||
duration: Number
|
||
};
|
||
var PageScrollToOptions = {
|
||
formatArgs: {
|
||
duration: 300
|
||
}
|
||
};
|
||
var API_START_PULL_DOWN_REFRESH = "startPullDownRefresh";
|
||
var API_STOP_PULL_DOWN_REFRESH = "stopPullDownRefresh";
|
||
var IndexProtocol = {
|
||
index: {
|
||
type: Number,
|
||
required: true
|
||
}
|
||
};
|
||
var IndexOptions = {
|
||
beforeInvoke() {
|
||
var pageMeta = getCurrentPageMeta();
|
||
if (pageMeta && !pageMeta.isTabBar) {
|
||
return "not TabBar page";
|
||
}
|
||
},
|
||
formatArgs: {
|
||
index(value) {
|
||
if (!__uniConfig.tabBar.list[value]) {
|
||
return "tabbar item not found";
|
||
}
|
||
}
|
||
}
|
||
};
|
||
var API_SET_TAB_BAR_ITEM = "setTabBarItem";
|
||
var SetTabBarItemProtocol = /* @__PURE__ */ extend({
|
||
text: String,
|
||
iconPath: String,
|
||
selectedIconPath: String,
|
||
pagePath: String
|
||
}, IndexProtocol);
|
||
var SetTabBarItemOptions = {
|
||
beforeInvoke: IndexOptions.beforeInvoke,
|
||
formatArgs: /* @__PURE__ */ extend({
|
||
pagePath(value, params) {
|
||
if (value) {
|
||
params.pagePath = removeLeadingSlash(value);
|
||
}
|
||
}
|
||
}, IndexOptions.formatArgs)
|
||
};
|
||
var API_SET_TAB_BAR_STYLE = "setTabBarStyle";
|
||
var SetTabBarStyleProtocol = {
|
||
color: String,
|
||
selectedColor: String,
|
||
backgroundColor: String,
|
||
backgroundImage: String,
|
||
backgroundRepeat: String,
|
||
borderStyle: String
|
||
};
|
||
var SetTabBarStyleOptions = {
|
||
beforeInvoke: IndexOptions.beforeInvoke,
|
||
formatArgs: {
|
||
backgroundImage(value, params) {
|
||
{
|
||
params.backgroundImage = value;
|
||
return;
|
||
}
|
||
},
|
||
borderStyle(value, params) {
|
||
if (value) {
|
||
params.borderStyle = value === "white" ? "white" : "black";
|
||
}
|
||
}
|
||
}
|
||
};
|
||
var API_HIDE_TAB_BAR = "hideTabBar";
|
||
var API_SHOW_TAB_BAR = "showTabBar";
|
||
var API_HIDE_TAB_BAR_RED_DOT = "hideTabBarRedDot";
|
||
var HideTabBarRedDotProtocol = IndexProtocol;
|
||
var HideTabBarRedDotOptions = IndexOptions;
|
||
var API_SHOW_TAB_BAR_RED_DOT = "showTabBarRedDot";
|
||
var ShowTabBarRedDotProtocol = IndexProtocol;
|
||
var ShowTabBarRedDotOptions = IndexOptions;
|
||
var API_REMOVE_TAB_BAR_BADGE = "removeTabBarBadge";
|
||
var RemoveTabBarBadgeProtocol = IndexProtocol;
|
||
var RemoveTabBarBadgeOptions = IndexOptions;
|
||
var API_SET_TAB_BAR_BADGE = "setTabBarBadge";
|
||
var SetTabBarBadgeProtocol = /* @__PURE__ */ extend({
|
||
text: {
|
||
type: String,
|
||
required: true
|
||
}
|
||
}, IndexProtocol);
|
||
var SetTabBarBadgeOptions = {
|
||
beforeInvoke: IndexOptions.beforeInvoke,
|
||
formatArgs: /* @__PURE__ */ extend({
|
||
text(value, params) {
|
||
if (getLen(value) >= 4) {
|
||
params.text = "...";
|
||
}
|
||
}
|
||
}, IndexOptions.formatArgs)
|
||
};
|
||
function showWebview(nPage, animationType, animationDuration, showCallback) {
|
||
nPage.show(/* @__PURE__ */ new Map([["animationType", animationType], ["animationDuration", animationDuration]]), showCallback);
|
||
}
|
||
function closeWebview(nPage, animationType, animationDuration, callback) {
|
||
var options = /* @__PURE__ */ new Map([["animationType", animationType]]);
|
||
if (typeof animationDuration === "number") {
|
||
options.set("animationDuration", animationDuration);
|
||
}
|
||
nPage.close(options, callback);
|
||
}
|
||
var nativeApp;
|
||
function getNativeApp() {
|
||
return nativeApp;
|
||
}
|
||
function setNativeApp(app) {
|
||
nativeApp = app;
|
||
}
|
||
function getPageManager() {
|
||
return nativeApp.pageManager;
|
||
}
|
||
var beforeRouteHooks = [];
|
||
var afterRouteHooks = [];
|
||
var pageReadyHooks = [];
|
||
function onBeforeRoute(hook) {
|
||
beforeRouteHooks.push(hook);
|
||
}
|
||
function onAfterRoute(hook) {
|
||
afterRouteHooks.push(hook);
|
||
}
|
||
function onPageReady(hook) {
|
||
pageReadyHooks.push(hook);
|
||
}
|
||
function invokeBeforeRouteHooks(type) {
|
||
invokeArrayFns$1(beforeRouteHooks, type);
|
||
}
|
||
function invokeAfterRouteHooks(type) {
|
||
invokeArrayFns$1(afterRouteHooks, type);
|
||
}
|
||
function invokePageReadyHooks(page) {
|
||
invokeArrayFns$1(pageReadyHooks, page);
|
||
}
|
||
var BORDER_COLORS = /* @__PURE__ */ new Map([["white", "rgba(255, 255, 255, 0.33)"], ["black", "rgba(0, 0, 0, 0.33)"]]);
|
||
function getBorderStyle(borderStyle) {
|
||
var value = BORDER_COLORS.get(borderStyle);
|
||
if (borderStyle && !value) {
|
||
console.warn("4.23 版本起,在 pages.json 设置 tabbar borderStyle、在 uni.setTabBarStyle 设置 borderStyle 时仅支持 white/black,推荐使用 borderColor 自定义颜色。");
|
||
}
|
||
return value || BORDER_COLORS.get("black");
|
||
}
|
||
function fixBorderStyle(tabBarConfig) {
|
||
var borderStyle = tabBarConfig.get("borderStyle");
|
||
var borderColor = tabBarConfig.get("borderColor");
|
||
var isBorderColorFilled = isString(borderColor);
|
||
borderStyle = getBorderStyle(borderStyle);
|
||
if (isBorderColorFilled) {
|
||
borderStyle = borderColor;
|
||
}
|
||
tabBarConfig.set("borderStyle", borderStyle);
|
||
tabBarConfig.delete("borderColor");
|
||
}
|
||
var onTabBarMidButtonTapCallback = [];
|
||
var tabBar0 = null;
|
||
var selected0 = -1;
|
||
var tabs = /* @__PURE__ */ new Map();
|
||
function getTabList() {
|
||
var tabConfig = __uniConfig.tabBar ? /* @__PURE__ */ new Map() : null;
|
||
if (__uniConfig.tabBar) {
|
||
for (var key in __uniConfig.tabBar) {
|
||
tabConfig.set(key, __uniConfig.tabBar[key]);
|
||
}
|
||
}
|
||
if (tabConfig === null) {
|
||
return null;
|
||
}
|
||
var list = tabConfig.get("list");
|
||
return list;
|
||
}
|
||
function init() {
|
||
var _uniConfig$globalSty, _uniConfig$globalSty2;
|
||
var list = getTabList();
|
||
var style = /* @__PURE__ */ new Map();
|
||
style.set("navigationStyle", "custom");
|
||
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");
|
||
var page = getPageManager().createPage(
|
||
"tabBar",
|
||
// id 后增加 Date.now() 保证唯一性,与 android 端统一
|
||
"tabBar_".concat(Date.now()),
|
||
style
|
||
);
|
||
var document = page.createDocument(new NodeData("root", "view", /* @__PURE__ */ new Map(), /* @__PURE__ */ new Map([["flex", "1"]])));
|
||
var tabParent = document.createElement(new NodeData("tabs", "tabs", /* @__PURE__ */ new Map(), /* @__PURE__ */ new Map([["overflow", "hidden"], ["flex", "1"]])));
|
||
document.appendChild(tabParent);
|
||
tabBar0 = document.getRealDomNodeById("tabs");
|
||
var _tabBarConfig = extend({}, __uniConfig.tabBar);
|
||
normalizeTabBarStyles(_tabBarConfig, __uniConfig.themeConfig, getAppThemeFallbackOS());
|
||
var tabBarConfig = /* @__PURE__ */ new Map();
|
||
for (var key in _tabBarConfig) {
|
||
tabBarConfig.set(key, _tabBarConfig[key]);
|
||
}
|
||
fixBorderStyle(tabBarConfig);
|
||
tabBar0.initTabBar(tabBarConfig);
|
||
tabBar0.addEventListener("tabBarItemTap", function(event) {
|
||
var index2 = event.index;
|
||
if (index2 !== selected0) {
|
||
var item = list[index2];
|
||
var path = item.pagePath;
|
||
if (isString(path) && findPageRoute(getRealPath(path, true))) {
|
||
uni.switchTab({
|
||
url: getRealPath(path, true)
|
||
});
|
||
} else {
|
||
console.error("switchTab: pagePath not found");
|
||
}
|
||
}
|
||
});
|
||
tabBar0.addEventListener("tabBarMidButtonTap", function(event) {
|
||
onTabBarMidButtonTapCallback.forEach((callback) => {
|
||
if (typeof callback === "function") {
|
||
callback();
|
||
}
|
||
});
|
||
});
|
||
page.startRender();
|
||
page.show(null);
|
||
}
|
||
function removeTabBarPage(page) {
|
||
var pagePath = getRealPath(page.route, true);
|
||
if (tabs.get(pagePath) === page) {
|
||
tabs.delete(pagePath);
|
||
if (getTabIndex(pagePath) === selected0) {
|
||
selected0 = -1;
|
||
}
|
||
}
|
||
}
|
||
function getTabBar() {
|
||
return tabBar0;
|
||
}
|
||
function getTabIndex(path) {
|
||
var list = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : getTabList();
|
||
var selected = -1;
|
||
if (list && list.length !== 0) {
|
||
for (var index2 = 0; index2 < list.length; index2++) {
|
||
var page = list[index2];
|
||
var pagePath = page.pagePath;
|
||
if (isString(pagePath) && getRealPath(pagePath, true) == getRealPath(path, true)) {
|
||
selected = index2;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
return selected;
|
||
}
|
||
function findPageRoute(path) {
|
||
return __uniRoutes.find((route) => route.path === path);
|
||
}
|
||
function createTab(path, query, callback) {
|
||
registerPage({
|
||
url: path,
|
||
path,
|
||
query,
|
||
openType: "switchTab"
|
||
});
|
||
callback === null || callback === void 0 || callback();
|
||
var page = getCurrentPage().vm;
|
||
tabBar0.appendItem(page.$basePage.id.toString());
|
||
return page;
|
||
}
|
||
function findTabPage(path) {
|
||
var _tabs$get;
|
||
var page = (_tabs$get = tabs.get(path)) !== null && _tabs$get !== void 0 ? _tabs$get : null;
|
||
var pages2 = getAllPages();
|
||
pages2.forEach((item) => item.$.__isActive = item === page);
|
||
if (page !== null) {
|
||
var index2 = pages2.indexOf(page);
|
||
if (index2 !== pages2.length - 1) {
|
||
pages2.splice(index2, 1);
|
||
pages2.push(page);
|
||
}
|
||
}
|
||
return page;
|
||
}
|
||
function isTabPage(page) {
|
||
var has = false;
|
||
tabs.forEach((value, key) => {
|
||
if (value === page) {
|
||
has = true;
|
||
}
|
||
});
|
||
return has;
|
||
}
|
||
class TabPageInfo {
|
||
constructor(page, isFirst) {
|
||
this.page = page;
|
||
this.isFirst = isFirst;
|
||
}
|
||
}
|
||
function getTabPage(path) {
|
||
var query = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
||
var rebuild = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
|
||
var callback = arguments.length > 3 ? arguments[3] : void 0;
|
||
var page = findTabPage(path);
|
||
var isFirst = false;
|
||
if (page === null || rebuild) {
|
||
isFirst = true;
|
||
page = createTab(path, query, callback);
|
||
tabs.set(path, page);
|
||
}
|
||
return new TabPageInfo(page, isFirst);
|
||
}
|
||
function switchSelect(selected, path) {
|
||
var _getCurrentPage;
|
||
var query = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
|
||
var rebuild = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;
|
||
var callback = arguments.length > 4 ? arguments[4] : void 0;
|
||
var shouldShow = false;
|
||
if (tabBar0 === null) {
|
||
init();
|
||
}
|
||
var currentPage = (_getCurrentPage = getCurrentPage()) === null || _getCurrentPage === void 0 ? void 0 : _getCurrentPage.vm;
|
||
var type = currentPage == null ? "appLaunch" : "switchTab";
|
||
invokeBeforeRouteHooks(type);
|
||
var pageInfo = getTabPage(getRealPath(path, true), query, rebuild, callback);
|
||
var page = pageInfo.page;
|
||
if (currentPage !== page) {
|
||
shouldShow = true;
|
||
if (currentPage && isTabPage(currentPage)) {
|
||
invokeHook(currentPage, ON_HIDE);
|
||
}
|
||
}
|
||
tabBar0.switchSelect(page.$basePage.id.toString(), selected);
|
||
if (shouldShow) {
|
||
invokeHook(page, ON_SHOW);
|
||
}
|
||
selected0 = selected;
|
||
invokeAfterRouteHooks(type);
|
||
}
|
||
var APP_THEME_AUTO = "auto";
|
||
var THEME_KEY_PREFIX = "@";
|
||
function getAppThemeFallbackOS() {
|
||
var fallbackOSTheme = "light";
|
||
try {
|
||
var appTheme = uni.getAppBaseInfo().appTheme;
|
||
fallbackOSTheme = appTheme;
|
||
if (appTheme === APP_THEME_AUTO) {
|
||
var osTheme = uni.getDeviceInfo().osTheme;
|
||
fallbackOSTheme = osTheme;
|
||
}
|
||
return fallbackOSTheme;
|
||
} catch (e) {
|
||
console.error(e);
|
||
return fallbackOSTheme;
|
||
}
|
||
}
|
||
var appThemeChangeCallbackId = -1;
|
||
function clearAppThemeChangeCallbackId() {
|
||
appThemeChangeCallbackId = -1;
|
||
}
|
||
function registerThemeChange(callback) {
|
||
try {
|
||
if (appThemeChangeCallbackId !== -1) {
|
||
uni.offAppThemeChange(appThemeChangeCallbackId);
|
||
clearAppThemeChangeCallbackId();
|
||
}
|
||
appThemeChangeCallbackId = uni.onAppThemeChange(function(res1) {
|
||
var appThemeMode = res1["appTheme"];
|
||
callback(appThemeMode);
|
||
});
|
||
} catch (e) {
|
||
console.warn("监听 OS 主题变化", e);
|
||
}
|
||
}
|
||
var onThemeChange = function(themeMode) {
|
||
var handlePage = () => {
|
||
var pages2 = getAllPages();
|
||
pages2.forEach((page) => {
|
||
var routeOptions = initRouteOptions(page.$basePage.path, "");
|
||
var style = parsePageStyle(routeOptions);
|
||
page.$page.setPageStyle(new UTSJSONObject(style));
|
||
});
|
||
};
|
||
handlePage();
|
||
var handleTabBar = () => {
|
||
var tabBar = getTabBar();
|
||
if (tabBar !== null) {
|
||
var tabBarConfig = __uniConfig.getTabBarConfig();
|
||
normalizeTabBarStyles(tabBarConfig, __uniConfig.themeConfig, themeMode);
|
||
var tabBarStyle = /* @__PURE__ */ new Map();
|
||
var tabBarConfigKeys = Object.keys(tabBarConfig);
|
||
tabBarConfigKeys.forEach((key) => {
|
||
var value = tabBarConfig[key];
|
||
if (isString(value)) {
|
||
tabBarStyle.set(key, value);
|
||
} else if (isArray(value)) {
|
||
var valueAsArray = value;
|
||
var index2 = 0;
|
||
valueAsArray.forEach((item) => {
|
||
var tabBarItemMap = /* @__PURE__ */ new Map();
|
||
tabBarItemMap.set("index", index2);
|
||
Object.keys(item).forEach((tabBarItemkey) => {
|
||
if (item[tabBarItemkey] != null) {
|
||
tabBarItemMap.set(tabBarItemkey, item[tabBarItemkey]);
|
||
}
|
||
});
|
||
tabBar.setTabBarItem(tabBarItemMap);
|
||
index2++;
|
||
});
|
||
}
|
||
});
|
||
fixBorderStyle(tabBarStyle);
|
||
tabBar.setTabBarStyle(tabBarStyle);
|
||
}
|
||
};
|
||
handleTabBar();
|
||
};
|
||
function normalizePageStyles(pageStyle, themeConfig, themeMode) {
|
||
var themeMap = themeConfig === null || themeConfig === void 0 ? void 0 : themeConfig[themeMode];
|
||
if (!themeMap) {
|
||
return;
|
||
}
|
||
normalizeStyles(pageStyle, themeMap);
|
||
}
|
||
function normalizeStyles(style, themeMap) {
|
||
Object.keys(style).forEach((key) => {
|
||
var value = style[key];
|
||
if (isString(value)) {
|
||
var valueAsString = value;
|
||
if (valueAsString.startsWith(THEME_KEY_PREFIX)) {
|
||
var valueKey = valueAsString.slice(1);
|
||
var configValue = themeMap[valueKey];
|
||
if (configValue != null) {
|
||
style[key] = configValue;
|
||
}
|
||
}
|
||
} else if (isArray(value)) {
|
||
var valueAsArray = value;
|
||
valueAsArray.forEach((item) => {
|
||
normalizeStyles(item, themeMap);
|
||
});
|
||
} else if (isPlainObject(value)) {
|
||
normalizeStyles(value, themeMap);
|
||
}
|
||
});
|
||
}
|
||
function normalizeTabBarStyles(tabBar, themeConfig, themeMode) {
|
||
if (!themeConfig) {
|
||
return;
|
||
}
|
||
var themeMap = themeConfig[themeMode];
|
||
if (themeMap == null) {
|
||
return;
|
||
}
|
||
normalizeStyles(tabBar, themeMap);
|
||
}
|
||
function useTheme() {
|
||
registerThemeChange(onThemeChange);
|
||
}
|
||
var homeDialogPages = [];
|
||
var homeSystemDialogPages = [];
|
||
function parsePageStyle(route) {
|
||
var style = /* @__PURE__ */ new Map();
|
||
var routeMeta = route.meta;
|
||
var routeKeys = [
|
||
"id",
|
||
"route",
|
||
"i18n",
|
||
"isQuit",
|
||
"isEntry",
|
||
"isTabBar",
|
||
"tabBarIndex",
|
||
"tabBarText",
|
||
"windowTop",
|
||
"topWindow",
|
||
"leftWindow",
|
||
"rightWindow",
|
||
"eventChannel",
|
||
// 忽略 initRouteMeta产生的 navigationBar 对象
|
||
"navigationBar"
|
||
];
|
||
var navKeys = ["navigationBarTitleText", "navigationBarBackgroundColor", "navigationBarTextStyle", "navigationStyle"];
|
||
normalizePageStyles(routeMeta, __uniConfig.themeConfig, getAppThemeFallbackOS());
|
||
Object.keys(routeMeta).forEach((key) => {
|
||
if (!routeKeys.includes(key) && !navKeys.includes(key)) {
|
||
style.set(key, routeMeta[key]);
|
||
}
|
||
});
|
||
var navigationBar = {};
|
||
navKeys.forEach((key) => {
|
||
if (key in routeMeta) {
|
||
navigationBar[key] = routeMeta[key];
|
||
}
|
||
});
|
||
if (Object.keys(navigationBar).length > 0) {
|
||
if (navigationBar.navigationBarTextStyle !== "custom" && !routeMeta.isQuit && routeMeta.route !== __uniConfig.realEntryPagePath) {
|
||
style.set("navigationBarAutoBackButton", true);
|
||
}
|
||
Object.keys(navigationBar).forEach((key) => {
|
||
style.set(key, navigationBar[key]);
|
||
});
|
||
}
|
||
return style;
|
||
}
|
||
function registerPage(_ref, onCreated) {
|
||
var {
|
||
url,
|
||
path,
|
||
query,
|
||
openType,
|
||
webview,
|
||
nvuePageVm,
|
||
eventChannel
|
||
} = _ref;
|
||
var delay = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0;
|
||
var id2 = genWebviewId();
|
||
var routeOptions = initRouteOptions(path, openType);
|
||
var pageStyle = parsePageStyle(routeOptions);
|
||
var nativePage2 = getPageManager().createPage(url, id2.toString(), pageStyle);
|
||
if (onCreated) {
|
||
onCreated(nativePage2);
|
||
}
|
||
routeOptions.meta.id = parseInt(nativePage2.pageId);
|
||
var route = path.slice(1);
|
||
var pageInstance = initPageInternalInstance(
|
||
openType,
|
||
url,
|
||
query,
|
||
routeOptions.meta,
|
||
eventChannel,
|
||
// TODO ThemeMode
|
||
"light"
|
||
);
|
||
function fn() {
|
||
var page = createVuePage(id2, route, query, pageInstance, {}, nativePage2);
|
||
var pages2 = getCurrentPages();
|
||
if (pages2.length === 1) {
|
||
if (homeDialogPages.length) {
|
||
var homePage = pages2[0];
|
||
homePage.vm.$.$dialogPages = homeDialogPages.map((dialogPage) => {
|
||
dialogPage.getParentPage = () => homePage;
|
||
return dialogPage;
|
||
});
|
||
homeDialogPages.length = 0;
|
||
}
|
||
if (homeSystemDialogPages.length) {
|
||
var _homePage = pages2[0];
|
||
_homePage.vm.$systemDialogPages = homeSystemDialogPages.map((dialogPage) => {
|
||
dialogPage.getParentPage = () => _homePage;
|
||
return dialogPage;
|
||
});
|
||
homeDialogPages.length = 0;
|
||
}
|
||
}
|
||
nativePage2.addPageEventListener(ON_POP_GESTURE, function(e) {
|
||
uni.navigateBack({
|
||
from: "popGesture",
|
||
fail(e2) {
|
||
if (e2.errMsg.endsWith("cancel")) {
|
||
nativePage2.show();
|
||
}
|
||
}
|
||
});
|
||
});
|
||
nativePage2.addPageEventListener(ON_UNLOAD, (_) => {
|
||
invokeHook(page, ON_UNLOAD);
|
||
});
|
||
nativePage2.addPageEventListener(ON_READY, (_) => {
|
||
invokePageReadyHooks(page);
|
||
invokeHook(page, ON_READY);
|
||
});
|
||
nativePage2.addPageEventListener(ON_PAGE_SCROLL, (arg) => {
|
||
invokeHook(page, ON_PAGE_SCROLL, {
|
||
scrollTop: arg.scrollTop
|
||
});
|
||
});
|
||
nativePage2.addPageEventListener(ON_PULL_DOWN_REFRESH, (_) => {
|
||
invokeHook(page, ON_PULL_DOWN_REFRESH);
|
||
});
|
||
nativePage2.addPageEventListener(ON_REACH_BOTTOM, (_) => {
|
||
invokeHook(page, ON_REACH_BOTTOM);
|
||
});
|
||
nativePage2.addPageEventListener(ON_RESIZE, (arg) => {
|
||
var args = {
|
||
deviceOrientation: arg.deviceOrientation,
|
||
size: {
|
||
windowWidth: arg.size.windowWidth,
|
||
windowHeight: arg.size.windowHeight,
|
||
screenWidth: arg.size.screenWidth,
|
||
screenHeight: arg.size.screenHeight
|
||
}
|
||
};
|
||
invokeHook(page, ON_RESIZE, args);
|
||
});
|
||
nativePage2.startRender();
|
||
}
|
||
if (delay) {
|
||
setTimeout(fn, delay);
|
||
} else {
|
||
fn();
|
||
}
|
||
return nativePage2;
|
||
}
|
||
function registerDialogPage(_ref2, dialogPage, onCreated) {
|
||
var {
|
||
url,
|
||
path,
|
||
query,
|
||
openType,
|
||
webview,
|
||
nvuePageVm,
|
||
eventChannel
|
||
} = _ref2;
|
||
var delay = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : 0;
|
||
var id2 = genWebviewId();
|
||
var routeOptions = initRouteOptions(path, openType);
|
||
var pageStyle = parsePageStyle(routeOptions);
|
||
pageStyle.set("navigationStyle", "custom");
|
||
pageStyle.set("backgroundColorContent", "transparent");
|
||
if (typeof pageStyle.get("disableSwipeBack") !== "boolean") {
|
||
pageStyle.set("disableSwipeBack", true);
|
||
}
|
||
var parentPage = dialogPage.getParentPage();
|
||
var nativePage2 = getPageManager().createDialogPage(
|
||
// @ts-expect-error
|
||
parentPage ? parentPage.__nativePageId : "",
|
||
id2.toString(),
|
||
url,
|
||
pageStyle
|
||
);
|
||
if (onCreated) {
|
||
onCreated(nativePage2);
|
||
}
|
||
routeOptions.meta.id = parseInt(nativePage2.pageId);
|
||
var route = path.startsWith(SYSTEM_DIALOG_PAGE_PATH_STARTER) ? path : path.slice(1);
|
||
var pageInstance = initPageInternalInstance(
|
||
openType,
|
||
url,
|
||
query,
|
||
routeOptions.meta,
|
||
eventChannel,
|
||
// TODO ThemeMode
|
||
"light"
|
||
);
|
||
function fn() {
|
||
var page = createVuePage(id2, route, query, pageInstance, {}, nativePage2);
|
||
dialogPage.vm = page;
|
||
dialogPage.$vm = page;
|
||
nativePage2.addPageEventListener(ON_POP_GESTURE, function(e) {
|
||
closeDialogPage({
|
||
dialogPage
|
||
});
|
||
});
|
||
nativePage2.addPageEventListener(ON_UNLOAD, (_) => {
|
||
invokeHook(page, ON_UNLOAD);
|
||
});
|
||
nativePage2.addPageEventListener(ON_READY, (_) => {
|
||
invokePageReadyHooks(page);
|
||
invokeHook(page, ON_READY);
|
||
});
|
||
nativePage2.addPageEventListener(ON_PAGE_SCROLL, (arg) => {
|
||
invokeHook(page, ON_PAGE_SCROLL, arg);
|
||
});
|
||
nativePage2.addPageEventListener(ON_PULL_DOWN_REFRESH, (_) => {
|
||
invokeHook(page, ON_PULL_DOWN_REFRESH);
|
||
});
|
||
nativePage2.addPageEventListener(ON_REACH_BOTTOM, (_) => {
|
||
invokeHook(page, ON_REACH_BOTTOM);
|
||
});
|
||
nativePage2.addPageEventListener(ON_RESIZE, (arg) => {
|
||
var args = {
|
||
deviceOrientation: arg.deviceOrientation,
|
||
size: {
|
||
windowWidth: arg.size.windowWidth,
|
||
windowHeight: arg.size.windowHeight,
|
||
screenWidth: arg.size.screenWidth,
|
||
screenHeight: arg.size.screenHeight
|
||
}
|
||
};
|
||
invokeHook(page, ON_RESIZE, args);
|
||
});
|
||
nativePage2.startRender();
|
||
}
|
||
if (delay) {
|
||
setTimeout(fn, delay);
|
||
} else {
|
||
fn();
|
||
}
|
||
return nativePage2;
|
||
}
|
||
function createVuePage(__pageId, __pagePath, __pageQuery, __pageInstance, pageOptions, nativePage2) {
|
||
var pageNode = nativePage2.document.body;
|
||
var app = getVueApp();
|
||
var component = pagesMap.get(__pagePath)();
|
||
var mountPage = (component2) => app.mountPage(component2, {
|
||
__pageId,
|
||
__pagePath,
|
||
__pageQuery,
|
||
__pageInstance
|
||
}, pageNode);
|
||
if (isPromise(component)) {
|
||
return component.then((component2) => mountPage(component2));
|
||
}
|
||
return mountPage(component);
|
||
}
|
||
function setStatusBarStyle() {
|
||
var page = getCurrentPage().vm;
|
||
if (page) {
|
||
var nativePage2 = page.$nativePage;
|
||
nativePage2.applyStatusBarStyle();
|
||
}
|
||
}
|
||
function initGlobalEvent(app) {
|
||
app.addKeyEventListener(ON_BACK_BUTTON, () => {
|
||
backbuttonListener();
|
||
return true;
|
||
});
|
||
}
|
||
function loadFontFaceByStyles(styles2, global) {
|
||
styles2 = Array.isArray(styles2) ? styles2 : [styles2];
|
||
var fontFaceStyle = [];
|
||
styles2.forEach((style) => {
|
||
if (style["@FONT-FACE"]) {
|
||
fontFaceStyle.push(...style["@FONT-FACE"]);
|
||
}
|
||
});
|
||
if (fontFaceStyle.length === 0)
|
||
return;
|
||
fontFaceStyle.forEach((style) => {
|
||
var fontFamily = style["fontFamily"];
|
||
var fontWeight = style["fontWeight"];
|
||
var fontStyle = style["fontStyle"];
|
||
var fontVariant = style["fontVariant"];
|
||
var src = style["src"];
|
||
if (fontFamily != null && src != null) {
|
||
loadFontFace({
|
||
global,
|
||
family: fontFamily,
|
||
source: src,
|
||
desc: {
|
||
style: fontStyle,
|
||
weight: fontWeight,
|
||
variant: fontVariant
|
||
}
|
||
});
|
||
} else {
|
||
console.warn("loadFontFace: fail, font-family or src is null");
|
||
}
|
||
});
|
||
}
|
||
var API_GET_LAUNCH_OPTIONS_SYNC = "getLaunchOptionsSync";
|
||
var launchOptions = {
|
||
path: "",
|
||
appScheme: null,
|
||
appLink: null
|
||
};
|
||
var setLaunchOptionsSync = function(options) {
|
||
launchOptions = options;
|
||
};
|
||
var getLaunchOptionsSync = /* @__PURE__ */ defineSyncApi(API_GET_LAUNCH_OPTIONS_SYNC, () => {
|
||
var baseInfo = getLaunchOptions();
|
||
return Object.assign({}, baseInfo, launchOptions);
|
||
});
|
||
var API_GET_ENTER_OPTIONS_SYNC = "getEnterOptionsSync";
|
||
var enterOptions = {
|
||
path: "",
|
||
appScheme: null,
|
||
appLink: null
|
||
};
|
||
var setEnterOptionsSync = function(options) {
|
||
enterOptions = options;
|
||
};
|
||
var getEnterOptionsSync = /* @__PURE__ */ defineSyncApi(API_GET_ENTER_OPTIONS_SYNC, () => {
|
||
var baseInfo = getLaunchOptions();
|
||
return Object.assign({}, baseInfo, enterOptions);
|
||
});
|
||
function initAppLaunch(appVm) {
|
||
injectAppHooks(appVm.$);
|
||
var {
|
||
entryPagePath,
|
||
entryPageQuery,
|
||
referrerInfo
|
||
} = __uniConfig;
|
||
var args = initLaunchOptions({
|
||
path: entryPagePath,
|
||
query: entryPageQuery,
|
||
referrerInfo
|
||
});
|
||
var app = getNativeApp();
|
||
var schemaLink = app.getLaunchOptionsSync();
|
||
var launchOption = extend({}, args, schemaLink);
|
||
setLaunchOptionsSync(launchOption);
|
||
invokeHook(appVm, ON_LAUNCH, launchOption);
|
||
var showOption = extend({}, launchOption);
|
||
setEnterOptionsSync(showOption);
|
||
invokeHook(appVm, ON_SHOW, showOption);
|
||
var appStyle = appVm.$options.styles;
|
||
if (appStyle) {
|
||
loadFontFaceByStyles(appStyle, true);
|
||
}
|
||
useTheme();
|
||
}
|
||
function initAppError(appVm, nativeApp2) {
|
||
nativeApp2.addEventListener(ON_ERROR, function(errorEvent) {
|
||
invokeHook(appVm, ON_ERROR, errorEvent.error);
|
||
});
|
||
}
|
||
var redirectTo = /* @__PURE__ */ defineAsyncApi(API_REDIRECT_TO, (_ref, _ref2) => {
|
||
var {
|
||
url
|
||
} = _ref;
|
||
var {
|
||
resolve,
|
||
reject
|
||
} = _ref2;
|
||
var {
|
||
path,
|
||
query
|
||
} = parseUrl(url);
|
||
if (!entryPageState.isReady) {
|
||
redirectToPagesBeforeEntryPages.push({
|
||
args: {
|
||
url,
|
||
path,
|
||
query
|
||
},
|
||
handler: {
|
||
resolve,
|
||
reject
|
||
}
|
||
});
|
||
return;
|
||
}
|
||
_redirectTo({
|
||
url,
|
||
path,
|
||
query
|
||
}).then(resolve).catch(reject);
|
||
}, RedirectToProtocol, RedirectToOptions);
|
||
function _redirectTo(_ref3) {
|
||
var {
|
||
url,
|
||
path,
|
||
query
|
||
} = _ref3;
|
||
var lastPage = getCurrentPage().vm;
|
||
return new Promise((resolve) => {
|
||
invokeAfterRouteHooks(API_REDIRECT_TO);
|
||
showWebview(registerPage({
|
||
url,
|
||
path,
|
||
query,
|
||
openType: isTabPage(lastPage) || getAllPages().length === 1 ? "reLaunch" : "redirectTo"
|
||
}), "none", 0, () => {
|
||
if (lastPage) {
|
||
removePages(lastPage);
|
||
}
|
||
resolve(void 0);
|
||
setStatusBarStyle();
|
||
});
|
||
invokeBeforeRouteHooks(API_REDIRECT_TO);
|
||
});
|
||
}
|
||
function removePages(currentPage) {
|
||
if (isTabPage(currentPage)) {
|
||
var pages2 = getAllPages().slice(0, -1);
|
||
pages2.forEach((page) => {
|
||
closePage(page, "none");
|
||
});
|
||
} else {
|
||
closePage(currentPage, "none");
|
||
}
|
||
}
|
||
var $reLaunch = (_ref, _ref2) => {
|
||
var {
|
||
url
|
||
} = _ref;
|
||
var {
|
||
resolve,
|
||
reject
|
||
} = _ref2;
|
||
var {
|
||
path,
|
||
query
|
||
} = parseUrl(url);
|
||
if (!entryPageState.isReady) {
|
||
reLaunchPagesBeforeEntryPages.push({
|
||
args: {
|
||
url
|
||
},
|
||
handler: {
|
||
resolve,
|
||
reject
|
||
}
|
||
});
|
||
return;
|
||
}
|
||
_reLaunch({
|
||
url,
|
||
path,
|
||
query
|
||
}).then(resolve).catch(reject);
|
||
};
|
||
function _reLaunch(_ref3) {
|
||
var {
|
||
url,
|
||
path,
|
||
query
|
||
} = _ref3;
|
||
return new Promise((resolve) => {
|
||
var pages2 = getAllPages().slice(0);
|
||
var selected = getTabIndex(path);
|
||
function callback() {
|
||
pages2.forEach((page) => closePage(page, "none"));
|
||
resolve(void 0);
|
||
setStatusBarStyle();
|
||
}
|
||
if (selected === -1) {
|
||
showWebview(registerPage({
|
||
url,
|
||
path,
|
||
query,
|
||
openType: "reLaunch"
|
||
}), "none", 0, callback);
|
||
} else {
|
||
switchSelect(selected, path, query, true, callback);
|
||
}
|
||
});
|
||
}
|
||
var reLaunch = /* @__PURE__ */ defineAsyncApi(API_RE_LAUNCH, $reLaunch, ReLaunchProtocol, ReLaunchOptions);
|
||
function closePage(page, animationType, animationDuration) {
|
||
var dialogPages = page.$page.getDialogPages();
|
||
for (var i = dialogPages.length - 1; i >= 0; i--) {
|
||
closeNativeDialogPage(dialogPages[i]);
|
||
}
|
||
var systemDialogPages = page.$systemDialogPages || [];
|
||
for (var _i = 0; _i < systemDialogPages.length; _i++) {
|
||
closeNativeDialogPage(systemDialogPages[_i]);
|
||
}
|
||
page.$systemDialogPages = [];
|
||
for (var _i2 = dialogPages.length - 1; _i2 >= 0; _i2--) {
|
||
closeNativeDialogPage(dialogPages[_i2]);
|
||
}
|
||
closeWebview(page.$nativePage, animationType, animationDuration);
|
||
removePage(page);
|
||
removeTabBarPage(page);
|
||
}
|
||
function updateEntryPageIsReady(path) {
|
||
if (!getCurrentPage() && path === addLeadingSlash(__uniConfig.entryPagePath)) {
|
||
entryPageState.isReady = true;
|
||
}
|
||
}
|
||
function handleBeforeEntryPageRoutes() {
|
||
if (entryPageState.handledBeforeEntryPageRoutes) {
|
||
return;
|
||
}
|
||
entryPageState.handledBeforeEntryPageRoutes = true;
|
||
var navigateToPages = [...navigateToPagesBeforeEntryPages];
|
||
navigateToPagesBeforeEntryPages.length = 0;
|
||
navigateToPages.forEach((_ref) => {
|
||
var {
|
||
args,
|
||
handler
|
||
} = _ref;
|
||
return $navigateTo(args, handler);
|
||
});
|
||
var switchTabPages = [...switchTabPagesBeforeEntryPages];
|
||
switchTabPagesBeforeEntryPages.length = 0;
|
||
switchTabPages.forEach((_ref2) => {
|
||
var {
|
||
args,
|
||
handler
|
||
} = _ref2;
|
||
return $switchTab(args, handler);
|
||
});
|
||
var redirectToPages = [...redirectToPagesBeforeEntryPages];
|
||
redirectToPagesBeforeEntryPages.length = 0;
|
||
redirectToPages.forEach((_ref3) => {
|
||
var {
|
||
args,
|
||
handler
|
||
} = _ref3;
|
||
return _redirectTo(args).then(handler.resolve).catch(handler.reject);
|
||
});
|
||
var reLaunchPages = [...reLaunchPagesBeforeEntryPages];
|
||
reLaunchPagesBeforeEntryPages.length = 0;
|
||
reLaunchPages.forEach((_ref4) => {
|
||
var {
|
||
args,
|
||
handler
|
||
} = _ref4;
|
||
return $reLaunch(args, handler);
|
||
});
|
||
}
|
||
function closeNativeDialogPage(dialogPage, animationType, animationDuration, callback) {
|
||
var webview = getNativeApp().pageManager.findPageById(dialogPage.$vm.$basePage.id + "");
|
||
if (webview) {
|
||
closeWebview(webview, animationType || "none", animationDuration || 0, callback);
|
||
}
|
||
}
|
||
var $switchTab = (args, _ref) => {
|
||
var {
|
||
resolve,
|
||
reject
|
||
} = _ref;
|
||
var {
|
||
url
|
||
} = args;
|
||
var {
|
||
path,
|
||
query
|
||
} = parseUrl(url);
|
||
updateEntryPageIsReady(path);
|
||
if (!entryPageState.isReady) {
|
||
switchTabPagesBeforeEntryPages.push({
|
||
args,
|
||
handler: {
|
||
resolve,
|
||
reject
|
||
}
|
||
});
|
||
return;
|
||
}
|
||
_switchTab({
|
||
url,
|
||
path,
|
||
query
|
||
}).then(resolve).catch(reject);
|
||
handleBeforeEntryPageRoutes();
|
||
};
|
||
var switchTab = /* @__PURE__ */ defineAsyncApi(API_SWITCH_TAB, $switchTab, SwitchTabProtocol, SwitchTabOptions);
|
||
function _switchTab(_ref2) {
|
||
var {
|
||
url,
|
||
path,
|
||
query
|
||
} = _ref2;
|
||
var selected = getTabIndex(path);
|
||
if (selected == -1) {
|
||
return Promise.reject("tab ".concat(path, " not found"));
|
||
}
|
||
var pages2 = getCurrentBasePages();
|
||
switchSelect(selected, path, query);
|
||
for (var index2 = pages2.length - 1; index2 >= 0; index2--) {
|
||
var page = pages2[index2];
|
||
if (isTabPage(page)) {
|
||
break;
|
||
}
|
||
closePage(page, "none");
|
||
}
|
||
return Promise.resolve();
|
||
}
|
||
var isLaunchWebviewReady = false;
|
||
function subscribeWebviewReady(_data, pageId) {
|
||
if (isLaunchWebviewReady) {
|
||
return;
|
||
}
|
||
{
|
||
isLaunchWebviewReady = true;
|
||
}
|
||
onLaunchWebviewReady();
|
||
}
|
||
function onLaunchWebviewReady() {
|
||
var entryPagePath = addLeadingSlash(__uniConfig.entryPagePath);
|
||
var routeOptions = getRouteOptions(entryPagePath);
|
||
var args = {
|
||
url: entryPagePath + (__uniConfig.entryPageQuery || ""),
|
||
openType: "appLaunch"
|
||
};
|
||
var handler = {
|
||
resolve() {
|
||
},
|
||
reject() {
|
||
}
|
||
};
|
||
if (routeOptions.meta.isTabBar) {
|
||
return $switchTab(args, handler);
|
||
}
|
||
return $navigateTo(args, handler);
|
||
}
|
||
function initSubscribeHandlers() {
|
||
subscribeWebviewReady();
|
||
}
|
||
function asyncGeneratorStep(n, t, e, r, o, a, c) {
|
||
try {
|
||
var i = n[a](c), u = i.value;
|
||
} catch (n2) {
|
||
return void e(n2);
|
||
}
|
||
i.done ? t(u) : Promise.resolve(u).then(r, o);
|
||
}
|
||
function _asyncToGenerator(n) {
|
||
return function() {
|
||
var t = this, e = arguments;
|
||
return new Promise(function(r, o) {
|
||
var a = n.apply(t, e);
|
||
function _next(n2) {
|
||
asyncGeneratorStep(a, r, o, _next, _throw, "next", n2);
|
||
}
|
||
function _throw(n2) {
|
||
asyncGeneratorStep(a, r, o, _next, _throw, "throw", n2);
|
||
}
|
||
_next(void 0);
|
||
});
|
||
};
|
||
}
|
||
function initOn(app) {
|
||
app.addEventListener(ON_SHOW, /* @__PURE__ */ function() {
|
||
var _ref = _asyncToGenerator(function* (event) {
|
||
var _getCurrentPage;
|
||
var app2 = getNativeApp();
|
||
var MAX_TIMEOUT = 200;
|
||
function getNewIntent() {
|
||
return new Promise((resolve, reject) => {
|
||
var handleNewIntent = (newIntent) => {
|
||
var _newIntent$appScheme, _newIntent$appLink;
|
||
clearTimeout(timeout);
|
||
app2.removeEventListener("onNewIntent", handleNewIntent);
|
||
resolve({
|
||
appScheme: (_newIntent$appScheme = newIntent.appScheme) !== null && _newIntent$appScheme !== void 0 ? _newIntent$appScheme : null,
|
||
appLink: (_newIntent$appLink = newIntent.appLink) !== null && _newIntent$appLink !== void 0 ? _newIntent$appLink : null
|
||
});
|
||
};
|
||
var timeout = setTimeout(() => {
|
||
app2.removeEventListener("onNewIntent", handleNewIntent);
|
||
var appLink = {
|
||
appScheme: null,
|
||
appLink: null
|
||
};
|
||
resolve(appLink);
|
||
}, MAX_TIMEOUT);
|
||
app2.addEventListener("onNewIntent", handleNewIntent);
|
||
});
|
||
}
|
||
var schemaLink = yield getNewIntent();
|
||
var showOptions = extend({
|
||
path: __uniConfig.entryPagePath
|
||
}, schemaLink);
|
||
setEnterOptionsSync(showOptions);
|
||
var page = (_getCurrentPage = getCurrentPage()) === null || _getCurrentPage === void 0 ? void 0 : _getCurrentPage.vm;
|
||
invokeHook(getApp().vm, ON_SHOW, showOptions);
|
||
if (page) {
|
||
invokeHook(page, ON_SHOW);
|
||
}
|
||
});
|
||
return function(_x) {
|
||
return _ref.apply(this, arguments);
|
||
};
|
||
}());
|
||
app.addEventListener(ON_HIDE, function() {
|
||
var _getCurrentPage2;
|
||
var page = (_getCurrentPage2 = getCurrentPage()) === null || _getCurrentPage2 === void 0 ? void 0 : _getCurrentPage2.vm;
|
||
invokeHook(getApp().vm, ON_HIDE);
|
||
if (page) {
|
||
invokeHook(page, ON_HIDE);
|
||
}
|
||
});
|
||
}
|
||
function initService(app) {
|
||
initOn(app);
|
||
}
|
||
function initComponentInstance(app) {
|
||
app.mixin({
|
||
beforeCreate() {
|
||
var vm = this;
|
||
var instance = vm.$;
|
||
if (instance.type.mpType === "app") {
|
||
return;
|
||
}
|
||
var pageId = instance.root.attrs.__pageId;
|
||
vm.$nativePage = getNativeApp().pageManager.findPageById(pageId + "");
|
||
if (vm.$page) {
|
||
vm.$page.__nativePageId = vm.$nativePage.pageId;
|
||
}
|
||
},
|
||
beforeMount() {
|
||
var _vm$$options$styles;
|
||
var vm = this;
|
||
var instance = vm.$;
|
||
if (instance.type.mpType === "app") {
|
||
return;
|
||
}
|
||
loadFontFaceByStyles((_vm$$options$styles = vm.$options.styles) !== null && _vm$$options$styles !== void 0 ? _vm$$options$styles : [], false);
|
||
}
|
||
});
|
||
}
|
||
var appCtx;
|
||
var defaultApp = {
|
||
globalData: {}
|
||
};
|
||
class UniAppImpl {
|
||
get vm() {
|
||
return appCtx;
|
||
}
|
||
get $vm() {
|
||
return appCtx;
|
||
}
|
||
get globalData() {
|
||
var _appCtx;
|
||
return ((_appCtx = appCtx) === null || _appCtx === void 0 ? void 0 : _appCtx.globalData) || {};
|
||
}
|
||
getAndroidApplication() {
|
||
return null;
|
||
}
|
||
}
|
||
var $uniApp = new UniAppImpl();
|
||
var entryPageState = {
|
||
isReady: false,
|
||
handledBeforeEntryPageRoutes: false
|
||
};
|
||
var navigateToPagesBeforeEntryPages = [];
|
||
var switchTabPagesBeforeEntryPages = [];
|
||
var redirectToPagesBeforeEntryPages = [];
|
||
var reLaunchPagesBeforeEntryPages = [];
|
||
function initAppVm(appVm) {
|
||
appVm.$vm = appVm;
|
||
appVm.$mpType = "app";
|
||
}
|
||
function getApp$1() {
|
||
return $uniApp;
|
||
}
|
||
function registerApp(appVm, nativeApp2) {
|
||
initEntryPagePath(nativeApp2);
|
||
setNativeApp(nativeApp2);
|
||
initVueApp(appVm);
|
||
appCtx = appVm;
|
||
initAppVm(appCtx);
|
||
extend(appCtx, defaultApp);
|
||
defineGlobalData(appCtx, defaultApp.globalData);
|
||
initService(nativeApp2);
|
||
initGlobalEvent(nativeApp2);
|
||
initAppLaunch(appVm);
|
||
initAppError(appVm, nativeApp2);
|
||
initSubscribeHandlers();
|
||
__uniConfig.ready = true;
|
||
}
|
||
function initApp(app) {
|
||
initComponentInstance(app);
|
||
}
|
||
function initEntryPagePath(app) {
|
||
var redirectInfo = app.getRedirectInfo();
|
||
var debugInfo = redirectInfo.get("debug");
|
||
if (debugInfo) {
|
||
var url = debugInfo.get("url");
|
||
if (url && url != __uniConfig.entryPagePath) {
|
||
__uniConfig.realEntryPagePath = __uniConfig.entryPagePath;
|
||
var [path, query] = url.split("?");
|
||
__uniConfig.entryPagePath = path;
|
||
if (query) {
|
||
__uniConfig.entryPageQuery = "?".concat(query);
|
||
}
|
||
return;
|
||
}
|
||
}
|
||
if (__uniConfig.conditionUrl) {
|
||
__uniConfig.realEntryPagePath = __uniConfig.entryPagePath;
|
||
var conditionUrl = __uniConfig.conditionUrl;
|
||
var [_path, _query] = conditionUrl.split("?");
|
||
__uniConfig.entryPagePath = _path;
|
||
if (_query) {
|
||
__uniConfig.entryPageQuery = "?".concat(_query);
|
||
}
|
||
}
|
||
}
|
||
var $navigateTo = (args, _ref) => {
|
||
var {
|
||
resolve,
|
||
reject
|
||
} = _ref;
|
||
var {
|
||
url,
|
||
events,
|
||
animationType,
|
||
animationDuration
|
||
} = args;
|
||
var {
|
||
path,
|
||
query
|
||
} = parseUrl(url);
|
||
var [aniType, aniDuration] = initAnimation$1(path, animationType, animationDuration);
|
||
updateEntryPageIsReady(path);
|
||
if (!entryPageState.isReady) {
|
||
navigateToPagesBeforeEntryPages.push({
|
||
args,
|
||
handler: {
|
||
resolve,
|
||
reject
|
||
}
|
||
});
|
||
return;
|
||
}
|
||
_navigateTo({
|
||
url,
|
||
path,
|
||
query,
|
||
events,
|
||
aniType,
|
||
aniDuration
|
||
}).then(resolve).catch(reject);
|
||
handleBeforeEntryPageRoutes();
|
||
};
|
||
var navigateTo = /* @__PURE__ */ defineAsyncApi(API_NAVIGATE_TO, $navigateTo, NavigateToProtocol, NavigateToOptions);
|
||
function _navigateTo(_ref2) {
|
||
var _getCurrentPage;
|
||
var {
|
||
url,
|
||
path,
|
||
query,
|
||
events,
|
||
aniType,
|
||
aniDuration
|
||
} = _ref2;
|
||
var currentPage = (_getCurrentPage = getCurrentPage()) === null || _getCurrentPage === void 0 ? void 0 : _getCurrentPage.vm;
|
||
var currentRouteType = currentPage == null ? "appLaunch" : API_NAVIGATE_TO;
|
||
invokeBeforeRouteHooks(currentRouteType);
|
||
invokeHook(ON_HIDE);
|
||
var eventChannel = new EventChannel(getWebviewId() + 1, events);
|
||
return new Promise((resolve) => {
|
||
var noAnimation = aniType === "none" || aniDuration === 0;
|
||
function callback(page2) {
|
||
showWebview(page2, aniType, aniDuration, () => {
|
||
invokeAfterRouteHooks(currentRouteType);
|
||
resolve({
|
||
eventChannel
|
||
});
|
||
setStatusBarStyle();
|
||
});
|
||
}
|
||
var page = registerPage(
|
||
{
|
||
url,
|
||
path,
|
||
query,
|
||
openType: "navigateTo",
|
||
eventChannel
|
||
},
|
||
noAnimation ? void 0 : callback,
|
||
// 有动画时延迟创建 vm
|
||
noAnimation ? 0 : 1
|
||
);
|
||
if (noAnimation) {
|
||
callback(page);
|
||
}
|
||
});
|
||
}
|
||
function initAnimation$1(path, animationType, animationDuration) {
|
||
if (!getCurrentPage()) {
|
||
return ["none", 0];
|
||
}
|
||
var {
|
||
globalStyle
|
||
} = __uniConfig;
|
||
var meta = getRouteMeta(path);
|
||
return [animationType || meta.animationType || globalStyle.animationType || ANI_SHOW, animationDuration || meta.animationDuration || globalStyle.animationDuration || ANI_DURATION];
|
||
}
|
||
function isDirectPage(page) {
|
||
return !!__uniConfig.realEntryPagePath && getRealPath(page.$basePage.route, true) === getRealPath(parseUrl(__uniConfig.entryPagePath).path, true);
|
||
}
|
||
function reLaunchEntryPage() {
|
||
var _uniConfig$entryPage;
|
||
__uniConfig.entryPagePath = __uniConfig.realEntryPagePath;
|
||
__uniConfig.realEntryPagePath = "";
|
||
reLaunch({
|
||
url: (_uniConfig$entryPage = __uniConfig.entryPagePath) !== null && _uniConfig$entryPage !== void 0 && _uniConfig$entryPage.startsWith("/") ? __uniConfig.entryPagePath : "/" + __uniConfig.entryPagePath
|
||
});
|
||
}
|
||
var navigateBack = /* @__PURE__ */ defineAsyncApi(API_NAVIGATE_BACK, (args, _ref) => {
|
||
var {
|
||
resolve,
|
||
reject
|
||
} = _ref;
|
||
var page = getCurrentPage().vm;
|
||
if (!page) {
|
||
return reject("getCurrentPages is empty");
|
||
}
|
||
if (
|
||
// popGesture 时不触发 onBackPress 事件,避免引发半屏弹窗这种冲突情况
|
||
args.from !== "popGesture"
|
||
) {
|
||
var onBackPressRes = invokeHook(page, ON_BACK_PRESS, {
|
||
from: args.from || "navigateBack"
|
||
});
|
||
if (onBackPressRes !== true) {
|
||
var dialogPages = page.$page.getDialogPages();
|
||
if (dialogPages.length > 0) {
|
||
var dialogPage = dialogPages[dialogPages.length - 1];
|
||
onBackPressRes = invokeHook(dialogPage.$vm, ON_BACK_PRESS, {
|
||
from: args.from || "navigateBack"
|
||
});
|
||
}
|
||
}
|
||
if (onBackPressRes === true) {
|
||
return reject("cancel");
|
||
}
|
||
}
|
||
try {
|
||
uni.hideToast();
|
||
uni.hideLoading();
|
||
} catch (error) {
|
||
console.warn(error);
|
||
}
|
||
if (getPage$BasePage(page).meta.isQuit)
|
||
;
|
||
else {
|
||
if (isDirectPage(page)) {
|
||
return reLaunchEntryPage();
|
||
} else {
|
||
var {
|
||
delta,
|
||
animationType,
|
||
animationDuration
|
||
} = args;
|
||
back(delta, animationType, animationDuration);
|
||
}
|
||
}
|
||
return resolve();
|
||
}, NavigateBackProtocol, NavigateBackOptions);
|
||
function back(delta, animationType, animationDuration) {
|
||
var pages2 = getCurrentBasePages();
|
||
var len = pages2.length;
|
||
var currentPage = pages2[len - 1];
|
||
if (delta > 1) {
|
||
pages2.slice(len - delta, len - 1).reverse().forEach((deltaPage) => {
|
||
var dialogPages2 = deltaPage.$page.getDialogPages();
|
||
for (var i2 = dialogPages2.length - 1; i2 >= 0; i2--) {
|
||
var dialogPage2 = dialogPages2[i2];
|
||
closeNativeDialogPage(dialogPage2);
|
||
}
|
||
closeWebview(getNativeApp().pageManager.findPageById(deltaPage.$basePage.id + ""), "none", 0);
|
||
});
|
||
}
|
||
var backPage = function(webview2) {
|
||
if (animationType) {
|
||
animationDuration = animationDuration || ANI_DURATION;
|
||
} else {
|
||
if (currentPage.$basePage.openType === "redirectTo") {
|
||
animationType = ANI_CLOSE;
|
||
animationDuration = ANI_DURATION;
|
||
} else {
|
||
animationType = "auto";
|
||
}
|
||
}
|
||
closeWebview(webview2, animationType, animationDuration, () => {
|
||
pages2.slice(len - delta, len).forEach((page) => removePage(page));
|
||
invokeHook(ON_SHOW);
|
||
setStatusBarStyle();
|
||
});
|
||
};
|
||
var webview = getNativeApp().pageManager.findPageById(currentPage.$basePage.id + "");
|
||
var dialogPages = currentPage.$page.getDialogPages();
|
||
for (var i = dialogPages.length - 1; i >= 0; i--) {
|
||
var dialogPage = dialogPages[i];
|
||
closeNativeDialogPage(dialogPage);
|
||
if (i > 0) {
|
||
invokeHook(dialogPages[i - 1].$vm, ON_SHOW);
|
||
}
|
||
}
|
||
var systemDialogPages = currentPage.$systemDialogPages || [];
|
||
for (var _i = 0; _i < systemDialogPages.length; _i++) {
|
||
closeNativeDialogPage(systemDialogPages[_i]);
|
||
}
|
||
currentPage.$systemDialogPages = [];
|
||
backPage(webview);
|
||
}
|
||
var openDialogPage = (options) => {
|
||
var _options$success, _options$complete;
|
||
var {
|
||
url,
|
||
animationType
|
||
} = options;
|
||
if (!options.url) {
|
||
triggerFailCallback$1(options, "url is required");
|
||
return null;
|
||
}
|
||
var {
|
||
path,
|
||
query
|
||
} = parseUrl(url);
|
||
var normalizeUrl = createNormalizeUrl("navigateTo");
|
||
var errMsg = normalizeUrl(path, {});
|
||
if (errMsg) {
|
||
triggerFailCallback$1(options, errMsg);
|
||
return null;
|
||
}
|
||
var parentPage = options.parentPage || null;
|
||
var currentPages = getCurrentPages();
|
||
if (parentPage) {
|
||
if (currentPages.indexOf(parentPage) === -1) {
|
||
triggerFailCallback$1(options, "parentPage is not a valid page");
|
||
return null;
|
||
}
|
||
}
|
||
if (currentPages.length && !parentPage) {
|
||
parentPage = currentPages[currentPages.length - 1];
|
||
}
|
||
var dialogPage = new UniDialogPageImpl();
|
||
dialogPage.route = path;
|
||
dialogPage.optionsByJS = query;
|
||
dialogPage.getParentPage = () => parentPage;
|
||
dialogPage.$component = null;
|
||
dialogPage.$disableEscBack = false;
|
||
var systemDialog = isSystemDialogPage(dialogPage);
|
||
if (!systemDialog) {
|
||
if (!parentPage) {
|
||
homeDialogPages.push(dialogPage);
|
||
} else {
|
||
var dialogPages = parentPage.getDialogPages();
|
||
if (dialogPages.length) {
|
||
invokeHook(dialogPages[dialogPages.length - 1].$vm, ON_HIDE);
|
||
}
|
||
dialogPages.push(dialogPage);
|
||
}
|
||
} else {
|
||
if (!parentPage) {
|
||
homeSystemDialogPages.push(dialogPage);
|
||
if (isSystemActionSheetDialogPage(dialogPage)) {
|
||
closePreActionSheet(homeSystemDialogPages);
|
||
}
|
||
} else {
|
||
if (!parentPage.vm.$systemDialogPages) {
|
||
parentPage.vm.$systemDialogPages = [];
|
||
}
|
||
parentPage.vm.$systemDialogPages.push(dialogPage);
|
||
if (isSystemActionSheetDialogPage(dialogPage)) {
|
||
closePreActionSheet(parentPage.vm.$systemDialogPages);
|
||
}
|
||
}
|
||
}
|
||
var [aniType, aniDuration] = initAnimation(path, animationType);
|
||
var noAnimation = aniType === "none" || aniDuration === 0;
|
||
function callback(page2) {
|
||
showWebview(page2, aniType, aniDuration, () => {
|
||
beforeRoute();
|
||
});
|
||
}
|
||
var page = registerDialogPage(
|
||
{
|
||
url,
|
||
path,
|
||
query,
|
||
openType: OPEN_DIALOG_PAGE
|
||
},
|
||
dialogPage,
|
||
noAnimation ? void 0 : callback,
|
||
// 有动画时延迟创建 vm
|
||
noAnimation ? 0 : 1
|
||
);
|
||
if (systemDialog) {
|
||
dialogPage.__nativeType = "systemDialog";
|
||
}
|
||
if (noAnimation) {
|
||
callback(page);
|
||
}
|
||
var successOptions = {
|
||
errMsg: "openDialogPage:ok"
|
||
};
|
||
(_options$success = options.success) === null || _options$success === void 0 || _options$success.call(options, successOptions);
|
||
(_options$complete = options.complete) === null || _options$complete === void 0 || _options$complete.call(options, successOptions);
|
||
return dialogPage;
|
||
};
|
||
function triggerFailCallback$1(options, errMsg) {
|
||
var _options$fail, _options$complete2;
|
||
var failOptions = new UniError("uni-openDialogPage", 4, "openDialogPage: fail, ".concat(errMsg));
|
||
(_options$fail = options.fail) === null || _options$fail === void 0 || _options$fail.call(options, failOptions);
|
||
(_options$complete2 = options.complete) === null || _options$complete2 === void 0 || _options$complete2.call(options, failOptions);
|
||
}
|
||
function initAnimation(path, animationType) {
|
||
if (!getCurrentPage()) {
|
||
return ["none", 0];
|
||
}
|
||
var {
|
||
globalStyle
|
||
} = __uniConfig;
|
||
var meta = getRouteMeta(path);
|
||
var _animationType = animationType || meta.animationType || globalStyle.animationType || ANI_SHOW;
|
||
if (_animationType == "pop-in") {
|
||
_animationType = "none";
|
||
}
|
||
return [_animationType, meta.animationDuration || globalStyle.animationDuration || ANI_DURATION];
|
||
}
|
||
function closePreActionSheet(dialogPages) {
|
||
var actionSheets = dialogPages.filter((page) => isSystemActionSheetDialogPage(page));
|
||
if (actionSheets.length > 1) {
|
||
setTimeout(() => {
|
||
closeNativeDialogPage(actionSheets[0]);
|
||
dialogPages.splice(dialogPages.indexOf(actionSheets[0]), 1);
|
||
}, 150);
|
||
}
|
||
}
|
||
var closeDialogPage = (options) => {
|
||
var _options$success, _options$complete;
|
||
var currentPages = getCurrentPages();
|
||
var currentPage = currentPages[currentPages.length - 1];
|
||
if (!currentPage) {
|
||
triggerFailCallback(options, "currentPage is null");
|
||
return;
|
||
}
|
||
if ((options === null || options === void 0 ? void 0 : options.animationType) === "pop-out") {
|
||
options.animationType = "none";
|
||
}
|
||
if (options !== null && options !== void 0 && options.dialogPage) {
|
||
var dialogPage = options === null || options === void 0 ? void 0 : options.dialogPage;
|
||
if (!(dialogPage instanceof UniDialogPageImpl)) {
|
||
triggerFailCallback(options, "dialogPage is not a valid page");
|
||
return;
|
||
}
|
||
var parentPage = dialogPage.getParentPage();
|
||
if (!isSystemDialogPage(dialogPage)) {
|
||
if (parentPage && currentPages.indexOf(parentPage) !== -1) {
|
||
var parentDialogPages = parentPage.getDialogPages();
|
||
var index2 = parentDialogPages.indexOf(dialogPage);
|
||
parentDialogPages.splice(index2, 1);
|
||
closeNativeDialogPage(dialogPage, (options === null || options === void 0 ? void 0 : options.animationType) || "none", (options === null || options === void 0 ? void 0 : options.animationDuration) || ANI_DURATION);
|
||
if (index2 > 0 && index2 === parentDialogPages.length) {
|
||
invokeHook(parentDialogPages[parentDialogPages.length - 1].$vm, ON_SHOW);
|
||
}
|
||
} else {
|
||
triggerFailCallback(options, "dialogPage is not a valid page");
|
||
return;
|
||
}
|
||
} else {
|
||
var systemDialogPages = parentPage.vm.$systemDialogPages;
|
||
var _index = systemDialogPages.indexOf(dialogPage);
|
||
systemDialogPages.splice(_index, 1);
|
||
closeNativeDialogPage(dialogPage);
|
||
return;
|
||
}
|
||
} else {
|
||
var dialogPages = currentPage.getDialogPages();
|
||
for (var i = dialogPages.length - 1; i >= 0; i--) {
|
||
closeNativeDialogPage(dialogPages[i], (options === null || options === void 0 ? void 0 : options.animationType) || "none", (options === null || options === void 0 ? void 0 : options.animationDuration) || ANI_DURATION);
|
||
if (i > 0) {
|
||
invokeHook(dialogPages[i - 1].$vm, ON_SHOW);
|
||
}
|
||
dialogPages[i] = null;
|
||
}
|
||
dialogPages.length = 0;
|
||
}
|
||
var successOptions = {
|
||
errMsg: "closeDialogPage: ok"
|
||
};
|
||
options === null || options === void 0 || (_options$success = options.success) === null || _options$success === void 0 || _options$success.call(options, successOptions);
|
||
options === null || options === void 0 || (_options$complete = options.complete) === null || _options$complete === void 0 || _options$complete.call(options, successOptions);
|
||
};
|
||
function triggerFailCallback(options, errMsg) {
|
||
var _options$fail, _options$complete2;
|
||
var failOptions = new UniError("uni-openDialogPage", 4, "openDialogPage: fail, ".concat(errMsg));
|
||
options === null || options === void 0 || (_options$fail = options.fail) === null || _options$fail === void 0 || _options$fail.call(options, failOptions);
|
||
options === null || options === void 0 || (_options$complete2 = options.complete) === null || _options$complete2 === void 0 || _options$complete2.call(options, failOptions);
|
||
}
|
||
var setTabBarBadge = /* @__PURE__ */ defineAsyncApi(API_SET_TAB_BAR_BADGE, (_ref, _ref2) => {
|
||
var {
|
||
index: index2,
|
||
text
|
||
} = _ref;
|
||
var {
|
||
resolve,
|
||
reject
|
||
} = _ref2;
|
||
var tabBar = getTabBar();
|
||
if (tabBar === null) {
|
||
reject("tabBar is not exist");
|
||
return;
|
||
}
|
||
tabBar.setTabBarBadge(/* @__PURE__ */ new Map([["index", index2], ["text", text]]));
|
||
resolve();
|
||
}, SetTabBarBadgeProtocol, SetTabBarBadgeOptions);
|
||
var removeTabBarBadge = /* @__PURE__ */ defineAsyncApi(API_REMOVE_TAB_BAR_BADGE, (_ref, _ref2) => {
|
||
var {
|
||
index: index2
|
||
} = _ref;
|
||
var {
|
||
resolve,
|
||
reject
|
||
} = _ref2;
|
||
var tabBar = getTabBar();
|
||
if (tabBar === null) {
|
||
reject("tabBar is not exist");
|
||
return;
|
||
}
|
||
tabBar.removeTabBarBadge(/* @__PURE__ */ new Map([["index", index2]]));
|
||
resolve();
|
||
}, RemoveTabBarBadgeProtocol, RemoveTabBarBadgeOptions);
|
||
var setTabBarItem = /* @__PURE__ */ defineAsyncApi(API_SET_TAB_BAR_ITEM, (_ref, _ref2) => {
|
||
var {
|
||
index: index2,
|
||
text,
|
||
iconPath,
|
||
selectedIconPath,
|
||
pagePath,
|
||
visible,
|
||
iconfont
|
||
} = _ref;
|
||
var {
|
||
resolve,
|
||
reject
|
||
} = _ref2;
|
||
var tabBar = getTabBar();
|
||
if (tabBar === null) {
|
||
reject("tabBar is not exist");
|
||
return;
|
||
}
|
||
var item = /* @__PURE__ */ new Map([["index", index2], ["text", text], ["iconPath", iconPath], ["selectedIconPath", selectedIconPath], ["pagePath", pagePath], ["visible", visible]]);
|
||
if (!!iconfont) {
|
||
var iconfontOptions = iconfont;
|
||
var _iconfont = /* @__PURE__ */ new Map([["text", iconfontOptions.text], ["selectedText", iconfontOptions.selectedText], ["fontSize", iconfontOptions.fontSize], ["color", iconfontOptions.color], ["selectedColor", iconfontOptions.selectedColor]]);
|
||
item.set("iconfont", _iconfont);
|
||
}
|
||
tabBar.setTabBarItem(item);
|
||
resolve();
|
||
}, SetTabBarItemProtocol, SetTabBarItemOptions);
|
||
var setTabBarStyle = /* @__PURE__ */ defineAsyncApi(API_SET_TAB_BAR_STYLE, (options, _ref) => {
|
||
var {
|
||
resolve,
|
||
reject
|
||
} = _ref;
|
||
var tabBar = getTabBar();
|
||
if (tabBar === null) {
|
||
reject("tabBar is not exist");
|
||
return;
|
||
}
|
||
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]]);
|
||
if (!!options.midButton) {
|
||
var midButtonOptions = options.midButton;
|
||
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]]);
|
||
if (!!midButtonOptions.iconfont) {
|
||
var iconfontOptions = midButtonOptions.iconfont;
|
||
var iconfont = /* @__PURE__ */ new Map([["text", iconfontOptions.text], ["selectedText", iconfontOptions.selectedText], ["fontSize", iconfontOptions.fontSize], ["color", iconfontOptions.color], ["selectedColor", iconfontOptions.selectedColor]]);
|
||
midButton.set("iconfont", iconfont);
|
||
}
|
||
style.set("midButton", midButton);
|
||
}
|
||
fixBorderStyle(style);
|
||
tabBar.setTabBarStyle(style);
|
||
resolve();
|
||
}, SetTabBarStyleProtocol, SetTabBarStyleOptions);
|
||
var hideTabBar = /* @__PURE__ */ defineAsyncApi(API_HIDE_TAB_BAR, (options, _ref) => {
|
||
var {
|
||
resolve,
|
||
reject
|
||
} = _ref;
|
||
var tabBar = getTabBar();
|
||
if (tabBar === null) {
|
||
reject("tabBar is not exist");
|
||
return;
|
||
}
|
||
tabBar.hideTabBar(/* @__PURE__ */ new Map([["animation", options === null || options === void 0 ? void 0 : options.animation]]));
|
||
resolve();
|
||
});
|
||
var showTabBar = /* @__PURE__ */ defineAsyncApi(API_SHOW_TAB_BAR, (args, _ref) => {
|
||
var {
|
||
resolve,
|
||
reject
|
||
} = _ref;
|
||
var tabBar = getTabBar();
|
||
var animation2 = args && args.animation;
|
||
if (tabBar === null) {
|
||
reject("tabBar is not exist");
|
||
return;
|
||
}
|
||
tabBar.showTabBar(/* @__PURE__ */ new Map([["animation", animation2]]));
|
||
resolve();
|
||
});
|
||
var showTabBarRedDot = /* @__PURE__ */ defineAsyncApi(API_SHOW_TAB_BAR_RED_DOT, (_ref, _ref2) => {
|
||
var {
|
||
index: index2
|
||
} = _ref;
|
||
var {
|
||
resolve,
|
||
reject
|
||
} = _ref2;
|
||
var tabBar = getTabBar();
|
||
if (tabBar === null) {
|
||
reject("tabBar is not exist");
|
||
return;
|
||
}
|
||
tabBar.showTabBarRedDot(/* @__PURE__ */ new Map([["index", index2]]));
|
||
resolve();
|
||
}, ShowTabBarRedDotProtocol, ShowTabBarRedDotOptions);
|
||
var hideTabBarRedDot = /* @__PURE__ */ defineAsyncApi(API_HIDE_TAB_BAR_RED_DOT, (_ref, _ref2) => {
|
||
var {
|
||
index: index2
|
||
} = _ref;
|
||
var {
|
||
resolve,
|
||
reject
|
||
} = _ref2;
|
||
var tabBar = getTabBar();
|
||
if (tabBar === null) {
|
||
reject("tabBar is not exist");
|
||
return;
|
||
}
|
||
tabBar.hideTabBarRedDot(/* @__PURE__ */ new Map([["index", index2]]));
|
||
resolve();
|
||
}, HideTabBarRedDotProtocol, HideTabBarRedDotOptions);
|
||
var onTabBarMidButtonTap = (cb) => {
|
||
onTabBarMidButtonTapCallback.push(cb);
|
||
};
|
||
var setNavigationBarColor = /* @__PURE__ */ defineAsyncApi(API_SET_NAVIGATION_BAR_COLOR, (_ref, _ref2) => {
|
||
var {
|
||
frontColor,
|
||
backgroundColor
|
||
} = _ref;
|
||
var {
|
||
resolve,
|
||
reject
|
||
} = _ref2;
|
||
var page = getCurrentPage();
|
||
if (!page) {
|
||
return reject("getCurrentPages is empty");
|
||
}
|
||
var appPage = page.vm.$nativePage;
|
||
appPage.updateStyle(/* @__PURE__ */ new Map([["navigationBarTextStyle", frontColor == "#000000" ? "black" : "white"], ["navigationBarBackgroundColor", backgroundColor]]));
|
||
resolve();
|
||
}, SetNavigationBarColorProtocol, SetNavigationBarColorOptions);
|
||
var setNavigationBarTitle = /* @__PURE__ */ defineAsyncApi(API_SET_NAVIGATION_BAR_TITLE, (options, _ref) => {
|
||
var {
|
||
resolve,
|
||
reject
|
||
} = _ref;
|
||
var page = getCurrentPage().vm;
|
||
if (page == null) {
|
||
reject("page is not ready");
|
||
return;
|
||
}
|
||
var appPage = page.$nativePage;
|
||
appPage.updateStyle(/* @__PURE__ */ new Map([["navigationBarTitleText", options.title]]));
|
||
resolve();
|
||
});
|
||
var getElementById = /* @__PURE__ */ defineSyncApi("getElementById", (id2) => {
|
||
var _page$$el;
|
||
var page = getCurrentPage().vm;
|
||
if (page == null) {
|
||
return null;
|
||
}
|
||
var bodyNode = (_page$$el = page.$el) === null || _page$$el === void 0 ? void 0 : _page$$el.parentNode;
|
||
if (bodyNode == null) {
|
||
console.warn("bodyNode is null");
|
||
return null;
|
||
}
|
||
return bodyNode.querySelector("#".concat(id2));
|
||
});
|
||
function isVueComponent(comp) {
|
||
var has$instance = typeof comp.$ === "object";
|
||
var has$el = typeof comp.$el === "object";
|
||
return has$instance && has$el;
|
||
}
|
||
var isFunction = (val) => typeof val === "function";
|
||
class NodesRefImpl {
|
||
constructor(selectorQuery, component, selector, single) {
|
||
this._selectorQuery = selectorQuery;
|
||
this._component = component;
|
||
this._selector = selector;
|
||
this._single = single;
|
||
}
|
||
boundingClientRect(callback) {
|
||
var hasArg = callback === null || typeof callback === "function";
|
||
if (hasArg) {
|
||
this._selectorQuery._push(this._selector, this._component, this._single, {
|
||
id: true,
|
||
dataset: true,
|
||
rect: true,
|
||
size: true
|
||
}, callback);
|
||
return this._selectorQuery;
|
||
} else {
|
||
return this.boundingClientRect(null);
|
||
}
|
||
}
|
||
fields(fields, callback) {
|
||
this._selectorQuery._push(this._selector, this._component, this._single, fields, callback);
|
||
return this._selectorQuery;
|
||
}
|
||
scrollOffset(callback) {
|
||
this._selectorQuery._push(this._selector, this._component, this._single, {
|
||
id: true,
|
||
dataset: true,
|
||
scrollOffset: true
|
||
}, callback);
|
||
return this._selectorQuery;
|
||
}
|
||
context(callback) {
|
||
this._selectorQuery._push(this._selector, this._component, this._single, {
|
||
context: true
|
||
}, callback);
|
||
return this._selectorQuery;
|
||
}
|
||
/**
|
||
* fields({node:true})
|
||
*/
|
||
node(_callback) {
|
||
this._selectorQuery._push(this._selector, this._component, this._single, {
|
||
node: true
|
||
}, _callback);
|
||
return this._selectorQuery;
|
||
}
|
||
}
|
||
class SelectorQueryImpl {
|
||
constructor(component) {
|
||
this._component = null;
|
||
this._component = component;
|
||
this._queue = [];
|
||
this._queueCb = [];
|
||
}
|
||
exec(callback) {
|
||
var _this$_component;
|
||
(_this$_component = this._component) === null || _this$_component === void 0 || (_this$_component = _this$_component.$) === null || _this$_component === void 0 || _this$_component.$waitNativeRender(() => {
|
||
requestComponentInfo(this._component, this._queue, (res) => {
|
||
var queueCbs = this._queueCb;
|
||
res.forEach((info, _index) => {
|
||
var queueCb = queueCbs[_index];
|
||
if (isFunction(queueCb)) {
|
||
queueCb(info);
|
||
}
|
||
});
|
||
if (callback && isFunction(callback)) {
|
||
callback(res);
|
||
}
|
||
});
|
||
});
|
||
return this._nodesRef;
|
||
}
|
||
in(component) {
|
||
if (isVueComponent(component)) {
|
||
this._component = component;
|
||
}
|
||
return this;
|
||
}
|
||
select(selector) {
|
||
this._nodesRef = new NodesRefImpl(this, this._component, selector, true);
|
||
return this._nodesRef;
|
||
}
|
||
selectAll(selector) {
|
||
this._nodesRef = new NodesRefImpl(this, this._component, selector, false);
|
||
return this._nodesRef;
|
||
}
|
||
selectViewport() {
|
||
this._nodesRef = new NodesRefImpl(this, null, "", true);
|
||
return this._nodesRef;
|
||
}
|
||
_push(selector, component, single, fields, callback) {
|
||
this._queue.push({
|
||
component,
|
||
selector,
|
||
single,
|
||
fields
|
||
});
|
||
this._queueCb.push(callback);
|
||
}
|
||
}
|
||
class QuerySelectorHelper {
|
||
constructor(element, vnode, fields) {
|
||
this._element = element;
|
||
this._commentStartVNode = vnode;
|
||
this._fields = fields;
|
||
}
|
||
/**
|
||
* entry
|
||
*/
|
||
static queryElement(element, selector, all, vnode, fields) {
|
||
return new QuerySelectorHelper(element, vnode, fields).query(selector, all);
|
||
}
|
||
/**
|
||
* 执行查询
|
||
* @param selector 选择器
|
||
* @param all 是否查询所有 selectAll
|
||
* @returns
|
||
*/
|
||
query(selector, all) {
|
||
if (this._element.nodeName == "#comment") {
|
||
return this.queryFragment(this._element, selector, all);
|
||
} else {
|
||
return all ? this.querySelectorAll(this._element, selector) : this.querySelector(this._element, selector);
|
||
}
|
||
}
|
||
queryFragment(el, selector, all) {
|
||
var current = el.nextSibling;
|
||
if (current == null) {
|
||
return null;
|
||
}
|
||
if (all) {
|
||
var result1 = [];
|
||
while (true) {
|
||
var queryResult = this.querySelectorAll(current, selector);
|
||
if (queryResult != null) {
|
||
result1.push(...queryResult);
|
||
}
|
||
current = current.nextSibling;
|
||
if (current == null || this._commentStartVNode.anchor == current) {
|
||
break;
|
||
}
|
||
}
|
||
return result1;
|
||
} else {
|
||
var result2 = null;
|
||
while (true) {
|
||
result2 = this.querySelector(current, selector);
|
||
current = current.nextSibling;
|
||
if (result2 != null || current == null || this._commentStartVNode.anchor == current) {
|
||
break;
|
||
}
|
||
}
|
||
return result2;
|
||
}
|
||
}
|
||
querySelector(element, selector) {
|
||
var element2 = this.querySelf(element, selector);
|
||
if (element2 == null) {
|
||
element2 = element.querySelector(selector);
|
||
}
|
||
if (element2 != null) {
|
||
return this.getNodeInfo(element2);
|
||
}
|
||
return null;
|
||
}
|
||
querySelectorAll(element, selector) {
|
||
var nodesInfoArray = [];
|
||
var element2 = this.querySelf(element, selector);
|
||
if (element2 != null) {
|
||
nodesInfoArray.push(this.getNodeInfo(element));
|
||
}
|
||
var findNodes = element.querySelectorAll(selector);
|
||
findNodes === null || findNodes === void 0 || findNodes.forEach((el) => {
|
||
nodesInfoArray.push(this.getNodeInfo(el));
|
||
});
|
||
return nodesInfoArray;
|
||
}
|
||
querySelf(element, selector) {
|
||
if (element == null || selector.length < 2) {
|
||
return null;
|
||
}
|
||
var selectorType = selector.charAt(0);
|
||
var selectorName = selector.slice(1);
|
||
if (selectorType == "." && element.classList.includes(selectorName)) {
|
||
return element;
|
||
}
|
||
if (selectorType == "#" && element.getAttribute("id") == selectorName) {
|
||
return element;
|
||
}
|
||
if (selector.toUpperCase() == element.nodeName.toUpperCase()) {
|
||
return element;
|
||
}
|
||
return null;
|
||
}
|
||
/**
|
||
* 查询元素信息
|
||
* @param element
|
||
* @returns
|
||
*/
|
||
getNodeInfo(element) {
|
||
var _element$getAttribute;
|
||
if (this._fields.node == true) {
|
||
var nodeInfo2 = {
|
||
node: element
|
||
};
|
||
if (this._fields.size == true) {
|
||
var rect2 = element.getBoundingClientRect();
|
||
nodeInfo2.width = rect2.width;
|
||
nodeInfo2.height = rect2.height;
|
||
}
|
||
return nodeInfo2;
|
||
}
|
||
var rect = element.getBoundingClientRect();
|
||
var nodeInfo = {
|
||
id: (_element$getAttribute = element.getAttribute("id")) === null || _element$getAttribute === void 0 ? void 0 : _element$getAttribute.toString(),
|
||
dataset: null,
|
||
left: rect.left,
|
||
top: rect.top,
|
||
right: rect.right,
|
||
bottom: rect.bottom,
|
||
width: rect.width,
|
||
height: rect.height
|
||
};
|
||
return nodeInfo;
|
||
}
|
||
}
|
||
function requestComponentInfo(vueComponent, queue2, callback) {
|
||
var result = [];
|
||
var el = vueComponent === null || vueComponent === void 0 ? void 0 : vueComponent.$el;
|
||
if (el != null) {
|
||
queue2.forEach((item) => {
|
||
var queryResult = QuerySelectorHelper.queryElement(el, item.selector, !item.single, vueComponent === null || vueComponent === void 0 ? void 0 : vueComponent.$.subTree, item.fields);
|
||
if (queryResult != null) {
|
||
result.push(queryResult);
|
||
}
|
||
});
|
||
}
|
||
callback(result);
|
||
}
|
||
var createSelectorQuery = function() {
|
||
var instance = getCurrentPage().vm;
|
||
return new SelectorQueryImpl(instance);
|
||
};
|
||
class CanvasContextImpl {
|
||
constructor(element) {
|
||
this._element = element;
|
||
}
|
||
// @ts-expect-error 类型不匹配
|
||
getContext(contextType) {
|
||
return this._element.getContext(contextType);
|
||
}
|
||
toBlob(callback, type, quality) {
|
||
throw new Error("Method not implemented.");
|
||
}
|
||
toDataURL(type, quality) {
|
||
return this._element.toDataURL(type, quality);
|
||
}
|
||
createImage() {
|
||
return new Image();
|
||
}
|
||
createPath2D() {
|
||
return new Path2D();
|
||
}
|
||
requestAnimationFrame(callback) {
|
||
return requestAnimationFrame(callback);
|
||
}
|
||
cancelAnimationFrame(taskId) {
|
||
cancelAnimationFrame(taskId);
|
||
}
|
||
}
|
||
var createCanvasContextAsync = /* @__PURE__ */ defineAsyncApi("createCanvasContextAsync", (options, _ref) => {
|
||
var _options$component;
|
||
var {
|
||
resolve,
|
||
reject
|
||
} = _ref;
|
||
var page = getCurrentPage().vm;
|
||
if (page == null) {
|
||
return null;
|
||
}
|
||
createSelectorQuery().in((_options$component = options.component) !== null && _options$component !== void 0 ? _options$component : null).select("#" + options.id).fields({
|
||
node: true
|
||
}, (ret) => {
|
||
var node = ret.node;
|
||
if (node != null) {
|
||
resolve(new CanvasContextImpl(node));
|
||
} else {
|
||
var uniError = new UniError("uni-createCanvasContextAsync", -1, "canvas id invalid.");
|
||
reject(uniError.errMsg);
|
||
}
|
||
}).exec();
|
||
});
|
||
function queryElementTop(component, selector) {
|
||
var _component$$el;
|
||
var scrollNode = (_component$$el = component.$el) === null || _component$$el === void 0 ? void 0 : _component$$el.querySelector(selector);
|
||
if (scrollNode != null) {
|
||
return scrollNode.getBoundingClientRect().top;
|
||
}
|
||
return null;
|
||
}
|
||
var pageScrollTo = /* @__PURE__ */ defineAsyncApi(API_PAGE_SCROLL_TO, (options, res) => {
|
||
var currentPage = getCurrentPage().vm;
|
||
var scrollViewNode = currentPage === null || currentPage === void 0 ? void 0 : currentPage.$el;
|
||
if (scrollViewNode == null || scrollViewNode.tagName != "SCROLL-VIEW") {
|
||
res.reject("selector invalid");
|
||
return;
|
||
}
|
||
var top = options.scrollTop;
|
||
if (!!options.selector) {
|
||
top = queryElementTop(currentPage, options.selector);
|
||
if (top != null) {
|
||
var currentScrollTop = scrollViewNode.scrollTop;
|
||
top += currentScrollTop;
|
||
}
|
||
}
|
||
if (top == null || top < 0) {
|
||
res.reject("top or selector invalid");
|
||
return;
|
||
}
|
||
if (options.offsetTop != null) {
|
||
top += options.offsetTop;
|
||
}
|
||
scrollViewNode.scrollTop = top;
|
||
res.resolve();
|
||
}, PageScrollToProtocol, PageScrollToOptions);
|
||
var SOURCE_REG = /(.+\.((ttf)|(otf)|(woff2?))$)|(^(http|https):\/\/.+)|(^(data:font).+)/;
|
||
function removeUrlWrap(source) {
|
||
if (source.startsWith("url(")) {
|
||
if (source.split("format(").length > 1) {
|
||
source = source.split("format(")[0].trim();
|
||
}
|
||
source = source.substring(4, source.length - 1);
|
||
}
|
||
if (source.startsWith('"') || source.startsWith("'")) {
|
||
source = source.substring(1, source.length - 1);
|
||
}
|
||
return source;
|
||
}
|
||
function checkOptionSource(options, res) {
|
||
options.source = removeUrlWrap(options.source);
|
||
if (!SOURCE_REG.test(options.source)) {
|
||
res.reject("loadFontFace:fail, source is invalid.", 101);
|
||
return false;
|
||
}
|
||
return true;
|
||
}
|
||
function getLoadFontFaceOptions(options, res) {
|
||
return {
|
||
family: options.family,
|
||
source: options.source,
|
||
success: (_) => {
|
||
res.resolve(null);
|
||
},
|
||
fail: (error) => {
|
||
res.reject(
|
||
// new LoadFontFaceErrorImpl(
|
||
error.errMsg,
|
||
error.errCode
|
||
// )
|
||
);
|
||
}
|
||
};
|
||
}
|
||
var loadFontFace = /* @__PURE__ */ defineAsyncApi(API_LOAD_FONT_FACE, (options, res) => {
|
||
if (options.global === true) {
|
||
if (checkOptionSource(options, res)) {
|
||
var app = getNativeApp();
|
||
var fontInfo = getLoadFontFaceOptions(options, res);
|
||
app.loadFontFace(fontInfo);
|
||
}
|
||
} else {
|
||
var page = getCurrentPage().vm;
|
||
if (!page) {
|
||
res.reject("page is not ready", 99);
|
||
return;
|
||
}
|
||
if (page.$fontFamilySet.has(options.family)) {
|
||
return;
|
||
}
|
||
if (checkOptionSource(options, res)) {
|
||
page.$fontFamilySet.add(options.family);
|
||
var _fontInfo = getLoadFontFaceOptions(options, res);
|
||
page.$nativePage.loadFontFace(_fontInfo);
|
||
}
|
||
}
|
||
});
|
||
var startPullDownRefresh = /* @__PURE__ */ defineAsyncApi(API_START_PULL_DOWN_REFRESH, (_options, res) => {
|
||
var page = getCurrentPage().vm;
|
||
if (page === null) {
|
||
res.reject("page is not ready");
|
||
return;
|
||
}
|
||
page.$nativePage.startPullDownRefresh({
|
||
success: res.resolve,
|
||
fail: res.reject
|
||
});
|
||
});
|
||
var stopPullDownRefresh = /* @__PURE__ */ defineAsyncApi(API_STOP_PULL_DOWN_REFRESH, (_args, res) => {
|
||
var page = getCurrentPage().vm;
|
||
if (page === null) {
|
||
res.reject("page is not ready");
|
||
return;
|
||
}
|
||
page.$nativePage.stopPullDownRefresh();
|
||
res.resolve();
|
||
});
|
||
var defaultPoi = {
|
||
latitude: 39.908823,
|
||
longitude: 116.39747
|
||
};
|
||
var languageData = {
|
||
"en": {
|
||
"back": "cancel",
|
||
"ok": "ok",
|
||
"cancel": "cancel",
|
||
"loading": "loading...",
|
||
"locationLoading": "positioning...",
|
||
"search": "Search location",
|
||
"current-location": "current location"
|
||
},
|
||
"zh-Hans": {
|
||
"back": "取消",
|
||
"ok": "确定",
|
||
"cancel": "取消",
|
||
"loading": "请求中...",
|
||
"locationLoading": "获取定位中...",
|
||
"search": "搜索地点",
|
||
"current-location": "当前位置"
|
||
},
|
||
"zh-Hant": {
|
||
"back": "取消",
|
||
"ok": "確定",
|
||
"cancel": "取消",
|
||
"loading": "請求中...",
|
||
"locationLoading": "獲取定位中...",
|
||
"search": "蒐索地點",
|
||
"current-location": "當前位置"
|
||
}
|
||
};
|
||
var loadingPath = "data:image/gif;base64,R0lGODlhLAEsAaIFAMPDw/j4+J2dneHh4aWlpf///wAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDkuMC1jMDAwIDc5LjE3MWMyN2ZhYiwgMjAyMi8wOC8xNi0yMjozNTo0MSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDI0LjAgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjIxOTdCRjQ2MEQ2MTFFRUI1NjJFQzJFRDFFNUYwODYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjIxOTdCRjU2MEQ2MTFFRUI1NjJFQzJFRDFFNUYwODYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyMzMzNjFGRjYwRDMxMUVFQjU2MkVDMkVEMUU1RjA4NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyMzMzNjIwMDYwRDMxMUVFQjU2MkVDMkVEMUU1RjA4NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV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";
|
||
const _sfc_main = {
|
||
data() {
|
||
var id1 = "UniMap1_".concat((Math.random() * 1e6).toString(36));
|
||
var id2 = "UniMap2_".concat((Math.random() * 1e6).toString(36));
|
||
var id3 = "UniMap3_".concat((Math.random() * 1e6).toString(36));
|
||
return {
|
||
readyEventName: "",
|
||
optionsEventName: "",
|
||
successEventName: "",
|
||
failEventName: "",
|
||
mapId: id1,
|
||
mapTargetId: id2,
|
||
scrollId: id3,
|
||
isFocus: false,
|
||
latitude: 0,
|
||
longitude: 0,
|
||
locationComplete: false,
|
||
locationLoading: false,
|
||
chooseLocationOptions: {},
|
||
pageIndex: 1,
|
||
pageSize: 20,
|
||
pois: [],
|
||
selected: -1,
|
||
searchValue: "",
|
||
safeArea: {
|
||
top: 0,
|
||
bottom: 0,
|
||
left: 0,
|
||
right: 0
|
||
},
|
||
icon: {
|
||
target: "",
|
||
success: "",
|
||
position: "",
|
||
search: ""
|
||
},
|
||
lastTime: 0,
|
||
searchLoading: false,
|
||
language: "zh-Hans",
|
||
scrollTop: 0,
|
||
isLandscape: false,
|
||
theme: "light",
|
||
searchValueChangeTimer: -1,
|
||
lastPoi: {
|
||
latitude: null,
|
||
longitude: null,
|
||
selected: -1,
|
||
pois: [],
|
||
scrollTop: 0
|
||
},
|
||
errMsg: "",
|
||
callUniMapCoErr: false,
|
||
useUniCloud: true,
|
||
loadingPath,
|
||
mapHeight: 350
|
||
};
|
||
},
|
||
onLoad(options) {
|
||
this.checkUniCloud();
|
||
this.initPageOptions(options);
|
||
this.getSystemInfo();
|
||
this.getLocation();
|
||
},
|
||
onReady() {
|
||
},
|
||
onUnload() {
|
||
uni.$off(this.optionsEventName, null);
|
||
uni.$off(this.readyEventName, null);
|
||
uni.$off(this.successEventName, null);
|
||
uni.$off(this.failEventName, null);
|
||
},
|
||
onResize() {
|
||
this.getSystemInfo();
|
||
},
|
||
methods: {
|
||
checkUniCloud() {
|
||
if (typeof uniCloud == "undefined") {
|
||
this.errMsg = "uni.chooseLocation 依赖 uniCloud 的 uni-map-common 插件,请先关联服务空间,并安装 uni-map-common 插件,插件地址:https://ext.dcloud.net.cn/plugin?id=13872";
|
||
this.useUniCloud = false;
|
||
console.error(this.errMsg);
|
||
}
|
||
},
|
||
initPageOptions(options) {
|
||
this.readyEventName = options["readyEventName"];
|
||
this.optionsEventName = options["optionsEventName"];
|
||
this.successEventName = options["successEventName"];
|
||
this.failEventName = options["failEventName"];
|
||
uni.$on(this.optionsEventName, (data) => {
|
||
if (data["latitude"] != null) {
|
||
this.chooseLocationOptions.latitude = data["latitude"];
|
||
}
|
||
if (data["longitude"] != null) {
|
||
this.chooseLocationOptions.longitude = data["longitude"];
|
||
}
|
||
if (data["keyword"] != null) {
|
||
var keyword = data["keyword"];
|
||
this.chooseLocationOptions.keyword = keyword;
|
||
this.searchValue = keyword;
|
||
} else {
|
||
this.chooseLocationOptions.keyword = "";
|
||
}
|
||
if (data["payload"] != null) {
|
||
this.chooseLocationOptions.payload = data["payload"];
|
||
}
|
||
});
|
||
uni.$emit(this.readyEventName, {});
|
||
},
|
||
getLocation() {
|
||
if (this.chooseLocationOptions.latitude != null && this.chooseLocationOptions.longitude != null) {
|
||
this.latitude = this.chooseLocationOptions.latitude;
|
||
this.longitude = this.chooseLocationOptions.longitude;
|
||
this.locationComplete = true;
|
||
this.getPoi("getLocation");
|
||
} else {
|
||
this.locationLoading = true;
|
||
uni.getLocation({
|
||
type: "gcj02",
|
||
success: (res) => {
|
||
this.latitude = res.latitude;
|
||
this.longitude = res.longitude;
|
||
this.locationComplete = true;
|
||
this.locationLoading = false;
|
||
this.getPoi("getLocation");
|
||
},
|
||
fail: (err) => {
|
||
console.error("getLocationErr: ", err);
|
||
this.latitude = defaultPoi.latitude;
|
||
this.longitude = defaultPoi.longitude;
|
||
this.locationComplete = true;
|
||
this.locationLoading = false;
|
||
this.getPoi("getLocation");
|
||
}
|
||
});
|
||
}
|
||
},
|
||
distanceHandle(distance) {
|
||
if (distance < 1e3) {
|
||
return distance + "m";
|
||
} else {
|
||
return parseFloat((distance / 1e3).toFixed(2)) + "km";
|
||
}
|
||
},
|
||
poiHandle(pois) {
|
||
var list = pois.map((item, index2) => {
|
||
var location = item["location"];
|
||
var distance = item["distance"];
|
||
var latitude = location["lat"];
|
||
var longitude = location["lng"];
|
||
if (distance == 0) {
|
||
latitude = this.latitude;
|
||
longitude = this.longitude;
|
||
}
|
||
return {
|
||
title: item["title"],
|
||
address: item["address"],
|
||
distance,
|
||
distanceStr: this.distanceHandle(distance),
|
||
location: {
|
||
latitude,
|
||
longitude
|
||
}
|
||
};
|
||
});
|
||
var pageIndex = this.pageIndex;
|
||
if (pageIndex == 1) {
|
||
this.pois = list;
|
||
this.updateScrollTop(0);
|
||
} else {
|
||
this.pois = this.pois.concat(list);
|
||
}
|
||
},
|
||
callUniMapCo(action, data) {
|
||
var promise = new Promise((resolve, reject) => {
|
||
if (this.useUniCloud == false) {
|
||
reject(this.errMsg);
|
||
return;
|
||
}
|
||
this.errMsg = "";
|
||
var uniMapCo = uniCloud.importObject("uni-map-co", {
|
||
customUI: true
|
||
});
|
||
var chooseLocationData = {
|
||
action,
|
||
data
|
||
};
|
||
if (this.chooseLocationOptions.payload != null) {
|
||
chooseLocationData["payload"] = this.chooseLocationOptions.payload;
|
||
}
|
||
uniMapCo.chooseLocation(chooseLocationData).then((res) => {
|
||
resolve(res);
|
||
}).catch((err) => {
|
||
if (err instanceof UniCloudError) {
|
||
var cloudError = err;
|
||
var errCode = cloudError.errCode;
|
||
var errMsg = cloudError.errMsg;
|
||
var errSubject = cloudError.errSubject;
|
||
if (errMsg.indexOf("在云端不存在") > -1 || errMsg.indexOf("未匹配") > -1) {
|
||
this.errMsg = "uni.chooseLocation 依赖 uniCloud 的 uni-map-common 插件,请安装 uni-map-common 插件,插件地址:https://ext.dcloud.net.cn/plugin?id=13872";
|
||
console.error(this.errMsg);
|
||
} else {
|
||
this.errMsg = errMsg;
|
||
console.error("获取POI信息失败," + JSON.stringify({
|
||
errCode,
|
||
errMsg,
|
||
errSubject
|
||
}));
|
||
}
|
||
}
|
||
reject(err);
|
||
});
|
||
});
|
||
promise.then((res) => {
|
||
this.callUniMapCoErr = false;
|
||
}).catch((err) => {
|
||
this.callUniMapCoErr = true;
|
||
});
|
||
return promise;
|
||
},
|
||
getPoi(type) {
|
||
var searchValue = this.searchValue;
|
||
var latitude = this.latitude;
|
||
var longitude = this.longitude;
|
||
var pageIndex = this.pageIndex;
|
||
var pageSize = this.pageSize;
|
||
if (["searchValueChange"].indexOf(type) == -1) {
|
||
this.searchLoading = true;
|
||
}
|
||
if (searchValue != "" && searchValue.length > 0) {
|
||
this.callUniMapCo("search", {
|
||
keyword: searchValue,
|
||
location: {
|
||
lat: latitude,
|
||
lng: longitude
|
||
},
|
||
radius: 5e3,
|
||
auto_extend: 1,
|
||
orderby: "weight",
|
||
page_index: pageIndex,
|
||
page_size: pageSize
|
||
}).then((res) => {
|
||
var _res$getJSON;
|
||
var pois = (_res$getJSON = res.getJSON("result")) === null || _res$getJSON === void 0 || (_res$getJSON = _res$getJSON.getJSON("result")) === null || _res$getJSON === void 0 ? void 0 : _res$getJSON.getArray("data");
|
||
this.poiHandle(pois);
|
||
this.searchLoading = false;
|
||
}).catch((err) => {
|
||
this.searchLoading = false;
|
||
});
|
||
} else {
|
||
this.callUniMapCo("location2address", {
|
||
location: "".concat(latitude, ",").concat(longitude),
|
||
get_poi: 1,
|
||
poi_options: {
|
||
radius: 3e3,
|
||
policy: pageIndex == 1 ? 3 : 4,
|
||
roadlevel: 1,
|
||
homeorcorp: 1,
|
||
page_index: pageIndex,
|
||
page_size: pageSize
|
||
}
|
||
}).then((res) => {
|
||
var _res$getJSON2;
|
||
var pois = (_res$getJSON2 = res.getJSON("result")) === null || _res$getJSON2 === void 0 || (_res$getJSON2 = _res$getJSON2.getJSON("result")) === null || _res$getJSON2 === void 0 ? void 0 : _res$getJSON2.getArray("pois");
|
||
this.poiHandle(pois);
|
||
if (this.pois.length > 0 && pageIndex == 1) {
|
||
var poi = this.pois[0];
|
||
if (poi.distance > 0) {
|
||
var poi1 = poi.location;
|
||
var poi2 = {
|
||
latitude: this.latitude,
|
||
longitude: this.longitude
|
||
};
|
||
var distance = poi.distance;
|
||
var direction = this.calcDirection(poi1, poi2);
|
||
if (poi.address.indexOf("米") == -1) {
|
||
var suffix = "向".concat(direction).concat(distance, "米");
|
||
var newPoi = {
|
||
title: "".concat(poi.title).concat(suffix),
|
||
address: "".concat(poi.address).concat(suffix),
|
||
distance: 0,
|
||
distanceStr: this.distanceHandle(distance),
|
||
location: poi2
|
||
};
|
||
this.pois.unshift(newPoi);
|
||
}
|
||
}
|
||
if (this.selected == -1) {
|
||
this.selected = 0;
|
||
this.lastPoi.latitude = this.latitude;
|
||
this.lastPoi.longitude = this.longitude;
|
||
this.lastPoi.selected = this.selected;
|
||
this.lastPoi.pois = this.pois;
|
||
}
|
||
}
|
||
this.searchLoading = false;
|
||
}).catch((err) => {
|
||
this.searchLoading = false;
|
||
});
|
||
}
|
||
},
|
||
calcDirection(poi1, poi2) {
|
||
var toRadians = (angle2) => angle2 * (Math.PI / 180);
|
||
var toDegrees = (angle2) => angle2 * (180 / Math.PI);
|
||
var lat1 = toRadians(poi1.latitude);
|
||
var lon1 = toRadians(poi1.longitude);
|
||
var lat2 = toRadians(poi2.latitude);
|
||
var lon2 = toRadians(poi2.longitude);
|
||
var dLon = lon2 - lon1;
|
||
var y = Math.sin(dLon) * Math.cos(lat2);
|
||
var x = Math.cos(lat1) * Math.sin(lat2) - Math.sin(lat1) * Math.cos(lat2) * Math.cos(dLon);
|
||
var angleRadians = Math.atan2(y, x);
|
||
var angle = toDegrees(angleRadians);
|
||
angle = (angle + 360) % 360;
|
||
if (angle < 22.5 || angle >= 337.5) {
|
||
return "北";
|
||
} else if (angle >= 22.5 && angle < 67.5) {
|
||
return "东北";
|
||
} else if (angle >= 67.5 && angle < 112.5) {
|
||
return "东";
|
||
} else if (angle >= 112.5 && angle < 157.5) {
|
||
return "东南";
|
||
} else if (angle >= 157.5 && angle < 202.5) {
|
||
return "南";
|
||
} else if (angle >= 202.5 && angle < 247.5) {
|
||
return "西南";
|
||
} else if (angle >= 247.5 && angle < 292.5) {
|
||
return "西";
|
||
} else {
|
||
return "西北";
|
||
}
|
||
},
|
||
getSystemInfo() {
|
||
var info = uni.getWindowInfo();
|
||
this.safeArea.top = info.safeAreaInsets.top;
|
||
this.safeArea.bottom = info.safeAreaInsets.bottom;
|
||
this.safeArea.left = info.safeAreaInsets.left;
|
||
this.safeArea.right = info.safeAreaInsets.right;
|
||
var screenHeight = info.screenHeight;
|
||
this.mapHeight = (screenHeight - this.safeArea.top - this.safeArea.bottom) * 0.6;
|
||
var systemInfo = uni.getSystemInfoSync();
|
||
var appLanguage = systemInfo.appLanguage;
|
||
this.language = appLanguage;
|
||
var osTheme = systemInfo.osTheme;
|
||
var appTheme = systemInfo.appTheme;
|
||
if (appTheme != null && appTheme != "auto") {
|
||
this.theme = appTheme;
|
||
} else if (osTheme != null) {
|
||
this.theme = osTheme;
|
||
}
|
||
this.isLandscape = systemInfo.deviceOrientation == "landscape";
|
||
},
|
||
getMapContext() {
|
||
return uni.createMapContext(this.mapId, this);
|
||
},
|
||
regionchange(e) {
|
||
var causedBy = e.causedBy;
|
||
if (e.type !== "end" || causedBy != "drag" || this.locationComplete == false) {
|
||
return;
|
||
}
|
||
var mapContext = this.getMapContext();
|
||
if (mapContext != null) {
|
||
mapContext.getCenterLocation({
|
||
success: (res) => {
|
||
var latitudeDiff = Math.abs(res.latitude - this.latitude);
|
||
var longitudeDiff = Math.abs(res.longitude - this.longitude);
|
||
if (latitudeDiff > 1e-6 || longitudeDiff > 1e-6) {
|
||
this.latitude = parseFloat(res.latitude.toFixed(6));
|
||
this.longitude = parseFloat(res.longitude.toFixed(6));
|
||
this.searchValue = "";
|
||
this.selected = -1;
|
||
this.pageIndex = 1;
|
||
this.getPoi("regionchange");
|
||
var element = this.$refs[this.mapTargetId];
|
||
if (element != null) {
|
||
var duration = 250;
|
||
element.style.setProperty("transition-duration", "".concat(duration, "ms"));
|
||
element.style.setProperty("transform", "translateY(0px)");
|
||
element.style.setProperty("transform", "translateY(-15px)");
|
||
setTimeout(() => {
|
||
element.style.setProperty("transform", "translateY(0px)");
|
||
}, duration);
|
||
}
|
||
}
|
||
}
|
||
});
|
||
}
|
||
},
|
||
clearSearchValueChangeTimer() {
|
||
if (this.searchValueChangeTimer != -1) {
|
||
clearTimeout(this.searchValueChangeTimer);
|
||
this.searchValueChangeTimer = -1;
|
||
}
|
||
},
|
||
searchValueChange(e) {
|
||
this.clearSearchValueChangeTimer();
|
||
this.searchValueChangeTimer = setTimeout(() => {
|
||
this.poiSearch("searchValueChange");
|
||
}, 200);
|
||
},
|
||
poiSearch(type) {
|
||
this.clearSearchValueChangeTimer();
|
||
this.pageIndex = 1;
|
||
this.selected = -1;
|
||
this.getPoi(type);
|
||
},
|
||
cancelSearch() {
|
||
this.isFocus = false;
|
||
this.searchValue = "";
|
||
if (this.lastPoi.latitude != null) {
|
||
this.latitude = this.lastPoi.latitude;
|
||
}
|
||
if (this.lastPoi.longitude != null) {
|
||
this.longitude = this.lastPoi.longitude;
|
||
}
|
||
if (this.lastPoi.pois.length - 1 > this.lastPoi.selected) {
|
||
this.pois = this.lastPoi.pois;
|
||
this.selected = this.lastPoi.selected;
|
||
this.updateScrollTop(this.lastPoi.scrollTop);
|
||
} else {
|
||
this.poiSearch("cancelSearch");
|
||
}
|
||
},
|
||
updateScrollTop(scrollTop) {
|
||
setTimeout(() => {
|
||
this.scrollTop = scrollTop;
|
||
}, 10);
|
||
},
|
||
selectPoi(item, index2) {
|
||
this.isFocus = false;
|
||
this.selected = index2;
|
||
this.latitude = item.location.latitude;
|
||
this.longitude = item.location.longitude;
|
||
if (this.searchValue == this.chooseLocationOptions.keyword) {
|
||
this.lastPoi.latitude = this.latitude;
|
||
this.lastPoi.longitude = this.longitude;
|
||
this.lastPoi.selected = this.selected;
|
||
this.lastPoi.pois = this.pois;
|
||
var scrollElement = this.$refs[this.scrollId];
|
||
if (scrollElement != null) {
|
||
var scrollTop = scrollElement.scrollTop;
|
||
this.lastPoi.scrollTop = scrollTop;
|
||
this.scrollTop = scrollTop;
|
||
}
|
||
}
|
||
},
|
||
scrolltolower() {
|
||
this.pageIndex++;
|
||
this.getPoi("scrolltolower");
|
||
},
|
||
mapReset() {
|
||
this.isFocus = false;
|
||
this.pageIndex = 1;
|
||
this.getLocation();
|
||
},
|
||
closeDialogPage() {
|
||
uni.closeDialogPage({
|
||
dialogPage: this.$page
|
||
});
|
||
},
|
||
back() {
|
||
uni.$emit(this.failEventName, 1);
|
||
this.closeDialogPage();
|
||
},
|
||
confirm() {
|
||
if (this.selected < 0) {
|
||
if (this.callUniMapCoErr) {
|
||
uni.$emit(this.successEventName, {
|
||
name: "",
|
||
address: "",
|
||
latitude: parseFloat(this.latitude.toFixed(6)),
|
||
longitude: parseFloat(this.longitude.toFixed(6))
|
||
});
|
||
this.closeDialogPage();
|
||
}
|
||
return;
|
||
}
|
||
var item = this.pois[this.selected];
|
||
var res = {
|
||
name: item.title,
|
||
address: item.address,
|
||
latitude: item.location.latitude,
|
||
longitude: item.location.longitude
|
||
};
|
||
uni.$emit(this.successEventName, res);
|
||
this.closeDialogPage();
|
||
}
|
||
},
|
||
computed: {
|
||
languageCom() {
|
||
var textInfo = languageData[this.language] != null ? languageData[this.language] : languageData["zh-Hans"];
|
||
return textInfo;
|
||
},
|
||
uniChooseLocationClassCom() {
|
||
var list = [];
|
||
if (this.theme == "dark") {
|
||
list.push("uni-choose-location-dark");
|
||
} else {
|
||
list.push("uni-choose-location-light");
|
||
}
|
||
return list.join(" ");
|
||
},
|
||
landscapeClassCom() {
|
||
return this.isLandscape ? "uni-choose-location-landscape" : "uni-choose-location-vertical";
|
||
},
|
||
mapBoxStyleCom() {
|
||
var list = [];
|
||
if (!this.useUniCloud) {
|
||
list.push("flex: 1;");
|
||
}
|
||
if (!this.isLandscape) {
|
||
var top = this.isFocus ? (300 - this.mapHeight) / 2 : 0;
|
||
list.push("transform:translateY(".concat(top, "px);"));
|
||
list.push("height:".concat(this.mapHeight, "px;"));
|
||
}
|
||
return list.join("");
|
||
},
|
||
poiBoxStyleCom() {
|
||
var list = [];
|
||
if (!this.isLandscape) {
|
||
var top = this.isFocus ? 300 : this.mapHeight;
|
||
list.push("top:".concat(top, "px;"));
|
||
}
|
||
return list.join("");
|
||
},
|
||
resetStyleCom() {
|
||
var list = [];
|
||
if (!this.isLandscape) {
|
||
var bottom = this.isFocus ? (this.mapHeight - 300) / 2 + 300 - this.mapHeight : 0;
|
||
list.push("transform:translateY(".concat(bottom, "px);"));
|
||
}
|
||
return list.join("");
|
||
}
|
||
}
|
||
};
|
||
const _style_0 = {
|
||
"uni-choose-location-icons": {
|
||
"": {
|
||
"fontFamily": "UniChooseLocationFontFamily",
|
||
"fontSize": 16,
|
||
"fontStyle": "normal"
|
||
}
|
||
},
|
||
"uni-choose-location": {
|
||
"": {
|
||
"position": "relative",
|
||
"left": 0,
|
||
"top": 0,
|
||
"width": "100%",
|
||
"height": "100%",
|
||
"backgroundImage": "none",
|
||
"backgroundColor": "#f8f8f8",
|
||
"zIndex": 999
|
||
}
|
||
},
|
||
"uni-choose-location-map-box": {
|
||
"": {
|
||
"position": "relative",
|
||
"width": "100%",
|
||
"height": 350
|
||
},
|
||
".uni-choose-location-vertical": {
|
||
"transitionProperty": "transform",
|
||
"transitionDuration": "0.25s",
|
||
"transitionTimingFunction": "ease-out"
|
||
},
|
||
".uni-choose-location .uni-choose-location-landscape": {
|
||
"height": "100%"
|
||
}
|
||
},
|
||
"uni-choose-location-map": {
|
||
"": {
|
||
"width": "100%",
|
||
"height": "100%"
|
||
}
|
||
},
|
||
"uni-choose-location-map-target": {
|
||
"": {
|
||
"position": "absolute",
|
||
"left": "50%",
|
||
"bottom": "50%",
|
||
"width": 50,
|
||
"height": 50,
|
||
"marginLeft": -25,
|
||
"transitionProperty": "transform",
|
||
"transitionDuration": "0.25s",
|
||
"transitionTimingFunction": "ease-out"
|
||
}
|
||
},
|
||
"uni-choose-location-map-target-icon": {
|
||
"": {
|
||
"fontSize": 50,
|
||
"color": "#f0493e"
|
||
}
|
||
},
|
||
"uni-choose-location-map-reset": {
|
||
"": {
|
||
"position": "absolute",
|
||
"left": 20,
|
||
"bottom": 40,
|
||
"width": 40,
|
||
"height": 40,
|
||
"boxSizing": "border-box",
|
||
"backgroundColor": "#ffffff",
|
||
"borderRadius": 20,
|
||
"pointerEvents": "auto",
|
||
"boxShadow": "0px 0px 20px 2px rgba(0, 0, 0, .3)",
|
||
"zIndex": 9,
|
||
"display": "flex",
|
||
"justifyContent": "center",
|
||
"alignItems": "center"
|
||
},
|
||
".uni-choose-location-vertical": {
|
||
"transitionProperty": "transform",
|
||
"transitionDuration": "0.25s",
|
||
"transitionTimingFunction": "ease-out"
|
||
},
|
||
".uni-choose-location .uni-choose-location-landscape": {
|
||
"left": 40,
|
||
"bottom": 40
|
||
},
|
||
".uni-choose-location-dark ": {
|
||
"backgroundColor": "#111111",
|
||
"boxShadow": "0px 0px 5px 1px rgba(0, 0, 0, .3)"
|
||
}
|
||
},
|
||
"uni-choose-location-map-reset-icon": {
|
||
"": {
|
||
"fontSize": 26,
|
||
"textAlign": "center",
|
||
"lineHeight": "40px"
|
||
},
|
||
".uni-choose-location-dark ": {
|
||
"color": "#d1d1d1"
|
||
}
|
||
},
|
||
"uni-choose-location-nav": {
|
||
"": {
|
||
"position": "absolute",
|
||
"top": 0,
|
||
"left": 0,
|
||
"width": "100%",
|
||
"height": 60,
|
||
"backgroundColor": "rgba(0,0,0,0)",
|
||
"backgroundImage": "linear-gradient(to bottom, rgba(0, 0, 0, .6), rgba(0, 0, 0, 0))"
|
||
}
|
||
},
|
||
"uni-choose-location-nav-btn": {
|
||
"": {
|
||
"position": "absolute",
|
||
"top": 5,
|
||
"left": 5,
|
||
"width": 64,
|
||
"height": 44,
|
||
"paddingTop": 5,
|
||
"paddingRight": 5,
|
||
"paddingBottom": 5,
|
||
"paddingLeft": 5
|
||
},
|
||
".uni-choose-location-nav-confirm-btn": {
|
||
"left": "auto",
|
||
"right": 5
|
||
},
|
||
".uni-choose-location-nav-confirm-btn.active:active": {
|
||
"opacity": 0.7
|
||
},
|
||
".uni-choose-location-nav-confirm-btn.disable": {
|
||
"opacity": 0.4
|
||
},
|
||
".uni-choose-location .uni-choose-location-landscape": {
|
||
"top": 10,
|
||
"left": 20
|
||
},
|
||
".uni-choose-location .uni-choose-location-nav-confirm-btn.uni-choose-location-landscape": {
|
||
"left": "auto",
|
||
"right": 20
|
||
}
|
||
},
|
||
"uni-choose-location-nav-confirm-text": {
|
||
".uni-choose-location-nav-btn.uni-choose-location-nav-confirm-btn ": {
|
||
"backgroundColor": "#007aff",
|
||
"borderRadius": 5
|
||
}
|
||
},
|
||
"uni-choose-location-nav-back-text": {
|
||
".uni-choose-location-nav-btn.uni-choose-location-nav-back-btn ": {
|
||
"color": "#ffffff"
|
||
}
|
||
},
|
||
"uni-choose-location-nav-text": {
|
||
"": {
|
||
"paddingTop": 8,
|
||
"paddingRight": 0,
|
||
"paddingBottom": 8,
|
||
"paddingLeft": 0,
|
||
"fontSize": 14,
|
||
"textAlign": "center",
|
||
"color": "#ffffff"
|
||
}
|
||
},
|
||
"uni-choose-location-poi": {
|
||
"": {
|
||
"position": "absolute",
|
||
"top": 350,
|
||
"width": "100%",
|
||
"bottom": 0,
|
||
"backgroundColor": "#ffffff",
|
||
"zIndex": 10
|
||
},
|
||
".uni-choose-location-vertical": {
|
||
"transitionProperty": "top",
|
||
"transitionDuration": "0.25s",
|
||
"transitionTimingFunction": "ease-out"
|
||
},
|
||
".uni-choose-location .uni-choose-location-landscape": {
|
||
"position": "absolute",
|
||
"top": 80,
|
||
"right": 25,
|
||
"width": 300,
|
||
"bottom": 20,
|
||
"maxHeight": 600,
|
||
"boxShadow": "0px 0px 20px 2px rgba(0, 0, 0, .3)",
|
||
"borderRadius": 5
|
||
},
|
||
".uni-choose-location-dark ": {
|
||
"backgroundColor": "#181818"
|
||
}
|
||
},
|
||
"uni-choose-location-poi-search": {
|
||
"": {
|
||
"display": "flex",
|
||
"flexDirection": "row",
|
||
"alignItems": "center",
|
||
"justifyContent": "center",
|
||
"height": 50,
|
||
"paddingTop": 8,
|
||
"paddingRight": 8,
|
||
"paddingBottom": 8,
|
||
"paddingLeft": 8,
|
||
"backgroundColor": "#ffffff"
|
||
},
|
||
".uni-choose-location-dark ": {
|
||
"backgroundColor": "#181818"
|
||
}
|
||
},
|
||
"uni-choose-location-poi-search-box": {
|
||
"": {
|
||
"display": "flex",
|
||
"flexDirection": "row",
|
||
"alignItems": "center",
|
||
"justifyContent": "center",
|
||
"height": 32,
|
||
"flex": 1,
|
||
"borderRadius": 5,
|
||
"paddingTop": 0,
|
||
"paddingRight": 15,
|
||
"paddingBottom": 0,
|
||
"paddingLeft": 15,
|
||
"backgroundColor": "#ededed"
|
||
},
|
||
".uni-choose-location-dark ": {
|
||
"backgroundColor": "#111111"
|
||
}
|
||
},
|
||
"uni-choose-location-poi-search-input": {
|
||
"": {
|
||
"flex": 1,
|
||
"height": "100%",
|
||
"borderRadius": 5,
|
||
"paddingTop": 0,
|
||
"paddingRight": 5,
|
||
"paddingBottom": 0,
|
||
"paddingLeft": 5,
|
||
"backgroundImage": "none",
|
||
"backgroundColor": "#ededed"
|
||
},
|
||
".uni-choose-location-dark ": {
|
||
"backgroundImage": "none",
|
||
"backgroundColor": "#111111",
|
||
"color": "#d1d1d1"
|
||
}
|
||
},
|
||
"uni-choose-location-poi-search-cancel": {
|
||
"": {
|
||
"marginLeft": 5,
|
||
"color": "#007aff",
|
||
"fontSize": 15,
|
||
"textAlign": "center"
|
||
}
|
||
},
|
||
"uni-choose-location-poi-list": {
|
||
"": {
|
||
"flex": 1
|
||
}
|
||
},
|
||
"uni-choose-location-poi-search-loading": {
|
||
"": {
|
||
"display": "flex",
|
||
"alignItems": "center",
|
||
"paddingTop": 10,
|
||
"paddingRight": 0,
|
||
"paddingBottom": 10,
|
||
"paddingLeft": 0
|
||
}
|
||
},
|
||
"uni-choose-location-poi-search-loading-text": {
|
||
"": {
|
||
"color": "#191919"
|
||
},
|
||
".uni-choose-location-dark ": {
|
||
"color": "#d1d1d1"
|
||
}
|
||
},
|
||
"uni-choose-location-poi-search-error": {
|
||
"": {
|
||
"display": "flex",
|
||
"alignItems": "center",
|
||
"paddingTop": 10,
|
||
"paddingRight": 10,
|
||
"paddingBottom": 10,
|
||
"paddingLeft": 10
|
||
}
|
||
},
|
||
"uni-choose-location-poi-search-error-text": {
|
||
"": {
|
||
"color": "#191919",
|
||
"fontSize": 14
|
||
}
|
||
},
|
||
"uni-choose-location-poi-item": {
|
||
"": {
|
||
"position": "relative",
|
||
"paddingTop": 15,
|
||
"paddingRight": 40,
|
||
"paddingBottom": 15,
|
||
"paddingLeft": 10
|
||
},
|
||
".uni-choose-location .uni-choose-location-landscape": {
|
||
"paddingTop": 10,
|
||
"paddingRight": 10,
|
||
"paddingBottom": 10,
|
||
"paddingLeft": 10
|
||
}
|
||
},
|
||
"uni-choose-location-poi-item-title-text": {
|
||
"": {
|
||
"fontSize": 14,
|
||
"overflow": "hidden",
|
||
"whiteSpace": "nowrap",
|
||
"textOverflow": "ellipsis",
|
||
"color": "#191919"
|
||
},
|
||
".uni-choose-location-dark ": {
|
||
"color": "#d1d1d1"
|
||
}
|
||
},
|
||
"uni-choose-location-poi-item-detail-text": {
|
||
"": {
|
||
"fontSize": 12,
|
||
"marginTop": 5,
|
||
"color": "#b2b2b2",
|
||
"overflow": "hidden",
|
||
"whiteSpace": "nowrap",
|
||
"textOverflow": "ellipsis"
|
||
},
|
||
".uni-choose-location-dark ": {
|
||
"color": "#595959"
|
||
}
|
||
},
|
||
"uni-choose-location-poi-item-selected-icon": {
|
||
"": {
|
||
"position": "absolute",
|
||
"top": "50%",
|
||
"right": 10,
|
||
"width": 26,
|
||
"height": 26,
|
||
"marginTop": -13,
|
||
"color": "#007aff",
|
||
"fontSize": 24
|
||
}
|
||
},
|
||
"uni-choose-location-poi-item-after": {
|
||
"": {
|
||
"position": "absolute",
|
||
"height": 1,
|
||
"left": 10,
|
||
"bottom": 0,
|
||
"right": 10,
|
||
"width": "auto",
|
||
"borderBottomWidth": 1,
|
||
"borderBottomStyle": "solid",
|
||
"borderBottomColor": "#f8f8f8"
|
||
},
|
||
".uni-choose-location-dark ": {
|
||
"borderBottomWidth": 1,
|
||
"borderBottomStyle": "solid",
|
||
"borderBottomColor": "#1e1e1e"
|
||
}
|
||
},
|
||
"uni-choose-location-search-icon": {
|
||
"": {
|
||
"color": "#808080",
|
||
"paddingLeft": 5
|
||
},
|
||
".uni-choose-location-dark ": {
|
||
"color": "#d1d1d1"
|
||
}
|
||
},
|
||
"uni-choose-location-poi-search-loading-image": {
|
||
"": {
|
||
"width": 30,
|
||
"height": 30
|
||
}
|
||
},
|
||
"@FONT-FACE": [{
|
||
"fontFamily": "UniChooseLocationFontFamily",
|
||
"src": "url('data:font/ttf;charset=utf-8;base64,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') format('truetype')"
|
||
}],
|
||
"@TRANSITION": {
|
||
"uni-choose-location-map-box": {
|
||
"property": "transform",
|
||
"duration": "0.25s",
|
||
"timingFunction": "ease-out"
|
||
},
|
||
"uni-choose-location-map-target": {
|
||
"property": "transform",
|
||
"duration": "0.25s",
|
||
"timingFunction": "ease-out"
|
||
},
|
||
"uni-choose-location-map-reset": {
|
||
"property": "transform",
|
||
"duration": "0.25s",
|
||
"timingFunction": "ease-out"
|
||
},
|
||
"uni-choose-location-poi": {
|
||
"property": "top",
|
||
"duration": "0.25s",
|
||
"timingFunction": "ease-out"
|
||
}
|
||
}
|
||
};
|
||
const _export_sfc = (sfc, props) => {
|
||
const target = sfc.__vccOpts || sfc;
|
||
for (const [key, val] of props) {
|
||
target[key] = val;
|
||
}
|
||
return target;
|
||
};
|
||
var _hoisted_1 = ["id"];
|
||
var _hoisted_2 = {
|
||
class: "uni-choose-location-icons uni-choose-location-map-target-icon"
|
||
};
|
||
var _hoisted_3 = {
|
||
class: "uni-choose-location-icons uni-choose-location-map-reset-icon"
|
||
};
|
||
var _hoisted_4 = {
|
||
class: "uni-choose-location-nav-text uni-choose-location-nav-confirm-text"
|
||
};
|
||
var _hoisted_5 = {
|
||
class: "uni-choose-location-poi-search"
|
||
};
|
||
var _hoisted_6 = {
|
||
class: "uni-choose-location-poi-search-box"
|
||
};
|
||
var _hoisted_7 = {
|
||
class: "uni-choose-location-icons uni-choose-location-search-icon"
|
||
};
|
||
var _hoisted_8 = ["placeholder"];
|
||
var _hoisted_9 = ["id", "scroll-top"];
|
||
var _hoisted_10 = {
|
||
key: 0,
|
||
class: "uni-choose-location-poi-search-error"
|
||
};
|
||
var _hoisted_11 = {
|
||
class: "uni-choose-location-poi-search-error-text"
|
||
};
|
||
var _hoisted_12 = {
|
||
key: 1,
|
||
class: "uni-choose-location-poi-search-loading"
|
||
};
|
||
var _hoisted_13 = {
|
||
class: "uni-choose-location-poi-search-loading-text"
|
||
};
|
||
var _hoisted_14 = {
|
||
key: 2,
|
||
class: "uni-choose-location-poi-search-loading"
|
||
};
|
||
var _hoisted_15 = ["src"];
|
||
var _hoisted_16 = ["onClick"];
|
||
var _hoisted_17 = {
|
||
class: "uni-choose-location-poi-item-title-text"
|
||
};
|
||
var _hoisted_18 = {
|
||
class: "uni-choose-location-poi-item-detail-text"
|
||
};
|
||
var _hoisted_19 = {
|
||
key: 0,
|
||
class: "uni-choose-location-icons uni-choose-location-poi-item-selected-icon"
|
||
};
|
||
var _hoisted_20 = /* @__PURE__ */ createElementVNode("view", {
|
||
class: "uni-choose-location-poi-item-after"
|
||
}, null, -1);
|
||
var _hoisted_21 = {
|
||
key: 4,
|
||
class: "uni-choose-location-poi-search-loading"
|
||
};
|
||
var _hoisted_22 = ["src"];
|
||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||
var _component_map = resolveComponent("map");
|
||
return openBlock(), createElementBlock("view", {
|
||
class: normalizeClass(["uni-choose-location", $options.uniChooseLocationClassCom])
|
||
}, [createElementVNode("view", {
|
||
class: normalizeClass(["uni-choose-location-map-box", [$options.landscapeClassCom]]),
|
||
style: normalizeStyle($options.mapBoxStyleCom)
|
||
}, [createVNode(_component_map, {
|
||
class: "uni-choose-location-map",
|
||
id: $data.mapId,
|
||
ref: $data.mapId,
|
||
latitude: $data.latitude,
|
||
longitude: $data.longitude,
|
||
"layer-style": $data.theme == "dark" ? "2" : "1",
|
||
"show-compass": false,
|
||
"enable-zoom": true,
|
||
"enable-scroll": true,
|
||
"enable-rotate": false,
|
||
"enable-poi": true,
|
||
"show-location": true,
|
||
onRegionchange: $options.regionchange
|
||
}, null, 8, ["id", "latitude", "longitude", "layer-style", "onRegionchange"]), createElementVNode("view", {
|
||
class: "uni-choose-location-map-target",
|
||
ref: $data.mapTargetId,
|
||
id: $data.mapTargetId
|
||
}, [createElementVNode("text", _hoisted_2, toDisplayString($data.icon.target), 1)], 8, _hoisted_1), createElementVNode("view", {
|
||
class: normalizeClass(["uni-choose-location-map-reset", [$options.landscapeClassCom]]),
|
||
onClick: _cache[0] || (_cache[0] = function() {
|
||
return $options.mapReset && $options.mapReset(...arguments);
|
||
}),
|
||
style: normalizeStyle($options.resetStyleCom)
|
||
}, [createElementVNode("text", _hoisted_3, toDisplayString($data.icon.position), 1)], 6)], 6), createElementVNode("view", {
|
||
class: "uni-choose-location-nav",
|
||
style: normalizeStyle("height:" + (60 + $data.safeArea.top) + "px;")
|
||
}, [createElementVNode("view", {
|
||
class: normalizeClass(["uni-choose-location-nav-btn uni-choose-location-nav-back-btn", [$options.landscapeClassCom]]),
|
||
style: normalizeStyle($data.safeArea.top > 0 ? "top: " + $data.safeArea.top + "px;" : "")
|
||
}, [createElementVNode("text", {
|
||
class: "uni-choose-location-nav-text uni-choose-location-nav-back-text",
|
||
onClick: _cache[1] || (_cache[1] = function() {
|
||
return $options.back && $options.back(...arguments);
|
||
})
|
||
}, toDisplayString($options.languageCom["back"]), 1)], 6), createElementVNode("view", {
|
||
class: normalizeClass(["uni-choose-location-nav-btn uni-choose-location-nav-confirm-btn", [$options.landscapeClassCom, $data.selected < 0 && !$data.callUniMapCoErr ? "disable" : "active"]]),
|
||
style: normalizeStyle($data.safeArea.top > 0 ? "top: " + $data.safeArea.top + "px;" : ""),
|
||
onClick: _cache[2] || (_cache[2] = function() {
|
||
return $options.confirm && $options.confirm(...arguments);
|
||
})
|
||
}, [createElementVNode("text", _hoisted_4, toDisplayString($options.languageCom["ok"]), 1)], 6)], 4), $data.useUniCloud ? (openBlock(), createElementBlock("view", {
|
||
key: 0,
|
||
class: normalizeClass(["uni-choose-location-poi", [$options.landscapeClassCom]]),
|
||
style: normalizeStyle($options.poiBoxStyleCom)
|
||
}, [createElementVNode("view", _hoisted_5, [createElementVNode("view", _hoisted_6, [createElementVNode("text", _hoisted_7, toDisplayString($data.icon.search), 1), withDirectives(createElementVNode("input", {
|
||
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => $data.searchValue = $event),
|
||
type: "text",
|
||
placeholder: $options.languageCom["search"],
|
||
class: "uni-choose-location-poi-search-input uni-choose-location-icons",
|
||
onFocus: _cache[4] || (_cache[4] = ($event) => $data.isFocus = true),
|
||
onConfirm: _cache[5] || (_cache[5] = ($event) => $options.poiSearch("poiSearch")),
|
||
onInput: _cache[6] || (_cache[6] = function() {
|
||
return $options.searchValueChange && $options.searchValueChange(...arguments);
|
||
})
|
||
}, null, 40, _hoisted_8), [[vModelText, $data.searchValue]])]), $data.isFocus || $data.searchValue != "" ? (openBlock(), createElementBlock("text", {
|
||
key: 0,
|
||
class: "uni-choose-location-poi-search-cancel",
|
||
onClick: _cache[7] || (_cache[7] = function() {
|
||
return $options.cancelSearch && $options.cancelSearch(...arguments);
|
||
})
|
||
}, toDisplayString($options.languageCom["cancel"]), 1)) : createCommentVNode("", true)]), createElementVNode("scroll-view", {
|
||
id: $data.scrollId,
|
||
ref: $data.scrollId,
|
||
"scroll-with-animation": false,
|
||
direction: "vertical",
|
||
"scroll-top": $data.scrollTop,
|
||
"lower-threshold": 50,
|
||
onScrolltolower: _cache[8] || (_cache[8] = function() {
|
||
return $options.scrolltolower && $options.scrolltolower(...arguments);
|
||
}),
|
||
class: "uni-choose-location-poi-list"
|
||
}, [$data.errMsg != "" ? (openBlock(), createElementBlock("view", _hoisted_10, [createElementVNode("text", _hoisted_11, toDisplayString($data.errMsg), 1)])) : $data.locationLoading ? (openBlock(), createElementBlock("view", _hoisted_12, [createElementVNode("text", _hoisted_13, toDisplayString($options.languageCom["locationLoading"]), 1)])) : $data.searchLoading && $data.pageIndex == 1 ? (openBlock(), createElementBlock("view", _hoisted_14, [createElementVNode("image", {
|
||
src: $data.loadingPath,
|
||
class: "uni-choose-location-poi-search-loading-image",
|
||
mode: "widthFix"
|
||
}, null, 8, _hoisted_15)])) : (openBlock(true), createElementBlock(Fragment, {
|
||
key: 3
|
||
}, renderList($data.pois, (item, index2) => {
|
||
return openBlock(), createElementBlock("view", {
|
||
key: index2,
|
||
class: normalizeClass(["uni-choose-location-poi-item", [$options.landscapeClassCom]]),
|
||
onClick: ($event) => $options.selectPoi(item, index2)
|
||
}, [createElementVNode("view", null, [createElementVNode("view", null, [createElementVNode("text", _hoisted_17, toDisplayString(item.title), 1)]), createElementVNode("view", null, [createElementVNode("text", _hoisted_18, toDisplayString(item.distance > 0 ? item.distanceStr + " | " : "") + toDisplayString(item.address), 1)])]), $data.selected == index2 ? (openBlock(), createElementBlock("text", _hoisted_19, toDisplayString($data.icon.success), 1)) : createCommentVNode("", true), _hoisted_20], 10, _hoisted_16);
|
||
}), 128)), $data.searchLoading && $data.pageIndex > 1 ? (openBlock(), createElementBlock("view", _hoisted_21, [createElementVNode("image", {
|
||
src: $data.loadingPath,
|
||
class: "uni-choose-location-poi-search-loading-image",
|
||
mode: "widthFix"
|
||
}, null, 8, _hoisted_22)])) : createCommentVNode("", true)], 40, _hoisted_9)], 6)) : createCommentVNode("", true)], 2);
|
||
}
|
||
const uniChooseLocationPage = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["styles", [_style_0]]]);
|
||
var chooseLocation = /* @__PURE__ */ defineAsyncApi("chooseLocation", (options, _ref) => {
|
||
var {
|
||
resolve,
|
||
reject
|
||
} = _ref;
|
||
registerSystemRoute("uni:chooseLocation", uniChooseLocationPage, {
|
||
disableSwipeBack: false
|
||
});
|
||
var uuid = Date.now() + "" + Math.floor(Math.random() * 1e7);
|
||
var baseEventName = "uni_choose_location_".concat(uuid);
|
||
var readyEventName = "".concat(baseEventName, "_ready");
|
||
var optionsEventName = "".concat(baseEventName, "_options");
|
||
var successEventName = "".concat(baseEventName, "_success");
|
||
var failEventName = "".concat(baseEventName, "_fail");
|
||
uni.$on(readyEventName, () => {
|
||
uni.$emit(optionsEventName, JSON.parse(JSON.stringify(options)));
|
||
});
|
||
uni.$on(successEventName, (result) => {
|
||
resolve(result);
|
||
});
|
||
uni.$on(failEventName, () => {
|
||
reject("cancel", {
|
||
errCode: 1
|
||
});
|
||
});
|
||
uni.openDialogPage({
|
||
url: "uni:chooseLocation?readyEventName=".concat(readyEventName, "&optionsEventName=").concat(optionsEventName, "&successEventName=").concat(successEventName, "&failEventName=").concat(failEventName),
|
||
fail(err) {
|
||
var _options$fail;
|
||
(_options$fail = options.fail) === null || _options$fail === void 0 || _options$fail.call(options, {
|
||
errMsg: "chooseLocation:fail ".concat(err.errMsg),
|
||
errCode: 4
|
||
});
|
||
uni.$off(readyEventName);
|
||
uni.$off(successEventName);
|
||
uni.$off(failEventName);
|
||
}
|
||
});
|
||
});
|
||
var env = {
|
||
USER_DATA_PATH: "unifile://usr/",
|
||
CACHE_PATH: "unifile://cache/",
|
||
SANDBOX_PATH: "unifile://sandbox/"
|
||
};
|
||
var _PerformanceEntryStatus;
|
||
var APP_LAUNCH = "appLaunch";
|
||
var PERFORMANCE_BUFFER_SIZE = 30;
|
||
var ENTRY_TYPE_RENDER = "render";
|
||
var ENTRY_TYPE_NAVIGATION = "navigation";
|
||
var RENDER_TYPE_FIRST_LAYOUT = "firstLayout";
|
||
var RENDER_TYPE_FIRST_RENDER = "firstRender";
|
||
var AppStartDuration = 1;
|
||
var PageFirstPageRenderDuration = 7;
|
||
var PageFirstPageLayoutDuration = 8;
|
||
class PerformanceEntryStatus {
|
||
constructor(entryType, name) {
|
||
this._state = PerformanceEntryStatus.STATE_EMPTY;
|
||
this._entryData = {
|
||
entryType,
|
||
name,
|
||
duration: 0,
|
||
startTime: 0
|
||
};
|
||
}
|
||
get state() {
|
||
return this._state;
|
||
}
|
||
set state(state) {
|
||
this._state = state;
|
||
if (this._state == PerformanceEntryStatus.STATE_BEFORE) {
|
||
this.executeBefore();
|
||
} else if (this._state == PerformanceEntryStatus.STATE_AFTER) {
|
||
this.executeAfter();
|
||
} else if (this._state == PerformanceEntryStatus.STATE_READY) {
|
||
this.executeReady();
|
||
}
|
||
}
|
||
get entryData() {
|
||
return this._entryData;
|
||
}
|
||
executeBefore() {
|
||
var _getCurrentPage;
|
||
var page = (_getCurrentPage = getCurrentPage()) === null || _getCurrentPage === void 0 ? void 0 : _getCurrentPage.vm;
|
||
if (page != null) {
|
||
this._entryData.referrerPath = page.route;
|
||
}
|
||
}
|
||
executeAfter() {
|
||
var page = getCurrentPage().vm;
|
||
if (page != null) {
|
||
this._entryData.pageId = parseInt(page.$nativePage.pageId);
|
||
this._entryData.path = page.route;
|
||
}
|
||
}
|
||
executeReady() {
|
||
}
|
||
getCurrentInnerPage() {
|
||
var currentPage = getCurrentPage().vm;
|
||
if (currentPage == null) {
|
||
return null;
|
||
}
|
||
return currentPage.$nativePage;
|
||
}
|
||
}
|
||
_PerformanceEntryStatus = PerformanceEntryStatus;
|
||
_PerformanceEntryStatus.STATE_EMPTY = 0;
|
||
_PerformanceEntryStatus.STATE_BEFORE = 1;
|
||
_PerformanceEntryStatus.STATE_AFTER = 2;
|
||
_PerformanceEntryStatus.STATE_READY = 3;
|
||
class PerformanceEntryStatusLayout extends PerformanceEntryStatus {
|
||
constructor() {
|
||
super(ENTRY_TYPE_RENDER, RENDER_TYPE_FIRST_LAYOUT);
|
||
}
|
||
executeAfter() {
|
||
super.executeAfter();
|
||
this._entryData.startTime = Date.now();
|
||
}
|
||
executeReady() {
|
||
super.executeReady();
|
||
var innerPage = super.getCurrentInnerPage();
|
||
if (innerPage != null) {
|
||
this._entryData.duration = nativePage.getDuration(innerPage.pageId, PageFirstPageLayoutDuration);
|
||
}
|
||
}
|
||
}
|
||
class PerformanceEntryStatusRender extends PerformanceEntryStatus {
|
||
constructor() {
|
||
super(ENTRY_TYPE_RENDER, RENDER_TYPE_FIRST_RENDER);
|
||
}
|
||
executeAfter() {
|
||
super.executeAfter();
|
||
this._entryData.startTime = Date.now();
|
||
}
|
||
executeReady() {
|
||
super.executeReady();
|
||
var innerPage = super.getCurrentInnerPage();
|
||
if (innerPage != null) {
|
||
this._entryData.duration = nativePage.getDuration(innerPage.pageId, PageFirstPageRenderDuration);
|
||
}
|
||
}
|
||
}
|
||
class PerformanceEntryStatusNavigation extends PerformanceEntryStatus {
|
||
constructor(name, navigationType) {
|
||
super(ENTRY_TYPE_NAVIGATION, name);
|
||
this._entryData.navigationType = navigationType;
|
||
}
|
||
executeBefore() {
|
||
super.executeBefore();
|
||
this._entryData.startTime = Date.now();
|
||
}
|
||
executeReady() {
|
||
var innerPage = super.getCurrentInnerPage();
|
||
if (innerPage != null) {
|
||
this._entryData.duration = Date.now() - this._entryData.startTime;
|
||
if (this._entryData.name == APP_LAUNCH) {
|
||
this._entryData.duration += nativePage.getDuration(AppStartDuration);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
class PerformanceEntryQueue extends Array {
|
||
constructor() {
|
||
super(...arguments);
|
||
this._queueSize = PERFORMANCE_BUFFER_SIZE;
|
||
}
|
||
get queueSize() {
|
||
return this._queueSize;
|
||
}
|
||
set queueSize(value) {
|
||
this._queueSize = value;
|
||
if (this.length > value) {
|
||
this.dequeue(this.length - value);
|
||
}
|
||
}
|
||
push() {
|
||
return this.enqueue(...arguments);
|
||
}
|
||
enqueue() {
|
||
if (this.length > this._queueSize - 1) {
|
||
this.shift();
|
||
}
|
||
return super.push(...arguments);
|
||
}
|
||
dequeue() {
|
||
var count = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 1;
|
||
this.splice(0, count);
|
||
}
|
||
}
|
||
class PerformanceObserverEntryListImpl {
|
||
constructor() {
|
||
this._queue = new PerformanceEntryQueue();
|
||
}
|
||
push() {
|
||
this._queue.push(...arguments);
|
||
}
|
||
getEntries() {
|
||
return this._queue;
|
||
}
|
||
getEntriesByType(entryType) {
|
||
return this._queue.filter((entry) => entry.entryType == entryType);
|
||
}
|
||
getEntriesByName(name, entryType) {
|
||
return this._queue.filter((entry) => entry.entryType == entryType && entry.name == name);
|
||
}
|
||
clear() {
|
||
this._queue.length = 0;
|
||
}
|
||
get bufferSize() {
|
||
return this._queue.queueSize;
|
||
}
|
||
set bufferSize(size) {
|
||
this._queue.queueSize = size;
|
||
}
|
||
}
|
||
class PerformanceObserverImpl {
|
||
constructor(performance, callback) {
|
||
this._entryTypes = [];
|
||
this._callback = null;
|
||
this._entryList = new PerformanceObserverEntryListImpl();
|
||
this._owner = performance;
|
||
this._callback = callback;
|
||
}
|
||
observe(options) {
|
||
if ((options === null || options === void 0 ? void 0 : options.entryTypes) != null) {
|
||
this._entryTypes.length = 0;
|
||
this._entryTypes.push(...options.entryTypes);
|
||
}
|
||
if (this._entryTypes.length > 0) {
|
||
this._owner.connect(this);
|
||
} else {
|
||
this.disconnect();
|
||
}
|
||
}
|
||
disconnect() {
|
||
this._entryList.clear();
|
||
this._owner.disconnect(this);
|
||
}
|
||
dispatchCallback() {
|
||
var _this$_callback;
|
||
(_this$_callback = this._callback) === null || _this$_callback === void 0 || _this$_callback.call(this, this._entryList);
|
||
}
|
||
get entryTypes() {
|
||
return this._entryTypes;
|
||
}
|
||
get entryList() {
|
||
return this._entryList;
|
||
}
|
||
}
|
||
class PerformanceProvider {
|
||
constructor() {
|
||
this._entryStatus = [];
|
||
}
|
||
get entryStatus() {
|
||
return this._entryStatus;
|
||
}
|
||
onBefore(type) {
|
||
if (type == APP_LAUNCH || type == API_SWITCH_TAB || type == API_NAVIGATE_TO || type == API_REDIRECT_TO || type == API_NAVIGATE_BACK) {
|
||
this._pushEntryStatus(ENTRY_TYPE_NAVIGATION, this._navigationToName(type), type);
|
||
}
|
||
if (type == APP_LAUNCH || type == API_NAVIGATE_TO || type == API_REDIRECT_TO) {
|
||
this._pushEntryStatus(ENTRY_TYPE_RENDER, RENDER_TYPE_FIRST_LAYOUT, type);
|
||
this._pushEntryStatus(ENTRY_TYPE_RENDER, RENDER_TYPE_FIRST_RENDER, type);
|
||
}
|
||
this._forwardState();
|
||
}
|
||
onAfter(type) {
|
||
this._forwardState();
|
||
}
|
||
onReady() {
|
||
this._forwardState();
|
||
}
|
||
removeAllStatus() {
|
||
this._entryStatus.length = 0;
|
||
}
|
||
_pushEntryStatus(entryType, name, navigationType) {
|
||
var entry = null;
|
||
if (entryType == ENTRY_TYPE_NAVIGATION) {
|
||
entry = new PerformanceEntryStatusNavigation(name, navigationType);
|
||
} else if (entryType == ENTRY_TYPE_RENDER) {
|
||
if (name == RENDER_TYPE_FIRST_LAYOUT) {
|
||
entry = new PerformanceEntryStatusLayout();
|
||
} else if (name == RENDER_TYPE_FIRST_RENDER) {
|
||
entry = new PerformanceEntryStatusRender();
|
||
}
|
||
}
|
||
if (entry != null) {
|
||
this._entryStatus.push(entry);
|
||
}
|
||
}
|
||
_forwardState() {
|
||
this._entryStatus.forEach((entry) => {
|
||
entry.state += 1;
|
||
});
|
||
}
|
||
_navigationToName(type) {
|
||
if (type == APP_LAUNCH) {
|
||
return APP_LAUNCH;
|
||
}
|
||
return "route";
|
||
}
|
||
}
|
||
class PerformanceAllocate {
|
||
constructor(allEntryList, observerList) {
|
||
this._allEntryList = allEntryList;
|
||
this._observerList = observerList;
|
||
}
|
||
pushEntryStatus(status) {
|
||
this.pushAllEntryData(status);
|
||
this.pushObserverList(status);
|
||
}
|
||
pushAllEntryData(status) {
|
||
status.forEach((entryStatus) => {
|
||
this._allEntryList.push(entryStatus.entryData);
|
||
});
|
||
}
|
||
pushObserverList(status) {
|
||
this._observerList.forEach((observer) => {
|
||
var entryList = observer.entryList;
|
||
entryList.clear();
|
||
status.forEach((entryStatus) => {
|
||
var entryData = entryStatus.entryData;
|
||
if (observer.entryTypes.includes(entryData.entryType)) {
|
||
entryList.push(entryData);
|
||
}
|
||
});
|
||
observer.dispatchCallback();
|
||
});
|
||
}
|
||
}
|
||
class PerformanceImpl {
|
||
constructor() {
|
||
this._allEntryList = new PerformanceObserverEntryListImpl();
|
||
this._observerList = [];
|
||
this._provider = new PerformanceProvider();
|
||
this._allocate = new PerformanceAllocate(this._allEntryList, this._observerList);
|
||
onBeforeRoute((type) => {
|
||
this._provider.onBefore(type);
|
||
});
|
||
onAfterRoute((type) => {
|
||
this._provider.onAfter(type);
|
||
if (type == API_NAVIGATE_BACK) {
|
||
this.dispatchObserver();
|
||
}
|
||
});
|
||
onPageReady((page) => {
|
||
this.dispatchObserver();
|
||
});
|
||
}
|
||
dispatchObserver() {
|
||
this._provider.onReady();
|
||
this._allocate.pushEntryStatus(this._provider.entryStatus);
|
||
this._provider.removeAllStatus();
|
||
}
|
||
createObserver(callback) {
|
||
return new PerformanceObserverImpl(this, callback);
|
||
}
|
||
connect(observer) {
|
||
var index2 = this._observerList.indexOf(observer);
|
||
if (index2 < 0) {
|
||
this._observerList.push(observer);
|
||
}
|
||
}
|
||
disconnect(observer) {
|
||
var index2 = this._observerList.indexOf(observer);
|
||
if (index2 >= 0) {
|
||
this._observerList.splice(index2, 1);
|
||
}
|
||
}
|
||
getEntries() {
|
||
return this._allEntryList.getEntries();
|
||
}
|
||
getEntriesByType(entryType) {
|
||
return this._allEntryList.getEntriesByType(entryType);
|
||
}
|
||
getEntriesByName(name, entryType) {
|
||
return this._allEntryList.getEntriesByName(name, entryType);
|
||
}
|
||
setBufferSize(size) {
|
||
this._allEntryList.bufferSize = size;
|
||
}
|
||
}
|
||
var getPerformance = function() {
|
||
return new PerformanceImpl();
|
||
};
|
||
var callbackId = 1;
|
||
var proxy;
|
||
var keepAliveCallbacks = {};
|
||
function isUniElement(obj) {
|
||
return obj && typeof obj.getNodeId === "function" && obj.pageId;
|
||
}
|
||
function isComponentPublicInstance(instance) {
|
||
return instance && instance.$ && instance.$.proxy === instance;
|
||
}
|
||
function parseElement(obj) {
|
||
if (isUniElement(obj)) {
|
||
return obj;
|
||
}
|
||
}
|
||
function parseComponentPublicInstance(obj) {
|
||
if (isComponentPublicInstance(obj)) {
|
||
return obj.$el;
|
||
}
|
||
}
|
||
function serialize(el, type) {
|
||
var nodeId = "";
|
||
var pageId = "";
|
||
if (el && el.getNodeId) {
|
||
pageId = el.pageId;
|
||
nodeId = el.getNodeId();
|
||
}
|
||
return {
|
||
pageId,
|
||
nodeId,
|
||
__type__: type
|
||
};
|
||
}
|
||
function toRaw(observed) {
|
||
var raw = observed && observed.__v_raw;
|
||
return raw ? toRaw(raw) : observed;
|
||
}
|
||
function normalizeArg(arg, callbacks, keepAlive) {
|
||
arg = toRaw(arg);
|
||
if (typeof arg === "function") {
|
||
var id2;
|
||
if (keepAlive) {
|
||
var oldId = Object.keys(callbacks).find((id22) => callbacks[id22] === arg);
|
||
id2 = oldId ? parseInt(oldId) : callbackId++;
|
||
callbacks[id2] = arg;
|
||
} else {
|
||
id2 = callbackId++;
|
||
callbacks[id2] = arg;
|
||
}
|
||
return id2;
|
||
} else if (isPlainObject(arg) || isUniElement(arg)) {
|
||
var uniElement = parseElement(arg);
|
||
var componentPublicInstanceUniElement = !uniElement ? parseComponentPublicInstance(arg) : void 0;
|
||
var el = uniElement || componentPublicInstanceUniElement;
|
||
if (el) {
|
||
return serialize(el, uniElement ? "UniElement" : "ComponentPublicInstance");
|
||
} else {
|
||
var newArg = {};
|
||
Object.keys(arg).forEach((name) => {
|
||
newArg[name] = normalizeArg(arg[name], callbacks, keepAlive);
|
||
});
|
||
return newArg;
|
||
}
|
||
}
|
||
return arg;
|
||
}
|
||
function initUTSInstanceMethod(async, opts, instanceId, proxy2) {
|
||
return initProxyFunction("method", async, opts, instanceId, proxy2);
|
||
}
|
||
function getProxy() {
|
||
if (!proxy) {
|
||
{
|
||
proxy = {
|
||
invokeSync(args, callback) {
|
||
return nativeChannel.invokeSync("APP-SERVICE", args, callback);
|
||
},
|
||
invokeAsync(args, callback) {
|
||
return nativeChannel.invokeAsync("APP-SERVICE", args, callback);
|
||
}
|
||
};
|
||
}
|
||
}
|
||
return proxy;
|
||
}
|
||
function resolveSyncResult(args, res, returnOptions, instanceId, proxy2) {
|
||
if (!res) {
|
||
throw new Error("返回值为:" + JSON.stringify(res) + ";请求参数为:" + JSON.stringify(args));
|
||
}
|
||
if (isString(res)) {
|
||
try {
|
||
res = JSON.parse(res);
|
||
} catch (e) {
|
||
throw new Error("JSON.parse(".concat(res, "): ") + e);
|
||
}
|
||
}
|
||
if (res.errMsg) {
|
||
throw new Error(res.errMsg);
|
||
}
|
||
if (returnOptions) {
|
||
if (returnOptions.type === "interface" && typeof res.params === "number") {
|
||
if (!res.params) {
|
||
return null;
|
||
}
|
||
if (res.params === instanceId && proxy2) {
|
||
return proxy2;
|
||
}
|
||
if (interfaceDefines[returnOptions.options]) {
|
||
var ProxyClass = initUTSProxyClass(extend({
|
||
instanceId: res.params
|
||
}, interfaceDefines[returnOptions.options]));
|
||
return new ProxyClass();
|
||
}
|
||
}
|
||
}
|
||
return res.params;
|
||
}
|
||
function invokePropGetter(args) {
|
||
if (args.errMsg) {
|
||
throw new Error(args.errMsg);
|
||
}
|
||
delete args.errMsg;
|
||
return resolveSyncResult(args, getProxy().invokeSync(args, () => {
|
||
}));
|
||
}
|
||
function initProxyFunction(type, async, _ref, instanceId, proxy2) {
|
||
var {
|
||
moduleName,
|
||
moduleType,
|
||
package: pkg,
|
||
class: cls,
|
||
name: methodName,
|
||
method,
|
||
companion,
|
||
keepAlive,
|
||
params: methodParams,
|
||
return: returnOptions,
|
||
errMsg
|
||
} = _ref;
|
||
if (!keepAlive) {
|
||
keepAlive = methodName.indexOf("on") === 0 && methodParams.length === 1 && methodParams[0].type === "UTSCallback";
|
||
}
|
||
var baseArgs = instanceId ? {
|
||
moduleName,
|
||
moduleType,
|
||
id: instanceId,
|
||
type,
|
||
name: methodName,
|
||
method: methodParams,
|
||
keepAlive
|
||
} : {
|
||
moduleName,
|
||
moduleType,
|
||
package: pkg,
|
||
class: cls,
|
||
name: method || methodName,
|
||
type,
|
||
companion,
|
||
method: methodParams,
|
||
keepAlive
|
||
};
|
||
return function() {
|
||
if (errMsg) {
|
||
throw new Error(errMsg);
|
||
}
|
||
var callbacks = keepAlive ? keepAliveCallbacks : {};
|
||
var invokeCallback2 = (_ref2) => {
|
||
var {
|
||
id: id2,
|
||
name,
|
||
params
|
||
} = _ref2;
|
||
var callback = callbacks[id2];
|
||
if (callback) {
|
||
callback(...params);
|
||
if (!keepAlive) {
|
||
delete callbacks[id2];
|
||
}
|
||
} else {
|
||
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"));
|
||
}
|
||
};
|
||
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
||
args[_key] = arguments[_key];
|
||
}
|
||
var invokeArgs = extend({}, baseArgs, {
|
||
params: args.map((arg) => normalizeArg(arg, callbacks, keepAlive))
|
||
});
|
||
if (async) {
|
||
return new Promise((resolve, reject) => {
|
||
getProxy().invokeAsync(invokeArgs, (res) => {
|
||
if (res.type !== "return") {
|
||
invokeCallback2(res);
|
||
} else {
|
||
if (res.errMsg) {
|
||
reject(res.errMsg);
|
||
} else {
|
||
resolve(res.params);
|
||
}
|
||
}
|
||
});
|
||
});
|
||
}
|
||
return resolveSyncResult(invokeArgs, getProxy().invokeSync(invokeArgs, invokeCallback2), returnOptions, instanceId, proxy2);
|
||
};
|
||
}
|
||
function initUTSStaticMethod(async, opts) {
|
||
if (opts.main && !opts.method) {
|
||
if (isUTSiOS()) {
|
||
opts.method = "s_" + opts.name;
|
||
}
|
||
}
|
||
return initProxyFunction("method", async, opts, 0);
|
||
}
|
||
var initUTSProxyFunction = initUTSStaticMethod;
|
||
function parseClassMethodName(name, methods) {
|
||
if (typeof name === "string" && hasOwn(methods, name + "ByJs")) {
|
||
return name + "ByJs";
|
||
}
|
||
return name;
|
||
}
|
||
function isUndefined(value) {
|
||
return typeof value === "undefined";
|
||
}
|
||
function isProxyInterfaceOptions(options) {
|
||
return !isUndefined(options.instanceId);
|
||
}
|
||
function parseClassPropertySetter(name) {
|
||
return "__$set" + capitalize(name);
|
||
}
|
||
function initUTSProxyClass(options) {
|
||
var {
|
||
moduleName,
|
||
moduleType,
|
||
package: pkg,
|
||
class: cls,
|
||
methods,
|
||
props,
|
||
setters,
|
||
errMsg
|
||
} = options;
|
||
var baseOptions = {
|
||
moduleName,
|
||
moduleType,
|
||
package: pkg,
|
||
class: cls,
|
||
errMsg
|
||
};
|
||
var instanceId;
|
||
var constructorParams = [];
|
||
var staticMethods = {};
|
||
var staticProps = [];
|
||
var staticSetters = {};
|
||
var isProxyInterface = false;
|
||
if (isProxyInterfaceOptions(options)) {
|
||
isProxyInterface = true;
|
||
instanceId = options.instanceId;
|
||
} else {
|
||
constructorParams = options.constructor.params;
|
||
staticMethods = options.staticMethods;
|
||
staticProps = options.staticProps;
|
||
staticSetters = options.staticSetters;
|
||
}
|
||
if (isUTSiOS()) {
|
||
if (constructorParams.find((p) => p.type === "UTSCallback" || p.type.indexOf("JSONObject") > 0)) {
|
||
constructorParams.push({
|
||
name: "_byJs",
|
||
type: "boolean"
|
||
});
|
||
}
|
||
}
|
||
var ProxyClass = class UTSClass {
|
||
constructor() {
|
||
this.__instanceId = 0;
|
||
if (errMsg) {
|
||
throw new Error(errMsg);
|
||
}
|
||
var target = {};
|
||
if (!isProxyInterface) {
|
||
for (var _len2 = arguments.length, params = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
||
params[_key2] = arguments[_key2];
|
||
}
|
||
this.__instanceId = initProxyFunction("constructor", false, extend({
|
||
name: "constructor",
|
||
keepAlive: false,
|
||
params: constructorParams
|
||
}, baseOptions), 0).apply(null, params);
|
||
} else if (typeof instanceId === "number") {
|
||
this.__instanceId = instanceId;
|
||
}
|
||
if (!this.__instanceId) {
|
||
throw new Error("new ".concat(cls, " is failed"));
|
||
}
|
||
var instance = this;
|
||
var proxy2 = new Proxy(instance, {
|
||
get(_, name) {
|
||
if (name === "__v_skip") {
|
||
return true;
|
||
}
|
||
if (!target[name]) {
|
||
name = parseClassMethodName(name, methods);
|
||
if (hasOwn(methods, name)) {
|
||
var {
|
||
async,
|
||
keepAlive,
|
||
params: params2,
|
||
return: returnOptions
|
||
} = methods[name];
|
||
target[name] = initUTSInstanceMethod(!!async, extend({
|
||
name,
|
||
keepAlive,
|
||
params: params2,
|
||
return: returnOptions
|
||
}, baseOptions), instance.__instanceId, proxy2);
|
||
} else if (props.includes(name)) {
|
||
return invokePropGetter({
|
||
moduleName,
|
||
moduleType,
|
||
id: instance.__instanceId,
|
||
type: "getter",
|
||
keepAlive: false,
|
||
name,
|
||
errMsg
|
||
});
|
||
}
|
||
}
|
||
return target[name];
|
||
},
|
||
set(_, name, newValue) {
|
||
if (props.includes(name)) {
|
||
var setter = parseClassPropertySetter(name);
|
||
if (!target[setter]) {
|
||
var param = setters[name];
|
||
if (param) {
|
||
target[setter] = initProxyFunction("setter", false, extend({
|
||
name,
|
||
keepAlive: false,
|
||
params: [param]
|
||
}, baseOptions), instance.__instanceId, proxy2);
|
||
}
|
||
}
|
||
target[parseClassPropertySetter(name)](newValue);
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
});
|
||
return proxy2;
|
||
}
|
||
};
|
||
var staticPropSetterCache = {};
|
||
var staticMethodCache = {};
|
||
return new Proxy(ProxyClass, {
|
||
get(target, name, receiver) {
|
||
name = parseClassMethodName(name, staticMethods);
|
||
if (hasOwn(staticMethods, name)) {
|
||
if (!staticMethodCache[name]) {
|
||
var {
|
||
async,
|
||
keepAlive,
|
||
params,
|
||
return: returnOptions
|
||
} = staticMethods[name];
|
||
staticMethodCache[name] = initUTSStaticMethod(!!async, extend({
|
||
name,
|
||
companion: true,
|
||
keepAlive,
|
||
params,
|
||
return: returnOptions
|
||
}, baseOptions));
|
||
}
|
||
return staticMethodCache[name];
|
||
}
|
||
if (staticProps.includes(name)) {
|
||
return invokePropGetter(extend({
|
||
name,
|
||
companion: true,
|
||
type: "getter"
|
||
}, baseOptions));
|
||
}
|
||
return Reflect.get(target, name, receiver);
|
||
},
|
||
set(_, name, newValue) {
|
||
if (staticProps.includes(name)) {
|
||
var setter = parseClassPropertySetter(name);
|
||
if (!staticPropSetterCache[setter]) {
|
||
var param = staticSetters[name];
|
||
if (param) {
|
||
staticPropSetterCache[setter] = initProxyFunction("setter", false, extend({
|
||
name,
|
||
keepAlive: false,
|
||
params: [param]
|
||
}, baseOptions), 0);
|
||
}
|
||
}
|
||
staticPropSetterCache[parseClassPropertySetter(name)](newValue);
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
});
|
||
}
|
||
function isUTSAndroid() {
|
||
{
|
||
return false;
|
||
}
|
||
}
|
||
function isUTSiOS() {
|
||
return !isUTSAndroid();
|
||
}
|
||
function initUTSPackageName(name, is_uni_modules) {
|
||
if (isUTSAndroid()) {
|
||
return "uts.sdk." + (is_uni_modules ? "modules." : "") + name;
|
||
}
|
||
return "";
|
||
}
|
||
function initUTSIndexClassName(moduleName, is_uni_modules) {
|
||
return initUTSClassName(moduleName, isUTSAndroid() ? "IndexKt" : "IndexSwift", is_uni_modules);
|
||
}
|
||
function initUTSClassName(moduleName, className, is_uni_modules) {
|
||
if (isUTSAndroid()) {
|
||
return className;
|
||
}
|
||
return "UTSSDK" + (is_uni_modules ? "Modules" : "") + capitalize(moduleName) + capitalize(className);
|
||
}
|
||
var interfaceDefines = {};
|
||
function registerUTSInterface(name, define) {
|
||
interfaceDefines[name] = define;
|
||
}
|
||
var pluginDefines = {};
|
||
function registerUTSPlugin(name, define) {
|
||
pluginDefines[name] = define;
|
||
}
|
||
function requireUTSPlugin(name) {
|
||
var define = pluginDefines[name];
|
||
if (!define) {
|
||
console.error("".concat(name, " is not found"));
|
||
}
|
||
return define;
|
||
}
|
||
function __log__(type, filename) {
|
||
for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
|
||
args[_key - 2] = arguments[_key];
|
||
}
|
||
var res = normalizeLog(type, filename, args);
|
||
res && console[type](res);
|
||
}
|
||
function isDebugMode() {
|
||
return typeof __channelId__ === "string" && __channelId__;
|
||
}
|
||
function jsonStringifyReplacer(k, p) {
|
||
switch (toRawType(p)) {
|
||
case "Function":
|
||
return "function() { [native code] }";
|
||
default:
|
||
return p;
|
||
}
|
||
}
|
||
function normalizeLog(type, filename, args) {
|
||
if (isDebugMode()) {
|
||
args.push(filename.replace("at ", "uni-app:///"));
|
||
return console[type].apply(console, args);
|
||
}
|
||
var msgs = args.map(function(v) {
|
||
var type2 = toTypeString(v).toLowerCase();
|
||
if (["[object object]", "[object array]", "[object module]"].indexOf(type2) !== -1) {
|
||
try {
|
||
v = "---BEGIN:JSON---" + JSON.stringify(v, jsonStringifyReplacer) + "---END:JSON---";
|
||
} catch (e) {
|
||
v = type2;
|
||
}
|
||
} else {
|
||
if (v === null) {
|
||
v = "---NULL---";
|
||
} else if (v === void 0) {
|
||
v = "---UNDEFINED---";
|
||
} else {
|
||
var vType = toRawType(v).toUpperCase();
|
||
if (vType === "NUMBER" || vType === "BOOLEAN") {
|
||
v = "---BEGIN:" + vType + "---" + v + "---END:" + vType + "---";
|
||
} else {
|
||
v = String(v);
|
||
}
|
||
}
|
||
}
|
||
return v;
|
||
});
|
||
return msgs.join("---COMMA---") + " " + filename;
|
||
}
|
||
const uni$1 = /* @__PURE__ */ Object.defineProperty({
|
||
__proto__: null,
|
||
$emit,
|
||
$off,
|
||
$on,
|
||
$once,
|
||
__log__,
|
||
addInterceptor,
|
||
chooseLocation,
|
||
closeDialogPage,
|
||
closeNativeDialogPage,
|
||
createCanvasContextAsync,
|
||
createSelectorQuery,
|
||
env,
|
||
getElementById,
|
||
getEnterOptionsSync,
|
||
getLaunchOptionsSync,
|
||
getPerformance,
|
||
hideTabBar,
|
||
hideTabBarRedDot,
|
||
initUTSClassName,
|
||
initUTSIndexClassName,
|
||
initUTSPackageName,
|
||
initUTSProxyClass,
|
||
initUTSProxyFunction,
|
||
loadFontFace,
|
||
navigateBack,
|
||
navigateTo,
|
||
onTabBarMidButtonTap,
|
||
openDialogPage,
|
||
pageScrollTo,
|
||
reLaunch,
|
||
redirectTo,
|
||
registerUTSInterface,
|
||
registerUTSPlugin,
|
||
removeInterceptor,
|
||
removeTabBarBadge,
|
||
requireUTSPlugin,
|
||
setNavigationBarColor,
|
||
setNavigationBarTitle,
|
||
setTabBarBadge,
|
||
setTabBarItem,
|
||
setTabBarStyle,
|
||
showTabBar,
|
||
showTabBarRedDot,
|
||
startPullDownRefresh,
|
||
stopPullDownRefresh,
|
||
switchTab
|
||
}, Symbol.toStringTag, { value: "Module" });
|
||
function converPx(value) {
|
||
if (/^-?\d+[ur]px$/i.test(value)) {
|
||
return value.replace(/(^-?\d+)[ur]px$/i, (text, num) => {
|
||
return "".concat(uni.upx2px(parseFloat(num)), "px");
|
||
});
|
||
} else if (/^-?[\d\.]+$/.test(value)) {
|
||
return "".concat(value, "px");
|
||
}
|
||
return value || "";
|
||
}
|
||
function converType(type) {
|
||
return type.replace(/[A-Z]/g, (text) => {
|
||
return "-".concat(text.toLowerCase());
|
||
}).replace("webkit", "-webkit");
|
||
}
|
||
function getStyle(action) {
|
||
var animateTypes1 = ["matrix", "matrix3d", "scale", "scale3d", "rotate3d", "skew", "translate", "translate3d"];
|
||
var animateTypes2 = ["scaleX", "scaleY", "scaleZ", "rotate", "rotateX", "rotateY", "rotateZ", "skewX", "skewY", "translateX", "translateY", "translateZ"];
|
||
var animateTypes3 = ["opacity", "background-color"];
|
||
var animateTypes4 = ["width", "height", "left", "right", "top", "bottom"];
|
||
var animates = action.animates;
|
||
var option = action.option;
|
||
var transition = option.transition;
|
||
var style = {};
|
||
var transform = [];
|
||
animates.forEach((animate) => {
|
||
var type = animate.type;
|
||
var args = [...animate.args];
|
||
if (animateTypes1.concat(animateTypes2).includes(type)) {
|
||
if (type.startsWith("rotate") || type.startsWith("skew")) {
|
||
args = args.map((value2) => parseFloat(value2) + "deg");
|
||
} else if (type.startsWith("translate")) {
|
||
args = args.map(converPx);
|
||
}
|
||
if (animateTypes2.indexOf(type) >= 0) {
|
||
args.length = 1;
|
||
}
|
||
transform.push("".concat(type, "(").concat(args.join(","), ")"));
|
||
} else if (animateTypes3.concat(animateTypes4).includes(args[0])) {
|
||
type = args[0];
|
||
var value = args[1];
|
||
style[type] = animateTypes4.includes(type) ? converPx(value) : value;
|
||
}
|
||
});
|
||
style.transform = style.webkitTransform = transform.join(" ");
|
||
style.transition = style.webkitTransition = Object.keys(style).map((type) => "".concat(converType(type), " ").concat(transition.duration, "ms ").concat(transition.timingFunction, " ").concat(transition.delay, "ms")).join(",");
|
||
style.transformOrigin = style.webkitTransformOrigin = option.transformOrigin;
|
||
return style;
|
||
}
|
||
function startAnimation(context) {
|
||
var animation2 = context.animation;
|
||
if (!animation2 || !animation2.actions || !animation2.actions.length) {
|
||
return;
|
||
}
|
||
var index2 = 0;
|
||
var actions = animation2.actions;
|
||
var length = animation2.actions.length;
|
||
function animate() {
|
||
var action = actions[index2];
|
||
var transition = action.option.transition;
|
||
var style = getStyle(action);
|
||
Object.keys(style).forEach((key) => {
|
||
context.$el.style[key] = style[key];
|
||
});
|
||
index2 += 1;
|
||
if (index2 < length) {
|
||
setTimeout(animate, transition.duration + transition.delay);
|
||
}
|
||
}
|
||
setTimeout(() => {
|
||
animate();
|
||
}, 0);
|
||
}
|
||
const animation = {
|
||
props: ["animation"],
|
||
watch: {
|
||
animation: {
|
||
deep: true,
|
||
handler() {
|
||
startAnimation(this);
|
||
}
|
||
}
|
||
},
|
||
mounted() {
|
||
startAnimation(this);
|
||
}
|
||
};
|
||
var defineBuiltInComponent = (options) => {
|
||
options.__reserved = true;
|
||
var {
|
||
props,
|
||
mixins
|
||
} = options;
|
||
if (!props || !props.animation) {
|
||
(mixins || (options.mixins = [])).push(animation);
|
||
}
|
||
{
|
||
var rootElement = options.rootElement;
|
||
if (rootElement) {
|
||
customElements.define(rootElement.name, rootElement.class, rootElement.options);
|
||
}
|
||
}
|
||
return defineSystemComponent(options);
|
||
};
|
||
var defineSystemComponent = (options) => {
|
||
options.__reserved = true;
|
||
options.compatConfig = {
|
||
MODE: 3
|
||
// 标记为vue3
|
||
};
|
||
return defineComponent(options);
|
||
};
|
||
function $dispatch(context, componentName, eventName) {
|
||
var _parent;
|
||
var parent = context.$parent;
|
||
var name = (_parent = parent) === null || _parent === void 0 || (_parent = _parent.$options) === null || _parent === void 0 ? void 0 : _parent.name;
|
||
while (parent != null && (name == null || componentName != name)) {
|
||
parent = parent.$parent;
|
||
if (parent != null) {
|
||
var _parent2;
|
||
name = (_parent2 = parent) === null || _parent2 === void 0 || (_parent2 = _parent2.$options) === null || _parent2 === void 0 ? void 0 : _parent2.name;
|
||
}
|
||
}
|
||
if (parent != null) {
|
||
if (typeof parent[eventName] === "function") {
|
||
for (var _len = arguments.length, do_not_transform_spread = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
|
||
do_not_transform_spread[_key - 3] = arguments[_key];
|
||
}
|
||
parent[eventName](...do_not_transform_spread);
|
||
} else {
|
||
warn("dispatch: ".concat(componentName, " has no method ").concat(eventName));
|
||
}
|
||
}
|
||
}
|
||
function $dispatchParent(context, componentName, eventName) {
|
||
var _parent$$options;
|
||
var parent = context.$parent;
|
||
var name = parent === null || parent === void 0 || (_parent$$options = parent.$options) === null || _parent$$options === void 0 ? void 0 : _parent$$options.name;
|
||
if (parent !== null && (name === null || componentName === name)) {
|
||
if (typeof parent[eventName] === "function") {
|
||
for (var _len2 = arguments.length, do_not_transform_spread = new Array(_len2 > 3 ? _len2 - 3 : 0), _key2 = 3; _key2 < _len2; _key2++) {
|
||
do_not_transform_spread[_key2 - 3] = arguments[_key2];
|
||
}
|
||
return parent[eventName](...do_not_transform_spread);
|
||
} else {
|
||
warn("dispatchParent: ".concat(componentName, " has no method ").concat(eventName));
|
||
}
|
||
}
|
||
}
|
||
function initUniCustomEvent(element, e) {
|
||
e.target = element;
|
||
e.currentTarget = element;
|
||
return e;
|
||
}
|
||
var CHECKBOX_NAME = "Checkbox";
|
||
var CHECKBOX_ROOT_ELEMENT = "uni-checkbox-element";
|
||
class UniCheckboxElement extends UniElementImpl {
|
||
constructor(data, pageNode) {
|
||
super(data, pageNode);
|
||
this.tagName = "CHECKBOX";
|
||
this.nodeName = this.tagName;
|
||
this._getAttribute = (key) => {
|
||
return null;
|
||
};
|
||
}
|
||
getAnyAttribute(key) {
|
||
var value = this._getAttribute(key);
|
||
if (value != null) {
|
||
return value;
|
||
}
|
||
return super.getAnyAttribute(key);
|
||
}
|
||
}
|
||
var checkboxProps = {
|
||
checked: {
|
||
type: Boolean,
|
||
default: false
|
||
},
|
||
disabled: {
|
||
type: Boolean,
|
||
default: false
|
||
},
|
||
value: {
|
||
type: [Object, String],
|
||
default: ""
|
||
},
|
||
// 图标颜色
|
||
color: {
|
||
type: String,
|
||
default: "#007aff"
|
||
},
|
||
// 默认的背景颜色
|
||
backgroundColor: {
|
||
type: String,
|
||
default: "#ffffff"
|
||
},
|
||
// 默认的边框颜色
|
||
borderColor: {
|
||
type: String,
|
||
default: "#d1d1d1"
|
||
},
|
||
// 选中时的背景颜色
|
||
activeBackgroundColor: {
|
||
type: String,
|
||
default: "#ffffff"
|
||
},
|
||
// 选中时的边框颜色
|
||
activeBorderColor: {
|
||
type: String,
|
||
default: "#d1d1d1"
|
||
},
|
||
// 图标颜色,同color,优先级大于color
|
||
iconColor: {
|
||
type: String,
|
||
default: ""
|
||
},
|
||
// 图标颜色,同color,优先级大于iconColor
|
||
foreColor: {
|
||
type: String,
|
||
default: ""
|
||
}
|
||
};
|
||
var styles = {
|
||
["uni-checkbox"]: {
|
||
"flex-direction": "row",
|
||
"align-items": "center"
|
||
},
|
||
["uni-checkbox-input"]: {
|
||
"justify-content": "center",
|
||
"align-items": "center",
|
||
position: "relative",
|
||
"border-top-width": "1px",
|
||
"border-right-width": "1px",
|
||
"border-bottom-width": "1px",
|
||
"border-left-width": "1px",
|
||
"border-top-style": "solid",
|
||
"border-right-style": "solid",
|
||
"border-bottom-style": "solid",
|
||
"border-left-style": "solid",
|
||
"border-top-left-radius": "3px",
|
||
"border-top-right-radius": "3px",
|
||
"border-bottom-right-radius": "3px",
|
||
"border-bottom-left-radius": "3px",
|
||
width: "22px",
|
||
height: "22px",
|
||
"margin-right": "5px",
|
||
"box-sizing": "content-box"
|
||
},
|
||
["uni-icon"]: {
|
||
"font-family": "uni-icon",
|
||
"font-size": "16px",
|
||
width: "16px",
|
||
height: "16px"
|
||
}
|
||
};
|
||
var createHook = (lifecycle) => function(hook) {
|
||
var target = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : getCurrentInstance();
|
||
!isInSSRComponentSetup && injectHook(lifecycle, hook, target);
|
||
};
|
||
var onUnload = /* @__PURE__ */ createHook(ON_UNLOAD);
|
||
const checkbox = /* @__PURE__ */ defineBuiltInComponent({
|
||
name: CHECKBOX_NAME,
|
||
rootElement: {
|
||
name: CHECKBOX_ROOT_ELEMENT,
|
||
// @ts-expect-error not web element
|
||
class: UniCheckboxElement
|
||
},
|
||
props: checkboxProps,
|
||
emits: ["click"],
|
||
setup(props, _ref) {
|
||
var {
|
||
emit,
|
||
slots
|
||
} = _ref;
|
||
var icon = "";
|
||
var instance = getCurrentInstance();
|
||
var elementRef = ref();
|
||
var checkboxChecked = ref(props.checked);
|
||
var checkboxValue = ref("");
|
||
var setCheckboxChecked = (checked) => {
|
||
checkboxChecked.value = checked;
|
||
};
|
||
watchEffect(() => {
|
||
checkboxChecked.value = props.checked;
|
||
});
|
||
watch(() => checkboxChecked.value, (val) => {
|
||
var ctx = instance === null || instance === void 0 ? void 0 : instance.proxy;
|
||
if (!ctx)
|
||
return;
|
||
$dispatch(ctx, "CheckboxGroup", "_changeHandler", {
|
||
name: checkboxValue.value,
|
||
checked: checkboxChecked.value,
|
||
setCheckboxChecked
|
||
});
|
||
});
|
||
watchEffect(() => {
|
||
checkboxValue.value = props.value.toString();
|
||
});
|
||
var iconStyle = computed(() => {
|
||
if (props.disabled) {
|
||
return Object.assign({}, styles["uni-icon"]);
|
||
}
|
||
var color = "";
|
||
if (props.foreColor.length > 0) {
|
||
color = props.foreColor;
|
||
} else if (props.iconColor.length > 0) {
|
||
color = props.iconColor;
|
||
} else {
|
||
color = props.color;
|
||
}
|
||
return Object.assign({}, styles["uni-icon"], {
|
||
color
|
||
});
|
||
});
|
||
var checkInputStyle = computed(() => {
|
||
var style = checkboxChecked.value ? checkedStyle.value : uncheckedStyle.value;
|
||
return Object.assign({}, styles["uni-checkbox-input"], style);
|
||
});
|
||
var checkedStyle = computed(() => {
|
||
if (props.disabled) {
|
||
return {
|
||
backgroundColor: "#e1e1e1",
|
||
borderColor: "#d1d1d1"
|
||
};
|
||
}
|
||
return {
|
||
backgroundColor: props.activeBackgroundColor,
|
||
borderColor: props.activeBorderColor
|
||
};
|
||
});
|
||
var uncheckedStyle = computed(() => {
|
||
if (props.disabled) {
|
||
return {
|
||
backgroundColor: "#e1e1e1",
|
||
borderColor: "#d1d1d1"
|
||
};
|
||
}
|
||
return {
|
||
backgroundColor: props.backgroundColor,
|
||
borderColor: props.borderColor
|
||
};
|
||
});
|
||
onMounted(() => {
|
||
var ctx = instance === null || instance === void 0 ? void 0 : instance.proxy;
|
||
$dispatch(ctx, "CheckboxGroup", "_checkboxGroupUpdateHandler", {
|
||
setCheckboxChecked,
|
||
name: checkboxValue.value,
|
||
checked: checkboxChecked.value
|
||
}, "add");
|
||
instance === null || instance === void 0 || instance.$waitNativeRender(() => {
|
||
var _instance$proxy;
|
||
if (!instance)
|
||
return;
|
||
elementRef.value = (_instance$proxy = instance.proxy) === null || _instance$proxy === void 0 ? void 0 : _instance$proxy.$el;
|
||
elementRef.value._getAttribute = (key) => {
|
||
var _props$keyString$toSt, _props$keyString;
|
||
var keyString = camelize(key);
|
||
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;
|
||
};
|
||
});
|
||
});
|
||
onUnload(() => {
|
||
var ctx = instance === null || instance === void 0 ? void 0 : instance.proxy;
|
||
$dispatch(ctx, "CheckboxGroup", "_checkboxGroupUpdateHandler", {
|
||
setCheckboxChecked,
|
||
name: checkboxValue.value,
|
||
checked: checkboxChecked.value
|
||
}, "remove");
|
||
});
|
||
var _onClick = ($event) => {
|
||
if (props.disabled)
|
||
return;
|
||
emit("click", $event);
|
||
checkboxChecked.value = !checkboxChecked.value;
|
||
};
|
||
return () => {
|
||
var _slots$default;
|
||
return createVNode("uni-checkbox-element", {
|
||
"dataUncType": "uni-checkbox",
|
||
"onClick": _onClick,
|
||
"class": "uni-checkbox",
|
||
"style": styles["uni-checkbox"]
|
||
}, [createVNode("view", {
|
||
"class": "uni-checkbox-input",
|
||
"style": checkInputStyle.value
|
||
}, [createVNode("text", {
|
||
"class": "uni-icon",
|
||
"style": iconStyle.value
|
||
}, [checkboxChecked.value ? icon : ""], 4)], 4), (_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)], 12, ["onClick"]);
|
||
};
|
||
}
|
||
});
|
||
const checkbox$1 = /* @__PURE__ */ Object.defineProperty({
|
||
__proto__: null,
|
||
UniCheckboxElement,
|
||
default: checkbox
|
||
}, Symbol.toStringTag, { value: "Module" });
|
||
var CHECKBOX_GROUP_NAME = "CheckboxGroup";
|
||
var CHECKBOX_GROUP_ROOT_ELEMENT = "uni-checkbox-group-element";
|
||
var checkboxGroupProps = {
|
||
name: {
|
||
type: String,
|
||
default: ""
|
||
}
|
||
};
|
||
class UniCheckboxGroupElement extends UniFormControlElement {
|
||
constructor(data, pageNode) {
|
||
super(data, pageNode);
|
||
this._initialValue = [];
|
||
this.tagName = "CHECKBOX-GROUP";
|
||
this.nodeName = this.tagName;
|
||
this._getAttribute = (key) => {
|
||
return null;
|
||
};
|
||
this._getValue = () => {
|
||
return this._initialValue;
|
||
};
|
||
this._setValue = (value) => {
|
||
};
|
||
}
|
||
get value() {
|
||
return this._getValue();
|
||
}
|
||
set value(value) {
|
||
this._setValue(value);
|
||
}
|
||
getAnyAttribute(key) {
|
||
var value = this._getAttribute(key);
|
||
if (value != null) {
|
||
return value;
|
||
}
|
||
return super.getAnyAttribute(key);
|
||
}
|
||
reset() {
|
||
this.value = this._initialValue.slice(0);
|
||
}
|
||
}
|
||
class UniCheckboxGroupChangeEventDetail {
|
||
constructor(value) {
|
||
this.value = value;
|
||
}
|
||
}
|
||
class UniCheckboxGroupChangeEvent extends UniCustomEvent {
|
||
constructor(value) {
|
||
super("change", {
|
||
detail: new UniCheckboxGroupChangeEventDetail(value)
|
||
});
|
||
}
|
||
}
|
||
const checkboxGroup = /* @__PURE__ */ defineBuiltInComponent({
|
||
name: CHECKBOX_GROUP_NAME,
|
||
rootElement: {
|
||
name: CHECKBOX_GROUP_ROOT_ELEMENT,
|
||
// @ts-expect-error not web element
|
||
class: UniCheckboxGroupElement
|
||
},
|
||
props: checkboxGroupProps,
|
||
emits: ["change"],
|
||
setup(props, _ref) {
|
||
var {
|
||
emit,
|
||
expose,
|
||
slots
|
||
} = _ref;
|
||
var $checkboxList = ref([]);
|
||
var uniCheckboxGroupElementRef = ref();
|
||
var instance = getCurrentInstance();
|
||
var _checkboxGroupUpdateHandler = (info, type) => {
|
||
if (type == "add") {
|
||
$checkboxList.value.push(info);
|
||
} else {
|
||
var index2 = $checkboxList.value.findIndex((i) => i.name === info.name);
|
||
if (index2 !== -1) {
|
||
$checkboxList.value.splice(index2, 1);
|
||
}
|
||
}
|
||
};
|
||
var _changeHandler = (info) => {
|
||
$checkboxList.value.forEach((i) => {
|
||
if (i.name === info.name) {
|
||
i.checked = info.checked;
|
||
}
|
||
});
|
||
emit("change", initUniCustomEvent(uniCheckboxGroupElementRef.value, new UniCheckboxGroupChangeEvent(_getValue())));
|
||
};
|
||
var _getValue = () => {
|
||
var valueArray = [];
|
||
$checkboxList.value.forEach((info) => {
|
||
if (info.checked) {
|
||
valueArray.push(info.name);
|
||
}
|
||
});
|
||
return valueArray;
|
||
};
|
||
var _setValue = (valueArray) => {
|
||
$checkboxList.value.forEach((info) => {
|
||
info.setCheckboxChecked(valueArray.includes(info.name));
|
||
});
|
||
};
|
||
onMounted(() => {
|
||
instance === null || instance === void 0 || instance.$waitNativeRender(() => {
|
||
if (!instance)
|
||
return;
|
||
if (!uniCheckboxGroupElementRef.value)
|
||
return;
|
||
uniCheckboxGroupElementRef.value._getValue = _getValue;
|
||
uniCheckboxGroupElementRef.value._setValue = _setValue;
|
||
uniCheckboxGroupElementRef.value._initialValue = _getValue();
|
||
uniCheckboxGroupElementRef.value._getAttribute = (key) => {
|
||
var _props$keyString$toSt, _props$keyString;
|
||
var keyString = camelize(key);
|
||
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;
|
||
};
|
||
});
|
||
});
|
||
expose({
|
||
_checkboxGroupUpdateHandler,
|
||
_changeHandler,
|
||
_getValue,
|
||
_setValue
|
||
});
|
||
return () => {
|
||
var _slots$default;
|
||
return createVNode("uni-checkbox-group-element", {
|
||
"ref": uniCheckboxGroupElementRef
|
||
}, [(_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)], 512);
|
||
};
|
||
}
|
||
});
|
||
const checkboxGroup$1 = /* @__PURE__ */ Object.defineProperty({
|
||
__proto__: null,
|
||
UniCheckboxGroupChangeEvent,
|
||
UniCheckboxGroupElement,
|
||
default: checkboxGroup
|
||
}, Symbol.toStringTag, { value: "Module" });
|
||
var RADIO_NAME = "Radio";
|
||
var RADIO_ROOT_ELEMENT = "uni-radio-element";
|
||
class UniRadioElement extends UniElementImpl {
|
||
constructor(data, pageNode) {
|
||
super(data, pageNode);
|
||
this.tagName = "RADIO";
|
||
this.nodeName = this.tagName;
|
||
this._getAttribute = (key) => {
|
||
return null;
|
||
};
|
||
}
|
||
getAnyAttribute(key) {
|
||
var value = this._getAttribute(key);
|
||
if (value != null) {
|
||
return value;
|
||
}
|
||
return super.getAnyAttribute(key);
|
||
}
|
||
}
|
||
var radioProps = {
|
||
checked: {
|
||
type: Boolean,
|
||
default: false
|
||
},
|
||
disabled: {
|
||
type: Boolean,
|
||
default: false
|
||
},
|
||
value: {
|
||
type: [Object, String],
|
||
default: ""
|
||
},
|
||
// 选中时的背景颜色
|
||
color: {
|
||
type: String,
|
||
default: "#007AFF"
|
||
},
|
||
// 默认的背景颜色
|
||
backgroundColor: {
|
||
type: String,
|
||
default: "#ffffff"
|
||
},
|
||
// 默认的边框颜色
|
||
borderColor: {
|
||
type: String,
|
||
default: "#d1d1d1"
|
||
},
|
||
// 选中时的背景颜色,同color,优先级大于color
|
||
activeBackgroundColor: {
|
||
type: String,
|
||
default: ""
|
||
},
|
||
// 选中时的边框颜色,默认为选中时的背景颜色
|
||
activeBorderColor: {
|
||
type: String,
|
||
default: ""
|
||
},
|
||
// 图标颜色
|
||
iconColor: {
|
||
type: String,
|
||
default: "#ffffff"
|
||
},
|
||
// 高于 iconColor 和 color
|
||
foreColor: {
|
||
type: String,
|
||
default: ""
|
||
}
|
||
};
|
||
var _style_0$1 = {
|
||
"uni-radio": {
|
||
"": {
|
||
flexDirection: "row",
|
||
alignItems: "center"
|
||
}
|
||
},
|
||
"uni-radio-input": {
|
||
"": {
|
||
position: "relative",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
marginRight: "5px",
|
||
borderStyle: "solid",
|
||
borderWidth: "1px",
|
||
borderRadius: "50px",
|
||
width: "22px",
|
||
height: "22px",
|
||
boxSizing: "content-box"
|
||
}
|
||
},
|
||
"uni-radio-input-icon": {
|
||
"": {
|
||
fontFamily: "uni-icon",
|
||
fontSize: "14px",
|
||
width: "14px",
|
||
height: "14px"
|
||
}
|
||
}
|
||
};
|
||
var styleList = _style_0$1;
|
||
const radio = /* @__PURE__ */ defineBuiltInComponent({
|
||
name: RADIO_NAME,
|
||
rootElement: {
|
||
name: RADIO_ROOT_ELEMENT,
|
||
// @ts-expect-error not web element
|
||
class: UniRadioElement
|
||
},
|
||
props: radioProps,
|
||
setup(props, _ref) {
|
||
var {
|
||
slots,
|
||
expose
|
||
} = _ref;
|
||
var uniRadioElementRef = ref();
|
||
var styleUniRadio = computed(() => styleList["uni-radio"][""]);
|
||
var styleUniRadioInput = computed(() => {
|
||
return Object.assign({}, styleList["uni-radio-input"][""], radioChecked.value ? checkedStyle.value : uncheckedStyle.value);
|
||
});
|
||
var styleUniRadioInputIcon = computed(() => {
|
||
return Object.assign({}, styleList["uni-radio-input-icon"][""], iconStyle.value);
|
||
});
|
||
var checkedStyle = computed(() => {
|
||
if (props.disabled) {
|
||
return {
|
||
backgroundColor: "#e1e1e1",
|
||
borderColor: "#d1d1d1"
|
||
};
|
||
}
|
||
var backgroundColor = props.activeBackgroundColor.length > 0 ? props.activeBackgroundColor : props.color;
|
||
var borderColor = props.activeBorderColor.length > 0 ? props.activeBorderColor : backgroundColor;
|
||
return {
|
||
backgroundColor,
|
||
borderColor
|
||
};
|
||
});
|
||
var uncheckedStyle = computed(() => {
|
||
if (props.disabled) {
|
||
return {
|
||
backgroundColor: "#e1e1e1",
|
||
borderColor: "#d1d1d1"
|
||
};
|
||
}
|
||
return {
|
||
backgroundColor: props.backgroundColor,
|
||
borderColor: props.borderColor
|
||
};
|
||
});
|
||
var iconStyle = computed(() => {
|
||
var color = "";
|
||
if (props.foreColor.length > 0) {
|
||
color = props.foreColor;
|
||
} else if (props.iconColor.length > 0) {
|
||
color = props.iconColor;
|
||
}
|
||
return {
|
||
color: props.disabled ? "#adadad" : color
|
||
};
|
||
});
|
||
var icon = "";
|
||
var radioChecked = ref(props.checked);
|
||
var radioValue = ref(props.value.toString());
|
||
watchEffect(() => {
|
||
radioChecked.value = props.checked;
|
||
});
|
||
var setRadioChecked = (value) => {
|
||
radioChecked.value = value;
|
||
};
|
||
watchEffect(() => {
|
||
radioValue.value = props.value.toString();
|
||
});
|
||
watch(() => radioChecked.value, (val) => {
|
||
var ctx = instance === null || instance === void 0 ? void 0 : instance.proxy;
|
||
if (!ctx)
|
||
return;
|
||
if (val) {
|
||
$dispatch(ctx, "RadioGroup", "_changeHandler", {
|
||
name: radioValue.value,
|
||
checked: radioChecked.value,
|
||
setRadioChecked
|
||
});
|
||
}
|
||
});
|
||
expose({
|
||
radioValue
|
||
});
|
||
var instance = getCurrentInstance();
|
||
onMounted(() => {
|
||
instance === null || instance === void 0 || instance.$waitNativeRender(() => {
|
||
if (instance === null)
|
||
return;
|
||
uniRadioElementRef.value._getAttribute = (key) => {
|
||
var _props$keyString$toSt, _props$keyString;
|
||
var keyString = camelize(key);
|
||
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;
|
||
};
|
||
});
|
||
var ctx = instance === null || instance === void 0 ? void 0 : instance.proxy;
|
||
$dispatch(ctx, "RadioGroup", "_radioGroupUpdateHandler", {
|
||
name: radioValue.value,
|
||
checked: radioChecked.value,
|
||
setRadioChecked
|
||
}, "add");
|
||
});
|
||
onUnmounted(() => {
|
||
var ctx = instance === null || instance === void 0 ? void 0 : instance.proxy;
|
||
$dispatch(ctx, "RadioGroup", "_radioGroupUpdateHandler", {
|
||
name: radioValue.value,
|
||
checked: radioChecked.value,
|
||
setRadioChecked
|
||
}, "remove");
|
||
});
|
||
var _onClick = () => {
|
||
if (props.disabled || radioChecked.value)
|
||
return;
|
||
radioChecked.value = !radioChecked.value;
|
||
};
|
||
return () => {
|
||
var _slots$default;
|
||
return createVNode("uni-radio-element", {
|
||
"dataUncType": "uni-radio",
|
||
"class": "uni-radio",
|
||
"style": styleUniRadio.value,
|
||
"ref": uniRadioElementRef,
|
||
"onClick": _onClick
|
||
}, [createVNode("view", {
|
||
"class": "uni-radio-input",
|
||
"style": styleUniRadioInput.value
|
||
}, [createVNode("text", {
|
||
"class": "uni-radio-input-icon",
|
||
"style": styleUniRadioInputIcon.value
|
||
}, [radioChecked.value ? icon : ""], 4)], 4), (_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)], 12, ["onClick"]);
|
||
};
|
||
}
|
||
});
|
||
const radio$1 = /* @__PURE__ */ Object.defineProperty({
|
||
__proto__: null,
|
||
UniRadioElement,
|
||
default: radio
|
||
}, Symbol.toStringTag, { value: "Module" });
|
||
var RADIOGROUP_NAME = "RadioGroup";
|
||
var RADIOGROUP_ROOT_ELEMENT = "uni-radio-group-element";
|
||
var RadioProps = {
|
||
name: {
|
||
type: String,
|
||
default: ""
|
||
}
|
||
};
|
||
class UniRadioGroupElement extends UniFormControlElement {
|
||
constructor(data, pageNode) {
|
||
super(data, pageNode);
|
||
this._initialValue = "";
|
||
this.tagName = "RADIO-GROUP";
|
||
this.nodeName = this.tagName;
|
||
this._getAttribute = (key) => {
|
||
return null;
|
||
};
|
||
this._getValue = () => {
|
||
return this._initialValue;
|
||
};
|
||
this._setValue = (value) => {
|
||
};
|
||
}
|
||
getAnyAttribute(key) {
|
||
var value = this._getAttribute(key);
|
||
if (value != null) {
|
||
return value;
|
||
}
|
||
return super.getAnyAttribute(key);
|
||
}
|
||
get value() {
|
||
return this._getValue();
|
||
}
|
||
set value(value) {
|
||
this._setValue(value);
|
||
}
|
||
reset() {
|
||
this.value = this._initialValue;
|
||
}
|
||
}
|
||
class UniRadioGroupChangeEventDetail {
|
||
constructor(value) {
|
||
this.value = value;
|
||
}
|
||
}
|
||
class UniRadioGroupChangeEvent extends UniCustomEvent {
|
||
constructor(value) {
|
||
super("change", {
|
||
detail: new UniRadioGroupChangeEventDetail(value)
|
||
});
|
||
}
|
||
}
|
||
const radioGroup = /* @__PURE__ */ defineBuiltInComponent({
|
||
name: RADIOGROUP_NAME,
|
||
rootElement: {
|
||
name: RADIOGROUP_ROOT_ELEMENT,
|
||
// @ts-expect-error not web element
|
||
class: UniRadioGroupElement
|
||
},
|
||
props: RadioProps,
|
||
emits: ["change"],
|
||
setup(props, _ref) {
|
||
var {
|
||
emit,
|
||
slots,
|
||
expose
|
||
} = _ref;
|
||
var $radioList = ref([]);
|
||
var uniRadioGroupElementRef = ref();
|
||
var instance = getCurrentInstance();
|
||
var _radioGroupUpdateHandler = (info, type) => {
|
||
if (type == "add") {
|
||
$radioList.value.push(info);
|
||
} else {
|
||
var index2 = $radioList.value.findIndex((i) => i.name == info.name);
|
||
if (index2 !== -1) {
|
||
$radioList.value.splice(index2, 1);
|
||
}
|
||
}
|
||
};
|
||
var _changeHandler = (data) => {
|
||
_setValue(data.name);
|
||
emit("change", initUniCustomEvent(uniRadioGroupElementRef.value, new UniRadioGroupChangeEvent(data.name)));
|
||
};
|
||
var _getValue = () => {
|
||
var value = "";
|
||
$radioList.value.forEach((info) => {
|
||
if (info.checked) {
|
||
value = info.name;
|
||
}
|
||
});
|
||
return value;
|
||
};
|
||
var _setValue = (name) => {
|
||
$radioList.value.forEach((info) => {
|
||
if (info.name == name) {
|
||
info.checked = true;
|
||
info.setRadioChecked(true);
|
||
} else {
|
||
info.checked = false;
|
||
info.setRadioChecked(false);
|
||
}
|
||
});
|
||
};
|
||
onMounted(() => {
|
||
instance === null || instance === void 0 || instance.$waitNativeRender(() => {
|
||
if (!instance)
|
||
return;
|
||
if (!uniRadioGroupElementRef.value)
|
||
return;
|
||
uniRadioGroupElementRef.value._getValue = _getValue;
|
||
uniRadioGroupElementRef.value._setValue = _setValue;
|
||
uniRadioGroupElementRef.value._initialValue = _getValue();
|
||
uniRadioGroupElementRef.value._getAttribute = (key) => {
|
||
var _props$keyString$toSt, _props$keyString;
|
||
var keyString = camelize(key);
|
||
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;
|
||
};
|
||
});
|
||
});
|
||
expose({
|
||
_radioGroupUpdateHandler,
|
||
_getValue,
|
||
_setValue,
|
||
_changeHandler
|
||
});
|
||
return () => {
|
||
var _slots$default;
|
||
return createVNode("uni-radio-group-element", {
|
||
"ref": uniRadioGroupElementRef
|
||
}, [(_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)], 512);
|
||
};
|
||
}
|
||
});
|
||
const radioGroup$1 = /* @__PURE__ */ Object.defineProperty({
|
||
__proto__: null,
|
||
UniRadioGroupChangeEvent,
|
||
UniRadioGroupElement,
|
||
default: radioGroup
|
||
}, Symbol.toStringTag, { value: "Module" });
|
||
class UniNavigatorElement extends UniElementImpl {
|
||
constructor(data, pageNode) {
|
||
super(data, pageNode);
|
||
this.tagName = "NAVIGATOR";
|
||
this.nodeName = this.tagName;
|
||
this._getAttribute = (key) => {
|
||
return null;
|
||
};
|
||
}
|
||
getAnyAttribute(key) {
|
||
var value = this._getAttribute(key);
|
||
if (value != null) {
|
||
return value;
|
||
}
|
||
return super.getAnyAttribute(key);
|
||
}
|
||
}
|
||
var navigatorProps = {
|
||
url: {
|
||
type: String,
|
||
default: ""
|
||
},
|
||
openType: {
|
||
type: String,
|
||
default: "navigate"
|
||
},
|
||
delta: {
|
||
type: Number,
|
||
default: 1
|
||
},
|
||
animationType: {
|
||
type: String,
|
||
default: ""
|
||
},
|
||
animationDuration: {
|
||
type: Number,
|
||
default: 300
|
||
},
|
||
hoverClass: {
|
||
type: String,
|
||
default: "navigator-hover"
|
||
},
|
||
hoverStopPropagation: {
|
||
type: Boolean,
|
||
default: false
|
||
},
|
||
hoverStartTime: {
|
||
type: Number,
|
||
default: 50
|
||
},
|
||
hoverStayTime: {
|
||
type: Number,
|
||
default: 600
|
||
}
|
||
};
|
||
const navigator = /* @__PURE__ */ defineBuiltInComponent({
|
||
name: "Navigator",
|
||
rootElement: {
|
||
name: "uni-navigator-element",
|
||
// @ts-expect-error not web element
|
||
class: UniNavigatorElement
|
||
},
|
||
props: navigatorProps,
|
||
emits: ["click"],
|
||
setup(props, _ref) {
|
||
var {
|
||
emit,
|
||
slots
|
||
} = _ref;
|
||
var $uniNavigatorElement = ref();
|
||
var instance = getCurrentInstance();
|
||
onMounted(() => {
|
||
instance === null || instance === void 0 || instance.$waitNativeRender(() => {
|
||
if (!instance)
|
||
return;
|
||
$uniNavigatorElement.value._getAttribute = (key) => {
|
||
var _props$keyString$toSt, _props$keyString;
|
||
var keyString = camelize(key);
|
||
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;
|
||
};
|
||
});
|
||
});
|
||
var _onClick = ($event) => {
|
||
var url = props.url;
|
||
emit("click", $event);
|
||
var animationDuration = props.animationDuration;
|
||
switch (props.openType) {
|
||
case "navigate":
|
||
uni.navigateTo({
|
||
url,
|
||
animationType: props.animationType.length > 0 ? props.animationType : "pop-in",
|
||
animationDuration
|
||
});
|
||
break;
|
||
case "redirect":
|
||
uni.redirectTo({
|
||
url
|
||
});
|
||
break;
|
||
case "switchTab":
|
||
uni.switchTab({
|
||
url
|
||
});
|
||
break;
|
||
case "reLaunch":
|
||
uni.reLaunch({
|
||
url
|
||
});
|
||
break;
|
||
case "navigateBack":
|
||
uni.navigateBack({
|
||
delta: props.delta,
|
||
animationType: props.animationType.length > 0 ? props.animationType : "pop-out",
|
||
animationDuration
|
||
});
|
||
break;
|
||
default:
|
||
console.log("<navigator/> openType attribute invalid");
|
||
break;
|
||
}
|
||
};
|
||
return () => {
|
||
var _slots$default;
|
||
return createVNode("uni-navigator-element", {
|
||
"ref": $uniNavigatorElement,
|
||
"onClick": _onClick,
|
||
"hoverClass": props.hoverClass,
|
||
"hoverStopPropagation": props.hoverStopPropagation,
|
||
"hoverStartTime": props.hoverStartTime,
|
||
"hoverStayTime": props.hoverStayTime
|
||
}, [(_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)], 8, ["onClick", "hoverClass", "hoverStopPropagation", "hoverStartTime", "hoverStayTime"]);
|
||
};
|
||
}
|
||
});
|
||
const navigator$1 = /* @__PURE__ */ Object.defineProperty({
|
||
__proto__: null,
|
||
UniNavigatorElement,
|
||
default: navigator
|
||
}, Symbol.toStringTag, { value: "Module" });
|
||
var BACKGROUND_COLOR = "#EBEBEB";
|
||
var PRIMARY_COLOR = "#007AFF";
|
||
var ANIMATE_INTERVAL_DEFAULT = 30;
|
||
var FONT_SIZE = 16;
|
||
var STROKE_WIDTH = 6;
|
||
class UniProgressActiveendEventDetail {
|
||
constructor(value) {
|
||
this.curPercent = value;
|
||
}
|
||
}
|
||
class UniProgressActiveendEvent extends UniCustomEvent {
|
||
constructor(value) {
|
||
super("activeend", {
|
||
detail: new UniProgressActiveendEventDetail(value)
|
||
});
|
||
}
|
||
}
|
||
class UniProgressElement extends UniElementImpl {
|
||
constructor(data, pageNode) {
|
||
super(data, pageNode);
|
||
this.tagName = "PROGRESS";
|
||
this.nodeName = this.tagName;
|
||
this._getAttribute = (key) => {
|
||
return null;
|
||
};
|
||
}
|
||
getAnyAttribute(key) {
|
||
var value = this._getAttribute(key);
|
||
if (value != null) {
|
||
return value;
|
||
}
|
||
return super.getAnyAttribute(key);
|
||
}
|
||
}
|
||
var progressProps = {
|
||
percent: {
|
||
type: Number,
|
||
default: 0
|
||
},
|
||
showInfo: {
|
||
type: Boolean,
|
||
default: false
|
||
},
|
||
borderRadius: {
|
||
type: Number,
|
||
default: 0
|
||
},
|
||
fontSize: {
|
||
type: Number,
|
||
default: FONT_SIZE
|
||
},
|
||
strokeWidth: {
|
||
type: Number,
|
||
default: STROKE_WIDTH
|
||
},
|
||
active: {
|
||
type: Boolean,
|
||
default: false
|
||
},
|
||
activeColor: {
|
||
type: String,
|
||
default: PRIMARY_COLOR
|
||
},
|
||
activeMode: {
|
||
type: String,
|
||
default: "backwards"
|
||
},
|
||
backgroundColor: {
|
||
type: String,
|
||
default: BACKGROUND_COLOR
|
||
},
|
||
duration: {
|
||
type: Number,
|
||
default: ANIMATE_INTERVAL_DEFAULT
|
||
}
|
||
};
|
||
var _style = {
|
||
"uni-progress": {
|
||
"": {
|
||
flexDirection: "row",
|
||
alignItems: "center"
|
||
}
|
||
},
|
||
"uni-progress-bar": {
|
||
"": {
|
||
flex: "1",
|
||
overflow: "hidden"
|
||
}
|
||
},
|
||
"uni-progress-info": {
|
||
"": {
|
||
marginLeft: "15px"
|
||
}
|
||
}
|
||
};
|
||
const progress = /* @__PURE__ */ defineBuiltInComponent({
|
||
name: "Progress",
|
||
rootElement: {
|
||
name: "uni-progress-element",
|
||
// @ts-expect-error not web element
|
||
class: UniProgressElement
|
||
},
|
||
emit: ["activeend"],
|
||
props: progressProps,
|
||
setup(props, _ref) {
|
||
var {
|
||
emit
|
||
} = _ref;
|
||
var data = reactive({
|
||
$uniProgressElement: null,
|
||
curPercent: 0,
|
||
_timerId: 0,
|
||
_lastPercent: 0
|
||
});
|
||
var textStr = computed(() => {
|
||
return "".concat(data.curPercent, "%");
|
||
});
|
||
var instance = getCurrentInstance();
|
||
var styleUniProgress = computed(() => _style["uni-progress"][""]);
|
||
var styleUniProgressBar = computed(() => _style["uni-progress-bar"][""]);
|
||
var barStyle = computed(() => {
|
||
var style = {
|
||
height: "".concat(props.strokeWidth, "px"),
|
||
borderRadius: "".concat(props.borderRadius, "px"),
|
||
backgroundColor: props.backgroundColor
|
||
};
|
||
return Object.assign({}, styleUniProgressBar.value, style);
|
||
});
|
||
var innerBarStyle = computed(() => {
|
||
var style = {
|
||
width: "".concat(data.curPercent, "%"),
|
||
height: "".concat(props.strokeWidth, "px"),
|
||
backgroundColor: "".concat(props.activeColor)
|
||
};
|
||
return Object.assign({}, style);
|
||
});
|
||
var textStyle = computed(() => {
|
||
var fontSize = props.fontSize;
|
||
var style = {
|
||
fontSize: "".concat(fontSize, "px"),
|
||
minWidth: "".concat(fontSize * 2, "px")
|
||
};
|
||
return Object.assign({}, _style["uni-progress-info"][""], style);
|
||
});
|
||
var finalPercent = computed(() => {
|
||
var percent = props.percent;
|
||
if (percent > 100)
|
||
percent = 100;
|
||
if (percent < 0)
|
||
percent = 0;
|
||
return percent;
|
||
});
|
||
watch(() => finalPercent.value, (_, oldVal) => {
|
||
data._lastPercent = oldVal;
|
||
clearTimer();
|
||
_animate();
|
||
});
|
||
var _animate = () => {
|
||
var percent = finalPercent.value;
|
||
if (!props.active) {
|
||
data.curPercent = percent;
|
||
return;
|
||
}
|
||
data.curPercent = props.activeMode === "forwards" ? data._lastPercent : 0;
|
||
data._timerId = setInterval(() => {
|
||
if (percent <= data.curPercent + 1) {
|
||
clearTimer();
|
||
data.curPercent = percent;
|
||
emit("activeend", initUniCustomEvent(data.$uniProgressElement, new UniProgressActiveendEvent(percent)));
|
||
} else {
|
||
++data.curPercent;
|
||
}
|
||
}, props.duration);
|
||
};
|
||
var clearTimer = () => {
|
||
clearInterval(data._timerId);
|
||
};
|
||
onMounted(() => {
|
||
instance === null || instance === void 0 || instance.$waitNativeRender(() => {
|
||
var _instance$proxy;
|
||
if (!instance)
|
||
return;
|
||
data.$uniProgressElement = (_instance$proxy = instance.proxy) === null || _instance$proxy === void 0 ? void 0 : _instance$proxy.$el;
|
||
data.$uniProgressElement._getAttribute = (key) => {
|
||
var _props$keyString$toSt, _props$keyString;
|
||
var keyString = camelize(key);
|
||
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;
|
||
};
|
||
_animate();
|
||
});
|
||
});
|
||
onUnmounted(() => {
|
||
clearTimer();
|
||
});
|
||
return () => {
|
||
return createVNode("uni-progress-element", {
|
||
"class": "uni-progress",
|
||
"style": styleUniProgress.value
|
||
}, [createVNode("view", {
|
||
"class": "uni-progress-bar",
|
||
"style": barStyle.value
|
||
}, [createVNode("view", {
|
||
"class": "uni-progress-inner-bar",
|
||
"style": innerBarStyle.value
|
||
}, null, 4)], 4), props.showInfo ? createVNode("view", {
|
||
"class": "uni-progress-info",
|
||
"style": textStyle.value
|
||
}, [textStr.value], 4) : null], 4);
|
||
};
|
||
}
|
||
});
|
||
const progress$1 = /* @__PURE__ */ Object.defineProperty({
|
||
__proto__: null,
|
||
UniProgressActiveendEvent,
|
||
UniProgressElement,
|
||
default: progress
|
||
}, Symbol.toStringTag, { value: "Module" });
|
||
var _style_picker_view = {
|
||
"uni-picker-view": {
|
||
"": {
|
||
position: "relative"
|
||
}
|
||
},
|
||
"uni-picker-view-wrapper": {
|
||
"": {
|
||
display: "flex",
|
||
flexDirection: "row",
|
||
position: "absolute",
|
||
top: "0",
|
||
left: "0",
|
||
right: "0",
|
||
bottom: "0",
|
||
overflow: "hidden"
|
||
}
|
||
}
|
||
};
|
||
var _style_picker_column = {
|
||
"uni-picker-view-column": {
|
||
"": {
|
||
flex: "1",
|
||
position: "relative",
|
||
alignItems: "stretch",
|
||
overflow: "hidden"
|
||
}
|
||
},
|
||
"uni-picker-view-mask": {
|
||
"": {
|
||
position: "absolute",
|
||
top: "0",
|
||
left: "0",
|
||
right: "0",
|
||
bottom: "0",
|
||
pointerEvents: "none"
|
||
}
|
||
},
|
||
"uni-picker-view-mask-top": {
|
||
"": {
|
||
bottom: "0",
|
||
backgroundImage: "linear-gradient(to bottom,rgba(255, 255, 255, 0.95),rgba(255, 255, 255, 0.6))"
|
||
}
|
||
},
|
||
"uni-picker-view-mask-bottom": {
|
||
"": {
|
||
top: "0",
|
||
backgroundImage: "linear-gradient(to top,rgba(255, 255, 255, 0.95),rgba(255, 255, 255, 0.6))"
|
||
}
|
||
},
|
||
"uni-picker-view-group": {
|
||
"": {
|
||
flexDirection: "column",
|
||
position: "absolute",
|
||
top: "0",
|
||
left: "0",
|
||
right: "0",
|
||
bottom: "0"
|
||
}
|
||
},
|
||
"uni-picker-view-content": {
|
||
"": {
|
||
flexDirection: "column",
|
||
paddingTop: "0",
|
||
paddingRight: "0",
|
||
paddingBottom: "0",
|
||
paddingLeft: "0"
|
||
}
|
||
},
|
||
"uni-picker-view-indicator": {
|
||
"": {
|
||
position: "absolute",
|
||
left: "0",
|
||
right: "0",
|
||
top: "0",
|
||
height: "34px",
|
||
borderColor: "#e5e5e5",
|
||
borderTopWidth: "1px",
|
||
borderBottomWidth: "1px",
|
||
pointerEvents: "none"
|
||
}
|
||
}
|
||
};
|
||
class UniPickerViewColumnElement extends UniElementImpl {
|
||
constructor(data, pageNode) {
|
||
super(data, pageNode);
|
||
this.tagName = "PICKER-VIEW-COLUMN";
|
||
this.nodeName = this.tagName;
|
||
this._getAttribute = (key) => {
|
||
return null;
|
||
};
|
||
}
|
||
getAnyAttribute(key) {
|
||
var value = this._getAttribute(key);
|
||
if (value != null) {
|
||
return value;
|
||
}
|
||
return super.getAnyAttribute(key);
|
||
}
|
||
}
|
||
class UniPickerViewChangeEventDetail {
|
||
constructor(value) {
|
||
this.value = value;
|
||
}
|
||
}
|
||
class UniPickerViewChangeEvent extends UniCustomEvent {
|
||
constructor(value) {
|
||
super("change", {
|
||
detail: new UniPickerViewChangeEventDetail(value)
|
||
});
|
||
}
|
||
}
|
||
class UniPickerViewElement extends UniElementImpl {
|
||
constructor(data, pageNode) {
|
||
super(data, pageNode);
|
||
this.tagName = "PICKER-VIEW";
|
||
this.nodeName = this.tagName;
|
||
this._getAttribute = (key) => {
|
||
return null;
|
||
};
|
||
}
|
||
getAnyAttribute(key) {
|
||
var value = this._getAttribute(key);
|
||
if (value != null) {
|
||
return value;
|
||
}
|
||
return super.getAnyAttribute(key);
|
||
}
|
||
}
|
||
const pickerView = /* @__PURE__ */ defineBuiltInComponent({
|
||
name: "PickerView",
|
||
rootElement: {
|
||
name: "uni-picker-view-element",
|
||
// @ts-expect-error not web element
|
||
class: UniPickerViewElement
|
||
},
|
||
props: {
|
||
value: {
|
||
type: Array,
|
||
default: []
|
||
},
|
||
indicatorStyle: {
|
||
type: String,
|
||
default: ""
|
||
},
|
||
maskTopStyle: {
|
||
type: String,
|
||
default: ""
|
||
},
|
||
maskBottomStyle: {
|
||
type: String,
|
||
default: ""
|
||
}
|
||
},
|
||
emits: ["change"],
|
||
setup(props, _ref) {
|
||
var {
|
||
emit,
|
||
expose,
|
||
slots
|
||
} = _ref;
|
||
var data = reactive({
|
||
$uniPickerViewElement: null,
|
||
$items: [],
|
||
valueSync: []
|
||
});
|
||
watch(() => props.value, (val) => {
|
||
val.forEach((_val, index2) => {
|
||
if (data.$items.length > index2) {
|
||
var _data$$items$index$$$;
|
||
var fn = (_data$$items$index$$$ = data.$items[index2].$.exposed) === null || _data$$items$index$$$ === void 0 ? void 0 : _data$$items$index$$$.setCurrent;
|
||
fn(_val);
|
||
}
|
||
});
|
||
data.valueSync = [...val];
|
||
}, {
|
||
immediate: true
|
||
});
|
||
provide("pickerViewProps", props);
|
||
var pickerViewElementRef = ref();
|
||
var instance = getCurrentInstance();
|
||
var _pickerViewUpdateHandler = (vm, type) => {
|
||
if (type == "add") {
|
||
data.$items.push(vm);
|
||
if (data.$items.length > data.valueSync.length) {
|
||
data.valueSync.push(0);
|
||
}
|
||
} else {
|
||
var index2 = data.$items.indexOf(vm);
|
||
if (index2 != -1) {
|
||
data.$items.splice(index2, 1);
|
||
data.valueSync.splice(index2, 1);
|
||
}
|
||
}
|
||
};
|
||
var getItemValue = (vm) => {
|
||
var index2 = data.$items.indexOf(vm);
|
||
if (index2 != -1) {
|
||
if (props.value.length > index2) {
|
||
return props.value[index2];
|
||
}
|
||
}
|
||
return 0;
|
||
};
|
||
var setItemValue = (vm, val) => {
|
||
var index2 = data.$items.indexOf(vm);
|
||
if (index2 != -1) {
|
||
if (data.valueSync.length > index2) {
|
||
data.valueSync[index2] = val;
|
||
}
|
||
emit("change", initUniCustomEvent(pickerViewElementRef.value, new UniPickerViewChangeEvent([...data.valueSync])));
|
||
}
|
||
};
|
||
expose({
|
||
_pickerViewUpdateHandler,
|
||
getItemValue,
|
||
setItemValue
|
||
});
|
||
onMounted(() => {
|
||
instance === null || instance === void 0 || instance.$waitNativeRender(() => {
|
||
if (!instance || !pickerViewElementRef.value)
|
||
return;
|
||
pickerViewElementRef.value._getAttribute = (key) => {
|
||
var _props$keyString$toSt, _props$keyString;
|
||
var keyString = camelize(key);
|
||
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;
|
||
};
|
||
});
|
||
});
|
||
var styleUniPickerView = _style_picker_view["uni-picker-view"][""];
|
||
var styleUniPickerViewWrapper = _style_picker_view["uni-picker-view-wrapper"][""];
|
||
return () => {
|
||
var _slots$default;
|
||
return createVNode("uni-picker-view-element", {
|
||
"ref": pickerViewElementRef,
|
||
"class": "uni-picker-view",
|
||
"style": styleUniPickerView
|
||
}, [createVNode("view", {
|
||
"class": "uni-picker-view-wrapper",
|
||
"style": styleUniPickerViewWrapper
|
||
}, [(_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)], 4)], 4);
|
||
};
|
||
}
|
||
});
|
||
const pickerView$1 = /* @__PURE__ */ Object.defineProperty({
|
||
__proto__: null,
|
||
UniPickerViewChangeEvent,
|
||
UniPickerViewElement,
|
||
default: pickerView
|
||
}, Symbol.toStringTag, { value: "Module" });
|
||
const pickerViewColumn = /* @__PURE__ */ defineBuiltInComponent({
|
||
name: "PickerViewColumn",
|
||
rootElement: {
|
||
name: "uni-picker-view-column-element",
|
||
// @ts-expect-error
|
||
class: UniPickerViewColumnElement
|
||
},
|
||
setup(_props, _ref) {
|
||
var {
|
||
slots,
|
||
expose
|
||
} = _ref;
|
||
var instance = getCurrentInstance();
|
||
var pickerColumnRef = ref();
|
||
var indicator = ref();
|
||
var scrollViewRef = ref();
|
||
var contentRef = ref();
|
||
var pickerViewProps = inject("pickerViewProps");
|
||
var data = reactive({
|
||
height: 0,
|
||
indicatorHeight: 0,
|
||
current: 0,
|
||
scrollToElementTime: 0,
|
||
maskTopStyle: "",
|
||
maskBottomStyle: "",
|
||
indicatorStyle: "",
|
||
contentStyle: "",
|
||
_isMounted: false
|
||
});
|
||
var formatUserStyle = (styleStr) => {
|
||
var formatUserStyle2 = parseStringStyle(styleStr);
|
||
if (isString(formatUserStyle2["background-color"]) || isString(formatUserStyle2["background"])) {
|
||
formatUserStyle2 = Object.assign({}, formatUserStyle2, {
|
||
backgroundImage: "",
|
||
background: formatUserStyle2["background-color"] || formatUserStyle2["background"]
|
||
});
|
||
}
|
||
return formatUserStyle2;
|
||
};
|
||
var contentStyle = computed(() => {
|
||
return Object.assign({}, _style_picker_column["uni-picker-view-content"][""], parseStringStyle(data.contentStyle));
|
||
});
|
||
var maskTopStyle = computed(() => {
|
||
var userStyle = formatUserStyle(pickerViewProps.maskTopStyle);
|
||
var style = Object.assign({}, _style_picker_column["uni-picker-view-mask"][""], _style_picker_column["uni-picker-view-mask-top"][""], parseStringStyle(data.maskTopStyle), userStyle);
|
||
return style;
|
||
});
|
||
var maskBottomStyle = computed(() => {
|
||
var userStyle = formatUserStyle(pickerViewProps.maskBottomStyle);
|
||
return Object.assign({}, _style_picker_column["uni-picker-view-mask"][""], _style_picker_column["uni-picker-view-mask-bottom"][""], parseStringStyle(data.maskBottomStyle), userStyle);
|
||
});
|
||
var indicatorStyle = computed(() => {
|
||
var val = Object.assign({}, _style_picker_column["uni-picker-view-indicator"][""], parseStringStyle(pickerViewProps.indicatorStyle), parseStringStyle(data.indicatorStyle));
|
||
return val;
|
||
});
|
||
var styleUniPickerViewColumn = computed(() => {
|
||
return Object.assign({}, _style_picker_column["uni-picker-view-column"][""]);
|
||
});
|
||
var styleUniPickerViewGroup = computed(() => {
|
||
return Object.assign({}, _style_picker_column["uni-picker-view-group"][""]);
|
||
});
|
||
var styleViewMask = computed(() => {
|
||
return Object.assign({}, _style_picker_column["uni-picker-view-mask"][""]);
|
||
});
|
||
var init2 = () => {
|
||
data.height = pickerColumnRef.value.offsetHeight;
|
||
data.indicatorHeight = indicator.value.offsetHeight;
|
||
var padding = (data.height - data.indicatorHeight) / 2;
|
||
var maskPosition = "".concat(data.height - padding, "px");
|
||
data.maskTopStyle += ";bottom:".concat(maskPosition);
|
||
data.maskBottomStyle += ";top:".concat(maskPosition);
|
||
data.indicatorStyle = ";top:".concat(padding, "px");
|
||
data.contentStyle = "padding-top:".concat(padding, "px;padding-bottom:").concat(padding, "px");
|
||
nextTick(() => {
|
||
if (data.current != 0) {
|
||
setCurrent(data.current);
|
||
}
|
||
});
|
||
};
|
||
var onScrollend = (e) => {
|
||
if (Date.now() - data.scrollToElementTime < 200) {
|
||
return;
|
||
}
|
||
var y = e.detail.scrollTop;
|
||
var current = Math.round(y / data.indicatorHeight);
|
||
if (y % data.indicatorHeight != 0) {
|
||
setCurrent(current);
|
||
} else {
|
||
data.current = current;
|
||
}
|
||
};
|
||
var setCurrent = (current) => {
|
||
var scrollTop = current * data.indicatorHeight;
|
||
scrollViewRef.value.setAnyAttribute("scroll-top", scrollTop);
|
||
data.current = current;
|
||
data.scrollToElementTime = Date.now();
|
||
};
|
||
var uniResizeObserver = new UniResizeObserver((entries) => {
|
||
init2();
|
||
});
|
||
var created = () => {
|
||
var _instance$parent;
|
||
var $parent = (instance === null || instance === void 0 || (_instance$parent = instance.parent) === null || _instance$parent === void 0 ? void 0 : _instance$parent.type.name) === "PickerView" ? instance === null || instance === void 0 ? void 0 : instance.parent : null;
|
||
if ($parent !== null) {
|
||
$dispatchParent(instance === null || instance === void 0 ? void 0 : instance.proxy, "PickerView", "_pickerViewUpdateHandler", instance === null || instance === void 0 ? void 0 : instance.proxy, "add");
|
||
data.current = $dispatchParent(instance === null || instance === void 0 ? void 0 : instance.proxy, "PickerView", "getItemValue", instance === null || instance === void 0 ? void 0 : instance.proxy);
|
||
}
|
||
};
|
||
created();
|
||
expose({
|
||
setCurrent
|
||
});
|
||
onMounted(() => {
|
||
instance === null || instance === void 0 || instance.$waitNativeRender(() => {
|
||
if (!instance || !pickerColumnRef.value)
|
||
return;
|
||
init2();
|
||
setTimeout(() => {
|
||
data._isMounted = true;
|
||
}, 1e3);
|
||
uniResizeObserver.observe(pickerColumnRef.value);
|
||
});
|
||
});
|
||
onUnmounted(() => {
|
||
var ctx = instance === null || instance === void 0 ? void 0 : instance.proxy;
|
||
uniResizeObserver.disconnect();
|
||
$dispatch(ctx, "PickerView", "_pickerViewUpdateHandler", ctx, "remove");
|
||
});
|
||
watch(() => data.current, (val, oldVal) => {
|
||
if (data._isMounted && val != oldVal) {
|
||
var ctx = instance === null || instance === void 0 ? void 0 : instance.proxy;
|
||
$dispatch(ctx, "PickerView", "setItemValue", ctx, val);
|
||
}
|
||
});
|
||
return () => {
|
||
var _slots$default;
|
||
return createVNode("uni-picker-view-column-element", {
|
||
"class": "uni-picker-view-column",
|
||
"style": styleUniPickerViewColumn.value,
|
||
"ref": pickerColumnRef
|
||
}, [createVNode("scroll-view", {
|
||
"deceleration-rate": 0.3,
|
||
"onScrollend": onScrollend,
|
||
"class": "uni-picker-view-group",
|
||
"style": styleUniPickerViewGroup.value,
|
||
"scroll-with-animation": data._isMounted,
|
||
"direction": "vertical",
|
||
"show-scrollbar": false,
|
||
"ref": scrollViewRef
|
||
}, [createVNode("view", {
|
||
"class": "uni-picker-view-content",
|
||
"style": contentStyle.value,
|
||
"ref": contentRef
|
||
}, [(_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)], 4)], 44, ["onScrollend", "scroll-with-animation"]), createVNode("view", {
|
||
"userInteractionEnabled": false,
|
||
"class": "uni-picker-view-mask",
|
||
"style": styleViewMask.value
|
||
}, [createVNode("view", {
|
||
"class": "uni-picker-view-mask uni-picker-view-mask-top",
|
||
"style": maskTopStyle.value
|
||
}, null, 4), createVNode("view", {
|
||
"class": "uni-picker-view-mask uni-picker-view-mask-bottom",
|
||
"style": maskBottomStyle.value
|
||
}, null, 4)], 4), createVNode("view", {
|
||
"ref": indicator,
|
||
"userInteractionEnabled": false,
|
||
"class": "uni-picker-view-indicator",
|
||
"style": indicatorStyle.value
|
||
}, null, 4)], 4);
|
||
};
|
||
}
|
||
});
|
||
const pickerViewColumn$1 = /* @__PURE__ */ Object.defineProperty({
|
||
__proto__: null,
|
||
UniPickerViewColumnElement,
|
||
default: pickerViewColumn
|
||
}, Symbol.toStringTag, { value: "Module" });
|
||
const components = /* @__PURE__ */ Object.defineProperty({
|
||
__proto__: null,
|
||
Checkbox: checkbox$1,
|
||
CheckboxGroup: checkboxGroup$1,
|
||
Navigator: navigator$1,
|
||
PickerView: pickerView$1,
|
||
PickerViewColumn: pickerViewColumn$1,
|
||
Progress: progress$1,
|
||
Radio: radio$1,
|
||
RadioGroup: radioGroup$1
|
||
}, Symbol.toStringTag, { value: "Module" });
|
||
const index = {
|
||
uni: uni$1,
|
||
getApp: getApp$1,
|
||
getCurrentPages: getCurrentPages$1,
|
||
__definePage: definePage,
|
||
__registerApp: registerApp,
|
||
initApp,
|
||
components
|
||
};
|
||
export {
|
||
index as default
|
||
};
|