UNPKG

@tencentcloud/ai-desk-customer-wechat

Version:

AI Desk customer UIKit for wechat mini program

1,754 lines 1.78 MB
"use strict"; const _export_sfc = (sfc, props) => { const target = sfc.__vccOpts || sfc; for (const [key, val] of props) { target[key] = val; } return target; }; /** * @vue/shared v3.4.21 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/ function makeMap(str, expectsLowerCase) { const set2 = new Set(str.split(",")); return expectsLowerCase ? (val) => set2.has(val.toLowerCase()) : (val) => set2.has(val); } const EMPTY_OBJ = Object.freeze({}); const EMPTY_ARR = Object.freeze([]); const NOOP = () => { }; const NO = () => false; const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter (key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97); const isModelListener = (key) => key.startsWith("onUpdate:"); const extend = Object.assign; const remove = (arr, el) => { const i3 = arr.indexOf(el); if (i3 > -1) { arr.splice(i3, 1); } }; const hasOwnProperty$1 = Object.prototype.hasOwnProperty; const hasOwn = (val, key) => hasOwnProperty$1.call(val, key); const isArray = Array.isArray; const isMap = (val) => toTypeString(val) === "[object Map]"; const isSet = (val) => toTypeString(val) === "[object Set]"; const isFunction = (val) => typeof val === "function"; const isString = (val) => typeof val === "string"; const isSymbol = (val) => typeof val === "symbol"; const isObject = (val) => val !== null && typeof val === "object"; const isPromise = (val) => { return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch); }; const objectToString = Object.prototype.toString; const toTypeString = (value) => objectToString.call(value); const toRawType = (value) => { return toTypeString(value).slice(8, -1); }; const isPlainObject = (val) => toTypeString(val) === "[object Object]"; const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; const isReservedProp = /* @__PURE__ */ makeMap( // the leading comma is intentional so empty string "" is also included ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" ); const isBuiltInDirective = /* @__PURE__ */ makeMap( "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" ); const cacheStringFunction = (fn) => { const cache = /* @__PURE__ */ Object.create(null); return (str) => { const hit = cache[str]; return hit || (cache[str] = fn(str)); }; }; const camelizeRE = /-(\w)/g; const camelize = cacheStringFunction((str) => { return str.replace(camelizeRE, (_2, c2) => c2 ? c2.toUpperCase() : ""); }); const hyphenateRE = /\B([A-Z])/g; const hyphenate = cacheStringFunction( (str) => str.replace(hyphenateRE, "-$1").toLowerCase() ); const capitalize = cacheStringFunction((str) => { return str.charAt(0).toUpperCase() + str.slice(1); }); const toHandlerKey = cacheStringFunction((str) => { const s3 = str ? `on${capitalize(str)}` : ``; return s3; }); const hasChanged = (value, oldValue) => !Object.is(value, oldValue); const invokeArrayFns$1 = (fns, arg) => { for (let i3 = 0; i3 < fns.length; i3++) { fns[i3](arg); } }; const def = (obj, key, value) => { Object.defineProperty(obj, key, { configurable: true, enumerable: false, value }); }; const looseToNumber = (val) => { const n2 = parseFloat(val); return isNaN(n2) ? val : n2; }; const toNumber = (val) => { const n2 = isString(val) ? Number(val) : NaN; return isNaN(n2) ? val : n2; }; let _globalThis; const getGlobalThis = () => { return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); }; function normalizeStyle(value) { if (isArray(value)) { const res = {}; for (let i3 = 0; i3 < value.length; i3++) { const item = value[i3]; const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item); if (normalized) { for (const key in normalized) { res[key] = normalized[key]; } } } return res; } else if (isString(value) || isObject(value)) { return value; } } const listDelimiterRE = /;(?![^(]*\))/g; const propertyDelimiterRE = /:([^]+)/; const styleCommentRE = /\/\*[^]*?\*\//g; function parseStringStyle(cssText) { const ret = {}; cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { if (item) { const tmp = item.split(propertyDelimiterRE); tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); } }); return ret; } function normalizeClass(value) { let res = ""; if (isString(value)) { res = value; } else if (isArray(value)) { for (let i3 = 0; i3 < value.length; i3++) { const normalized = normalizeClass(value[i3]); if (normalized) { res += normalized + " "; } } } else if (isObject(value)) { for (const name in value) { if (value[name]) { res += name + " "; } } } return res.trim(); } function normalizeProps(props) { if (!props) return null; let { class: klass, style } = props; if (klass && !isString(klass)) { props.class = normalizeClass(klass); } if (style) { props.style = normalizeStyle(style); } return props; } const toDisplayString = (val) => { return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val); }; const replacer = (_key, val) => { if (val && val.__v_isRef) { return replacer(_key, val.value); } else if (isMap(val)) { return { [`Map(${val.size})`]: [...val.entries()].reduce( (entries, [key, val2], i3) => { entries[stringifySymbol(key, i3) + " =>"] = val2; return entries; }, {} ) }; } else if (isSet(val)) { return { [`Set(${val.size})`]: [...val.values()].map((v3) => stringifySymbol(v3)) }; } else if (isSymbol(val)) { return stringifySymbol(val); } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { return String(val); } return val; }; const stringifySymbol = (v3, i3 = "") => { var _a; return isSymbol(v3) ? `Symbol(${(_a = v3.description) != null ? _a : i3})` : v3; }; const SLOT_DEFAULT_NAME = "d"; const ON_SHOW = "onShow"; const ON_HIDE = "onHide"; const ON_LAUNCH = "onLaunch"; const ON_ERROR = "onError"; const ON_THEME_CHANGE = "onThemeChange"; const ON_PAGE_NOT_FOUND = "onPageNotFound"; const ON_UNHANDLE_REJECTION = "onUnhandledRejection"; const ON_EXIT = "onExit"; const ON_LOAD = "onLoad"; const ON_READY = "onReady"; const ON_UNLOAD = "onUnload"; const ON_INIT = "onInit"; const ON_SAVE_EXIT_STATE = "onSaveExitState"; const ON_RESIZE = "onResize"; const ON_BACK_PRESS = "onBackPress"; const ON_PAGE_SCROLL = "onPageScroll"; const ON_TAB_ITEM_TAP = "onTabItemTap"; const ON_REACH_BOTTOM = "onReachBottom"; const ON_PULL_DOWN_REFRESH = "onPullDownRefresh"; const ON_SHARE_TIMELINE = "onShareTimeline"; const ON_SHARE_CHAT = "onShareChat"; const ON_ADD_TO_FAVORITES = "onAddToFavorites"; const ON_SHARE_APP_MESSAGE = "onShareAppMessage"; const ON_NAVIGATION_BAR_BUTTON_TAP = "onNavigationBarButtonTap"; const ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED = "onNavigationBarSearchInputClicked"; const ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED = "onNavigationBarSearchInputChanged"; const ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED = "onNavigationBarSearchInputConfirmed"; const ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED = "onNavigationBarSearchInputFocusChanged"; function hasLeadingSlash(str) { return str.indexOf("/") === 0; } function addLeadingSlash(str) { return hasLeadingSlash(str) ? str : "/" + str; } const invokeArrayFns = (fns, arg) => { let ret; for (let i3 = 0; i3 < fns.length; i3++) { ret = fns[i3](arg); } return ret; }; function once(fn, ctx = null) { let res; return (...args) => { if (fn) { res = fn.apply(ctx, args); fn = null; } return res; }; } function getValueByDataPath(obj, path) { if (!isString(path)) { return; } path = path.replace(/\[(\d+)\]/g, ".$1"); const parts = path.split("."); let key = parts[0]; if (!obj) { obj = {}; } if (parts.length === 1) { return obj[key]; } return getValueByDataPath(obj[key], parts.slice(1).join(".")); } function sortObject(obj) { let sortObj = {}; if (isPlainObject(obj)) { Object.keys(obj).sort().forEach((key) => { const _key = key; sortObj[_key] = obj[_key]; }); } return !Object.keys(sortObj) ? obj : sortObj; } function dynamicSlotName(name) { return name === "default" ? SLOT_DEFAULT_NAME : name; } const customizeRE = /:/g; function customizeEvent(str) { return camelize(str.replace(customizeRE, "-")); } const encode = encodeURIComponent; function stringifyQuery(obj, encodeStr = encode) { const res = obj ? Object.keys(obj).map((key) => { let val = obj[key]; if (typeof val === void 0 || val === null) { val = ""; } else if (isPlainObject(val)) { val = JSON.stringify(val); } return encodeStr(key) + "=" + encodeStr(val); }).filter((x2) => x2.length > 0).join("&") : null; return res ? `?${res}` : ""; } const PAGE_HOOKS = [ ON_INIT, ON_LOAD, ON_SHOW, ON_HIDE, ON_UNLOAD, ON_BACK_PRESS, ON_PAGE_SCROLL, ON_TAB_ITEM_TAP, ON_REACH_BOTTOM, ON_PULL_DOWN_REFRESH, ON_SHARE_TIMELINE, ON_SHARE_APP_MESSAGE, ON_SHARE_CHAT, ON_ADD_TO_FAVORITES, ON_SAVE_EXIT_STATE, ON_NAVIGATION_BAR_BUTTON_TAP, ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED, ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED, ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED, ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED ]; function isRootHook(name) { return PAGE_HOOKS.indexOf(name) > -1; } const UniLifecycleHooks = [ ON_SHOW, ON_HIDE, ON_LAUNCH, ON_ERROR, ON_THEME_CHANGE, ON_PAGE_NOT_FOUND, ON_UNHANDLE_REJECTION, ON_EXIT, ON_INIT, ON_LOAD, ON_READY, ON_UNLOAD, ON_RESIZE, ON_BACK_PRESS, ON_PAGE_SCROLL, ON_TAB_ITEM_TAP, ON_REACH_BOTTOM, ON_PULL_DOWN_REFRESH, ON_SHARE_TIMELINE, ON_ADD_TO_FAVORITES, ON_SHARE_APP_MESSAGE, ON_SHARE_CHAT, ON_SAVE_EXIT_STATE, ON_NAVIGATION_BAR_BUTTON_TAP, ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED, ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED, ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED, ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED ]; const MINI_PROGRAM_PAGE_RUNTIME_HOOKS = /* @__PURE__ */ (() => { return { onPageScroll: 1, onShareAppMessage: 1 << 1, onShareTimeline: 1 << 2 }; })(); function isUniLifecycleHook(name, value, checkType = true) { if (checkType && !isFunction(value)) { return false; } if (UniLifecycleHooks.indexOf(name) > -1) { return true; } else if (name.indexOf("on") === 0) { return true; } return false; } let vueApp; const createVueAppHooks = []; function onCreateVueApp(hook) { if (vueApp) { return hook(vueApp); } createVueAppHooks.push(hook); } function invokeCreateVueAppHook(app) { vueApp = app; createVueAppHooks.forEach((hook) => hook(app)); } const invokeCreateErrorHandler = once((app, createErrorHandler2) => { if (isFunction(app._component.onError)) { return createErrorHandler2(app); } }); const E$3 = function() { }; E$3.prototype = { _id: 1, on: function(name, callback, ctx) { var e2 = this.e || (this.e = {}); (e2[name] || (e2[name] = [])).push({ fn: callback, ctx, _id: this._id }); return this._id++; }, once: function(name, callback, ctx) { var self2 = this; function listener() { self2.off(name, listener); callback.apply(ctx, arguments); } listener._ = callback; return this.on(name, listener, ctx); }, emit: function(name) { var data = [].slice.call(arguments, 1); var evtArr = ((this.e || (this.e = {}))[name] || []).slice(); var i3 = 0; var len = evtArr.length; for (i3; i3 < len; i3++) { evtArr[i3].fn.apply(evtArr[i3].ctx, data); } return this; }, off: function(name, event) { var e2 = this.e || (this.e = {}); var evts = e2[name]; var liveEvents = []; if (evts && event) { for (var i3 = evts.length - 1; i3 >= 0; i3--) { if (evts[i3].fn === event || evts[i3].fn._ === event || evts[i3]._id === event) { evts.splice(i3, 1); break; } } liveEvents = evts; } liveEvents.length ? e2[name] = liveEvents : delete e2[name]; return this; } }; var E$1$1 = E$3; const LOCALE_ZH_HANS = "zh-Hans"; const LOCALE_ZH_HANT = "zh-Hant"; const LOCALE_EN = "en"; const LOCALE_FR = "fr"; const LOCALE_ES = "es"; function include(str, parts) { return !!parts.find((part) => str.indexOf(part) !== -1); } function startsWith(str, parts) { return parts.find((part) => str.indexOf(part) === 0); } function normalizeLocale(locale, messages) { if (!locale) { return; } locale = locale.trim().replace(/_/g, "-"); if (messages && messages[locale]) { return locale; } locale = locale.toLowerCase(); if (locale === "chinese") { return LOCALE_ZH_HANS; } if (locale.indexOf("zh") === 0) { if (locale.indexOf("-hans") > -1) { return LOCALE_ZH_HANS; } if (locale.indexOf("-hant") > -1) { return LOCALE_ZH_HANT; } if (include(locale, ["-tw", "-hk", "-mo", "-cht"])) { return LOCALE_ZH_HANT; } return LOCALE_ZH_HANS; } let locales = [LOCALE_EN, LOCALE_FR, LOCALE_ES]; if (messages && Object.keys(messages).length > 0) { locales = Object.keys(messages); } const lang = startsWith(locale, locales); if (lang) { return lang; } } function getBaseSystemInfo() { return wx.getSystemInfoSync(); } function validateProtocolFail(name, msg) { console.warn(`${name}: ${msg}`); } function validateProtocol(name, data, protocol2, onFail) { if (!onFail) { onFail = validateProtocolFail; } for (const key in protocol2) { const errMsg = validateProp$1(key, data[key], protocol2[key], !hasOwn(data, key)); if (isString(errMsg)) { onFail(name, errMsg); } } } function validateProtocols(name, args, protocol2, onFail) { if (!protocol2) { return; } if (!isArray(protocol2)) { return validateProtocol(name, args[0] || /* @__PURE__ */ Object.create(null), protocol2, onFail); } const len = protocol2.length; const argsLen = args.length; for (let i3 = 0; i3 < len; i3++) { const opts = protocol2[i3]; const data = /* @__PURE__ */ Object.create(null); if (argsLen > i3) { data[opts.name] = args[i3]; } validateProtocol(name, data, { [opts.name]: opts }, onFail); } } function validateProp$1(name, value, prop, isAbsent) { if (!isPlainObject(prop)) { prop = { type: prop }; } const { type, required, validator } = prop; if (required && isAbsent) { return 'Missing required args: "' + name + '"'; } if (value == null && !required) { return; } if (type != null) { let isValid = false; const types = isArray(type) ? type : [type]; const expectedTypes = []; for (let i3 = 0; i3 < types.length && !isValid; i3++) { const { valid, expectedType } = assertType$1(value, types[i3]); expectedTypes.push(expectedType || ""); isValid = valid; } if (!isValid) { return getInvalidTypeMessage$1(name, value, expectedTypes); } } if (validator) { return validator(value); } } const isSimpleType$1 = /* @__PURE__ */ makeMap("String,Number,Boolean,Function,Symbol"); function assertType$1(value, type) { let valid; const expectedType = getType$1(type); if (isSimpleType$1(expectedType)) { const t2 = typeof value; valid = t2 === expectedType.toLowerCase(); if (!valid && t2 === "object") { valid = value instanceof type; } } else if (expectedType === "Object") { valid = isObject(value); } else if (expectedType === "Array") { valid = isArray(value); } else { { valid = value instanceof type; } } return { valid, expectedType }; } function getInvalidTypeMessage$1(name, value, expectedTypes) { let message = `Invalid args: type check failed for args "${name}". Expected ${expectedTypes.map(capitalize).join(", ")}`; const expectedType = expectedTypes[0]; const receivedType = toRawType(value); const expectedValue = styleValue$1(value, expectedType); const receivedValue = styleValue$1(value, receivedType); if (expectedTypes.length === 1 && isExplicable$1(expectedType) && !isBoolean$1(expectedType, receivedType)) { message += ` with value ${expectedValue}`; } message += `, got ${receivedType} `; if (isExplicable$1(receivedType)) { message += `with value ${receivedValue}.`; } return message; } function getType$1(ctor) { const match = ctor && ctor.toString().match(/^\s*function (\w+)/); return match ? match[1] : ""; } function styleValue$1(value, type) { if (type === "String") { return `"${value}"`; } else if (type === "Number") { return `${Number(value)}`; } else { return `${value}`; } } function isExplicable$1(type) { const explicitTypes = ["string", "number", "boolean"]; return explicitTypes.some((elem) => type.toLowerCase() === elem); } function isBoolean$1(...args) { return args.some((elem) => elem.toLowerCase() === "boolean"); } function tryCatch(fn) { return function() { try { return fn.apply(fn, arguments); } catch (e2) { console.error(e2); } }; } let invokeCallbackId = 1; const invokeCallbacks = {}; function addInvokeCallback(id, name, callback, keepAlive = false) { invokeCallbacks[id] = { name, keepAlive, callback }; return id; } function invokeCallback(id, res, extras) { if (typeof id === "number") { const opts = invokeCallbacks[id]; if (opts) { if (!opts.keepAlive) { delete invokeCallbacks[id]; } return opts.callback(res, extras); } } return res; } const API_SUCCESS = "success"; const API_FAIL = "fail"; const API_COMPLETE = "complete"; function getApiCallbacks(args) { const apiCallbacks = {}; for (const name in args) { const fn = args[name]; if (isFunction(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, args = {}, { beforeAll, beforeSuccess } = {}) { if (!isPlainObject(args)) { args = {}; } const { success, fail, complete } = getApiCallbacks(args); const hasSuccess = isFunction(success); const hasFail = isFunction(fail); const hasComplete = isFunction(complete); const callbackId = invokeCallbackId++; addInvokeCallback(callbackId, name, (res) => { res = res || {}; res.errMsg = normalizeErrMsg(res.errMsg, name); isFunction(beforeAll) && beforeAll(res); if (res.errMsg === name + ":ok") { isFunction(beforeSuccess) && beforeSuccess(res, args); hasSuccess && success(res); } else { hasFail && fail(res); } hasComplete && complete(res); }); return callbackId; } const HOOK_SUCCESS = "success"; const HOOK_FAIL = "fail"; const HOOK_COMPLETE = "complete"; const globalInterceptors = {}; const scopedInterceptors = {}; function wrapperHook(hook, params) { return function(data) { return hook(data, params) || data; }; } function queue$2(hooks, data, params) { let promise = false; for (let i3 = 0; i3 < hooks.length; i3++) { const hook = hooks[i3]; if (promise) { promise = Promise.resolve(wrapperHook(hook, params)); } else { const 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(interceptors2, options = {}) { [HOOK_SUCCESS, HOOK_FAIL, HOOK_COMPLETE].forEach((name) => { const hooks = interceptors2[name]; if (!isArray(hooks)) { return; } const oldCallback = options[name]; options[name] = function callbackInterceptor(res) { queue$2(hooks, res, options).then((res2) => { return isFunction(oldCallback) && oldCallback(res2) || res2; }); }; }); return options; } function wrapperReturnValue(method, returnValue) { const returnValueHooks = []; if (isArray(globalInterceptors.returnValue)) { returnValueHooks.push(...globalInterceptors.returnValue); } const interceptor = scopedInterceptors[method]; if (interceptor && isArray(interceptor.returnValue)) { returnValueHooks.push(...interceptor.returnValue); } returnValueHooks.forEach((hook) => { returnValue = hook(returnValue) || returnValue; }); return returnValue; } function getApiInterceptorHooks(method) { const interceptor = /* @__PURE__ */ Object.create(null); Object.keys(globalInterceptors).forEach((hook) => { if (hook !== "returnValue") { interceptor[hook] = globalInterceptors[hook].slice(); } }); const 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) { const interceptor = getApiInterceptorHooks(method); if (interceptor && Object.keys(interceptor).length) { if (isArray(interceptor.invoke)) { const res = queue$2(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(args[cb]))) { return true; } return false; } function handlePromise(promise) { return promise; } function promisify$1(name, fn) { return (args = {}, ...rest) => { if (hasCallback(args)) { return wrapperReturnValue(name, invokeApi(name, fn, args, rest)); } return wrapperReturnValue(name, handlePromise(new Promise((resolve2, reject) => { invokeApi(name, fn, extend(args, { success: resolve2, fail: reject }), rest); }))); }; } function formatApiArgs(args, options) { args[0]; { return; } } function invokeSuccess(id, name, res) { const result = { errMsg: name + ":ok" }; return invokeCallback(id, extend(res || {}, result)); } function invokeFail(id, name, errMsg, errRes = {}) { const errMsgPrefix = name + ":fail"; let apiErrMsg = ""; if (!errMsg) { apiErrMsg = errMsgPrefix; } else if (errMsg.indexOf(errMsgPrefix) === 0) { apiErrMsg = errMsg; } else { apiErrMsg = errMsgPrefix + " " + errMsg; } { delete errRes.errCode; } let res = extend({ errMsg: apiErrMsg }, errRes); return invokeCallback(id, res); } function beforeInvokeApi(name, args, protocol2, options) { { validateProtocols(name, args, protocol2); } const errMsg = formatApiArgs(args); if (errMsg) { return errMsg; } } function parseErrMsg(errMsg) { if (!errMsg || isString(errMsg)) { return errMsg; } if (errMsg.stack) { if (typeof globalThis === "undefined" || !globalThis.harmonyChannel) { console.error(errMsg.message + "\n" + errMsg.stack); } return errMsg.message; } return errMsg; } function wrapperTaskApi(name, fn, protocol2, options) { return (args) => { const id = createAsyncApiCallback(name, args, options); const errMsg = beforeInvokeApi(name, [args], protocol2); if (errMsg) { return invokeFail(id, name, errMsg); } return fn(args, { resolve: (res) => invokeSuccess(id, name, res), reject: (errMsg2, errRes) => invokeFail(id, name, parseErrMsg(errMsg2), errRes) }); }; } function wrapperSyncApi(name, fn, protocol2, options) { return (...args) => { const errMsg = beforeInvokeApi(name, args, protocol2); if (errMsg) { throw new Error(errMsg); } return fn.apply(null, args); }; } function wrapperAsyncApi(name, fn, protocol2, options) { return wrapperTaskApi(name, fn, protocol2, options); } function defineSyncApi(name, fn, protocol2, options) { return wrapperSyncApi(name, fn, protocol2); } function defineAsyncApi(name, fn, protocol2, options) { return promisify$1(name, wrapperAsyncApi(name, fn, protocol2, options)); } const API_UPX2PX = "upx2px"; const Upx2pxProtocol = [ { name: "upx", type: [Number, String], required: true } ]; const EPS = 1e-4; const BASE_DEVICE_WIDTH = 750; let isIOS = false; let deviceWidth = 0; let deviceDPR = 0; function checkDeviceWidth() { const { platform, pixelRatio, windowWidth } = getBaseSystemInfo(); deviceWidth = windowWidth; deviceDPR = pixelRatio; isIOS = platform === "ios"; } const upx2px = defineSyncApi(API_UPX2PX, (number, newDeviceWidth) => { if (deviceWidth === 0) { checkDeviceWidth(); } number = Number(number); if (number === 0) { return 0; } let width = newDeviceWidth || deviceWidth; let result = number / BASE_DEVICE_WIDTH * width; if (result < 0) { result = -result; } result = Math.floor(result + EPS); if (result === 0) { if (deviceDPR === 1 || !isIOS) { result = 1; } else { result = 0.5; } } return number < 0 ? -result : result; }, Upx2pxProtocol); const API_ADD_INTERCEPTOR = "addInterceptor"; const API_REMOVE_INTERCEPTOR = "removeInterceptor"; const AddInterceptorProtocol = [ { name: "method", type: [String, Object], required: true } ]; const RemoveInterceptorProtocol = AddInterceptorProtocol; function mergeInterceptorHook(interceptors2, interceptor) { Object.keys(interceptor).forEach((hook) => { if (isFunction(interceptor[hook])) { interceptors2[hook] = mergeHook(interceptors2[hook], interceptor[hook]); } }); } function removeInterceptorHook(interceptors2, interceptor) { if (!interceptors2 || !interceptor) { return; } Object.keys(interceptor).forEach((name) => { const hooks = interceptors2[name]; const hook = interceptor[name]; if (isArray(hooks) && isFunction(hook)) { remove(hooks, hook); } }); } function mergeHook(parentVal, childVal) { const res = childVal ? parentVal ? parentVal.concat(childVal) : isArray(childVal) ? childVal : [childVal] : parentVal; return res ? dedupeHooks(res) : res; } function dedupeHooks(hooks) { const res = []; for (let i3 = 0; i3 < hooks.length; i3++) { if (res.indexOf(hooks[i3]) === -1) { res.push(hooks[i3]); } } return res; } const addInterceptor = defineSyncApi(API_ADD_INTERCEPTOR, (method, interceptor) => { if (isString(method) && isPlainObject(interceptor)) { mergeInterceptorHook(scopedInterceptors[method] || (scopedInterceptors[method] = {}), interceptor); } else if (isPlainObject(method)) { mergeInterceptorHook(globalInterceptors, method); } }, AddInterceptorProtocol); const removeInterceptor = 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); } }, RemoveInterceptorProtocol); const interceptors = {}; const API_ON = "$on"; const OnProtocol = [ { name: "event", type: String, required: true }, { name: "callback", type: Function, required: true } ]; const API_ONCE = "$once"; const OnceProtocol = OnProtocol; const API_OFF = "$off"; const OffProtocol = [ { name: "event", type: [String, Array] }, { name: "callback", type: [Function, Number] } ]; const API_EMIT = "$emit"; const EmitProtocol = [ { name: "event", type: String, required: true } ]; class EventBus { constructor() { this.$emitter = new E$1$1(); } 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, ...args) { this.$emitter.emit(name, ...args); } } const eventBus = new EventBus(); const $on = defineSyncApi(API_ON, (name, callback) => { eventBus.on(name, callback); return () => eventBus.off(name, callback); }, OnProtocol); const $once = defineSyncApi(API_ONCE, (name, callback) => { eventBus.once(name, callback); return () => eventBus.off(name, callback); }, OnceProtocol); const $off = defineSyncApi(API_OFF, (name, callback) => { if (!isArray(name)) name = name ? [name] : []; name.forEach((n2) => eventBus.off(n2, callback)); }, OffProtocol); const $emit = defineSyncApi(API_EMIT, (name, ...args) => { eventBus.emit(name, ...args); }, EmitProtocol); let cid; let cidErrMsg; let enabled; function normalizePushMessage(message) { try { return JSON.parse(message); } catch (e2) { } return message; } function invokePushCallback(args) { if (args.type === "enabled") { enabled = true; } else if (args.type === "clientId") { cid = args.cid; cidErrMsg = args.errMsg; invokeGetPushCidCallbacks(cid, args.errMsg); } else if (args.type === "pushMsg") { const message = { type: "receive", data: normalizePushMessage(args.message) }; for (let i3 = 0; i3 < onPushMessageCallbacks.length; i3++) { const callback = onPushMessageCallbacks[i3]; callback(message); if (message.stopped) { break; } } } else if (args.type === "click") { onPushMessageCallbacks.forEach((callback) => { callback({ type: "click", data: normalizePushMessage(args.message) }); }); } } const getPushCidCallbacks = []; function invokeGetPushCidCallbacks(cid2, errMsg) { getPushCidCallbacks.forEach((callback) => { callback(cid2, errMsg); }); getPushCidCallbacks.length = 0; } const API_GET_PUSH_CLIENT_ID = "getPushClientId"; const getPushClientId = defineAsyncApi(API_GET_PUSH_CLIENT_ID, (_2, { resolve: resolve2, reject }) => { Promise.resolve().then(() => { if (typeof enabled === "undefined") { enabled = false; cid = ""; cidErrMsg = "uniPush is not enabled"; } getPushCidCallbacks.push((cid2, errMsg) => { if (cid2) { resolve2({ cid: cid2 }); } else { reject(errMsg); } }); if (typeof cid !== "undefined") { invokeGetPushCidCallbacks(cid, cidErrMsg); } }); }); const onPushMessageCallbacks = []; const onPushMessage = (fn) => { if (onPushMessageCallbacks.indexOf(fn) === -1) { onPushMessageCallbacks.push(fn); } }; const offPushMessage = (fn) => { if (!fn) { onPushMessageCallbacks.length = 0; } else { const index2 = onPushMessageCallbacks.indexOf(fn); if (index2 > -1) { onPushMessageCallbacks.splice(index2, 1); } } }; const SYNC_API_RE = /^\$|getLocale|setLocale|sendNativeEvent|restoreGlobal|requireGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64|getDeviceInfo|getAppBaseInfo|getWindowInfo|getSystemSetting|getAppAuthorizeSetting/; const CONTEXT_API_RE = /^create|Manager$/; const CONTEXT_API_RE_EXC = ["createBLEConnection"]; const ASYNC_API = ["createBLEConnection"]; const CALLBACK_API_RE = /^on|^off/; function isContextApi(name) { return CONTEXT_API_RE.test(name) && CONTEXT_API_RE_EXC.indexOf(name) === -1; } function isSyncApi(name) { return SYNC_API_RE.test(name) && ASYNC_API.indexOf(name) === -1; } function isCallbackApi(name) { return CALLBACK_API_RE.test(name) && name !== "onPush"; } function shouldPromise(name) { if (isContextApi(name) || isSyncApi(name) || isCallbackApi(name)) { return false; } return true; } if (!Promise.prototype.finally) { Promise.prototype.finally = function(onfinally) { const promise = this.constructor; return this.then((value) => promise.resolve(onfinally && onfinally()).then(() => value), (reason) => promise.resolve(onfinally && onfinally()).then(() => { throw reason; })); }; } function promisify(name, api) { if (!shouldPromise(name)) { return api; } if (!isFunction(api)) { return api; } return function promiseApi(options = {}, ...rest) { if (isFunction(options.success) || isFunction(options.fail) || isFunction(options.complete)) { return wrapperReturnValue(name, invokeApi(name, api, options, rest)); } return wrapperReturnValue(name, handlePromise(new Promise((resolve2, reject) => { invokeApi(name, api, extend({}, options, { success: resolve2, fail: reject }), rest); }))); }; } const CALLBACKS = ["success", "fail", "cancel", "complete"]; function initWrapper(protocols2) { function processCallback(methodName, method, returnValue) { return function(res) { return method(processReturnValue(methodName, res, returnValue)); }; } function processArgs(methodName, fromArgs, argsOption = {}, returnValue = {}, keepFromArgs = false) { if (isPlainObject(fromArgs)) { const toArgs = keepFromArgs === true ? fromArgs : {}; if (isFunction(argsOption)) { argsOption = argsOption(fromArgs, toArgs) || {}; } for (const key in fromArgs) { if (hasOwn(argsOption, key)) { let keyOption = argsOption[key]; if (isFunction(keyOption)) { keyOption = keyOption(fromArgs[key], fromArgs, toArgs); } if (!keyOption) { console.warn(`微信小程序 ${methodName} 暂不支持 ${key}`); } else if (isString(keyOption)) { toArgs[keyOption] = fromArgs[key]; } else if (isPlainObject(keyOption)) { toArgs[keyOption.name ? keyOption.name : key] = keyOption.value; } } else if (CALLBACKS.indexOf(key) !== -1) { const callback = fromArgs[key]; if (isFunction(callback)) { toArgs[key] = processCallback(methodName, callback, returnValue); } } else { if (!keepFromArgs && !hasOwn(toArgs, key)) { toArgs[key] = fromArgs[key]; } } } return toArgs; } else if (isFunction(fromArgs)) { fromArgs = processCallback(methodName, fromArgs, returnValue); } return fromArgs; } function processReturnValue(methodName, res, returnValue, keepReturnValue = false) { if (isFunction(protocols2.returnValue)) { res = protocols2.returnValue(methodName, res); } return processArgs(methodName, res, returnValue, {}, keepReturnValue); } return function wrapper(methodName, method) { if (!hasOwn(protocols2, methodName)) { return method; } const protocol2 = protocols2[methodName]; if (!protocol2) { return function() { console.error(`微信小程序 暂不支持${methodName}`); }; } return function(arg1, arg2) { let options = protocol2; if (isFunction(protocol2)) { options = protocol2(arg1); } arg1 = processArgs(methodName, arg1, options.args, options.returnValue); const args = [arg1]; if (typeof arg2 !== "undefined") { args.push(arg2); } const returnValue = wx[options.name || methodName].apply(wx, args); if (isSyncApi(methodName)) { return processReturnValue(methodName, returnValue, options.returnValue, isContextApi(methodName)); } return returnValue; }; }; } const getLocale = () => { const app = isFunction(getApp) && getApp({ allowDefault: true }); if (app && app.$vm) { return app.$vm.$locale; } return normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN; }; const setLocale = (locale) => { const app = isFunction(getApp) && getApp(); if (!app) { return false; } const oldLocale = app.$vm.$locale; if (oldLocale !== locale) { app.$vm.$locale = locale; onLocaleChangeCallbacks.forEach((fn) => fn({ locale })); return true; } return false; }; const onLocaleChangeCallbacks = []; const onLocaleChange = (fn) => { if (onLocaleChangeCallbacks.indexOf(fn) === -1) { onLocaleChangeCallbacks.push(fn); } }; if (typeof global !== "undefined") { global.getLocale = getLocale; } const UUID_KEY = "__DC_STAT_UUID"; let deviceId; function useDeviceId(global2 = wx) { return function addDeviceId(_2, toRes) { deviceId = deviceId || global2.getStorageSync(UUID_KEY); if (!deviceId) { deviceId = Date.now() + "" + Math.floor(Math.random() * 1e7); wx.setStorage({ key: UUID_KEY, data: deviceId }); } toRes.deviceId = deviceId; }; } function addSafeAreaInsets(fromRes, toRes) { if (fromRes.safeArea) { const safeArea = fromRes.safeArea; toRes.safeAreaInsets = { top: safeArea.top, left: safeArea.left, right: fromRes.windowWidth - safeArea.right, bottom: fromRes.screenHeight - safeArea.bottom }; } } function getOSInfo(system, platform) { let osName = ""; let osVersion = ""; if (platform && false) { osName = platform; osVersion = system; } else { osName = system.split(" ")[0] || ""; osVersion = system.split(" ")[1] || ""; } return { osName: osName.toLocaleLowerCase(), osVersion }; } function populateParameters(fromRes, toRes) { const { brand = "", model = "", system = "", language = "", theme, version: version2, platform, fontSizeSetting, SDKVersion, pixelRatio, deviceOrientation } = fromRes; const { osName, osVersion } = getOSInfo(system, platform); let hostVersion = version2; let deviceType = getGetDeviceType(fromRes, model); let deviceBrand = getDeviceBrand(brand); let _hostName = getHostName(fromRes); let _deviceOrientation = deviceOrientation; let _devicePixelRatio = pixelRatio; let _SDKVersion = SDKVersion; const hostLanguage = language.replace(/_/g, "-"); const parameters = { appId: "__UNI__0440FA8", appName: "ai-desk-customer-wechat", appVersion: "1.0.0", appVersionCode: "100", appLanguage: getAppLanguage(hostLanguage), uniCompileVersion: "4.36", uniCompilerVersion: "4.36", uniRuntimeVersion: "4.36", uniPlatform: "mp-weixin", deviceBrand, deviceModel: model, deviceType, devicePixelRatio: _devicePixelRatio, deviceOrientation: _deviceOrientation, osName, osVersion, hostTheme: theme, hostVersion, hostLanguage, hostName: _hostName, hostSDKVersion: _SDKVersion, hostFontSizeSetting: fontSizeSetting, windowTop: 0, windowBottom: 0, // TODO osLanguage: void 0, osTheme: void 0, ua: void 0, hostPackageName: void 0, browserName: void 0, browserVersion: void 0, isUniAppX: false }; extend(toRes, parameters); } function getGetDeviceType(fromRes, model) { let deviceType = fromRes.deviceType || "phone"; { const deviceTypeMaps = { ipad: "pad", windows: "pc", mac: "pc" }; const deviceTypeMapsKeys = Object.keys(deviceTypeMaps); const _model = model.toLocaleLowerCase(); for (let index2 = 0; index2 < deviceTypeMapsKeys.length; index2++) { const _m = deviceTypeMapsKeys[index2]; if (_model.indexOf(_m) !== -1) { deviceType = deviceTypeMaps[_m]; break; } } } return deviceType; } function getDeviceBrand(brand) { let deviceBrand = brand; if (deviceBrand) { deviceBrand = deviceBrand.toLocaleLowerCase(); } return deviceBrand; } function getAppLanguage(defaultLanguage) { return getLocale ? getLocale() : defaultLanguage; } function getHostName(fromRes) { const _platform = "WeChat"; let _hostName = fromRes.hostName || _platform; { if (fromRes.environment) { _hostName = fromRes.environment; } else if (fromRes.host && fromRes.host.env) { _hostName = fromRes.host.env; } } return _hostName; } const getSystemInfo = { returnValue: (fromRes, toRes) => { addSafeAreaInsets(fromRes, toRes); useDeviceId()(fromRes, toRes); populateParameters(fromRes, toRes); } }; const getSystemInfoSync = getSystemInfo; const redirectTo = {}; const previewImage = { args(fromArgs, toArgs) { let currentIndex = parseInt(fromArgs.current); if (isNaN(currentIndex)) { return; } const urls = fromArgs.urls; if (!isArray(urls)) { return; } const len = urls.length; if (!len) { return; } if (currentIndex < 0) { currentIndex = 0; } else if (currentIndex >= len) { currentIndex = len - 1; } if (currentIndex > 0) { toArgs.current = urls[currentIndex]; toArgs.urls = urls.filter((item, index2) => index2 < currentIndex ? item !== urls[currentIndex] : true); } else { toArgs.current = urls[0]; } return { indicator: false, loop: false }; } }; const showActionSheet = { args(fromArgs, toArgs) { toArgs.alertText = fromArgs.title; } }; const getDeviceInfo = { returnValue: (fromRes, toRes) => { const { brand, model, system = "", platform = "" } = fromRes; let deviceType = getGetDeviceType(fromRes, model); let deviceBrand = getDeviceBrand(brand); useDeviceId()(fromRes, toRes); const { osName, osVersion } = getOSInfo(system, platform); toRes = sortObject(extend(toRes, { deviceType, deviceBrand, deviceModel: model, osName, osVersion })); } }; const getAppBaseInfo = { returnValue: (fromRes, toRes) => { const { version: version2, language, SDKVersion, theme } = fromRes; let _hostName = getHostName(fromRes); let hostLanguage = language.replace(/_/g, "-"); toRes = sortObject(extend(toRes, { hostVersion: version2, hostLanguage, hostName: _hostName, hostSDKVersion: SDKVersion, hostTheme: theme, appId: "__UNI__0440FA8", appName: "ai-desk-customer-wechat", appVersion: "1.0.0", appVersionCode: "100", appLanguage: getAppLanguage(hostLanguage), isUniAppX: false, uniPlatform: "mp-weixin", uniCompileVersion: "4.36", uniCompilerVersion: "4.36", uniRuntimeVersion: "4.36" })); } }; const getWindowInfo = { returnValue: (fromRes, toRes) => { addSafeAreaInsets(fromRes, toRes); toRes = sortObject(extend(toRes, { windowTop: 0, windowBottom: 0 })); } }; const getAppAuthorizeSetting = { returnValue: function(fromRes, toRes) { const { locationReducedAccuracy } = fromRes; toRes.locationAccuracy = "unsupported"; if (locationReducedAccuracy === true) { toRes.locationAccuracy = "reduced"; } else if (locationReducedAccuracy === false) { toRes.locationAccuracy = "full"; } } }; const baseApis = { $on, $off, $once, $emit, upx2px, interceptors, addInterceptor, removeInterceptor, onCreateVueApp, invokeCreateVueAppHook, getLocale, setLocale, onLocaleChange, getPushClientId, onPushMessage, offPushMessage, invokePushCallback }; function initUni(api, protocols2, platform = wx) { const wrapper = initWrapper(protocols2); const UniProxyHandlers = { get(target, key) { if (hasOwn(target, key)) { return target[key]; } if (hasOwn(api, key)) { return promisify(key, api[key]); } if (hasOwn(baseApis, key)) { return promisify(key, baseApis[key]); } return promisify(key, wrapper(key, platform[key])); } }; return new Proxy({}, UniProxyHandlers); } function initGetProvider(providers) { return function getProvider2({ service, success, fail, complete }) { let res; if (providers[service]) { res = { errMsg: "getProvider:ok", service, provider: providers[service] }; isFunction(success) && success(res); } else { res = { errMsg: "getProvider:fail:服务[" + service + "]不存在" }; isFunction(fail) && fail(res); } isFunction(complete) && complete(res); }; } const objectKeys = [ "qy", "env", "error", "version", "lanDebug", "cloud", "serviceMarket", "router", "worklet", "__webpack_require_UNI_MP_PLUGIN__" ]; const singlePageDisableKey = ["lanDebug", "router", "worklet"]; const launchOption = wx.getLaunchOptionsSync ? wx.getLaunchOptionsSync() : null; function isWxKey(key) { if (launchOption && launchOption.scene === 1154 && singlePageDisableKey.includes(key)) { return false; } return objectKeys.indexOf(key) > -1 || typeof wx[key] === "function"; } function initWx() { const newWx = {}; for (const key in wx) { if (isWxKey(key)) { newWx[key] = wx[key]; } } if (typeof globalThis !== "undefined" && typeof requireMiniProgram === "undefined") { globalThis.wx = newWx; } return newWx; } const mocks$1 = ["__route__", "__wxExparserNodeId__", "__wxWebviewId__"]; const getProvider = initGetProvider({ oauth: ["weixin"], share: ["weixin"], payment: ["wxpay"], push: ["weixin"] }); function initComponentMocks(component) { const res = /* @__PURE__ */ Object.create(null); mocks$1.forEach((name) => { res[name] = component[name]; }); return res; } function createSelectorQuery() { const query = wx$2.createSelectorQuery(); const oldIn = query.in; query.in = function newIn(component) { return oldIn.call(this, initComponentMocks(component)); }; return query; } const wx$2 = initWx(); let baseInfo = wx$2.getAppBaseInfo && wx$2.getAppBaseInfo(); if (!baseInfo) { baseInfo = wx$2.getSystemInfoSync(); } const host = baseInfo ? baseInfo.host : null; const shareVideoMessage = host && host.env === "SAAASDK" ? wx$2.miniapp.shareVideoMessage : wx$2.shareVideoMessage; var shims = /* @__PURE__ */ Object.freeze({ __proto__: null, createSelectorQuery, getProvider, shareVideoMessage }); const compressImage = { args(fromArgs, toArgs) { if (fromArgs.compressedHeight && !toArgs.compressHeight) { toArgs.compressHeight = fromArgs.compressedHeight; } if (fromArgs.compressedWidth && !toArgs.compressWidth) { toArgs.compressWidth = fromArgs.compressedWidth; } } }; var protocols = /* @__PURE__ */ Object.freeze({ __proto__: null, compressImage, getAppAuthorizeSetting, getAppBaseInfo, getDeviceInfo, getSystemInfo, getSystemInfoSync, getWindowInfo, previewImage, redirectTo, showActionSheet }); const wx$1 = initWx(); var index = initUni(shims, protocols, wx$1); new Set( /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol) ); function toRaw$1(observed) { const raw = observed && observed["__v_raw"]; return raw ? toRaw$1(raw) : observed; } function isRef$1(r22) { return !!(r22 && r22.__v_isRef === true); } /** * @vue/runtime-core v3.4.21 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/ const stack$1 = []; function pushWarningContext$1(vnode) { stack$1.push(vnode); } function popWarningContext$1() { stack$1.pop(); } function warn$1$1(msg, ...args) { const instance = stack$1.length ? stack$1[stack$1.length - 1].component : null; const appWarnHandler = instance && instance.appContext.config.warnHandler; const trace = getComponentTrace$1(); if (appWarnHandler) { callWithErrorHandling$1( appWarnHandler, instance, 11, [ msg + args.map((a2) => { var _a, _b; return (_b = (_a = a2.toString) == null ? void 0 : _a.call(a2)) != null ? _b : JSON.stringify(a2); }).join(""), instance && instance.proxy, trace.map( ({ vnode }) => `at <${formatComponentName$1(instance, vnode.type)}>` ).join("\n"), trace ] ); } else { const warnArgs = [`[Vue warn]: ${msg}`, ...args]; if (trace.length && // avoid spamming console during tests true) { warnArgs.push(` `, ...formatTrace$1(trace)); } console.warn(...warnArgs); } } function getComponentTrace$1() { let currentVNode = stack$1[stack$1.length - 1]; if (!currentVNode) { return []; } const normalizedStack = []; while (currentVNode) { const last = normalizedStack[0]; if (last && last.vnode === currentVNode) { last.recurseCount++; } else { normalizedStack.push({ vnode: currentVNode, recurseCount: 0 }); } const parentInstance = currentVNode.component && currentVNode.component.parent; currentVNode = parentInstance && parentInstance.vnode; } return normalizedStack; } function formatTrace$1(trace) { const logs = []; trace.forEach((entry, i3) => { logs.push(...i3 === 0 ? [] : [` `], ...formatTraceEntry$1(entry)); }); return logs; } function formatTraceEntry$1({ vnode, recurseCount }) { const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; const isRoot = vnode.component ? vnode.component.parent == null : false; const open = ` at <${formatComponentName$1( vnode.component, vnode.type, isRoot