if (typeof Promise !== "undefined" && !Promise.prototype.finally) { Promise.prototype.finally = function(callback) { const promise = this.constructor; return this.then( (value) => promise.resolve(callback()).then(() => value), (reason) => promise.resolve(callback()).then(() => { throw reason; }) ); }; } ; if (typeof uni !== "undefined" && uni && uni.requireGlobal) { const global2 = uni.requireGlobal(); ArrayBuffer = global2.ArrayBuffer; Int8Array = global2.Int8Array; Uint8Array = global2.Uint8Array; Uint8ClampedArray = global2.Uint8ClampedArray; Int16Array = global2.Int16Array; Uint16Array = global2.Uint16Array; Int32Array = global2.Int32Array; Uint32Array = global2.Uint32Array; Float32Array = global2.Float32Array; Float64Array = global2.Float64Array; BigInt64Array = global2.BigInt64Array; BigUint64Array = global2.BigUint64Array; } ; if (uni.restoreGlobal) { uni.restoreGlobal(Vue, weex, plus, setTimeout, clearTimeout, setInterval, clearInterval); } (function(vue) { "use strict"; function getTarget() { if (typeof window !== "undefined") { return window; } if (typeof globalThis !== "undefined") { return globalThis; } if (typeof global !== "undefined") { return global; } if (typeof my !== "undefined") { return my; } } class Socket { constructor(host) { this.sid = ""; this.ackTimeout = 5e3; this.closed = false; this._ackTimer = 0; this._onCallbacks = {}; this.host = host; setTimeout(() => { this.connect(); }, 50); } connect() { this._socket = uni.connectSocket({ url: `ws://${this.host}/socket.io/?EIO=4&transport=websocket`, multiple: true, complete(res) { } }); this._socket.onOpen((res) => { }); this._socket.onMessage(({ data }) => { if (typeof my !== "undefined") { data = data.data; } if (typeof data !== "string") { return; } if (data[0] === "0") { this._send("40"); const res = JSON.parse(data.slice(1)); this.sid = res.sid; } else if (data[0] + data[1] === "40") { this.sid = JSON.parse(data.slice(2)).sid; this._trigger("connect"); } else if (data === "3") { this._send("2"); } else if (data === "2") { this._send("3"); } else { const match = /\[.*\]/.exec(data); if (!match) return; try { const [event, args] = JSON.parse(match[0]); this._trigger(event, args); } catch (err) { console.error("Vue DevTools onMessage: ", err); } } }); this._socket.onClose((res) => { this.closed = true; this._trigger("disconnect", res); }); this._socket.onError((res) => { console.error(res.errMsg); }); } on(event, callback) { (this._onCallbacks[event] || (this._onCallbacks[event] = [])).push(callback); } emit(event, data) { if (this.closed) { return; } this._heartbeat(); this._send(`42${JSON.stringify(typeof data !== "undefined" ? [event, data] : [event])}`); } disconnect() { clearTimeout(this._ackTimer); if (this._socket && !this.closed) { this._send("41"); this._socket.close({}); } } _heartbeat() { clearTimeout(this._ackTimer); this._ackTimer = setTimeout(() => { this._socket && this._socket.send({ data: "3" }); }, this.ackTimeout); } _send(data) { this._socket && this._socket.send({ data }); } _trigger(event, args) { const callbacks = this._onCallbacks[event]; if (callbacks) { callbacks.forEach((callback) => { callback(args); }); } } } let socketReadyCallback; getTarget().__VUE_DEVTOOLS_ON_SOCKET_READY__ = (callback) => { socketReadyCallback = callback; }; let targetHost = ""; const hosts = "169.254.83.107,192.168.0.196,192.168.192.38,192.168.56.1,192.168.119.1,172.26.240.1".split(","); setTimeout(() => { uni.request({ url: `http://${"localhost"}:${9500}`, timeout: 1e3, success() { targetHost = "localhost"; initSocket(); }, fail() { if (!targetHost && hosts.length) { hosts.forEach((host) => { uni.request({ url: `http://${host}:${9500}`, timeout: 1e3, success() { if (!targetHost) { targetHost = host; initSocket(); } } }); }); } } }); }, 0); throwConnectionError(); function throwConnectionError() { setTimeout(() => { if (!targetHost) { throw new Error("未能获取局域网地址,本地调试服务不可用"); } }, (hosts.length + 1) * 1100); } function initSocket() { getTarget().__VUE_DEVTOOLS_SOCKET__ = new Socket(targetHost + ":8098"); socketReadyCallback(); } var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; function getDefaultExportFromCjs(x) { return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x; } (function() { var __webpack_modules__ = { /***/ "../app-backend-core/lib/hook.js": ( /*!***************************************!*\ !*** ../app-backend-core/lib/hook.js ***! \***************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.installHook = void 0; function installHook(target, isIframe = false) { const devtoolsVersion = "6.0"; let listeners = {}; function injectIframeHook(iframe) { if (iframe.__vdevtools__injected) return; try { iframe.__vdevtools__injected = true; const inject = () => { try { iframe.contentWindow.__VUE_DEVTOOLS_IFRAME__ = iframe; const script = iframe.contentDocument.createElement("script"); script.textContent = ";(" + installHook.toString() + ")(window, true)"; iframe.contentDocument.documentElement.appendChild(script); script.parentNode.removeChild(script); } catch (e2) { } }; inject(); iframe.addEventListener("load", () => inject()); } catch (e2) { } } let iframeChecks = 0; function injectToIframes() { if (typeof window === "undefined") return; const iframes = document.querySelectorAll("iframe:not([data-vue-devtools-ignore])"); for (const iframe of iframes) { injectIframeHook(iframe); } } injectToIframes(); const iframeTimer = setInterval(() => { injectToIframes(); iframeChecks++; if (iframeChecks >= 5) { clearInterval(iframeTimer); } }, 1e3); if (Object.prototype.hasOwnProperty.call(target, "__VUE_DEVTOOLS_GLOBAL_HOOK__")) { if (target.__VUE_DEVTOOLS_GLOBAL_HOOK__.devtoolsVersion !== devtoolsVersion) { console.error(`Another version of Vue Devtools seems to be installed. Please enable only one version at a time.`); } return; } let hook; if (isIframe) { const sendToParent = (cb) => { try { const hook2 = window.parent.__VUE_DEVTOOLS_GLOBAL_HOOK__; if (hook2) { return cb(hook2); } else { console.warn("[Vue Devtools] No hook in parent window"); } } catch (e2) { console.warn("[Vue Devtools] Failed to send message to parent window", e2); } }; hook = { devtoolsVersion, // eslint-disable-next-line accessor-pairs set Vue(value) { sendToParent((hook2) => { hook2.Vue = value; }); }, // eslint-disable-next-line accessor-pairs set enabled(value) { sendToParent((hook2) => { hook2.enabled = value; }); }, on(event, fn) { sendToParent((hook2) => hook2.on(event, fn)); }, once(event, fn) { sendToParent((hook2) => hook2.once(event, fn)); }, off(event, fn) { sendToParent((hook2) => hook2.off(event, fn)); }, emit(event, ...args) { sendToParent((hook2) => hook2.emit(event, ...args)); }, cleanupBuffer(matchArg) { var _a; return (_a = sendToParent((hook2) => hook2.cleanupBuffer(matchArg))) !== null && _a !== void 0 ? _a : false; } }; } else { hook = { devtoolsVersion, Vue: null, enabled: void 0, _buffer: [], store: null, initialState: null, storeModules: null, flushStoreModules: null, apps: [], _replayBuffer(event) { const buffer = this._buffer; this._buffer = []; for (let i2 = 0, l2 = buffer.length; i2 < l2; i2++) { const allArgs = buffer[i2]; allArgs[0] === event ? this.emit.apply(this, allArgs) : this._buffer.push(allArgs); } }, on(event, fn) { const $event = "$" + event; if (listeners[$event]) { listeners[$event].push(fn); } else { listeners[$event] = [fn]; this._replayBuffer(event); } }, once(event, fn) { const on = (...args) => { this.off(event, on); return fn.apply(this, args); }; this.on(event, on); }, off(event, fn) { event = "$" + event; if (!arguments.length) { listeners = {}; } else { const cbs = listeners[event]; if (cbs) { if (!fn) { listeners[event] = null; } else { for (let i2 = 0, l2 = cbs.length; i2 < l2; i2++) { const cb = cbs[i2]; if (cb === fn || cb.fn === fn) { cbs.splice(i2, 1); break; } } } } } }, emit(event, ...args) { const $event = "$" + event; let cbs = listeners[$event]; if (cbs) { cbs = cbs.slice(); for (let i2 = 0, l2 = cbs.length; i2 < l2; i2++) { try { const result = cbs[i2].apply(this, args); if (typeof (result === null || result === void 0 ? void 0 : result.catch) === "function") { result.catch((e2) => { console.error(`[Hook] Error in async event handler for ${event} with args:`, args); console.error(e2); }); } } catch (e2) { console.error(`[Hook] Error in event handler for ${event} with args:`, args); console.error(e2); } } } else { this._buffer.push([event, ...args]); } }, /** * Remove buffered events with any argument that is equal to the given value. * @param matchArg Given value to match. */ cleanupBuffer(matchArg) { let wasBuffered = false; this._buffer = this._buffer.filter((item) => { if (item.some((arg) => arg === matchArg)) { wasBuffered = true; return false; } return true; }); return wasBuffered; } }; hook.once("init", (Vue2) => { hook.Vue = Vue2; if (Vue2) { Vue2.prototype.$inspect = function() { const fn = target.__VUE_DEVTOOLS_INSPECT__; fn && fn(this); }; } }); hook.on("app:init", (app, version, types2) => { const appRecord = { app, version, types: types2 }; hook.apps.push(appRecord); hook.emit("app:add", appRecord); }); hook.once("vuex:init", (store) => { hook.store = store; hook.initialState = clone(store.state); const origReplaceState = store.replaceState.bind(store); store.replaceState = (state) => { hook.initialState = clone(state); origReplaceState(state); }; let origRegister, origUnregister; if (store.registerModule) { hook.storeModules = []; origRegister = store.registerModule.bind(store); store.registerModule = (path, module, options) => { if (typeof path === "string") path = [path]; hook.storeModules.push({ path, module, options }); origRegister(path, module, options); { console.log("early register module", path, module, options); } }; origUnregister = store.unregisterModule.bind(store); store.unregisterModule = (path) => { if (typeof path === "string") path = [path]; const key = path.join("/"); const index = hook.storeModules.findIndex((m2) => m2.path.join("/") === key); if (index !== -1) hook.storeModules.splice(index, 1); origUnregister(path); { console.log("early unregister module", path); } }; } hook.flushStoreModules = () => { store.replaceState = origReplaceState; if (store.registerModule) { store.registerModule = origRegister; store.unregisterModule = origUnregister; } return hook.storeModules || []; }; }); } { uni.syncDataToGlobal({ __VUE_DEVTOOLS_GLOBAL_HOOK__: hook }); } Object.defineProperty(target, "__VUE_DEVTOOLS_GLOBAL_HOOK__", { get() { return hook; } }); if (target.__VUE_DEVTOOLS_HOOK_REPLAY__) { try { target.__VUE_DEVTOOLS_HOOK_REPLAY__.forEach((cb) => cb(hook)); target.__VUE_DEVTOOLS_HOOK_REPLAY__ = []; } catch (e2) { console.error("[vue-devtools] Error during hook replay", e2); } } const { toString: toStringFunction } = Function.prototype; const { create, defineProperty, getOwnPropertyDescriptor, getOwnPropertyNames, getOwnPropertySymbols, getPrototypeOf } = Object; const { hasOwnProperty: hasOwnProperty2, propertyIsEnumerable } = Object.prototype; const SUPPORTS = { SYMBOL_PROPERTIES: typeof getOwnPropertySymbols === "function", WEAKSET: typeof WeakSet === "function" }; const createCache = () => { if (SUPPORTS.WEAKSET) { return /* @__PURE__ */ new WeakSet(); } const object = create({ add: (value) => object._values.push(value), has: (value) => !!~object._values.indexOf(value) }); object._values = []; return object; }; const getCleanClone = (object, realm) => { if (!object.constructor) { return create(null); } const prototype = object.__proto__ || getPrototypeOf(object); if (object.constructor === realm.Object) { return prototype === realm.Object.prototype ? {} : create(prototype); } if (~toStringFunction.call(object.constructor).indexOf("[native code]")) { try { return new object.constructor(); } catch (e2) { } } return create(prototype); }; const getObjectCloneLoose = (object, realm, handleCopy, cache) => { const clone2 = getCleanClone(object, realm); for (const key in object) { if (hasOwnProperty2.call(object, key)) { clone2[key] = handleCopy(object[key], cache); } } if (SUPPORTS.SYMBOL_PROPERTIES) { const symbols = getOwnPropertySymbols(object); if (symbols.length) { for (let index = 0, symbol; index < symbols.length; index++) { symbol = symbols[index]; if (propertyIsEnumerable.call(object, symbol)) { clone2[symbol] = handleCopy(object[symbol], cache); } } } } return clone2; }; const getObjectCloneStrict = (object, realm, handleCopy, cache) => { const clone2 = getCleanClone(object, realm); const properties = SUPPORTS.SYMBOL_PROPERTIES ? [].concat(getOwnPropertyNames(object), getOwnPropertySymbols(object)) : getOwnPropertyNames(object); if (properties.length) { for (let index = 0, property, descriptor; index < properties.length; index++) { property = properties[index]; if (property !== "callee" && property !== "caller") { descriptor = getOwnPropertyDescriptor(object, property); descriptor.value = handleCopy(object[property], cache); defineProperty(clone2, property, descriptor); } } } return clone2; }; const getRegExpFlags = (regExp) => { let flags = ""; if (regExp.global) { flags += "g"; } if (regExp.ignoreCase) { flags += "i"; } if (regExp.multiline) { flags += "m"; } if (regExp.unicode) { flags += "u"; } if (regExp.sticky) { flags += "y"; } return flags; }; const { isArray } = Array; const GLOBAL_THIS = (() => { if (typeof self !== "undefined") { return self; } if (typeof window !== "undefined") { return window; } if (typeof __webpack_require__2.g !== "undefined") { return __webpack_require__2.g; } if (console && console.error) { console.error('Unable to locate global object, returning "this".'); } })(); function clone(object, options = null) { const isStrict = !!(options && options.isStrict); const realm = options && options.realm || GLOBAL_THIS; const getObjectClone = isStrict ? getObjectCloneStrict : getObjectCloneLoose; const handleCopy = (object2, cache) => { if (!object2 || typeof object2 !== "object" || cache.has(object2)) { return object2; } if (typeof HTMLElement !== "undefined" && object2 instanceof HTMLElement) { return object2.cloneNode(false); } const Constructor = object2.constructor; if (Constructor === realm.Object) { cache.add(object2); return getObjectClone(object2, realm, handleCopy, cache); } let clone2; if (isArray(object2)) { cache.add(object2); if (isStrict) { return getObjectCloneStrict(object2, realm, handleCopy, cache); } clone2 = new Constructor(); for (let index = 0; index < object2.length; index++) { clone2[index] = handleCopy(object2[index], cache); } return clone2; } if (object2 instanceof realm.Date) { return new Constructor(object2.getTime()); } if (object2 instanceof realm.RegExp) { clone2 = new Constructor(object2.source, object2.flags || getRegExpFlags(object2)); clone2.lastIndex = object2.lastIndex; return clone2; } if (realm.Map && object2 instanceof realm.Map) { cache.add(object2); clone2 = new Constructor(); object2.forEach((value, key) => { clone2.set(key, handleCopy(value, cache)); }); return clone2; } if (realm.Set && object2 instanceof realm.Set) { cache.add(object2); clone2 = new Constructor(); object2.forEach((value) => { clone2.add(handleCopy(value, cache)); }); return clone2; } if (realm.Buffer && realm.Buffer.isBuffer(object2)) { clone2 = realm.Buffer.allocUnsafe ? realm.Buffer.allocUnsafe(object2.length) : new Constructor(object2.length); object2.copy(clone2); return clone2; } if (realm.ArrayBuffer) { if (realm.ArrayBuffer.isView(object2)) { return new Constructor(object2.buffer.slice(0)); } if (object2 instanceof realm.ArrayBuffer) { return object2.slice(0); } } if ( // promise-like hasOwnProperty2.call(object2, "then") && typeof object2.then === "function" || // errors object2 instanceof Error || // weakmaps realm.WeakMap && object2 instanceof realm.WeakMap || // weaksets realm.WeakSet && object2 instanceof realm.WeakSet ) { return object2; } cache.add(object2); return getObjectClone(object2, realm, handleCopy, cache); }; return handleCopy(object, createCache()); } } exports.installHook = installHook; } ), /***/ "../shared-utils/lib/backend.js": ( /*!**************************************!*\ !*** ../shared-utils/lib/backend.js ***! \**************************************/ /***/ (__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.getCatchedGetters = exports.getCustomStoreDetails = exports.getCustomRouterDetails = exports.isVueInstance = exports.getCustomObjectDetails = exports.getCustomInstanceDetails = exports.getInstanceMap = exports.backendInjections = void 0; exports.backendInjections = { instanceMap: /* @__PURE__ */ new Map(), isVueInstance: () => false, getCustomInstanceDetails: () => ({}), getCustomObjectDetails: () => void 0 }; function getInstanceMap() { return exports.backendInjections.instanceMap; } exports.getInstanceMap = getInstanceMap; function getCustomInstanceDetails(instance) { return exports.backendInjections.getCustomInstanceDetails(instance); } exports.getCustomInstanceDetails = getCustomInstanceDetails; function getCustomObjectDetails(value, proto) { return exports.backendInjections.getCustomObjectDetails(value, proto); } exports.getCustomObjectDetails = getCustomObjectDetails; function isVueInstance(value) { return exports.backendInjections.isVueInstance(value); } exports.isVueInstance = isVueInstance; function getCustomRouterDetails(router) { return { _custom: { type: "router", display: "VueRouter", value: { options: router.options, currentRoute: router.currentRoute }, fields: { abstract: true } } }; } exports.getCustomRouterDetails = getCustomRouterDetails; function getCustomStoreDetails(store) { return { _custom: { type: "store", display: "Store", value: { state: store.state, getters: getCatchedGetters(store) }, fields: { abstract: true } } }; } exports.getCustomStoreDetails = getCustomStoreDetails; function getCatchedGetters(store) { const getters = {}; const origGetters = store.getters || {}; const keys = Object.keys(origGetters); for (let i2 = 0; i2 < keys.length; i2++) { const key = keys[i2]; Object.defineProperty(getters, key, { enumerable: true, get: () => { try { return origGetters[key]; } catch (e2) { return e2; } } }); } return getters; } exports.getCatchedGetters = getCatchedGetters; } ), /***/ "../shared-utils/lib/bridge.js": ( /*!*************************************!*\ !*** ../shared-utils/lib/bridge.js ***! \*************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.Bridge = void 0; const events_1 = __webpack_require__2( /*! events */ "../../node_modules/events/events.js" ); const raf_1 = __webpack_require__2( /*! ./raf */ "../shared-utils/lib/raf.js" ); const BATCH_DURATION = 100; class Bridge extends events_1.EventEmitter { constructor(wall) { super(); this.setMaxListeners(Infinity); this.wall = wall; wall.listen((messages2) => { if (Array.isArray(messages2)) { messages2.forEach((message) => this._emit(message)); } else { this._emit(messages2); } }); this._batchingQueue = []; this._sendingQueue = []; this._receivingQueue = []; this._sending = false; } on(event, listener) { const wrappedListener = async (...args) => { try { await listener(...args); } catch (e2) { console.error(`[Bridge] Error in listener for event ${event.toString()} with args:`, args); console.error(e2); } }; return super.on(event, wrappedListener); } send(event, payload) { this._batchingQueue.push({ event, payload }); if (this._timer == null) { this._timer = setTimeout(() => this._flush(), BATCH_DURATION); } } /** * Log a message to the devtools background page. */ log(message) { this.send("log", message); } _flush() { if (this._batchingQueue.length) this._send(this._batchingQueue); clearTimeout(this._timer); this._timer = null; this._batchingQueue = []; } // @TODO types _emit(message) { if (typeof message === "string") { this.emit(message); } else if (message._chunk) { this._receivingQueue.push(message._chunk); if (message.last) { this.emit(message.event, this._receivingQueue); this._receivingQueue = []; } } else if (message.event) { this.emit(message.event, message.payload); } } // @TODO types _send(messages2) { this._sendingQueue.push(messages2); this._nextSend(); } _nextSend() { if (!this._sendingQueue.length || this._sending) return; this._sending = true; const messages2 = this._sendingQueue.shift(); try { this.wall.send(messages2); } catch (err) { if (err.message === "Message length exceeded maximum allowed length.") { this._sendingQueue.splice(0, 0, messages2.map((message) => [message])); } } this._sending = false; (0, raf_1.raf)(() => this._nextSend()); } } exports.Bridge = Bridge; } ), /***/ "../shared-utils/lib/consts.js": ( /*!*************************************!*\ !*** ../shared-utils/lib/consts.js ***! \*************************************/ /***/ (__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.HookEvents = exports.BridgeSubscriptions = exports.BridgeEvents = exports.BuiltinTabs = void 0; (function(BuiltinTabs) { BuiltinTabs["COMPONENTS"] = "components"; BuiltinTabs["TIMELINE"] = "timeline"; BuiltinTabs["PLUGINS"] = "plugins"; BuiltinTabs["SETTINGS"] = "settings"; })(exports.BuiltinTabs || (exports.BuiltinTabs = {})); (function(BridgeEvents) { BridgeEvents["TO_BACK_SUBSCRIBE"] = "b:subscribe"; BridgeEvents["TO_BACK_UNSUBSCRIBE"] = "b:unsubscribe"; BridgeEvents["TO_FRONT_READY"] = "f:ready"; BridgeEvents["TO_BACK_LOG_DETECTED_VUE"] = "b:log-detected-vue"; BridgeEvents["TO_BACK_REFRESH"] = "b:refresh"; BridgeEvents["TO_BACK_TAB_SWITCH"] = "b:tab:switch"; BridgeEvents["TO_BACK_LOG"] = "b:log"; BridgeEvents["TO_FRONT_RECONNECTED"] = "f:reconnected"; BridgeEvents["TO_FRONT_TITLE"] = "f:title"; BridgeEvents["TO_FRONT_APP_ADD"] = "f:app:add"; BridgeEvents["TO_BACK_APP_LIST"] = "b:app:list"; BridgeEvents["TO_FRONT_APP_LIST"] = "f:app:list"; BridgeEvents["TO_FRONT_APP_REMOVE"] = "f:app:remove"; BridgeEvents["TO_BACK_APP_SELECT"] = "b:app:select"; BridgeEvents["TO_FRONT_APP_SELECTED"] = "f:app:selected"; BridgeEvents["TO_BACK_SCAN_LEGACY_APPS"] = "b:app:scan-legacy"; BridgeEvents["TO_BACK_COMPONENT_TREE"] = "b:component:tree"; BridgeEvents["TO_FRONT_COMPONENT_TREE"] = "f:component:tree"; BridgeEvents["TO_BACK_COMPONENT_SELECTED_DATA"] = "b:component:selected-data"; BridgeEvents["TO_FRONT_COMPONENT_SELECTED_DATA"] = "f:component:selected-data"; BridgeEvents["TO_BACK_COMPONENT_EXPAND"] = "b:component:expand"; BridgeEvents["TO_FRONT_COMPONENT_EXPAND"] = "f:component:expand"; BridgeEvents["TO_BACK_COMPONENT_SCROLL_TO"] = "b:component:scroll-to"; BridgeEvents["TO_BACK_COMPONENT_FILTER"] = "b:component:filter"; BridgeEvents["TO_BACK_COMPONENT_MOUSE_OVER"] = "b:component:mouse-over"; BridgeEvents["TO_BACK_COMPONENT_MOUSE_OUT"] = "b:component:mouse-out"; BridgeEvents["TO_BACK_COMPONENT_CONTEXT_MENU_TARGET"] = "b:component:context-menu-target"; BridgeEvents["TO_BACK_COMPONENT_EDIT_STATE"] = "b:component:edit-state"; BridgeEvents["TO_BACK_COMPONENT_PICK"] = "b:component:pick"; BridgeEvents["TO_FRONT_COMPONENT_PICK"] = "f:component:pick"; BridgeEvents["TO_BACK_COMPONENT_PICK_CANCELED"] = "b:component:pick-canceled"; BridgeEvents["TO_FRONT_COMPONENT_PICK_CANCELED"] = "f:component:pick-canceled"; BridgeEvents["TO_BACK_COMPONENT_INSPECT_DOM"] = "b:component:inspect-dom"; BridgeEvents["TO_FRONT_COMPONENT_INSPECT_DOM"] = "f:component:inspect-dom"; BridgeEvents["TO_BACK_COMPONENT_RENDER_CODE"] = "b:component:render-code"; BridgeEvents["TO_FRONT_COMPONENT_RENDER_CODE"] = "f:component:render-code"; BridgeEvents["TO_FRONT_COMPONENT_UPDATED"] = "f:component:updated"; BridgeEvents["TO_FRONT_TIMELINE_EVENT"] = "f:timeline:event"; BridgeEvents["TO_BACK_TIMELINE_LAYER_LIST"] = "b:timeline:layer-list"; BridgeEvents["TO_FRONT_TIMELINE_LAYER_LIST"] = "f:timeline:layer-list"; BridgeEvents["TO_FRONT_TIMELINE_LAYER_ADD"] = "f:timeline:layer-add"; BridgeEvents["TO_BACK_TIMELINE_SHOW_SCREENSHOT"] = "b:timeline:show-screenshot"; BridgeEvents["TO_BACK_TIMELINE_CLEAR"] = "b:timeline:clear"; BridgeEvents["TO_BACK_TIMELINE_EVENT_DATA"] = "b:timeline:event-data"; BridgeEvents["TO_FRONT_TIMELINE_EVENT_DATA"] = "f:timeline:event-data"; BridgeEvents["TO_BACK_TIMELINE_LAYER_LOAD_EVENTS"] = "b:timeline:layer-load-events"; BridgeEvents["TO_FRONT_TIMELINE_LAYER_LOAD_EVENTS"] = "f:timeline:layer-load-events"; BridgeEvents["TO_BACK_TIMELINE_LOAD_MARKERS"] = "b:timeline:load-markers"; BridgeEvents["TO_FRONT_TIMELINE_LOAD_MARKERS"] = "f:timeline:load-markers"; BridgeEvents["TO_FRONT_TIMELINE_MARKER"] = "f:timeline:marker"; BridgeEvents["TO_BACK_DEVTOOLS_PLUGIN_LIST"] = "b:devtools-plugin:list"; BridgeEvents["TO_FRONT_DEVTOOLS_PLUGIN_LIST"] = "f:devtools-plugin:list"; BridgeEvents["TO_FRONT_DEVTOOLS_PLUGIN_ADD"] = "f:devtools-plugin:add"; BridgeEvents["TO_BACK_DEVTOOLS_PLUGIN_SETTING_UPDATED"] = "b:devtools-plugin:setting-updated"; BridgeEvents["TO_BACK_CUSTOM_INSPECTOR_LIST"] = "b:custom-inspector:list"; BridgeEvents["TO_FRONT_CUSTOM_INSPECTOR_LIST"] = "f:custom-inspector:list"; BridgeEvents["TO_FRONT_CUSTOM_INSPECTOR_ADD"] = "f:custom-inspector:add"; BridgeEvents["TO_BACK_CUSTOM_INSPECTOR_TREE"] = "b:custom-inspector:tree"; BridgeEvents["TO_FRONT_CUSTOM_INSPECTOR_TREE"] = "f:custom-inspector:tree"; BridgeEvents["TO_BACK_CUSTOM_INSPECTOR_STATE"] = "b:custom-inspector:state"; BridgeEvents["TO_FRONT_CUSTOM_INSPECTOR_STATE"] = "f:custom-inspector:state"; BridgeEvents["TO_BACK_CUSTOM_INSPECTOR_EDIT_STATE"] = "b:custom-inspector:edit-state"; BridgeEvents["TO_BACK_CUSTOM_INSPECTOR_ACTION"] = "b:custom-inspector:action"; BridgeEvents["TO_BACK_CUSTOM_INSPECTOR_NODE_ACTION"] = "b:custom-inspector:node-action"; BridgeEvents["TO_FRONT_CUSTOM_INSPECTOR_SELECT_NODE"] = "f:custom-inspector:select-node"; BridgeEvents["TO_BACK_CUSTOM_STATE_ACTION"] = "b:custom-state:action"; })(exports.BridgeEvents || (exports.BridgeEvents = {})); (function(BridgeSubscriptions) { BridgeSubscriptions["SELECTED_COMPONENT_DATA"] = "component:selected-data"; BridgeSubscriptions["COMPONENT_TREE"] = "component:tree"; })(exports.BridgeSubscriptions || (exports.BridgeSubscriptions = {})); (function(HookEvents) { HookEvents["INIT"] = "init"; HookEvents["APP_INIT"] = "app:init"; HookEvents["APP_ADD"] = "app:add"; HookEvents["APP_UNMOUNT"] = "app:unmount"; HookEvents["COMPONENT_UPDATED"] = "component:updated"; HookEvents["COMPONENT_ADDED"] = "component:added"; HookEvents["COMPONENT_REMOVED"] = "component:removed"; HookEvents["COMPONENT_EMIT"] = "component:emit"; HookEvents["COMPONENT_HIGHLIGHT"] = "component:highlight"; HookEvents["COMPONENT_UNHIGHLIGHT"] = "component:unhighlight"; HookEvents["SETUP_DEVTOOLS_PLUGIN"] = "devtools-plugin:setup"; HookEvents["TIMELINE_LAYER_ADDED"] = "timeline:layer-added"; HookEvents["TIMELINE_EVENT_ADDED"] = "timeline:event-added"; HookEvents["CUSTOM_INSPECTOR_ADD"] = "custom-inspector:add"; HookEvents["CUSTOM_INSPECTOR_SEND_TREE"] = "custom-inspector:send-tree"; HookEvents["CUSTOM_INSPECTOR_SEND_STATE"] = "custom-inspector:send-state"; HookEvents["CUSTOM_INSPECTOR_SELECT_NODE"] = "custom-inspector:select-node"; HookEvents["PERFORMANCE_START"] = "perf:start"; HookEvents["PERFORMANCE_END"] = "perf:end"; HookEvents["PLUGIN_SETTINGS_SET"] = "plugin:settings:set"; HookEvents["FLUSH"] = "flush"; HookEvents["TRACK_UPDATE"] = "_track-update"; HookEvents["FLASH_UPDATE"] = "_flash-update"; })(exports.HookEvents || (exports.HookEvents = {})); } ), /***/ "../shared-utils/lib/edit.js": ( /*!***********************************!*\ !*** ../shared-utils/lib/edit.js ***! \***********************************/ /***/ (__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.StateEditor = void 0; class StateEditor { set(object, path, value, cb = null) { const sections = Array.isArray(path) ? path : path.split("."); while (sections.length > 1) { object = object[sections.shift()]; if (this.isRef(object)) { object = this.getRefValue(object); } } const field = sections[0]; if (cb) { cb(object, field, value); } else if (this.isRef(object[field])) { this.setRefValue(object[field], value); } else { object[field] = value; } } get(object, path) { const sections = Array.isArray(path) ? path : path.split("."); for (let i2 = 0; i2 < sections.length; i2++) { object = object[sections[i2]]; if (this.isRef(object)) { object = this.getRefValue(object); } if (!object) { return void 0; } } return object; } has(object, path, parent = false) { if (typeof object === "undefined") { return false; } const sections = Array.isArray(path) ? path.slice() : path.split("."); const size = !parent ? 1 : 2; while (object && sections.length > size) { object = object[sections.shift()]; if (this.isRef(object)) { object = this.getRefValue(object); } } return object != null && Object.prototype.hasOwnProperty.call(object, sections[0]); } createDefaultSetCallback(state) { return (obj, field, value) => { if (state.remove || state.newKey) { if (Array.isArray(obj)) { obj.splice(field, 1); } else { delete obj[field]; } } if (!state.remove) { const target = obj[state.newKey || field]; if (this.isRef(target)) { this.setRefValue(target, value); } else { obj[state.newKey || field] = value; } } }; } isRef(ref) { return false; } setRefValue(ref, value) { } getRefValue(ref) { return ref; } } exports.StateEditor = StateEditor; } ), /***/ "../shared-utils/lib/env.js": ( /*!**********************************!*\ !*** ../shared-utils/lib/env.js ***! \**********************************/ /***/ (__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.initEnv = exports.keys = exports.isLinux = exports.isMac = exports.isWindows = exports.isFirefox = exports.isChrome = exports.target = exports.isBrowser = void 0; exports.isBrowser = typeof navigator !== "undefined" && typeof window !== "undefined"; exports.target = exports.isBrowser ? window : typeof globalThis !== "undefined" ? globalThis : typeof commonjsGlobal !== "undefined" ? commonjsGlobal : typeof my !== "undefined" ? my : {}; exports.isChrome = typeof exports.target.chrome !== "undefined" && !!exports.target.chrome.devtools; exports.isFirefox = exports.isBrowser && navigator.userAgent && navigator.userAgent.indexOf("Firefox") > -1; exports.isWindows = exports.isBrowser && navigator.platform.indexOf("Win") === 0; exports.isMac = exports.isBrowser && navigator.platform === "MacIntel"; exports.isLinux = exports.isBrowser && navigator.platform.indexOf("Linux") === 0; exports.keys = { ctrl: exports.isMac ? "⌘" : "Ctrl", shift: "Shift", alt: exports.isMac ? "⌥" : "Alt", del: "Del", enter: "Enter", esc: "Esc" }; function initEnv(Vue2) { if (Vue2.prototype.hasOwnProperty("$isChrome")) return; Object.defineProperties(Vue2.prototype, { $isChrome: { get: () => exports.isChrome }, $isFirefox: { get: () => exports.isFirefox }, $isWindows: { get: () => exports.isWindows }, $isMac: { get: () => exports.isMac }, $isLinux: { get: () => exports.isLinux }, $keys: { get: () => exports.keys } }); if (exports.isWindows) document.body.classList.add("platform-windows"); if (exports.isMac) document.body.classList.add("platform-mac"); if (exports.isLinux) document.body.classList.add("platform-linux"); } exports.initEnv = initEnv; } ), /***/ "../shared-utils/lib/index.js": ( /*!************************************!*\ !*** ../shared-utils/lib/index.js ***! \************************************/ /***/ function(__unused_webpack_module, exports, __webpack_require__2) { var __createBinding = this && this.__createBinding || (Object.create ? function(o2, m2, k, k2) { if (k2 === void 0) k2 = k; var desc = Object.getOwnPropertyDescriptor(m2, k); if (!desc || ("get" in desc ? !m2.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m2[k]; } }; } Object.defineProperty(o2, k2, desc); } : function(o2, m2, k, k2) { if (k2 === void 0) k2 = k; o2[k2] = m2[k]; }); var __exportStar = this && this.__exportStar || function(m2, exports2) { for (var p2 in m2) if (p2 !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p2)) __createBinding(exports2, m2, p2); }; Object.defineProperty(exports, "__esModule", { value: true }); __exportStar(__webpack_require__2( /*! ./backend */ "../shared-utils/lib/backend.js" ), exports); __exportStar(__webpack_require__2( /*! ./bridge */ "../shared-utils/lib/bridge.js" ), exports); __exportStar(__webpack_require__2( /*! ./consts */ "../shared-utils/lib/consts.js" ), exports); __exportStar(__webpack_require__2( /*! ./edit */ "../shared-utils/lib/edit.js" ), exports); __exportStar(__webpack_require__2( /*! ./env */ "../shared-utils/lib/env.js" ), exports); __exportStar(__webpack_require__2( /*! ./plugin-permissions */ "../shared-utils/lib/plugin-permissions.js" ), exports); __exportStar(__webpack_require__2( /*! ./plugin-settings */ "../shared-utils/lib/plugin-settings.js" ), exports); __exportStar(__webpack_require__2( /*! ./shared-data */ "../shared-utils/lib/shared-data.js" ), exports); __exportStar(__webpack_require__2( /*! ./shell */ "../shared-utils/lib/shell.js" ), exports); __exportStar(__webpack_require__2( /*! ./storage */ "../shared-utils/lib/storage.js" ), exports); __exportStar(__webpack_require__2( /*! ./transfer */ "../shared-utils/lib/transfer.js" ), exports); __exportStar(__webpack_require__2( /*! ./util */ "../shared-utils/lib/util.js" ), exports); __exportStar(__webpack_require__2( /*! ./raf */ "../shared-utils/lib/raf.js" ), exports); } ), /***/ "../shared-utils/lib/plugin-permissions.js": ( /*!*************************************************!*\ !*** ../shared-utils/lib/plugin-permissions.js ***! \*************************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.setPluginPermission = exports.hasPluginPermission = exports.PluginPermission = void 0; const shared_data_1 = __webpack_require__2( /*! ./shared-data */ "../shared-utils/lib/shared-data.js" ); (function(PluginPermission) { PluginPermission["ENABLED"] = "enabled"; PluginPermission["COMPONENTS"] = "components"; PluginPermission["CUSTOM_INSPECTOR"] = "custom-inspector"; PluginPermission["TIMELINE"] = "timeline"; })(exports.PluginPermission || (exports.PluginPermission = {})); function hasPluginPermission(pluginId, permission2) { const result = shared_data_1.SharedData.pluginPermissions[`${pluginId}:${permission2}`]; if (result == null) return true; return !!result; } exports.hasPluginPermission = hasPluginPermission; function setPluginPermission(pluginId, permission2, active) { shared_data_1.SharedData.pluginPermissions = { ...shared_data_1.SharedData.pluginPermissions, [`${pluginId}:${permission2}`]: active }; } exports.setPluginPermission = setPluginPermission; } ), /***/ "../shared-utils/lib/plugin-settings.js": ( /*!**********************************************!*\ !*** ../shared-utils/lib/plugin-settings.js ***! \**********************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.getPluginDefaultSettings = exports.setPluginSettings = exports.getPluginSettings = void 0; const shared_data_1 = __webpack_require__2( /*! ./shared-data */ "../shared-utils/lib/shared-data.js" ); function getPluginSettings(pluginId, defaultSettings) { var _a; return { ...defaultSettings !== null && defaultSettings !== void 0 ? defaultSettings : {}, ...(_a = shared_data_1.SharedData.pluginSettings[pluginId]) !== null && _a !== void 0 ? _a : {} }; } exports.getPluginSettings = getPluginSettings; function setPluginSettings(pluginId, settings) { shared_data_1.SharedData.pluginSettings = { ...shared_data_1.SharedData.pluginSettings, [pluginId]: settings }; } exports.setPluginSettings = setPluginSettings; function getPluginDefaultSettings(schema) { const result = {}; if (schema) { for (const id in schema) { const item = schema[id]; result[id] = item.defaultValue; } } return result; } exports.getPluginDefaultSettings = getPluginDefaultSettings; } ), /***/ "../shared-utils/lib/raf.js": ( /*!**********************************!*\ !*** ../shared-utils/lib/raf.js ***! \**********************************/ /***/ (__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.raf = void 0; let pendingCallbacks = []; exports.raf = typeof requestAnimationFrame === "function" ? requestAnimationFrame : typeof setImmediate === "function" ? (fn) => { if (!pendingCallbacks.length) { setImmediate(() => { const now = performance.now(); const cbs = pendingCallbacks; pendingCallbacks = []; cbs.forEach((cb) => cb(now)); }); } pendingCallbacks.push(fn); } : function(callback) { return setTimeout(function() { callback(Date.now()); }, 1e3 / 60); }; } ), /***/ "../shared-utils/lib/shared-data.js": ( /*!******************************************!*\ !*** ../shared-utils/lib/shared-data.js ***! \******************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.SharedData = exports.watchSharedData = exports.destroySharedData = exports.onSharedDataInit = exports.initSharedData = void 0; const storage_1 = __webpack_require__2( /*! ./storage */ "../shared-utils/lib/storage.js" ); const env_1 = __webpack_require__2( /*! ./env */ "../shared-utils/lib/env.js" ); const internalSharedData = { openInEditorHost: "/", componentNameStyle: "class", theme: "auto", displayDensity: "low", timeFormat: "default", recordVuex: true, cacheVuexSnapshotsEvery: 50, cacheVuexSnapshotsLimit: 10, snapshotLoading: false, componentEventsEnabled: true, performanceMonitoringEnabled: true, editableProps: false, logDetected: true, vuexNewBackend: false, vuexAutoload: false, vuexGroupGettersByModule: true, showMenuScrollTip: true, timelineTimeGrid: true, timelineScreenshots: true, menuStepScrolling: env_1.isMac, pluginPermissions: {}, pluginSettings: {}, pageConfig: {}, legacyApps: false, trackUpdates: true, flashUpdates: false, debugInfo: false, isBrowser: env_1.isBrowser }; const persisted = ["componentNameStyle", "theme", "displayDensity", "recordVuex", "editableProps", "logDetected", "vuexNewBackend", "vuexAutoload", "vuexGroupGettersByModule", "timeFormat", "showMenuScrollTip", "timelineTimeGrid", "timelineScreenshots", "menuStepScrolling", "pluginPermissions", "pluginSettings", "performanceMonitoringEnabled", "componentEventsEnabled", "trackUpdates", "flashUpdates", "debugInfo"]; const storageVersion = "6.0.0-alpha.1"; let bridge; let persist = false; let data; let initRetryInterval; let initRetryCount = 0; const initCbs = []; function initSharedData(params) { return new Promise((resolve) => { bridge = params.bridge; persist = !!params.persist; if (persist) { { console.log("[shared data] Master init in progress..."); } persisted.forEach((key) => { const value = (0, storage_1.getStorage)(`vue-devtools-${storageVersion}:shared-data:${key}`); if (value !== null) { internalSharedData[key] = value; } }); bridge.on("shared-data:load", () => { Object.keys(internalSharedData).forEach((key) => { sendValue(key, internalSharedData[key]); }); bridge.send("shared-data:load-complete"); }); bridge.on("shared-data:init-complete", () => { { console.log("[shared data] Master init complete"); } clearInterval(initRetryInterval); resolve(); }); bridge.send("shared-data:master-init-waiting"); bridge.on("shared-data:minion-init-waiting", () => { bridge.send("shared-data:master-init-waiting"); }); initRetryCount = 0; clearInterval(initRetryInterval); initRetryInterval = setInterval(() => { { console.log("[shared data] Master init retrying..."); } bridge.send("shared-data:master-init-waiting"); initRetryCount++; if (initRetryCount > 30) { clearInterval(initRetryInterval); console.error("[shared data] Master init failed"); } }, 2e3); } else { bridge.on("shared-data:master-init-waiting", () => { bridge.send("shared-data:load"); bridge.once("shared-data:load-complete", () => { bridge.send("shared-data:init-complete"); resolve(); }); }); bridge.send("shared-data:minion-init-waiting"); } data = { ...internalSharedData }; if (params.Vue) { data = params.Vue.observable(data); } bridge.on("shared-data:set", ({ key, value }) => { setValue(key, value); }); initCbs.forEach((cb) => cb()); }); } exports.initSharedData = initSharedData; function onSharedDataInit(cb) { initCbs.push(cb); return () => { const index = initCbs.indexOf(cb); if (index !== -1) initCbs.splice(index, 1); }; } exports.onSharedDataInit = onSharedDataInit; function destroySharedData() { bridge.removeAllListeners("shared-data:set"); watchers = {}; } exports.destroySharedData = destroySharedData; let watchers = {}; function setValue(key, value) { if (persist && persisted.includes(key)) { (0, storage_1.setStorage)(`vue-devtools-${storageVersion}:shared-data:${key}`, value); } const oldValue = data[key]; data[key] = value; const handlers = watchers[key]; if (handlers) { handlers.forEach((h2) => h2(value, oldValue)); } return true; } function sendValue(key, value) { bridge && bridge.send("shared-data:set", { key, value }); } function watchSharedData(prop, handler) { const list = watchers[prop] || (watchers[prop] = []); list.push(handler); return () => { const index = list.indexOf(handler); if (index !== -1) list.splice(index, 1); }; } exports.watchSharedData = watchSharedData; const proxy = {}; Object.keys(internalSharedData).forEach((key) => { Object.defineProperty(proxy, key, { configurable: false, get: () => data[key], set: (value) => { sendValue(key, value); setValue(key, value); } }); }); exports.SharedData = proxy; } ), /***/ "../shared-utils/lib/shell.js": ( /*!************************************!*\ !*** ../shared-utils/lib/shell.js ***! \************************************/ /***/ (__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", { value: true }); } ), /***/ "../shared-utils/lib/storage.js": ( /*!**************************************!*\ !*** ../shared-utils/lib/storage.js ***! \**************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.clearStorage = exports.removeStorage = exports.setStorage = exports.getStorage = exports.initStorage = void 0; const env_1 = __webpack_require__2( /*! ./env */ "../shared-utils/lib/env.js" ); const useStorage = typeof env_1.target.chrome !== "undefined" && typeof env_1.target.chrome.storage !== "undefined"; let storageData = null; function initStorage() { return new Promise((resolve) => { if (useStorage) { env_1.target.chrome.storage.local.get(null, (result) => { storageData = result; resolve(); }); } else { storageData = {}; resolve(); } }); } exports.initStorage = initStorage; function getStorage(key, defaultValue = null) { checkStorage(); if (useStorage) { return getDefaultValue(storageData[key], defaultValue); } else { try { return getDefaultValue(JSON.parse(localStorage.getItem(key)), defaultValue); } catch (e2) { } } } exports.getStorage = getStorage; function setStorage(key, val) { checkStorage(); if (useStorage) { storageData[key] = val; env_1.target.chrome.storage.local.set({ [key]: val }); } else { try { localStorage.setItem(key, JSON.stringify(val)); } catch (e2) { } } } exports.setStorage = setStorage; function removeStorage(key) { checkStorage(); if (useStorage) { delete storageData[key]; env_1.target.chrome.storage.local.remove([key]); } else { try { localStorage.removeItem(key); } catch (e2) { } } } exports.removeStorage = removeStorage; function clearStorage() { checkStorage(); if (useStorage) { storageData = {}; env_1.target.chrome.storage.local.clear(); } else { try { localStorage.clear(); } catch (e2) { } } } exports.clearStorage = clearStorage; function checkStorage() { if (!storageData) { throw new Error("Storage wasn't initialized with 'init()'"); } } function getDefaultValue(value, defaultValue) { if (value == null) { return defaultValue; } return value; } } ), /***/ "../shared-utils/lib/transfer.js": ( /*!***************************************!*\ !*** ../shared-utils/lib/transfer.js ***! \***************************************/ /***/ (__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.stringifyStrictCircularAutoChunks = exports.parseCircularAutoChunks = exports.stringifyCircularAutoChunks = void 0; const MAX_SERIALIZED_SIZE = 512 * 1024; function encode(data, replacer, list, seen) { let stored, key, value, i2, l2; const seenIndex = seen.get(data); if (seenIndex != null) { return seenIndex; } const index = list.length; const proto = Object.prototype.toString.call(data); if (proto === "[object Object]") { stored = {}; seen.set(data, index); list.push(stored); const keys = Object.keys(data); for (i2 = 0, l2 = keys.length; i2 < l2; i2++) { key = keys[i2]; try { value = data[key]; if (replacer) value = replacer.call(data, key, value); } catch (e2) { value = e2; } stored[key] = encode(value, replacer, list, seen); } } else if (proto === "[object Array]") { stored = []; seen.set(data, index); list.push(stored); for (i2 = 0, l2 = data.length; i2 < l2; i2++) { try { value = data[i2]; if (replacer) value = replacer.call(data, i2, value); } catch (e2) { value = e2; } stored[i2] = encode(value, replacer, list, seen); } } else { list.push(data); } return index; } function decode(list, reviver) { let i2 = list.length; let j2, k, data, key, value, proto; while (i2--) { data = list[i2]; proto = Object.prototype.toString.call(data); if (proto === "[object Object]") { const keys = Object.keys(data); for (j2 = 0, k = keys.length; j2 < k; j2++) { key = keys[j2]; value = list[data[key]]; if (reviver) value = reviver.call(data, key, value); data[key] = value; } } else if (proto === "[object Array]") { for (j2 = 0, k = data.length; j2 < k; j2++) { value = list[data[j2]]; if (reviver) value = reviver.call(data, j2, value); data[j2] = value; } } } } function stringifyCircularAutoChunks(data, replacer = null, space = null) { let result; try { result = arguments.length === 1 ? JSON.stringify(data) : JSON.stringify(data, replacer, space); } catch (e2) { result = stringifyStrictCircularAutoChunks(data, replacer, space); } if (result.length > MAX_SERIALIZED_SIZE) { const chunkCount = Math.ceil(result.length / MAX_SERIALIZED_SIZE); const chunks = []; for (let i2 = 0; i2 < chunkCount; i2++) { chunks.push(result.slice(i2 * MAX_SERIALIZED_SIZE, (i2 + 1) * MAX_SERIALIZED_SIZE)); } return chunks; } return result; } exports.stringifyCircularAutoChunks = stringifyCircularAutoChunks; function parseCircularAutoChunks(data, reviver = null) { if (Array.isArray(data)) { data = data.join(""); } const hasCircular = /^\s/.test(data); if (!hasCircular) { return arguments.length === 1 ? JSON.parse(data) : JSON.parse(data, reviver); } else { const list = JSON.parse(data); decode(list, reviver); return list[0]; } } exports.parseCircularAutoChunks = parseCircularAutoChunks; function stringifyStrictCircularAutoChunks(data, replacer = null, space = null) { const list = []; encode(data, replacer, list, /* @__PURE__ */ new Map()); return space ? " " + JSON.stringify(list, null, space) : " " + JSON.stringify(list); } exports.stringifyStrictCircularAutoChunks = stringifyStrictCircularAutoChunks; } ), /***/ "../shared-utils/lib/util.js": ( /*!***********************************!*\ !*** ../shared-utils/lib/util.js ***! \***********************************/ /***/ function(__unused_webpack_module, exports, __webpack_require__2) { var __importDefault = this && this.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.isEmptyObject = exports.copyToClipboard = exports.escape = exports.openInEditor = exports.focusInput = exports.simpleGet = exports.sortByKey = exports.searchDeepInObject = exports.isPlainObject = exports.revive = exports.parse = exports.getCustomRefDetails = exports.getCustomHTMLElementDetails = exports.getCustomFunctionDetails = exports.getCustomComponentDefinitionDetails = exports.getComponentName = exports.reviveSet = exports.getCustomSetDetails = exports.reviveMap = exports.getCustomMapDetails = exports.stringify = exports.specialTokenToString = exports.MAX_ARRAY_SIZE = exports.MAX_STRING_SIZE = exports.SPECIAL_TOKENS = exports.NAN = exports.NEGATIVE_INFINITY = exports.INFINITY = exports.UNDEFINED = exports.inDoc = exports.getComponentDisplayName = exports.kebabize = exports.camelize = exports.classify = void 0; const path_1 = __importDefault(__webpack_require__2( /*! path */ "../../node_modules/path-browserify/index.js" )); const transfer_1 = __webpack_require__2( /*! ./transfer */ "../shared-utils/lib/transfer.js" ); const backend_1 = __webpack_require__2( /*! ./backend */ "../shared-utils/lib/backend.js" ); const shared_data_1 = __webpack_require__2( /*! ./shared-data */ "../shared-utils/lib/shared-data.js" ); const env_1 = __webpack_require__2( /*! ./env */ "../shared-utils/lib/env.js" ); function cached(fn) { const cache = /* @__PURE__ */ Object.create(null); return function cachedFn(str) { const hit = cache[str]; return hit || (cache[str] = fn(str)); }; } const classifyRE = /(?:^|[-_/])(\w)/g; exports.classify = cached((str) => { return str && ("" + str).replace(classifyRE, toUpper); }); const camelizeRE = /-(\w)/g; exports.camelize = cached((str) => { return str && str.replace(camelizeRE, toUpper); }); const kebabizeRE = /([a-z0-9])([A-Z])/g; exports.kebabize = cached((str) => { return str && str.replace(kebabizeRE, (_2, lowerCaseCharacter, upperCaseLetter) => { return `${lowerCaseCharacter}-${upperCaseLetter}`; }).toLowerCase(); }); function toUpper(_2, c2) { return c2 ? c2.toUpperCase() : ""; } function getComponentDisplayName(originalName, style = "class") { switch (style) { case "class": return (0, exports.classify)(originalName); case "kebab": return (0, exports.kebabize)(originalName); case "original": default: return originalName; } } exports.getComponentDisplayName = getComponentDisplayName; function inDoc(node) { if (!node) return false; const doc = node.ownerDocument.documentElement; const parent = node.parentNode; return doc === node || doc === parent || !!(parent && parent.nodeType === 1 && doc.contains(parent)); } exports.inDoc = inDoc; exports.UNDEFINED = "__vue_devtool_undefined__"; exports.INFINITY = "__vue_devtool_infinity__"; exports.NEGATIVE_INFINITY = "__vue_devtool_negative_infinity__"; exports.NAN = "__vue_devtool_nan__"; exports.SPECIAL_TOKENS = { true: true, false: false, undefined: exports.UNDEFINED, null: null, "-Infinity": exports.NEGATIVE_INFINITY, Infinity: exports.INFINITY, NaN: exports.NAN }; exports.MAX_STRING_SIZE = 1e4; exports.MAX_ARRAY_SIZE = 5e3; function specialTokenToString(value) { if (value === null) { return "null"; } else if (value === exports.UNDEFINED) { return "undefined"; } else if (value === exports.NAN) { return "NaN"; } else if (value === exports.INFINITY) { return "Infinity"; } else if (value === exports.NEGATIVE_INFINITY) { return "-Infinity"; } return false; } exports.specialTokenToString = specialTokenToString; class EncodeCache { constructor() { this.map = /* @__PURE__ */ new Map(); } /** * Returns a result unique to each input data * @param {*} data Input data * @param {*} factory Function used to create the unique result */ cache(data, factory) { const cached2 = this.map.get(data); if (cached2) { return cached2; } else { const result = factory(data); this.map.set(data, result); return result; } } clear() { this.map.clear(); } } const encodeCache = new EncodeCache(); class ReviveCache { constructor(maxSize) { this.maxSize = maxSize; this.map = /* @__PURE__ */ new Map(); this.index = 0; this.size = 0; } cache(value) { const currentIndex = this.index; this.map.set(currentIndex, value); this.size++; if (this.size > this.maxSize) { this.map.delete(currentIndex - this.size); this.size--; } this.index++; return currentIndex; } read(id) { return this.map.get(id); } } const reviveCache = new ReviveCache(1e3); const replacers = { internal: replacerForInternal, user: replaceForUser }; function stringify(data, target = "internal") { encodeCache.clear(); return (0, transfer_1.stringifyCircularAutoChunks)(data, replacers[target]); } exports.stringify = stringify; function replacerForInternal(key) { var _a; const val = this[key]; const type = typeof val; if (Array.isArray(val)) { const l2 = val.length; if (l2 > exports.MAX_ARRAY_SIZE) { return { _isArray: true, length: l2, items: val.slice(0, exports.MAX_ARRAY_SIZE) }; } return val; } else if (typeof val === "string") { if (val.length > exports.MAX_STRING_SIZE) { return val.substring(0, exports.MAX_STRING_SIZE) + `... (${val.length} total length)`; } else { return val; } } else if (type === "undefined") { return exports.UNDEFINED; } else if (val === Infinity) { return exports.INFINITY; } else if (val === -Infinity) { return exports.NEGATIVE_INFINITY; } else if (type === "function") { return getCustomFunctionDetails(val); } else if (type === "symbol") { return `[native Symbol ${Symbol.prototype.toString.call(val)}]`; } else if (val !== null && type === "object") { const proto = Object.prototype.toString.call(val); if (proto === "[object Map]") { return encodeCache.cache(val, () => getCustomMapDetails(val)); } else if (proto === "[object Set]") { return encodeCache.cache(val, () => getCustomSetDetails(val)); } else if (proto === "[object RegExp]") { return `[native RegExp ${RegExp.prototype.toString.call(val)}]`; } else if (proto === "[object Date]") { return `[native Date ${Date.prototype.toString.call(val)}]`; } else if (proto === "[object Error]") { return `[native Error ${val.message}<>${val.stack}]`; } else if (val.state && val._vm) { return encodeCache.cache(val, () => (0, backend_1.getCustomStoreDetails)(val)); } else if (val.constructor && val.constructor.name === "VueRouter") { return encodeCache.cache(val, () => (0, backend_1.getCustomRouterDetails)(val)); } else if ((0, backend_1.isVueInstance)(val)) { return encodeCache.cache(val, () => (0, backend_1.getCustomInstanceDetails)(val)); } else if (typeof val.render === "function") { return encodeCache.cache(val, () => getCustomComponentDefinitionDetails(val)); } else if (val.constructor && val.constructor.name === "VNode") { return `[native VNode <${val.tag}>]`; } else if (typeof HTMLElement !== "undefined" && val instanceof HTMLElement) { return encodeCache.cache(val, () => getCustomHTMLElementDetails(val)); } else if (((_a = val.constructor) === null || _a === void 0 ? void 0 : _a.name) === "Store" && val._wrappedGetters) { return `[object Store]`; } else if (val.currentRoute) { return `[object Router]`; } const customDetails = (0, backend_1.getCustomObjectDetails)(val, proto); if (customDetails != null) return customDetails; } else if (Number.isNaN(val)) { return exports.NAN; } return sanitize(val); } function replaceForUser(key) { let val = this[key]; const type = typeof val; if ((val === null || val === void 0 ? void 0 : val._custom) && "value" in val._custom) { val = val._custom.value; } if (type !== "object") { if (val === exports.UNDEFINED) { return void 0; } else if (val === exports.INFINITY) { return Infinity; } else if (val === exports.NEGATIVE_INFINITY) { return -Infinity; } else if (val === exports.NAN) { return NaN; } return val; } return sanitize(val); } function getCustomMapDetails(val) { const list = []; val.forEach((value, key) => list.push({ key, value })); return { _custom: { type: "map", display: "Map", value: list, readOnly: true, fields: { abstract: true } } }; } exports.getCustomMapDetails = getCustomMapDetails; function reviveMap(val) { const result = /* @__PURE__ */ new Map(); const list = val._custom.value; for (let i2 = 0; i2 < list.length; i2++) { const { key, value } = list[i2]; result.set(key, revive(value)); } return result; } exports.reviveMap = reviveMap; function getCustomSetDetails(val) { const list = Array.from(val); return { _custom: { type: "set", display: `Set[${list.length}]`, value: list, readOnly: true } }; } exports.getCustomSetDetails = getCustomSetDetails; function reviveSet(val) { const result = /* @__PURE__ */ new Set(); const list = val._custom.value; for (let i2 = 0; i2 < list.length; i2++) { const value = list[i2]; result.add(revive(value)); } return result; } exports.reviveSet = reviveSet; function basename(filename, ext) { return path_1.default.basename(filename.replace(/^[a-zA-Z]:/, "").replace(/\\/g, "/"), ext); } function getComponentName(options) { const name = options.displayName || options.name || options._componentTag; if (name) { return name; } const file = options.__file; if (file) { return (0, exports.classify)(basename(file, ".vue")); } } exports.getComponentName = getComponentName; function getCustomComponentDefinitionDetails(def) { let display = getComponentName(def); if (display) { if (def.name && def.__file) { display += ` (${def.__file})`; } } else { display = "Unknown Component"; } return { _custom: { type: "component-definition", display, tooltip: "Component definition", ...def.__file ? { file: def.__file } : {} } }; } exports.getCustomComponentDefinitionDetails = getCustomComponentDefinitionDetails; function getCustomFunctionDetails(func) { let string = ""; let matches = null; try { string = Function.prototype.toString.call(func); matches = String.prototype.match.call(string, /\([\s\S]*?\)/); } catch (e2) { } const match = matches && matches[0]; const args = typeof match === "string" ? match : "(?)"; const name = typeof func.name === "string" ? func.name : ""; return { _custom: { type: "function", display: `function ${escape2(name)}${args}`, tooltip: string.trim() ? `
${string}
` : null, _reviveId: reviveCache.cache(func) } }; } exports.getCustomFunctionDetails = getCustomFunctionDetails; function getCustomHTMLElementDetails(value) { try { return { _custom: { type: "HTMLElement", display: `<${value.tagName.toLowerCase()}>`, value: namedNodeMapToObject(value.attributes), actions: [{ icon: "input", tooltip: "Log element to console", action: () => { console.log(value); } }] } }; } catch (e2) { return { _custom: { type: "HTMLElement", display: `${String(value)}` } }; } } exports.getCustomHTMLElementDetails = getCustomHTMLElementDetails; function namedNodeMapToObject(map) { const result = {}; const l2 = map.length; for (let i2 = 0; i2 < l2; i2++) { const node = map.item(i2); result[node.name] = node.value; } return result; } function getCustomRefDetails(instance, key, ref) { let value; if (Array.isArray(ref)) { value = ref.map((r2) => getCustomRefDetails(instance, key, r2)).map((data) => data.value); } else { let name; if (ref._isVue) { name = getComponentName(ref.$options); } else { name = ref.tagName.toLowerCase(); } value = { _custom: { display: `<${name}` + (ref.id ? ` id="${ref.id}"` : "") + (ref.className ? ` class="${ref.className}"` : "") + ">", uid: instance.__VUE_DEVTOOLS_UID__, type: "reference" } }; } return { type: "$refs", key, value, editable: false }; } exports.getCustomRefDetails = getCustomRefDetails; function parse2(data, revive2 = false) { return revive2 ? (0, transfer_1.parseCircularAutoChunks)(data, reviver) : (0, transfer_1.parseCircularAutoChunks)(data); } exports.parse = parse2; const specialTypeRE = /^\[native (\w+) (.*?)(<>((.|\s)*))?\]$/; const symbolRE = /^\[native Symbol Symbol\((.*)\)\]$/; function reviver(key, val) { return revive(val); } function revive(val) { if (val === exports.UNDEFINED) { return void 0; } else if (val === exports.INFINITY) { return Infinity; } else if (val === exports.NEGATIVE_INFINITY) { return -Infinity; } else if (val === exports.NAN) { return NaN; } else if (val && val._custom) { const { _custom: custom } = val; if (custom.type === "component") { return (0, backend_1.getInstanceMap)().get(custom.id); } else if (custom.type === "map") { return reviveMap(val); } else if (custom.type === "set") { return reviveSet(val); } else if (custom._reviveId) { return reviveCache.read(custom._reviveId); } else { return revive(custom.value); } } else if (symbolRE.test(val)) { const [, string] = symbolRE.exec(val); return Symbol.for(string); } else if (specialTypeRE.test(val)) { const [, type, string, , details] = specialTypeRE.exec(val); const result = new env_1.target[type](string); if (type === "Error" && details) { result.stack = details; } return result; } else { return val; } } exports.revive = revive; function sanitize(data) { if (!isPrimitive(data) && !Array.isArray(data) && !isPlainObject(data)) { return Object.prototype.toString.call(data); } else { return data; } } function isPlainObject(obj) { return Object.prototype.toString.call(obj) === "[object Object]"; } exports.isPlainObject = isPlainObject; function isPrimitive(data) { if (data == null) { return true; } const type = typeof data; return type === "string" || type === "number" || type === "boolean"; } function searchDeepInObject(obj, searchTerm) { const seen = /* @__PURE__ */ new Map(); const result = internalSearchObject(obj, searchTerm.toLowerCase(), seen, 0); seen.clear(); return result; } exports.searchDeepInObject = searchDeepInObject; const SEARCH_MAX_DEPTH = 10; function internalSearchObject(obj, searchTerm, seen, depth) { if (depth > SEARCH_MAX_DEPTH) { return false; } let match = false; const keys = Object.keys(obj); let key, value; for (let i2 = 0; i2 < keys.length; i2++) { key = keys[i2]; value = obj[key]; match = internalSearchCheck(searchTerm, key, value, seen, depth + 1); if (match) { break; } } return match; } function internalSearchArray(array, searchTerm, seen, depth) { if (depth > SEARCH_MAX_DEPTH) { return false; } let match = false; let value; for (let i2 = 0; i2 < array.length; i2++) { value = array[i2]; match = internalSearchCheck(searchTerm, null, value, seen, depth + 1); if (match) { break; } } return match; } function internalSearchCheck(searchTerm, key, value, seen, depth) { let match = false; let result; if (key === "_custom") { key = value.display; value = value.value; } (result = specialTokenToString(value)) && (value = result); if (key && compare(key, searchTerm)) { match = true; seen.set(value, true); } else if (seen.has(value)) { match = seen.get(value); } else if (Array.isArray(value)) { seen.set(value, null); match = internalSearchArray(value, searchTerm, seen, depth); seen.set(value, match); } else if (isPlainObject(value)) { seen.set(value, null); match = internalSearchObject(value, searchTerm, seen, depth); seen.set(value, match); } else if (compare(value, searchTerm)) { match = true; seen.set(value, true); } return match; } function compare(value, searchTerm) { return ("" + value).toLowerCase().indexOf(searchTerm) !== -1; } function sortByKey(state) { return state && state.slice().sort((a2, b2) => { if (a2.key < b2.key) return -1; if (a2.key > b2.key) return 1; return 0; }); } exports.sortByKey = sortByKey; function simpleGet(object, path) { const sections = Array.isArray(path) ? path : path.split("."); for (let i2 = 0; i2 < sections.length; i2++) { object = object[sections[i2]]; if (!object) { return void 0; } } return object; } exports.simpleGet = simpleGet; function focusInput(el) { el.focus(); el.setSelectionRange(0, el.value.length); } exports.focusInput = focusInput; function openInEditor(file) { const fileName = file.replace(/\\/g, "\\\\"); const src = `fetch('${shared_data_1.SharedData.openInEditorHost}__open-in-editor?file=${encodeURI(file)}').then(response => { if (response.ok) { console.log('File ${fileName} opened in editor') } else { const msg = 'Opening component ${fileName} failed' const target = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {} if (target.__VUE_DEVTOOLS_TOAST__) { target.__VUE_DEVTOOLS_TOAST__(msg, 'error') } else { console.log('%c' + msg, 'color:red') } console.log('Check the setup of your project, see https://devtools.vuejs.org/guide/open-in-editor.html') } })`; if (env_1.isChrome) { env_1.target.chrome.devtools.inspectedWindow.eval(src); } else { [eval][0](src); } } exports.openInEditor = openInEditor; const ESC = { "<": "<", ">": ">", '"': """, "&": "&" }; function escape2(s2) { return s2.replace(/[<>"&]/g, escapeChar); } exports.escape = escape2; function escapeChar(a2) { return ESC[a2] || a2; } function copyToClipboard(state) { let text; if (typeof state !== "object") { text = String(state); } else { text = stringify(state, "user"); } if (typeof document === "undefined") return; const dummyTextArea = document.createElement("textarea"); dummyTextArea.textContent = text; document.body.appendChild(dummyTextArea); dummyTextArea.select(); document.execCommand("copy"); document.body.removeChild(dummyTextArea); } exports.copyToClipboard = copyToClipboard; function isEmptyObject(obj) { return obj === exports.UNDEFINED || !obj || Object.keys(obj).length === 0; } exports.isEmptyObject = isEmptyObject; } ), /***/ "../../node_modules/events/events.js": ( /*!*******************************************!*\ !*** ../../node_modules/events/events.js ***! \*******************************************/ /***/ (module) => { var R2 = typeof Reflect === "object" ? Reflect : null; var ReflectApply = R2 && typeof R2.apply === "function" ? R2.apply : function ReflectApply2(target, receiver, args) { return Function.prototype.apply.call(target, receiver, args); }; var ReflectOwnKeys; if (R2 && typeof R2.ownKeys === "function") { ReflectOwnKeys = R2.ownKeys; } else if (Object.getOwnPropertySymbols) { ReflectOwnKeys = function ReflectOwnKeys2(target) { return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target)); }; } else { ReflectOwnKeys = function ReflectOwnKeys2(target) { return Object.getOwnPropertyNames(target); }; } function ProcessEmitWarning(warning) { if (console && console.warn) console.warn(warning); } var NumberIsNaN = Number.isNaN || function NumberIsNaN2(value) { return value !== value; }; function EventEmitter() { EventEmitter.init.call(this); } module.exports = EventEmitter; module.exports.once = once; EventEmitter.EventEmitter = EventEmitter; EventEmitter.prototype._events = void 0; EventEmitter.prototype._eventsCount = 0; EventEmitter.prototype._maxListeners = void 0; var defaultMaxListeners = 10; function checkListener(listener) { if (typeof listener !== "function") { throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener); } } Object.defineProperty(EventEmitter, "defaultMaxListeners", { enumerable: true, get: function() { return defaultMaxListeners; }, set: function(arg) { if (typeof arg !== "number" || arg < 0 || NumberIsNaN(arg)) { throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + arg + "."); } defaultMaxListeners = arg; } }); EventEmitter.init = function() { if (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) { this._events = /* @__PURE__ */ Object.create(null); this._eventsCount = 0; } this._maxListeners = this._maxListeners || void 0; }; EventEmitter.prototype.setMaxListeners = function setMaxListeners(n2) { if (typeof n2 !== "number" || n2 < 0 || NumberIsNaN(n2)) { throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + n2 + "."); } this._maxListeners = n2; return this; }; function _getMaxListeners(that) { if (that._maxListeners === void 0) return EventEmitter.defaultMaxListeners; return that._maxListeners; } EventEmitter.prototype.getMaxListeners = function getMaxListeners() { return _getMaxListeners(this); }; EventEmitter.prototype.emit = function emit(type) { var args = []; for (var i2 = 1; i2 < arguments.length; i2++) args.push(arguments[i2]); var doError = type === "error"; var events = this._events; if (events !== void 0) doError = doError && events.error === void 0; else if (!doError) return false; if (doError) { var er; if (args.length > 0) er = args[0]; if (er instanceof Error) { throw er; } var err = new Error("Unhandled error." + (er ? " (" + er.message + ")" : "")); err.context = er; throw err; } var handler = events[type]; if (handler === void 0) return false; if (typeof handler === "function") { ReflectApply(handler, this, args); } else { var len = handler.length; var listeners = arrayClone(handler, len); for (var i2 = 0; i2 < len; ++i2) ReflectApply(listeners[i2], this, args); } return true; }; function _addListener(target, type, listener, prepend) { var m2; var events; var existing; checkListener(listener); events = target._events; if (events === void 0) { events = target._events = /* @__PURE__ */ Object.create(null); target._eventsCount = 0; } else { if (events.newListener !== void 0) { target.emit( "newListener", type, listener.listener ? listener.listener : listener ); events = target._events; } existing = events[type]; } if (existing === void 0) { existing = events[type] = listener; ++target._eventsCount; } else { if (typeof existing === "function") { existing = events[type] = prepend ? [listener, existing] : [existing, listener]; } else if (prepend) { existing.unshift(listener); } else { existing.push(listener); } m2 = _getMaxListeners(target); if (m2 > 0 && existing.length > m2 && !existing.warned) { existing.warned = true; var w2 = new Error("Possible EventEmitter memory leak detected. " + existing.length + " " + String(type) + " listeners added. Use emitter.setMaxListeners() to increase limit"); w2.name = "MaxListenersExceededWarning"; w2.emitter = target; w2.type = type; w2.count = existing.length; ProcessEmitWarning(w2); } } return target; } EventEmitter.prototype.addListener = function addListener(type, listener) { return _addListener(this, type, listener, false); }; EventEmitter.prototype.on = EventEmitter.prototype.addListener; EventEmitter.prototype.prependListener = function prependListener(type, listener) { return _addListener(this, type, listener, true); }; function onceWrapper() { if (!this.fired) { this.target.removeListener(this.type, this.wrapFn); this.fired = true; if (arguments.length === 0) return this.listener.call(this.target); return this.listener.apply(this.target, arguments); } } function _onceWrap(target, type, listener) { var state = { fired: false, wrapFn: void 0, target, type, listener }; var wrapped = onceWrapper.bind(state); wrapped.listener = listener; state.wrapFn = wrapped; return wrapped; } EventEmitter.prototype.once = function once2(type, listener) { checkListener(listener); this.on(type, _onceWrap(this, type, listener)); return this; }; EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) { checkListener(listener); this.prependListener(type, _onceWrap(this, type, listener)); return this; }; EventEmitter.prototype.removeListener = function removeListener(type, listener) { var list, events, position, i2, originalListener; checkListener(listener); events = this._events; if (events === void 0) return this; list = events[type]; if (list === void 0) return this; if (list === listener || list.listener === listener) { if (--this._eventsCount === 0) this._events = /* @__PURE__ */ Object.create(null); else { delete events[type]; if (events.removeListener) this.emit("removeListener", type, list.listener || listener); } } else if (typeof list !== "function") { position = -1; for (i2 = list.length - 1; i2 >= 0; i2--) { if (list[i2] === listener || list[i2].listener === listener) { originalListener = list[i2].listener; position = i2; break; } } if (position < 0) return this; if (position === 0) list.shift(); else { spliceOne(list, position); } if (list.length === 1) events[type] = list[0]; if (events.removeListener !== void 0) this.emit("removeListener", type, originalListener || listener); } return this; }; EventEmitter.prototype.off = EventEmitter.prototype.removeListener; EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) { var listeners, events, i2; events = this._events; if (events === void 0) return this; if (events.removeListener === void 0) { if (arguments.length === 0) { this._events = /* @__PURE__ */ Object.create(null); this._eventsCount = 0; } else if (events[type] !== void 0) { if (--this._eventsCount === 0) this._events = /* @__PURE__ */ Object.create(null); else delete events[type]; } return this; } if (arguments.length === 0) { var keys = Object.keys(events); var key; for (i2 = 0; i2 < keys.length; ++i2) { key = keys[i2]; if (key === "removeListener") continue; this.removeAllListeners(key); } this.removeAllListeners("removeListener"); this._events = /* @__PURE__ */ Object.create(null); this._eventsCount = 0; return this; } listeners = events[type]; if (typeof listeners === "function") { this.removeListener(type, listeners); } else if (listeners !== void 0) { for (i2 = listeners.length - 1; i2 >= 0; i2--) { this.removeListener(type, listeners[i2]); } } return this; }; function _listeners(target, type, unwrap) { var events = target._events; if (events === void 0) return []; var evlistener = events[type]; if (evlistener === void 0) return []; if (typeof evlistener === "function") return unwrap ? [evlistener.listener || evlistener] : [evlistener]; return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length); } EventEmitter.prototype.listeners = function listeners(type) { return _listeners(this, type, true); }; EventEmitter.prototype.rawListeners = function rawListeners(type) { return _listeners(this, type, false); }; EventEmitter.listenerCount = function(emitter, type) { if (typeof emitter.listenerCount === "function") { return emitter.listenerCount(type); } else { return listenerCount.call(emitter, type); } }; EventEmitter.prototype.listenerCount = listenerCount; function listenerCount(type) { var events = this._events; if (events !== void 0) { var evlistener = events[type]; if (typeof evlistener === "function") { return 1; } else if (evlistener !== void 0) { return evlistener.length; } } return 0; } EventEmitter.prototype.eventNames = function eventNames() { return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : []; }; function arrayClone(arr, n2) { var copy = new Array(n2); for (var i2 = 0; i2 < n2; ++i2) copy[i2] = arr[i2]; return copy; } function spliceOne(list, index) { for (; index + 1 < list.length; index++) list[index] = list[index + 1]; list.pop(); } function unwrapListeners(arr) { var ret = new Array(arr.length); for (var i2 = 0; i2 < ret.length; ++i2) { ret[i2] = arr[i2].listener || arr[i2]; } return ret; } function once(emitter, name) { return new Promise(function(resolve, reject) { function errorListener(err) { emitter.removeListener(name, resolver); reject(err); } function resolver() { if (typeof emitter.removeListener === "function") { emitter.removeListener("error", errorListener); } resolve([].slice.call(arguments)); } eventTargetAgnosticAddListener(emitter, name, resolver, { once: true }); if (name !== "error") { addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true }); } }); } function addErrorHandlerIfEventEmitter(emitter, handler, flags) { if (typeof emitter.on === "function") { eventTargetAgnosticAddListener(emitter, "error", handler, flags); } } function eventTargetAgnosticAddListener(emitter, name, listener, flags) { if (typeof emitter.on === "function") { if (flags.once) { emitter.once(name, listener); } else { emitter.on(name, listener); } } else if (typeof emitter.addEventListener === "function") { emitter.addEventListener(name, function wrapListener(arg) { if (flags.once) { emitter.removeEventListener(name, wrapListener); } listener(arg); }); } else { throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof emitter); } } } ), /***/ "../../node_modules/path-browserify/index.js": ( /*!***************************************************!*\ !*** ../../node_modules/path-browserify/index.js ***! \***************************************************/ /***/ (module) => { function assertPath(path) { if (typeof path !== "string") { throw new TypeError("Path must be a string. Received " + JSON.stringify(path)); } } function normalizeStringPosix(path, allowAboveRoot) { var res = ""; var lastSegmentLength = 0; var lastSlash = -1; var dots = 0; var code; for (var i2 = 0; i2 <= path.length; ++i2) { if (i2 < path.length) code = path.charCodeAt(i2); else if (code === 47) break; else code = 47; if (code === 47) { if (lastSlash === i2 - 1 || dots === 1) ; else if (lastSlash !== i2 - 1 && dots === 2) { if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 || res.charCodeAt(res.length - 2) !== 46) { if (res.length > 2) { var lastSlashIndex = res.lastIndexOf("/"); if (lastSlashIndex !== res.length - 1) { if (lastSlashIndex === -1) { res = ""; lastSegmentLength = 0; } else { res = res.slice(0, lastSlashIndex); lastSegmentLength = res.length - 1 - res.lastIndexOf("/"); } lastSlash = i2; dots = 0; continue; } } else if (res.length === 2 || res.length === 1) { res = ""; lastSegmentLength = 0; lastSlash = i2; dots = 0; continue; } } if (allowAboveRoot) { if (res.length > 0) res += "/.."; else res = ".."; lastSegmentLength = 2; } } else { if (res.length > 0) res += "/" + path.slice(lastSlash + 1, i2); else res = path.slice(lastSlash + 1, i2); lastSegmentLength = i2 - lastSlash - 1; } lastSlash = i2; dots = 0; } else if (code === 46 && dots !== -1) { ++dots; } else { dots = -1; } } return res; } function _format(sep, pathObject) { var dir = pathObject.dir || pathObject.root; var base = pathObject.base || (pathObject.name || "") + (pathObject.ext || ""); if (!dir) { return base; } if (dir === pathObject.root) { return dir + base; } return dir + sep + base; } var posix = { // path.resolve([from ...], to) resolve: function resolve() { var resolvedPath = ""; var resolvedAbsolute = false; var cwd; for (var i2 = arguments.length - 1; i2 >= -1 && !resolvedAbsolute; i2--) { var path; if (i2 >= 0) path = arguments[i2]; else { if (cwd === void 0) cwd = process.cwd(); path = cwd; } assertPath(path); if (path.length === 0) { continue; } resolvedPath = path + "/" + resolvedPath; resolvedAbsolute = path.charCodeAt(0) === 47; } resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute); if (resolvedAbsolute) { if (resolvedPath.length > 0) return "/" + resolvedPath; else return "/"; } else if (resolvedPath.length > 0) { return resolvedPath; } else { return "."; } }, normalize: function normalize(path) { assertPath(path); if (path.length === 0) return "."; var isAbsolute = path.charCodeAt(0) === 47; var trailingSeparator = path.charCodeAt(path.length - 1) === 47; path = normalizeStringPosix(path, !isAbsolute); if (path.length === 0 && !isAbsolute) path = "."; if (path.length > 0 && trailingSeparator) path += "/"; if (isAbsolute) return "/" + path; return path; }, isAbsolute: function isAbsolute(path) { assertPath(path); return path.length > 0 && path.charCodeAt(0) === 47; }, join: function join() { if (arguments.length === 0) return "."; var joined; for (var i2 = 0; i2 < arguments.length; ++i2) { var arg = arguments[i2]; assertPath(arg); if (arg.length > 0) { if (joined === void 0) joined = arg; else joined += "/" + arg; } } if (joined === void 0) return "."; return posix.normalize(joined); }, relative: function relative(from, to) { assertPath(from); assertPath(to); if (from === to) return ""; from = posix.resolve(from); to = posix.resolve(to); if (from === to) return ""; var fromStart = 1; for (; fromStart < from.length; ++fromStart) { if (from.charCodeAt(fromStart) !== 47) break; } var fromEnd = from.length; var fromLen = fromEnd - fromStart; var toStart = 1; for (; toStart < to.length; ++toStart) { if (to.charCodeAt(toStart) !== 47) break; } var toEnd = to.length; var toLen = toEnd - toStart; var length = fromLen < toLen ? fromLen : toLen; var lastCommonSep = -1; var i2 = 0; for (; i2 <= length; ++i2) { if (i2 === length) { if (toLen > length) { if (to.charCodeAt(toStart + i2) === 47) { return to.slice(toStart + i2 + 1); } else if (i2 === 0) { return to.slice(toStart + i2); } } else if (fromLen > length) { if (from.charCodeAt(fromStart + i2) === 47) { lastCommonSep = i2; } else if (i2 === 0) { lastCommonSep = 0; } } break; } var fromCode = from.charCodeAt(fromStart + i2); var toCode = to.charCodeAt(toStart + i2); if (fromCode !== toCode) break; else if (fromCode === 47) lastCommonSep = i2; } var out = ""; for (i2 = fromStart + lastCommonSep + 1; i2 <= fromEnd; ++i2) { if (i2 === fromEnd || from.charCodeAt(i2) === 47) { if (out.length === 0) out += ".."; else out += "/.."; } } if (out.length > 0) return out + to.slice(toStart + lastCommonSep); else { toStart += lastCommonSep; if (to.charCodeAt(toStart) === 47) ++toStart; return to.slice(toStart); } }, _makeLong: function _makeLong(path) { return path; }, dirname: function dirname(path) { assertPath(path); if (path.length === 0) return "."; var code = path.charCodeAt(0); var hasRoot = code === 47; var end = -1; var matchedSlash = true; for (var i2 = path.length - 1; i2 >= 1; --i2) { code = path.charCodeAt(i2); if (code === 47) { if (!matchedSlash) { end = i2; break; } } else { matchedSlash = false; } } if (end === -1) return hasRoot ? "/" : "."; if (hasRoot && end === 1) return "//"; return path.slice(0, end); }, basename: function basename(path, ext) { if (ext !== void 0 && typeof ext !== "string") throw new TypeError('"ext" argument must be a string'); assertPath(path); var start = 0; var end = -1; var matchedSlash = true; var i2; if (ext !== void 0 && ext.length > 0 && ext.length <= path.length) { if (ext.length === path.length && ext === path) return ""; var extIdx = ext.length - 1; var firstNonSlashEnd = -1; for (i2 = path.length - 1; i2 >= 0; --i2) { var code = path.charCodeAt(i2); if (code === 47) { if (!matchedSlash) { start = i2 + 1; break; } } else { if (firstNonSlashEnd === -1) { matchedSlash = false; firstNonSlashEnd = i2 + 1; } if (extIdx >= 0) { if (code === ext.charCodeAt(extIdx)) { if (--extIdx === -1) { end = i2; } } else { extIdx = -1; end = firstNonSlashEnd; } } } } if (start === end) end = firstNonSlashEnd; else if (end === -1) end = path.length; return path.slice(start, end); } else { for (i2 = path.length - 1; i2 >= 0; --i2) { if (path.charCodeAt(i2) === 47) { if (!matchedSlash) { start = i2 + 1; break; } } else if (end === -1) { matchedSlash = false; end = i2 + 1; } } if (end === -1) return ""; return path.slice(start, end); } }, extname: function extname(path) { assertPath(path); var startDot = -1; var startPart = 0; var end = -1; var matchedSlash = true; var preDotState = 0; for (var i2 = path.length - 1; i2 >= 0; --i2) { var code = path.charCodeAt(i2); if (code === 47) { if (!matchedSlash) { startPart = i2 + 1; break; } continue; } if (end === -1) { matchedSlash = false; end = i2 + 1; } if (code === 46) { if (startDot === -1) startDot = i2; else if (preDotState !== 1) preDotState = 1; } else if (startDot !== -1) { preDotState = -1; } } if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot preDotState === 0 || // The (right-most) trimmed path component is exactly '..' preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) { return ""; } return path.slice(startDot, end); }, format: function format(pathObject) { if (pathObject === null || typeof pathObject !== "object") { throw new TypeError('The "pathObject" argument must be of type Object. Received type ' + typeof pathObject); } return _format("/", pathObject); }, parse: function parse2(path) { assertPath(path); var ret = { root: "", dir: "", base: "", ext: "", name: "" }; if (path.length === 0) return ret; var code = path.charCodeAt(0); var isAbsolute = code === 47; var start; if (isAbsolute) { ret.root = "/"; start = 1; } else { start = 0; } var startDot = -1; var startPart = 0; var end = -1; var matchedSlash = true; var i2 = path.length - 1; var preDotState = 0; for (; i2 >= start; --i2) { code = path.charCodeAt(i2); if (code === 47) { if (!matchedSlash) { startPart = i2 + 1; break; } continue; } if (end === -1) { matchedSlash = false; end = i2 + 1; } if (code === 46) { if (startDot === -1) startDot = i2; else if (preDotState !== 1) preDotState = 1; } else if (startDot !== -1) { preDotState = -1; } } if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot preDotState === 0 || // The (right-most) trimmed path component is exactly '..' preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) { if (end !== -1) { if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end); else ret.base = ret.name = path.slice(startPart, end); } } else { if (startPart === 0 && isAbsolute) { ret.name = path.slice(1, startDot); ret.base = path.slice(1, end); } else { ret.name = path.slice(startPart, startDot); ret.base = path.slice(startPart, end); } ret.ext = path.slice(startDot, end); } if (startPart > 0) ret.dir = path.slice(0, startPart - 1); else if (isAbsolute) ret.dir = "/"; return ret; }, sep: "/", delimiter: ":", win32: null, posix: null }; posix.posix = posix; module.exports = posix; } ) /******/ }; var __webpack_module_cache__ = {}; function __webpack_require__(moduleId) { var cachedModule = __webpack_module_cache__[moduleId]; if (cachedModule !== void 0) { return cachedModule.exports; } var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); return module.exports; } (() => { __webpack_require__.n = (module) => { var getter = module && module.__esModule ? ( /******/ () => module["default"] ) : ( /******/ () => module ); __webpack_require__.d(getter, { a: getter }); return getter; }; })(); (() => { __webpack_require__.d = (exports, definition) => { for (var key in definition) { if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); } } }; })(); (() => { __webpack_require__.g = function() { if (typeof globalThis === "object") return globalThis; try { return this || new Function("return this")(); } catch (e2) { if (typeof window === "object") return window; } }(); })(); (() => { __webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop); })(); (() => { __webpack_require__.r = (exports) => { if (typeof Symbol !== "undefined" && Symbol.toStringTag) { Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); } Object.defineProperty(exports, "__esModule", { value: true }); }; })(); var __webpack_exports__ = {}; (() => { /*!*********************!*\ !*** ./src/hook.ts ***! \*********************/ __webpack_require__.r(__webpack_exports__); var _back_hook__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( /*! @back/hook */ "../app-backend-core/lib/hook.js" ); var _vue_devtools_shared_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( /*! @vue-devtools/shared-utils */ "../shared-utils/lib/index.js" ); (0, _back_hook__WEBPACK_IMPORTED_MODULE_0__.installHook)(_vue_devtools_shared_utils__WEBPACK_IMPORTED_MODULE_1__.target); })(); })(); (function() { var __webpack_modules__ = { /***/ "../api/lib/esm/const.js": ( /*!*******************************!*\ !*** ../api/lib/esm/const.js ***! \*******************************/ /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { __webpack_require__2.r(__webpack_exports__2); __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "HOOK_PLUGIN_SETTINGS_SET": () => ( /* binding */ HOOK_PLUGIN_SETTINGS_SET ), /* harmony export */ "HOOK_SETUP": () => ( /* binding */ HOOK_SETUP ) /* harmony export */ }); const HOOK_SETUP = "devtools-plugin:setup"; const HOOK_PLUGIN_SETTINGS_SET = "plugin:settings:set"; } ), /***/ "../api/lib/esm/env.js": ( /*!*****************************!*\ !*** ../api/lib/esm/env.js ***! \*****************************/ /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { __webpack_require__2.r(__webpack_exports__2); __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "getDevtoolsGlobalHook": () => ( /* binding */ getDevtoolsGlobalHook ), /* harmony export */ "getTarget": () => ( /* binding */ getTarget2 ), /* harmony export */ "isProxyAvailable": () => ( /* binding */ isProxyAvailable ) /* harmony export */ }); function getDevtoolsGlobalHook() { return getTarget2().__VUE_DEVTOOLS_GLOBAL_HOOK__; } function getTarget2() { return typeof navigator !== "undefined" && typeof window !== "undefined" ? window : typeof globalThis !== "undefined" ? globalThis : typeof commonjsGlobal !== "undefined" ? commonjsGlobal : typeof my !== "undefined" ? my : {}; } const isProxyAvailable = typeof Proxy === "function"; } ), /***/ "../api/lib/esm/index.js": ( /*!*******************************!*\ !*** ../api/lib/esm/index.js ***! \*******************************/ /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { __webpack_require__2.r(__webpack_exports__2); __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "isPerformanceSupported": () => ( /* reexport safe */ _time_js__WEBPACK_IMPORTED_MODULE_0__.isPerformanceSupported ), /* harmony export */ "now": () => ( /* reexport safe */ _time_js__WEBPACK_IMPORTED_MODULE_0__.now ), /* harmony export */ "setupDevtoolsPlugin": () => ( /* binding */ setupDevtoolsPlugin ) /* harmony export */ }); var _env_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__2( /*! ./env.js */ "../api/lib/esm/env.js" ); var _const_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__2( /*! ./const.js */ "../api/lib/esm/const.js" ); var _proxy_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__2( /*! ./proxy.js */ "../api/lib/esm/proxy.js" ); var _time_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__2( /*! ./time.js */ "../api/lib/esm/time.js" ); function setupDevtoolsPlugin(pluginDescriptor, setupFn) { const descriptor = pluginDescriptor; const target = (0, _env_js__WEBPACK_IMPORTED_MODULE_1__.getTarget)(); const hook = (0, _env_js__WEBPACK_IMPORTED_MODULE_1__.getDevtoolsGlobalHook)(); const enableProxy = _env_js__WEBPACK_IMPORTED_MODULE_1__.isProxyAvailable && descriptor.enableEarlyProxy; if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) { hook.emit(_const_js__WEBPACK_IMPORTED_MODULE_2__.HOOK_SETUP, pluginDescriptor, setupFn); } else { const proxy = enableProxy ? new _proxy_js__WEBPACK_IMPORTED_MODULE_3__.ApiProxy(descriptor, hook) : null; const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || []; list.push({ pluginDescriptor: descriptor, setupFn, proxy }); if (proxy) setupFn(proxy.proxiedTarget); } } } ), /***/ "../api/lib/esm/proxy.js": ( /*!*******************************!*\ !*** ../api/lib/esm/proxy.js ***! \*******************************/ /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { __webpack_require__2.r(__webpack_exports__2); __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "ApiProxy": () => ( /* binding */ ApiProxy ) /* harmony export */ }); var _const_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__2( /*! ./const.js */ "../api/lib/esm/const.js" ); var _time_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__2( /*! ./time.js */ "../api/lib/esm/time.js" ); class ApiProxy { constructor(plugin, hook) { this.target = null; this.targetQueue = []; this.onQueue = []; this.plugin = plugin; this.hook = hook; const defaultSettings = {}; if (plugin.settings) { for (const id in plugin.settings) { const item = plugin.settings[id]; defaultSettings[id] = item.defaultValue; } } const localSettingsSaveId = `__vue-devtools-plugin-settings__${plugin.id}`; let currentSettings = Object.assign({}, defaultSettings); try { const raw = localStorage.getItem(localSettingsSaveId); const data = JSON.parse(raw); Object.assign(currentSettings, data); } catch (e2) { } this.fallbacks = { getSettings() { return currentSettings; }, setSettings(value) { try { localStorage.setItem(localSettingsSaveId, JSON.stringify(value)); } catch (e2) { } currentSettings = value; }, now() { return (0, _time_js__WEBPACK_IMPORTED_MODULE_0__.now)(); } }; if (hook) { hook.on(_const_js__WEBPACK_IMPORTED_MODULE_1__.HOOK_PLUGIN_SETTINGS_SET, (pluginId, value) => { if (pluginId === this.plugin.id) { this.fallbacks.setSettings(value); } }); } this.proxiedOn = new Proxy({}, { get: (_target, prop) => { if (this.target) { return this.target.on[prop]; } else { return (...args) => { this.onQueue.push({ method: prop, args }); }; } } }); this.proxiedTarget = new Proxy({}, { get: (_target, prop) => { if (this.target) { return this.target[prop]; } else if (prop === "on") { return this.proxiedOn; } else if (Object.keys(this.fallbacks).includes(prop)) { return (...args) => { this.targetQueue.push({ method: prop, args, resolve: () => { } }); return this.fallbacks[prop](...args); }; } else { return (...args) => { return new Promise((resolve) => { this.targetQueue.push({ method: prop, args, resolve }); }); }; } } }); } async setRealTarget(target) { this.target = target; for (const item of this.onQueue) { this.target.on[item.method](...item.args); } for (const item of this.targetQueue) { item.resolve(await this.target[item.method](...item.args)); } } } } ), /***/ "../api/lib/esm/time.js": ( /*!******************************!*\ !*** ../api/lib/esm/time.js ***! \******************************/ /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { __webpack_require__2.r(__webpack_exports__2); __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "isPerformanceSupported": () => ( /* binding */ isPerformanceSupported ), /* harmony export */ "now": () => ( /* binding */ now ) /* harmony export */ }); let supported; let perf; function isPerformanceSupported() { var _a; if (supported !== void 0) { return supported; } if (typeof window !== "undefined" && window.performance) { supported = true; perf = window.performance; } else if (typeof __webpack_require__2.g !== "undefined" && ((_a = __webpack_require__2.g.perf_hooks) === null || _a === void 0 ? void 0 : _a.performance)) { supported = true; perf = __webpack_require__2.g.perf_hooks.performance; } else { supported = false; } return supported; } function now() { return isPerformanceSupported() ? perf.now() : Date.now(); } } ), /***/ "../app-backend-api/lib/api.js": ( /*!*************************************!*\ !*** ../app-backend-api/lib/api.js ***! \*************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.DevtoolsPluginApiInstance = exports.DevtoolsApi = void 0; const shared_utils_1 = __webpack_require__2( /*! @vue-devtools/shared-utils */ "../shared-utils/lib/index.js" ); const devtools_api_1 = __webpack_require__2( /*! @vue/devtools-api */ "../api/lib/esm/index.js" ); const hooks_1 = __webpack_require__2( /*! ./hooks */ "../app-backend-api/lib/hooks.js" ); const pluginOn = []; class DevtoolsApi { constructor(backend, ctx) { this.stateEditor = new shared_utils_1.StateEditor(); this.backend = backend; this.ctx = ctx; this.bridge = ctx.bridge; this.on = new hooks_1.DevtoolsHookable(ctx); } async callHook(eventType, payload, ctx = this.ctx) { payload = await this.on.callHandlers(eventType, payload, ctx); for (const on of pluginOn) { payload = await on.callHandlers(eventType, payload, ctx); } return payload; } async transformCall(callName, ...args) { const payload = await this.callHook( "transformCall", { callName, inArgs: args, outArgs: args.slice() } ); return payload.outArgs; } async getAppRecordName(app, defaultName) { const payload = await this.callHook( "getAppRecordName", { app, name: null } ); if (payload.name) { return payload.name; } else { return `App ${defaultName}`; } } async getAppRootInstance(app) { const payload = await this.callHook( "getAppRootInstance", { app, root: null } ); return payload.root; } async registerApplication(app) { await this.callHook( "registerApplication", { app } ); } async walkComponentTree(instance, maxDepth = -1, filter = null, recursively = false) { const payload = await this.callHook( "walkComponentTree", { componentInstance: instance, componentTreeData: null, maxDepth, filter, recursively } ); return payload.componentTreeData; } async visitComponentTree(instance, treeNode, filter = null, app) { const payload = await this.callHook( "visitComponentTree", { app, componentInstance: instance, treeNode, filter } ); return payload.treeNode; } async walkComponentParents(instance) { const payload = await this.callHook( "walkComponentParents", { componentInstance: instance, parentInstances: [] } ); return payload.parentInstances; } async inspectComponent(instance, app) { const payload = await this.callHook( "inspectComponent", { app, componentInstance: instance, instanceData: null } ); return payload.instanceData; } async getComponentBounds(instance) { const payload = await this.callHook( "getComponentBounds", { componentInstance: instance, bounds: null } ); return payload.bounds; } async getComponentName(instance) { const payload = await this.callHook( "getComponentName", { componentInstance: instance, name: null } ); return payload.name; } async getComponentInstances(app) { const payload = await this.callHook( "getComponentInstances", { app, componentInstances: [] } ); return payload.componentInstances; } async getElementComponent(element) { const payload = await this.callHook( "getElementComponent", { element, componentInstance: null } ); return payload.componentInstance; } async getComponentRootElements(instance) { const payload = await this.callHook( "getComponentRootElements", { componentInstance: instance, rootElements: [] } ); return payload.rootElements; } async editComponentState(instance, dotPath, type, state, app) { const arrayPath = dotPath.split("."); const payload = await this.callHook( "editComponentState", { app, componentInstance: instance, path: arrayPath, type, state, set: (object, path = arrayPath, value = state.value, cb) => this.stateEditor.set(object, path, value, cb || this.stateEditor.createDefaultSetCallback(state)) } ); return payload.componentInstance; } async getComponentDevtoolsOptions(instance) { const payload = await this.callHook( "getAppDevtoolsOptions", { componentInstance: instance, options: null } ); return payload.options || {}; } async getComponentRenderCode(instance) { const payload = await this.callHook( "getComponentRenderCode", { componentInstance: instance, code: null } ); return { code: payload.code }; } async inspectTimelineEvent(eventData, app) { const payload = await this.callHook( "inspectTimelineEvent", { event: eventData.event, layerId: eventData.layerId, app, data: eventData.event.data, all: eventData.all } ); return payload.data; } async clearTimeline() { await this.callHook( "timelineCleared", {} ); } async getInspectorTree(inspectorId, app, filter) { const payload = await this.callHook( "getInspectorTree", { inspectorId, app, filter, rootNodes: [] } ); return payload.rootNodes; } async getInspectorState(inspectorId, app, nodeId) { const payload = await this.callHook( "getInspectorState", { inspectorId, app, nodeId, state: null } ); return payload.state; } async editInspectorState(inspectorId, app, nodeId, dotPath, type, state) { const arrayPath = dotPath.split("."); await this.callHook( "editInspectorState", { inspectorId, app, nodeId, path: arrayPath, type, state, set: (object, path = arrayPath, value = state.value, cb) => this.stateEditor.set(object, path, value, cb || this.stateEditor.createDefaultSetCallback(state)) } ); } now() { return (0, devtools_api_1.now)(); } } exports.DevtoolsApi = DevtoolsApi; class DevtoolsPluginApiInstance { constructor(plugin, appRecord, ctx) { this.bridge = ctx.bridge; this.ctx = ctx; this.plugin = plugin; this.appRecord = appRecord; this.backendApi = appRecord.backend.api; this.defaultSettings = (0, shared_utils_1.getPluginDefaultSettings)(plugin.descriptor.settings); this.on = new hooks_1.DevtoolsHookable(ctx, plugin); pluginOn.push(this.on); } // Plugin API async notifyComponentUpdate(instance = null) { if (!this.enabled || !this.hasPermission(shared_utils_1.PluginPermission.COMPONENTS)) return; if (instance) { this.ctx.hook.emit(shared_utils_1.HookEvents.COMPONENT_UPDATED, ...await this.backendApi.transformCall(shared_utils_1.HookEvents.COMPONENT_UPDATED, instance)); } else { this.ctx.hook.emit(shared_utils_1.HookEvents.COMPONENT_UPDATED); } } addTimelineLayer(options) { if (!this.enabled || !this.hasPermission(shared_utils_1.PluginPermission.TIMELINE)) return false; this.ctx.hook.emit(shared_utils_1.HookEvents.TIMELINE_LAYER_ADDED, options, this.plugin); return true; } addTimelineEvent(options) { if (!this.enabled || !this.hasPermission(shared_utils_1.PluginPermission.TIMELINE)) return false; this.ctx.hook.emit(shared_utils_1.HookEvents.TIMELINE_EVENT_ADDED, options, this.plugin); return true; } addInspector(options) { if (!this.enabled || !this.hasPermission(shared_utils_1.PluginPermission.CUSTOM_INSPECTOR)) return false; this.ctx.hook.emit(shared_utils_1.HookEvents.CUSTOM_INSPECTOR_ADD, options, this.plugin); return true; } sendInspectorTree(inspectorId) { if (!this.enabled || !this.hasPermission(shared_utils_1.PluginPermission.CUSTOM_INSPECTOR)) return false; this.ctx.hook.emit(shared_utils_1.HookEvents.CUSTOM_INSPECTOR_SEND_TREE, inspectorId, this.plugin); return true; } sendInspectorState(inspectorId) { if (!this.enabled || !this.hasPermission(shared_utils_1.PluginPermission.CUSTOM_INSPECTOR)) return false; this.ctx.hook.emit(shared_utils_1.HookEvents.CUSTOM_INSPECTOR_SEND_STATE, inspectorId, this.plugin); return true; } selectInspectorNode(inspectorId, nodeId) { if (!this.enabled || !this.hasPermission(shared_utils_1.PluginPermission.CUSTOM_INSPECTOR)) return false; this.ctx.hook.emit(shared_utils_1.HookEvents.CUSTOM_INSPECTOR_SELECT_NODE, inspectorId, nodeId, this.plugin); return true; } getComponentBounds(instance) { return this.backendApi.getComponentBounds(instance); } getComponentName(instance) { return this.backendApi.getComponentName(instance); } getComponentInstances(app) { return this.backendApi.getComponentInstances(app); } highlightElement(instance) { if (!this.enabled || !this.hasPermission(shared_utils_1.PluginPermission.COMPONENTS)) return false; this.ctx.hook.emit(shared_utils_1.HookEvents.COMPONENT_HIGHLIGHT, instance.__VUE_DEVTOOLS_UID__, this.plugin); return true; } unhighlightElement() { if (!this.enabled || !this.hasPermission(shared_utils_1.PluginPermission.COMPONENTS)) return false; this.ctx.hook.emit(shared_utils_1.HookEvents.COMPONENT_UNHIGHLIGHT, this.plugin); return true; } getSettings(pluginId) { return (0, shared_utils_1.getPluginSettings)(pluginId !== null && pluginId !== void 0 ? pluginId : this.plugin.descriptor.id, this.defaultSettings); } setSettings(value, pluginId) { (0, shared_utils_1.setPluginSettings)(pluginId !== null && pluginId !== void 0 ? pluginId : this.plugin.descriptor.id, value); } now() { return (0, devtools_api_1.now)(); } get enabled() { return (0, shared_utils_1.hasPluginPermission)(this.plugin.descriptor.id, shared_utils_1.PluginPermission.ENABLED); } hasPermission(permission2) { return (0, shared_utils_1.hasPluginPermission)(this.plugin.descriptor.id, permission2); } } exports.DevtoolsPluginApiInstance = DevtoolsPluginApiInstance; } ), /***/ "../app-backend-api/lib/app-record.js": ( /*!********************************************!*\ !*** ../app-backend-api/lib/app-record.js ***! \********************************************/ /***/ (__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", { value: true }); } ), /***/ "../app-backend-api/lib/backend-context.js": ( /*!*************************************************!*\ !*** ../app-backend-api/lib/backend-context.js ***! \*************************************************/ /***/ (__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.createBackendContext = void 0; function createBackendContext(options) { return { bridge: options.bridge, hook: options.hook, backends: [], appRecords: [], currentTab: null, currentAppRecord: null, currentInspectedComponentId: null, plugins: [], currentPlugin: null, timelineLayers: [], nextTimelineEventId: 0, timelineEventMap: /* @__PURE__ */ new Map(), perfUniqueGroupId: 0, customInspectors: [], timelineMarkers: [] }; } exports.createBackendContext = createBackendContext; } ), /***/ "../app-backend-api/lib/backend.js": ( /*!*****************************************!*\ !*** ../app-backend-api/lib/backend.js ***! \*****************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.createBackend = exports.defineBackend = exports.BuiltinBackendFeature = void 0; const api_1 = __webpack_require__2( /*! ./api */ "../app-backend-api/lib/api.js" ); (function(BuiltinBackendFeature) { BuiltinBackendFeature["FLUSH"] = "flush"; })(exports.BuiltinBackendFeature || (exports.BuiltinBackendFeature = {})); function defineBackend(options) { return options; } exports.defineBackend = defineBackend; function createBackend(options, ctx) { const backend = { options, api: null }; backend.api = new api_1.DevtoolsApi(backend, ctx); options.setup(backend.api); return backend; } exports.createBackend = createBackend; } ), /***/ "../app-backend-api/lib/global-hook.js": ( /*!*********************************************!*\ !*** ../app-backend-api/lib/global-hook.js ***! \*********************************************/ /***/ (__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", { value: true }); } ), /***/ "../app-backend-api/lib/hooks.js": ( /*!***************************************!*\ !*** ../app-backend-api/lib/hooks.js ***! \***************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.DevtoolsHookable = void 0; const shared_utils_1 = __webpack_require__2( /*! @vue-devtools/shared-utils */ "../shared-utils/lib/index.js" ); class DevtoolsHookable { constructor(ctx, plugin = null) { this.handlers = {}; this.ctx = ctx; this.plugin = plugin; } hook(eventType, handler, pluginPermision = null) { const handlers = this.handlers[eventType] = this.handlers[eventType] || []; if (this.plugin) { const originalHandler = handler; handler = (...args) => { var _a; if (!(0, shared_utils_1.hasPluginPermission)(this.plugin.descriptor.id, shared_utils_1.PluginPermission.ENABLED) || pluginPermision && !(0, shared_utils_1.hasPluginPermission)(this.plugin.descriptor.id, pluginPermision)) return; if (!this.plugin.descriptor.disableAppScope && ((_a = this.ctx.currentAppRecord) === null || _a === void 0 ? void 0 : _a.options.app) !== this.plugin.descriptor.app) return; if (!this.plugin.descriptor.disablePluginScope && args[0].pluginId != null && args[0].pluginId !== this.plugin.descriptor.id) return; return originalHandler(...args); }; } handlers.push({ handler, plugin: this.ctx.currentPlugin }); } async callHandlers(eventType, payload, ctx) { if (this.handlers[eventType]) { const handlers = this.handlers[eventType]; for (let i2 = 0; i2 < handlers.length; i2++) { const { handler, plugin } = handlers[i2]; try { await handler(payload, ctx); } catch (e2) { console.error(`An error occurred in hook '${eventType}'${plugin ? ` registered by plugin '${plugin.descriptor.id}'` : ""} with payload:`, payload); console.error(e2); } } } return payload; } transformCall(handler) { this.hook( "transformCall", handler ); } getAppRecordName(handler) { this.hook( "getAppRecordName", handler ); } getAppRootInstance(handler) { this.hook( "getAppRootInstance", handler ); } registerApplication(handler) { this.hook( "registerApplication", handler ); } walkComponentTree(handler) { this.hook( "walkComponentTree", handler, shared_utils_1.PluginPermission.COMPONENTS ); } visitComponentTree(handler) { this.hook( "visitComponentTree", handler, shared_utils_1.PluginPermission.COMPONENTS ); } walkComponentParents(handler) { this.hook( "walkComponentParents", handler, shared_utils_1.PluginPermission.COMPONENTS ); } inspectComponent(handler) { this.hook( "inspectComponent", handler, shared_utils_1.PluginPermission.COMPONENTS ); } getComponentBounds(handler) { this.hook( "getComponentBounds", handler, shared_utils_1.PluginPermission.COMPONENTS ); } getComponentName(handler) { this.hook( "getComponentName", handler, shared_utils_1.PluginPermission.COMPONENTS ); } getComponentInstances(handler) { this.hook( "getComponentInstances", handler, shared_utils_1.PluginPermission.COMPONENTS ); } getElementComponent(handler) { this.hook( "getElementComponent", handler, shared_utils_1.PluginPermission.COMPONENTS ); } getComponentRootElements(handler) { this.hook( "getComponentRootElements", handler, shared_utils_1.PluginPermission.COMPONENTS ); } editComponentState(handler) { this.hook( "editComponentState", handler, shared_utils_1.PluginPermission.COMPONENTS ); } getComponentDevtoolsOptions(handler) { this.hook( "getAppDevtoolsOptions", handler, shared_utils_1.PluginPermission.COMPONENTS ); } getComponentRenderCode(handler) { this.hook( "getComponentRenderCode", handler, shared_utils_1.PluginPermission.COMPONENTS ); } inspectTimelineEvent(handler) { this.hook( "inspectTimelineEvent", handler, shared_utils_1.PluginPermission.TIMELINE ); } timelineCleared(handler) { this.hook( "timelineCleared", handler, shared_utils_1.PluginPermission.TIMELINE ); } getInspectorTree(handler) { this.hook( "getInspectorTree", handler, shared_utils_1.PluginPermission.CUSTOM_INSPECTOR ); } getInspectorState(handler) { this.hook( "getInspectorState", handler, shared_utils_1.PluginPermission.CUSTOM_INSPECTOR ); } editInspectorState(handler) { this.hook( "editInspectorState", handler, shared_utils_1.PluginPermission.CUSTOM_INSPECTOR ); } setPluginSettings(handler) { this.hook( "setPluginSettings", handler ); } } exports.DevtoolsHookable = DevtoolsHookable; } ), /***/ "../app-backend-api/lib/index.js": ( /*!***************************************!*\ !*** ../app-backend-api/lib/index.js ***! \***************************************/ /***/ function(__unused_webpack_module, exports, __webpack_require__2) { var __createBinding = this && this.__createBinding || (Object.create ? function(o2, m2, k, k2) { if (k2 === void 0) k2 = k; var desc = Object.getOwnPropertyDescriptor(m2, k); if (!desc || ("get" in desc ? !m2.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m2[k]; } }; } Object.defineProperty(o2, k2, desc); } : function(o2, m2, k, k2) { if (k2 === void 0) k2 = k; o2[k2] = m2[k]; }); var __exportStar = this && this.__exportStar || function(m2, exports2) { for (var p2 in m2) if (p2 !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p2)) __createBinding(exports2, m2, p2); }; Object.defineProperty(exports, "__esModule", { value: true }); __exportStar(__webpack_require__2( /*! ./api */ "../app-backend-api/lib/api.js" ), exports); __exportStar(__webpack_require__2( /*! ./app-record */ "../app-backend-api/lib/app-record.js" ), exports); __exportStar(__webpack_require__2( /*! ./backend */ "../app-backend-api/lib/backend.js" ), exports); __exportStar(__webpack_require__2( /*! ./backend-context */ "../app-backend-api/lib/backend-context.js" ), exports); __exportStar(__webpack_require__2( /*! ./global-hook */ "../app-backend-api/lib/global-hook.js" ), exports); __exportStar(__webpack_require__2( /*! ./hooks */ "../app-backend-api/lib/hooks.js" ), exports); __exportStar(__webpack_require__2( /*! ./plugin */ "../app-backend-api/lib/plugin.js" ), exports); } ), /***/ "../app-backend-api/lib/plugin.js": ( /*!****************************************!*\ !*** ../app-backend-api/lib/plugin.js ***! \****************************************/ /***/ (__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", { value: true }); } ), /***/ "../app-backend-core/lib/app.js": ( /*!**************************************!*\ !*** ../app-backend-core/lib/app.js ***! \**************************************/ /***/ function(__unused_webpack_module, exports, __webpack_require__2) { var __importDefault = this && this.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports._legacy_getAndRegisterApps = exports.removeApp = exports.sendApps = exports.waitForAppsRegistration = exports.getAppRecord = exports.getAppRecordId = exports.mapAppRecord = exports.selectApp = exports.registerApp = void 0; const shared_utils_1 = __webpack_require__2( /*! @vue-devtools/shared-utils */ "../shared-utils/lib/index.js" ); const speakingurl_1 = __importDefault(__webpack_require__2( /*! speakingurl */ "../../node_modules/speakingurl/index.js" )); const queue_1 = __webpack_require__2( /*! ./util/queue */ "../app-backend-core/lib/util/queue.js" ); const scan_1 = __webpack_require__2( /*! ./legacy/scan */ "../app-backend-core/lib/legacy/scan.js" ); const timeline_1 = __webpack_require__2( /*! ./timeline */ "../app-backend-core/lib/timeline.js" ); const backend_1 = __webpack_require__2( /*! ./backend */ "../app-backend-core/lib/backend.js" ); const global_hook_js_1 = __webpack_require__2( /*! ./global-hook.js */ "../app-backend-core/lib/global-hook.js" ); const jobs = new queue_1.JobQueue(); let recordId = 0; const appRecordPromises = /* @__PURE__ */ new Map(); async function registerApp(options, ctx) { return jobs.queue("regiserApp", () => registerAppJob(options, ctx)); } exports.registerApp = registerApp; async function registerAppJob(options, ctx) { if (ctx.appRecords.find((a2) => a2.options.app === options.app)) { return; } if (!options.version) { throw new Error("[Vue Devtools] Vue version not found"); } const baseFrameworkVersion = parseInt(options.version.substring(0, options.version.indexOf("."))); for (let i2 = 0; i2 < backend_1.availableBackends.length; i2++) { const backendOptions = backend_1.availableBackends[i2]; if (backendOptions.frameworkVersion === baseFrameworkVersion) { const backend = (0, backend_1.getBackend)(backendOptions, ctx); await createAppRecord(options, backend, ctx); break; } } } async function createAppRecord(options, backend, ctx) { var _a, _b, _c; const rootInstance = await backend.api.getAppRootInstance(options.app); if (rootInstance) { if ((await backend.api.getComponentDevtoolsOptions(rootInstance)).hide) { options.app._vueDevtools_hidden_ = true; return; } recordId++; const name = await backend.api.getAppRecordName(options.app, recordId.toString()); const id = getAppRecordId(options.app, (0, speakingurl_1.default)(name)); const [el] = await backend.api.getComponentRootElements(rootInstance); const record2 = { id, name, options, backend, lastInspectedComponentId: null, instanceMap: /* @__PURE__ */ new Map(), rootInstance, perfGroupIds: /* @__PURE__ */ new Map(), iframe: shared_utils_1.isBrowser && el && document !== el.ownerDocument ? (_b = (_a = el.ownerDocument) === null || _a === void 0 ? void 0 : _a.location) === null || _b === void 0 ? void 0 : _b.pathname : null, meta: (_c = options.meta) !== null && _c !== void 0 ? _c : {} }; options.app.__VUE_DEVTOOLS_APP_RECORD__ = record2; const rootId = `${record2.id}:root`; record2.instanceMap.set(rootId, record2.rootInstance); record2.rootInstance.__VUE_DEVTOOLS_UID__ = rootId; (0, timeline_1.addBuiltinLayers)(record2, ctx); ctx.appRecords.push(record2); if (backend.options.setupApp) { backend.options.setupApp(backend.api, record2); } await backend.api.registerApplication(options.app); ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_APP_ADD, { appRecord: mapAppRecord(record2) }); if (appRecordPromises.has(options.app)) { for (const r2 of appRecordPromises.get(options.app)) { await r2(record2); } } if (ctx.currentAppRecord == null) { await selectApp(record2, ctx); } } else if (shared_utils_1.SharedData.debugInfo) { console.warn("[Vue devtools] No root instance found for app, it might have been unmounted", options.app); } } async function selectApp(record2, ctx) { ctx.currentAppRecord = record2; ctx.currentInspectedComponentId = record2.lastInspectedComponentId; ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_APP_SELECTED, { id: record2.id, lastInspectedComponentId: record2.lastInspectedComponentId }); } exports.selectApp = selectApp; function mapAppRecord(record2) { return { id: record2.id, name: record2.name, version: record2.options.version, iframe: record2.iframe }; } exports.mapAppRecord = mapAppRecord; const appIds = /* @__PURE__ */ new Set(); function getAppRecordId(app, defaultId) { if (app.__VUE_DEVTOOLS_APP_RECORD_ID__ != null) { return app.__VUE_DEVTOOLS_APP_RECORD_ID__; } let id = defaultId !== null && defaultId !== void 0 ? defaultId : (recordId++).toString(); if (defaultId && appIds.has(id)) { let count = 1; while (appIds.has(`${defaultId}_${count}`)) { count++; } id = `${defaultId}_${count}`; } appIds.add(id); app.__VUE_DEVTOOLS_APP_RECORD_ID__ = id; return id; } exports.getAppRecordId = getAppRecordId; async function getAppRecord(app, ctx) { var _a; const record2 = (_a = app.__VUE_DEVTOOLS_APP_RECORD__) !== null && _a !== void 0 ? _a : ctx.appRecords.find((ar) => ar.options.app === app); if (record2) { return record2; } if (app._vueDevtools_hidden_) return null; return new Promise((resolve, reject) => { let resolvers = appRecordPromises.get(app); let timedOut = false; if (!resolvers) { resolvers = []; appRecordPromises.set(app, resolvers); } const fn = (record3) => { if (!timedOut) { clearTimeout(timer); resolve(record3); } }; resolvers.push(fn); const timer = setTimeout(() => { timedOut = true; const index = resolvers.indexOf(fn); if (index !== -1) resolvers.splice(index, 1); if (shared_utils_1.SharedData.debugInfo) { console.log("Timed out waiting for app record", app); } reject(new Error(`Timed out getting app record for app`)); }, 6e4); }); } exports.getAppRecord = getAppRecord; function waitForAppsRegistration() { return jobs.queue("waitForAppsRegistrationNoop", async () => { }); } exports.waitForAppsRegistration = waitForAppsRegistration; async function sendApps(ctx) { const appRecords = []; for (const appRecord of ctx.appRecords) { appRecords.push(appRecord); } ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_APP_LIST, { apps: appRecords.map(mapAppRecord) }); } exports.sendApps = sendApps; function removeAppRecord(appRecord, ctx) { try { appIds.delete(appRecord.id); const index = ctx.appRecords.indexOf(appRecord); if (index !== -1) ctx.appRecords.splice(index, 1); (0, timeline_1.removeLayersForApp)(appRecord.options.app, ctx); ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_APP_REMOVE, { id: appRecord.id }); } catch (e2) { if (shared_utils_1.SharedData.debugInfo) { console.error(e2); } } } async function removeApp(app, ctx) { try { const appRecord = await getAppRecord(app, ctx); if (appRecord) { removeAppRecord(appRecord, ctx); } } catch (e2) { if (shared_utils_1.SharedData.debugInfo) { console.error(e2); } } } exports.removeApp = removeApp; let scanTimeout; function _legacy_getAndRegisterApps(ctx, clear = false) { setTimeout(() => { try { if (clear) { ctx.appRecords.forEach((appRecord) => { if (appRecord.meta.Vue) { removeAppRecord(appRecord, ctx); } }); } const apps = (0, scan_1.scan)(); clearTimeout(scanTimeout); if (!apps.length) { scanTimeout = setTimeout(() => _legacy_getAndRegisterApps(ctx), 1e3); } apps.forEach((app) => { const Vue2 = global_hook_js_1.hook.Vue; registerApp({ app, types: {}, version: Vue2 === null || Vue2 === void 0 ? void 0 : Vue2.version, meta: { Vue: Vue2 } }, ctx); }); } catch (e2) { console.error(`Error scanning for legacy apps:`); console.error(e2); } }, 0); } exports._legacy_getAndRegisterApps = _legacy_getAndRegisterApps; } ), /***/ "../app-backend-core/lib/backend.js": ( /*!******************************************!*\ !*** ../app-backend-core/lib/backend.js ***! \******************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.getBackend = exports.availableBackends = void 0; const app_backend_api_1 = __webpack_require__2( /*! @vue-devtools/app-backend-api */ "../app-backend-api/lib/index.js" ); const app_backend_vue3_1 = __webpack_require__2( /*! @vue-devtools/app-backend-vue3 */ "../app-backend-vue3/lib/index.js" ); const perf_1 = __webpack_require__2( /*! ./perf */ "../app-backend-core/lib/perf.js" ); exports.availableBackends = [ // backendVue1, // backendVue2, app_backend_vue3_1.backend ]; const enabledBackends = /* @__PURE__ */ new Map(); function getBackend(backendOptions, ctx) { let backend; if (!enabledBackends.has(backendOptions)) { backend = (0, app_backend_api_1.createBackend)(backendOptions, ctx); (0, perf_1.handleAddPerformanceTag)(backend, ctx); enabledBackends.set(backendOptions, backend); ctx.backends.push(backend); } else { backend = enabledBackends.get(backendOptions); } return backend; } exports.getBackend = getBackend; } ), /***/ "../app-backend-core/lib/component-pick.js": ( /*!*************************************************!*\ !*** ../app-backend-core/lib/component-pick.js ***! \*************************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); const shared_utils_1 = __webpack_require__2( /*! @vue-devtools/shared-utils */ "../shared-utils/lib/index.js" ); const highlighter_1 = __webpack_require__2( /*! ./highlighter */ "../app-backend-core/lib/highlighter.js" ); class ComponentPicker { constructor(ctx) { this.ctx = ctx; this.bindMethods(); } /** * Adds event listeners for mouseover and mouseup */ startSelecting() { if (!shared_utils_1.isBrowser) return; window.addEventListener("mouseover", this.elementMouseOver, true); window.addEventListener("click", this.elementClicked, true); window.addEventListener("mouseout", this.cancelEvent, true); window.addEventListener("mouseenter", this.cancelEvent, true); window.addEventListener("mouseleave", this.cancelEvent, true); window.addEventListener("mousedown", this.cancelEvent, true); window.addEventListener("mouseup", this.cancelEvent, true); } /** * Removes event listeners */ stopSelecting() { if (!shared_utils_1.isBrowser) return; window.removeEventListener("mouseover", this.elementMouseOver, true); window.removeEventListener("click", this.elementClicked, true); window.removeEventListener("mouseout", this.cancelEvent, true); window.removeEventListener("mouseenter", this.cancelEvent, true); window.removeEventListener("mouseleave", this.cancelEvent, true); window.removeEventListener("mousedown", this.cancelEvent, true); window.removeEventListener("mouseup", this.cancelEvent, true); (0, highlighter_1.unHighlight)(); } /** * Highlights a component on element mouse over */ async elementMouseOver(e2) { this.cancelEvent(e2); const el = e2.target; if (el) { await this.selectElementComponent(el); } (0, highlighter_1.unHighlight)(); if (this.selectedInstance) { (0, highlighter_1.highlight)(this.selectedInstance, this.selectedBackend, this.ctx); } } async selectElementComponent(el) { for (const backend of this.ctx.backends) { const instance = await backend.api.getElementComponent(el); if (instance) { this.selectedInstance = instance; this.selectedBackend = backend; return; } } this.selectedInstance = null; this.selectedBackend = null; } /** * Selects an instance in the component view */ async elementClicked(e2) { this.cancelEvent(e2); if (this.selectedInstance && this.selectedBackend) { const parentInstances = await this.selectedBackend.api.walkComponentParents(this.selectedInstance); this.ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_COMPONENT_PICK, { id: this.selectedInstance.__VUE_DEVTOOLS_UID__, parentIds: parentInstances.map((i2) => i2.__VUE_DEVTOOLS_UID__) }); } else { this.ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_COMPONENT_PICK_CANCELED, null); } this.stopSelecting(); } /** * Cancel a mouse event */ cancelEvent(e2) { e2.stopImmediatePropagation(); e2.preventDefault(); } /** * Bind class methods to the class scope to avoid rebind for event listeners */ bindMethods() { this.startSelecting = this.startSelecting.bind(this); this.stopSelecting = this.stopSelecting.bind(this); this.elementMouseOver = this.elementMouseOver.bind(this); this.elementClicked = this.elementClicked.bind(this); } } exports["default"] = ComponentPicker; } ), /***/ "../app-backend-core/lib/component.js": ( /*!********************************************!*\ !*** ../app-backend-core/lib/component.js ***! \********************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.sendComponentUpdateTracking = exports.refreshComponentTreeSearch = exports.getComponentInstance = exports.getComponentId = exports.editComponentState = exports.sendEmptyComponentData = exports.markSelectedInstance = exports.sendSelectedComponentData = exports.sendComponentTreeData = void 0; const shared_utils_1 = __webpack_require__2( /*! @vue-devtools/shared-utils */ "../shared-utils/lib/index.js" ); const app_backend_api_1 = __webpack_require__2( /*! @vue-devtools/app-backend-api */ "../app-backend-api/lib/index.js" ); const app_1 = __webpack_require__2( /*! ./app */ "../app-backend-core/lib/app.js" ); const MAX_$VM = 10; const $vmQueue = []; async function sendComponentTreeData(appRecord, instanceId, filter = "", maxDepth = null, recursively = false, ctx) { if (!instanceId || appRecord !== ctx.currentAppRecord) return; if (instanceId !== "_root" && ctx.currentAppRecord.backend.options.features.includes(app_backend_api_1.BuiltinBackendFeature.FLUSH)) { return; } const instance = getComponentInstance(appRecord, instanceId); if (!instance) { ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_COMPONENT_TREE, { instanceId, treeData: null, notFound: true }); } else { if (filter) filter = filter.toLowerCase(); if (maxDepth == null) { maxDepth = instance === ctx.currentAppRecord.rootInstance ? 2 : 1; } const data = await appRecord.backend.api.walkComponentTree(instance, maxDepth, filter, recursively); const payload = { instanceId, treeData: (0, shared_utils_1.stringify)(data) }; ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_COMPONENT_TREE, payload); } } exports.sendComponentTreeData = sendComponentTreeData; async function sendSelectedComponentData(appRecord, instanceId, ctx) { if (!instanceId || appRecord !== ctx.currentAppRecord) return; const instance = getComponentInstance(appRecord, instanceId); if (!instance) { sendEmptyComponentData(instanceId, ctx); } else { if (typeof window !== "undefined") { const win = window; win.$vm = instance; if ($vmQueue[0] !== instance) { if ($vmQueue.length >= MAX_$VM) { $vmQueue.pop(); } for (let i2 = $vmQueue.length; i2 > 0; i2--) { win[`$vm${i2}`] = $vmQueue[i2] = $vmQueue[i2 - 1]; } win.$vm0 = $vmQueue[0] = instance; } } if (shared_utils_1.SharedData.debugInfo) { console.log("[DEBUG] inspect", instance); } const parentInstances = await appRecord.backend.api.walkComponentParents(instance); const payload = { instanceId, data: await appRecord.backend.api.inspectComponent(instance, ctx.currentAppRecord.options.app), parentIds: parentInstances.map((i2) => i2.__VUE_DEVTOOLS_UID__) }; { payload.data.isSetup = !!instance.type.setup && !instance.type.render; } payload.data = (0, shared_utils_1.stringify)(payload.data); ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_COMPONENT_SELECTED_DATA, payload); markSelectedInstance(instanceId, ctx); } } exports.sendSelectedComponentData = sendSelectedComponentData; function markSelectedInstance(instanceId, ctx) { ctx.currentInspectedComponentId = instanceId; ctx.currentAppRecord.lastInspectedComponentId = instanceId; } exports.markSelectedInstance = markSelectedInstance; function sendEmptyComponentData(instanceId, ctx) { ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_COMPONENT_SELECTED_DATA, { instanceId, data: null }); } exports.sendEmptyComponentData = sendEmptyComponentData; async function editComponentState(instanceId, dotPath, type, state, ctx) { if (!instanceId) return; const instance = getComponentInstance(ctx.currentAppRecord, instanceId); if (instance) { if ("value" in state && state.value != null) { state.value = (0, shared_utils_1.parse)(state.value, true); } await ctx.currentAppRecord.backend.api.editComponentState(instance, dotPath, type, state, ctx.currentAppRecord.options.app); await sendSelectedComponentData(ctx.currentAppRecord, instanceId, ctx); } } exports.editComponentState = editComponentState; async function getComponentId(app, uid, instance, ctx) { try { if (instance.__VUE_DEVTOOLS_UID__) return instance.__VUE_DEVTOOLS_UID__; const appRecord = await (0, app_1.getAppRecord)(app, ctx); if (!appRecord) return null; const isRoot = appRecord.rootInstance === instance; return `${appRecord.id}:${isRoot ? "root" : uid}`; } catch (e2) { if (shared_utils_1.SharedData.debugInfo) { console.error(e2); } return null; } } exports.getComponentId = getComponentId; function getComponentInstance(appRecord, instanceId, ctx) { if (instanceId === "_root") { instanceId = `${appRecord.id}:root`; } const instance = appRecord.instanceMap.get(instanceId); if (!instance && shared_utils_1.SharedData.debugInfo) { console.warn(`Instance uid=${instanceId} not found`); } return instance; } exports.getComponentInstance = getComponentInstance; async function refreshComponentTreeSearch(ctx) { if (!ctx.currentAppRecord.componentFilter) return; await sendComponentTreeData(ctx.currentAppRecord, "_root", ctx.currentAppRecord.componentFilter, null, false, ctx); } exports.refreshComponentTreeSearch = refreshComponentTreeSearch; async function sendComponentUpdateTracking(instanceId, ctx) { if (!instanceId) return; const payload = { instanceId, time: Date.now() // Use normal date }; ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_COMPONENT_UPDATED, payload); } exports.sendComponentUpdateTracking = sendComponentUpdateTracking; } ), /***/ "../app-backend-core/lib/flash.js": ( /*!****************************************!*\ !*** ../app-backend-core/lib/flash.js ***! \****************************************/ /***/ (__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.flashComponent = void 0; async function flashComponent(instance, backend) { const bounds = await backend.api.getComponentBounds(instance); if (bounds) { let overlay = instance.__VUE_DEVTOOLS_FLASH; if (!overlay) { overlay = document.createElement("div"); instance.__VUE_DEVTOOLS_FLASH = overlay; overlay.style.border = "2px rgba(65, 184, 131, 0.7) solid"; overlay.style.position = "fixed"; overlay.style.zIndex = "99999999999998"; overlay.style.pointerEvents = "none"; overlay.style.borderRadius = "3px"; overlay.style.boxSizing = "border-box"; document.body.appendChild(overlay); } overlay.style.opacity = "1"; overlay.style.transition = null; overlay.style.width = Math.round(bounds.width) + "px"; overlay.style.height = Math.round(bounds.height) + "px"; overlay.style.left = Math.round(bounds.left) + "px"; overlay.style.top = Math.round(bounds.top) + "px"; requestAnimationFrame(() => { overlay.style.transition = "opacity 1s"; overlay.style.opacity = "0"; }); clearTimeout(overlay._timer); overlay._timer = setTimeout(() => { document.body.removeChild(overlay); instance.__VUE_DEVTOOLS_FLASH = null; }, 1e3); } } exports.flashComponent = flashComponent; } ), /***/ "../app-backend-core/lib/global-hook.js": ( /*!**********************************************!*\ !*** ../app-backend-core/lib/global-hook.js ***! \**********************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.hook = void 0; const shared_utils_1 = __webpack_require__2( /*! @vue-devtools/shared-utils */ "../shared-utils/lib/index.js" ); exports.hook = shared_utils_1.target.__VUE_DEVTOOLS_GLOBAL_HOOK__; } ), /***/ "../app-backend-core/lib/highlighter.js": ( /*!**********************************************!*\ !*** ../app-backend-core/lib/highlighter.js ***! \**********************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.unHighlight = exports.highlight = void 0; const shared_utils_1 = __webpack_require__2( /*! @vue-devtools/shared-utils */ "../shared-utils/lib/index.js" ); const queue_1 = __webpack_require__2( /*! ./util/queue */ "../app-backend-core/lib/util/queue.js" ); let overlay; let overlayContent; let currentInstance; function createOverlay() { if (overlay || !shared_utils_1.isBrowser) return; overlay = document.createElement("div"); overlay.style.backgroundColor = "rgba(65, 184, 131, 0.35)"; overlay.style.position = "fixed"; overlay.style.zIndex = "99999999999998"; overlay.style.pointerEvents = "none"; overlay.style.borderRadius = "3px"; overlayContent = document.createElement("div"); overlayContent.style.position = "fixed"; overlayContent.style.zIndex = "99999999999999"; overlayContent.style.pointerEvents = "none"; overlayContent.style.backgroundColor = "white"; overlayContent.style.fontFamily = "monospace"; overlayContent.style.fontSize = "11px"; overlayContent.style.padding = "4px 8px"; overlayContent.style.borderRadius = "3px"; overlayContent.style.color = "#333"; overlayContent.style.textAlign = "center"; overlayContent.style.border = "rgba(65, 184, 131, 0.5) 1px solid"; overlayContent.style.backgroundClip = "padding-box"; } const jobQueue = new queue_1.JobQueue(); async function highlight(instance, backend, ctx) { await jobQueue.queue("highlight", async () => { if (!instance) return; const bounds = await backend.api.getComponentBounds(instance); if (bounds) { createOverlay(); const name = await backend.api.getComponentName(instance) || "Anonymous"; const pre = document.createElement("span"); pre.style.opacity = "0.6"; pre.innerText = "<"; const text = document.createElement("span"); text.style.fontWeight = "bold"; text.style.color = "#09ab56"; text.innerText = name; const post = document.createElement("span"); post.style.opacity = "0.6"; post.innerText = ">"; const size = document.createElement("span"); size.style.opacity = "0.5"; size.style.marginLeft = "6px"; size.appendChild(document.createTextNode((Math.round(bounds.width * 100) / 100).toString())); const multiply = document.createElement("span"); multiply.style.marginLeft = multiply.style.marginRight = "2px"; multiply.innerText = "×"; size.appendChild(multiply); size.appendChild(document.createTextNode((Math.round(bounds.height * 100) / 100).toString())); currentInstance = instance; await showOverlay(bounds, [pre, text, post, size]); } startUpdateTimer(backend); }); } exports.highlight = highlight; async function unHighlight() { await jobQueue.queue("unHighlight", async () => { var _a, _b; (_a = overlay === null || overlay === void 0 ? void 0 : overlay.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(overlay); (_b = overlayContent === null || overlayContent === void 0 ? void 0 : overlayContent.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(overlayContent); currentInstance = null; stopUpdateTimer(); }); } exports.unHighlight = unHighlight; function showOverlay(bounds, children = null) { if (!shared_utils_1.isBrowser || !children.length) return; positionOverlay(bounds); document.body.appendChild(overlay); overlayContent.innerHTML = ""; children.forEach((child) => overlayContent.appendChild(child)); document.body.appendChild(overlayContent); positionOverlayContent(bounds); } function positionOverlay({ width = 0, height = 0, top = 0, left = 0 }) { overlay.style.width = Math.round(width) + "px"; overlay.style.height = Math.round(height) + "px"; overlay.style.left = Math.round(left) + "px"; overlay.style.top = Math.round(top) + "px"; } function positionOverlayContent({ height = 0, top = 0, left = 0 }) { const contentWidth = overlayContent.offsetWidth; const contentHeight = overlayContent.offsetHeight; let contentLeft = left; if (contentLeft < 0) { contentLeft = 0; } else if (contentLeft + contentWidth > window.innerWidth) { contentLeft = window.innerWidth - contentWidth; } let contentTop = top - contentHeight - 2; if (contentTop < 0) { contentTop = top + height + 2; } if (contentTop < 0) { contentTop = 0; } else if (contentTop + contentHeight > window.innerHeight) { contentTop = window.innerHeight - contentHeight; } overlayContent.style.left = ~~contentLeft + "px"; overlayContent.style.top = ~~contentTop + "px"; } async function updateOverlay(backend, ctx) { if (currentInstance) { const bounds = await backend.api.getComponentBounds(currentInstance); if (bounds) { const sizeEl = overlayContent.children.item(3); const widthEl = sizeEl.childNodes[0]; widthEl.textContent = (Math.round(bounds.width * 100) / 100).toString(); const heightEl = sizeEl.childNodes[2]; heightEl.textContent = (Math.round(bounds.height * 100) / 100).toString(); positionOverlay(bounds); positionOverlayContent(bounds); } } } let updateTimer; function startUpdateTimer(backend, ctx) { stopUpdateTimer(); updateTimer = setInterval(() => { jobQueue.queue("updateOverlay", async () => { await updateOverlay(backend); }); }, 1e3 / 30); } function stopUpdateTimer() { clearInterval(updateTimer); } } ), /***/ "../app-backend-core/lib/index.js": ( /*!****************************************!*\ !*** ../app-backend-core/lib/index.js ***! \****************************************/ /***/ function(__unused_webpack_module, exports, __webpack_require__2) { var __importDefault = this && this.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; var _a, _b; Object.defineProperty(exports, "__esModule", { value: true }); exports.initBackend = void 0; const app_backend_api_1 = __webpack_require__2( /*! @vue-devtools/app-backend-api */ "../app-backend-api/lib/index.js" ); const shared_utils_1 = __webpack_require__2( /*! @vue-devtools/shared-utils */ "../shared-utils/lib/index.js" ); const debounce_1 = __importDefault(__webpack_require__2( /*! lodash/debounce */ "../../node_modules/lodash/debounce.js" )); const throttle_1 = __importDefault(__webpack_require__2( /*! lodash/throttle */ "../../node_modules/lodash/throttle.js" )); const global_hook_1 = __webpack_require__2( /*! ./global-hook */ "../app-backend-core/lib/global-hook.js" ); const subscriptions_1 = __webpack_require__2( /*! ./util/subscriptions */ "../app-backend-core/lib/util/subscriptions.js" ); const highlighter_1 = __webpack_require__2( /*! ./highlighter */ "../app-backend-core/lib/highlighter.js" ); const timeline_1 = __webpack_require__2( /*! ./timeline */ "../app-backend-core/lib/timeline.js" ); const component_pick_1 = __importDefault(__webpack_require__2( /*! ./component-pick */ "../app-backend-core/lib/component-pick.js" )); const component_1 = __webpack_require__2( /*! ./component */ "../app-backend-core/lib/component.js" ); const plugin_1 = __webpack_require__2( /*! ./plugin */ "../app-backend-core/lib/plugin.js" ); const devtools_api_1 = __webpack_require__2( /*! @vue/devtools-api */ "../api/lib/esm/index.js" ); const app_1 = __webpack_require__2( /*! ./app */ "../app-backend-core/lib/app.js" ); const inspector_1 = __webpack_require__2( /*! ./inspector */ "../app-backend-core/lib/inspector.js" ); const timeline_screenshot_1 = __webpack_require__2( /*! ./timeline-screenshot */ "../app-backend-core/lib/timeline-screenshot.js" ); const perf_1 = __webpack_require__2( /*! ./perf */ "../app-backend-core/lib/perf.js" ); const page_config_1 = __webpack_require__2( /*! ./page-config */ "../app-backend-core/lib/page-config.js" ); const timeline_marker_1 = __webpack_require__2( /*! ./timeline-marker */ "../app-backend-core/lib/timeline-marker.js" ); const flash_js_1 = __webpack_require__2( /*! ./flash.js */ "../app-backend-core/lib/flash.js" ); let ctx = (_a = shared_utils_1.target.__vdevtools_ctx) !== null && _a !== void 0 ? _a : null; let connected = (_b = shared_utils_1.target.__vdevtools_connected) !== null && _b !== void 0 ? _b : false; async function initBackend(bridge) { await (0, shared_utils_1.initSharedData)({ bridge, persist: false }); shared_utils_1.SharedData.isBrowser = shared_utils_1.isBrowser; (0, page_config_1.initOnPageConfig)(); if (!connected) { ctx = shared_utils_1.target.__vdevtools_ctx = (0, app_backend_api_1.createBackendContext)({ bridge, hook: global_hook_1.hook }); shared_utils_1.SharedData.legacyApps = false; if (global_hook_1.hook.Vue) { connect(); (0, app_1._legacy_getAndRegisterApps)(ctx, true); shared_utils_1.SharedData.legacyApps = true; } global_hook_1.hook.on(shared_utils_1.HookEvents.INIT, () => { (0, app_1._legacy_getAndRegisterApps)(ctx, true); shared_utils_1.SharedData.legacyApps = true; }); global_hook_1.hook.on(shared_utils_1.HookEvents.APP_ADD, async (app) => { await (0, app_1.registerApp)(app, ctx); connect(); }); if (global_hook_1.hook.apps.length) { global_hook_1.hook.apps.forEach((app) => { (0, app_1.registerApp)(app, ctx); connect(); }); } } else { ctx.bridge = bridge; connectBridge(); ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_RECONNECTED); } } exports.initBackend = initBackend; async function connect() { if (connected) { return; } connected = shared_utils_1.target.__vdevtools_connected = true; await (0, app_1.waitForAppsRegistration)(); connectBridge(); ctx.currentTab = shared_utils_1.BuiltinTabs.COMPONENTS; global_hook_1.hook.on(shared_utils_1.HookEvents.APP_UNMOUNT, async (app) => { await (0, app_1.removeApp)(app, ctx); }); const _sendComponentUpdate = async (appRecord, id) => { try { if (id && (0, subscriptions_1.isSubscribed)(shared_utils_1.BridgeSubscriptions.SELECTED_COMPONENT_DATA, (sub) => sub.payload.instanceId === id)) { await (0, component_1.sendSelectedComponentData)(appRecord, id, ctx); } if ((0, subscriptions_1.isSubscribed)(shared_utils_1.BridgeSubscriptions.COMPONENT_TREE, (sub) => sub.payload.instanceId === id)) { await (0, component_1.sendComponentTreeData)(appRecord, id, appRecord.componentFilter, 0, false, ctx); } } catch (e2) { if (shared_utils_1.SharedData.debugInfo) { console.error(e2); } } }; const sendComponentUpdate = (0, throttle_1.default)(_sendComponentUpdate, 100); global_hook_1.hook.on(shared_utils_1.HookEvents.COMPONENT_UPDATED, async (app, uid, parentUid, component) => { try { if (!app || typeof uid !== "number" && !uid || !component) return; let id; let appRecord; if (app && uid != null) { id = await (0, component_1.getComponentId)(app, uid, component, ctx); appRecord = await (0, app_1.getAppRecord)(app, ctx); } else { id = ctx.currentInspectedComponentId; appRecord = ctx.currentAppRecord; } if (shared_utils_1.SharedData.trackUpdates) { await (0, component_1.sendComponentUpdateTracking)(id, ctx); } if (shared_utils_1.SharedData.flashUpdates) { await (0, flash_js_1.flashComponent)(component, appRecord.backend); } await sendComponentUpdate(appRecord, id); } catch (e2) { if (shared_utils_1.SharedData.debugInfo) { console.error(e2); } } }); global_hook_1.hook.on(shared_utils_1.HookEvents.COMPONENT_ADDED, async (app, uid, parentUid, component) => { try { if (!app || typeof uid !== "number" && !uid || !component) return; const id = await (0, component_1.getComponentId)(app, uid, component, ctx); const appRecord = await (0, app_1.getAppRecord)(app, ctx); if (component) { if (component.__VUE_DEVTOOLS_UID__ == null) { component.__VUE_DEVTOOLS_UID__ = id; } if (!appRecord.instanceMap.has(id)) { appRecord.instanceMap.set(id, component); } } if (uid !== 0 && parentUid === void 0) { const parentId = `${id.split(":")[0]}:root`; (0, component_1.sendComponentTreeData)(appRecord, parentId, appRecord.componentFilter, null, false, ctx); } if (false) ; if (parentUid != null) { const parentInstances = await appRecord.backend.api.walkComponentParents(component); if (parentInstances.length) { for (let i2 = 0; i2 < parentInstances.length; i2++) { const parentId = await (0, component_1.getComponentId)(app, parentUid, parentInstances[i2], ctx); if (i2 < 2 && (0, subscriptions_1.isSubscribed)(shared_utils_1.BridgeSubscriptions.COMPONENT_TREE, (sub) => sub.payload.instanceId === parentId)) { (0, shared_utils_1.raf)(() => { (0, component_1.sendComponentTreeData)(appRecord, parentId, appRecord.componentFilter, null, false, ctx); }); } if (shared_utils_1.SharedData.trackUpdates) { await (0, component_1.sendComponentUpdateTracking)(parentId, ctx); } } } } if (ctx.currentInspectedComponentId === id) { await (0, component_1.sendSelectedComponentData)(appRecord, id, ctx); } if (shared_utils_1.SharedData.trackUpdates) { await (0, component_1.sendComponentUpdateTracking)(id, ctx); } if (shared_utils_1.SharedData.flashUpdates) { await (0, flash_js_1.flashComponent)(component, appRecord.backend); } await (0, component_1.refreshComponentTreeSearch)(ctx); } catch (e2) { if (shared_utils_1.SharedData.debugInfo) { console.error(e2); } } }); global_hook_1.hook.on(shared_utils_1.HookEvents.COMPONENT_REMOVED, async (app, uid, parentUid, component) => { try { if (!app || typeof uid !== "number" && !uid || !component) return; const appRecord = await (0, app_1.getAppRecord)(app, ctx); if (uid !== 0 && parentUid === void 0) { const id2 = await (0, component_1.getComponentId)(app, uid, component, ctx); const parentId = `${id2.split(":")[0]}:root`; (0, component_1.sendComponentTreeData)(appRecord, parentId, appRecord.componentFilter, null, false, ctx); } if (parentUid != null) { const parentInstances = await appRecord.backend.api.walkComponentParents(component); if (parentInstances.length) { const parentId = await (0, component_1.getComponentId)(app, parentUid, parentInstances[0], ctx); if ((0, subscriptions_1.isSubscribed)(shared_utils_1.BridgeSubscriptions.COMPONENT_TREE, (sub) => sub.payload.instanceId === parentId)) { (0, shared_utils_1.raf)(async () => { try { (0, component_1.sendComponentTreeData)(await (0, app_1.getAppRecord)(app, ctx), parentId, appRecord.componentFilter, null, false, ctx); } catch (e2) { if (shared_utils_1.SharedData.debugInfo) { console.error(e2); } } }); } } } const id = await (0, component_1.getComponentId)(app, uid, component, ctx); if ((0, subscriptions_1.isSubscribed)(shared_utils_1.BridgeSubscriptions.SELECTED_COMPONENT_DATA, (sub) => sub.payload.instanceId === id)) { await (0, component_1.sendEmptyComponentData)(id, ctx); } appRecord.instanceMap.delete(id); await (0, component_1.refreshComponentTreeSearch)(ctx); } catch (e2) { if (shared_utils_1.SharedData.debugInfo) { console.error(e2); } } }); global_hook_1.hook.on(shared_utils_1.HookEvents.TRACK_UPDATE, (id, ctx2) => { (0, component_1.sendComponentUpdateTracking)(id, ctx2); }); global_hook_1.hook.on(shared_utils_1.HookEvents.FLASH_UPDATE, (instance, backend) => { (0, flash_js_1.flashComponent)(instance, backend); }); global_hook_1.hook.on(shared_utils_1.HookEvents.PERFORMANCE_START, async (app, uid, vm, type, time) => { await (0, perf_1.performanceMarkStart)(app, uid, vm, type, time, ctx); }); global_hook_1.hook.on(shared_utils_1.HookEvents.PERFORMANCE_END, async (app, uid, vm, type, time) => { await (0, perf_1.performanceMarkEnd)(app, uid, vm, type, time, ctx); }); global_hook_1.hook.on(shared_utils_1.HookEvents.COMPONENT_HIGHLIGHT, async (instanceId) => { await (0, highlighter_1.highlight)(ctx.currentAppRecord.instanceMap.get(instanceId), ctx.currentAppRecord.backend, ctx); }); global_hook_1.hook.on(shared_utils_1.HookEvents.COMPONENT_UNHIGHLIGHT, async () => { await (0, highlighter_1.unHighlight)(); }); (0, timeline_1.setupTimeline)(ctx); global_hook_1.hook.on(shared_utils_1.HookEvents.TIMELINE_LAYER_ADDED, async (options, plugin) => { const appRecord = await (0, app_1.getAppRecord)(plugin.descriptor.app, ctx); ctx.timelineLayers.push({ ...options, appRecord, plugin, events: [] }); ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_TIMELINE_LAYER_ADD, {}); }); global_hook_1.hook.on(shared_utils_1.HookEvents.TIMELINE_EVENT_ADDED, async (options, plugin) => { await (0, timeline_1.addTimelineEvent)(options, plugin.descriptor.app, ctx); }); global_hook_1.hook.on(shared_utils_1.HookEvents.CUSTOM_INSPECTOR_ADD, async (options, plugin) => { const appRecord = await (0, app_1.getAppRecord)(plugin.descriptor.app, ctx); ctx.customInspectors.push({ ...options, appRecord, plugin, treeFilter: "", selectedNodeId: null }); ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_CUSTOM_INSPECTOR_ADD, {}); }); global_hook_1.hook.on(shared_utils_1.HookEvents.CUSTOM_INSPECTOR_SEND_TREE, async (inspectorId, plugin) => { const inspector = (0, inspector_1.getInspector)(inspectorId, plugin.descriptor.app, ctx); if (inspector) { await (0, inspector_1.sendInspectorTree)(inspector, ctx); } else if (shared_utils_1.SharedData.debugInfo) { console.warn(`Inspector ${inspectorId} not found`); } }); global_hook_1.hook.on(shared_utils_1.HookEvents.CUSTOM_INSPECTOR_SEND_STATE, async (inspectorId, plugin) => { const inspector = (0, inspector_1.getInspector)(inspectorId, plugin.descriptor.app, ctx); if (inspector) { await (0, inspector_1.sendInspectorState)(inspector, ctx); } else if (shared_utils_1.SharedData.debugInfo) { console.warn(`Inspector ${inspectorId} not found`); } }); global_hook_1.hook.on(shared_utils_1.HookEvents.CUSTOM_INSPECTOR_SELECT_NODE, async (inspectorId, nodeId, plugin) => { const inspector = (0, inspector_1.getInspector)(inspectorId, plugin.descriptor.app, ctx); if (inspector) { await (0, inspector_1.selectInspectorNode)(inspector, nodeId, ctx); } else if (shared_utils_1.SharedData.debugInfo) { console.warn(`Inspector ${inspectorId} not found`); } }); try { await (0, plugin_1.addPreviouslyRegisteredPlugins)(ctx); } catch (e2) { console.error(`Error adding previously registered plugins:`); console.error(e2); } try { await (0, plugin_1.addQueuedPlugins)(ctx); } catch (e2) { console.error(`Error adding queued plugins:`); console.error(e2); } global_hook_1.hook.on(shared_utils_1.HookEvents.SETUP_DEVTOOLS_PLUGIN, async (pluginDescriptor, setupFn) => { await (0, plugin_1.addPlugin)({ pluginDescriptor, setupFn }, ctx); }); shared_utils_1.target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ = true; const handleFlush = (0, debounce_1.default)(async () => { var _a2; if ((_a2 = ctx.currentAppRecord) === null || _a2 === void 0 ? void 0 : _a2.backend.options.features.includes(app_backend_api_1.BuiltinBackendFeature.FLUSH)) { await (0, component_1.sendComponentTreeData)(ctx.currentAppRecord, "_root", ctx.currentAppRecord.componentFilter, null, false, ctx); if (ctx.currentInspectedComponentId) { await (0, component_1.sendSelectedComponentData)(ctx.currentAppRecord, ctx.currentInspectedComponentId, ctx); } } }, 500); global_hook_1.hook.off(shared_utils_1.HookEvents.FLUSH); global_hook_1.hook.on(shared_utils_1.HookEvents.FLUSH, handleFlush); try { await (0, timeline_marker_1.addTimelineMarker)({ id: "vue-devtools-init-backend", time: (0, devtools_api_1.now)(), label: "Vue Devtools connected", color: 4307075, all: true }, ctx); } catch (e2) { console.error(`Error while adding devtools connected timeline marker:`); console.error(e2); } } function connectBridge() { ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_SUBSCRIBE, ({ type, payload }) => { (0, subscriptions_1.subscribe)(type, payload); }); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_UNSUBSCRIBE, ({ type, payload }) => { (0, subscriptions_1.unsubscribe)(type, payload); }); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_TAB_SWITCH, async (tab) => { ctx.currentTab = tab; await (0, highlighter_1.unHighlight)(); }); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_APP_LIST, async () => { await (0, app_1.sendApps)(ctx); }); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_APP_SELECT, async (id) => { if (id == null) return; const record2 = ctx.appRecords.find((r2) => r2.id === id); if (record2) { await (0, app_1.selectApp)(record2, ctx); } else if (shared_utils_1.SharedData.debugInfo) { console.warn(`App with id ${id} not found`); } }); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_SCAN_LEGACY_APPS, () => { if (global_hook_1.hook.Vue) { (0, app_1._legacy_getAndRegisterApps)(ctx); } }); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_COMPONENT_TREE, async ({ instanceId, filter, recursively }) => { ctx.currentAppRecord.componentFilter = filter; (0, subscriptions_1.subscribe)(shared_utils_1.BridgeSubscriptions.COMPONENT_TREE, { instanceId }); await (0, component_1.sendComponentTreeData)(ctx.currentAppRecord, instanceId, filter, null, recursively, ctx); }); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_COMPONENT_SELECTED_DATA, async (instanceId) => { await (0, component_1.sendSelectedComponentData)(ctx.currentAppRecord, instanceId, ctx); }); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_COMPONENT_EDIT_STATE, async ({ instanceId, dotPath, type, value, newKey, remove }) => { await (0, component_1.editComponentState)(instanceId, dotPath, type, { value, newKey, remove }, ctx); }); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_COMPONENT_INSPECT_DOM, async ({ instanceId }) => { const instance = (0, component_1.getComponentInstance)(ctx.currentAppRecord, instanceId, ctx); if (instance) { const [el] = await ctx.currentAppRecord.backend.api.getComponentRootElements(instance); if (el) { shared_utils_1.target.__VUE_DEVTOOLS_INSPECT_TARGET__ = el; ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_COMPONENT_INSPECT_DOM, null); } } }); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_COMPONENT_SCROLL_TO, async ({ instanceId }) => { if (!shared_utils_1.isBrowser) return; const instance = (0, component_1.getComponentInstance)(ctx.currentAppRecord, instanceId, ctx); if (instance) { const [el] = await ctx.currentAppRecord.backend.api.getComponentRootElements(instance); if (el) { if (typeof el.scrollIntoView === "function") { el.scrollIntoView({ behavior: "smooth", block: "center", inline: "center" }); } else { const bounds = await ctx.currentAppRecord.backend.api.getComponentBounds(instance); const scrollTarget = document.createElement("div"); scrollTarget.style.position = "absolute"; scrollTarget.style.width = `${bounds.width}px`; scrollTarget.style.height = `${bounds.height}px`; scrollTarget.style.top = `${bounds.top}px`; scrollTarget.style.left = `${bounds.left}px`; document.body.appendChild(scrollTarget); scrollTarget.scrollIntoView({ behavior: "smooth", block: "center", inline: "center" }); setTimeout(() => { document.body.removeChild(scrollTarget); }, 2e3); } (0, highlighter_1.highlight)(instance, ctx.currentAppRecord.backend, ctx); setTimeout(() => { (0, highlighter_1.unHighlight)(); }, 2e3); } } }); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_COMPONENT_RENDER_CODE, async ({ instanceId }) => { if (!shared_utils_1.isBrowser) return; const instance = (0, component_1.getComponentInstance)(ctx.currentAppRecord, instanceId, ctx); if (instance) { const { code } = await ctx.currentAppRecord.backend.api.getComponentRenderCode(instance); ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_COMPONENT_RENDER_CODE, { instanceId, code }); } }); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_CUSTOM_STATE_ACTION, async ({ value, actionIndex }) => { const rawAction = value._custom.actions[actionIndex]; const action = (0, shared_utils_1.revive)(rawAction === null || rawAction === void 0 ? void 0 : rawAction.action); if (action) { try { await action(); } catch (e2) { console.error(e2); } } else { console.warn(`Couldn't revive action ${actionIndex} from`, value); } }); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_COMPONENT_MOUSE_OVER, async (instanceId) => { await (0, highlighter_1.highlight)(ctx.currentAppRecord.instanceMap.get(instanceId), ctx.currentAppRecord.backend, ctx); }); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_COMPONENT_MOUSE_OUT, async () => { await (0, highlighter_1.unHighlight)(); }); const componentPicker = new component_pick_1.default(ctx); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_COMPONENT_PICK, () => { componentPicker.startSelecting(); }); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_COMPONENT_PICK_CANCELED, () => { componentPicker.stopSelecting(); }); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_TIMELINE_LAYER_LIST, async () => { await (0, timeline_1.sendTimelineLayers)(ctx); }); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_TIMELINE_SHOW_SCREENSHOT, async ({ screenshot }) => { await (0, timeline_screenshot_1.showScreenshot)(screenshot, ctx); }); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_TIMELINE_CLEAR, async () => { await (0, timeline_1.clearTimeline)(ctx); }); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_TIMELINE_EVENT_DATA, async ({ id }) => { await (0, timeline_1.sendTimelineEventData)(id, ctx); }); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_TIMELINE_LAYER_LOAD_EVENTS, async ({ appId, layerId }) => { await (0, timeline_1.sendTimelineLayerEvents)(appId, layerId, ctx); }); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_TIMELINE_LOAD_MARKERS, async () => { await (0, timeline_marker_1.sendTimelineMarkers)(ctx); }); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_CUSTOM_INSPECTOR_LIST, async () => { await (0, inspector_1.sendCustomInspectors)(ctx); }); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_CUSTOM_INSPECTOR_TREE, async ({ inspectorId, appId, treeFilter }) => { const inspector = await (0, inspector_1.getInspectorWithAppId)(inspectorId, appId, ctx); if (inspector) { inspector.treeFilter = treeFilter; (0, inspector_1.sendInspectorTree)(inspector, ctx); } else if (shared_utils_1.SharedData.debugInfo) { console.warn(`Inspector ${inspectorId} not found`); } }); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_CUSTOM_INSPECTOR_STATE, async ({ inspectorId, appId, nodeId }) => { const inspector = await (0, inspector_1.getInspectorWithAppId)(inspectorId, appId, ctx); if (inspector) { inspector.selectedNodeId = nodeId; (0, inspector_1.sendInspectorState)(inspector, ctx); } else if (shared_utils_1.SharedData.debugInfo) { console.warn(`Inspector ${inspectorId} not found`); } }); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_CUSTOM_INSPECTOR_EDIT_STATE, async ({ inspectorId, appId, nodeId, path, type, payload }) => { const inspector = await (0, inspector_1.getInspectorWithAppId)(inspectorId, appId, ctx); if (inspector) { await (0, inspector_1.editInspectorState)(inspector, nodeId, path, type, payload, ctx); inspector.selectedNodeId = nodeId; await (0, inspector_1.sendInspectorState)(inspector, ctx); } else if (shared_utils_1.SharedData.debugInfo) { console.warn(`Inspector ${inspectorId} not found`); } }); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_CUSTOM_INSPECTOR_ACTION, async ({ inspectorId, appId, actionIndex, actionType, args }) => { const inspector = await (0, inspector_1.getInspectorWithAppId)(inspectorId, appId, ctx); if (inspector) { const action = inspector[actionType !== null && actionType !== void 0 ? actionType : "actions"][actionIndex]; try { await action.action(...args !== null && args !== void 0 ? args : []); } catch (e2) { if (shared_utils_1.SharedData.debugInfo) { console.error(e2); } } } else if (shared_utils_1.SharedData.debugInfo) { console.warn(`Inspector ${inspectorId} not found`); } }); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_LOG, (payload) => { let value = payload.value; if (payload.serialized) { value = (0, shared_utils_1.parse)(value, payload.revive); } else if (payload.revive) { value = (0, shared_utils_1.revive)(value); } console[payload.level](value); }); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_DEVTOOLS_PLUGIN_LIST, async () => { await (0, plugin_1.sendPluginList)(ctx); }); ctx.bridge.on(shared_utils_1.BridgeEvents.TO_BACK_DEVTOOLS_PLUGIN_SETTING_UPDATED, ({ pluginId, key, newValue, oldValue }) => { const settings = (0, shared_utils_1.getPluginSettings)(pluginId); ctx.hook.emit(shared_utils_1.HookEvents.PLUGIN_SETTINGS_SET, pluginId, settings); ctx.currentAppRecord.backend.api.callHook( "setPluginSettings", { app: ctx.currentAppRecord.options.app, pluginId, key, newValue, oldValue, settings } ); }); } } ), /***/ "../app-backend-core/lib/inspector.js": ( /*!********************************************!*\ !*** ../app-backend-core/lib/inspector.js ***! \********************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.selectInspectorNode = exports.sendCustomInspectors = exports.editInspectorState = exports.sendInspectorState = exports.sendInspectorTree = exports.getInspectorWithAppId = exports.getInspector = void 0; const shared_utils_1 = __webpack_require__2( /*! @vue-devtools/shared-utils */ "../shared-utils/lib/index.js" ); function getInspector(inspectorId, app, ctx) { return ctx.customInspectors.find((i2) => i2.id === inspectorId && i2.appRecord.options.app === app); } exports.getInspector = getInspector; async function getInspectorWithAppId(inspectorId, appId, ctx) { for (const i2 of ctx.customInspectors) { if (i2.id === inspectorId && i2.appRecord.id === appId) { return i2; } } return null; } exports.getInspectorWithAppId = getInspectorWithAppId; async function sendInspectorTree(inspector, ctx) { const rootNodes = await inspector.appRecord.backend.api.getInspectorTree(inspector.id, inspector.appRecord.options.app, inspector.treeFilter); ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_CUSTOM_INSPECTOR_TREE, { appId: inspector.appRecord.id, inspectorId: inspector.id, rootNodes }); } exports.sendInspectorTree = sendInspectorTree; async function sendInspectorState(inspector, ctx) { const state = inspector.selectedNodeId ? await inspector.appRecord.backend.api.getInspectorState(inspector.id, inspector.appRecord.options.app, inspector.selectedNodeId) : null; ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_CUSTOM_INSPECTOR_STATE, { appId: inspector.appRecord.id, inspectorId: inspector.id, state: (0, shared_utils_1.stringify)(state) }); } exports.sendInspectorState = sendInspectorState; async function editInspectorState(inspector, nodeId, dotPath, type, state, ctx) { await inspector.appRecord.backend.api.editInspectorState(inspector.id, inspector.appRecord.options.app, nodeId, dotPath, type, { ...state, value: state.value != null ? (0, shared_utils_1.parse)(state.value, true) : state.value }); } exports.editInspectorState = editInspectorState; async function sendCustomInspectors(ctx) { var _a, _b; const inspectors = []; for (const i2 of ctx.customInspectors) { inspectors.push({ id: i2.id, appId: i2.appRecord.id, pluginId: i2.plugin.descriptor.id, label: i2.label, icon: i2.icon, treeFilterPlaceholder: i2.treeFilterPlaceholder, stateFilterPlaceholder: i2.stateFilterPlaceholder, noSelectionText: i2.noSelectionText, actions: (_a = i2.actions) === null || _a === void 0 ? void 0 : _a.map((a2) => ({ icon: a2.icon, tooltip: a2.tooltip })), nodeActions: (_b = i2.nodeActions) === null || _b === void 0 ? void 0 : _b.map((a2) => ({ icon: a2.icon, tooltip: a2.tooltip })) }); } ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_CUSTOM_INSPECTOR_LIST, { inspectors }); } exports.sendCustomInspectors = sendCustomInspectors; async function selectInspectorNode(inspector, nodeId, ctx) { ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_CUSTOM_INSPECTOR_SELECT_NODE, { appId: inspector.appRecord.id, inspectorId: inspector.id, nodeId }); } exports.selectInspectorNode = selectInspectorNode; } ), /***/ "../app-backend-core/lib/legacy/scan.js": ( /*!**********************************************!*\ !*** ../app-backend-core/lib/legacy/scan.js ***! \**********************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.scan = void 0; const shared_utils_1 = __webpack_require__2( /*! @vue-devtools/shared-utils */ "../shared-utils/lib/index.js" ); const page_config_1 = __webpack_require__2( /*! ../page-config */ "../app-backend-core/lib/page-config.js" ); const rootInstances = []; function scan() { rootInstances.length = 0; let inFragment = false; let currentFragment = null; function processInstance(instance) { if (instance) { if (rootInstances.indexOf(instance.$root) === -1) { instance = instance.$root; } if (instance._isFragment) { inFragment = true; currentFragment = instance; } let baseVue = instance.constructor; while (baseVue.super) { baseVue = baseVue.super; } if (baseVue.config && baseVue.config.devtools) { rootInstances.push(instance); } return true; } } if (shared_utils_1.isBrowser) { const walkDocument = (document2) => { walk(document2, function(node) { if (inFragment) { if (node === currentFragment._fragmentEnd) { inFragment = false; currentFragment = null; } return true; } const instance = node.__vue__; return processInstance(instance); }); }; walkDocument(document); const iframes = document.querySelectorAll("iframe"); for (const iframe of iframes) { try { walkDocument(iframe.contentDocument); } catch (e2) { } } const { customVue2ScanSelector } = (0, page_config_1.getPageConfig)(); const customTargets = customVue2ScanSelector ? document.querySelectorAll(customVue2ScanSelector) : []; for (const customTarget of customTargets) { try { walkDocument(customTarget); } catch (e2) { } } } else { if (Array.isArray(shared_utils_1.target.__VUE_ROOT_INSTANCES__)) { shared_utils_1.target.__VUE_ROOT_INSTANCES__.map(processInstance); } } return rootInstances; } exports.scan = scan; function walk(node, fn) { if (node.childNodes) { for (let i2 = 0, l2 = node.childNodes.length; i2 < l2; i2++) { const child = node.childNodes[i2]; const stop = fn(child); if (!stop) { walk(child, fn); } } } if (node.shadowRoot) { walk(node.shadowRoot, fn); } } } ), /***/ "../app-backend-core/lib/page-config.js": ( /*!**********************************************!*\ !*** ../app-backend-core/lib/page-config.js ***! \**********************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.initOnPageConfig = exports.getPageConfig = void 0; const shared_utils_1 = __webpack_require__2( /*! @vue-devtools/shared-utils */ "../shared-utils/lib/index.js" ); let config = {}; function getPageConfig() { return config; } exports.getPageConfig = getPageConfig; function initOnPageConfig() { if (Object.hasOwnProperty.call(shared_utils_1.target, "VUE_DEVTOOLS_CONFIG")) { config = shared_utils_1.SharedData.pageConfig = shared_utils_1.target.VUE_DEVTOOLS_CONFIG; if (Object.hasOwnProperty.call(config, "openInEditorHost")) { shared_utils_1.SharedData.openInEditorHost = config.openInEditorHost; } } } exports.initOnPageConfig = initOnPageConfig; } ), /***/ "../app-backend-core/lib/perf.js": ( /*!***************************************!*\ !*** ../app-backend-core/lib/perf.js ***! \***************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.handleAddPerformanceTag = exports.performanceMarkEnd = exports.performanceMarkStart = void 0; const shared_utils_1 = __webpack_require__2( /*! @vue-devtools/shared-utils */ "../shared-utils/lib/index.js" ); const timeline_1 = __webpack_require__2( /*! ./timeline */ "../app-backend-core/lib/timeline.js" ); const app_1 = __webpack_require__2( /*! ./app */ "../app-backend-core/lib/app.js" ); const component_1 = __webpack_require__2( /*! ./component */ "../app-backend-core/lib/component.js" ); const subscriptions_1 = __webpack_require__2( /*! ./util/subscriptions */ "../app-backend-core/lib/util/subscriptions.js" ); async function performanceMarkStart(app, uid, instance, type, time, ctx) { try { if (!shared_utils_1.SharedData.performanceMonitoringEnabled) return; const appRecord = await (0, app_1.getAppRecord)(app, ctx); const componentName = await appRecord.backend.api.getComponentName(instance); const groupId = ctx.perfUniqueGroupId++; const groupKey = `${uid}-${type}`; appRecord.perfGroupIds.set(groupKey, { groupId, time }); await (0, timeline_1.addTimelineEvent)({ layerId: "performance", event: { time, data: { component: componentName, type, measure: "start" }, title: componentName, subtitle: type, groupId } }, app, ctx); if (markEndQueue.has(groupKey)) { const { app: app2, uid: uid2, instance: instance2, type: type2, time: time2 } = markEndQueue.get(groupKey); markEndQueue.delete(groupKey); await performanceMarkEnd(app2, uid2, instance2, type2, time2, ctx); } } catch (e2) { if (shared_utils_1.SharedData.debugInfo) { console.error(e2); } } } exports.performanceMarkStart = performanceMarkStart; const markEndQueue = /* @__PURE__ */ new Map(); async function performanceMarkEnd(app, uid, instance, type, time, ctx) { try { if (!shared_utils_1.SharedData.performanceMonitoringEnabled) return; const appRecord = await (0, app_1.getAppRecord)(app, ctx); const componentName = await appRecord.backend.api.getComponentName(instance); const groupKey = `${uid}-${type}`; const groupInfo = appRecord.perfGroupIds.get(groupKey); if (!groupInfo) { markEndQueue.set(groupKey, { app, uid, instance, type, time }); return; } const { groupId, time: startTime } = groupInfo; const duration = time - startTime; await (0, timeline_1.addTimelineEvent)({ layerId: "performance", event: { time, data: { component: componentName, type, measure: "end", duration: { _custom: { type: "Duration", value: duration, display: `${duration} ms` } } }, title: componentName, subtitle: type, groupId } }, app, ctx); const tooSlow = duration > 10; if (tooSlow || instance.__VUE_DEVTOOLS_SLOW__) { let change = false; if (tooSlow && !instance.__VUE_DEVTOOLS_SLOW__) { instance.__VUE_DEVTOOLS_SLOW__ = { duration: null, measures: {} }; } const data = instance.__VUE_DEVTOOLS_SLOW__; if (tooSlow && (data.duration == null || data.duration < duration)) { data.duration = duration; change = true; } if (data.measures[type] == null || data.measures[type] < duration) { data.measures[type] = duration; change = true; } if (change) { const id = await (0, component_1.getComponentId)(app, uid, instance, ctx); if ((0, subscriptions_1.isSubscribed)(shared_utils_1.BridgeSubscriptions.COMPONENT_TREE, (sub) => sub.payload.instanceId === id)) { (0, shared_utils_1.raf)(() => { (0, component_1.sendComponentTreeData)(appRecord, id, ctx.currentAppRecord.componentFilter, null, false, ctx); }); } } } } catch (e2) { if (shared_utils_1.SharedData.debugInfo) { console.error(e2); } } } exports.performanceMarkEnd = performanceMarkEnd; function handleAddPerformanceTag(backend, ctx) { backend.api.on.visitComponentTree((payload) => { if (payload.componentInstance.__VUE_DEVTOOLS_SLOW__) { const { duration, measures } = payload.componentInstance.__VUE_DEVTOOLS_SLOW__; let tooltip = '
'; for (const type in measures) { const d2 = measures[type]; tooltip += `
${type}
10 ? "bg-yellow-400" : "bg-green-400"}">${Math.round(d2 * 1e3) / 1e3} ms
`; } tooltip += "
"; payload.treeNode.tags.push({ backgroundColor: duration > 30 ? 16281969 : 16498468, textColor: 0, label: `${Math.round(duration * 1e3) / 1e3} ms`, tooltip }); } }); } exports.handleAddPerformanceTag = handleAddPerformanceTag; } ), /***/ "../app-backend-core/lib/plugin.js": ( /*!*****************************************!*\ !*** ../app-backend-core/lib/plugin.js ***! \*****************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.serializePlugin = exports.sendPluginList = exports.addPreviouslyRegisteredPlugins = exports.addQueuedPlugins = exports.addPlugin = void 0; const app_backend_api_1 = __webpack_require__2( /*! @vue-devtools/app-backend-api */ "../app-backend-api/lib/index.js" ); const shared_utils_1 = __webpack_require__2( /*! @vue-devtools/shared-utils */ "../shared-utils/lib/index.js" ); const app_1 = __webpack_require__2( /*! ./app */ "../app-backend-core/lib/app.js" ); async function addPlugin(pluginQueueItem, ctx) { const { pluginDescriptor, setupFn } = pluginQueueItem; const plugin = { descriptor: pluginDescriptor, setupFn, error: null }; ctx.currentPlugin = plugin; try { const appRecord = await (0, app_1.getAppRecord)(plugin.descriptor.app, ctx); const api = new app_backend_api_1.DevtoolsPluginApiInstance(plugin, appRecord, ctx); if (pluginQueueItem.proxy) { await pluginQueueItem.proxy.setRealTarget(api); } else { setupFn(api); } } catch (e2) { plugin.error = e2; if (shared_utils_1.SharedData.debugInfo) { console.error(e2); } } ctx.currentPlugin = null; ctx.plugins.push(plugin); ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_DEVTOOLS_PLUGIN_ADD, { plugin: await serializePlugin(plugin) }); const targetList = shared_utils_1.target.__VUE_DEVTOOLS_REGISTERED_PLUGINS__ = shared_utils_1.target.__VUE_DEVTOOLS_REGISTERED_PLUGINS__ || []; targetList.push({ pluginDescriptor, setupFn }); } exports.addPlugin = addPlugin; async function addQueuedPlugins(ctx) { if (shared_utils_1.target.__VUE_DEVTOOLS_PLUGINS__ && Array.isArray(shared_utils_1.target.__VUE_DEVTOOLS_PLUGINS__)) { for (const queueItem of shared_utils_1.target.__VUE_DEVTOOLS_PLUGINS__) { await addPlugin(queueItem, ctx); } shared_utils_1.target.__VUE_DEVTOOLS_PLUGINS__ = null; } } exports.addQueuedPlugins = addQueuedPlugins; async function addPreviouslyRegisteredPlugins(ctx) { if (shared_utils_1.target.__VUE_DEVTOOLS_REGISTERED_PLUGINS__ && Array.isArray(shared_utils_1.target.__VUE_DEVTOOLS_REGISTERED_PLUGINS__)) { for (const queueItem of shared_utils_1.target.__VUE_DEVTOOLS_REGISTERED_PLUGINS__) { await addPlugin(queueItem, ctx); } } } exports.addPreviouslyRegisteredPlugins = addPreviouslyRegisteredPlugins; async function sendPluginList(ctx) { ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_DEVTOOLS_PLUGIN_LIST, { plugins: await Promise.all(ctx.plugins.map((p2) => serializePlugin(p2))) }); } exports.sendPluginList = sendPluginList; async function serializePlugin(plugin) { return { id: plugin.descriptor.id, label: plugin.descriptor.label, appId: (0, app_1.getAppRecordId)(plugin.descriptor.app), packageName: plugin.descriptor.packageName, homepage: plugin.descriptor.homepage, logo: plugin.descriptor.logo, componentStateTypes: plugin.descriptor.componentStateTypes, settingsSchema: plugin.descriptor.settings }; } exports.serializePlugin = serializePlugin; } ), /***/ "../app-backend-core/lib/timeline-builtins.js": ( /*!****************************************************!*\ !*** ../app-backend-core/lib/timeline-builtins.js ***! \****************************************************/ /***/ (__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.builtinLayers = void 0; exports.builtinLayers = [{ id: "mouse", label: "Mouse", color: 10768815, screenshotOverlayRender(event, { events }) { const samePositionEvent = events.find((e2) => e2 !== event && e2.renderMeta.textEl && e2.data.x === event.data.x && e2.data.y === event.data.y); if (samePositionEvent) { const text2 = document.createElement("div"); text2.innerText = event.data.type; samePositionEvent.renderMeta.textEl.appendChild(text2); return false; } const div = document.createElement("div"); div.style.position = "absolute"; div.style.left = `${event.data.x - 4}px`; div.style.top = `${event.data.y - 4}px`; div.style.width = "8px"; div.style.height = "8px"; div.style.borderRadius = "100%"; div.style.backgroundColor = "rgba(164, 81, 175, 0.5)"; const text = document.createElement("div"); text.innerText = event.data.type; text.style.color = "#541e5b"; text.style.fontFamily = "monospace"; text.style.fontSize = "9px"; text.style.position = "absolute"; text.style.left = "10px"; text.style.top = "10px"; text.style.padding = "1px"; text.style.backgroundColor = "rgba(255, 255, 255, 0.9)"; text.style.borderRadius = "3px"; div.appendChild(text); event.renderMeta.textEl = text; return div; } }, { id: "keyboard", label: "Keyboard", color: 8475055 }, { id: "component-event", label: "Component events", color: 4307075, screenshotOverlayRender: (event, { events }) => { if (!event.meta.bounds || events.some((e2) => e2 !== event && e2.layerId === event.layerId && e2.renderMeta.drawn && (e2.meta.componentId === event.meta.componentId || e2.meta.bounds.left === event.meta.bounds.left && e2.meta.bounds.top === event.meta.bounds.top && e2.meta.bounds.width === event.meta.bounds.width && e2.meta.bounds.height === event.meta.bounds.height))) { return false; } const div = document.createElement("div"); div.style.position = "absolute"; div.style.left = `${event.meta.bounds.left - 4}px`; div.style.top = `${event.meta.bounds.top - 4}px`; div.style.width = `${event.meta.bounds.width}px`; div.style.height = `${event.meta.bounds.height}px`; div.style.borderRadius = "8px"; div.style.borderStyle = "solid"; div.style.borderWidth = "4px"; div.style.borderColor = "rgba(65, 184, 131, 0.5)"; div.style.textAlign = "center"; div.style.display = "flex"; div.style.alignItems = "center"; div.style.justifyContent = "center"; div.style.overflow = "hidden"; const text = document.createElement("div"); text.style.color = "#267753"; text.style.fontFamily = "monospace"; text.style.fontSize = "9px"; text.style.padding = "1px"; text.style.backgroundColor = "rgba(255, 255, 255, 0.9)"; text.style.borderRadius = "3px"; text.innerText = event.data.event; div.appendChild(text); event.renderMeta.drawn = true; return div; } }, { id: "performance", label: "Performance", color: 4307050, groupsOnly: true, skipScreenshots: true, ignoreNoDurationGroups: true }]; } ), /***/ "../app-backend-core/lib/timeline-marker.js": ( /*!**************************************************!*\ !*** ../app-backend-core/lib/timeline-marker.js ***! \**************************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.sendTimelineMarkers = exports.addTimelineMarker = void 0; const shared_utils_1 = __webpack_require__2( /*! @vue-devtools/shared-utils */ "../shared-utils/lib/index.js" ); const devtools_api_1 = __webpack_require__2( /*! @vue/devtools-api */ "../api/lib/esm/index.js" ); const timeline_1 = __webpack_require__2( /*! ./timeline */ "../app-backend-core/lib/timeline.js" ); async function addTimelineMarker(options, ctx) { var _a; if (!ctx.currentAppRecord) { options.all = true; } const marker = { ...options, appRecord: options.all ? null : ctx.currentAppRecord }; ctx.timelineMarkers.push(marker); ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_TIMELINE_MARKER, { marker: await serializeMarker(marker), appId: (_a = ctx.currentAppRecord) === null || _a === void 0 ? void 0 : _a.id }); } exports.addTimelineMarker = addTimelineMarker; async function sendTimelineMarkers(ctx) { if (!ctx.currentAppRecord) return; const markers = ctx.timelineMarkers.filter((marker) => marker.all || marker.appRecord === ctx.currentAppRecord); const result = []; for (const marker of markers) { result.push(await serializeMarker(marker)); } ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_TIMELINE_LOAD_MARKERS, { markers: result, appId: ctx.currentAppRecord.id }); } exports.sendTimelineMarkers = sendTimelineMarkers; async function serializeMarker(marker) { var _a; let time = marker.time; if ((0, devtools_api_1.isPerformanceSupported)() && time < timeline_1.dateThreshold) { time += timeline_1.perfTimeDiff; } return { id: marker.id, appId: (_a = marker.appRecord) === null || _a === void 0 ? void 0 : _a.id, all: marker.all, time: Math.round(time * 1e3), label: marker.label, color: marker.color }; } } ), /***/ "../app-backend-core/lib/timeline-screenshot.js": ( /*!******************************************************!*\ !*** ../app-backend-core/lib/timeline-screenshot.js ***! \******************************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.showScreenshot = void 0; const shared_utils_1 = __webpack_require__2( /*! @vue-devtools/shared-utils */ "../shared-utils/lib/index.js" ); const queue_1 = __webpack_require__2( /*! ./util/queue */ "../app-backend-core/lib/util/queue.js" ); const timeline_builtins_1 = __webpack_require__2( /*! ./timeline-builtins */ "../app-backend-core/lib/timeline-builtins.js" ); let overlay; let image; let container; const jobQueue = new queue_1.JobQueue(); async function showScreenshot(screenshot, ctx) { await jobQueue.queue("showScreenshot", async () => { if (screenshot) { if (!container) { createElements(); } image.src = screenshot.image; image.style.visibility = screenshot.image ? "visible" : "hidden"; clearContent(); const events = screenshot.events.map((id) => ctx.timelineEventMap.get(id)).filter(Boolean).map((eventData) => ({ layer: timeline_builtins_1.builtinLayers.concat(ctx.timelineLayers).find((layer) => layer.id === eventData.layerId), event: { ...eventData.event, layerId: eventData.layerId, renderMeta: {} } })); const renderContext = { screenshot, events: events.map(({ event }) => event), index: 0 }; for (let i2 = 0; i2 < events.length; i2++) { const { layer, event } = events[i2]; if (layer.screenshotOverlayRender) { renderContext.index = i2; try { const result = await layer.screenshotOverlayRender(event, renderContext); if (result !== false) { if (typeof result === "string") { container.innerHTML += result; } else { container.appendChild(result); } } } catch (e2) { if (shared_utils_1.SharedData.debugInfo) { console.error(e2); } } } } showElement(); } else { hideElement(); } }); } exports.showScreenshot = showScreenshot; function createElements() { overlay = document.createElement("div"); overlay.style.position = "fixed"; overlay.style.zIndex = "9999999999999"; overlay.style.pointerEvents = "none"; overlay.style.left = "0"; overlay.style.top = "0"; overlay.style.width = "100vw"; overlay.style.height = "100vh"; overlay.style.backgroundColor = "rgba(0,0,0,0.5)"; overlay.style.overflow = "hidden"; const imageBox = document.createElement("div"); imageBox.style.position = "relative"; overlay.appendChild(imageBox); image = document.createElement("img"); imageBox.appendChild(image); container = document.createElement("div"); container.style.position = "absolute"; container.style.left = "0"; container.style.top = "0"; imageBox.appendChild(container); const style = document.createElement("style"); style.innerHTML = ".__vuedevtools_no-scroll { overflow: hidden; }"; document.head.appendChild(style); } function showElement() { if (!overlay.parentNode) { document.body.appendChild(overlay); document.body.classList.add("__vuedevtools_no-scroll"); } } function hideElement() { if (overlay && overlay.parentNode) { overlay.parentNode.removeChild(overlay); document.body.classList.remove("__vuedevtools_no-scroll"); clearContent(); } } function clearContent() { while (container.firstChild) { container.removeChild(container.lastChild); } } } ), /***/ "../app-backend-core/lib/timeline.js": ( /*!*******************************************!*\ !*** ../app-backend-core/lib/timeline.js ***! \*******************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.sendTimelineLayerEvents = exports.removeLayersForApp = exports.sendTimelineEventData = exports.clearTimeline = exports.perfTimeDiff = exports.dateThreshold = exports.addTimelineEvent = exports.sendTimelineLayers = exports.addBuiltinLayers = exports.setupTimeline = void 0; const shared_utils_1 = __webpack_require__2( /*! @vue-devtools/shared-utils */ "../shared-utils/lib/index.js" ); const devtools_api_1 = __webpack_require__2( /*! @vue/devtools-api */ "../api/lib/esm/index.js" ); const global_hook_1 = __webpack_require__2( /*! ./global-hook */ "../app-backend-core/lib/global-hook.js" ); const app_1 = __webpack_require__2( /*! ./app */ "../app-backend-core/lib/app.js" ); const timeline_builtins_1 = __webpack_require__2( /*! ./timeline-builtins */ "../app-backend-core/lib/timeline-builtins.js" ); function setupTimeline(ctx) { setupBuiltinLayers(ctx); } exports.setupTimeline = setupTimeline; function addBuiltinLayers(appRecord, ctx) { for (const layerDef of timeline_builtins_1.builtinLayers) { ctx.timelineLayers.push({ ...layerDef, appRecord, plugin: null, events: [] }); } } exports.addBuiltinLayers = addBuiltinLayers; function setupBuiltinLayers(ctx) { if (shared_utils_1.isBrowser) { ["mousedown", "mouseup", "click", "dblclick"].forEach((eventType) => { window.addEventListener(eventType, async (event) => { await addTimelineEvent({ layerId: "mouse", event: { time: (0, devtools_api_1.now)(), data: { type: eventType, x: event.clientX, y: event.clientY }, title: eventType } }, null, ctx); }, { capture: true, passive: true }); }); ["keyup", "keydown", "keypress"].forEach((eventType) => { window.addEventListener(eventType, async (event) => { await addTimelineEvent({ layerId: "keyboard", event: { time: (0, devtools_api_1.now)(), data: { type: eventType, key: event.key, ctrlKey: event.ctrlKey, shiftKey: event.shiftKey, altKey: event.altKey, metaKey: event.metaKey }, title: event.key } }, null, ctx); }, { capture: true, passive: true }); }); } global_hook_1.hook.on(shared_utils_1.HookEvents.COMPONENT_EMIT, async (app, instance, event, params) => { try { if (!shared_utils_1.SharedData.componentEventsEnabled) return; const appRecord = await (0, app_1.getAppRecord)(app, ctx); const componentId = `${appRecord.id}:${instance.uid}`; const componentDisplay = await appRecord.backend.api.getComponentName(instance) || "Unknown Component"; await addTimelineEvent({ layerId: "component-event", event: { time: (0, devtools_api_1.now)(), data: { component: { _custom: { type: "component-definition", display: componentDisplay } }, event, params }, title: event, subtitle: `by ${componentDisplay}`, meta: { componentId, bounds: await appRecord.backend.api.getComponentBounds(instance) } } }, app, ctx); } catch (e2) { if (shared_utils_1.SharedData.debugInfo) { console.error(e2); } } }); } async function sendTimelineLayers(ctx) { var _a, _b; const layers = []; for (const layer of ctx.timelineLayers) { try { layers.push({ id: layer.id, label: layer.label, color: layer.color, appId: (_a = layer.appRecord) === null || _a === void 0 ? void 0 : _a.id, pluginId: (_b = layer.plugin) === null || _b === void 0 ? void 0 : _b.descriptor.id, groupsOnly: layer.groupsOnly, skipScreenshots: layer.skipScreenshots, ignoreNoDurationGroups: layer.ignoreNoDurationGroups }); } catch (e2) { if (shared_utils_1.SharedData.debugInfo) { console.error(e2); } } } ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_TIMELINE_LAYER_LIST, { layers }); } exports.sendTimelineLayers = sendTimelineLayers; async function addTimelineEvent(options, app, ctx) { const appId = app ? (0, app_1.getAppRecordId)(app) : null; const isAllApps = options.all || !app || appId == null; const id = ctx.nextTimelineEventId++; const eventData = { id, ...options, all: isAllApps }; ctx.timelineEventMap.set(eventData.id, eventData); ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_TIMELINE_EVENT, { appId: eventData.all ? "all" : appId, layerId: eventData.layerId, event: mapTimelineEvent(eventData) }); const layer = ctx.timelineLayers.find((l2) => { var _a; return (isAllApps || ((_a = l2.appRecord) === null || _a === void 0 ? void 0 : _a.options.app) === app) && l2.id === options.layerId; }); if (layer) { layer.events.push(eventData); } else if (shared_utils_1.SharedData.debugInfo) { console.warn(`Timeline layer ${options.layerId} not found`); } } exports.addTimelineEvent = addTimelineEvent; const initialTime = Date.now(); exports.dateThreshold = initialTime - 1e6; exports.perfTimeDiff = initialTime - (0, devtools_api_1.now)(); function mapTimelineEvent(eventData) { let time = eventData.event.time; if ((0, devtools_api_1.isPerformanceSupported)() && time < exports.dateThreshold) { time += exports.perfTimeDiff; } return { id: eventData.id, time: Math.round(time * 1e3), logType: eventData.event.logType, groupId: eventData.event.groupId, title: eventData.event.title, subtitle: eventData.event.subtitle }; } async function clearTimeline(ctx) { ctx.timelineEventMap.clear(); for (const layer of ctx.timelineLayers) { layer.events = []; } for (const backend of ctx.backends) { await backend.api.clearTimeline(); } } exports.clearTimeline = clearTimeline; async function sendTimelineEventData(id, ctx) { let data = null; const eventData = ctx.timelineEventMap.get(id); if (eventData) { data = await ctx.currentAppRecord.backend.api.inspectTimelineEvent(eventData, ctx.currentAppRecord.options.app); data = (0, shared_utils_1.stringify)(data); } else if (shared_utils_1.SharedData.debugInfo) { console.warn(`Event ${id} not found`, ctx.timelineEventMap.keys()); } ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_TIMELINE_EVENT_DATA, { eventId: id, data }); } exports.sendTimelineEventData = sendTimelineEventData; function removeLayersForApp(app, ctx) { const layers = ctx.timelineLayers.filter((l2) => { var _a; return ((_a = l2.appRecord) === null || _a === void 0 ? void 0 : _a.options.app) === app; }); for (const layer of layers) { const index = ctx.timelineLayers.indexOf(layer); if (index !== -1) ctx.timelineLayers.splice(index, 1); for (const e2 of layer.events) { ctx.timelineEventMap.delete(e2.id); } } } exports.removeLayersForApp = removeLayersForApp; function sendTimelineLayerEvents(appId, layerId, ctx) { var _a; const app = (_a = ctx.appRecords.find((ar) => ar.id === appId)) === null || _a === void 0 ? void 0 : _a.options.app; if (!app) return; const layer = ctx.timelineLayers.find((l2) => { var _a2; return ((_a2 = l2.appRecord) === null || _a2 === void 0 ? void 0 : _a2.options.app) === app && l2.id === layerId; }); if (!layer) return; ctx.bridge.send(shared_utils_1.BridgeEvents.TO_FRONT_TIMELINE_LAYER_LOAD_EVENTS, { appId, layerId, events: layer.events.map((e2) => mapTimelineEvent(e2)) }); } exports.sendTimelineLayerEvents = sendTimelineLayerEvents; } ), /***/ "../app-backend-core/lib/util/queue.js": ( /*!*********************************************!*\ !*** ../app-backend-core/lib/util/queue.js ***! \*********************************************/ /***/ (__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.JobQueue = void 0; class JobQueue { constructor() { this.jobs = []; } queue(id, fn) { const job = { id, fn }; return new Promise((resolve) => { const onDone = () => { this.currentJob = null; const nextJob = this.jobs.shift(); if (nextJob) { nextJob.fn(); } resolve(); }; const run = () => { this.currentJob = job; return job.fn().then(onDone).catch((e2) => { console.error(`Job ${job.id} failed:`); console.error(e2); }); }; if (this.currentJob) { this.jobs.push({ id: job.id, fn: () => run() }); } else { run(); } }); } } exports.JobQueue = JobQueue; } ), /***/ "../app-backend-core/lib/util/subscriptions.js": ( /*!*****************************************************!*\ !*** ../app-backend-core/lib/util/subscriptions.js ***! \*****************************************************/ /***/ (__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.isSubscribed = exports.unsubscribe = exports.subscribe = void 0; const activeSubs = /* @__PURE__ */ new Map(); function getSubs(type) { let subs = activeSubs.get(type); if (!subs) { subs = []; activeSubs.set(type, subs); } return subs; } function subscribe(type, payload) { const rawPayload = getRawPayload(payload); getSubs(type).push({ payload, rawPayload }); } exports.subscribe = subscribe; function unsubscribe(type, payload) { const rawPayload = getRawPayload(payload); const subs = getSubs(type); let index; while ((index = subs.findIndex((sub) => sub.rawPayload === rawPayload)) !== -1) { subs.splice(index, 1); } } exports.unsubscribe = unsubscribe; function getRawPayload(payload) { const data = Object.keys(payload).sort().reduce((acc, key) => { acc[key] = payload[key]; return acc; }, {}); return JSON.stringify(data); } function isSubscribed(type, predicate = () => true) { return getSubs(type).some(predicate); } exports.isSubscribed = isSubscribed; } ), /***/ "../app-backend-vue3/lib/components/data.js": ( /*!**************************************************!*\ !*** ../app-backend-vue3/lib/components/data.js ***! \**************************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.getCustomInstanceDetails = exports.editState = exports.getCustomObjectDetails = exports.getInstanceDetails = void 0; const util_1 = __webpack_require__2( /*! ./util */ "../app-backend-vue3/lib/components/util.js" ); const shared_utils_1 = __webpack_require__2( /*! @vue-devtools/shared-utils */ "../shared-utils/lib/index.js" ); const util_2 = __webpack_require__2( /*! ../util */ "../app-backend-vue3/lib/util.js" ); const vueBuiltins = ["nextTick", "defineComponent", "defineAsyncComponent", "defineCustomElement", "ref", "computed", "reactive", "readonly", "watchEffect", "watchPostEffect", "watchSyncEffect", "watch", "isRef", "unref", "toRef", "toRefs", "isProxy", "isReactive", "isReadonly", "shallowRef", "triggerRef", "customRef", "shallowReactive", "shallowReadonly", "toRaw", "markRaw", "effectScope", "getCurrentScope", "onScopeDispose", "onMounted", "onUpdated", "onUnmounted", "onBeforeMount", "onBeforeUpdate", "onBeforeUnmount", "onErrorCaptured", "onRenderTracked", "onRenderTriggered", "onActivated", "onDeactivated", "onServerPrefetch", "provide", "inject", "h", "mergeProps", "cloneVNode", "isVNode", "resolveComponent", "resolveDirective", "withDirectives", "withModifiers"]; function getInstanceDetails(instance, ctx) { var _a; return { id: (0, util_1.getUniqueComponentId)(instance, ctx), name: (0, util_1.getInstanceName)(instance), file: (_a = instance.type) === null || _a === void 0 ? void 0 : _a.__file, state: getInstanceState(instance) }; } exports.getInstanceDetails = getInstanceDetails; function getInstanceState(instance) { const mergedType = resolveMergedOptions(instance); return processProps(instance).concat(processState(instance), processSetupState(instance), processComputed(instance, mergedType), processAttrs(instance), processProvide(instance), processInject(instance, mergedType), processRefs(instance)); } function processProps(instance) { const propsData = []; const propDefinitions = instance.type.props; for (let key in instance.props) { const propDefinition = propDefinitions ? propDefinitions[key] : null; key = (0, shared_utils_1.camelize)(key); propsData.push({ type: "props", key, value: (0, util_2.returnError)(() => instance.props[key]), meta: propDefinition ? { type: propDefinition.type ? getPropType(propDefinition.type) : "any", required: !!propDefinition.required, ...propDefinition.default != null ? { default: propDefinition.default.toString() } : {} } : { type: "invalid" }, editable: shared_utils_1.SharedData.editableProps }); } return propsData; } const fnTypeRE = /^(?:function|class) (\w+)/; function getPropType(type) { if (Array.isArray(type)) { return type.map((t2) => getPropType(t2)).join(" or "); } if (type == null) { return "null"; } const match = type.toString().match(fnTypeRE); return typeof type === "function" ? match && match[1] || "any" : "any"; } function processState(instance) { const type = instance.type; const props = type.props; const getters = type.vuex && type.vuex.getters; const computedDefs = type.computed; const data = { ...instance.data, ...instance.renderContext }; return Object.keys(data).filter((key) => !(props && key in props) && !(getters && key in getters) && !(computedDefs && key in computedDefs)).map((key) => ({ key, type: "data", value: (0, util_2.returnError)(() => data[key]), editable: true })); } function processSetupState(instance) { const raw = instance.devtoolsRawSetupState || {}; return Object.keys(instance.setupState).filter((key) => !vueBuiltins.includes(key) && !key.startsWith("use")).map((key) => { var _a, _b, _c, _d; const value = (0, util_2.returnError)(() => toRaw(instance.setupState[key])); const rawData2 = raw[key]; let result; let isOther = typeof value === "function" || typeof (value === null || value === void 0 ? void 0 : value.render) === "function" || typeof (value === null || value === void 0 ? void 0 : value.__asyncLoader) === "function"; if (rawData2) { const info = getSetupStateInfo(rawData2); const objectType = info.computed ? "Computed" : info.ref ? "Ref" : info.reactive ? "Reactive" : null; const isState = info.ref || info.computed || info.reactive; const raw2 = ((_b = (_a = rawData2.effect) === null || _a === void 0 ? void 0 : _a.raw) === null || _b === void 0 ? void 0 : _b.toString()) || ((_d = (_c = rawData2.effect) === null || _c === void 0 ? void 0 : _c.fn) === null || _d === void 0 ? void 0 : _d.toString()); if (objectType) { isOther = false; } result = { ...objectType ? { objectType } : {}, ...raw2 ? { raw: raw2 } : {}, editable: isState && !info.readonly }; } const type = isOther ? "setup (other)" : "setup"; return { key, value, type, ...result }; }); } function isRef(raw) { return !!raw.__v_isRef; } function isComputed(raw) { return isRef(raw) && !!raw.effect; } function isReactive(raw) { return !!raw.__v_isReactive; } function isReadOnly(raw) { return !!raw.__v_isReadonly; } function toRaw(value) { if (value === null || value === void 0 ? void 0 : value.__v_raw) { return value.__v_raw; } return value; } function getSetupStateInfo(raw) { return { ref: isRef(raw), computed: isComputed(raw), reactive: isReactive(raw), readonly: isReadOnly(raw) }; } function getCustomObjectDetails(object, proto) { var _a, _b, _c, _d; const info = getSetupStateInfo(object); const isState = info.ref || info.computed || info.reactive; if (isState) { const objectType = info.computed ? "Computed" : info.ref ? "Ref" : info.reactive ? "Reactive" : null; const value = toRaw(info.reactive ? object : object._value); const raw = ((_b = (_a = object.effect) === null || _a === void 0 ? void 0 : _a.raw) === null || _b === void 0 ? void 0 : _b.toString()) || ((_d = (_c = object.effect) === null || _c === void 0 ? void 0 : _c.fn) === null || _d === void 0 ? void 0 : _d.toString()); return { _custom: { type: objectType.toLowerCase(), objectType, value, ...raw ? { tooltip: `${raw}` } : {} } }; } if (typeof object.__asyncLoader === "function") { return { _custom: { type: "component-definition", display: "Async component definition" } }; } } exports.getCustomObjectDetails = getCustomObjectDetails; function processComputed(instance, mergedType) { const type = mergedType; const computed = []; const defs = type.computed || {}; for (const key in defs) { const def = defs[key]; const type2 = typeof def === "function" && def.vuex ? "vuex bindings" : "computed"; computed.push({ type: type2, key, value: (0, util_2.returnError)(() => instance.proxy[key]), editable: typeof def.set === "function" }); } return computed; } function processAttrs(instance) { return Object.keys(instance.attrs).map((key) => ({ type: "attrs", key, value: (0, util_2.returnError)(() => instance.attrs[key]) })); } function processProvide(instance) { return Reflect.ownKeys(instance.provides).map((key) => ({ type: "provided", key: key.toString(), value: (0, util_2.returnError)(() => instance.provides[key]) })); } function processInject(instance, mergedType) { if (!(mergedType === null || mergedType === void 0 ? void 0 : mergedType.inject)) return []; let keys = []; let defaultValue; if (Array.isArray(mergedType.inject)) { keys = mergedType.inject.map((key) => ({ key, originalKey: key })); } else { keys = Reflect.ownKeys(mergedType.inject).map((key) => { const value = mergedType.inject[key]; let originalKey; if (typeof value === "string" || typeof value === "symbol") { originalKey = value; } else { originalKey = value.from; defaultValue = value.default; } return { key, originalKey }; }); } return keys.map(({ key, originalKey }) => ({ type: "injected", key: originalKey && key !== originalKey ? `${originalKey.toString()} ➞ ${key.toString()}` : key.toString(), value: (0, util_2.returnError)(() => instance.ctx[key] || instance.provides[originalKey] || defaultValue) })); } function processRefs(instance) { return Object.keys(instance.refs).map((key) => ({ type: "refs", key, value: (0, util_2.returnError)(() => instance.refs[key]) })); } function editState({ componentInstance, path, state, type }, stateEditor, ctx) { if (!["data", "props", "computed", "setup"].includes(type)) return; let target; const targetPath = path.slice(); if (Object.keys(componentInstance.props).includes(path[0])) { target = componentInstance.props; } else if (componentInstance.devtoolsRawSetupState && Object.keys(componentInstance.devtoolsRawSetupState).includes(path[0])) { target = componentInstance.devtoolsRawSetupState; const currentValue = stateEditor.get(componentInstance.devtoolsRawSetupState, path); if (currentValue != null) { const info = getSetupStateInfo(currentValue); if (info.readonly) return; } } else { target = componentInstance.proxy; } if (target && targetPath) { stateEditor.set(target, targetPath, "value" in state ? state.value : void 0, stateEditor.createDefaultSetCallback(state)); } } exports.editState = editState; function reduceStateList(list) { if (!list.length) { return void 0; } return list.reduce((map, item) => { const key = item.type || "data"; const obj = map[key] = map[key] || {}; obj[item.key] = item.value; return map; }, {}); } function getCustomInstanceDetails(instance) { if (instance._) instance = instance._; const state = getInstanceState(instance); return { _custom: { type: "component", id: instance.__VUE_DEVTOOLS_UID__, display: (0, util_1.getInstanceName)(instance), tooltip: "Component instance", value: reduceStateList(state), fields: { abstract: true } } }; } exports.getCustomInstanceDetails = getCustomInstanceDetails; function resolveMergedOptions(instance) { const raw = instance.type; const { mixins, extends: extendsOptions } = raw; const globalMixins = instance.appContext.mixins; if (!globalMixins.length && !mixins && !extendsOptions) return raw; const options = {}; globalMixins.forEach((m2) => mergeOptions(options, m2)); mergeOptions(options, raw); return options; } function mergeOptions(to, from, instance) { if (typeof from === "function") { from = from.options; } if (!from) return to; const { mixins, extends: extendsOptions } = from; extendsOptions && mergeOptions(to, extendsOptions); mixins && mixins.forEach((m2) => mergeOptions(to, m2)); for (const key of ["computed", "inject"]) { if (Object.prototype.hasOwnProperty.call(from, key)) { if (!to[key]) { to[key] = from[key]; } else { Object.assign(to[key], from[key]); } } } return to; } } ), /***/ "../app-backend-vue3/lib/components/el.js": ( /*!************************************************!*\ !*** ../app-backend-vue3/lib/components/el.js ***! \************************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.getInstanceOrVnodeRect = exports.getRootElementsFromComponentInstance = exports.getComponentInstanceFromElement = void 0; const shared_utils_1 = __webpack_require__2( /*! @vue-devtools/shared-utils */ "../shared-utils/lib/index.js" ); const util_1 = __webpack_require__2( /*! ./util */ "../app-backend-vue3/lib/components/util.js" ); function getComponentInstanceFromElement(element) { return element.__vueParentComponent; } exports.getComponentInstanceFromElement = getComponentInstanceFromElement; function getRootElementsFromComponentInstance(instance) { if ((0, util_1.isFragment)(instance)) { return getFragmentRootElements(instance.subTree); } if (!instance.subTree) return []; return [instance.subTree.el]; } exports.getRootElementsFromComponentInstance = getRootElementsFromComponentInstance; function getFragmentRootElements(vnode) { if (!vnode.children) return []; const list = []; for (let i2 = 0, l2 = vnode.children.length; i2 < l2; i2++) { const childVnode = vnode.children[i2]; if (childVnode.component) { list.push(...getRootElementsFromComponentInstance(childVnode.component)); } else if (childVnode.el) { list.push(childVnode.el); } } return list; } function getInstanceOrVnodeRect(instance) { const el = instance.subTree.el; if (!shared_utils_1.isBrowser) { return; } if (!(0, shared_utils_1.inDoc)(el)) { return; } if ((0, util_1.isFragment)(instance)) { return addIframePosition(getFragmentRect(instance.subTree), getElWindow(el)); } else if (el.nodeType === 1) { return addIframePosition(el.getBoundingClientRect(), getElWindow(el)); } else if (instance.subTree.component) { return getInstanceOrVnodeRect(instance.subTree.component); } } exports.getInstanceOrVnodeRect = getInstanceOrVnodeRect; function createRect() { const rect = { top: 0, bottom: 0, left: 0, right: 0, get width() { return rect.right - rect.left; }, get height() { return rect.bottom - rect.top; } }; return rect; } function mergeRects(a2, b2) { if (!a2.top || b2.top < a2.top) { a2.top = b2.top; } if (!a2.bottom || b2.bottom > a2.bottom) { a2.bottom = b2.bottom; } if (!a2.left || b2.left < a2.left) { a2.left = b2.left; } if (!a2.right || b2.right > a2.right) { a2.right = b2.right; } return a2; } let range; function getTextRect(node) { if (!shared_utils_1.isBrowser) return; if (!range) range = document.createRange(); range.selectNode(node); return range.getBoundingClientRect(); } function getFragmentRect(vnode) { const rect = createRect(); if (!vnode.children) return rect; for (let i2 = 0, l2 = vnode.children.length; i2 < l2; i2++) { const childVnode = vnode.children[i2]; let childRect; if (childVnode.component) { childRect = getInstanceOrVnodeRect(childVnode.component); } else if (childVnode.el) { const el = childVnode.el; if (el.nodeType === 1 || el.getBoundingClientRect) { childRect = el.getBoundingClientRect(); } else if (el.nodeType === 3 && el.data.trim()) { childRect = getTextRect(el); } } if (childRect) { mergeRects(rect, childRect); } } return rect; } function getElWindow(el) { return el.ownerDocument.defaultView; } function addIframePosition(bounds, win) { if (win.__VUE_DEVTOOLS_IFRAME__) { const rect = mergeRects(createRect(), bounds); const iframeBounds = win.__VUE_DEVTOOLS_IFRAME__.getBoundingClientRect(); rect.top += iframeBounds.top; rect.bottom += iframeBounds.top; rect.left += iframeBounds.left; rect.right += iframeBounds.left; if (win.parent) { return addIframePosition(rect, win.parent); } return rect; } return bounds; } } ), /***/ "../app-backend-vue3/lib/components/filter.js": ( /*!****************************************************!*\ !*** ../app-backend-vue3/lib/components/filter.js ***! \****************************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.ComponentFilter = void 0; const shared_utils_1 = __webpack_require__2( /*! @vue-devtools/shared-utils */ "../shared-utils/lib/index.js" ); const util_1 = __webpack_require__2( /*! ./util */ "../app-backend-vue3/lib/components/util.js" ); class ComponentFilter { constructor(filter) { this.filter = filter || ""; } /** * Check if an instance is qualified. * * @param {Vue|Vnode} instance * @return {Boolean} */ isQualified(instance) { const name = (0, util_1.getInstanceName)(instance); return (0, shared_utils_1.classify)(name).toLowerCase().indexOf(this.filter) > -1 || (0, shared_utils_1.kebabize)(name).toLowerCase().indexOf(this.filter) > -1; } } exports.ComponentFilter = ComponentFilter; } ), /***/ "../app-backend-vue3/lib/components/tree.js": ( /*!**************************************************!*\ !*** ../app-backend-vue3/lib/components/tree.js ***! \**************************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.ComponentWalker = void 0; const util_1 = __webpack_require__2( /*! ./util */ "../app-backend-vue3/lib/components/util.js" ); const filter_1 = __webpack_require__2( /*! ./filter */ "../app-backend-vue3/lib/components/filter.js" ); const el_1 = __webpack_require__2( /*! ./el */ "../app-backend-vue3/lib/components/el.js" ); class ComponentWalker { constructor(maxDepth, filter, recursively, api, ctx) { this.ctx = ctx; this.api = api; this.maxDepth = maxDepth; this.recursively = recursively; this.componentFilter = new filter_1.ComponentFilter(filter); this.uniAppPageNames = ["Page", "KeepAlive", "AsyncComponentWrapper", "BaseTransition", "Transition"]; } getComponentTree(instance) { this.captureIds = /* @__PURE__ */ new Map(); return this.findQualifiedChildren(instance, 0); } getComponentParents(instance) { this.captureIds = /* @__PURE__ */ new Map(); const parents = []; this.captureId(instance); let parent = instance; { while (parent = parent.parent) { this.captureId(parent); parents.push(parent); } } return parents; } /** * Find qualified children from a single instance. * If the instance itself is qualified, just return itself. * This is ok because [].concat works in both cases. * * @param {Vue|Vnode} instance * @return {Vue|Array} */ async findQualifiedChildren(instance, depth) { var _a; if (this.componentFilter.isQualified(instance) && !((_a = instance.type.devtools) === null || _a === void 0 ? void 0 : _a.hide)) { return [await this.capture(instance, null, depth)]; } else if (instance.subTree) { const list = this.isKeepAlive(instance) ? this.getKeepAliveCachedInstances(instance) : this.getInternalInstanceChildrenByInstance(instance); return this.findQualifiedChildrenFromList(list, depth); } else { return []; } } /** * Iterate through an array of instances and flatten it into * an array of qualified instances. This is a depth-first * traversal - e.g. if an instance is not matched, we will * recursively go deeper until a qualified child is found. * * @param {Array} instances * @return {Array} */ async findQualifiedChildrenFromList(instances, depth) { instances = instances.filter((child) => { var _a; return !(0, util_1.isBeingDestroyed)(child) && !((_a = child.type.devtools) === null || _a === void 0 ? void 0 : _a.hide); }); if (!this.componentFilter.filter) { return Promise.all(instances.map((child, index, list) => this.capture(child, list, depth))); } else { return Array.prototype.concat.apply([], await Promise.all(instances.map((i2) => this.findQualifiedChildren(i2, depth)))); } } /** * fixed by xxxxxx * @param instance * @param suspense * @returns */ getInternalInstanceChildrenByInstance(instance, suspense = null) { if (instance.ctx.$children) { return instance.ctx.$children.map((proxy) => proxy.$); } return this.getInternalInstanceChildren(instance.subTree, suspense); } /** * Get children from a component instance. */ getInternalInstanceChildren(subTree, suspense = null) { const list = []; if (subTree) { if (subTree.component) { this.getInstanceChildrenBySubTreeComponent(list, subTree, suspense); } else if (subTree.suspense) { const suspenseKey = !subTree.suspense.isInFallback ? "suspense default" : "suspense fallback"; list.push(...this.getInternalInstanceChildren(subTree.suspense.activeBranch, { ...subTree.suspense, suspenseKey })); } else if (Array.isArray(subTree.children)) { subTree.children.forEach((childSubTree) => { if (childSubTree.component) { this.getInstanceChildrenBySubTreeComponent(list, childSubTree, suspense); } else { list.push(...this.getInternalInstanceChildren(childSubTree, suspense)); } }); } } return list.filter((child) => { var _a; return !(0, util_1.isBeingDestroyed)(child) && !((_a = child.type.devtools) === null || _a === void 0 ? void 0 : _a.hide); }); } /** * getInternalInstanceChildren by subTree component for uni-app defineSystemComponent */ getInstanceChildrenBySubTreeComponent(list, subTree, suspense) { if (subTree.type.__reserved || this.uniAppPageNames.includes(subTree.type.name)) { list.push(...this.getInternalInstanceChildren(subTree.component.subTree)); } else { !suspense ? list.push(subTree.component) : list.push({ ...subTree.component, suspense }); } } captureId(instance) { if (!instance) return null; const id = instance.__VUE_DEVTOOLS_UID__ != null ? instance.__VUE_DEVTOOLS_UID__ : (0, util_1.getUniqueComponentId)(instance, this.ctx); instance.__VUE_DEVTOOLS_UID__ = id; if (this.captureIds.has(id)) { return; } else { this.captureIds.set(id, void 0); } this.mark(instance); return id; } /** * Capture the meta information of an instance. (recursive) * * @param {Vue} instance * @return {Object} */ async capture(instance, list, depth) { var _b; if (!instance) return null; const id = this.captureId(instance); const name = (0, util_1.getInstanceName)(instance); const children = this.getInternalInstanceChildrenByInstance(instance).filter((child) => !(0, util_1.isBeingDestroyed)(child)); const parents = this.getComponentParents(instance) || []; const inactive = !!instance.isDeactivated || parents.some((parent) => parent.isDeactivated); const treeNode = { uid: instance.uid, id, name, renderKey: (0, util_1.getRenderKey)(instance.vnode ? instance.vnode.key : null), inactive, hasChildren: !!children.length, children: [], isFragment: (0, util_1.isFragment)(instance), tags: typeof instance.type !== "function" ? [] : [{ label: "functional", textColor: 5592405, backgroundColor: 15658734 }], autoOpen: this.recursively }; { treeNode.route = instance.attrs.__pagePath || ""; } if (depth < this.maxDepth || instance.type.__isKeepAlive || parents.some((parent) => parent.type.__isKeepAlive)) { treeNode.children = await Promise.all(children.map((child, index, list2) => this.capture(child, list2, depth + 1)).filter(Boolean)); } if (this.isKeepAlive(instance)) { const cachedComponents = this.getKeepAliveCachedInstances(instance); const childrenIds = children.map((child) => child.__VUE_DEVTOOLS_UID__); for (const cachedChild of cachedComponents) { if (!childrenIds.includes(cachedChild.__VUE_DEVTOOLS_UID__)) { const node = await this.capture({ ...cachedChild, isDeactivated: true }, null, depth + 1); if (node) { treeNode.children.push(node); } } } } const rootElements = (0, el_1.getRootElementsFromComponentInstance)(instance); const firstElement = rootElements[0]; if (firstElement === null || firstElement === void 0 ? void 0 : firstElement.parentElement) { const parentInstance = instance.parent; const parentRootElements = parentInstance ? (0, el_1.getRootElementsFromComponentInstance)(parentInstance) : []; let el = firstElement; const indexList = []; do { indexList.push(Array.from(el.parentElement.childNodes).indexOf(el)); el = el.parentElement; } while (el.parentElement && parentRootElements.length && !parentRootElements.includes(el)); treeNode.domOrder = indexList.reverse(); } else { treeNode.domOrder = [-1]; } if ((_b = instance.suspense) === null || _b === void 0 ? void 0 : _b.suspenseKey) { treeNode.tags.push({ label: instance.suspense.suspenseKey, backgroundColor: 14979812, textColor: 16777215 }); this.mark(instance, true); } return this.api.visitComponentTree(instance, treeNode, this.componentFilter.filter, this.ctx.currentAppRecord.options.app); } /** * Mark an instance as captured and store it in the instance map. * * @param {Vue} instance */ mark(instance, force = false) { const instanceMap = this.ctx.currentAppRecord.instanceMap; if (force || !instanceMap.has(instance.__VUE_DEVTOOLS_UID__)) { instanceMap.set(instance.__VUE_DEVTOOLS_UID__, instance); } } isKeepAlive(instance) { return instance.type.__isKeepAlive && instance.__v_cache; } getKeepAliveCachedInstances(instance) { return Array.from(instance.__v_cache.values()).map((vnode) => vnode.component).filter(Boolean); } } exports.ComponentWalker = ComponentWalker; } ), /***/ "../app-backend-vue3/lib/components/util.js": ( /*!**************************************************!*\ !*** ../app-backend-vue3/lib/components/util.js ***! \**************************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.getComponentInstances = exports.getRenderKey = exports.getUniqueComponentId = exports.getInstanceName = exports.isFragment = exports.getAppRecord = exports.isBeingDestroyed = void 0; const shared_utils_1 = __webpack_require__2( /*! @vue-devtools/shared-utils */ "../shared-utils/lib/index.js" ); const util_1 = __webpack_require__2( /*! ../util */ "../app-backend-vue3/lib/util.js" ); function isBeingDestroyed(instance) { return instance._isBeingDestroyed || instance.isUnmounted; } exports.isBeingDestroyed = isBeingDestroyed; function getAppRecord(instance) { if (instance.root) { return instance.appContext.app.__VUE_DEVTOOLS_APP_RECORD__; } } exports.getAppRecord = getAppRecord; function isFragment(instance) { var _a; const appRecord = getAppRecord(instance); if (appRecord) { return appRecord.options.types.Fragment === ((_a = instance.subTree) === null || _a === void 0 ? void 0 : _a.type); } } exports.isFragment = isFragment; function getInstanceName(instance) { var _a, _b, _c; const name = getComponentTypeName(instance.type || {}); if (name) return name; if (isAppRoot(instance)) return "Root"; for (const key in (_b = (_a = instance.parent) === null || _a === void 0 ? void 0 : _a.type) === null || _b === void 0 ? void 0 : _b.components) { if (instance.parent.type.components[key] === instance.type) return saveComponentName(instance, key); } for (const key in (_c = instance.appContext) === null || _c === void 0 ? void 0 : _c.components) { if (instance.appContext.components[key] === instance.type) return saveComponentName(instance, key); } return "Anonymous Component"; } exports.getInstanceName = getInstanceName; function saveComponentName(instance, key) { instance.type.__vdevtools_guessedName = key; return key; } function getComponentTypeName(options) { const name = options.name || options._componentTag || options.__vdevtools_guessedName; if (name) { return name; } const file = options.__file; if (file) { return (0, shared_utils_1.classify)((0, util_1.basename)(file, ".vue")); } } function isAppRoot(instance) { return instance.ctx.$mpType === "app"; } function getUniqueComponentId(instance, ctx) { const appId = instance.appContext.app.__VUE_DEVTOOLS_APP_RECORD_ID__; const instanceId = isAppRoot(instance) ? "root" : instance.uid; return `${appId}:${instanceId}`; } exports.getUniqueComponentId = getUniqueComponentId; function getRenderKey(value) { if (value == null) return; const type = typeof value; if (type === "number") { return value; } else if (type === "string") { return `'${value}'`; } else if (Array.isArray(value)) { return "Array"; } else { return "Object"; } } exports.getRenderKey = getRenderKey; function getComponentInstances(app) { const appRecord = app.__VUE_DEVTOOLS_APP_RECORD__; const appId = appRecord.id.toString(); return [...appRecord.instanceMap].filter(([key]) => key.split(":")[0] === appId).map(([, instance]) => instance); } exports.getComponentInstances = getComponentInstances; } ), /***/ "../app-backend-vue3/lib/index.js": ( /*!****************************************!*\ !*** ../app-backend-vue3/lib/index.js ***! \****************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.backend = void 0; const app_backend_api_1 = __webpack_require__2( /*! @vue-devtools/app-backend-api */ "../app-backend-api/lib/index.js" ); const tree_1 = __webpack_require__2( /*! ./components/tree */ "../app-backend-vue3/lib/components/tree.js" ); const data_1 = __webpack_require__2( /*! ./components/data */ "../app-backend-vue3/lib/components/data.js" ); const util_1 = __webpack_require__2( /*! ./components/util */ "../app-backend-vue3/lib/components/util.js" ); const el_1 = __webpack_require__2( /*! ./components/el */ "../app-backend-vue3/lib/components/el.js" ); const shared_utils_1 = __webpack_require__2( /*! @vue-devtools/shared-utils */ "../shared-utils/lib/index.js" ); exports.backend = (0, app_backend_api_1.defineBackend)({ frameworkVersion: 3, features: [], setup(api) { api.on.getAppRecordName((payload) => { if (payload.app._component) { payload.name = payload.app._component.name; } }); api.on.getAppRootInstance((payload) => { var _a, _b, _c, _d; if (payload.app._instance) { payload.root = payload.app._instance; } else if ((_b = (_a = payload.app._container) === null || _a === void 0 ? void 0 : _a._vnode) === null || _b === void 0 ? void 0 : _b.component) { payload.root = (_d = (_c = payload.app._container) === null || _c === void 0 ? void 0 : _c._vnode) === null || _d === void 0 ? void 0 : _d.component; } }); api.on.walkComponentTree(async (payload, ctx) => { const walker = new tree_1.ComponentWalker(payload.maxDepth, payload.filter, payload.recursively, api, ctx); payload.componentTreeData = await walker.getComponentTree(payload.componentInstance); }); api.on.walkComponentParents((payload, ctx) => { const walker = new tree_1.ComponentWalker(0, null, false, api, ctx); payload.parentInstances = walker.getComponentParents(payload.componentInstance); }); api.on.inspectComponent((payload, ctx) => { shared_utils_1.backendInjections.getCustomInstanceDetails = data_1.getCustomInstanceDetails; shared_utils_1.backendInjections.getCustomObjectDetails = data_1.getCustomObjectDetails; shared_utils_1.backendInjections.instanceMap = ctx.currentAppRecord.instanceMap; shared_utils_1.backendInjections.isVueInstance = (val) => val._ && Object.keys(val._).includes("vnode"); payload.instanceData = (0, data_1.getInstanceDetails)(payload.componentInstance, ctx); }); api.on.getComponentName((payload) => { payload.name = (0, util_1.getInstanceName)(payload.componentInstance); }); api.on.getComponentBounds((payload) => { payload.bounds = (0, el_1.getInstanceOrVnodeRect)(payload.componentInstance); }); api.on.getElementComponent((payload) => { payload.componentInstance = (0, el_1.getComponentInstanceFromElement)(payload.element); }); api.on.getComponentInstances((payload) => { payload.componentInstances = (0, util_1.getComponentInstances)(payload.app); }); api.on.getComponentRootElements((payload) => { payload.rootElements = (0, el_1.getRootElementsFromComponentInstance)(payload.componentInstance); }); api.on.editComponentState((payload, ctx) => { (0, data_1.editState)(payload, api.stateEditor, ctx); }); api.on.getComponentDevtoolsOptions((payload) => { payload.options = payload.componentInstance.type.devtools; }); api.on.getComponentRenderCode((payload) => { payload.code = !(payload.componentInstance.type instanceof Function) ? payload.componentInstance.render.toString() : payload.componentInstance.type.toString(); }); api.on.transformCall((payload) => { if (payload.callName === shared_utils_1.HookEvents.COMPONENT_UPDATED) { const component = payload.inArgs[0]; payload.outArgs = [component.appContext.app, component.uid, component.parent ? component.parent.uid : void 0, component]; } }); api.stateEditor.isRef = (value) => !!(value === null || value === void 0 ? void 0 : value.__v_isRef); api.stateEditor.getRefValue = (ref) => ref.value; api.stateEditor.setRefValue = (ref, value) => { ref.value = value; }; } }); } ), /***/ "../app-backend-vue3/lib/util.js": ( /*!***************************************!*\ !*** ../app-backend-vue3/lib/util.js ***! \***************************************/ /***/ function(__unused_webpack_module, exports, __webpack_require__2) { var __importDefault = this && this.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.returnError = exports.basename = exports.flatten = void 0; const path_1 = __importDefault(__webpack_require__2( /*! path */ "../../node_modules/path-browserify/index.js" )); function flatten(items) { return items.reduce((acc, item) => { if (item instanceof Array) acc.push(...flatten(item)); else if (item) acc.push(item); return acc; }, []); } exports.flatten = flatten; function basename(filename, ext) { return path_1.default.basename(filename.replace(/^[a-zA-Z]:/, "").replace(/\\/g, "/"), ext); } exports.basename = basename; function returnError(cb) { try { return cb(); } catch (e2) { return e2; } } exports.returnError = returnError; } ), /***/ "../shared-utils/lib/backend.js": ( /*!**************************************!*\ !*** ../shared-utils/lib/backend.js ***! \**************************************/ /***/ (__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.getCatchedGetters = exports.getCustomStoreDetails = exports.getCustomRouterDetails = exports.isVueInstance = exports.getCustomObjectDetails = exports.getCustomInstanceDetails = exports.getInstanceMap = exports.backendInjections = void 0; exports.backendInjections = { instanceMap: /* @__PURE__ */ new Map(), isVueInstance: () => false, getCustomInstanceDetails: () => ({}), getCustomObjectDetails: () => void 0 }; function getInstanceMap() { return exports.backendInjections.instanceMap; } exports.getInstanceMap = getInstanceMap; function getCustomInstanceDetails(instance) { return exports.backendInjections.getCustomInstanceDetails(instance); } exports.getCustomInstanceDetails = getCustomInstanceDetails; function getCustomObjectDetails(value, proto) { return exports.backendInjections.getCustomObjectDetails(value, proto); } exports.getCustomObjectDetails = getCustomObjectDetails; function isVueInstance(value) { return exports.backendInjections.isVueInstance(value); } exports.isVueInstance = isVueInstance; function getCustomRouterDetails(router) { return { _custom: { type: "router", display: "VueRouter", value: { options: router.options, currentRoute: router.currentRoute }, fields: { abstract: true } } }; } exports.getCustomRouterDetails = getCustomRouterDetails; function getCustomStoreDetails(store) { return { _custom: { type: "store", display: "Store", value: { state: store.state, getters: getCatchedGetters(store) }, fields: { abstract: true } } }; } exports.getCustomStoreDetails = getCustomStoreDetails; function getCatchedGetters(store) { const getters = {}; const origGetters = store.getters || {}; const keys = Object.keys(origGetters); for (let i2 = 0; i2 < keys.length; i2++) { const key = keys[i2]; Object.defineProperty(getters, key, { enumerable: true, get: () => { try { return origGetters[key]; } catch (e2) { return e2; } } }); } return getters; } exports.getCatchedGetters = getCatchedGetters; } ), /***/ "../shared-utils/lib/bridge.js": ( /*!*************************************!*\ !*** ../shared-utils/lib/bridge.js ***! \*************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.Bridge = void 0; const events_1 = __webpack_require__2( /*! events */ "../../node_modules/events/events.js" ); const raf_1 = __webpack_require__2( /*! ./raf */ "../shared-utils/lib/raf.js" ); const BATCH_DURATION = 100; class Bridge extends events_1.EventEmitter { constructor(wall) { super(); this.setMaxListeners(Infinity); this.wall = wall; wall.listen((messages2) => { if (Array.isArray(messages2)) { messages2.forEach((message) => this._emit(message)); } else { this._emit(messages2); } }); this._batchingQueue = []; this._sendingQueue = []; this._receivingQueue = []; this._sending = false; } on(event, listener) { const wrappedListener = async (...args) => { try { await listener(...args); } catch (e2) { console.error(`[Bridge] Error in listener for event ${event.toString()} with args:`, args); console.error(e2); } }; return super.on(event, wrappedListener); } send(event, payload) { this._batchingQueue.push({ event, payload }); if (this._timer == null) { this._timer = setTimeout(() => this._flush(), BATCH_DURATION); } } /** * Log a message to the devtools background page. */ log(message) { this.send("log", message); } _flush() { if (this._batchingQueue.length) this._send(this._batchingQueue); clearTimeout(this._timer); this._timer = null; this._batchingQueue = []; } // @TODO types _emit(message) { if (typeof message === "string") { this.emit(message); } else if (message._chunk) { this._receivingQueue.push(message._chunk); if (message.last) { this.emit(message.event, this._receivingQueue); this._receivingQueue = []; } } else if (message.event) { this.emit(message.event, message.payload); } } // @TODO types _send(messages2) { this._sendingQueue.push(messages2); this._nextSend(); } _nextSend() { if (!this._sendingQueue.length || this._sending) return; this._sending = true; const messages2 = this._sendingQueue.shift(); try { this.wall.send(messages2); } catch (err) { if (err.message === "Message length exceeded maximum allowed length.") { this._sendingQueue.splice(0, 0, messages2.map((message) => [message])); } } this._sending = false; (0, raf_1.raf)(() => this._nextSend()); } } exports.Bridge = Bridge; } ), /***/ "../shared-utils/lib/consts.js": ( /*!*************************************!*\ !*** ../shared-utils/lib/consts.js ***! \*************************************/ /***/ (__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.HookEvents = exports.BridgeSubscriptions = exports.BridgeEvents = exports.BuiltinTabs = void 0; (function(BuiltinTabs) { BuiltinTabs["COMPONENTS"] = "components"; BuiltinTabs["TIMELINE"] = "timeline"; BuiltinTabs["PLUGINS"] = "plugins"; BuiltinTabs["SETTINGS"] = "settings"; })(exports.BuiltinTabs || (exports.BuiltinTabs = {})); (function(BridgeEvents) { BridgeEvents["TO_BACK_SUBSCRIBE"] = "b:subscribe"; BridgeEvents["TO_BACK_UNSUBSCRIBE"] = "b:unsubscribe"; BridgeEvents["TO_FRONT_READY"] = "f:ready"; BridgeEvents["TO_BACK_LOG_DETECTED_VUE"] = "b:log-detected-vue"; BridgeEvents["TO_BACK_REFRESH"] = "b:refresh"; BridgeEvents["TO_BACK_TAB_SWITCH"] = "b:tab:switch"; BridgeEvents["TO_BACK_LOG"] = "b:log"; BridgeEvents["TO_FRONT_RECONNECTED"] = "f:reconnected"; BridgeEvents["TO_FRONT_TITLE"] = "f:title"; BridgeEvents["TO_FRONT_APP_ADD"] = "f:app:add"; BridgeEvents["TO_BACK_APP_LIST"] = "b:app:list"; BridgeEvents["TO_FRONT_APP_LIST"] = "f:app:list"; BridgeEvents["TO_FRONT_APP_REMOVE"] = "f:app:remove"; BridgeEvents["TO_BACK_APP_SELECT"] = "b:app:select"; BridgeEvents["TO_FRONT_APP_SELECTED"] = "f:app:selected"; BridgeEvents["TO_BACK_SCAN_LEGACY_APPS"] = "b:app:scan-legacy"; BridgeEvents["TO_BACK_COMPONENT_TREE"] = "b:component:tree"; BridgeEvents["TO_FRONT_COMPONENT_TREE"] = "f:component:tree"; BridgeEvents["TO_BACK_COMPONENT_SELECTED_DATA"] = "b:component:selected-data"; BridgeEvents["TO_FRONT_COMPONENT_SELECTED_DATA"] = "f:component:selected-data"; BridgeEvents["TO_BACK_COMPONENT_EXPAND"] = "b:component:expand"; BridgeEvents["TO_FRONT_COMPONENT_EXPAND"] = "f:component:expand"; BridgeEvents["TO_BACK_COMPONENT_SCROLL_TO"] = "b:component:scroll-to"; BridgeEvents["TO_BACK_COMPONENT_FILTER"] = "b:component:filter"; BridgeEvents["TO_BACK_COMPONENT_MOUSE_OVER"] = "b:component:mouse-over"; BridgeEvents["TO_BACK_COMPONENT_MOUSE_OUT"] = "b:component:mouse-out"; BridgeEvents["TO_BACK_COMPONENT_CONTEXT_MENU_TARGET"] = "b:component:context-menu-target"; BridgeEvents["TO_BACK_COMPONENT_EDIT_STATE"] = "b:component:edit-state"; BridgeEvents["TO_BACK_COMPONENT_PICK"] = "b:component:pick"; BridgeEvents["TO_FRONT_COMPONENT_PICK"] = "f:component:pick"; BridgeEvents["TO_BACK_COMPONENT_PICK_CANCELED"] = "b:component:pick-canceled"; BridgeEvents["TO_FRONT_COMPONENT_PICK_CANCELED"] = "f:component:pick-canceled"; BridgeEvents["TO_BACK_COMPONENT_INSPECT_DOM"] = "b:component:inspect-dom"; BridgeEvents["TO_FRONT_COMPONENT_INSPECT_DOM"] = "f:component:inspect-dom"; BridgeEvents["TO_BACK_COMPONENT_RENDER_CODE"] = "b:component:render-code"; BridgeEvents["TO_FRONT_COMPONENT_RENDER_CODE"] = "f:component:render-code"; BridgeEvents["TO_FRONT_COMPONENT_UPDATED"] = "f:component:updated"; BridgeEvents["TO_FRONT_TIMELINE_EVENT"] = "f:timeline:event"; BridgeEvents["TO_BACK_TIMELINE_LAYER_LIST"] = "b:timeline:layer-list"; BridgeEvents["TO_FRONT_TIMELINE_LAYER_LIST"] = "f:timeline:layer-list"; BridgeEvents["TO_FRONT_TIMELINE_LAYER_ADD"] = "f:timeline:layer-add"; BridgeEvents["TO_BACK_TIMELINE_SHOW_SCREENSHOT"] = "b:timeline:show-screenshot"; BridgeEvents["TO_BACK_TIMELINE_CLEAR"] = "b:timeline:clear"; BridgeEvents["TO_BACK_TIMELINE_EVENT_DATA"] = "b:timeline:event-data"; BridgeEvents["TO_FRONT_TIMELINE_EVENT_DATA"] = "f:timeline:event-data"; BridgeEvents["TO_BACK_TIMELINE_LAYER_LOAD_EVENTS"] = "b:timeline:layer-load-events"; BridgeEvents["TO_FRONT_TIMELINE_LAYER_LOAD_EVENTS"] = "f:timeline:layer-load-events"; BridgeEvents["TO_BACK_TIMELINE_LOAD_MARKERS"] = "b:timeline:load-markers"; BridgeEvents["TO_FRONT_TIMELINE_LOAD_MARKERS"] = "f:timeline:load-markers"; BridgeEvents["TO_FRONT_TIMELINE_MARKER"] = "f:timeline:marker"; BridgeEvents["TO_BACK_DEVTOOLS_PLUGIN_LIST"] = "b:devtools-plugin:list"; BridgeEvents["TO_FRONT_DEVTOOLS_PLUGIN_LIST"] = "f:devtools-plugin:list"; BridgeEvents["TO_FRONT_DEVTOOLS_PLUGIN_ADD"] = "f:devtools-plugin:add"; BridgeEvents["TO_BACK_DEVTOOLS_PLUGIN_SETTING_UPDATED"] = "b:devtools-plugin:setting-updated"; BridgeEvents["TO_BACK_CUSTOM_INSPECTOR_LIST"] = "b:custom-inspector:list"; BridgeEvents["TO_FRONT_CUSTOM_INSPECTOR_LIST"] = "f:custom-inspector:list"; BridgeEvents["TO_FRONT_CUSTOM_INSPECTOR_ADD"] = "f:custom-inspector:add"; BridgeEvents["TO_BACK_CUSTOM_INSPECTOR_TREE"] = "b:custom-inspector:tree"; BridgeEvents["TO_FRONT_CUSTOM_INSPECTOR_TREE"] = "f:custom-inspector:tree"; BridgeEvents["TO_BACK_CUSTOM_INSPECTOR_STATE"] = "b:custom-inspector:state"; BridgeEvents["TO_FRONT_CUSTOM_INSPECTOR_STATE"] = "f:custom-inspector:state"; BridgeEvents["TO_BACK_CUSTOM_INSPECTOR_EDIT_STATE"] = "b:custom-inspector:edit-state"; BridgeEvents["TO_BACK_CUSTOM_INSPECTOR_ACTION"] = "b:custom-inspector:action"; BridgeEvents["TO_BACK_CUSTOM_INSPECTOR_NODE_ACTION"] = "b:custom-inspector:node-action"; BridgeEvents["TO_FRONT_CUSTOM_INSPECTOR_SELECT_NODE"] = "f:custom-inspector:select-node"; BridgeEvents["TO_BACK_CUSTOM_STATE_ACTION"] = "b:custom-state:action"; })(exports.BridgeEvents || (exports.BridgeEvents = {})); (function(BridgeSubscriptions) { BridgeSubscriptions["SELECTED_COMPONENT_DATA"] = "component:selected-data"; BridgeSubscriptions["COMPONENT_TREE"] = "component:tree"; })(exports.BridgeSubscriptions || (exports.BridgeSubscriptions = {})); (function(HookEvents) { HookEvents["INIT"] = "init"; HookEvents["APP_INIT"] = "app:init"; HookEvents["APP_ADD"] = "app:add"; HookEvents["APP_UNMOUNT"] = "app:unmount"; HookEvents["COMPONENT_UPDATED"] = "component:updated"; HookEvents["COMPONENT_ADDED"] = "component:added"; HookEvents["COMPONENT_REMOVED"] = "component:removed"; HookEvents["COMPONENT_EMIT"] = "component:emit"; HookEvents["COMPONENT_HIGHLIGHT"] = "component:highlight"; HookEvents["COMPONENT_UNHIGHLIGHT"] = "component:unhighlight"; HookEvents["SETUP_DEVTOOLS_PLUGIN"] = "devtools-plugin:setup"; HookEvents["TIMELINE_LAYER_ADDED"] = "timeline:layer-added"; HookEvents["TIMELINE_EVENT_ADDED"] = "timeline:event-added"; HookEvents["CUSTOM_INSPECTOR_ADD"] = "custom-inspector:add"; HookEvents["CUSTOM_INSPECTOR_SEND_TREE"] = "custom-inspector:send-tree"; HookEvents["CUSTOM_INSPECTOR_SEND_STATE"] = "custom-inspector:send-state"; HookEvents["CUSTOM_INSPECTOR_SELECT_NODE"] = "custom-inspector:select-node"; HookEvents["PERFORMANCE_START"] = "perf:start"; HookEvents["PERFORMANCE_END"] = "perf:end"; HookEvents["PLUGIN_SETTINGS_SET"] = "plugin:settings:set"; HookEvents["FLUSH"] = "flush"; HookEvents["TRACK_UPDATE"] = "_track-update"; HookEvents["FLASH_UPDATE"] = "_flash-update"; })(exports.HookEvents || (exports.HookEvents = {})); } ), /***/ "../shared-utils/lib/edit.js": ( /*!***********************************!*\ !*** ../shared-utils/lib/edit.js ***! \***********************************/ /***/ (__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.StateEditor = void 0; class StateEditor { set(object, path, value, cb = null) { const sections = Array.isArray(path) ? path : path.split("."); while (sections.length > 1) { object = object[sections.shift()]; if (this.isRef(object)) { object = this.getRefValue(object); } } const field = sections[0]; if (cb) { cb(object, field, value); } else if (this.isRef(object[field])) { this.setRefValue(object[field], value); } else { object[field] = value; } } get(object, path) { const sections = Array.isArray(path) ? path : path.split("."); for (let i2 = 0; i2 < sections.length; i2++) { object = object[sections[i2]]; if (this.isRef(object)) { object = this.getRefValue(object); } if (!object) { return void 0; } } return object; } has(object, path, parent = false) { if (typeof object === "undefined") { return false; } const sections = Array.isArray(path) ? path.slice() : path.split("."); const size = !parent ? 1 : 2; while (object && sections.length > size) { object = object[sections.shift()]; if (this.isRef(object)) { object = this.getRefValue(object); } } return object != null && Object.prototype.hasOwnProperty.call(object, sections[0]); } createDefaultSetCallback(state) { return (obj, field, value) => { if (state.remove || state.newKey) { if (Array.isArray(obj)) { obj.splice(field, 1); } else { delete obj[field]; } } if (!state.remove) { const target = obj[state.newKey || field]; if (this.isRef(target)) { this.setRefValue(target, value); } else { obj[state.newKey || field] = value; } } }; } isRef(ref) { return false; } setRefValue(ref, value) { } getRefValue(ref) { return ref; } } exports.StateEditor = StateEditor; } ), /***/ "../shared-utils/lib/env.js": ( /*!**********************************!*\ !*** ../shared-utils/lib/env.js ***! \**********************************/ /***/ (__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.initEnv = exports.keys = exports.isLinux = exports.isMac = exports.isWindows = exports.isFirefox = exports.isChrome = exports.target = exports.isBrowser = void 0; exports.isBrowser = typeof navigator !== "undefined" && typeof window !== "undefined"; exports.target = exports.isBrowser ? window : typeof globalThis !== "undefined" ? globalThis : typeof commonjsGlobal !== "undefined" ? commonjsGlobal : typeof my !== "undefined" ? my : {}; exports.isChrome = typeof exports.target.chrome !== "undefined" && !!exports.target.chrome.devtools; exports.isFirefox = exports.isBrowser && navigator.userAgent && navigator.userAgent.indexOf("Firefox") > -1; exports.isWindows = exports.isBrowser && navigator.platform.indexOf("Win") === 0; exports.isMac = exports.isBrowser && navigator.platform === "MacIntel"; exports.isLinux = exports.isBrowser && navigator.platform.indexOf("Linux") === 0; exports.keys = { ctrl: exports.isMac ? "⌘" : "Ctrl", shift: "Shift", alt: exports.isMac ? "⌥" : "Alt", del: "Del", enter: "Enter", esc: "Esc" }; function initEnv(Vue2) { if (Vue2.prototype.hasOwnProperty("$isChrome")) return; Object.defineProperties(Vue2.prototype, { $isChrome: { get: () => exports.isChrome }, $isFirefox: { get: () => exports.isFirefox }, $isWindows: { get: () => exports.isWindows }, $isMac: { get: () => exports.isMac }, $isLinux: { get: () => exports.isLinux }, $keys: { get: () => exports.keys } }); if (exports.isWindows) document.body.classList.add("platform-windows"); if (exports.isMac) document.body.classList.add("platform-mac"); if (exports.isLinux) document.body.classList.add("platform-linux"); } exports.initEnv = initEnv; } ), /***/ "../shared-utils/lib/index.js": ( /*!************************************!*\ !*** ../shared-utils/lib/index.js ***! \************************************/ /***/ function(__unused_webpack_module, exports, __webpack_require__2) { var __createBinding = this && this.__createBinding || (Object.create ? function(o2, m2, k, k2) { if (k2 === void 0) k2 = k; var desc = Object.getOwnPropertyDescriptor(m2, k); if (!desc || ("get" in desc ? !m2.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m2[k]; } }; } Object.defineProperty(o2, k2, desc); } : function(o2, m2, k, k2) { if (k2 === void 0) k2 = k; o2[k2] = m2[k]; }); var __exportStar = this && this.__exportStar || function(m2, exports2) { for (var p2 in m2) if (p2 !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p2)) __createBinding(exports2, m2, p2); }; Object.defineProperty(exports, "__esModule", { value: true }); __exportStar(__webpack_require__2( /*! ./backend */ "../shared-utils/lib/backend.js" ), exports); __exportStar(__webpack_require__2( /*! ./bridge */ "../shared-utils/lib/bridge.js" ), exports); __exportStar(__webpack_require__2( /*! ./consts */ "../shared-utils/lib/consts.js" ), exports); __exportStar(__webpack_require__2( /*! ./edit */ "../shared-utils/lib/edit.js" ), exports); __exportStar(__webpack_require__2( /*! ./env */ "../shared-utils/lib/env.js" ), exports); __exportStar(__webpack_require__2( /*! ./plugin-permissions */ "../shared-utils/lib/plugin-permissions.js" ), exports); __exportStar(__webpack_require__2( /*! ./plugin-settings */ "../shared-utils/lib/plugin-settings.js" ), exports); __exportStar(__webpack_require__2( /*! ./shared-data */ "../shared-utils/lib/shared-data.js" ), exports); __exportStar(__webpack_require__2( /*! ./shell */ "../shared-utils/lib/shell.js" ), exports); __exportStar(__webpack_require__2( /*! ./storage */ "../shared-utils/lib/storage.js" ), exports); __exportStar(__webpack_require__2( /*! ./transfer */ "../shared-utils/lib/transfer.js" ), exports); __exportStar(__webpack_require__2( /*! ./util */ "../shared-utils/lib/util.js" ), exports); __exportStar(__webpack_require__2( /*! ./raf */ "../shared-utils/lib/raf.js" ), exports); } ), /***/ "../shared-utils/lib/plugin-permissions.js": ( /*!*************************************************!*\ !*** ../shared-utils/lib/plugin-permissions.js ***! \*************************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.setPluginPermission = exports.hasPluginPermission = exports.PluginPermission = void 0; const shared_data_1 = __webpack_require__2( /*! ./shared-data */ "../shared-utils/lib/shared-data.js" ); (function(PluginPermission) { PluginPermission["ENABLED"] = "enabled"; PluginPermission["COMPONENTS"] = "components"; PluginPermission["CUSTOM_INSPECTOR"] = "custom-inspector"; PluginPermission["TIMELINE"] = "timeline"; })(exports.PluginPermission || (exports.PluginPermission = {})); function hasPluginPermission(pluginId, permission2) { const result = shared_data_1.SharedData.pluginPermissions[`${pluginId}:${permission2}`]; if (result == null) return true; return !!result; } exports.hasPluginPermission = hasPluginPermission; function setPluginPermission(pluginId, permission2, active) { shared_data_1.SharedData.pluginPermissions = { ...shared_data_1.SharedData.pluginPermissions, [`${pluginId}:${permission2}`]: active }; } exports.setPluginPermission = setPluginPermission; } ), /***/ "../shared-utils/lib/plugin-settings.js": ( /*!**********************************************!*\ !*** ../shared-utils/lib/plugin-settings.js ***! \**********************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.getPluginDefaultSettings = exports.setPluginSettings = exports.getPluginSettings = void 0; const shared_data_1 = __webpack_require__2( /*! ./shared-data */ "../shared-utils/lib/shared-data.js" ); function getPluginSettings(pluginId, defaultSettings) { var _a; return { ...defaultSettings !== null && defaultSettings !== void 0 ? defaultSettings : {}, ...(_a = shared_data_1.SharedData.pluginSettings[pluginId]) !== null && _a !== void 0 ? _a : {} }; } exports.getPluginSettings = getPluginSettings; function setPluginSettings(pluginId, settings) { shared_data_1.SharedData.pluginSettings = { ...shared_data_1.SharedData.pluginSettings, [pluginId]: settings }; } exports.setPluginSettings = setPluginSettings; function getPluginDefaultSettings(schema) { const result = {}; if (schema) { for (const id in schema) { const item = schema[id]; result[id] = item.defaultValue; } } return result; } exports.getPluginDefaultSettings = getPluginDefaultSettings; } ), /***/ "../shared-utils/lib/raf.js": ( /*!**********************************!*\ !*** ../shared-utils/lib/raf.js ***! \**********************************/ /***/ (__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.raf = void 0; let pendingCallbacks = []; exports.raf = typeof requestAnimationFrame === "function" ? requestAnimationFrame : typeof setImmediate === "function" ? (fn) => { if (!pendingCallbacks.length) { setImmediate(() => { const now = performance.now(); const cbs = pendingCallbacks; pendingCallbacks = []; cbs.forEach((cb) => cb(now)); }); } pendingCallbacks.push(fn); } : function(callback) { return setTimeout(function() { callback(Date.now()); }, 1e3 / 60); }; } ), /***/ "../shared-utils/lib/shared-data.js": ( /*!******************************************!*\ !*** ../shared-utils/lib/shared-data.js ***! \******************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.SharedData = exports.watchSharedData = exports.destroySharedData = exports.onSharedDataInit = exports.initSharedData = void 0; const storage_1 = __webpack_require__2( /*! ./storage */ "../shared-utils/lib/storage.js" ); const env_1 = __webpack_require__2( /*! ./env */ "../shared-utils/lib/env.js" ); const internalSharedData = { openInEditorHost: "/", componentNameStyle: "class", theme: "auto", displayDensity: "low", timeFormat: "default", recordVuex: true, cacheVuexSnapshotsEvery: 50, cacheVuexSnapshotsLimit: 10, snapshotLoading: false, componentEventsEnabled: true, performanceMonitoringEnabled: true, editableProps: false, logDetected: true, vuexNewBackend: false, vuexAutoload: false, vuexGroupGettersByModule: true, showMenuScrollTip: true, timelineTimeGrid: true, timelineScreenshots: true, menuStepScrolling: env_1.isMac, pluginPermissions: {}, pluginSettings: {}, pageConfig: {}, legacyApps: false, trackUpdates: true, flashUpdates: false, debugInfo: false, isBrowser: env_1.isBrowser }; const persisted = ["componentNameStyle", "theme", "displayDensity", "recordVuex", "editableProps", "logDetected", "vuexNewBackend", "vuexAutoload", "vuexGroupGettersByModule", "timeFormat", "showMenuScrollTip", "timelineTimeGrid", "timelineScreenshots", "menuStepScrolling", "pluginPermissions", "pluginSettings", "performanceMonitoringEnabled", "componentEventsEnabled", "trackUpdates", "flashUpdates", "debugInfo"]; const storageVersion = "6.0.0-alpha.1"; let bridge; let persist = false; let data; let initRetryInterval; let initRetryCount = 0; const initCbs = []; function initSharedData(params) { return new Promise((resolve) => { bridge = params.bridge; persist = !!params.persist; if (persist) { { console.log("[shared data] Master init in progress..."); } persisted.forEach((key) => { const value = (0, storage_1.getStorage)(`vue-devtools-${storageVersion}:shared-data:${key}`); if (value !== null) { internalSharedData[key] = value; } }); bridge.on("shared-data:load", () => { Object.keys(internalSharedData).forEach((key) => { sendValue(key, internalSharedData[key]); }); bridge.send("shared-data:load-complete"); }); bridge.on("shared-data:init-complete", () => { { console.log("[shared data] Master init complete"); } clearInterval(initRetryInterval); resolve(); }); bridge.send("shared-data:master-init-waiting"); bridge.on("shared-data:minion-init-waiting", () => { bridge.send("shared-data:master-init-waiting"); }); initRetryCount = 0; clearInterval(initRetryInterval); initRetryInterval = setInterval(() => { { console.log("[shared data] Master init retrying..."); } bridge.send("shared-data:master-init-waiting"); initRetryCount++; if (initRetryCount > 30) { clearInterval(initRetryInterval); console.error("[shared data] Master init failed"); } }, 2e3); } else { bridge.on("shared-data:master-init-waiting", () => { bridge.send("shared-data:load"); bridge.once("shared-data:load-complete", () => { bridge.send("shared-data:init-complete"); resolve(); }); }); bridge.send("shared-data:minion-init-waiting"); } data = { ...internalSharedData }; if (params.Vue) { data = params.Vue.observable(data); } bridge.on("shared-data:set", ({ key, value }) => { setValue(key, value); }); initCbs.forEach((cb) => cb()); }); } exports.initSharedData = initSharedData; function onSharedDataInit(cb) { initCbs.push(cb); return () => { const index = initCbs.indexOf(cb); if (index !== -1) initCbs.splice(index, 1); }; } exports.onSharedDataInit = onSharedDataInit; function destroySharedData() { bridge.removeAllListeners("shared-data:set"); watchers = {}; } exports.destroySharedData = destroySharedData; let watchers = {}; function setValue(key, value) { if (persist && persisted.includes(key)) { (0, storage_1.setStorage)(`vue-devtools-${storageVersion}:shared-data:${key}`, value); } const oldValue = data[key]; data[key] = value; const handlers = watchers[key]; if (handlers) { handlers.forEach((h2) => h2(value, oldValue)); } return true; } function sendValue(key, value) { bridge && bridge.send("shared-data:set", { key, value }); } function watchSharedData(prop, handler) { const list = watchers[prop] || (watchers[prop] = []); list.push(handler); return () => { const index = list.indexOf(handler); if (index !== -1) list.splice(index, 1); }; } exports.watchSharedData = watchSharedData; const proxy = {}; Object.keys(internalSharedData).forEach((key) => { Object.defineProperty(proxy, key, { configurable: false, get: () => data[key], set: (value) => { sendValue(key, value); setValue(key, value); } }); }); exports.SharedData = proxy; } ), /***/ "../shared-utils/lib/shell.js": ( /*!************************************!*\ !*** ../shared-utils/lib/shell.js ***! \************************************/ /***/ (__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", { value: true }); } ), /***/ "../shared-utils/lib/storage.js": ( /*!**************************************!*\ !*** ../shared-utils/lib/storage.js ***! \**************************************/ /***/ (__unused_webpack_module, exports, __webpack_require__2) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.clearStorage = exports.removeStorage = exports.setStorage = exports.getStorage = exports.initStorage = void 0; const env_1 = __webpack_require__2( /*! ./env */ "../shared-utils/lib/env.js" ); const useStorage = typeof env_1.target.chrome !== "undefined" && typeof env_1.target.chrome.storage !== "undefined"; let storageData = null; function initStorage() { return new Promise((resolve) => { if (useStorage) { env_1.target.chrome.storage.local.get(null, (result) => { storageData = result; resolve(); }); } else { storageData = {}; resolve(); } }); } exports.initStorage = initStorage; function getStorage(key, defaultValue = null) { checkStorage(); if (useStorage) { return getDefaultValue(storageData[key], defaultValue); } else { try { return getDefaultValue(JSON.parse(localStorage.getItem(key)), defaultValue); } catch (e2) { } } } exports.getStorage = getStorage; function setStorage(key, val) { checkStorage(); if (useStorage) { storageData[key] = val; env_1.target.chrome.storage.local.set({ [key]: val }); } else { try { localStorage.setItem(key, JSON.stringify(val)); } catch (e2) { } } } exports.setStorage = setStorage; function removeStorage(key) { checkStorage(); if (useStorage) { delete storageData[key]; env_1.target.chrome.storage.local.remove([key]); } else { try { localStorage.removeItem(key); } catch (e2) { } } } exports.removeStorage = removeStorage; function clearStorage() { checkStorage(); if (useStorage) { storageData = {}; env_1.target.chrome.storage.local.clear(); } else { try { localStorage.clear(); } catch (e2) { } } } exports.clearStorage = clearStorage; function checkStorage() { if (!storageData) { throw new Error("Storage wasn't initialized with 'init()'"); } } function getDefaultValue(value, defaultValue) { if (value == null) { return defaultValue; } return value; } } ), /***/ "../shared-utils/lib/transfer.js": ( /*!***************************************!*\ !*** ../shared-utils/lib/transfer.js ***! \***************************************/ /***/ (__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.stringifyStrictCircularAutoChunks = exports.parseCircularAutoChunks = exports.stringifyCircularAutoChunks = void 0; const MAX_SERIALIZED_SIZE = 512 * 1024; function encode(data, replacer, list, seen) { let stored, key, value, i2, l2; const seenIndex = seen.get(data); if (seenIndex != null) { return seenIndex; } const index = list.length; const proto = Object.prototype.toString.call(data); if (proto === "[object Object]") { stored = {}; seen.set(data, index); list.push(stored); const keys = Object.keys(data); for (i2 = 0, l2 = keys.length; i2 < l2; i2++) { key = keys[i2]; try { value = data[key]; if (replacer) value = replacer.call(data, key, value); } catch (e2) { value = e2; } stored[key] = encode(value, replacer, list, seen); } } else if (proto === "[object Array]") { stored = []; seen.set(data, index); list.push(stored); for (i2 = 0, l2 = data.length; i2 < l2; i2++) { try { value = data[i2]; if (replacer) value = replacer.call(data, i2, value); } catch (e2) { value = e2; } stored[i2] = encode(value, replacer, list, seen); } } else { list.push(data); } return index; } function decode(list, reviver) { let i2 = list.length; let j2, k, data, key, value, proto; while (i2--) { data = list[i2]; proto = Object.prototype.toString.call(data); if (proto === "[object Object]") { const keys = Object.keys(data); for (j2 = 0, k = keys.length; j2 < k; j2++) { key = keys[j2]; value = list[data[key]]; if (reviver) value = reviver.call(data, key, value); data[key] = value; } } else if (proto === "[object Array]") { for (j2 = 0, k = data.length; j2 < k; j2++) { value = list[data[j2]]; if (reviver) value = reviver.call(data, j2, value); data[j2] = value; } } } } function stringifyCircularAutoChunks(data, replacer = null, space = null) { let result; try { result = arguments.length === 1 ? JSON.stringify(data) : JSON.stringify(data, replacer, space); } catch (e2) { result = stringifyStrictCircularAutoChunks(data, replacer, space); } if (result.length > MAX_SERIALIZED_SIZE) { const chunkCount = Math.ceil(result.length / MAX_SERIALIZED_SIZE); const chunks = []; for (let i2 = 0; i2 < chunkCount; i2++) { chunks.push(result.slice(i2 * MAX_SERIALIZED_SIZE, (i2 + 1) * MAX_SERIALIZED_SIZE)); } return chunks; } return result; } exports.stringifyCircularAutoChunks = stringifyCircularAutoChunks; function parseCircularAutoChunks(data, reviver = null) { if (Array.isArray(data)) { data = data.join(""); } const hasCircular = /^\s/.test(data); if (!hasCircular) { return arguments.length === 1 ? JSON.parse(data) : JSON.parse(data, reviver); } else { const list = JSON.parse(data); decode(list, reviver); return list[0]; } } exports.parseCircularAutoChunks = parseCircularAutoChunks; function stringifyStrictCircularAutoChunks(data, replacer = null, space = null) { const list = []; encode(data, replacer, list, /* @__PURE__ */ new Map()); return space ? " " + JSON.stringify(list, null, space) : " " + JSON.stringify(list); } exports.stringifyStrictCircularAutoChunks = stringifyStrictCircularAutoChunks; } ), /***/ "../shared-utils/lib/util.js": ( /*!***********************************!*\ !*** ../shared-utils/lib/util.js ***! \***********************************/ /***/ function(__unused_webpack_module, exports, __webpack_require__2) { var __importDefault = this && this.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.isEmptyObject = exports.copyToClipboard = exports.escape = exports.openInEditor = exports.focusInput = exports.simpleGet = exports.sortByKey = exports.searchDeepInObject = exports.isPlainObject = exports.revive = exports.parse = exports.getCustomRefDetails = exports.getCustomHTMLElementDetails = exports.getCustomFunctionDetails = exports.getCustomComponentDefinitionDetails = exports.getComponentName = exports.reviveSet = exports.getCustomSetDetails = exports.reviveMap = exports.getCustomMapDetails = exports.stringify = exports.specialTokenToString = exports.MAX_ARRAY_SIZE = exports.MAX_STRING_SIZE = exports.SPECIAL_TOKENS = exports.NAN = exports.NEGATIVE_INFINITY = exports.INFINITY = exports.UNDEFINED = exports.inDoc = exports.getComponentDisplayName = exports.kebabize = exports.camelize = exports.classify = void 0; const path_1 = __importDefault(__webpack_require__2( /*! path */ "../../node_modules/path-browserify/index.js" )); const transfer_1 = __webpack_require__2( /*! ./transfer */ "../shared-utils/lib/transfer.js" ); const backend_1 = __webpack_require__2( /*! ./backend */ "../shared-utils/lib/backend.js" ); const shared_data_1 = __webpack_require__2( /*! ./shared-data */ "../shared-utils/lib/shared-data.js" ); const env_1 = __webpack_require__2( /*! ./env */ "../shared-utils/lib/env.js" ); function cached(fn) { const cache = /* @__PURE__ */ Object.create(null); return function cachedFn(str) { const hit = cache[str]; return hit || (cache[str] = fn(str)); }; } const classifyRE = /(?:^|[-_/])(\w)/g; exports.classify = cached((str) => { return str && ("" + str).replace(classifyRE, toUpper); }); const camelizeRE = /-(\w)/g; exports.camelize = cached((str) => { return str && str.replace(camelizeRE, toUpper); }); const kebabizeRE = /([a-z0-9])([A-Z])/g; exports.kebabize = cached((str) => { return str && str.replace(kebabizeRE, (_2, lowerCaseCharacter, upperCaseLetter) => { return `${lowerCaseCharacter}-${upperCaseLetter}`; }).toLowerCase(); }); function toUpper(_2, c2) { return c2 ? c2.toUpperCase() : ""; } function getComponentDisplayName(originalName, style = "class") { switch (style) { case "class": return (0, exports.classify)(originalName); case "kebab": return (0, exports.kebabize)(originalName); case "original": default: return originalName; } } exports.getComponentDisplayName = getComponentDisplayName; function inDoc(node) { if (!node) return false; const doc = node.ownerDocument.documentElement; const parent = node.parentNode; return doc === node || doc === parent || !!(parent && parent.nodeType === 1 && doc.contains(parent)); } exports.inDoc = inDoc; exports.UNDEFINED = "__vue_devtool_undefined__"; exports.INFINITY = "__vue_devtool_infinity__"; exports.NEGATIVE_INFINITY = "__vue_devtool_negative_infinity__"; exports.NAN = "__vue_devtool_nan__"; exports.SPECIAL_TOKENS = { true: true, false: false, undefined: exports.UNDEFINED, null: null, "-Infinity": exports.NEGATIVE_INFINITY, Infinity: exports.INFINITY, NaN: exports.NAN }; exports.MAX_STRING_SIZE = 1e4; exports.MAX_ARRAY_SIZE = 5e3; function specialTokenToString(value) { if (value === null) { return "null"; } else if (value === exports.UNDEFINED) { return "undefined"; } else if (value === exports.NAN) { return "NaN"; } else if (value === exports.INFINITY) { return "Infinity"; } else if (value === exports.NEGATIVE_INFINITY) { return "-Infinity"; } return false; } exports.specialTokenToString = specialTokenToString; class EncodeCache { constructor() { this.map = /* @__PURE__ */ new Map(); } /** * Returns a result unique to each input data * @param {*} data Input data * @param {*} factory Function used to create the unique result */ cache(data, factory) { const cached2 = this.map.get(data); if (cached2) { return cached2; } else { const result = factory(data); this.map.set(data, result); return result; } } clear() { this.map.clear(); } } const encodeCache = new EncodeCache(); class ReviveCache { constructor(maxSize) { this.maxSize = maxSize; this.map = /* @__PURE__ */ new Map(); this.index = 0; this.size = 0; } cache(value) { const currentIndex = this.index; this.map.set(currentIndex, value); this.size++; if (this.size > this.maxSize) { this.map.delete(currentIndex - this.size); this.size--; } this.index++; return currentIndex; } read(id) { return this.map.get(id); } } const reviveCache = new ReviveCache(1e3); const replacers = { internal: replacerForInternal, user: replaceForUser }; function stringify(data, target = "internal") { encodeCache.clear(); return (0, transfer_1.stringifyCircularAutoChunks)(data, replacers[target]); } exports.stringify = stringify; function replacerForInternal(key) { var _a; const val = this[key]; const type = typeof val; if (Array.isArray(val)) { const l2 = val.length; if (l2 > exports.MAX_ARRAY_SIZE) { return { _isArray: true, length: l2, items: val.slice(0, exports.MAX_ARRAY_SIZE) }; } return val; } else if (typeof val === "string") { if (val.length > exports.MAX_STRING_SIZE) { return val.substring(0, exports.MAX_STRING_SIZE) + `... (${val.length} total length)`; } else { return val; } } else if (type === "undefined") { return exports.UNDEFINED; } else if (val === Infinity) { return exports.INFINITY; } else if (val === -Infinity) { return exports.NEGATIVE_INFINITY; } else if (type === "function") { return getCustomFunctionDetails(val); } else if (type === "symbol") { return `[native Symbol ${Symbol.prototype.toString.call(val)}]`; } else if (val !== null && type === "object") { const proto = Object.prototype.toString.call(val); if (proto === "[object Map]") { return encodeCache.cache(val, () => getCustomMapDetails(val)); } else if (proto === "[object Set]") { return encodeCache.cache(val, () => getCustomSetDetails(val)); } else if (proto === "[object RegExp]") { return `[native RegExp ${RegExp.prototype.toString.call(val)}]`; } else if (proto === "[object Date]") { return `[native Date ${Date.prototype.toString.call(val)}]`; } else if (proto === "[object Error]") { return `[native Error ${val.message}<>${val.stack}]`; } else if (val.state && val._vm) { return encodeCache.cache(val, () => (0, backend_1.getCustomStoreDetails)(val)); } else if (val.constructor && val.constructor.name === "VueRouter") { return encodeCache.cache(val, () => (0, backend_1.getCustomRouterDetails)(val)); } else if ((0, backend_1.isVueInstance)(val)) { return encodeCache.cache(val, () => (0, backend_1.getCustomInstanceDetails)(val)); } else if (typeof val.render === "function") { return encodeCache.cache(val, () => getCustomComponentDefinitionDetails(val)); } else if (val.constructor && val.constructor.name === "VNode") { return `[native VNode <${val.tag}>]`; } else if (typeof HTMLElement !== "undefined" && val instanceof HTMLElement) { return encodeCache.cache(val, () => getCustomHTMLElementDetails(val)); } else if (((_a = val.constructor) === null || _a === void 0 ? void 0 : _a.name) === "Store" && val._wrappedGetters) { return `[object Store]`; } else if (val.currentRoute) { return `[object Router]`; } const customDetails = (0, backend_1.getCustomObjectDetails)(val, proto); if (customDetails != null) return customDetails; } else if (Number.isNaN(val)) { return exports.NAN; } return sanitize(val); } function replaceForUser(key) { let val = this[key]; const type = typeof val; if ((val === null || val === void 0 ? void 0 : val._custom) && "value" in val._custom) { val = val._custom.value; } if (type !== "object") { if (val === exports.UNDEFINED) { return void 0; } else if (val === exports.INFINITY) { return Infinity; } else if (val === exports.NEGATIVE_INFINITY) { return -Infinity; } else if (val === exports.NAN) { return NaN; } return val; } return sanitize(val); } function getCustomMapDetails(val) { const list = []; val.forEach((value, key) => list.push({ key, value })); return { _custom: { type: "map", display: "Map", value: list, readOnly: true, fields: { abstract: true } } }; } exports.getCustomMapDetails = getCustomMapDetails; function reviveMap(val) { const result = /* @__PURE__ */ new Map(); const list = val._custom.value; for (let i2 = 0; i2 < list.length; i2++) { const { key, value } = list[i2]; result.set(key, revive(value)); } return result; } exports.reviveMap = reviveMap; function getCustomSetDetails(val) { const list = Array.from(val); return { _custom: { type: "set", display: `Set[${list.length}]`, value: list, readOnly: true } }; } exports.getCustomSetDetails = getCustomSetDetails; function reviveSet(val) { const result = /* @__PURE__ */ new Set(); const list = val._custom.value; for (let i2 = 0; i2 < list.length; i2++) { const value = list[i2]; result.add(revive(value)); } return result; } exports.reviveSet = reviveSet; function basename(filename, ext) { return path_1.default.basename(filename.replace(/^[a-zA-Z]:/, "").replace(/\\/g, "/"), ext); } function getComponentName(options) { const name = options.displayName || options.name || options._componentTag; if (name) { return name; } const file = options.__file; if (file) { return (0, exports.classify)(basename(file, ".vue")); } } exports.getComponentName = getComponentName; function getCustomComponentDefinitionDetails(def) { let display = getComponentName(def); if (display) { if (def.name && def.__file) { display += ` (${def.__file})`; } } else { display = "Unknown Component"; } return { _custom: { type: "component-definition", display, tooltip: "Component definition", ...def.__file ? { file: def.__file } : {} } }; } exports.getCustomComponentDefinitionDetails = getCustomComponentDefinitionDetails; function getCustomFunctionDetails(func) { let string = ""; let matches = null; try { string = Function.prototype.toString.call(func); matches = String.prototype.match.call(string, /\([\s\S]*?\)/); } catch (e2) { } const match = matches && matches[0]; const args = typeof match === "string" ? match : "(?)"; const name = typeof func.name === "string" ? func.name : ""; return { _custom: { type: "function", display: `function ${escape2(name)}${args}`, tooltip: string.trim() ? `
${string}
` : null, _reviveId: reviveCache.cache(func) } }; } exports.getCustomFunctionDetails = getCustomFunctionDetails; function getCustomHTMLElementDetails(value) { try { return { _custom: { type: "HTMLElement", display: `<${value.tagName.toLowerCase()}>`, value: namedNodeMapToObject(value.attributes), actions: [{ icon: "input", tooltip: "Log element to console", action: () => { console.log(value); } }] } }; } catch (e2) { return { _custom: { type: "HTMLElement", display: `${String(value)}` } }; } } exports.getCustomHTMLElementDetails = getCustomHTMLElementDetails; function namedNodeMapToObject(map) { const result = {}; const l2 = map.length; for (let i2 = 0; i2 < l2; i2++) { const node = map.item(i2); result[node.name] = node.value; } return result; } function getCustomRefDetails(instance, key, ref) { let value; if (Array.isArray(ref)) { value = ref.map((r2) => getCustomRefDetails(instance, key, r2)).map((data) => data.value); } else { let name; if (ref._isVue) { name = getComponentName(ref.$options); } else { name = ref.tagName.toLowerCase(); } value = { _custom: { display: `<${name}` + (ref.id ? ` id="${ref.id}"` : "") + (ref.className ? ` class="${ref.className}"` : "") + ">", uid: instance.__VUE_DEVTOOLS_UID__, type: "reference" } }; } return { type: "$refs", key, value, editable: false }; } exports.getCustomRefDetails = getCustomRefDetails; function parse2(data, revive2 = false) { return revive2 ? (0, transfer_1.parseCircularAutoChunks)(data, reviver) : (0, transfer_1.parseCircularAutoChunks)(data); } exports.parse = parse2; const specialTypeRE = /^\[native (\w+) (.*?)(<>((.|\s)*))?\]$/; const symbolRE = /^\[native Symbol Symbol\((.*)\)\]$/; function reviver(key, val) { return revive(val); } function revive(val) { if (val === exports.UNDEFINED) { return void 0; } else if (val === exports.INFINITY) { return Infinity; } else if (val === exports.NEGATIVE_INFINITY) { return -Infinity; } else if (val === exports.NAN) { return NaN; } else if (val && val._custom) { const { _custom: custom } = val; if (custom.type === "component") { return (0, backend_1.getInstanceMap)().get(custom.id); } else if (custom.type === "map") { return reviveMap(val); } else if (custom.type === "set") { return reviveSet(val); } else if (custom._reviveId) { return reviveCache.read(custom._reviveId); } else { return revive(custom.value); } } else if (symbolRE.test(val)) { const [, string] = symbolRE.exec(val); return Symbol.for(string); } else if (specialTypeRE.test(val)) { const [, type, string, , details] = specialTypeRE.exec(val); const result = new env_1.target[type](string); if (type === "Error" && details) { result.stack = details; } return result; } else { return val; } } exports.revive = revive; function sanitize(data) { if (!isPrimitive(data) && !Array.isArray(data) && !isPlainObject(data)) { return Object.prototype.toString.call(data); } else { return data; } } function isPlainObject(obj) { return Object.prototype.toString.call(obj) === "[object Object]"; } exports.isPlainObject = isPlainObject; function isPrimitive(data) { if (data == null) { return true; } const type = typeof data; return type === "string" || type === "number" || type === "boolean"; } function searchDeepInObject(obj, searchTerm) { const seen = /* @__PURE__ */ new Map(); const result = internalSearchObject(obj, searchTerm.toLowerCase(), seen, 0); seen.clear(); return result; } exports.searchDeepInObject = searchDeepInObject; const SEARCH_MAX_DEPTH = 10; function internalSearchObject(obj, searchTerm, seen, depth) { if (depth > SEARCH_MAX_DEPTH) { return false; } let match = false; const keys = Object.keys(obj); let key, value; for (let i2 = 0; i2 < keys.length; i2++) { key = keys[i2]; value = obj[key]; match = internalSearchCheck(searchTerm, key, value, seen, depth + 1); if (match) { break; } } return match; } function internalSearchArray(array, searchTerm, seen, depth) { if (depth > SEARCH_MAX_DEPTH) { return false; } let match = false; let value; for (let i2 = 0; i2 < array.length; i2++) { value = array[i2]; match = internalSearchCheck(searchTerm, null, value, seen, depth + 1); if (match) { break; } } return match; } function internalSearchCheck(searchTerm, key, value, seen, depth) { let match = false; let result; if (key === "_custom") { key = value.display; value = value.value; } (result = specialTokenToString(value)) && (value = result); if (key && compare(key, searchTerm)) { match = true; seen.set(value, true); } else if (seen.has(value)) { match = seen.get(value); } else if (Array.isArray(value)) { seen.set(value, null); match = internalSearchArray(value, searchTerm, seen, depth); seen.set(value, match); } else if (isPlainObject(value)) { seen.set(value, null); match = internalSearchObject(value, searchTerm, seen, depth); seen.set(value, match); } else if (compare(value, searchTerm)) { match = true; seen.set(value, true); } return match; } function compare(value, searchTerm) { return ("" + value).toLowerCase().indexOf(searchTerm) !== -1; } function sortByKey(state) { return state && state.slice().sort((a2, b2) => { if (a2.key < b2.key) return -1; if (a2.key > b2.key) return 1; return 0; }); } exports.sortByKey = sortByKey; function simpleGet(object, path) { const sections = Array.isArray(path) ? path : path.split("."); for (let i2 = 0; i2 < sections.length; i2++) { object = object[sections[i2]]; if (!object) { return void 0; } } return object; } exports.simpleGet = simpleGet; function focusInput(el) { el.focus(); el.setSelectionRange(0, el.value.length); } exports.focusInput = focusInput; function openInEditor(file) { const fileName = file.replace(/\\/g, "\\\\"); const src = `fetch('${shared_data_1.SharedData.openInEditorHost}__open-in-editor?file=${encodeURI(file)}').then(response => { if (response.ok) { console.log('File ${fileName} opened in editor') } else { const msg = 'Opening component ${fileName} failed' const target = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {} if (target.__VUE_DEVTOOLS_TOAST__) { target.__VUE_DEVTOOLS_TOAST__(msg, 'error') } else { console.log('%c' + msg, 'color:red') } console.log('Check the setup of your project, see https://devtools.vuejs.org/guide/open-in-editor.html') } })`; if (env_1.isChrome) { env_1.target.chrome.devtools.inspectedWindow.eval(src); } else { [eval][0](src); } } exports.openInEditor = openInEditor; const ESC = { "<": "<", ">": ">", '"': """, "&": "&" }; function escape2(s2) { return s2.replace(/[<>"&]/g, escapeChar); } exports.escape = escape2; function escapeChar(a2) { return ESC[a2] || a2; } function copyToClipboard(state) { let text; if (typeof state !== "object") { text = String(state); } else { text = stringify(state, "user"); } if (typeof document === "undefined") return; const dummyTextArea = document.createElement("textarea"); dummyTextArea.textContent = text; document.body.appendChild(dummyTextArea); dummyTextArea.select(); document.execCommand("copy"); document.body.removeChild(dummyTextArea); } exports.copyToClipboard = copyToClipboard; function isEmptyObject(obj) { return obj === exports.UNDEFINED || !obj || Object.keys(obj).length === 0; } exports.isEmptyObject = isEmptyObject; } ), /***/ "../../node_modules/events/events.js": ( /*!*******************************************!*\ !*** ../../node_modules/events/events.js ***! \*******************************************/ /***/ (module) => { var R2 = typeof Reflect === "object" ? Reflect : null; var ReflectApply = R2 && typeof R2.apply === "function" ? R2.apply : function ReflectApply2(target, receiver, args) { return Function.prototype.apply.call(target, receiver, args); }; var ReflectOwnKeys; if (R2 && typeof R2.ownKeys === "function") { ReflectOwnKeys = R2.ownKeys; } else if (Object.getOwnPropertySymbols) { ReflectOwnKeys = function ReflectOwnKeys2(target) { return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target)); }; } else { ReflectOwnKeys = function ReflectOwnKeys2(target) { return Object.getOwnPropertyNames(target); }; } function ProcessEmitWarning(warning) { if (console && console.warn) console.warn(warning); } var NumberIsNaN = Number.isNaN || function NumberIsNaN2(value) { return value !== value; }; function EventEmitter() { EventEmitter.init.call(this); } module.exports = EventEmitter; module.exports.once = once; EventEmitter.EventEmitter = EventEmitter; EventEmitter.prototype._events = void 0; EventEmitter.prototype._eventsCount = 0; EventEmitter.prototype._maxListeners = void 0; var defaultMaxListeners = 10; function checkListener(listener) { if (typeof listener !== "function") { throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener); } } Object.defineProperty(EventEmitter, "defaultMaxListeners", { enumerable: true, get: function() { return defaultMaxListeners; }, set: function(arg) { if (typeof arg !== "number" || arg < 0 || NumberIsNaN(arg)) { throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + arg + "."); } defaultMaxListeners = arg; } }); EventEmitter.init = function() { if (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) { this._events = /* @__PURE__ */ Object.create(null); this._eventsCount = 0; } this._maxListeners = this._maxListeners || void 0; }; EventEmitter.prototype.setMaxListeners = function setMaxListeners(n2) { if (typeof n2 !== "number" || n2 < 0 || NumberIsNaN(n2)) { throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + n2 + "."); } this._maxListeners = n2; return this; }; function _getMaxListeners(that) { if (that._maxListeners === void 0) return EventEmitter.defaultMaxListeners; return that._maxListeners; } EventEmitter.prototype.getMaxListeners = function getMaxListeners() { return _getMaxListeners(this); }; EventEmitter.prototype.emit = function emit(type) { var args = []; for (var i2 = 1; i2 < arguments.length; i2++) args.push(arguments[i2]); var doError = type === "error"; var events = this._events; if (events !== void 0) doError = doError && events.error === void 0; else if (!doError) return false; if (doError) { var er; if (args.length > 0) er = args[0]; if (er instanceof Error) { throw er; } var err = new Error("Unhandled error." + (er ? " (" + er.message + ")" : "")); err.context = er; throw err; } var handler = events[type]; if (handler === void 0) return false; if (typeof handler === "function") { ReflectApply(handler, this, args); } else { var len = handler.length; var listeners = arrayClone(handler, len); for (var i2 = 0; i2 < len; ++i2) ReflectApply(listeners[i2], this, args); } return true; }; function _addListener(target, type, listener, prepend) { var m2; var events; var existing; checkListener(listener); events = target._events; if (events === void 0) { events = target._events = /* @__PURE__ */ Object.create(null); target._eventsCount = 0; } else { if (events.newListener !== void 0) { target.emit( "newListener", type, listener.listener ? listener.listener : listener ); events = target._events; } existing = events[type]; } if (existing === void 0) { existing = events[type] = listener; ++target._eventsCount; } else { if (typeof existing === "function") { existing = events[type] = prepend ? [listener, existing] : [existing, listener]; } else if (prepend) { existing.unshift(listener); } else { existing.push(listener); } m2 = _getMaxListeners(target); if (m2 > 0 && existing.length > m2 && !existing.warned) { existing.warned = true; var w2 = new Error("Possible EventEmitter memory leak detected. " + existing.length + " " + String(type) + " listeners added. Use emitter.setMaxListeners() to increase limit"); w2.name = "MaxListenersExceededWarning"; w2.emitter = target; w2.type = type; w2.count = existing.length; ProcessEmitWarning(w2); } } return target; } EventEmitter.prototype.addListener = function addListener(type, listener) { return _addListener(this, type, listener, false); }; EventEmitter.prototype.on = EventEmitter.prototype.addListener; EventEmitter.prototype.prependListener = function prependListener(type, listener) { return _addListener(this, type, listener, true); }; function onceWrapper() { if (!this.fired) { this.target.removeListener(this.type, this.wrapFn); this.fired = true; if (arguments.length === 0) return this.listener.call(this.target); return this.listener.apply(this.target, arguments); } } function _onceWrap(target, type, listener) { var state = { fired: false, wrapFn: void 0, target, type, listener }; var wrapped = onceWrapper.bind(state); wrapped.listener = listener; state.wrapFn = wrapped; return wrapped; } EventEmitter.prototype.once = function once2(type, listener) { checkListener(listener); this.on(type, _onceWrap(this, type, listener)); return this; }; EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) { checkListener(listener); this.prependListener(type, _onceWrap(this, type, listener)); return this; }; EventEmitter.prototype.removeListener = function removeListener(type, listener) { var list, events, position, i2, originalListener; checkListener(listener); events = this._events; if (events === void 0) return this; list = events[type]; if (list === void 0) return this; if (list === listener || list.listener === listener) { if (--this._eventsCount === 0) this._events = /* @__PURE__ */ Object.create(null); else { delete events[type]; if (events.removeListener) this.emit("removeListener", type, list.listener || listener); } } else if (typeof list !== "function") { position = -1; for (i2 = list.length - 1; i2 >= 0; i2--) { if (list[i2] === listener || list[i2].listener === listener) { originalListener = list[i2].listener; position = i2; break; } } if (position < 0) return this; if (position === 0) list.shift(); else { spliceOne(list, position); } if (list.length === 1) events[type] = list[0]; if (events.removeListener !== void 0) this.emit("removeListener", type, originalListener || listener); } return this; }; EventEmitter.prototype.off = EventEmitter.prototype.removeListener; EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) { var listeners, events, i2; events = this._events; if (events === void 0) return this; if (events.removeListener === void 0) { if (arguments.length === 0) { this._events = /* @__PURE__ */ Object.create(null); this._eventsCount = 0; } else if (events[type] !== void 0) { if (--this._eventsCount === 0) this._events = /* @__PURE__ */ Object.create(null); else delete events[type]; } return this; } if (arguments.length === 0) { var keys = Object.keys(events); var key; for (i2 = 0; i2 < keys.length; ++i2) { key = keys[i2]; if (key === "removeListener") continue; this.removeAllListeners(key); } this.removeAllListeners("removeListener"); this._events = /* @__PURE__ */ Object.create(null); this._eventsCount = 0; return this; } listeners = events[type]; if (typeof listeners === "function") { this.removeListener(type, listeners); } else if (listeners !== void 0) { for (i2 = listeners.length - 1; i2 >= 0; i2--) { this.removeListener(type, listeners[i2]); } } return this; }; function _listeners(target, type, unwrap) { var events = target._events; if (events === void 0) return []; var evlistener = events[type]; if (evlistener === void 0) return []; if (typeof evlistener === "function") return unwrap ? [evlistener.listener || evlistener] : [evlistener]; return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length); } EventEmitter.prototype.listeners = function listeners(type) { return _listeners(this, type, true); }; EventEmitter.prototype.rawListeners = function rawListeners(type) { return _listeners(this, type, false); }; EventEmitter.listenerCount = function(emitter, type) { if (typeof emitter.listenerCount === "function") { return emitter.listenerCount(type); } else { return listenerCount.call(emitter, type); } }; EventEmitter.prototype.listenerCount = listenerCount; function listenerCount(type) { var events = this._events; if (events !== void 0) { var evlistener = events[type]; if (typeof evlistener === "function") { return 1; } else if (evlistener !== void 0) { return evlistener.length; } } return 0; } EventEmitter.prototype.eventNames = function eventNames() { return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : []; }; function arrayClone(arr, n2) { var copy = new Array(n2); for (var i2 = 0; i2 < n2; ++i2) copy[i2] = arr[i2]; return copy; } function spliceOne(list, index) { for (; index + 1 < list.length; index++) list[index] = list[index + 1]; list.pop(); } function unwrapListeners(arr) { var ret = new Array(arr.length); for (var i2 = 0; i2 < ret.length; ++i2) { ret[i2] = arr[i2].listener || arr[i2]; } return ret; } function once(emitter, name) { return new Promise(function(resolve, reject) { function errorListener(err) { emitter.removeListener(name, resolver); reject(err); } function resolver() { if (typeof emitter.removeListener === "function") { emitter.removeListener("error", errorListener); } resolve([].slice.call(arguments)); } eventTargetAgnosticAddListener(emitter, name, resolver, { once: true }); if (name !== "error") { addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true }); } }); } function addErrorHandlerIfEventEmitter(emitter, handler, flags) { if (typeof emitter.on === "function") { eventTargetAgnosticAddListener(emitter, "error", handler, flags); } } function eventTargetAgnosticAddListener(emitter, name, listener, flags) { if (typeof emitter.on === "function") { if (flags.once) { emitter.once(name, listener); } else { emitter.on(name, listener); } } else if (typeof emitter.addEventListener === "function") { emitter.addEventListener(name, function wrapListener(arg) { if (flags.once) { emitter.removeEventListener(name, wrapListener); } listener(arg); }); } else { throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof emitter); } } } ), /***/ "../../node_modules/lodash/_Symbol.js": ( /*!********************************************!*\ !*** ../../node_modules/lodash/_Symbol.js ***! \********************************************/ /***/ (module, __unused_webpack_exports, __webpack_require__2) => { var root = __webpack_require__2( /*! ./_root */ "../../node_modules/lodash/_root.js" ); var Symbol2 = root.Symbol; module.exports = Symbol2; } ), /***/ "../../node_modules/lodash/_baseGetTag.js": ( /*!************************************************!*\ !*** ../../node_modules/lodash/_baseGetTag.js ***! \************************************************/ /***/ (module, __unused_webpack_exports, __webpack_require__2) => { var Symbol2 = __webpack_require__2( /*! ./_Symbol */ "../../node_modules/lodash/_Symbol.js" ), getRawTag = __webpack_require__2( /*! ./_getRawTag */ "../../node_modules/lodash/_getRawTag.js" ), objectToString = __webpack_require__2( /*! ./_objectToString */ "../../node_modules/lodash/_objectToString.js" ); var nullTag = "[object Null]", undefinedTag = "[object Undefined]"; var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0; function baseGetTag(value) { if (value == null) { return value === void 0 ? undefinedTag : nullTag; } return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value); } module.exports = baseGetTag; } ), /***/ "../../node_modules/lodash/_baseTrim.js": ( /*!**********************************************!*\ !*** ../../node_modules/lodash/_baseTrim.js ***! \**********************************************/ /***/ (module, __unused_webpack_exports, __webpack_require__2) => { var trimmedEndIndex = __webpack_require__2( /*! ./_trimmedEndIndex */ "../../node_modules/lodash/_trimmedEndIndex.js" ); var reTrimStart = /^\s+/; function baseTrim(string) { return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, "") : string; } module.exports = baseTrim; } ), /***/ "../../node_modules/lodash/_freeGlobal.js": ( /*!************************************************!*\ !*** ../../node_modules/lodash/_freeGlobal.js ***! \************************************************/ /***/ (module, __unused_webpack_exports, __webpack_require__2) => { var freeGlobal = typeof __webpack_require__2.g == "object" && __webpack_require__2.g && __webpack_require__2.g.Object === Object && __webpack_require__2.g; module.exports = freeGlobal; } ), /***/ "../../node_modules/lodash/_getRawTag.js": ( /*!***********************************************!*\ !*** ../../node_modules/lodash/_getRawTag.js ***! \***********************************************/ /***/ (module, __unused_webpack_exports, __webpack_require__2) => { var Symbol2 = __webpack_require__2( /*! ./_Symbol */ "../../node_modules/lodash/_Symbol.js" ); var objectProto = Object.prototype; var hasOwnProperty2 = objectProto.hasOwnProperty; var nativeObjectToString = objectProto.toString; var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0; function getRawTag(value) { var isOwn = hasOwnProperty2.call(value, symToStringTag), tag = value[symToStringTag]; try { value[symToStringTag] = void 0; var unmasked = true; } catch (e2) { } var result = nativeObjectToString.call(value); if (unmasked) { if (isOwn) { value[symToStringTag] = tag; } else { delete value[symToStringTag]; } } return result; } module.exports = getRawTag; } ), /***/ "../../node_modules/lodash/_objectToString.js": ( /*!****************************************************!*\ !*** ../../node_modules/lodash/_objectToString.js ***! \****************************************************/ /***/ (module) => { var objectProto = Object.prototype; var nativeObjectToString = objectProto.toString; function objectToString(value) { return nativeObjectToString.call(value); } module.exports = objectToString; } ), /***/ "../../node_modules/lodash/_root.js": ( /*!******************************************!*\ !*** ../../node_modules/lodash/_root.js ***! \******************************************/ /***/ (module, __unused_webpack_exports, __webpack_require__2) => { var freeGlobal = __webpack_require__2( /*! ./_freeGlobal */ "../../node_modules/lodash/_freeGlobal.js" ); var freeSelf = typeof self == "object" && self && self.Object === Object && self; var root = freeGlobal || freeSelf || Function("return this")(); module.exports = root; } ), /***/ "../../node_modules/lodash/_trimmedEndIndex.js": ( /*!*****************************************************!*\ !*** ../../node_modules/lodash/_trimmedEndIndex.js ***! \*****************************************************/ /***/ (module) => { var reWhitespace = /\s/; function trimmedEndIndex(string) { var index = string.length; while (index-- && reWhitespace.test(string.charAt(index))) { } return index; } module.exports = trimmedEndIndex; } ), /***/ "../../node_modules/lodash/debounce.js": ( /*!*********************************************!*\ !*** ../../node_modules/lodash/debounce.js ***! \*********************************************/ /***/ (module, __unused_webpack_exports, __webpack_require__2) => { var isObject2 = __webpack_require__2( /*! ./isObject */ "../../node_modules/lodash/isObject.js" ), now = __webpack_require__2( /*! ./now */ "../../node_modules/lodash/now.js" ), toNumber = __webpack_require__2( /*! ./toNumber */ "../../node_modules/lodash/toNumber.js" ); var FUNC_ERROR_TEXT = "Expected a function"; var nativeMax = Math.max, nativeMin = Math.min; function debounce(func, wait, options) { var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true; if (typeof func != "function") { throw new TypeError(FUNC_ERROR_TEXT); } wait = toNumber(wait) || 0; if (isObject2(options)) { leading = !!options.leading; maxing = "maxWait" in options; maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; trailing = "trailing" in options ? !!options.trailing : trailing; } function invokeFunc(time) { var args = lastArgs, thisArg = lastThis; lastArgs = lastThis = void 0; lastInvokeTime = time; result = func.apply(thisArg, args); return result; } function leadingEdge(time) { lastInvokeTime = time; timerId = setTimeout(timerExpired, wait); return leading ? invokeFunc(time) : result; } function remainingWait(time) { var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall; return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting; } function shouldInvoke(time) { var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime; return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait; } function timerExpired() { var time = now(); if (shouldInvoke(time)) { return trailingEdge(time); } timerId = setTimeout(timerExpired, remainingWait(time)); } function trailingEdge(time) { timerId = void 0; if (trailing && lastArgs) { return invokeFunc(time); } lastArgs = lastThis = void 0; return result; } function cancel() { if (timerId !== void 0) { clearTimeout(timerId); } lastInvokeTime = 0; lastArgs = lastCallTime = lastThis = timerId = void 0; } function flush() { return timerId === void 0 ? result : trailingEdge(now()); } function debounced() { var time = now(), isInvoking = shouldInvoke(time); lastArgs = arguments; lastThis = this; lastCallTime = time; if (isInvoking) { if (timerId === void 0) { return leadingEdge(lastCallTime); } if (maxing) { clearTimeout(timerId); timerId = setTimeout(timerExpired, wait); return invokeFunc(lastCallTime); } } if (timerId === void 0) { timerId = setTimeout(timerExpired, wait); } return result; } debounced.cancel = cancel; debounced.flush = flush; return debounced; } module.exports = debounce; } ), /***/ "../../node_modules/lodash/isObject.js": ( /*!*********************************************!*\ !*** ../../node_modules/lodash/isObject.js ***! \*********************************************/ /***/ (module) => { function isObject2(value) { var type = typeof value; return value != null && (type == "object" || type == "function"); } module.exports = isObject2; } ), /***/ "../../node_modules/lodash/isObjectLike.js": ( /*!*************************************************!*\ !*** ../../node_modules/lodash/isObjectLike.js ***! \*************************************************/ /***/ (module) => { function isObjectLike(value) { return value != null && typeof value == "object"; } module.exports = isObjectLike; } ), /***/ "../../node_modules/lodash/isSymbol.js": ( /*!*********************************************!*\ !*** ../../node_modules/lodash/isSymbol.js ***! \*********************************************/ /***/ (module, __unused_webpack_exports, __webpack_require__2) => { var baseGetTag = __webpack_require__2( /*! ./_baseGetTag */ "../../node_modules/lodash/_baseGetTag.js" ), isObjectLike = __webpack_require__2( /*! ./isObjectLike */ "../../node_modules/lodash/isObjectLike.js" ); var symbolTag = "[object Symbol]"; function isSymbol(value) { return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag; } module.exports = isSymbol; } ), /***/ "../../node_modules/lodash/now.js": ( /*!****************************************!*\ !*** ../../node_modules/lodash/now.js ***! \****************************************/ /***/ (module, __unused_webpack_exports, __webpack_require__2) => { var root = __webpack_require__2( /*! ./_root */ "../../node_modules/lodash/_root.js" ); var now = function() { return root.Date.now(); }; module.exports = now; } ), /***/ "../../node_modules/lodash/throttle.js": ( /*!*********************************************!*\ !*** ../../node_modules/lodash/throttle.js ***! \*********************************************/ /***/ (module, __unused_webpack_exports, __webpack_require__2) => { var debounce = __webpack_require__2( /*! ./debounce */ "../../node_modules/lodash/debounce.js" ), isObject2 = __webpack_require__2( /*! ./isObject */ "../../node_modules/lodash/isObject.js" ); var FUNC_ERROR_TEXT = "Expected a function"; function throttle(func, wait, options) { var leading = true, trailing = true; if (typeof func != "function") { throw new TypeError(FUNC_ERROR_TEXT); } if (isObject2(options)) { leading = "leading" in options ? !!options.leading : leading; trailing = "trailing" in options ? !!options.trailing : trailing; } return debounce(func, wait, { "leading": leading, "maxWait": wait, "trailing": trailing }); } module.exports = throttle; } ), /***/ "../../node_modules/lodash/toNumber.js": ( /*!*********************************************!*\ !*** ../../node_modules/lodash/toNumber.js ***! \*********************************************/ /***/ (module, __unused_webpack_exports, __webpack_require__2) => { var baseTrim = __webpack_require__2( /*! ./_baseTrim */ "../../node_modules/lodash/_baseTrim.js" ), isObject2 = __webpack_require__2( /*! ./isObject */ "../../node_modules/lodash/isObject.js" ), isSymbol = __webpack_require__2( /*! ./isSymbol */ "../../node_modules/lodash/isSymbol.js" ); var NAN = 0 / 0; var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; var reIsBinary = /^0b[01]+$/i; var reIsOctal = /^0o[0-7]+$/i; var freeParseInt = parseInt; function toNumber(value) { if (typeof value == "number") { return value; } if (isSymbol(value)) { return NAN; } if (isObject2(value)) { var other = typeof value.valueOf == "function" ? value.valueOf() : value; value = isObject2(other) ? other + "" : other; } if (typeof value != "string") { return value === 0 ? value : +value; } value = baseTrim(value); var isBinary = reIsBinary.test(value); return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value; } module.exports = toNumber; } ), /***/ "../../node_modules/path-browserify/index.js": ( /*!***************************************************!*\ !*** ../../node_modules/path-browserify/index.js ***! \***************************************************/ /***/ (module) => { function assertPath(path) { if (typeof path !== "string") { throw new TypeError("Path must be a string. Received " + JSON.stringify(path)); } } function normalizeStringPosix(path, allowAboveRoot) { var res = ""; var lastSegmentLength = 0; var lastSlash = -1; var dots = 0; var code; for (var i2 = 0; i2 <= path.length; ++i2) { if (i2 < path.length) code = path.charCodeAt(i2); else if (code === 47) break; else code = 47; if (code === 47) { if (lastSlash === i2 - 1 || dots === 1) ; else if (lastSlash !== i2 - 1 && dots === 2) { if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 || res.charCodeAt(res.length - 2) !== 46) { if (res.length > 2) { var lastSlashIndex = res.lastIndexOf("/"); if (lastSlashIndex !== res.length - 1) { if (lastSlashIndex === -1) { res = ""; lastSegmentLength = 0; } else { res = res.slice(0, lastSlashIndex); lastSegmentLength = res.length - 1 - res.lastIndexOf("/"); } lastSlash = i2; dots = 0; continue; } } else if (res.length === 2 || res.length === 1) { res = ""; lastSegmentLength = 0; lastSlash = i2; dots = 0; continue; } } if (allowAboveRoot) { if (res.length > 0) res += "/.."; else res = ".."; lastSegmentLength = 2; } } else { if (res.length > 0) res += "/" + path.slice(lastSlash + 1, i2); else res = path.slice(lastSlash + 1, i2); lastSegmentLength = i2 - lastSlash - 1; } lastSlash = i2; dots = 0; } else if (code === 46 && dots !== -1) { ++dots; } else { dots = -1; } } return res; } function _format(sep, pathObject) { var dir = pathObject.dir || pathObject.root; var base = pathObject.base || (pathObject.name || "") + (pathObject.ext || ""); if (!dir) { return base; } if (dir === pathObject.root) { return dir + base; } return dir + sep + base; } var posix = { // path.resolve([from ...], to) resolve: function resolve() { var resolvedPath = ""; var resolvedAbsolute = false; var cwd; for (var i2 = arguments.length - 1; i2 >= -1 && !resolvedAbsolute; i2--) { var path; if (i2 >= 0) path = arguments[i2]; else { if (cwd === void 0) cwd = process.cwd(); path = cwd; } assertPath(path); if (path.length === 0) { continue; } resolvedPath = path + "/" + resolvedPath; resolvedAbsolute = path.charCodeAt(0) === 47; } resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute); if (resolvedAbsolute) { if (resolvedPath.length > 0) return "/" + resolvedPath; else return "/"; } else if (resolvedPath.length > 0) { return resolvedPath; } else { return "."; } }, normalize: function normalize(path) { assertPath(path); if (path.length === 0) return "."; var isAbsolute = path.charCodeAt(0) === 47; var trailingSeparator = path.charCodeAt(path.length - 1) === 47; path = normalizeStringPosix(path, !isAbsolute); if (path.length === 0 && !isAbsolute) path = "."; if (path.length > 0 && trailingSeparator) path += "/"; if (isAbsolute) return "/" + path; return path; }, isAbsolute: function isAbsolute(path) { assertPath(path); return path.length > 0 && path.charCodeAt(0) === 47; }, join: function join() { if (arguments.length === 0) return "."; var joined; for (var i2 = 0; i2 < arguments.length; ++i2) { var arg = arguments[i2]; assertPath(arg); if (arg.length > 0) { if (joined === void 0) joined = arg; else joined += "/" + arg; } } if (joined === void 0) return "."; return posix.normalize(joined); }, relative: function relative(from, to) { assertPath(from); assertPath(to); if (from === to) return ""; from = posix.resolve(from); to = posix.resolve(to); if (from === to) return ""; var fromStart = 1; for (; fromStart < from.length; ++fromStart) { if (from.charCodeAt(fromStart) !== 47) break; } var fromEnd = from.length; var fromLen = fromEnd - fromStart; var toStart = 1; for (; toStart < to.length; ++toStart) { if (to.charCodeAt(toStart) !== 47) break; } var toEnd = to.length; var toLen = toEnd - toStart; var length = fromLen < toLen ? fromLen : toLen; var lastCommonSep = -1; var i2 = 0; for (; i2 <= length; ++i2) { if (i2 === length) { if (toLen > length) { if (to.charCodeAt(toStart + i2) === 47) { return to.slice(toStart + i2 + 1); } else if (i2 === 0) { return to.slice(toStart + i2); } } else if (fromLen > length) { if (from.charCodeAt(fromStart + i2) === 47) { lastCommonSep = i2; } else if (i2 === 0) { lastCommonSep = 0; } } break; } var fromCode = from.charCodeAt(fromStart + i2); var toCode = to.charCodeAt(toStart + i2); if (fromCode !== toCode) break; else if (fromCode === 47) lastCommonSep = i2; } var out = ""; for (i2 = fromStart + lastCommonSep + 1; i2 <= fromEnd; ++i2) { if (i2 === fromEnd || from.charCodeAt(i2) === 47) { if (out.length === 0) out += ".."; else out += "/.."; } } if (out.length > 0) return out + to.slice(toStart + lastCommonSep); else { toStart += lastCommonSep; if (to.charCodeAt(toStart) === 47) ++toStart; return to.slice(toStart); } }, _makeLong: function _makeLong(path) { return path; }, dirname: function dirname(path) { assertPath(path); if (path.length === 0) return "."; var code = path.charCodeAt(0); var hasRoot = code === 47; var end = -1; var matchedSlash = true; for (var i2 = path.length - 1; i2 >= 1; --i2) { code = path.charCodeAt(i2); if (code === 47) { if (!matchedSlash) { end = i2; break; } } else { matchedSlash = false; } } if (end === -1) return hasRoot ? "/" : "."; if (hasRoot && end === 1) return "//"; return path.slice(0, end); }, basename: function basename(path, ext) { if (ext !== void 0 && typeof ext !== "string") throw new TypeError('"ext" argument must be a string'); assertPath(path); var start = 0; var end = -1; var matchedSlash = true; var i2; if (ext !== void 0 && ext.length > 0 && ext.length <= path.length) { if (ext.length === path.length && ext === path) return ""; var extIdx = ext.length - 1; var firstNonSlashEnd = -1; for (i2 = path.length - 1; i2 >= 0; --i2) { var code = path.charCodeAt(i2); if (code === 47) { if (!matchedSlash) { start = i2 + 1; break; } } else { if (firstNonSlashEnd === -1) { matchedSlash = false; firstNonSlashEnd = i2 + 1; } if (extIdx >= 0) { if (code === ext.charCodeAt(extIdx)) { if (--extIdx === -1) { end = i2; } } else { extIdx = -1; end = firstNonSlashEnd; } } } } if (start === end) end = firstNonSlashEnd; else if (end === -1) end = path.length; return path.slice(start, end); } else { for (i2 = path.length - 1; i2 >= 0; --i2) { if (path.charCodeAt(i2) === 47) { if (!matchedSlash) { start = i2 + 1; break; } } else if (end === -1) { matchedSlash = false; end = i2 + 1; } } if (end === -1) return ""; return path.slice(start, end); } }, extname: function extname(path) { assertPath(path); var startDot = -1; var startPart = 0; var end = -1; var matchedSlash = true; var preDotState = 0; for (var i2 = path.length - 1; i2 >= 0; --i2) { var code = path.charCodeAt(i2); if (code === 47) { if (!matchedSlash) { startPart = i2 + 1; break; } continue; } if (end === -1) { matchedSlash = false; end = i2 + 1; } if (code === 46) { if (startDot === -1) startDot = i2; else if (preDotState !== 1) preDotState = 1; } else if (startDot !== -1) { preDotState = -1; } } if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot preDotState === 0 || // The (right-most) trimmed path component is exactly '..' preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) { return ""; } return path.slice(startDot, end); }, format: function format(pathObject) { if (pathObject === null || typeof pathObject !== "object") { throw new TypeError('The "pathObject" argument must be of type Object. Received type ' + typeof pathObject); } return _format("/", pathObject); }, parse: function parse2(path) { assertPath(path); var ret = { root: "", dir: "", base: "", ext: "", name: "" }; if (path.length === 0) return ret; var code = path.charCodeAt(0); var isAbsolute = code === 47; var start; if (isAbsolute) { ret.root = "/"; start = 1; } else { start = 0; } var startDot = -1; var startPart = 0; var end = -1; var matchedSlash = true; var i2 = path.length - 1; var preDotState = 0; for (; i2 >= start; --i2) { code = path.charCodeAt(i2); if (code === 47) { if (!matchedSlash) { startPart = i2 + 1; break; } continue; } if (end === -1) { matchedSlash = false; end = i2 + 1; } if (code === 46) { if (startDot === -1) startDot = i2; else if (preDotState !== 1) preDotState = 1; } else if (startDot !== -1) { preDotState = -1; } } if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot preDotState === 0 || // The (right-most) trimmed path component is exactly '..' preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) { if (end !== -1) { if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end); else ret.base = ret.name = path.slice(startPart, end); } } else { if (startPart === 0 && isAbsolute) { ret.name = path.slice(1, startDot); ret.base = path.slice(1, end); } else { ret.name = path.slice(startPart, startDot); ret.base = path.slice(startPart, end); } ret.ext = path.slice(startDot, end); } if (startPart > 0) ret.dir = path.slice(0, startPart - 1); else if (isAbsolute) ret.dir = "/"; return ret; }, sep: "/", delimiter: ":", win32: null, posix: null }; posix.posix = posix; module.exports = posix; } ), /***/ "../../node_modules/speakingurl/index.js": ( /*!***********************************************!*\ !*** ../../node_modules/speakingurl/index.js ***! \***********************************************/ /***/ (module, __unused_webpack_exports, __webpack_require__2) => { module.exports = __webpack_require__2( /*! ./lib/speakingurl */ "../../node_modules/speakingurl/lib/speakingurl.js" ); } ), /***/ "../../node_modules/speakingurl/lib/speakingurl.js": ( /*!*********************************************************!*\ !*** ../../node_modules/speakingurl/lib/speakingurl.js ***! \*********************************************************/ /***/ function(module, exports) { var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; (function(root) { var charMap = { // latin "À": "A", "Á": "A", "Â": "A", "Ã": "A", "Ä": "Ae", "Å": "A", "Æ": "AE", "Ç": "C", "È": "E", "É": "E", "Ê": "E", "Ë": "E", "Ì": "I", "Í": "I", "Î": "I", "Ï": "I", "Ð": "D", "Ñ": "N", "Ò": "O", "Ó": "O", "Ô": "O", "Õ": "O", "Ö": "Oe", "Ő": "O", "Ø": "O", "Ù": "U", "Ú": "U", "Û": "U", "Ü": "Ue", "Ű": "U", "Ý": "Y", "Þ": "TH", "ß": "ss", "à": "a", "á": "a", "â": "a", "ã": "a", "ä": "ae", "å": "a", "æ": "ae", "ç": "c", "è": "e", "é": "e", "ê": "e", "ë": "e", "ì": "i", "í": "i", "î": "i", "ï": "i", "ð": "d", "ñ": "n", "ò": "o", "ó": "o", "ô": "o", "õ": "o", "ö": "oe", "ő": "o", "ø": "o", "ù": "u", "ú": "u", "û": "u", "ü": "ue", "ű": "u", "ý": "y", "þ": "th", "ÿ": "y", "ẞ": "SS", // language specific // Arabic "ا": "a", "أ": "a", "إ": "i", "آ": "aa", "ؤ": "u", "ئ": "e", "ء": "a", "ب": "b", "ت": "t", "ث": "th", "ج": "j", "ح": "h", "خ": "kh", "د": "d", "ذ": "th", "ر": "r", "ز": "z", "س": "s", "ش": "sh", "ص": "s", "ض": "dh", "ط": "t", "ظ": "z", "ع": "a", "غ": "gh", "ف": "f", "ق": "q", "ك": "k", "ل": "l", "م": "m", "ن": "n", "ه": "h", "و": "w", "ي": "y", "ى": "a", "ة": "h", "ﻻ": "la", "ﻷ": "laa", "ﻹ": "lai", "ﻵ": "laa", // Persian additional characters than Arabic "گ": "g", "چ": "ch", "پ": "p", "ژ": "zh", "ک": "k", "ی": "y", // Arabic diactrics "َ": "a", "ً": "an", "ِ": "e", "ٍ": "en", "ُ": "u", "ٌ": "on", "ْ": "", // Arabic numbers "٠": "0", "١": "1", "٢": "2", "٣": "3", "٤": "4", "٥": "5", "٦": "6", "٧": "7", "٨": "8", "٩": "9", // Persian numbers "۰": "0", "۱": "1", "۲": "2", "۳": "3", "۴": "4", "۵": "5", "۶": "6", "۷": "7", "۸": "8", "۹": "9", // Burmese consonants "က": "k", "ခ": "kh", "ဂ": "g", "ဃ": "ga", "င": "ng", "စ": "s", "ဆ": "sa", "ဇ": "z", "စျ": "za", "ည": "ny", "ဋ": "t", "ဌ": "ta", "ဍ": "d", "ဎ": "da", "ဏ": "na", "တ": "t", "ထ": "ta", "ဒ": "d", "ဓ": "da", "န": "n", "ပ": "p", "ဖ": "pa", "ဗ": "b", "ဘ": "ba", "မ": "m", "ယ": "y", "ရ": "ya", "လ": "l", "ဝ": "w", "သ": "th", "ဟ": "h", "ဠ": "la", "အ": "a", // consonant character combos "ြ": "y", "ျ": "ya", "ွ": "w", "ြွ": "yw", "ျွ": "ywa", "ှ": "h", // independent vowels "ဧ": "e", "၏": "-e", "ဣ": "i", "ဤ": "-i", "ဉ": "u", "ဦ": "-u", "ဩ": "aw", "သြော": "aw", "ဪ": "aw", // numbers "၀": "0", "၁": "1", "၂": "2", "၃": "3", "၄": "4", "၅": "5", "၆": "6", "၇": "7", "၈": "8", "၉": "9", // virama and tone marks which are silent in transliteration "္": "", "့": "", "း": "", // Czech "č": "c", "ď": "d", "ě": "e", "ň": "n", "ř": "r", "š": "s", "ť": "t", "ů": "u", "ž": "z", "Č": "C", "Ď": "D", "Ě": "E", "Ň": "N", "Ř": "R", "Š": "S", "Ť": "T", "Ů": "U", "Ž": "Z", // Dhivehi "ހ": "h", "ށ": "sh", "ނ": "n", "ރ": "r", "ބ": "b", "ޅ": "lh", "ކ": "k", "އ": "a", "ވ": "v", "މ": "m", "ފ": "f", "ދ": "dh", "ތ": "th", "ލ": "l", "ގ": "g", "ޏ": "gn", "ސ": "s", "ޑ": "d", "ޒ": "z", "ޓ": "t", "ޔ": "y", "ޕ": "p", "ޖ": "j", "ޗ": "ch", "ޘ": "tt", "ޙ": "hh", "ޚ": "kh", "ޛ": "th", "ޜ": "z", "ޝ": "sh", "ޞ": "s", "ޟ": "d", "ޠ": "t", "ޡ": "z", "ޢ": "a", "ޣ": "gh", "ޤ": "q", "ޥ": "w", "ަ": "a", "ާ": "aa", "ި": "i", "ީ": "ee", "ު": "u", "ޫ": "oo", "ެ": "e", "ޭ": "ey", "ޮ": "o", "ޯ": "oa", "ް": "", // Georgian https://en.wikipedia.org/wiki/Romanization_of_Georgian // National system (2002) "ა": "a", "ბ": "b", "გ": "g", "დ": "d", "ე": "e", "ვ": "v", "ზ": "z", "თ": "t", "ი": "i", "კ": "k", "ლ": "l", "მ": "m", "ნ": "n", "ო": "o", "პ": "p", "ჟ": "zh", "რ": "r", "ს": "s", "ტ": "t", "უ": "u", "ფ": "p", "ქ": "k", "ღ": "gh", "ყ": "q", "შ": "sh", "ჩ": "ch", "ც": "ts", "ძ": "dz", "წ": "ts", "ჭ": "ch", "ხ": "kh", "ჯ": "j", "ჰ": "h", // Greek "α": "a", "β": "v", "γ": "g", "δ": "d", "ε": "e", "ζ": "z", "η": "i", "θ": "th", "ι": "i", "κ": "k", "λ": "l", "μ": "m", "ν": "n", "ξ": "ks", "ο": "o", "π": "p", "ρ": "r", "σ": "s", "τ": "t", "υ": "y", "φ": "f", "χ": "x", "ψ": "ps", "ω": "o", "ά": "a", "έ": "e", "ί": "i", "ό": "o", "ύ": "y", "ή": "i", "ώ": "o", "ς": "s", "ϊ": "i", "ΰ": "y", "ϋ": "y", "ΐ": "i", "Α": "A", "Β": "B", "Γ": "G", "Δ": "D", "Ε": "E", "Ζ": "Z", "Η": "I", "Θ": "TH", "Ι": "I", "Κ": "K", "Λ": "L", "Μ": "M", "Ν": "N", "Ξ": "KS", "Ο": "O", "Π": "P", "Ρ": "R", "Σ": "S", "Τ": "T", "Υ": "Y", "Φ": "F", "Χ": "X", "Ψ": "PS", "Ω": "O", "Ά": "A", "Έ": "E", "Ί": "I", "Ό": "O", "Ύ": "Y", "Ή": "I", "Ώ": "O", "Ϊ": "I", "Ϋ": "Y", // Latvian "ā": "a", // 'č': 'c', // duplicate "ē": "e", "ģ": "g", "ī": "i", "ķ": "k", "ļ": "l", "ņ": "n", // 'š': 's', // duplicate "ū": "u", // 'ž': 'z', // duplicate "Ā": "A", // 'Č': 'C', // duplicate "Ē": "E", "Ģ": "G", "Ī": "I", "Ķ": "k", "Ļ": "L", "Ņ": "N", // 'Š': 'S', // duplicate "Ū": "U", // 'Ž': 'Z', // duplicate // Macedonian "Ќ": "Kj", "ќ": "kj", "Љ": "Lj", "љ": "lj", "Њ": "Nj", "њ": "nj", "Тс": "Ts", "тс": "ts", // Polish "ą": "a", "ć": "c", "ę": "e", "ł": "l", "ń": "n", // 'ó': 'o', // duplicate "ś": "s", "ź": "z", "ż": "z", "Ą": "A", "Ć": "C", "Ę": "E", "Ł": "L", "Ń": "N", "Ś": "S", "Ź": "Z", "Ż": "Z", // Ukranian "Є": "Ye", "І": "I", "Ї": "Yi", "Ґ": "G", "є": "ye", "і": "i", "ї": "yi", "ґ": "g", // Romanian "ă": "a", "Ă": "A", "ș": "s", "Ș": "S", // 'ş': 's', // duplicate // 'Ş': 'S', // duplicate "ț": "t", "Ț": "T", "ţ": "t", "Ţ": "T", // Russian https://en.wikipedia.org/wiki/Romanization_of_Russian // ICAO "а": "a", "б": "b", "в": "v", "г": "g", "д": "d", "е": "e", "ё": "yo", "ж": "zh", "з": "z", "и": "i", "й": "i", "к": "k", "л": "l", "м": "m", "н": "n", "о": "o", "п": "p", "р": "r", "с": "s", "т": "t", "у": "u", "ф": "f", "х": "kh", "ц": "c", "ч": "ch", "ш": "sh", "щ": "sh", "ъ": "", "ы": "y", "ь": "", "э": "e", "ю": "yu", "я": "ya", "А": "A", "Б": "B", "В": "V", "Г": "G", "Д": "D", "Е": "E", "Ё": "Yo", "Ж": "Zh", "З": "Z", "И": "I", "Й": "I", "К": "K", "Л": "L", "М": "M", "Н": "N", "О": "O", "П": "P", "Р": "R", "С": "S", "Т": "T", "У": "U", "Ф": "F", "Х": "Kh", "Ц": "C", "Ч": "Ch", "Ш": "Sh", "Щ": "Sh", "Ъ": "", "Ы": "Y", "Ь": "", "Э": "E", "Ю": "Yu", "Я": "Ya", // Serbian "ђ": "dj", "ј": "j", // 'љ': 'lj', // duplicate // 'њ': 'nj', // duplicate "ћ": "c", "џ": "dz", "Ђ": "Dj", "Ј": "j", // 'Љ': 'Lj', // duplicate // 'Њ': 'Nj', // duplicate "Ћ": "C", "Џ": "Dz", // Slovak "ľ": "l", "ĺ": "l", "ŕ": "r", "Ľ": "L", "Ĺ": "L", "Ŕ": "R", // Turkish "ş": "s", "Ş": "S", "ı": "i", "İ": "I", // 'ç': 'c', // duplicate // 'Ç': 'C', // duplicate // 'ü': 'u', // duplicate, see langCharMap // 'Ü': 'U', // duplicate, see langCharMap // 'ö': 'o', // duplicate, see langCharMap // 'Ö': 'O', // duplicate, see langCharMap "ğ": "g", "Ğ": "G", // Vietnamese "ả": "a", "Ả": "A", "ẳ": "a", "Ẳ": "A", "ẩ": "a", "Ẩ": "A", "đ": "d", "Đ": "D", "ẹ": "e", "Ẹ": "E", "ẽ": "e", "Ẽ": "E", "ẻ": "e", "Ẻ": "E", "ế": "e", "Ế": "E", "ề": "e", "Ề": "E", "ệ": "e", "Ệ": "E", "ễ": "e", "Ễ": "E", "ể": "e", "Ể": "E", "ỏ": "o", "ọ": "o", "Ọ": "o", "ố": "o", "Ố": "O", "ồ": "o", "Ồ": "O", "ổ": "o", "Ổ": "O", "ộ": "o", "Ộ": "O", "ỗ": "o", "Ỗ": "O", "ơ": "o", "Ơ": "O", "ớ": "o", "Ớ": "O", "ờ": "o", "Ờ": "O", "ợ": "o", "Ợ": "O", "ỡ": "o", "Ỡ": "O", "Ở": "o", "ở": "o", "ị": "i", "Ị": "I", "ĩ": "i", "Ĩ": "I", "ỉ": "i", "Ỉ": "i", "ủ": "u", "Ủ": "U", "ụ": "u", "Ụ": "U", "ũ": "u", "Ũ": "U", "ư": "u", "Ư": "U", "ứ": "u", "Ứ": "U", "ừ": "u", "Ừ": "U", "ự": "u", "Ự": "U", "ữ": "u", "Ữ": "U", "ử": "u", "Ử": "ư", "ỷ": "y", "Ỷ": "y", "ỳ": "y", "Ỳ": "Y", "ỵ": "y", "Ỵ": "Y", "ỹ": "y", "Ỹ": "Y", "ạ": "a", "Ạ": "A", "ấ": "a", "Ấ": "A", "ầ": "a", "Ầ": "A", "ậ": "a", "Ậ": "A", "ẫ": "a", "Ẫ": "A", // 'ă': 'a', // duplicate // 'Ă': 'A', // duplicate "ắ": "a", "Ắ": "A", "ằ": "a", "Ằ": "A", "ặ": "a", "Ặ": "A", "ẵ": "a", "Ẵ": "A", "⓪": "0", "①": "1", "②": "2", "③": "3", "④": "4", "⑤": "5", "⑥": "6", "⑦": "7", "⑧": "8", "⑨": "9", "⑩": "10", "⑪": "11", "⑫": "12", "⑬": "13", "⑭": "14", "⑮": "15", "⑯": "16", "⑰": "17", "⑱": "18", "⑲": "18", "⑳": "18", "⓵": "1", "⓶": "2", "⓷": "3", "⓸": "4", "⓹": "5", "⓺": "6", "⓻": "7", "⓼": "8", "⓽": "9", "⓾": "10", "⓿": "0", "⓫": "11", "⓬": "12", "⓭": "13", "⓮": "14", "⓯": "15", "⓰": "16", "⓱": "17", "⓲": "18", "⓳": "19", "⓴": "20", "Ⓐ": "A", "Ⓑ": "B", "Ⓒ": "C", "Ⓓ": "D", "Ⓔ": "E", "Ⓕ": "F", "Ⓖ": "G", "Ⓗ": "H", "Ⓘ": "I", "Ⓙ": "J", "Ⓚ": "K", "Ⓛ": "L", "Ⓜ": "M", "Ⓝ": "N", "Ⓞ": "O", "Ⓟ": "P", "Ⓠ": "Q", "Ⓡ": "R", "Ⓢ": "S", "Ⓣ": "T", "Ⓤ": "U", "Ⓥ": "V", "Ⓦ": "W", "Ⓧ": "X", "Ⓨ": "Y", "Ⓩ": "Z", "ⓐ": "a", "ⓑ": "b", "ⓒ": "c", "ⓓ": "d", "ⓔ": "e", "ⓕ": "f", "ⓖ": "g", "ⓗ": "h", "ⓘ": "i", "ⓙ": "j", "ⓚ": "k", "ⓛ": "l", "ⓜ": "m", "ⓝ": "n", "ⓞ": "o", "ⓟ": "p", "ⓠ": "q", "ⓡ": "r", "ⓢ": "s", "ⓣ": "t", "ⓤ": "u", "ⓦ": "v", "ⓥ": "w", "ⓧ": "x", "ⓨ": "y", "ⓩ": "z", // symbols "“": '"', "”": '"', "‘": "'", "’": "'", "∂": "d", "ƒ": "f", "™": "(TM)", "©": "(C)", "œ": "oe", "Œ": "OE", "®": "(R)", "†": "+", "℠": "(SM)", "…": "...", "˚": "o", "º": "o", "ª": "a", "•": "*", "၊": ",", "။": ".", // currency "$": "USD", "€": "EUR", "₢": "BRN", "₣": "FRF", "£": "GBP", "₤": "ITL", "₦": "NGN", "₧": "ESP", "₩": "KRW", "₪": "ILS", "₫": "VND", "₭": "LAK", "₮": "MNT", "₯": "GRD", "₱": "ARS", "₲": "PYG", "₳": "ARA", "₴": "UAH", "₵": "GHS", "¢": "cent", "¥": "CNY", "元": "CNY", "円": "YEN", "﷼": "IRR", "₠": "EWE", "฿": "THB", "₨": "INR", "₹": "INR", "₰": "PF", "₺": "TRY", "؋": "AFN", "₼": "AZN", "лв": "BGN", "៛": "KHR", "₡": "CRC", "₸": "KZT", "ден": "MKD", "zł": "PLN", "₽": "RUB", "₾": "GEL" }; var lookAheadCharArray = [ // burmese "်", // Dhivehi "ް" ]; var diatricMap = { // Burmese // dependent vowels "ာ": "a", "ါ": "a", "ေ": "e", "ဲ": "e", "ိ": "i", "ီ": "i", "ို": "o", "ု": "u", "ူ": "u", "ေါင်": "aung", "ော": "aw", "ော်": "aw", "ေါ": "aw", "ေါ်": "aw", "်": "်", // this is special case but the character will be converted to latin in the code "က်": "et", "ိုက်": "aik", "ောက်": "auk", "င်": "in", "ိုင်": "aing", "ောင်": "aung", "စ်": "it", "ည်": "i", "တ်": "at", "ိတ်": "eik", "ုတ်": "ok", "ွတ်": "ut", "ေတ်": "it", "ဒ်": "d", "ိုဒ်": "ok", "ုဒ်": "ait", "န်": "an", "ာန်": "an", "ိန်": "ein", "ုန်": "on", "ွန်": "un", "ပ်": "at", "ိပ်": "eik", "ုပ်": "ok", "ွပ်": "ut", "န်ုပ်": "nub", "မ်": "an", "ိမ်": "ein", "ုမ်": "on", "ွမ်": "un", "ယ်": "e", "ိုလ်": "ol", "ဉ်": "in", "ံ": "an", "ိံ": "ein", "ုံ": "on", // Dhivehi "ައް": "ah", "ަށް": "ah" }; var langCharMap = { "en": {}, // default language "az": { // Azerbaijani "ç": "c", "ə": "e", "ğ": "g", "ı": "i", "ö": "o", "ş": "s", "ü": "u", "Ç": "C", "Ə": "E", "Ğ": "G", "İ": "I", "Ö": "O", "Ş": "S", "Ü": "U" }, "cs": { // Czech "č": "c", "ď": "d", "ě": "e", "ň": "n", "ř": "r", "š": "s", "ť": "t", "ů": "u", "ž": "z", "Č": "C", "Ď": "D", "Ě": "E", "Ň": "N", "Ř": "R", "Š": "S", "Ť": "T", "Ů": "U", "Ž": "Z" }, "fi": { // Finnish // 'å': 'a', duplicate see charMap/latin // 'Å': 'A', duplicate see charMap/latin "ä": "a", // ok "Ä": "A", // ok "ö": "o", // ok "Ö": "O" // ok }, "hu": { // Hungarian "ä": "a", // ok "Ä": "A", // ok // 'á': 'a', duplicate see charMap/latin // 'Á': 'A', duplicate see charMap/latin "ö": "o", // ok "Ö": "O", // ok // 'ő': 'o', duplicate see charMap/latin // 'Ő': 'O', duplicate see charMap/latin "ü": "u", "Ü": "U", "ű": "u", "Ű": "U" }, "lt": { // Lithuanian "ą": "a", "č": "c", "ę": "e", "ė": "e", "į": "i", "š": "s", "ų": "u", "ū": "u", "ž": "z", "Ą": "A", "Č": "C", "Ę": "E", "Ė": "E", "Į": "I", "Š": "S", "Ų": "U", "Ū": "U" }, "lv": { // Latvian "ā": "a", "č": "c", "ē": "e", "ģ": "g", "ī": "i", "ķ": "k", "ļ": "l", "ņ": "n", "š": "s", "ū": "u", "ž": "z", "Ā": "A", "Č": "C", "Ē": "E", "Ģ": "G", "Ī": "i", "Ķ": "k", "Ļ": "L", "Ņ": "N", "Š": "S", "Ū": "u", "Ž": "Z" }, "pl": { // Polish "ą": "a", "ć": "c", "ę": "e", "ł": "l", "ń": "n", "ó": "o", "ś": "s", "ź": "z", "ż": "z", "Ą": "A", "Ć": "C", "Ę": "e", "Ł": "L", "Ń": "N", "Ó": "O", "Ś": "S", "Ź": "Z", "Ż": "Z" }, "sv": { // Swedish // 'å': 'a', duplicate see charMap/latin // 'Å': 'A', duplicate see charMap/latin "ä": "a", // ok "Ä": "A", // ok "ö": "o", // ok "Ö": "O" // ok }, "sk": { // Slovak "ä": "a", "Ä": "A" }, "sr": { // Serbian "љ": "lj", "њ": "nj", "Љ": "Lj", "Њ": "Nj", "đ": "dj", "Đ": "Dj" }, "tr": { // Turkish "Ü": "U", "Ö": "O", "ü": "u", "ö": "o" } }; var symbolMap = { "ar": { "∆": "delta", "∞": "la-nihaya", "♥": "hob", "&": "wa", "|": "aw", "<": "aqal-men", ">": "akbar-men", "∑": "majmou", "¤": "omla" }, "az": {}, "ca": { "∆": "delta", "∞": "infinit", "♥": "amor", "&": "i", "|": "o", "<": "menys que", ">": "mes que", "∑": "suma dels", "¤": "moneda" }, "cs": { "∆": "delta", "∞": "nekonecno", "♥": "laska", "&": "a", "|": "nebo", "<": "mensi nez", ">": "vetsi nez", "∑": "soucet", "¤": "mena" }, "de": { "∆": "delta", "∞": "unendlich", "♥": "Liebe", "&": "und", "|": "oder", "<": "kleiner als", ">": "groesser als", "∑": "Summe von", "¤": "Waehrung" }, "dv": { "∆": "delta", "∞": "kolunulaa", "♥": "loabi", "&": "aai", "|": "noonee", "<": "ah vure kuda", ">": "ah vure bodu", "∑": "jumula", "¤": "faisaa" }, "en": { "∆": "delta", "∞": "infinity", "♥": "love", "&": "and", "|": "or", "<": "less than", ">": "greater than", "∑": "sum", "¤": "currency" }, "es": { "∆": "delta", "∞": "infinito", "♥": "amor", "&": "y", "|": "u", "<": "menos que", ">": "mas que", "∑": "suma de los", "¤": "moneda" }, "fa": { "∆": "delta", "∞": "bi-nahayat", "♥": "eshgh", "&": "va", "|": "ya", "<": "kamtar-az", ">": "bishtar-az", "∑": "majmooe", "¤": "vahed" }, "fi": { "∆": "delta", "∞": "aarettomyys", "♥": "rakkaus", "&": "ja", "|": "tai", "<": "pienempi kuin", ">": "suurempi kuin", "∑": "summa", "¤": "valuutta" }, "fr": { "∆": "delta", "∞": "infiniment", "♥": "Amour", "&": "et", "|": "ou", "<": "moins que", ">": "superieure a", "∑": "somme des", "¤": "monnaie" }, "ge": { "∆": "delta", "∞": "usasruloba", "♥": "siqvaruli", "&": "da", "|": "an", "<": "naklebi", ">": "meti", "∑": "jami", "¤": "valuta" }, "gr": {}, "hu": { "∆": "delta", "∞": "vegtelen", "♥": "szerelem", "&": "es", "|": "vagy", "<": "kisebb mint", ">": "nagyobb mint", "∑": "szumma", "¤": "penznem" }, "it": { "∆": "delta", "∞": "infinito", "♥": "amore", "&": "e", "|": "o", "<": "minore di", ">": "maggiore di", "∑": "somma", "¤": "moneta" }, "lt": { "∆": "delta", "∞": "begalybe", "♥": "meile", "&": "ir", "|": "ar", "<": "maziau nei", ">": "daugiau nei", "∑": "suma", "¤": "valiuta" }, "lv": { "∆": "delta", "∞": "bezgaliba", "♥": "milestiba", "&": "un", "|": "vai", "<": "mazak neka", ">": "lielaks neka", "∑": "summa", "¤": "valuta" }, "my": { "∆": "kwahkhyaet", "∞": "asaonasme", "♥": "akhyait", "&": "nhin", "|": "tho", "<": "ngethaw", ">": "kyithaw", "∑": "paungld", "¤": "ngwekye" }, "mk": {}, "nl": { "∆": "delta", "∞": "oneindig", "♥": "liefde", "&": "en", "|": "of", "<": "kleiner dan", ">": "groter dan", "∑": "som", "¤": "valuta" }, "pl": { "∆": "delta", "∞": "nieskonczonosc", "♥": "milosc", "&": "i", "|": "lub", "<": "mniejsze niz", ">": "wieksze niz", "∑": "suma", "¤": "waluta" }, "pt": { "∆": "delta", "∞": "infinito", "♥": "amor", "&": "e", "|": "ou", "<": "menor que", ">": "maior que", "∑": "soma", "¤": "moeda" }, "ro": { "∆": "delta", "∞": "infinit", "♥": "dragoste", "&": "si", "|": "sau", "<": "mai mic ca", ">": "mai mare ca", "∑": "suma", "¤": "valuta" }, "ru": { "∆": "delta", "∞": "beskonechno", "♥": "lubov", "&": "i", "|": "ili", "<": "menshe", ">": "bolshe", "∑": "summa", "¤": "valjuta" }, "sk": { "∆": "delta", "∞": "nekonecno", "♥": "laska", "&": "a", "|": "alebo", "<": "menej ako", ">": "viac ako", "∑": "sucet", "¤": "mena" }, "sr": {}, "tr": { "∆": "delta", "∞": "sonsuzluk", "♥": "ask", "&": "ve", "|": "veya", "<": "kucuktur", ">": "buyuktur", "∑": "toplam", "¤": "para birimi" }, "uk": { "∆": "delta", "∞": "bezkinechnist", "♥": "lubov", "&": "i", "|": "abo", "<": "menshe", ">": "bilshe", "∑": "suma", "¤": "valjuta" }, "vn": { "∆": "delta", "∞": "vo cuc", "♥": "yeu", "&": "va", "|": "hoac", "<": "nho hon", ">": "lon hon", "∑": "tong", "¤": "tien te" } }; var uricChars = [";", "?", ":", "@", "&", "=", "+", "$", ",", "/"].join(""); var uricNoSlashChars = [";", "?", ":", "@", "&", "=", "+", "$", ","].join(""); var markChars = [".", "!", "~", "*", "'", "(", ")"].join(""); var getSlug = function getSlug2(input, opts) { var separator = "-"; var result = ""; var diatricString = ""; var convertSymbols = true; var customReplacements = {}; var maintainCase; var titleCase; var truncate; var uricFlag; var uricNoSlashFlag; var markFlag; var symbol; var langChar; var lucky; var i2; var ch; var l2; var lastCharWasSymbol; var lastCharWasDiatric; var allowedChars = ""; if (typeof input !== "string") { return ""; } if (typeof opts === "string") { separator = opts; } symbol = symbolMap.en; langChar = langCharMap.en; if (typeof opts === "object") { maintainCase = opts.maintainCase || false; customReplacements = opts.custom && typeof opts.custom === "object" ? opts.custom : customReplacements; truncate = +opts.truncate > 1 && opts.truncate || false; uricFlag = opts.uric || false; uricNoSlashFlag = opts.uricNoSlash || false; markFlag = opts.mark || false; convertSymbols = opts.symbols === false || opts.lang === false ? false : true; separator = opts.separator || separator; if (uricFlag) { allowedChars += uricChars; } if (uricNoSlashFlag) { allowedChars += uricNoSlashChars; } if (markFlag) { allowedChars += markChars; } symbol = opts.lang && symbolMap[opts.lang] && convertSymbols ? symbolMap[opts.lang] : convertSymbols ? symbolMap.en : {}; langChar = opts.lang && langCharMap[opts.lang] ? langCharMap[opts.lang] : opts.lang === false || opts.lang === true ? {} : langCharMap.en; if (opts.titleCase && typeof opts.titleCase.length === "number" && Array.prototype.toString.call(opts.titleCase)) { opts.titleCase.forEach(function(v2) { customReplacements[v2 + ""] = v2 + ""; }); titleCase = true; } else { titleCase = !!opts.titleCase; } if (opts.custom && typeof opts.custom.length === "number" && Array.prototype.toString.call(opts.custom)) { opts.custom.forEach(function(v2) { customReplacements[v2 + ""] = v2 + ""; }); } Object.keys(customReplacements).forEach(function(v2) { var r2; if (v2.length > 1) { r2 = new RegExp("\\b" + escapeChars(v2) + "\\b", "gi"); } else { r2 = new RegExp(escapeChars(v2), "gi"); } input = input.replace(r2, customReplacements[v2]); }); for (ch in customReplacements) { allowedChars += ch; } } allowedChars += separator; allowedChars = escapeChars(allowedChars); input = input.replace(/(^\s+|\s+$)/g, ""); lastCharWasSymbol = false; lastCharWasDiatric = false; for (i2 = 0, l2 = input.length; i2 < l2; i2++) { ch = input[i2]; if (isReplacedCustomChar(ch, customReplacements)) { lastCharWasSymbol = false; } else if (langChar[ch]) { ch = lastCharWasSymbol && langChar[ch].match(/[A-Za-z0-9]/) ? " " + langChar[ch] : langChar[ch]; lastCharWasSymbol = false; } else if (ch in charMap) { if (i2 + 1 < l2 && lookAheadCharArray.indexOf(input[i2 + 1]) >= 0) { diatricString += ch; ch = ""; } else if (lastCharWasDiatric === true) { ch = diatricMap[diatricString] + charMap[ch]; diatricString = ""; } else { ch = lastCharWasSymbol && charMap[ch].match(/[A-Za-z0-9]/) ? " " + charMap[ch] : charMap[ch]; } lastCharWasSymbol = false; lastCharWasDiatric = false; } else if (ch in diatricMap) { diatricString += ch; ch = ""; if (i2 === l2 - 1) { ch = diatricMap[diatricString]; } lastCharWasDiatric = true; } else if ( // process symbol chars symbol[ch] && !(uricFlag && uricChars.indexOf(ch) !== -1) && !(uricNoSlashFlag && uricNoSlashChars.indexOf(ch) !== -1) ) { ch = lastCharWasSymbol || result.substr(-1).match(/[A-Za-z0-9]/) ? separator + symbol[ch] : symbol[ch]; ch += input[i2 + 1] !== void 0 && input[i2 + 1].match(/[A-Za-z0-9]/) ? separator : ""; lastCharWasSymbol = true; } else { if (lastCharWasDiatric === true) { ch = diatricMap[diatricString] + ch; diatricString = ""; lastCharWasDiatric = false; } else if (lastCharWasSymbol && (/[A-Za-z0-9]/.test(ch) || result.substr(-1).match(/A-Za-z0-9]/))) { ch = " " + ch; } lastCharWasSymbol = false; } result += ch.replace(new RegExp("[^\\w\\s" + allowedChars + "_-]", "g"), separator); } if (titleCase) { result = result.replace(/(\w)(\S*)/g, function(_2, i3, r2) { var j2 = i3.toUpperCase() + (r2 !== null ? r2 : ""); return Object.keys(customReplacements).indexOf(j2.toLowerCase()) < 0 ? j2 : j2.toLowerCase(); }); } result = result.replace(/\s+/g, separator).replace(new RegExp("\\" + separator + "+", "g"), separator).replace(new RegExp("(^\\" + separator + "+|\\" + separator + "+$)", "g"), ""); if (truncate && result.length > truncate) { lucky = result.charAt(truncate) === separator; result = result.slice(0, truncate); if (!lucky) { result = result.slice(0, result.lastIndexOf(separator)); } } if (!maintainCase && !titleCase) { result = result.toLowerCase(); } return result; }; var createSlug = function createSlug2(opts) { return function getSlugWithConfig(input) { return getSlug(input, opts); }; }; var escapeChars = function escapeChars2(input) { return input.replace(/[-\\^$*+?.()|[\]{}\/]/g, "\\$&"); }; var isReplacedCustomChar = function(ch, customReplacements) { for (var c2 in customReplacements) { if (customReplacements[c2] === ch) { return true; } } }; if (module.exports) { module.exports = getSlug; module.exports.createSlug = createSlug; } else { !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function() { return getSlug; }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } })(); } ) /******/ }; var __webpack_module_cache__ = {}; function __webpack_require__(moduleId) { var cachedModule = __webpack_module_cache__[moduleId]; if (cachedModule !== void 0) { return cachedModule.exports; } var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); return module.exports; } (() => { __webpack_require__.n = (module) => { var getter = module && module.__esModule ? ( /******/ () => module["default"] ) : ( /******/ () => module ); __webpack_require__.d(getter, { a: getter }); return getter; }; })(); (() => { __webpack_require__.d = (exports, definition) => { for (var key in definition) { if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); } } }; })(); (() => { __webpack_require__.g = function() { if (typeof globalThis === "object") return globalThis; try { return this || new Function("return this")(); } catch (e2) { if (typeof window === "object") return window; } }(); })(); (() => { __webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop); })(); (() => { __webpack_require__.r = (exports) => { if (typeof Symbol !== "undefined" && Symbol.toStringTag) { Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); } Object.defineProperty(exports, "__esModule", { value: true }); }; })(); var __webpack_exports__ = {}; (() => { /*!************************!*\ !*** ./src/backend.ts ***! \************************/ __webpack_require__.r(__webpack_exports__); var _back_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( /*! @back/index */ "../app-backend-core/lib/index.js" ); var _vue_devtools_shared_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( /*! @vue-devtools/shared-utils */ "../shared-utils/lib/index.js" ); _vue_devtools_shared_utils__WEBPACK_IMPORTED_MODULE_1__.target.__VUE_DEVTOOLS_ON_SOCKET_READY__(() => { const socket = _vue_devtools_shared_utils__WEBPACK_IMPORTED_MODULE_1__.target.__VUE_DEVTOOLS_SOCKET__; const connectedMessage = () => { if (_vue_devtools_shared_utils__WEBPACK_IMPORTED_MODULE_1__.target.__VUE_DEVTOOLS_TOAST__) { _vue_devtools_shared_utils__WEBPACK_IMPORTED_MODULE_1__.target.__VUE_DEVTOOLS_TOAST__("Remote Devtools Connected", "normal"); } }; const disconnectedMessage = () => { if (_vue_devtools_shared_utils__WEBPACK_IMPORTED_MODULE_1__.target.__VUE_DEVTOOLS_TOAST__) { _vue_devtools_shared_utils__WEBPACK_IMPORTED_MODULE_1__.target.__VUE_DEVTOOLS_TOAST__("Remote Devtools Disconnected", "error"); } }; socket.on("connect", () => { connectedMessage(); (0, _back_index__WEBPACK_IMPORTED_MODULE_0__.initBackend)(bridge); socket.emit("vue-devtools-init"); }); socket.on("disconnect", () => { socket.disconnect(); disconnectedMessage(); }); socket.on("vue-devtools-disconnect-backend", () => { socket.disconnect(); }); const bridge = new _vue_devtools_shared_utils__WEBPACK_IMPORTED_MODULE_1__.Bridge({ listen(fn) { socket.on("vue-message", (data) => fn(data)); }, send(data) { socket.emit("vue-message", data); } }); bridge.on("shutdown", () => { socket.disconnect(); disconnectedMessage(); }); }); })(); })(); const _export_sfc = (sfc, props) => { const target = sfc.__vccOpts || sfc; for (const [key, val] of props) { target[key] = val; } return target; }; const _sfc_main$A = { name: "UniGridItem", inject: ["grid"], props: { index: { type: Number, default: 0 } }, data() { return { column: 0, showBorder: true, square: true, highlight: true, left: 0, top: 0, openNum: 2, width: 0, borderColor: "#e5e5e5" }; }, created() { this.column = this.grid.column; this.showBorder = this.grid.showBorder; this.square = this.grid.square; this.highlight = this.grid.highlight; this.top = this.hor === 0 ? this.grid.hor : this.hor; this.left = this.ver === 0 ? this.grid.ver : this.ver; this.borderColor = this.grid.borderColor; this.grid.children.push(this); this.width = this.grid.width; }, beforeDestroy() { this.grid.children.forEach((item, index) => { if (item === this) { this.grid.children.splice(index, 1); } }); }, methods: { _onClick() { this.grid.change({ detail: { index: this.index } }); } } }; function _sfc_render$z(_ctx, _cache, $props, $setup, $data, $options) { return $data.width ? (vue.openBlock(), vue.createElementBlock( "view", { key: 0, style: vue.normalizeStyle("width:" + $data.width + ";" + ($data.square ? "height:" + $data.width : "")), class: "uni-grid-item" }, [ vue.createElementVNode( "view", { class: vue.normalizeClass([{ "uni-grid-item--border": $data.showBorder, "uni-grid-item--border-top": $data.showBorder && $props.index < $data.column, "uni-highlight": $data.highlight }, "uni-grid-item__box"]), style: vue.normalizeStyle({ "border-right-color": $data.borderColor, "border-bottom-color": $data.borderColor, "border-top-color": $data.borderColor }), onClick: _cache[0] || (_cache[0] = (...args) => $options._onClick && $options._onClick(...args)) }, [ vue.renderSlot(_ctx.$slots, "default", {}, void 0, true) ], 6 /* CLASS, STYLE */ ) ], 4 /* STYLE */ )) : vue.createCommentVNode("v-if", true); } const __easycom_0$7 = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["render", _sfc_render$z], ["__scopeId", "data-v-7a807eb7"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-grid/components/uni-grid-item/uni-grid-item.vue"]]); const ON_SHOW = "onShow"; const ON_HIDE = "onHide"; const ON_LOAD = "onLoad"; const ON_UNLOAD = "onUnload"; const ON_BACK_PRESS = "onBackPress"; const ON_NAVIGATION_BAR_BUTTON_TAP = "onNavigationBarButtonTap"; function formatAppLog(type, filename, ...args) { if (uni.__log__) { uni.__log__(type, filename, ...args); } else { console[type].apply(console, [...args, filename]); } } function resolveEasycom(component, easycom) { return typeof component === "string" ? easycom : component; } const createHook = (lifecycle) => (hook, target = vue.getCurrentInstance()) => { !vue.isInSSRComponentSetup && vue.injectHook(lifecycle, hook, target); }; const onShow = /* @__PURE__ */ createHook(ON_SHOW); const onHide = /* @__PURE__ */ createHook(ON_HIDE); const onLoad = /* @__PURE__ */ createHook(ON_LOAD); const onUnload = /* @__PURE__ */ createHook(ON_UNLOAD); const onBackPress = /* @__PURE__ */ createHook(ON_BACK_PRESS); const onNavigationBarButtonTap = /* @__PURE__ */ createHook(ON_NAVIGATION_BAR_BUTTON_TAP); const _sfc_main$z = { name: "UniGrid", emits: ["change"], props: { // 每列显示个数 column: { type: Number, default: 3 }, // 是否显示边框 showBorder: { type: Boolean, default: true }, // 边框颜色 borderColor: { type: String, default: "#D2D2D2" }, // 是否正方形显示,默认为 true square: { type: Boolean, default: true }, highlight: { type: Boolean, default: true } }, provide() { return { grid: this }; }, data() { const elId = `Uni_${Math.ceil(Math.random() * 1e6).toString(36)}`; return { elId, width: 0 }; }, created() { this.children = []; }, mounted() { this.$nextTick(() => { this.init(); }); }, methods: { init() { setTimeout(() => { this._getSize((width) => { this.children.forEach((item, index) => { item.width = width; }); }); }, 50); }, change(e2) { this.$emit("change", e2); }, _getSize(fn) { uni.createSelectorQuery().in(this).select(`#${this.elId}`).boundingClientRect().exec((ret) => { this.width = parseInt((ret[0].width - 1) / this.column) + "px"; fn(this.width); }); } } }; function _sfc_render$y(_ctx, _cache, $props, $setup, $data, $options) { return vue.openBlock(), vue.createElementBlock("view", { class: "uni-grid-wrap" }, [ vue.createElementVNode("view", { id: $data.elId, ref: "uni-grid", class: vue.normalizeClass(["uni-grid", { "uni-grid--border": $props.showBorder }]), style: vue.normalizeStyle({ "border-left-color": $props.borderColor }) }, [ vue.renderSlot(_ctx.$slots, "default", {}, void 0, true) ], 14, ["id"]) ]); } const __easycom_1$2 = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["render", _sfc_render$y], ["__scopeId", "data-v-07acefee"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-grid/components/uni-grid/uni-grid.vue"]]); const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({ __name: "index", setup(__props, { expose: __expose }) { __expose(); const token = vue.ref(null); const user = vue.ref(null); const list = vue.ref([ // { // url: '/pages/scan/index', // src: '/static/scan_fill.png', // text: '扫描入库' // }, { url: "/pages/instock/index", src: "/static/weigh_fill.png", text: "称重" }, { url: "/pages/warehouseScan/index", src: "/static/houscan.png", text: "仓库扫描" }, { url: "/pages/printer/index", src: "/static/houscan.png", text: "打印" }, { url: "/pages/scanLotno/index", src: "/static/link.png", text: "托盘/批次" }, { url: "/pages/waybillNo/index", src: "/static/link.png", text: "库位绑定" }, { url: "/pages/waybillDeliveryOrder/index", src: "/static/dispatch.png", text: "派送单" } ]); onShow(() => { token.value = uni.getStorageSync("token"); user.value = uni.getStorageSync("user"); formatAppLog("log", "at pages/home/index.vue:60", "show---", { token: token.value, user: user.value }); }); const itemClick = (url) => { formatAppLog("log", "at pages/home/index.vue:63", url); if (token.value) { uni.navigateTo({ url }); } else { uni.navigateTo({ url: "/pages/login/index" }); } }; const change = () => { }; const logout = () => { uni.removeStorageSync("token"); uni.removeStorageSync("user"); token.value = uni.getStorageSync("token"); user.value = uni.getStorageSync("user"); }; const __returned__ = { token, user, list, itemClick, change, logout }; Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true }); return __returned__; } }); function _sfc_render$x(_ctx, _cache, $props, $setup, $data, $options) { const _component_uni_grid_item = resolveEasycom(vue.resolveDynamicComponent("uni-grid-item"), __easycom_0$7); const _component_uni_grid = resolveEasycom(vue.resolveDynamicComponent("uni-grid"), __easycom_1$2); return vue.openBlock(), vue.createElementBlock("view", { class: "warp" }, [ vue.createVNode(_component_uni_grid, { class: "grid", column: 3, "show-border": false, square: false, onChange: $setup.change }, { default: vue.withCtx(() => [ (vue.openBlock(true), vue.createElementBlock( vue.Fragment, null, vue.renderList($setup.list, (item, index) => { return vue.openBlock(), vue.createBlock(_component_uni_grid_item, { index, key: index }, { default: vue.withCtx(() => [ vue.createElementVNode("view", { class: "grid-item-box", onClick: ($event) => $setup.itemClick(item.url) }, [ vue.createElementVNode("image", { class: "image", src: item.src, mode: "aspectFill" }, null, 8, ["src"]), vue.createElementVNode( "text", { class: "text" }, vue.toDisplayString(item.text), 1 /* TEXT */ ) ], 8, ["onClick"]) ]), _: 2 /* DYNAMIC */ }, 1032, ["index"]); }), 128 /* KEYED_FRAGMENT */ )) ]), _: 1 /* STABLE */ }) ]); } const PagesHomeIndex = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["render", _sfc_render$x], ["__file", "E:/HBuilderProjects/YTAPP/pages/home/index.vue"]]); const fontData = [ { "font_class": "arrow-down", "unicode": "" }, { "font_class": "arrow-left", "unicode": "" }, { "font_class": "arrow-right", "unicode": "" }, { "font_class": "arrow-up", "unicode": "" }, { "font_class": "auth", "unicode": "" }, { "font_class": "auth-filled", "unicode": "" }, { "font_class": "back", "unicode": "" }, { "font_class": "bars", "unicode": "" }, { "font_class": "calendar", "unicode": "" }, { "font_class": "calendar-filled", "unicode": "" }, { "font_class": "camera", "unicode": "" }, { "font_class": "camera-filled", "unicode": "" }, { "font_class": "cart", "unicode": "" }, { "font_class": "cart-filled", "unicode": "" }, { "font_class": "chat", "unicode": "" }, { "font_class": "chat-filled", "unicode": "" }, { "font_class": "chatboxes", "unicode": "" }, { "font_class": "chatboxes-filled", "unicode": "" }, { "font_class": "chatbubble", "unicode": "" }, { "font_class": "chatbubble-filled", "unicode": "" }, { "font_class": "checkbox", "unicode": "" }, { "font_class": "checkbox-filled", "unicode": "" }, { "font_class": "checkmarkempty", "unicode": "" }, { "font_class": "circle", "unicode": "" }, { "font_class": "circle-filled", "unicode": "" }, { "font_class": "clear", "unicode": "" }, { "font_class": "close", "unicode": "" }, { "font_class": "closeempty", "unicode": "" }, { "font_class": "cloud-download", "unicode": "" }, { "font_class": "cloud-download-filled", "unicode": "" }, { "font_class": "cloud-upload", "unicode": "" }, { "font_class": "cloud-upload-filled", "unicode": "" }, { "font_class": "color", "unicode": "" }, { "font_class": "color-filled", "unicode": "" }, { "font_class": "compose", "unicode": "" }, { "font_class": "contact", "unicode": "" }, { "font_class": "contact-filled", "unicode": "" }, { "font_class": "down", "unicode": "" }, { "font_class": "bottom", "unicode": "" }, { "font_class": "download", "unicode": "" }, { "font_class": "download-filled", "unicode": "" }, { "font_class": "email", "unicode": "" }, { "font_class": "email-filled", "unicode": "" }, { "font_class": "eye", "unicode": "" }, { "font_class": "eye-filled", "unicode": "" }, { "font_class": "eye-slash", "unicode": "" }, { "font_class": "eye-slash-filled", "unicode": "" }, { "font_class": "fire", "unicode": "" }, { "font_class": "fire-filled", "unicode": "" }, { "font_class": "flag", "unicode": "" }, { "font_class": "flag-filled", "unicode": "" }, { "font_class": "folder-add", "unicode": "" }, { "font_class": "folder-add-filled", "unicode": "" }, { "font_class": "font", "unicode": "" }, { "font_class": "forward", "unicode": "" }, { "font_class": "gear", "unicode": "" }, { "font_class": "gear-filled", "unicode": "" }, { "font_class": "gift", "unicode": "" }, { "font_class": "gift-filled", "unicode": "" }, { "font_class": "hand-down", "unicode": "" }, { "font_class": "hand-down-filled", "unicode": "" }, { "font_class": "hand-up", "unicode": "" }, { "font_class": "hand-up-filled", "unicode": "" }, { "font_class": "headphones", "unicode": "" }, { "font_class": "heart", "unicode": "" }, { "font_class": "heart-filled", "unicode": "" }, { "font_class": "help", "unicode": "" }, { "font_class": "help-filled", "unicode": "" }, { "font_class": "home", "unicode": "" }, { "font_class": "home-filled", "unicode": "" }, { "font_class": "image", "unicode": "" }, { "font_class": "image-filled", "unicode": "" }, { "font_class": "images", "unicode": "" }, { "font_class": "images-filled", "unicode": "" }, { "font_class": "info", "unicode": "" }, { "font_class": "info-filled", "unicode": "" }, { "font_class": "left", "unicode": "" }, { "font_class": "link", "unicode": "" }, { "font_class": "list", "unicode": "" }, { "font_class": "location", "unicode": "" }, { "font_class": "location-filled", "unicode": "" }, { "font_class": "locked", "unicode": "" }, { "font_class": "locked-filled", "unicode": "" }, { "font_class": "loop", "unicode": "" }, { "font_class": "mail-open", "unicode": "" }, { "font_class": "mail-open-filled", "unicode": "" }, { "font_class": "map", "unicode": "" }, { "font_class": "map-filled", "unicode": "" }, { "font_class": "map-pin", "unicode": "" }, { "font_class": "map-pin-ellipse", "unicode": "" }, { "font_class": "medal", "unicode": "" }, { "font_class": "medal-filled", "unicode": "" }, { "font_class": "mic", "unicode": "" }, { "font_class": "mic-filled", "unicode": "" }, { "font_class": "micoff", "unicode": "" }, { "font_class": "micoff-filled", "unicode": "" }, { "font_class": "minus", "unicode": "" }, { "font_class": "minus-filled", "unicode": "" }, { "font_class": "more", "unicode": "" }, { "font_class": "more-filled", "unicode": "" }, { "font_class": "navigate", "unicode": "" }, { "font_class": "navigate-filled", "unicode": "" }, { "font_class": "notification", "unicode": "" }, { "font_class": "notification-filled", "unicode": "" }, { "font_class": "paperclip", "unicode": "" }, { "font_class": "paperplane", "unicode": "" }, { "font_class": "paperplane-filled", "unicode": "" }, { "font_class": "person", "unicode": "" }, { "font_class": "person-filled", "unicode": "" }, { "font_class": "personadd", "unicode": "" }, { "font_class": "personadd-filled", "unicode": "" }, { "font_class": "personadd-filled-copy", "unicode": "" }, { "font_class": "phone", "unicode": "" }, { "font_class": "phone-filled", "unicode": "" }, { "font_class": "plus", "unicode": "" }, { "font_class": "plus-filled", "unicode": "" }, { "font_class": "plusempty", "unicode": "" }, { "font_class": "pulldown", "unicode": "" }, { "font_class": "pyq", "unicode": "" }, { "font_class": "qq", "unicode": "" }, { "font_class": "redo", "unicode": "" }, { "font_class": "redo-filled", "unicode": "" }, { "font_class": "refresh", "unicode": "" }, { "font_class": "refresh-filled", "unicode": "" }, { "font_class": "refreshempty", "unicode": "" }, { "font_class": "reload", "unicode": "" }, { "font_class": "right", "unicode": "" }, { "font_class": "scan", "unicode": "" }, { "font_class": "search", "unicode": "" }, { "font_class": "settings", "unicode": "" }, { "font_class": "settings-filled", "unicode": "" }, { "font_class": "shop", "unicode": "" }, { "font_class": "shop-filled", "unicode": "" }, { "font_class": "smallcircle", "unicode": "" }, { "font_class": "smallcircle-filled", "unicode": "" }, { "font_class": "sound", "unicode": "" }, { "font_class": "sound-filled", "unicode": "" }, { "font_class": "spinner-cycle", "unicode": "" }, { "font_class": "staff", "unicode": "" }, { "font_class": "staff-filled", "unicode": "" }, { "font_class": "star", "unicode": "" }, { "font_class": "star-filled", "unicode": "" }, { "font_class": "starhalf", "unicode": "" }, { "font_class": "trash", "unicode": "" }, { "font_class": "trash-filled", "unicode": "" }, { "font_class": "tune", "unicode": "" }, { "font_class": "tune-filled", "unicode": "" }, { "font_class": "undo", "unicode": "" }, { "font_class": "undo-filled", "unicode": "" }, { "font_class": "up", "unicode": "" }, { "font_class": "top", "unicode": "" }, { "font_class": "upload", "unicode": "" }, { "font_class": "upload-filled", "unicode": "" }, { "font_class": "videocam", "unicode": "" }, { "font_class": "videocam-filled", "unicode": "" }, { "font_class": "vip", "unicode": "" }, { "font_class": "vip-filled", "unicode": "" }, { "font_class": "wallet", "unicode": "" }, { "font_class": "wallet-filled", "unicode": "" }, { "font_class": "weibo", "unicode": "" }, { "font_class": "weixin", "unicode": "" } ]; const getVal = (val) => { const reg = /^[0-9]*$/g; return typeof val === "number" || reg.test(val) ? val + "px" : val; }; const _sfc_main$x = { name: "UniIcons", emits: ["click"], props: { type: { type: String, default: "" }, color: { type: String, default: "#333333" }, size: { type: [Number, String], default: 16 }, customPrefix: { type: String, default: "" }, fontFamily: { type: String, default: "" } }, data() { return { icons: fontData }; }, computed: { unicode() { let code = this.icons.find((v2) => v2.font_class === this.type); if (code) { return code.unicode; } return ""; }, iconSize() { return getVal(this.size); }, styleObj() { if (this.fontFamily !== "") { return `color: ${this.color}; font-size: ${this.iconSize}; font-family: ${this.fontFamily};`; } return `color: ${this.color}; font-size: ${this.iconSize};`; } }, methods: { _onClick() { this.$emit("click"); } } }; function _sfc_render$w(_ctx, _cache, $props, $setup, $data, $options) { return vue.openBlock(), vue.createElementBlock( "text", { style: vue.normalizeStyle($options.styleObj), class: vue.normalizeClass(["uni-icons", ["uniui-" + $props.type, $props.customPrefix, $props.customPrefix ? $props.type : ""]]), onClick: _cache[0] || (_cache[0] = (...args) => $options._onClick && $options._onClick(...args)) }, [ vue.renderSlot(_ctx.$slots, "default", {}, void 0, true) ], 6 /* CLASS, STYLE */ ); } const __easycom_4 = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["render", _sfc_render$w], ["__scopeId", "data-v-d31e1c47"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-icons/components/uni-icons/uni-icons.vue"]]); function obj2strClass(obj) { let classess = ""; for (let key in obj) { const val = obj[key]; if (val) { classess += `${key} `; } } return classess; } function obj2strStyle(obj) { let style = ""; for (let key in obj) { const val = obj[key]; style += `${key}:${val};`; } return style; } const _sfc_main$w = { name: "uni-easyinput", emits: ["click", "iconClick", "update:modelValue", "input", "focus", "blur", "confirm", "clear", "eyes", "change", "keyboardheightchange"], model: { prop: "modelValue", event: "update:modelValue" }, options: { virtualHost: true }, inject: { form: { from: "uniForm", default: null }, formItem: { from: "uniFormItem", default: null } }, props: { name: String, value: [Number, String], modelValue: [Number, String], type: { type: String, default: "text" }, clearable: { type: Boolean, default: true }, autoHeight: { type: Boolean, default: false }, placeholder: { type: String, default: " " }, placeholderStyle: String, focus: { type: Boolean, default: false }, disabled: { type: Boolean, default: false }, maxlength: { type: [Number, String], default: 140 }, confirmType: { type: String, default: "done" }, clearSize: { type: [Number, String], default: 24 }, inputBorder: { type: Boolean, default: true }, prefixIcon: { type: String, default: "" }, suffixIcon: { type: String, default: "" }, trim: { type: [Boolean, String], default: false }, cursorSpacing: { type: Number, default: 0 }, passwordIcon: { type: Boolean, default: true }, primaryColor: { type: String, default: "#2979ff" }, styles: { type: Object, default() { return { color: "#333", backgroundColor: "#fff", disableColor: "#F7F6F6", borderColor: "#e5e5e5" }; } }, errorMessage: { type: [String, Boolean], default: "" } }, data() { return { focused: false, val: "", showMsg: "", border: false, isFirstBorder: false, showClearIcon: false, showPassword: false, focusShow: false, localMsg: "", isEnter: false // 用于判断当前是否是使用回车操作 }; }, computed: { // 输入框内是否有值 isVal() { const val = this.val; if (val || val === 0) { return true; } return false; }, msg() { return this.localMsg || this.errorMessage; }, // 因为uniapp的input组件的maxlength组件必须要数值,这里转为数值,用户可以传入字符串数值 inputMaxlength() { return Number(this.maxlength); }, // 处理外层样式的style boxStyle() { return `color:${this.inputBorder && this.msg ? "#e43d33" : this.styles.color};`; }, // input 内容的类和样式处理 inputContentClass() { return obj2strClass({ "is-input-border": this.inputBorder, "is-input-error-border": this.inputBorder && this.msg, "is-textarea": this.type === "textarea", "is-disabled": this.disabled, "is-focused": this.focusShow }); }, inputContentStyle() { const focusColor = this.focusShow ? this.primaryColor : this.styles.borderColor; const borderColor = this.inputBorder && this.msg ? "#dd524d" : focusColor; return obj2strStyle({ "border-color": borderColor || "#e5e5e5", "background-color": this.disabled ? this.styles.disableColor : this.styles.backgroundColor }); }, // input右侧样式 inputStyle() { const paddingRight = this.type === "password" || this.clearable || this.prefixIcon ? "" : "10px"; return obj2strStyle({ "padding-right": paddingRight, "padding-left": this.prefixIcon ? "" : "10px" }); } }, watch: { value(newVal) { this.val = newVal; }, modelValue(newVal) { this.val = newVal; }, focus(newVal) { this.$nextTick(() => { this.focused = this.focus; this.focusShow = this.focus; }); } }, created() { this.init(); if (this.form && this.formItem) { this.$watch("formItem.errMsg", (newVal) => { this.localMsg = newVal; }); } }, mounted() { this.$nextTick(() => { this.focused = this.focus; this.focusShow = this.focus; }); }, methods: { /** * 初始化变量值 */ init() { if (this.value || this.value === 0) { this.val = this.value; } else if (this.modelValue || this.modelValue === 0 || this.modelValue === "") { this.val = this.modelValue; } else { this.val = null; } }, /** * 点击图标时触发 * @param {Object} type */ onClickIcon(type) { this.$emit("iconClick", type); }, /** * 显示隐藏内容,密码框时生效 */ onEyes() { this.showPassword = !this.showPassword; this.$emit("eyes", this.showPassword); }, /** * 输入时触发 * @param {Object} event */ onInput(event) { let value = event.detail.value; if (this.trim) { if (typeof this.trim === "boolean" && this.trim) { value = this.trimStr(value); } if (typeof this.trim === "string") { value = this.trimStr(value, this.trim); } } if (this.errMsg) this.errMsg = ""; this.val = value; this.$emit("input", value); this.$emit("update:modelValue", value); }, /** * 外部调用方法 * 获取焦点时触发 * @param {Object} event */ onFocus() { this.$nextTick(() => { this.focused = true; }); this.$emit("focus", null); }, _Focus(event) { this.focusShow = true; this.$emit("focus", event); }, /** * 外部调用方法 * 失去焦点时触发 * @param {Object} event */ onBlur() { this.focused = false; this.$emit("focus", null); }, _Blur(event) { event.detail.value; this.focusShow = false; this.$emit("blur", event); if (this.isEnter === false) { this.$emit("change", this.val); } if (this.form && this.formItem) { const { validateTrigger } = this.form; if (validateTrigger === "blur") { this.formItem.onFieldChange(); } } }, /** * 按下键盘的发送键 * @param {Object} e */ onConfirm(e2) { this.$emit("confirm", this.val); this.isEnter = true; this.$emit("change", this.val); this.$nextTick(() => { this.isEnter = false; }); }, /** * 清理内容 * @param {Object} event */ onClear(event) { this.val = ""; this.$emit("input", ""); this.$emit("update:modelValue", ""); this.$emit("clear"); }, /** * 键盘高度发生变化的时候触发此事件 * 兼容性:微信小程序2.7.0+、App 3.1.0+ * @param {Object} event */ onkeyboardheightchange(event) { this.$emit("keyboardheightchange", event); }, /** * 去除空格 */ trimStr(str, pos = "both") { if (pos === "both") { return str.trim(); } else if (pos === "left") { return str.trimLeft(); } else if (pos === "right") { return str.trimRight(); } else if (pos === "start") { return str.trimStart(); } else if (pos === "end") { return str.trimEnd(); } else if (pos === "all") { return str.replace(/\s+/g, ""); } else if (pos === "none") { return str; } return str; } } }; function _sfc_render$v(_ctx, _cache, $props, $setup, $data, $options) { const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4); return vue.openBlock(), vue.createElementBlock( "view", { class: vue.normalizeClass(["uni-easyinput", { "uni-easyinput-error": $options.msg }]), style: vue.normalizeStyle($options.boxStyle) }, [ vue.createElementVNode( "view", { class: vue.normalizeClass(["uni-easyinput__content", $options.inputContentClass]), style: vue.normalizeStyle($options.inputContentStyle) }, [ $props.prefixIcon ? (vue.openBlock(), vue.createBlock(_component_uni_icons, { key: 0, class: "content-clear-icon", type: $props.prefixIcon, color: "#c0c4cc", onClick: _cache[0] || (_cache[0] = ($event) => $options.onClickIcon("prefix")), size: "22" }, null, 8, ["type"])) : vue.createCommentVNode("v-if", true), $props.type === "textarea" ? (vue.openBlock(), vue.createElementBlock("textarea", { key: 1, class: vue.normalizeClass(["uni-easyinput__content-textarea", { "input-padding": $props.inputBorder }]), name: $props.name, value: $data.val, placeholder: $props.placeholder, placeholderStyle: $props.placeholderStyle, disabled: $props.disabled, "placeholder-class": "uni-easyinput__placeholder-class", maxlength: $options.inputMaxlength, focus: $data.focused, autoHeight: $props.autoHeight, "cursor-spacing": $props.cursorSpacing, onInput: _cache[1] || (_cache[1] = (...args) => $options.onInput && $options.onInput(...args)), onBlur: _cache[2] || (_cache[2] = (...args) => $options._Blur && $options._Blur(...args)), onFocus: _cache[3] || (_cache[3] = (...args) => $options._Focus && $options._Focus(...args)), onConfirm: _cache[4] || (_cache[4] = (...args) => $options.onConfirm && $options.onConfirm(...args)), onKeyboardheightchange: _cache[5] || (_cache[5] = (...args) => $options.onkeyboardheightchange && $options.onkeyboardheightchange(...args)) }, null, 42, ["name", "value", "placeholder", "placeholderStyle", "disabled", "maxlength", "focus", "autoHeight", "cursor-spacing"])) : (vue.openBlock(), vue.createElementBlock("input", { key: 2, type: $props.type === "password" ? "text" : $props.type, class: "uni-easyinput__content-input", style: vue.normalizeStyle($options.inputStyle), name: $props.name, value: $data.val, password: !$data.showPassword && $props.type === "password", placeholder: $props.placeholder, placeholderStyle: $props.placeholderStyle, "placeholder-class": "uni-easyinput__placeholder-class", disabled: $props.disabled, maxlength: $options.inputMaxlength, focus: $data.focused, confirmType: $props.confirmType, "cursor-spacing": $props.cursorSpacing, onFocus: _cache[6] || (_cache[6] = (...args) => $options._Focus && $options._Focus(...args)), onBlur: _cache[7] || (_cache[7] = (...args) => $options._Blur && $options._Blur(...args)), onInput: _cache[8] || (_cache[8] = (...args) => $options.onInput && $options.onInput(...args)), onConfirm: _cache[9] || (_cache[9] = (...args) => $options.onConfirm && $options.onConfirm(...args)), onKeyboardheightchange: _cache[10] || (_cache[10] = (...args) => $options.onkeyboardheightchange && $options.onkeyboardheightchange(...args)) }, null, 44, ["type", "name", "value", "password", "placeholder", "placeholderStyle", "disabled", "maxlength", "focus", "confirmType", "cursor-spacing"])), $props.type === "password" && $props.passwordIcon ? (vue.openBlock(), vue.createElementBlock( vue.Fragment, { key: 3 }, [ vue.createCommentVNode(" 开启密码时显示小眼睛 "), $options.isVal ? (vue.openBlock(), vue.createBlock(_component_uni_icons, { key: 0, class: vue.normalizeClass(["content-clear-icon", { "is-textarea-icon": $props.type === "textarea" }]), type: $data.showPassword ? "eye-slash-filled" : "eye-filled", size: 22, color: $data.focusShow ? $props.primaryColor : "#c0c4cc", onClick: $options.onEyes }, null, 8, ["class", "type", "color", "onClick"])) : vue.createCommentVNode("v-if", true) ], 64 /* STABLE_FRAGMENT */ )) : $props.suffixIcon ? (vue.openBlock(), vue.createElementBlock( vue.Fragment, { key: 4 }, [ $props.suffixIcon ? (vue.openBlock(), vue.createBlock(_component_uni_icons, { key: 0, class: "content-clear-icon", type: $props.suffixIcon, color: "#c0c4cc", onClick: _cache[11] || (_cache[11] = ($event) => $options.onClickIcon("suffix")), size: "22" }, null, 8, ["type"])) : vue.createCommentVNode("v-if", true) ], 64 /* STABLE_FRAGMENT */ )) : (vue.openBlock(), vue.createElementBlock( vue.Fragment, { key: 5 }, [ $props.clearable && $options.isVal && !$props.disabled && $props.type !== "textarea" ? (vue.openBlock(), vue.createBlock(_component_uni_icons, { key: 0, class: vue.normalizeClass(["content-clear-icon", { "is-textarea-icon": $props.type === "textarea" }]), type: "clear", size: $props.clearSize, color: $options.msg ? "#dd524d" : $data.focusShow ? $props.primaryColor : "#c0c4cc", onClick: $options.onClear }, null, 8, ["class", "size", "color", "onClick"])) : vue.createCommentVNode("v-if", true) ], 64 /* STABLE_FRAGMENT */ )), vue.renderSlot(_ctx.$slots, "right", {}, void 0, true) ], 6 /* CLASS, STYLE */ ) ], 6 /* CLASS, STYLE */ ); } const __easycom_1$1 = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["render", _sfc_render$v], ["__scopeId", "data-v-09fd5285"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue"]]); const _sfc_main$v = { name: "uniFormsItem", options: { virtualHost: true }, provide() { return { uniFormItem: this }; }, inject: { form: { from: "uniForm", default: null } }, props: { // 表单校验规则 rules: { type: Array, default() { return null; } }, // 表单域的属性名,在使用校验规则时必填 name: { type: [String, Array], default: "" }, required: { type: Boolean, default: false }, label: { type: String, default: "" }, // label的宽度 labelWidth: { type: [String, Number], default: "" }, // label 居中方式,默认 left 取值 left/center/right labelAlign: { type: String, default: "" }, // 强制显示错误信息 errorMessage: { type: [String, Boolean], default: "" }, // 1.4.0 弃用,统一使用 form 的校验时机 // validateTrigger: { // type: String, // default: '' // }, // 1.4.0 弃用,统一使用 form 的label 位置 // labelPosition: { // type: String, // default: '' // }, // 1.4.0 以下属性已经废弃,请使用 #label 插槽代替 leftIcon: String, iconColor: { type: String, default: "#606266" } }, data() { return { errMsg: "", userRules: null, localLabelAlign: "left", localLabelWidth: "70px", localLabelPos: "left", border: false, isFirstBorder: false }; }, computed: { // 处理错误信息 msg() { return this.errorMessage || this.errMsg; } }, watch: { // 规则发生变化通知子组件更新 "form.formRules"(val) { this.init(); }, "form.labelWidth"(val) { this.localLabelWidth = this._labelWidthUnit(val); }, "form.labelPosition"(val) { this.localLabelPos = this._labelPosition(); }, "form.labelAlign"(val) { } }, created() { this.init(true); if (this.name && this.form) { this.$watch( () => { const val = this.form._getDataValue(this.name, this.form.localData); return val; }, (value, oldVal) => { const isEqual2 = this.form._isEqual(value, oldVal); if (!isEqual2) { const val = this.itemSetValue(value); this.onFieldChange(val, false); } }, { immediate: false } ); } }, unmounted() { this.__isUnmounted = true; this.unInit(); }, methods: { /** * 外部调用方法 * 设置规则 ,主要用于小程序自定义检验规则 * @param {Array} rules 规则源数据 */ setRules(rules = null) { this.userRules = rules; this.init(false); }, // 兼容老版本表单组件 setValue() { }, /** * 外部调用方法 * 校验数据 * @param {any} value 需要校验的数据 * @param {boolean} 是否立即校验 * @return {Array|null} 校验内容 */ async onFieldChange(value, formtrigger = true) { const { formData, localData, errShowType, validateCheck, validateTrigger, _isRequiredField, _realName } = this.form; const name = _realName(this.name); if (!value) { value = this.form.formData[name]; } const ruleLen = this.itemRules.rules && this.itemRules.rules.length; if (!this.validator || !ruleLen || ruleLen === 0) return; const isRequiredField2 = _isRequiredField(this.itemRules.rules || []); let result = null; if (validateTrigger === "bind" || formtrigger) { result = await this.validator.validateUpdate( { [name]: value }, formData ); if (!isRequiredField2 && (value === void 0 || value === "")) { result = null; } if (result && result.errorMessage) { if (errShowType === "undertext") { this.errMsg = !result ? "" : result.errorMessage; } if (errShowType === "toast") { uni.showToast({ title: result.errorMessage || "校验错误", icon: "none" }); } if (errShowType === "modal") { uni.showModal({ title: "提示", content: result.errorMessage || "校验错误" }); } } else { this.errMsg = ""; } validateCheck(result ? result : null); } else { this.errMsg = ""; } return result ? result : null; }, /** * 初始组件数据 */ init(type = false) { const { validator, formRules, childrens, formData, localData, _realName, labelWidth, _getDataValue, _setDataValue } = this.form || {}; this.localLabelAlign = this._justifyContent(); this.localLabelWidth = this._labelWidthUnit(labelWidth); this.localLabelPos = this._labelPosition(); this.form && type && childrens.push(this); if (!validator || !formRules) return; if (!this.form.isFirstBorder) { this.form.isFirstBorder = true; this.isFirstBorder = true; } if (this.group) { if (!this.group.isFirstBorder) { this.group.isFirstBorder = true; this.isFirstBorder = true; } } this.border = this.form.border; const name = _realName(this.name); const itemRule = this.userRules || this.rules; if (typeof formRules === "object" && itemRule) { formRules[name] = { rules: itemRule }; validator.updateSchema(formRules); } const itemRules = formRules[name] || {}; this.itemRules = itemRules; this.validator = validator; this.itemSetValue(_getDataValue(this.name, localData)); }, unInit() { if (this.form) { const { childrens, formData, _realName } = this.form; childrens.forEach((item, index) => { if (item === this) { this.form.childrens.splice(index, 1); delete formData[_realName(item.name)]; } }); } }, // 设置item 的值 itemSetValue(value) { const name = this.form._realName(this.name); const rules = this.itemRules.rules || []; const val = this.form._getValue(name, value, rules); this.form._setDataValue(name, this.form.formData, val); return val; }, /** * 移除该表单项的校验结果 */ clearValidate() { this.errMsg = ""; }, // 是否显示星号 _isRequired() { return this.required; }, // 处理对齐方式 _justifyContent() { if (this.form) { const { labelAlign } = this.form; let labelAli = this.labelAlign ? this.labelAlign : labelAlign; if (labelAli === "left") return "flex-start"; if (labelAli === "center") return "center"; if (labelAli === "right") return "flex-end"; } return "flex-start"; }, // 处理 label宽度单位 ,继承父元素的值 _labelWidthUnit(labelWidth) { return this.num2px(this.labelWidth ? this.labelWidth : labelWidth || (this.label ? 70 : "auto")); }, // 处理 label 位置 _labelPosition() { if (this.form) return this.form.labelPosition || "left"; return "left"; }, /** * 触发时机 * @param {Object} rule 当前规则内时机 * @param {Object} itemRlue 当前组件时机 * @param {Object} parentRule 父组件时机 */ isTrigger(rule, itemRlue, parentRule) { if (rule === "submit" || !rule) { if (rule === void 0) { if (itemRlue !== "bind") { if (!itemRlue) { return parentRule === "" ? "bind" : "submit"; } return "submit"; } return "bind"; } return "submit"; } return "bind"; }, num2px(num) { if (typeof num === "number") { return `${num}px`; } return num; } } }; function _sfc_render$u(_ctx, _cache, $props, $setup, $data, $options) { return vue.openBlock(), vue.createElementBlock( "view", { class: vue.normalizeClass(["uni-forms-item", ["is-direction-" + $data.localLabelPos, $data.border ? "uni-forms-item--border" : "", $data.border && $data.isFirstBorder ? "is-first-border" : ""]]) }, [ vue.renderSlot(_ctx.$slots, "label", {}, () => [ vue.createElementVNode( "view", { class: vue.normalizeClass(["uni-forms-item__label", { "no-label": !$props.label && !$props.required }]), style: vue.normalizeStyle({ width: $data.localLabelWidth, justifyContent: $data.localLabelAlign }) }, [ $props.required ? (vue.openBlock(), vue.createElementBlock("text", { key: 0, class: "is-required" }, "*")) : vue.createCommentVNode("v-if", true), vue.createElementVNode( "text", null, vue.toDisplayString($props.label), 1 /* TEXT */ ) ], 6 /* CLASS, STYLE */ ) ], true), vue.createElementVNode("view", { class: "uni-forms-item__content" }, [ vue.renderSlot(_ctx.$slots, "default", {}, void 0, true), vue.createElementVNode( "view", { class: vue.normalizeClass(["uni-forms-item__error", { "msg--active": $options.msg }]) }, [ vue.createElementVNode( "text", null, vue.toDisplayString($options.msg), 1 /* TEXT */ ) ], 2 /* CLASS */ ) ]) ], 2 /* CLASS */ ); } const __easycom_2$1 = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["render", _sfc_render$u], ["__scopeId", "data-v-462874dd"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue"]]); const pages = [ { path: "pages/home/index", style: { navigationBarTitleText: "英途仓库" } }, { path: "pages/instock/index", style: { navigationBarTitleText: "称重", "app-plus": { bounce: "none", titleNView: { buttons: [ { fontSize: "16px", text: "历史" } ], backButton: { background: "#00FF00" } } } } }, { path: "pages/instock/instockLog", style: { navigationBarTitleText: "录入历史" } }, { path: "pages/profile/index", style: { navigationBarTitleText: "我的" } }, { path: "pages/login/index", style: { navigationBarTitleText: "登录" } }, { path: "pages/order/index", style: { navigationBarTitleText: "ORDER" } }, { path: "pages/scanLotno/index", style: { navigationBarTitleText: "托盘/批次", "app-plus": { bounce: "none", titleNView: { buttons: [ { fontSize: "16px", text: "历史" } ], backButton: { background: "#00FF00" } } } } }, { path: "pages/scanLotno/lotnoLog", style: { navigationBarTitleText: "录入历史" } }, { path: "pages/scanLotno/waybillsList", style: { navigationBarTitleText: "运单列表" } }, { path: "pages/warehouseScan/index", style: { navigationBarTitleText: "仓库扫描", "app-plus": { bounce: "none", titleNView: { buttons: [ { fontSize: "16px", text: "历史" } ], backButton: { background: "#00FF00" } } } } }, { path: "pages/warehouseScan/warehouseLog", style: { navigationBarTitleText: "录入历史" } }, { path: "pages/waybillNo/index", style: { navigationBarTitleText: "库位绑定", "app-plus": { bounce: "none", titleNView: { buttons: [ { fontSize: "16px", text: "历史" } ], backButton: { background: "#00FF00" } } } } }, { path: "pages/waybillNo/waybillNoLog", style: { navigationBarTitleText: "录入历史" } }, { path: "pages/waybillDeliveryOrder/index", style: { navigationBarTitleText: "派送单", "app-plus": { bounce: "none", titleNView: { buttons: [ { fontSize: "16px", text: "筛选" } ], backButton: { background: "#00FF00" } } } } }, { path: "pages/waybillDeliveryOrder/orderInfo", style: { navigationBarTitleText: "派送详情" } }, { path: "pages/printer/index", style: { navigationBarTitleText: "打印" } } ]; const globalStyle = { navigationBarTextStyle: "black", navigationBarTitleText: "uni-app", navigationBarBackgroundColor: "#F8F8F8", backgroundColor: "#F8F8F8" }; const tabBar = { color: "#7A7E83", selectedColor: "#007AFF", borderStyle: "black", backgroundColor: "#F8F8F8", list: [ { pagePath: "pages/home/index", iconPath: "static/home.png", selectedIconPath: "static/home_fill.png", text: "首页" }, { pagePath: "pages/profile/index", iconPath: "static/people.png", selectedIconPath: "static/people_fill.png", text: "我的" } ] }; const uniIdRouter = {}; const e = { pages, globalStyle, tabBar, uniIdRouter }; var define_process_env_UNI_SECURE_NETWORK_CONFIG_default = []; function t$2(e2) { return e2 && e2.__esModule && Object.prototype.hasOwnProperty.call(e2, "default") ? e2.default : e2; } function n(e2, t2, n2) { return e2(n2 = { path: t2, exports: {}, require: function(e3, t3) { return function() { throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs"); }(null == t3 && n2.path); } }, n2.exports), n2.exports; } var s = n(function(e2, t2) { var n2; e2.exports = (n2 = n2 || function(e3, t3) { var n3 = Object.create || /* @__PURE__ */ function() { function e4() { } return function(t4) { var n4; return e4.prototype = t4, n4 = new e4(), e4.prototype = null, n4; }; }(), s2 = {}, r2 = s2.lib = {}, i2 = r2.Base = { extend: function(e4) { var t4 = n3(this); return e4 && t4.mixIn(e4), t4.hasOwnProperty("init") && this.init !== t4.init || (t4.init = function() { t4.$super.init.apply(this, arguments); }), t4.init.prototype = t4, t4.$super = this, t4; }, create: function() { var e4 = this.extend(); return e4.init.apply(e4, arguments), e4; }, init: function() { }, mixIn: function(e4) { for (var t4 in e4) e4.hasOwnProperty(t4) && (this[t4] = e4[t4]); e4.hasOwnProperty("toString") && (this.toString = e4.toString); }, clone: function() { return this.init.prototype.extend(this); } }, o2 = r2.WordArray = i2.extend({ init: function(e4, n4) { e4 = this.words = e4 || [], this.sigBytes = n4 != t3 ? n4 : 4 * e4.length; }, toString: function(e4) { return (e4 || c2).stringify(this); }, concat: function(e4) { var t4 = this.words, n4 = e4.words, s3 = this.sigBytes, r3 = e4.sigBytes; if (this.clamp(), s3 % 4) for (var i3 = 0; i3 < r3; i3++) { var o3 = n4[i3 >>> 2] >>> 24 - i3 % 4 * 8 & 255; t4[s3 + i3 >>> 2] |= o3 << 24 - (s3 + i3) % 4 * 8; } else for (i3 = 0; i3 < r3; i3 += 4) t4[s3 + i3 >>> 2] = n4[i3 >>> 2]; return this.sigBytes += r3, this; }, clamp: function() { var t4 = this.words, n4 = this.sigBytes; t4[n4 >>> 2] &= 4294967295 << 32 - n4 % 4 * 8, t4.length = e3.ceil(n4 / 4); }, clone: function() { var e4 = i2.clone.call(this); return e4.words = this.words.slice(0), e4; }, random: function(t4) { for (var n4, s3 = [], r3 = function(t5) { t5 = t5; var n5 = 987654321, s4 = 4294967295; return function() { var r4 = ((n5 = 36969 * (65535 & n5) + (n5 >> 16) & s4) << 16) + (t5 = 18e3 * (65535 & t5) + (t5 >> 16) & s4) & s4; return r4 /= 4294967296, (r4 += 0.5) * (e3.random() > 0.5 ? 1 : -1); }; }, i3 = 0; i3 < t4; i3 += 4) { var a3 = r3(4294967296 * (n4 || e3.random())); n4 = 987654071 * a3(), s3.push(4294967296 * a3() | 0); } return new o2.init(s3, t4); } }), a2 = s2.enc = {}, c2 = a2.Hex = { stringify: function(e4) { for (var t4 = e4.words, n4 = e4.sigBytes, s3 = [], r3 = 0; r3 < n4; r3++) { var i3 = t4[r3 >>> 2] >>> 24 - r3 % 4 * 8 & 255; s3.push((i3 >>> 4).toString(16)), s3.push((15 & i3).toString(16)); } return s3.join(""); }, parse: function(e4) { for (var t4 = e4.length, n4 = [], s3 = 0; s3 < t4; s3 += 2) n4[s3 >>> 3] |= parseInt(e4.substr(s3, 2), 16) << 24 - s3 % 8 * 4; return new o2.init(n4, t4 / 2); } }, u2 = a2.Latin1 = { stringify: function(e4) { for (var t4 = e4.words, n4 = e4.sigBytes, s3 = [], r3 = 0; r3 < n4; r3++) { var i3 = t4[r3 >>> 2] >>> 24 - r3 % 4 * 8 & 255; s3.push(String.fromCharCode(i3)); } return s3.join(""); }, parse: function(e4) { for (var t4 = e4.length, n4 = [], s3 = 0; s3 < t4; s3++) n4[s3 >>> 2] |= (255 & e4.charCodeAt(s3)) << 24 - s3 % 4 * 8; return new o2.init(n4, t4); } }, l2 = a2.Utf8 = { stringify: function(e4) { try { return decodeURIComponent(escape(u2.stringify(e4))); } catch (e5) { throw new Error("Malformed UTF-8 data"); } }, parse: function(e4) { return u2.parse(unescape(encodeURIComponent(e4))); } }, h2 = r2.BufferedBlockAlgorithm = i2.extend({ reset: function() { this._data = new o2.init(), this._nDataBytes = 0; }, _append: function(e4) { "string" == typeof e4 && (e4 = l2.parse(e4)), this._data.concat(e4), this._nDataBytes += e4.sigBytes; }, _process: function(t4) { var n4 = this._data, s3 = n4.words, r3 = n4.sigBytes, i3 = this.blockSize, a3 = r3 / (4 * i3), c3 = (a3 = t4 ? e3.ceil(a3) : e3.max((0 | a3) - this._minBufferSize, 0)) * i3, u3 = e3.min(4 * c3, r3); if (c3) { for (var l3 = 0; l3 < c3; l3 += i3) this._doProcessBlock(s3, l3); var h3 = s3.splice(0, c3); n4.sigBytes -= u3; } return new o2.init(h3, u3); }, clone: function() { var e4 = i2.clone.call(this); return e4._data = this._data.clone(), e4; }, _minBufferSize: 0 }); r2.Hasher = h2.extend({ cfg: i2.extend(), init: function(e4) { this.cfg = this.cfg.extend(e4), this.reset(); }, reset: function() { h2.reset.call(this), this._doReset(); }, update: function(e4) { return this._append(e4), this._process(), this; }, finalize: function(e4) { return e4 && this._append(e4), this._doFinalize(); }, blockSize: 16, _createHelper: function(e4) { return function(t4, n4) { return new e4.init(n4).finalize(t4); }; }, _createHmacHelper: function(e4) { return function(t4, n4) { return new d2.HMAC.init(e4, n4).finalize(t4); }; } }); var d2 = s2.algo = {}; return s2; }(Math), n2); }), r = s, i = (n(function(e2, t2) { var n2; e2.exports = (n2 = r, function(e3) { var t3 = n2, s2 = t3.lib, r2 = s2.WordArray, i2 = s2.Hasher, o2 = t3.algo, a2 = []; !function() { for (var t4 = 0; t4 < 64; t4++) a2[t4] = 4294967296 * e3.abs(e3.sin(t4 + 1)) | 0; }(); var c2 = o2.MD5 = i2.extend({ _doReset: function() { this._hash = new r2.init([1732584193, 4023233417, 2562383102, 271733878]); }, _doProcessBlock: function(e4, t4) { for (var n3 = 0; n3 < 16; n3++) { var s3 = t4 + n3, r3 = e4[s3]; e4[s3] = 16711935 & (r3 << 8 | r3 >>> 24) | 4278255360 & (r3 << 24 | r3 >>> 8); } var i3 = this._hash.words, o3 = e4[t4 + 0], c3 = e4[t4 + 1], p2 = e4[t4 + 2], f2 = e4[t4 + 3], g2 = e4[t4 + 4], m2 = e4[t4 + 5], y2 = e4[t4 + 6], _2 = e4[t4 + 7], w2 = e4[t4 + 8], v2 = e4[t4 + 9], I2 = e4[t4 + 10], S2 = e4[t4 + 11], b2 = e4[t4 + 12], k2 = e4[t4 + 13], A2 = e4[t4 + 14], C2 = e4[t4 + 15], P2 = i3[0], T2 = i3[1], x2 = i3[2], O2 = i3[3]; P2 = u2(P2, T2, x2, O2, o3, 7, a2[0]), O2 = u2(O2, P2, T2, x2, c3, 12, a2[1]), x2 = u2(x2, O2, P2, T2, p2, 17, a2[2]), T2 = u2(T2, x2, O2, P2, f2, 22, a2[3]), P2 = u2(P2, T2, x2, O2, g2, 7, a2[4]), O2 = u2(O2, P2, T2, x2, m2, 12, a2[5]), x2 = u2(x2, O2, P2, T2, y2, 17, a2[6]), T2 = u2(T2, x2, O2, P2, _2, 22, a2[7]), P2 = u2(P2, T2, x2, O2, w2, 7, a2[8]), O2 = u2(O2, P2, T2, x2, v2, 12, a2[9]), x2 = u2(x2, O2, P2, T2, I2, 17, a2[10]), T2 = u2(T2, x2, O2, P2, S2, 22, a2[11]), P2 = u2(P2, T2, x2, O2, b2, 7, a2[12]), O2 = u2(O2, P2, T2, x2, k2, 12, a2[13]), x2 = u2(x2, O2, P2, T2, A2, 17, a2[14]), P2 = l2(P2, T2 = u2(T2, x2, O2, P2, C2, 22, a2[15]), x2, O2, c3, 5, a2[16]), O2 = l2(O2, P2, T2, x2, y2, 9, a2[17]), x2 = l2(x2, O2, P2, T2, S2, 14, a2[18]), T2 = l2(T2, x2, O2, P2, o3, 20, a2[19]), P2 = l2(P2, T2, x2, O2, m2, 5, a2[20]), O2 = l2(O2, P2, T2, x2, I2, 9, a2[21]), x2 = l2(x2, O2, P2, T2, C2, 14, a2[22]), T2 = l2(T2, x2, O2, P2, g2, 20, a2[23]), P2 = l2(P2, T2, x2, O2, v2, 5, a2[24]), O2 = l2(O2, P2, T2, x2, A2, 9, a2[25]), x2 = l2(x2, O2, P2, T2, f2, 14, a2[26]), T2 = l2(T2, x2, O2, P2, w2, 20, a2[27]), P2 = l2(P2, T2, x2, O2, k2, 5, a2[28]), O2 = l2(O2, P2, T2, x2, p2, 9, a2[29]), x2 = l2(x2, O2, P2, T2, _2, 14, a2[30]), P2 = h2(P2, T2 = l2(T2, x2, O2, P2, b2, 20, a2[31]), x2, O2, m2, 4, a2[32]), O2 = h2(O2, P2, T2, x2, w2, 11, a2[33]), x2 = h2(x2, O2, P2, T2, S2, 16, a2[34]), T2 = h2(T2, x2, O2, P2, A2, 23, a2[35]), P2 = h2(P2, T2, x2, O2, c3, 4, a2[36]), O2 = h2(O2, P2, T2, x2, g2, 11, a2[37]), x2 = h2(x2, O2, P2, T2, _2, 16, a2[38]), T2 = h2(T2, x2, O2, P2, I2, 23, a2[39]), P2 = h2(P2, T2, x2, O2, k2, 4, a2[40]), O2 = h2(O2, P2, T2, x2, o3, 11, a2[41]), x2 = h2(x2, O2, P2, T2, f2, 16, a2[42]), T2 = h2(T2, x2, O2, P2, y2, 23, a2[43]), P2 = h2(P2, T2, x2, O2, v2, 4, a2[44]), O2 = h2(O2, P2, T2, x2, b2, 11, a2[45]), x2 = h2(x2, O2, P2, T2, C2, 16, a2[46]), P2 = d2(P2, T2 = h2(T2, x2, O2, P2, p2, 23, a2[47]), x2, O2, o3, 6, a2[48]), O2 = d2(O2, P2, T2, x2, _2, 10, a2[49]), x2 = d2(x2, O2, P2, T2, A2, 15, a2[50]), T2 = d2(T2, x2, O2, P2, m2, 21, a2[51]), P2 = d2(P2, T2, x2, O2, b2, 6, a2[52]), O2 = d2(O2, P2, T2, x2, f2, 10, a2[53]), x2 = d2(x2, O2, P2, T2, I2, 15, a2[54]), T2 = d2(T2, x2, O2, P2, c3, 21, a2[55]), P2 = d2(P2, T2, x2, O2, w2, 6, a2[56]), O2 = d2(O2, P2, T2, x2, C2, 10, a2[57]), x2 = d2(x2, O2, P2, T2, y2, 15, a2[58]), T2 = d2(T2, x2, O2, P2, k2, 21, a2[59]), P2 = d2(P2, T2, x2, O2, g2, 6, a2[60]), O2 = d2(O2, P2, T2, x2, S2, 10, a2[61]), x2 = d2(x2, O2, P2, T2, p2, 15, a2[62]), T2 = d2(T2, x2, O2, P2, v2, 21, a2[63]), i3[0] = i3[0] + P2 | 0, i3[1] = i3[1] + T2 | 0, i3[2] = i3[2] + x2 | 0, i3[3] = i3[3] + O2 | 0; }, _doFinalize: function() { var t4 = this._data, n3 = t4.words, s3 = 8 * this._nDataBytes, r3 = 8 * t4.sigBytes; n3[r3 >>> 5] |= 128 << 24 - r3 % 32; var i3 = e3.floor(s3 / 4294967296), o3 = s3; n3[15 + (r3 + 64 >>> 9 << 4)] = 16711935 & (i3 << 8 | i3 >>> 24) | 4278255360 & (i3 << 24 | i3 >>> 8), n3[14 + (r3 + 64 >>> 9 << 4)] = 16711935 & (o3 << 8 | o3 >>> 24) | 4278255360 & (o3 << 24 | o3 >>> 8), t4.sigBytes = 4 * (n3.length + 1), this._process(); for (var a3 = this._hash, c3 = a3.words, u3 = 0; u3 < 4; u3++) { var l3 = c3[u3]; c3[u3] = 16711935 & (l3 << 8 | l3 >>> 24) | 4278255360 & (l3 << 24 | l3 >>> 8); } return a3; }, clone: function() { var e4 = i2.clone.call(this); return e4._hash = this._hash.clone(), e4; } }); function u2(e4, t4, n3, s3, r3, i3, o3) { var a3 = e4 + (t4 & n3 | ~t4 & s3) + r3 + o3; return (a3 << i3 | a3 >>> 32 - i3) + t4; } function l2(e4, t4, n3, s3, r3, i3, o3) { var a3 = e4 + (t4 & s3 | n3 & ~s3) + r3 + o3; return (a3 << i3 | a3 >>> 32 - i3) + t4; } function h2(e4, t4, n3, s3, r3, i3, o3) { var a3 = e4 + (t4 ^ n3 ^ s3) + r3 + o3; return (a3 << i3 | a3 >>> 32 - i3) + t4; } function d2(e4, t4, n3, s3, r3, i3, o3) { var a3 = e4 + (n3 ^ (t4 | ~s3)) + r3 + o3; return (a3 << i3 | a3 >>> 32 - i3) + t4; } t3.MD5 = i2._createHelper(c2), t3.HmacMD5 = i2._createHmacHelper(c2); }(Math), n2.MD5); }), n(function(e2, t2) { var n2; e2.exports = (n2 = r, void function() { var e3 = n2, t3 = e3.lib.Base, s2 = e3.enc.Utf8; e3.algo.HMAC = t3.extend({ init: function(e4, t4) { e4 = this._hasher = new e4.init(), "string" == typeof t4 && (t4 = s2.parse(t4)); var n3 = e4.blockSize, r2 = 4 * n3; t4.sigBytes > r2 && (t4 = e4.finalize(t4)), t4.clamp(); for (var i2 = this._oKey = t4.clone(), o2 = this._iKey = t4.clone(), a2 = i2.words, c2 = o2.words, u2 = 0; u2 < n3; u2++) a2[u2] ^= 1549556828, c2[u2] ^= 909522486; i2.sigBytes = o2.sigBytes = r2, this.reset(); }, reset: function() { var e4 = this._hasher; e4.reset(), e4.update(this._iKey); }, update: function(e4) { return this._hasher.update(e4), this; }, finalize: function(e4) { var t4 = this._hasher, n3 = t4.finalize(e4); return t4.reset(), t4.finalize(this._oKey.clone().concat(n3)); } }); }()); }), n(function(e2, t2) { e2.exports = r.HmacMD5; })), o = n(function(e2, t2) { e2.exports = r.enc.Utf8; }), a = n(function(e2, t2) { var n2; e2.exports = (n2 = r, function() { var e3 = n2, t3 = e3.lib.WordArray; function s2(e4, n3, s3) { for (var r2 = [], i2 = 0, o2 = 0; o2 < n3; o2++) if (o2 % 4) { var a2 = s3[e4.charCodeAt(o2 - 1)] << o2 % 4 * 2, c2 = s3[e4.charCodeAt(o2)] >>> 6 - o2 % 4 * 2; r2[i2 >>> 2] |= (a2 | c2) << 24 - i2 % 4 * 8, i2++; } return t3.create(r2, i2); } e3.enc.Base64 = { stringify: function(e4) { var t4 = e4.words, n3 = e4.sigBytes, s3 = this._map; e4.clamp(); for (var r2 = [], i2 = 0; i2 < n3; i2 += 3) for (var o2 = (t4[i2 >>> 2] >>> 24 - i2 % 4 * 8 & 255) << 16 | (t4[i2 + 1 >>> 2] >>> 24 - (i2 + 1) % 4 * 8 & 255) << 8 | t4[i2 + 2 >>> 2] >>> 24 - (i2 + 2) % 4 * 8 & 255, a2 = 0; a2 < 4 && i2 + 0.75 * a2 < n3; a2++) r2.push(s3.charAt(o2 >>> 6 * (3 - a2) & 63)); var c2 = s3.charAt(64); if (c2) for (; r2.length % 4; ) r2.push(c2); return r2.join(""); }, parse: function(e4) { var t4 = e4.length, n3 = this._map, r2 = this._reverseMap; if (!r2) { r2 = this._reverseMap = []; for (var i2 = 0; i2 < n3.length; i2++) r2[n3.charCodeAt(i2)] = i2; } var o2 = n3.charAt(64); if (o2) { var a2 = e4.indexOf(o2); -1 !== a2 && (t4 = a2); } return s2(e4, t4, r2); }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" }; }(), n2.enc.Base64); }); const c = "FUNCTION", u = "OBJECT", l = "CLIENT_DB", h = "pending", d = "fulfilled", p = "rejected"; function f(e2) { return Object.prototype.toString.call(e2).slice(8, -1).toLowerCase(); } function g(e2) { return "object" === f(e2); } function m(e2) { return "function" == typeof e2; } function y(e2) { return function() { try { return e2.apply(e2, arguments); } catch (e3) { console.error(e3); } }; } const _ = "REJECTED", w = "NOT_PENDING"; class v { constructor({ createPromise: e2, retryRule: t2 = _ } = {}) { this.createPromise = e2, this.status = null, this.promise = null, this.retryRule = t2; } get needRetry() { if (!this.status) return true; switch (this.retryRule) { case _: return this.status === p; case w: return this.status !== h; } } exec() { return this.needRetry ? (this.status = h, this.promise = this.createPromise().then((e2) => (this.status = d, Promise.resolve(e2)), (e2) => (this.status = p, Promise.reject(e2))), this.promise) : this.promise; } } function I(e2) { return e2 && "string" == typeof e2 ? JSON.parse(e2) : e2; } const S = true, b = "app", A = I(define_process_env_UNI_SECURE_NETWORK_CONFIG_default), C = b, P = I(""), T = I("[]") || []; let O = ""; try { O = "__UNI__EE98A34"; } catch (e2) { } let E = {}; function L(e2, t2 = {}) { var n2, s2; return n2 = E, s2 = e2, Object.prototype.hasOwnProperty.call(n2, s2) || (E[e2] = t2), E[e2]; } E = uni._globalUniCloudObj ? uni._globalUniCloudObj : uni._globalUniCloudObj = {}; const R = ["invoke", "success", "fail", "complete"], U = L("_globalUniCloudInterceptor"); function N(e2, t2) { U[e2] || (U[e2] = {}), g(t2) && Object.keys(t2).forEach((n2) => { R.indexOf(n2) > -1 && function(e3, t3, n3) { let s2 = U[e3][t3]; s2 || (s2 = U[e3][t3] = []), -1 === s2.indexOf(n3) && m(n3) && s2.push(n3); }(e2, n2, t2[n2]); }); } function D(e2, t2) { U[e2] || (U[e2] = {}), g(t2) ? Object.keys(t2).forEach((n2) => { R.indexOf(n2) > -1 && function(e3, t3, n3) { const s2 = U[e3][t3]; if (!s2) return; const r2 = s2.indexOf(n3); r2 > -1 && s2.splice(r2, 1); }(e2, n2, t2[n2]); }) : delete U[e2]; } function M(e2, t2) { return e2 && 0 !== e2.length ? e2.reduce((e3, n2) => e3.then(() => n2(t2)), Promise.resolve()) : Promise.resolve(); } function q(e2, t2) { return U[e2] && U[e2][t2] || []; } function F(e2) { N("callObject", e2); } const K = L("_globalUniCloudListener"), j = "response", $ = "needLogin", B = "refreshToken", W = "clientdb", H = "cloudfunction", J = "cloudobject"; function z(e2) { return K[e2] || (K[e2] = []), K[e2]; } function V(e2, t2) { const n2 = z(e2); n2.includes(t2) || n2.push(t2); } function G(e2, t2) { const n2 = z(e2), s2 = n2.indexOf(t2); -1 !== s2 && n2.splice(s2, 1); } function Y(e2, t2) { const n2 = z(e2); for (let e3 = 0; e3 < n2.length; e3++) { (0, n2[e3])(t2); } } let Q, X = false; function Z() { return Q || (Q = new Promise((e2) => { X && e2(), function t2() { if ("function" == typeof getCurrentPages) { const t3 = getCurrentPages(); t3 && t3[0] && (X = true, e2()); } X || setTimeout(() => { t2(); }, 30); }(); }), Q); } function ee(e2) { const t2 = {}; for (const n2 in e2) { const s2 = e2[n2]; m(s2) && (t2[n2] = y(s2)); } return t2; } class te extends Error { constructor(e2) { super(e2.message), this.errMsg = e2.message || e2.errMsg || "unknown system error", this.code = this.errCode = e2.code || e2.errCode || "SYSTEM_ERROR", this.errSubject = this.subject = e2.subject || e2.errSubject, this.cause = e2.cause, this.requestId = e2.requestId; } toJson(e2 = 0) { if (!(e2 >= 10)) return e2++, { errCode: this.errCode, errMsg: this.errMsg, errSubject: this.errSubject, cause: this.cause && this.cause.toJson ? this.cause.toJson(e2) : this.cause }; } } var ne = { request: (e2) => uni.request(e2), uploadFile: (e2) => uni.uploadFile(e2), setStorageSync: (e2, t2) => uni.setStorageSync(e2, t2), getStorageSync: (e2) => uni.getStorageSync(e2), removeStorageSync: (e2) => uni.removeStorageSync(e2), clearStorageSync: () => uni.clearStorageSync(), connectSocket: (e2) => uni.connectSocket(e2) }; function se(e2) { return e2 && se(e2.__v_raw) || e2; } function re() { return { token: ne.getStorageSync("uni_id_token") || ne.getStorageSync("uniIdToken"), tokenExpired: ne.getStorageSync("uni_id_token_expired") }; } function ie({ token: e2, tokenExpired: t2 } = {}) { e2 && ne.setStorageSync("uni_id_token", e2), t2 && ne.setStorageSync("uni_id_token_expired", t2); } let oe, ae; function ce() { return oe || (oe = uni.getSystemInfoSync()), oe; } function ue() { let e2, t2; try { if (uni.getLaunchOptionsSync) { if (uni.getLaunchOptionsSync.toString().indexOf("not yet implemented") > -1) return; const { scene: n2, channel: s2 } = uni.getLaunchOptionsSync(); e2 = s2, t2 = n2; } } catch (e3) { } return { channel: e2, scene: t2 }; } let le = {}; function he() { const e2 = uni.getLocale && uni.getLocale() || "en"; if (ae) return { ...le, ...ae, locale: e2, LOCALE: e2 }; const t2 = ce(), { deviceId: n2, osName: s2, uniPlatform: r2, appId: i2 } = t2, o2 = ["appId", "appLanguage", "appName", "appVersion", "appVersionCode", "appWgtVersion", "browserName", "browserVersion", "deviceBrand", "deviceId", "deviceModel", "deviceType", "osName", "osVersion", "romName", "romVersion", "ua", "hostName", "hostVersion", "uniPlatform", "uniRuntimeVersion", "uniRuntimeVersionCode", "uniCompilerVersion", "uniCompilerVersionCode"]; for (const e3 in t2) Object.hasOwnProperty.call(t2, e3) && -1 === o2.indexOf(e3) && delete t2[e3]; return ae = { PLATFORM: r2, OS: s2, APPID: i2, DEVICEID: n2, ...ue(), ...t2 }, { ...le, ...ae, locale: e2, LOCALE: e2 }; } var de = { sign: function(e2, t2) { let n2 = ""; return Object.keys(e2).sort().forEach(function(t3) { e2[t3] && (n2 = n2 + "&" + t3 + "=" + e2[t3]); }), n2 = n2.slice(1), i(n2, t2).toString(); }, wrappedRequest: function(e2, t2) { return new Promise((n2, s2) => { t2(Object.assign(e2, { complete(e3) { e3 || (e3 = {}); const t3 = e3.data && e3.data.header && e3.data.header["x-serverless-request-id"] || e3.header && e3.header["request-id"]; if (!e3.statusCode || e3.statusCode >= 400) { const n3 = e3.data && e3.data.error && e3.data.error.code || "SYS_ERR", r3 = e3.data && e3.data.error && e3.data.error.message || e3.errMsg || "request:fail"; return s2(new te({ code: n3, message: r3, requestId: t3 })); } const r2 = e3.data; if (r2.error) return s2(new te({ code: r2.error.code, message: r2.error.message, requestId: t3 })); r2.result = r2.data, r2.requestId = t3, delete r2.data, n2(r2); } })); }); }, toBase64: function(e2) { return a.stringify(o.parse(e2)); } }; var pe = class { constructor(e2) { ["spaceId", "clientSecret"].forEach((t2) => { if (!Object.prototype.hasOwnProperty.call(e2, t2)) throw new Error(`${t2} required`); }), this.config = Object.assign({}, { endpoint: 0 === e2.spaceId.indexOf("mp-") ? "https://api.next.bspapp.com" : "https://api.bspapp.com" }, e2), this.config.provider = "aliyun", this.config.requestUrl = this.config.endpoint + "/client", this.config.envType = this.config.envType || "public", this.config.accessTokenKey = "access_token_" + this.config.spaceId, this.adapter = ne, this._getAccessTokenPromiseHub = new v({ createPromise: () => this.requestAuth(this.setupRequest({ method: "serverless.auth.user.anonymousAuthorize", params: "{}" }, "auth")).then((e3) => { if (!e3.result || !e3.result.accessToken) throw new te({ code: "AUTH_FAILED", message: "获取accessToken失败" }); this.setAccessToken(e3.result.accessToken); }), retryRule: w }); } get hasAccessToken() { return !!this.accessToken; } setAccessToken(e2) { this.accessToken = e2; } requestWrapped(e2) { return de.wrappedRequest(e2, this.adapter.request); } requestAuth(e2) { return this.requestWrapped(e2); } request(e2, t2) { return Promise.resolve().then(() => this.hasAccessToken ? t2 ? this.requestWrapped(e2) : this.requestWrapped(e2).catch((t3) => new Promise((e3, n2) => { !t3 || "GATEWAY_INVALID_TOKEN" !== t3.code && "InvalidParameter.InvalidToken" !== t3.code ? n2(t3) : e3(); }).then(() => this.getAccessToken()).then(() => { const t4 = this.rebuildRequest(e2); return this.request(t4, true); })) : this.getAccessToken().then(() => { const t3 = this.rebuildRequest(e2); return this.request(t3, true); })); } rebuildRequest(e2) { const t2 = Object.assign({}, e2); return t2.data.token = this.accessToken, t2.header["x-basement-token"] = this.accessToken, t2.header["x-serverless-sign"] = de.sign(t2.data, this.config.clientSecret), t2; } setupRequest(e2, t2) { const n2 = Object.assign({}, e2, { spaceId: this.config.spaceId, timestamp: Date.now() }), s2 = { "Content-Type": "application/json" }; return "auth" !== t2 && (n2.token = this.accessToken, s2["x-basement-token"] = this.accessToken), s2["x-serverless-sign"] = de.sign(n2, this.config.clientSecret), { url: this.config.requestUrl, method: "POST", data: n2, dataType: "json", header: s2 }; } getAccessToken() { return this._getAccessTokenPromiseHub.exec(); } async authorize() { await this.getAccessToken(); } callFunction(e2) { const t2 = { method: "serverless.function.runtime.invoke", params: JSON.stringify({ functionTarget: e2.name, functionArgs: e2.data || {} }) }; return this.request({ ...this.setupRequest(t2), timeout: e2.timeout }); } getOSSUploadOptionsFromPath(e2) { const t2 = { method: "serverless.file.resource.generateProximalSign", params: JSON.stringify(e2) }; return this.request(this.setupRequest(t2)); } uploadFileToOSS({ url: e2, formData: t2, name: n2, filePath: s2, fileType: r2, onUploadProgress: i2 }) { return new Promise((o2, a2) => { const c2 = this.adapter.uploadFile({ url: e2, formData: t2, name: n2, filePath: s2, fileType: r2, header: { "X-OSS-server-side-encrpytion": "AES256" }, success(e3) { e3 && e3.statusCode < 400 ? o2(e3) : a2(new te({ code: "UPLOAD_FAILED", message: "文件上传失败" })); }, fail(e3) { a2(new te({ code: e3.code || "UPLOAD_FAILED", message: e3.message || e3.errMsg || "文件上传失败" })); } }); "function" == typeof i2 && c2 && "function" == typeof c2.onProgressUpdate && c2.onProgressUpdate((e3) => { i2({ loaded: e3.totalBytesSent, total: e3.totalBytesExpectedToSend }); }); }); } reportOSSUpload(e2) { const t2 = { method: "serverless.file.resource.report", params: JSON.stringify(e2) }; return this.request(this.setupRequest(t2)); } async uploadFile({ filePath: e2, cloudPath: t2, fileType: n2 = "image", cloudPathAsRealPath: s2 = false, onUploadProgress: r2, config: i2 }) { if ("string" !== f(t2)) throw new te({ code: "INVALID_PARAM", message: "cloudPath必须为字符串类型" }); if (!(t2 = t2.trim())) throw new te({ code: "INVALID_PARAM", message: "cloudPath不可为空" }); if (/:\/\//.test(t2)) throw new te({ code: "INVALID_PARAM", message: "cloudPath不合法" }); const o2 = i2 && i2.envType || this.config.envType; if (s2 && ("/" !== t2[0] && (t2 = "/" + t2), t2.indexOf("\\") > -1)) throw new te({ code: "INVALID_PARAM", message: "使用cloudPath作为路径时,cloudPath不可包含“\\”" }); const a2 = (await this.getOSSUploadOptionsFromPath({ env: o2, filename: s2 ? t2.split("/").pop() : t2, fileId: s2 ? t2 : void 0 })).result, c2 = "https://" + a2.cdnDomain + "/" + a2.ossPath, { securityToken: u2, accessKeyId: l2, signature: h2, host: d2, ossPath: p2, id: g2, policy: m2, ossCallbackUrl: y2 } = a2, _2 = { "Cache-Control": "max-age=2592000", "Content-Disposition": "attachment", OSSAccessKeyId: l2, Signature: h2, host: d2, id: g2, key: p2, policy: m2, success_action_status: 200 }; if (u2 && (_2["x-oss-security-token"] = u2), y2) { const e3 = JSON.stringify({ callbackUrl: y2, callbackBody: JSON.stringify({ fileId: g2, spaceId: this.config.spaceId }), callbackBodyType: "application/json" }); _2.callback = de.toBase64(e3); } const w2 = { url: "https://" + a2.host, formData: _2, fileName: "file", name: "file", filePath: e2, fileType: n2 }; if (await this.uploadFileToOSS(Object.assign({}, w2, { onUploadProgress: r2 })), y2) return { success: true, filePath: e2, fileID: c2 }; if ((await this.reportOSSUpload({ id: g2 })).success) return { success: true, filePath: e2, fileID: c2 }; throw new te({ code: "UPLOAD_FAILED", message: "文件上传失败" }); } getTempFileURL({ fileList: e2 } = {}) { return new Promise((t2, n2) => { Array.isArray(e2) && 0 !== e2.length || n2(new te({ code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" })), t2({ fileList: e2.map((e3) => ({ fileID: e3, tempFileURL: e3 })) }); }); } async getFileInfo({ fileList: e2 } = {}) { if (!Array.isArray(e2) || 0 === e2.length) throw new te({ code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" }); const t2 = { method: "serverless.file.resource.info", params: JSON.stringify({ id: e2.map((e3) => e3.split("?")[0]).join(",") }) }; return { fileList: (await this.request(this.setupRequest(t2))).result }; } }; var fe = { init(e2) { const t2 = new pe(e2), n2 = { signInAnonymously: function() { return t2.authorize(); }, getLoginState: function() { return Promise.resolve(false); } }; return t2.auth = function() { return n2; }, t2.customAuth = t2.auth, t2; } }; const ge = "undefined" != typeof location && "http:" === location.protocol ? "http:" : "https:"; var me; !function(e2) { e2.local = "local", e2.none = "none", e2.session = "session"; }(me || (me = {})); var ye = function() { }, _e = n(function(e2, t2) { var n2; e2.exports = (n2 = r, function(e3) { var t3 = n2, s2 = t3.lib, r2 = s2.WordArray, i2 = s2.Hasher, o2 = t3.algo, a2 = [], c2 = []; !function() { function t4(t5) { for (var n4 = e3.sqrt(t5), s4 = 2; s4 <= n4; s4++) if (!(t5 % s4)) return false; return true; } function n3(e4) { return 4294967296 * (e4 - (0 | e4)) | 0; } for (var s3 = 2, r3 = 0; r3 < 64; ) t4(s3) && (r3 < 8 && (a2[r3] = n3(e3.pow(s3, 0.5))), c2[r3] = n3(e3.pow(s3, 1 / 3)), r3++), s3++; }(); var u2 = [], l2 = o2.SHA256 = i2.extend({ _doReset: function() { this._hash = new r2.init(a2.slice(0)); }, _doProcessBlock: function(e4, t4) { for (var n3 = this._hash.words, s3 = n3[0], r3 = n3[1], i3 = n3[2], o3 = n3[3], a3 = n3[4], l3 = n3[5], h2 = n3[6], d2 = n3[7], p2 = 0; p2 < 64; p2++) { if (p2 < 16) u2[p2] = 0 | e4[t4 + p2]; else { var f2 = u2[p2 - 15], g2 = (f2 << 25 | f2 >>> 7) ^ (f2 << 14 | f2 >>> 18) ^ f2 >>> 3, m2 = u2[p2 - 2], y2 = (m2 << 15 | m2 >>> 17) ^ (m2 << 13 | m2 >>> 19) ^ m2 >>> 10; u2[p2] = g2 + u2[p2 - 7] + y2 + u2[p2 - 16]; } var _2 = s3 & r3 ^ s3 & i3 ^ r3 & i3, w2 = (s3 << 30 | s3 >>> 2) ^ (s3 << 19 | s3 >>> 13) ^ (s3 << 10 | s3 >>> 22), v2 = d2 + ((a3 << 26 | a3 >>> 6) ^ (a3 << 21 | a3 >>> 11) ^ (a3 << 7 | a3 >>> 25)) + (a3 & l3 ^ ~a3 & h2) + c2[p2] + u2[p2]; d2 = h2, h2 = l3, l3 = a3, a3 = o3 + v2 | 0, o3 = i3, i3 = r3, r3 = s3, s3 = v2 + (w2 + _2) | 0; } n3[0] = n3[0] + s3 | 0, n3[1] = n3[1] + r3 | 0, n3[2] = n3[2] + i3 | 0, n3[3] = n3[3] + o3 | 0, n3[4] = n3[4] + a3 | 0, n3[5] = n3[5] + l3 | 0, n3[6] = n3[6] + h2 | 0, n3[7] = n3[7] + d2 | 0; }, _doFinalize: function() { var t4 = this._data, n3 = t4.words, s3 = 8 * this._nDataBytes, r3 = 8 * t4.sigBytes; return n3[r3 >>> 5] |= 128 << 24 - r3 % 32, n3[14 + (r3 + 64 >>> 9 << 4)] = e3.floor(s3 / 4294967296), n3[15 + (r3 + 64 >>> 9 << 4)] = s3, t4.sigBytes = 4 * n3.length, this._process(), this._hash; }, clone: function() { var e4 = i2.clone.call(this); return e4._hash = this._hash.clone(), e4; } }); t3.SHA256 = i2._createHelper(l2), t3.HmacSHA256 = i2._createHmacHelper(l2); }(Math), n2.SHA256); }), we = _e, ve = n(function(e2, t2) { e2.exports = r.HmacSHA256; }); const Ie = () => { let e2; if (!Promise) { e2 = () => { }, e2.promise = {}; const t3 = () => { throw new te({ message: 'Your Node runtime does support ES6 Promises. Set "global.Promise" to your preferred implementation of promises.' }); }; return Object.defineProperty(e2.promise, "then", { get: t3 }), Object.defineProperty(e2.promise, "catch", { get: t3 }), e2; } const t2 = new Promise((t3, n2) => { e2 = (e3, s2) => e3 ? n2(e3) : t3(s2); }); return e2.promise = t2, e2; }; function Se(e2) { return void 0 === e2; } function be(e2) { return "[object Null]" === Object.prototype.toString.call(e2); } var ke; function Ae(e2) { const t2 = (n2 = e2, "[object Array]" === Object.prototype.toString.call(n2) ? e2 : [e2]); var n2; for (const e3 of t2) { const { isMatch: t3, genAdapter: n3, runtime: s2 } = e3; if (t3()) return { adapter: n3(), runtime: s2 }; } } !function(e2) { e2.WEB = "web", e2.WX_MP = "wx_mp"; }(ke || (ke = {})); const Ce = { adapter: null, runtime: void 0 }, Pe = ["anonymousUuidKey"]; class Te extends ye { constructor() { super(), Ce.adapter.root.tcbObject || (Ce.adapter.root.tcbObject = {}); } setItem(e2, t2) { Ce.adapter.root.tcbObject[e2] = t2; } getItem(e2) { return Ce.adapter.root.tcbObject[e2]; } removeItem(e2) { delete Ce.adapter.root.tcbObject[e2]; } clear() { delete Ce.adapter.root.tcbObject; } } function xe(e2, t2) { switch (e2) { case "local": return t2.localStorage || new Te(); case "none": return new Te(); default: return t2.sessionStorage || new Te(); } } class Oe { constructor(e2) { if (!this._storage) { this._persistence = Ce.adapter.primaryStorage || e2.persistence, this._storage = xe(this._persistence, Ce.adapter); const t2 = `access_token_${e2.env}`, n2 = `access_token_expire_${e2.env}`, s2 = `refresh_token_${e2.env}`, r2 = `anonymous_uuid_${e2.env}`, i2 = `login_type_${e2.env}`, o2 = `user_info_${e2.env}`; this.keys = { accessTokenKey: t2, accessTokenExpireKey: n2, refreshTokenKey: s2, anonymousUuidKey: r2, loginTypeKey: i2, userInfoKey: o2 }; } } updatePersistence(e2) { if (e2 === this._persistence) return; const t2 = "local" === this._persistence; this._persistence = e2; const n2 = xe(e2, Ce.adapter); for (const e3 in this.keys) { const s2 = this.keys[e3]; if (t2 && Pe.includes(e3)) continue; const r2 = this._storage.getItem(s2); Se(r2) || be(r2) || (n2.setItem(s2, r2), this._storage.removeItem(s2)); } this._storage = n2; } setStore(e2, t2, n2) { if (!this._storage) return; const s2 = { version: n2 || "localCachev1", content: t2 }, r2 = JSON.stringify(s2); try { this._storage.setItem(e2, r2); } catch (e3) { throw e3; } } getStore(e2, t2) { try { if (!this._storage) return; } catch (e3) { return ""; } t2 = t2 || "localCachev1"; const n2 = this._storage.getItem(e2); if (!n2) return ""; if (n2.indexOf(t2) >= 0) { return JSON.parse(n2).content; } return ""; } removeStore(e2) { this._storage.removeItem(e2); } } const Ee = {}, Le = {}; function Re(e2) { return Ee[e2]; } class Ue { constructor(e2, t2) { this.data = t2 || null, this.name = e2; } } class Ne extends Ue { constructor(e2, t2) { super("error", { error: e2, data: t2 }), this.error = e2; } } const De = new class { constructor() { this._listeners = {}; } on(e2, t2) { return function(e3, t3, n2) { n2[e3] = n2[e3] || [], n2[e3].push(t3); }(e2, t2, this._listeners), this; } off(e2, t2) { return function(e3, t3, n2) { if (n2 && n2[e3]) { const s2 = n2[e3].indexOf(t3); -1 !== s2 && n2[e3].splice(s2, 1); } }(e2, t2, this._listeners), this; } fire(e2, t2) { if (e2 instanceof Ne) return console.error(e2.error), this; const n2 = "string" == typeof e2 ? new Ue(e2, t2 || {}) : e2; const s2 = n2.name; if (this._listens(s2)) { n2.target = this; const e3 = this._listeners[s2] ? [...this._listeners[s2]] : []; for (const t3 of e3) t3.call(this, n2); } return this; } _listens(e2) { return this._listeners[e2] && this._listeners[e2].length > 0; } }(); function Me(e2, t2) { De.on(e2, t2); } function qe(e2, t2 = {}) { De.fire(e2, t2); } function Fe(e2, t2) { De.off(e2, t2); } const Ke = "loginStateChanged", je = "loginStateExpire", $e = "loginTypeChanged", Be = "anonymousConverted", We = "refreshAccessToken"; var He; !function(e2) { e2.ANONYMOUS = "ANONYMOUS", e2.WECHAT = "WECHAT", e2.WECHAT_PUBLIC = "WECHAT-PUBLIC", e2.WECHAT_OPEN = "WECHAT-OPEN", e2.CUSTOM = "CUSTOM", e2.EMAIL = "EMAIL", e2.USERNAME = "USERNAME", e2.NULL = "NULL"; }(He || (He = {})); const Je = ["auth.getJwt", "auth.logout", "auth.signInWithTicket", "auth.signInAnonymously", "auth.signIn", "auth.fetchAccessTokenWithRefreshToken", "auth.signUpWithEmailAndPassword", "auth.activateEndUserMail", "auth.sendPasswordResetEmail", "auth.resetPasswordWithToken", "auth.isUsernameRegistered"], ze = { "X-SDK-Version": "1.3.5" }; function Ve(e2, t2, n2) { const s2 = e2[t2]; e2[t2] = function(t3) { const r2 = {}, i2 = {}; n2.forEach((n3) => { const { data: s3, headers: o3 } = n3.call(e2, t3); Object.assign(r2, s3), Object.assign(i2, o3); }); const o2 = t3.data; return o2 && (() => { var e3; if (e3 = o2, "[object FormData]" !== Object.prototype.toString.call(e3)) t3.data = { ...o2, ...r2 }; else for (const e4 in r2) o2.append(e4, r2[e4]); })(), t3.headers = { ...t3.headers || {}, ...i2 }, s2.call(e2, t3); }; } function Ge() { const e2 = Math.random().toString(16).slice(2); return { data: { seqId: e2 }, headers: { ...ze, "x-seqid": e2 } }; } class Ye { constructor(e2 = {}) { var t2; this.config = e2, this._reqClass = new Ce.adapter.reqClass({ timeout: this.config.timeout, timeoutMsg: `请求在${this.config.timeout / 1e3}s内未完成,已中断`, restrictedMethods: ["post"] }), this._cache = Re(this.config.env), this._localCache = (t2 = this.config.env, Le[t2]), Ve(this._reqClass, "post", [Ge]), Ve(this._reqClass, "upload", [Ge]), Ve(this._reqClass, "download", [Ge]); } async post(e2) { return await this._reqClass.post(e2); } async upload(e2) { return await this._reqClass.upload(e2); } async download(e2) { return await this._reqClass.download(e2); } async refreshAccessToken() { let e2, t2; this._refreshAccessTokenPromise || (this._refreshAccessTokenPromise = this._refreshAccessToken()); try { e2 = await this._refreshAccessTokenPromise; } catch (e3) { t2 = e3; } if (this._refreshAccessTokenPromise = null, this._shouldRefreshAccessTokenHook = null, t2) throw t2; return e2; } async _refreshAccessToken() { const { accessTokenKey: e2, accessTokenExpireKey: t2, refreshTokenKey: n2, loginTypeKey: s2, anonymousUuidKey: r2 } = this._cache.keys; this._cache.removeStore(e2), this._cache.removeStore(t2); let i2 = this._cache.getStore(n2); if (!i2) throw new te({ message: "未登录CloudBase" }); const o2 = { refresh_token: i2 }, a2 = await this.request("auth.fetchAccessTokenWithRefreshToken", o2); if (a2.data.code) { const { code: e3 } = a2.data; if ("SIGN_PARAM_INVALID" === e3 || "REFRESH_TOKEN_EXPIRED" === e3 || "INVALID_REFRESH_TOKEN" === e3) { if (this._cache.getStore(s2) === He.ANONYMOUS && "INVALID_REFRESH_TOKEN" === e3) { const e4 = this._cache.getStore(r2), t3 = this._cache.getStore(n2), s3 = await this.send("auth.signInAnonymously", { anonymous_uuid: e4, refresh_token: t3 }); return this.setRefreshToken(s3.refresh_token), this._refreshAccessToken(); } qe(je), this._cache.removeStore(n2); } throw new te({ code: a2.data.code, message: `刷新access token失败:${a2.data.code}` }); } if (a2.data.access_token) return qe(We), this._cache.setStore(e2, a2.data.access_token), this._cache.setStore(t2, a2.data.access_token_expire + Date.now()), { accessToken: a2.data.access_token, accessTokenExpire: a2.data.access_token_expire }; a2.data.refresh_token && (this._cache.removeStore(n2), this._cache.setStore(n2, a2.data.refresh_token), this._refreshAccessToken()); } async getAccessToken() { const { accessTokenKey: e2, accessTokenExpireKey: t2, refreshTokenKey: n2 } = this._cache.keys; if (!this._cache.getStore(n2)) throw new te({ message: "refresh token不存在,登录状态异常" }); let s2 = this._cache.getStore(e2), r2 = this._cache.getStore(t2), i2 = true; return this._shouldRefreshAccessTokenHook && !await this._shouldRefreshAccessTokenHook(s2, r2) && (i2 = false), (!s2 || !r2 || r2 < Date.now()) && i2 ? this.refreshAccessToken() : { accessToken: s2, accessTokenExpire: r2 }; } async request(e2, t2, n2) { const s2 = `x-tcb-trace_${this.config.env}`; let r2 = "application/x-www-form-urlencoded"; const i2 = { action: e2, env: this.config.env, dataVersion: "2019-08-16", ...t2 }; if (-1 === Je.indexOf(e2)) { const { refreshTokenKey: e3 } = this._cache.keys; this._cache.getStore(e3) && (i2.access_token = (await this.getAccessToken()).accessToken); } let o2; if ("storage.uploadFile" === e2) { o2 = new FormData(); for (let e3 in o2) o2.hasOwnProperty(e3) && void 0 !== o2[e3] && o2.append(e3, i2[e3]); r2 = "multipart/form-data"; } else { r2 = "application/json", o2 = {}; for (let e3 in i2) void 0 !== i2[e3] && (o2[e3] = i2[e3]); } let a2 = { headers: { "content-type": r2 } }; n2 && n2.timeout && (a2.timeout = n2.timeout), n2 && n2.onUploadProgress && (a2.onUploadProgress = n2.onUploadProgress); const c2 = this._localCache.getStore(s2); c2 && (a2.headers["X-TCB-Trace"] = c2); const { parse: u2, inQuery: l2, search: h2 } = t2; let d2 = { env: this.config.env }; u2 && (d2.parse = true), l2 && (d2 = { ...l2, ...d2 }); let p2 = function(e3, t3, n3 = {}) { const s3 = /\?/.test(t3); let r3 = ""; for (let e4 in n3) "" === r3 ? !s3 && (t3 += "?") : r3 += "&", r3 += `${e4}=${encodeURIComponent(n3[e4])}`; return /^http(s)?\:\/\//.test(t3 += r3) ? t3 : `${e3}${t3}`; }(ge, "//tcb-api.tencentcloudapi.com/web", d2); h2 && (p2 += h2); const f2 = await this.post({ url: p2, data: o2, ...a2 }), g2 = f2.header && f2.header["x-tcb-trace"]; if (g2 && this._localCache.setStore(s2, g2), 200 !== Number(f2.status) && 200 !== Number(f2.statusCode) || !f2.data) throw new te({ code: "NETWORK_ERROR", message: "network request error" }); return f2; } async send(e2, t2 = {}, n2 = {}) { const s2 = await this.request(e2, t2, { ...n2, onUploadProgress: t2.onUploadProgress }); if ("ACCESS_TOKEN_EXPIRED" === s2.data.code && -1 === Je.indexOf(e2)) { await this.refreshAccessToken(); const s3 = await this.request(e2, t2, { ...n2, onUploadProgress: t2.onUploadProgress }); if (s3.data.code) throw new te({ code: s3.data.code, message: s3.data.message }); return s3.data; } if (s2.data.code) throw new te({ code: s2.data.code, message: s2.data.message }); return s2.data; } setRefreshToken(e2) { const { accessTokenKey: t2, accessTokenExpireKey: n2, refreshTokenKey: s2 } = this._cache.keys; this._cache.removeStore(t2), this._cache.removeStore(n2), this._cache.setStore(s2, e2); } } const Qe = {}; function Xe(e2) { return Qe[e2]; } class Ze { constructor(e2) { this.config = e2, this._cache = Re(e2.env), this._request = Xe(e2.env); } setRefreshToken(e2) { const { accessTokenKey: t2, accessTokenExpireKey: n2, refreshTokenKey: s2 } = this._cache.keys; this._cache.removeStore(t2), this._cache.removeStore(n2), this._cache.setStore(s2, e2); } setAccessToken(e2, t2) { const { accessTokenKey: n2, accessTokenExpireKey: s2 } = this._cache.keys; this._cache.setStore(n2, e2), this._cache.setStore(s2, t2); } async refreshUserInfo() { const { data: e2 } = await this._request.send("auth.getUserInfo", {}); return this.setLocalUserInfo(e2), e2; } setLocalUserInfo(e2) { const { userInfoKey: t2 } = this._cache.keys; this._cache.setStore(t2, e2); } } class et { constructor(e2) { if (!e2) throw new te({ code: "PARAM_ERROR", message: "envId is not defined" }); this._envId = e2, this._cache = Re(this._envId), this._request = Xe(this._envId), this.setUserInfo(); } linkWithTicket(e2) { if ("string" != typeof e2) throw new te({ code: "PARAM_ERROR", message: "ticket must be string" }); return this._request.send("auth.linkWithTicket", { ticket: e2 }); } linkWithRedirect(e2) { e2.signInWithRedirect(); } updatePassword(e2, t2) { return this._request.send("auth.updatePassword", { oldPassword: t2, newPassword: e2 }); } updateEmail(e2) { return this._request.send("auth.updateEmail", { newEmail: e2 }); } updateUsername(e2) { if ("string" != typeof e2) throw new te({ code: "PARAM_ERROR", message: "username must be a string" }); return this._request.send("auth.updateUsername", { username: e2 }); } async getLinkedUidList() { const { data: e2 } = await this._request.send("auth.getLinkedUidList", {}); let t2 = false; const { users: n2 } = e2; return n2.forEach((e3) => { e3.wxOpenId && e3.wxPublicId && (t2 = true); }), { users: n2, hasPrimaryUid: t2 }; } setPrimaryUid(e2) { return this._request.send("auth.setPrimaryUid", { uid: e2 }); } unlink(e2) { return this._request.send("auth.unlink", { platform: e2 }); } async update(e2) { const { nickName: t2, gender: n2, avatarUrl: s2, province: r2, country: i2, city: o2 } = e2, { data: a2 } = await this._request.send("auth.updateUserInfo", { nickName: t2, gender: n2, avatarUrl: s2, province: r2, country: i2, city: o2 }); this.setLocalUserInfo(a2); } async refresh() { const { data: e2 } = await this._request.send("auth.getUserInfo", {}); return this.setLocalUserInfo(e2), e2; } setUserInfo() { const { userInfoKey: e2 } = this._cache.keys, t2 = this._cache.getStore(e2); ["uid", "loginType", "openid", "wxOpenId", "wxPublicId", "unionId", "qqMiniOpenId", "email", "hasPassword", "customUserId", "nickName", "gender", "avatarUrl"].forEach((e3) => { this[e3] = t2[e3]; }), this.location = { country: t2.country, province: t2.province, city: t2.city }; } setLocalUserInfo(e2) { const { userInfoKey: t2 } = this._cache.keys; this._cache.setStore(t2, e2), this.setUserInfo(); } } class tt { constructor(e2) { if (!e2) throw new te({ code: "PARAM_ERROR", message: "envId is not defined" }); this._cache = Re(e2); const { refreshTokenKey: t2, accessTokenKey: n2, accessTokenExpireKey: s2 } = this._cache.keys, r2 = this._cache.getStore(t2), i2 = this._cache.getStore(n2), o2 = this._cache.getStore(s2); this.credential = { refreshToken: r2, accessToken: i2, accessTokenExpire: o2 }, this.user = new et(e2); } get isAnonymousAuth() { return this.loginType === He.ANONYMOUS; } get isCustomAuth() { return this.loginType === He.CUSTOM; } get isWeixinAuth() { return this.loginType === He.WECHAT || this.loginType === He.WECHAT_OPEN || this.loginType === He.WECHAT_PUBLIC; } get loginType() { return this._cache.getStore(this._cache.keys.loginTypeKey); } } class nt extends Ze { async signIn() { this._cache.updatePersistence("local"); const { anonymousUuidKey: e2, refreshTokenKey: t2 } = this._cache.keys, n2 = this._cache.getStore(e2) || void 0, s2 = this._cache.getStore(t2) || void 0, r2 = await this._request.send("auth.signInAnonymously", { anonymous_uuid: n2, refresh_token: s2 }); if (r2.uuid && r2.refresh_token) { this._setAnonymousUUID(r2.uuid), this.setRefreshToken(r2.refresh_token), await this._request.refreshAccessToken(), qe(Ke), qe($e, { env: this.config.env, loginType: He.ANONYMOUS, persistence: "local" }); const e3 = new tt(this.config.env); return await e3.user.refresh(), e3; } throw new te({ message: "匿名登录失败" }); } async linkAndRetrieveDataWithTicket(e2) { const { anonymousUuidKey: t2, refreshTokenKey: n2 } = this._cache.keys, s2 = this._cache.getStore(t2), r2 = this._cache.getStore(n2), i2 = await this._request.send("auth.linkAndRetrieveDataWithTicket", { anonymous_uuid: s2, refresh_token: r2, ticket: e2 }); if (i2.refresh_token) return this._clearAnonymousUUID(), this.setRefreshToken(i2.refresh_token), await this._request.refreshAccessToken(), qe(Be, { env: this.config.env }), qe($e, { loginType: He.CUSTOM, persistence: "local" }), { credential: { refreshToken: i2.refresh_token } }; throw new te({ message: "匿名转化失败" }); } _setAnonymousUUID(e2) { const { anonymousUuidKey: t2, loginTypeKey: n2 } = this._cache.keys; this._cache.removeStore(t2), this._cache.setStore(t2, e2), this._cache.setStore(n2, He.ANONYMOUS); } _clearAnonymousUUID() { this._cache.removeStore(this._cache.keys.anonymousUuidKey); } } class st extends Ze { async signIn(e2) { if ("string" != typeof e2) throw new te({ code: "PARAM_ERROR", message: "ticket must be a string" }); const { refreshTokenKey: t2 } = this._cache.keys, n2 = await this._request.send("auth.signInWithTicket", { ticket: e2, refresh_token: this._cache.getStore(t2) || "" }); if (n2.refresh_token) return this.setRefreshToken(n2.refresh_token), await this._request.refreshAccessToken(), qe(Ke), qe($e, { env: this.config.env, loginType: He.CUSTOM, persistence: this.config.persistence }), await this.refreshUserInfo(), new tt(this.config.env); throw new te({ message: "自定义登录失败" }); } } class rt extends Ze { async signIn(e2, t2) { if ("string" != typeof e2) throw new te({ code: "PARAM_ERROR", message: "email must be a string" }); const { refreshTokenKey: n2 } = this._cache.keys, s2 = await this._request.send("auth.signIn", { loginType: "EMAIL", email: e2, password: t2, refresh_token: this._cache.getStore(n2) || "" }), { refresh_token: r2, access_token: i2, access_token_expire: o2 } = s2; if (r2) return this.setRefreshToken(r2), i2 && o2 ? this.setAccessToken(i2, o2) : await this._request.refreshAccessToken(), await this.refreshUserInfo(), qe(Ke), qe($e, { env: this.config.env, loginType: He.EMAIL, persistence: this.config.persistence }), new tt(this.config.env); throw s2.code ? new te({ code: s2.code, message: `邮箱登录失败: ${s2.message}` }) : new te({ message: "邮箱登录失败" }); } async activate(e2) { return this._request.send("auth.activateEndUserMail", { token: e2 }); } async resetPasswordWithToken(e2, t2) { return this._request.send("auth.resetPasswordWithToken", { token: e2, newPassword: t2 }); } } class it extends Ze { async signIn(e2, t2) { if ("string" != typeof e2) throw new te({ code: "PARAM_ERROR", message: "username must be a string" }); "string" != typeof t2 && (t2 = "", console.warn("password is empty")); const { refreshTokenKey: n2 } = this._cache.keys, s2 = await this._request.send("auth.signIn", { loginType: He.USERNAME, username: e2, password: t2, refresh_token: this._cache.getStore(n2) || "" }), { refresh_token: r2, access_token_expire: i2, access_token: o2 } = s2; if (r2) return this.setRefreshToken(r2), o2 && i2 ? this.setAccessToken(o2, i2) : await this._request.refreshAccessToken(), await this.refreshUserInfo(), qe(Ke), qe($e, { env: this.config.env, loginType: He.USERNAME, persistence: this.config.persistence }), new tt(this.config.env); throw s2.code ? new te({ code: s2.code, message: `用户名密码登录失败: ${s2.message}` }) : new te({ message: "用户名密码登录失败" }); } } class ot { constructor(e2) { this.config = e2, this._cache = Re(e2.env), this._request = Xe(e2.env), this._onAnonymousConverted = this._onAnonymousConverted.bind(this), this._onLoginTypeChanged = this._onLoginTypeChanged.bind(this), Me($e, this._onLoginTypeChanged); } get currentUser() { const e2 = this.hasLoginState(); return e2 && e2.user || null; } get loginType() { return this._cache.getStore(this._cache.keys.loginTypeKey); } anonymousAuthProvider() { return new nt(this.config); } customAuthProvider() { return new st(this.config); } emailAuthProvider() { return new rt(this.config); } usernameAuthProvider() { return new it(this.config); } async signInAnonymously() { return new nt(this.config).signIn(); } async signInWithEmailAndPassword(e2, t2) { return new rt(this.config).signIn(e2, t2); } signInWithUsernameAndPassword(e2, t2) { return new it(this.config).signIn(e2, t2); } async linkAndRetrieveDataWithTicket(e2) { this._anonymousAuthProvider || (this._anonymousAuthProvider = new nt(this.config)), Me(Be, this._onAnonymousConverted); return await this._anonymousAuthProvider.linkAndRetrieveDataWithTicket(e2); } async signOut() { if (this.loginType === He.ANONYMOUS) throw new te({ message: "匿名用户不支持登出操作" }); const { refreshTokenKey: e2, accessTokenKey: t2, accessTokenExpireKey: n2 } = this._cache.keys, s2 = this._cache.getStore(e2); if (!s2) return; const r2 = await this._request.send("auth.logout", { refresh_token: s2 }); return this._cache.removeStore(e2), this._cache.removeStore(t2), this._cache.removeStore(n2), qe(Ke), qe($e, { env: this.config.env, loginType: He.NULL, persistence: this.config.persistence }), r2; } async signUpWithEmailAndPassword(e2, t2) { return this._request.send("auth.signUpWithEmailAndPassword", { email: e2, password: t2 }); } async sendPasswordResetEmail(e2) { return this._request.send("auth.sendPasswordResetEmail", { email: e2 }); } onLoginStateChanged(e2) { Me(Ke, () => { const t3 = this.hasLoginState(); e2.call(this, t3); }); const t2 = this.hasLoginState(); e2.call(this, t2); } onLoginStateExpired(e2) { Me(je, e2.bind(this)); } onAccessTokenRefreshed(e2) { Me(We, e2.bind(this)); } onAnonymousConverted(e2) { Me(Be, e2.bind(this)); } onLoginTypeChanged(e2) { Me($e, () => { const t2 = this.hasLoginState(); e2.call(this, t2); }); } async getAccessToken() { return { accessToken: (await this._request.getAccessToken()).accessToken, env: this.config.env }; } hasLoginState() { const { refreshTokenKey: e2 } = this._cache.keys; return this._cache.getStore(e2) ? new tt(this.config.env) : null; } async isUsernameRegistered(e2) { if ("string" != typeof e2) throw new te({ code: "PARAM_ERROR", message: "username must be a string" }); const { data: t2 } = await this._request.send("auth.isUsernameRegistered", { username: e2 }); return t2 && t2.isRegistered; } getLoginState() { return Promise.resolve(this.hasLoginState()); } async signInWithTicket(e2) { return new st(this.config).signIn(e2); } shouldRefreshAccessToken(e2) { this._request._shouldRefreshAccessTokenHook = e2.bind(this); } getUserInfo() { return this._request.send("auth.getUserInfo", {}).then((e2) => e2.code ? e2 : { ...e2.data, requestId: e2.seqId }); } getAuthHeader() { const { refreshTokenKey: e2, accessTokenKey: t2 } = this._cache.keys, n2 = this._cache.getStore(e2); return { "x-cloudbase-credentials": this._cache.getStore(t2) + "/@@/" + n2 }; } _onAnonymousConverted(e2) { const { env: t2 } = e2.data; t2 === this.config.env && this._cache.updatePersistence(this.config.persistence); } _onLoginTypeChanged(e2) { const { loginType: t2, persistence: n2, env: s2 } = e2.data; s2 === this.config.env && (this._cache.updatePersistence(n2), this._cache.setStore(this._cache.keys.loginTypeKey, t2)); } } const at = function(e2, t2) { t2 = t2 || Ie(); const n2 = Xe(this.config.env), { cloudPath: s2, filePath: r2, onUploadProgress: i2, fileType: o2 = "image" } = e2; return n2.send("storage.getUploadMetadata", { path: s2 }).then((e3) => { const { data: { url: a2, authorization: c2, token: u2, fileId: l2, cosFileId: h2 }, requestId: d2 } = e3, p2 = { key: s2, signature: c2, "x-cos-meta-fileid": h2, success_action_status: "201", "x-cos-security-token": u2 }; n2.upload({ url: a2, data: p2, file: r2, name: s2, fileType: o2, onUploadProgress: i2 }).then((e4) => { 201 === e4.statusCode ? t2(null, { fileID: l2, requestId: d2 }) : t2(new te({ code: "STORAGE_REQUEST_FAIL", message: `STORAGE_REQUEST_FAIL: ${e4.data}` })); }).catch((e4) => { t2(e4); }); }).catch((e3) => { t2(e3); }), t2.promise; }, ct = function(e2, t2) { t2 = t2 || Ie(); const n2 = Xe(this.config.env), { cloudPath: s2 } = e2; return n2.send("storage.getUploadMetadata", { path: s2 }).then((e3) => { t2(null, e3); }).catch((e3) => { t2(e3); }), t2.promise; }, ut = function({ fileList: e2 }, t2) { if (t2 = t2 || Ie(), !e2 || !Array.isArray(e2)) return { code: "INVALID_PARAM", message: "fileList必须是非空的数组" }; for (let t3 of e2) if (!t3 || "string" != typeof t3) return { code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" }; const n2 = { fileid_list: e2 }; return Xe(this.config.env).send("storage.batchDeleteFile", n2).then((e3) => { e3.code ? t2(null, e3) : t2(null, { fileList: e3.data.delete_list, requestId: e3.requestId }); }).catch((e3) => { t2(e3); }), t2.promise; }, lt = function({ fileList: e2 }, t2) { t2 = t2 || Ie(), e2 && Array.isArray(e2) || t2(null, { code: "INVALID_PARAM", message: "fileList必须是非空的数组" }); let n2 = []; for (let s3 of e2) "object" == typeof s3 ? (s3.hasOwnProperty("fileID") && s3.hasOwnProperty("maxAge") || t2(null, { code: "INVALID_PARAM", message: "fileList的元素必须是包含fileID和maxAge的对象" }), n2.push({ fileid: s3.fileID, max_age: s3.maxAge })) : "string" == typeof s3 ? n2.push({ fileid: s3 }) : t2(null, { code: "INVALID_PARAM", message: "fileList的元素必须是字符串" }); const s2 = { file_list: n2 }; return Xe(this.config.env).send("storage.batchGetDownloadUrl", s2).then((e3) => { e3.code ? t2(null, e3) : t2(null, { fileList: e3.data.download_list, requestId: e3.requestId }); }).catch((e3) => { t2(e3); }), t2.promise; }, ht = async function({ fileID: e2 }, t2) { const n2 = (await lt.call(this, { fileList: [{ fileID: e2, maxAge: 600 }] })).fileList[0]; if ("SUCCESS" !== n2.code) return t2 ? t2(n2) : new Promise((e3) => { e3(n2); }); const s2 = Xe(this.config.env); let r2 = n2.download_url; if (r2 = encodeURI(r2), !t2) return s2.download({ url: r2 }); t2(await s2.download({ url: r2 })); }, dt = function({ name: e2, data: t2, query: n2, parse: s2, search: r2, timeout: i2 }, o2) { const a2 = o2 || Ie(); let c2; try { c2 = t2 ? JSON.stringify(t2) : ""; } catch (e3) { return Promise.reject(e3); } if (!e2) return Promise.reject(new te({ code: "PARAM_ERROR", message: "函数名不能为空" })); const u2 = { inQuery: n2, parse: s2, search: r2, function_name: e2, request_data: c2 }; return Xe(this.config.env).send("functions.invokeFunction", u2, { timeout: i2 }).then((e3) => { if (e3.code) a2(null, e3); else { let t3 = e3.data.response_data; if (s2) a2(null, { result: t3, requestId: e3.requestId }); else try { t3 = JSON.parse(e3.data.response_data), a2(null, { result: t3, requestId: e3.requestId }); } catch (e4) { a2(new te({ message: "response data must be json" })); } } return a2.promise; }).catch((e3) => { a2(e3); }), a2.promise; }, pt = { timeout: 15e3, persistence: "session" }, ft = {}; class gt { constructor(e2) { this.config = e2 || this.config, this.authObj = void 0; } init(e2) { switch (Ce.adapter || (this.requestClient = new Ce.adapter.reqClass({ timeout: e2.timeout || 5e3, timeoutMsg: `请求在${(e2.timeout || 5e3) / 1e3}s内未完成,已中断` })), this.config = { ...pt, ...e2 }, true) { case this.config.timeout > 6e5: console.warn("timeout大于可配置上限[10分钟],已重置为上限数值"), this.config.timeout = 6e5; break; case this.config.timeout < 100: console.warn("timeout小于可配置下限[100ms],已重置为下限数值"), this.config.timeout = 100; } return new gt(this.config); } auth({ persistence: e2 } = {}) { if (this.authObj) return this.authObj; const t2 = e2 || Ce.adapter.primaryStorage || pt.persistence; var n2; return t2 !== this.config.persistence && (this.config.persistence = t2), function(e3) { const { env: t3 } = e3; Ee[t3] = new Oe(e3), Le[t3] = new Oe({ ...e3, persistence: "local" }); }(this.config), n2 = this.config, Qe[n2.env] = new Ye(n2), this.authObj = new ot(this.config), this.authObj; } on(e2, t2) { return Me.apply(this, [e2, t2]); } off(e2, t2) { return Fe.apply(this, [e2, t2]); } callFunction(e2, t2) { return dt.apply(this, [e2, t2]); } deleteFile(e2, t2) { return ut.apply(this, [e2, t2]); } getTempFileURL(e2, t2) { return lt.apply(this, [e2, t2]); } downloadFile(e2, t2) { return ht.apply(this, [e2, t2]); } uploadFile(e2, t2) { return at.apply(this, [e2, t2]); } getUploadMetadata(e2, t2) { return ct.apply(this, [e2, t2]); } registerExtension(e2) { ft[e2.name] = e2; } async invokeExtension(e2, t2) { const n2 = ft[e2]; if (!n2) throw new te({ message: `扩展${e2} 必须先注册` }); return await n2.invoke(t2, this); } useAdapters(e2) { const { adapter: t2, runtime: n2 } = Ae(e2) || {}; t2 && (Ce.adapter = t2), n2 && (Ce.runtime = n2); } } var mt = new gt(); function yt(e2, t2, n2) { void 0 === n2 && (n2 = {}); var s2 = /\?/.test(t2), r2 = ""; for (var i2 in n2) "" === r2 ? !s2 && (t2 += "?") : r2 += "&", r2 += i2 + "=" + encodeURIComponent(n2[i2]); return /^http(s)?:\/\//.test(t2 += r2) ? t2 : "" + e2 + t2; } class _t { post(e2) { const { url: t2, data: n2, headers: s2, timeout: r2 } = e2; return new Promise((e3, i2) => { ne.request({ url: yt("https:", t2), data: n2, method: "POST", header: s2, timeout: r2, success(t3) { e3(t3); }, fail(e4) { i2(e4); } }); }); } upload(e2) { return new Promise((t2, n2) => { const { url: s2, file: r2, data: i2, headers: o2, fileType: a2 } = e2, c2 = ne.uploadFile({ url: yt("https:", s2), name: "file", formData: Object.assign({}, i2), filePath: r2, fileType: a2, header: o2, success(e3) { const n3 = { statusCode: e3.statusCode, data: e3.data || {} }; 200 === e3.statusCode && i2.success_action_status && (n3.statusCode = parseInt(i2.success_action_status, 10)), t2(n3); }, fail(e3) { n2(new Error(e3.errMsg || "uploadFile:fail")); } }); "function" == typeof e2.onUploadProgress && c2 && "function" == typeof c2.onProgressUpdate && c2.onProgressUpdate((t3) => { e2.onUploadProgress({ loaded: t3.totalBytesSent, total: t3.totalBytesExpectedToSend }); }); }); } } const wt = { setItem(e2, t2) { ne.setStorageSync(e2, t2); }, getItem: (e2) => ne.getStorageSync(e2), removeItem(e2) { ne.removeStorageSync(e2); }, clear() { ne.clearStorageSync(); } }; var vt = { genAdapter: function() { return { root: {}, reqClass: _t, localStorage: wt, primaryStorage: "local" }; }, isMatch: function() { return true; }, runtime: "uni_app" }; mt.useAdapters(vt); const It = mt, St = It.init; It.init = function(e2) { e2.env = e2.spaceId; const t2 = St.call(this, e2); t2.config.provider = "tencent", t2.config.spaceId = e2.spaceId; const n2 = t2.auth; return t2.auth = function(e3) { const t3 = n2.call(this, e3); return ["linkAndRetrieveDataWithTicket", "signInAnonymously", "signOut", "getAccessToken", "getLoginState", "signInWithTicket", "getUserInfo"].forEach((e4) => { var n3; t3[e4] = (n3 = t3[e4], function(e5) { e5 = e5 || {}; const { success: t4, fail: s2, complete: r2 } = ee(e5); if (!(t4 || s2 || r2)) return n3.call(this, e5); n3.call(this, e5).then((e6) => { t4 && t4(e6), r2 && r2(e6); }, (e6) => { s2 && s2(e6), r2 && r2(e6); }); }).bind(t3); }), t3; }, t2.customAuth = t2.auth, t2; }; var bt = It; async function kt(e2, t2) { const n2 = `http://${e2}:${t2}/system/ping`; try { const e3 = await (s2 = { url: n2, timeout: 500 }, new Promise((e4, t3) => { ne.request({ ...s2, success(t4) { e4(t4); }, fail(e5) { t3(e5); } }); })); return !(!e3.data || 0 !== e3.data.code); } catch (e3) { return false; } var s2; } async function At(e2, t2) { let n2; for (let s2 = 0; s2 < e2.length; s2++) { const r2 = e2[s2]; if (await kt(r2, t2)) { n2 = r2; break; } } return { address: n2, port: t2 }; } const Ct = { "serverless.file.resource.generateProximalSign": "storage/generate-proximal-sign", "serverless.file.resource.report": "storage/report", "serverless.file.resource.delete": "storage/delete", "serverless.file.resource.getTempFileURL": "storage/get-temp-file-url" }; var Pt = class { constructor(e2) { if (["spaceId", "clientSecret"].forEach((t2) => { if (!Object.prototype.hasOwnProperty.call(e2, t2)) throw new Error(`${t2} required`); }), !e2.endpoint) throw new Error("集群空间未配置ApiEndpoint,配置后需要重新关联服务空间后生效"); this.config = Object.assign({}, e2), this.config.provider = "dcloud", this.config.requestUrl = this.config.endpoint + "/client", this.config.envType = this.config.envType || "public", this.adapter = ne; } async request(e2, t2 = true) { const n2 = t2; return e2 = n2 ? await this.setupLocalRequest(e2) : this.setupRequest(e2), Promise.resolve().then(() => n2 ? this.requestLocal(e2) : de.wrappedRequest(e2, this.adapter.request)); } requestLocal(e2) { return new Promise((t2, n2) => { this.adapter.request(Object.assign(e2, { complete(e3) { if (e3 || (e3 = {}), !e3.statusCode || e3.statusCode >= 400) { const t3 = e3.data && e3.data.code || "SYS_ERR", s2 = e3.data && e3.data.message || "request:fail"; return n2(new te({ code: t3, message: s2 })); } t2({ success: true, result: e3.data }); } })); }); } setupRequest(e2) { const t2 = Object.assign({}, e2, { spaceId: this.config.spaceId, timestamp: Date.now() }), n2 = { "Content-Type": "application/json" }; n2["x-serverless-sign"] = de.sign(t2, this.config.clientSecret); const s2 = he(); n2["x-client-info"] = encodeURIComponent(JSON.stringify(s2)); const { token: r2 } = re(); return n2["x-client-token"] = r2, { url: this.config.requestUrl, method: "POST", data: t2, dataType: "json", header: JSON.parse(JSON.stringify(n2)) }; } async setupLocalRequest(e2) { const t2 = he(), { token: n2 } = re(), s2 = Object.assign({}, e2, { spaceId: this.config.spaceId, timestamp: Date.now(), clientInfo: t2, token: n2 }), { address: r2, servePort: i2 } = this.__dev__ && this.__dev__.debugInfo || {}, { address: o2 } = await At(r2, i2); return { url: `http://${o2}:${i2}/${Ct[e2.method]}`, method: "POST", data: s2, dataType: "json", header: JSON.parse(JSON.stringify({ "Content-Type": "application/json" })) }; } callFunction(e2) { const t2 = { method: "serverless.function.runtime.invoke", params: JSON.stringify({ functionTarget: e2.name, functionArgs: e2.data || {} }) }; return this.request(t2, false); } getUploadFileOptions(e2) { const t2 = { method: "serverless.file.resource.generateProximalSign", params: JSON.stringify(e2) }; return this.request(t2); } reportUploadFile(e2) { const t2 = { method: "serverless.file.resource.report", params: JSON.stringify(e2) }; return this.request(t2); } uploadFile({ filePath: e2, cloudPath: t2, fileType: n2 = "image", onUploadProgress: s2 }) { if (!t2) throw new te({ code: "CLOUDPATH_REQUIRED", message: "cloudPath不可为空" }); let r2; return this.getUploadFileOptions({ cloudPath: t2 }).then((t3) => { const { url: i2, formData: o2, name: a2 } = t3.result; return r2 = t3.result.fileUrl, new Promise((t4, r3) => { const c2 = this.adapter.uploadFile({ url: i2, formData: o2, name: a2, filePath: e2, fileType: n2, success(e3) { e3 && e3.statusCode < 400 ? t4(e3) : r3(new te({ code: "UPLOAD_FAILED", message: "文件上传失败" })); }, fail(e3) { r3(new te({ code: e3.code || "UPLOAD_FAILED", message: e3.message || e3.errMsg || "文件上传失败" })); } }); "function" == typeof s2 && c2 && "function" == typeof c2.onProgressUpdate && c2.onProgressUpdate((e3) => { s2({ loaded: e3.totalBytesSent, total: e3.totalBytesExpectedToSend }); }); }); }).then(() => this.reportUploadFile({ cloudPath: t2 })).then((t3) => new Promise((n3, s3) => { t3.success ? n3({ success: true, filePath: e2, fileID: r2 }) : s3(new te({ code: "UPLOAD_FAILED", message: "文件上传失败" })); })); } deleteFile({ fileList: e2 }) { const t2 = { method: "serverless.file.resource.delete", params: JSON.stringify({ fileList: e2 }) }; return this.request(t2).then((e3) => { if (e3.success) return e3.result; throw new te({ code: "DELETE_FILE_FAILED", message: "删除文件失败" }); }); } getTempFileURL({ fileList: e2, maxAge: t2 } = {}) { if (!Array.isArray(e2) || 0 === e2.length) throw new te({ code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" }); const n2 = { method: "serverless.file.resource.getTempFileURL", params: JSON.stringify({ fileList: e2, maxAge: t2 }) }; return this.request(n2).then((e3) => { if (e3.success) return { fileList: e3.result.fileList.map((e4) => ({ fileID: e4.fileID, tempFileURL: e4.tempFileURL })) }; throw new te({ code: "GET_TEMP_FILE_URL_FAILED", message: "获取临时文件链接失败" }); }); } }; var Tt = { init(e2) { const t2 = new Pt(e2), n2 = { signInAnonymously: function() { return Promise.resolve(); }, getLoginState: function() { return Promise.resolve(false); } }; return t2.auth = function() { return n2; }, t2.customAuth = t2.auth, t2; } }, xt = n(function(e2, t2) { e2.exports = r.enc.Hex; }); function Ot() { return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(e2) { var t2 = 16 * Math.random() | 0; return ("x" === e2 ? t2 : 3 & t2 | 8).toString(16); }); } function Et(e2 = "", t2 = {}) { const { data: n2, functionName: s2, method: r2, headers: i2, signHeaderKeys: o2 = [], config: a2 } = t2, c2 = Date.now(), u2 = Ot(), l2 = Object.assign({}, i2, { "x-from-app-id": a2.spaceAppId, "x-from-env-id": a2.spaceId, "x-to-env-id": a2.spaceId, "x-from-instance-id": c2, "x-from-function-name": s2, "x-client-timestamp": c2, "x-alipay-source": "client", "x-request-id": u2, "x-alipay-callid": u2, "x-trace-id": u2 }), h2 = ["x-from-app-id", "x-from-env-id", "x-to-env-id", "x-from-instance-id", "x-from-function-name", "x-client-timestamp"].concat(o2), [d2 = "", p2 = ""] = e2.split("?") || [], f2 = function(e3) { const t3 = e3.signedHeaders.join(";"), n3 = e3.signedHeaders.map((t4) => `${t4.toLowerCase()}:${e3.headers[t4]} `).join(""), s3 = we(e3.body).toString(xt), r3 = `${e3.method.toUpperCase()} ${e3.path} ${e3.query} ${n3} ${t3} ${s3} `, i3 = we(r3).toString(xt), o3 = `HMAC-SHA256 ${e3.timestamp} ${i3} `, a3 = ve(o3, e3.secretKey).toString(xt); return `HMAC-SHA256 Credential=${e3.secretId}, SignedHeaders=${t3}, Signature=${a3}`; }({ path: d2, query: p2, method: r2, headers: l2, timestamp: c2, body: JSON.stringify(n2), secretId: a2.accessKey, secretKey: a2.secretKey, signedHeaders: h2.sort() }); return { url: `${a2.endpoint}${e2}`, headers: Object.assign({}, l2, { Authorization: f2 }) }; } function Lt({ url: e2, data: t2, method: n2 = "POST", headers: s2 = {}, timeout: r2 }) { return new Promise((i2, o2) => { ne.request({ url: e2, method: n2, data: "object" == typeof t2 ? JSON.stringify(t2) : t2, header: s2, dataType: "json", timeout: r2, complete: (e3 = {}) => { const t3 = s2["x-trace-id"] || ""; if (!e3.statusCode || e3.statusCode >= 400) { const { message: n3, errMsg: s3, trace_id: r3 } = e3.data || {}; return o2(new te({ code: "SYS_ERR", message: n3 || s3 || "request:fail", requestId: r3 || t3 })); } i2({ status: e3.statusCode, data: e3.data, headers: e3.header, requestId: t3 }); } }); }); } function Rt(e2, t2) { const { path: n2, data: s2, method: r2 = "GET" } = e2, { url: i2, headers: o2 } = Et(n2, { functionName: "", data: s2, method: r2, headers: { "x-alipay-cloud-mode": "oss", "x-data-api-type": "oss", "x-expire-timestamp": Date.now() + 6e4 }, signHeaderKeys: ["x-data-api-type", "x-expire-timestamp"], config: t2 }); return Lt({ url: i2, data: s2, method: r2, headers: o2 }).then((e3) => { const t3 = e3.data || {}; if (!t3.success) throw new te({ code: e3.errCode, message: e3.errMsg, requestId: e3.requestId }); return t3.data || {}; }).catch((e3) => { throw new te({ code: e3.errCode, message: e3.errMsg, requestId: e3.requestId }); }); } function Ut(e2 = "") { const t2 = e2.trim().replace(/^cloud:\/\//, ""), n2 = t2.indexOf("/"); if (n2 <= 0) throw new te({ code: "INVALID_PARAM", message: "fileID不合法" }); const s2 = t2.substring(0, n2), r2 = t2.substring(n2 + 1); return s2 !== this.config.spaceId && console.warn("file ".concat(e2, " does not belong to env ").concat(this.config.spaceId)), r2; } function Nt(e2 = "") { return "cloud://".concat(this.config.spaceId, "/").concat(e2.replace(/^\/+/, "")); } class Dt { constructor(e2) { this.config = e2; } signedURL(e2, t2 = {}) { const n2 = `/ws/function/${e2}`, s2 = this.config.wsEndpoint.replace(/^ws(s)?:\/\//, ""), r2 = Object.assign({}, t2, { accessKeyId: this.config.accessKey, signatureNonce: Ot(), timestamp: "" + Date.now() }), i2 = [n2, ["accessKeyId", "authorization", "signatureNonce", "timestamp"].sort().map(function(e3) { return r2[e3] ? "".concat(e3, "=").concat(r2[e3]) : null; }).filter(Boolean).join("&"), `host:${s2}`].join("\n"), o2 = ["HMAC-SHA256", we(i2).toString(xt)].join("\n"), a2 = ve(o2, this.config.secretKey).toString(xt), c2 = Object.keys(r2).map((e3) => `${e3}=${encodeURIComponent(r2[e3])}`).join("&"); return `${this.config.wsEndpoint}${n2}?${c2}&signature=${a2}`; } } var Mt = class { constructor(e2) { if (["spaceId", "spaceAppId", "accessKey", "secretKey"].forEach((t2) => { if (!Object.prototype.hasOwnProperty.call(e2, t2)) throw new Error(`${t2} required`); }), e2.endpoint) { if ("string" != typeof e2.endpoint) throw new Error("endpoint must be string"); if (!/^https:\/\//.test(e2.endpoint)) throw new Error("endpoint must start with https://"); e2.endpoint = e2.endpoint.replace(/\/$/, ""); } this.config = Object.assign({}, e2, { endpoint: e2.endpoint || `https://${e2.spaceId}.api-hz.cloudbasefunction.cn`, wsEndpoint: e2.wsEndpoint || `wss://${e2.spaceId}.api-hz.cloudbasefunction.cn` }), this._websocket = new Dt(this.config); } callFunction(e2) { return function(e3, t2) { const { name: n2, data: s2, async: r2 = false, timeout: i2 } = e3, o2 = "POST", a2 = { "x-to-function-name": n2 }; r2 && (a2["x-function-invoke-type"] = "async"); const { url: c2, headers: u2 } = Et("/functions/invokeFunction", { functionName: n2, data: s2, method: o2, headers: a2, signHeaderKeys: ["x-to-function-name"], config: t2 }); return Lt({ url: c2, data: s2, method: o2, headers: u2, timeout: i2 }).then((e4) => { let t3 = 0; if (r2) { const n3 = e4.data || {}; t3 = "200" === n3.errCode ? 0 : n3.errCode, e4.data = n3.data || {}, e4.errMsg = n3.errMsg; } if (0 !== t3) throw new te({ code: t3, message: e4.errMsg, requestId: e4.requestId }); return { errCode: t3, success: 0 === t3, requestId: e4.requestId, result: e4.data }; }).catch((e4) => { throw new te({ code: e4.errCode, message: e4.errMsg, requestId: e4.requestId }); }); }(e2, this.config); } uploadFileToOSS({ url: e2, filePath: t2, fileType: n2, formData: s2, onUploadProgress: r2 }) { return new Promise((i2, o2) => { const a2 = ne.uploadFile({ url: e2, filePath: t2, fileType: n2, formData: s2, name: "file", success(e3) { e3 && e3.statusCode < 400 ? i2(e3) : o2(new te({ code: "UPLOAD_FAILED", message: "文件上传失败" })); }, fail(e3) { o2(new te({ code: e3.code || "UPLOAD_FAILED", message: e3.message || e3.errMsg || "文件上传失败" })); } }); "function" == typeof r2 && a2 && "function" == typeof a2.onProgressUpdate && a2.onProgressUpdate((e3) => { r2({ loaded: e3.totalBytesSent, total: e3.totalBytesExpectedToSend }); }); }); } async uploadFile({ filePath: e2, cloudPath: t2 = "", fileType: n2 = "image", onUploadProgress: s2 }) { if ("string" !== f(t2)) throw new te({ code: "INVALID_PARAM", message: "cloudPath必须为字符串类型" }); if (!(t2 = t2.trim())) throw new te({ code: "INVALID_PARAM", message: "cloudPath不可为空" }); if (/:\/\//.test(t2)) throw new te({ code: "INVALID_PARAM", message: "cloudPath不合法" }); const r2 = await Rt({ path: "/".concat(t2.replace(/^\//, ""), "?post_url") }, this.config), { file_id: i2, upload_url: o2, form_data: a2 } = r2, c2 = a2 && a2.reduce((e3, t3) => (e3[t3.key] = t3.value, e3), {}); return this.uploadFileToOSS({ url: o2, filePath: e2, fileType: n2, formData: c2, onUploadProgress: s2 }).then(() => ({ fileID: i2 })); } async getTempFileURL({ fileList: e2 }) { return new Promise((t2, n2) => { (!e2 || e2.length < 0) && n2(new te({ errCode: "INVALID_PARAM", errMsg: "fileList不能为空数组" })), e2.length > 50 && n2(new te({ errCode: "INVALID_PARAM", errMsg: "fileList数组长度不能超过50" })); const s2 = []; for (const t3 of e2) { "string" !== f(t3) && n2(new te({ errCode: "INVALID_PARAM", errMsg: "fileList的元素必须是非空的字符串" })); const e3 = Ut.call(this, t3); s2.push({ file_id: e3, expire: 600 }); } Rt({ path: "/?download_url", data: { file_list: s2 }, method: "POST" }, this.config).then((e3) => { const { file_list: n3 = [] } = e3; t2({ fileList: n3.map((e4) => ({ fileID: Nt.call(this, e4.file_id), tempFileURL: e4.download_url })) }); }).catch((e3) => n2(e3)); }); } async connectWebSocket(e2) { const { name: t2, query: n2 } = e2; return ne.connectSocket({ url: this._websocket.signedURL(t2, n2), complete: () => { } }); } }; var qt = { init: (e2) => { e2.provider = "alipay"; const t2 = new Mt(e2); return t2.auth = function() { return { signInAnonymously: function() { return Promise.resolve(); }, getLoginState: function() { return Promise.resolve(true); } }; }, t2; } }; function Ft({ data: e2 }) { let t2; t2 = he(); const n2 = JSON.parse(JSON.stringify(e2 || {})); if (Object.assign(n2, { clientInfo: t2 }), !n2.uniIdToken) { const { token: e3 } = re(); e3 && (n2.uniIdToken = e3); } return n2; } async function Kt(e2 = {}) { await this.__dev__.initLocalNetwork(); const { localAddress: t2, localPort: n2 } = this.__dev__, s2 = { aliyun: "aliyun", tencent: "tcb", alipay: "alipay", dcloud: "dcloud" }[this.config.provider], r2 = this.config.spaceId, i2 = `http://${t2}:${n2}/system/check-function`, o2 = `http://${t2}:${n2}/cloudfunctions/${e2.name}`; return new Promise((t3, n3) => { ne.request({ method: "POST", url: i2, data: { name: e2.name, platform: C, provider: s2, spaceId: r2 }, timeout: 3e3, success(e3) { t3(e3); }, fail() { t3({ data: { code: "NETWORK_ERROR", message: "连接本地调试服务失败,请检查客户端是否和主机在同一局域网下,自动切换为已部署的云函数。" } }); } }); }).then(({ data: e3 } = {}) => { const { code: t3, message: n3 } = e3 || {}; return { code: 0 === t3 ? 0 : t3 || "SYS_ERR", message: n3 || "SYS_ERR" }; }).then(({ code: t3, message: n3 }) => { if (0 !== t3) { switch (t3) { case "MODULE_ENCRYPTED": console.error(`此云函数(${e2.name})依赖加密公共模块不可本地调试,自动切换为云端已部署的云函数`); break; case "FUNCTION_ENCRYPTED": console.error(`此云函数(${e2.name})已加密不可本地调试,自动切换为云端已部署的云函数`); break; case "ACTION_ENCRYPTED": console.error(n3 || "需要访问加密的uni-clientDB-action,自动切换为云端环境"); break; case "NETWORK_ERROR": console.error(n3 || "连接本地调试服务失败,请检查客户端是否和主机在同一局域网下"); break; case "SWITCH_TO_CLOUD": break; default: { const e3 = `检测本地调试服务出现错误:${n3},请检查网络环境或重启客户端再试`; throw console.error(e3), new Error(e3); } } return this._callCloudFunction(e2); } return new Promise((t4, n4) => { const r3 = Ft.call(this, { data: e2.data }); ne.request({ method: "POST", url: o2, data: { provider: s2, platform: C, param: r3 }, timeout: e2.timeout, success: ({ statusCode: e3, data: s3 } = {}) => !e3 || e3 >= 400 ? n4(new te({ code: s3.code || "SYS_ERR", message: s3.message || "request:fail" })) : t4({ result: s3 }), fail(e3) { n4(new te({ code: e3.code || e3.errCode || "SYS_ERR", message: e3.message || e3.errMsg || "request:fail" })); } }); }); }); } const jt = [{ rule: /fc_function_not_found|FUNCTION_NOT_FOUND/, content: ",云函数[{functionName}]在云端不存在,请检查此云函数名称是否正确以及该云函数是否已上传到服务空间", mode: "append" }]; var $t = /[\\^$.*+?()[\]{}|]/g, Bt = RegExp($t.source); function Wt(e2, t2, n2) { return e2.replace(new RegExp((s2 = t2) && Bt.test(s2) ? s2.replace($t, "\\$&") : s2, "g"), n2); var s2; } const Jt = "request", zt = "response", Vt = "both"; const En = { code: 2e4, message: "System error" }, Ln = { code: 20101, message: "Invalid client" }; function Nn(e2) { const { errSubject: t2, subject: n2, errCode: s2, errMsg: r2, code: i2, message: o2, cause: a2 } = e2 || {}; return new te({ subject: t2 || n2 || "uni-secure-network", code: s2 || i2 || En.code, message: r2 || o2, cause: a2 }); } let Mn; function $n({ secretType: e2 } = {}) { return e2 === Jt || e2 === zt || e2 === Vt; } function Bn({ name: e2, data: t2 = {} } = {}) { return "DCloud-clientDB" === e2 && "encryption" === t2.redirectTo && "getAppClientKey" === t2.action; } function Wn({ provider: e2, spaceId: t2, functionName: n2 } = {}) { const { appId: s2, uniPlatform: r2, osName: i2 } = ce(); let o2 = r2; "app" === r2 && (o2 = i2); const a2 = function({ provider: e3, spaceId: t3 } = {}) { const n3 = A; if (!n3) return {}; e3 = /* @__PURE__ */ function(e4) { return "tencent" === e4 ? "tcb" : e4; }(e3); const s3 = n3.find((n4) => n4.provider === e3 && n4.spaceId === t3); return s3 && s3.config; }({ provider: e2, spaceId: t2 }); if (!a2 || !a2.accessControl || !a2.accessControl.enable) return false; const c2 = a2.accessControl.function || {}, u2 = Object.keys(c2); if (0 === u2.length) return true; const l2 = function(e3, t3) { let n3, s3, r3; for (let i3 = 0; i3 < e3.length; i3++) { const o3 = e3[i3]; o3 !== t3 ? "*" !== o3 ? o3.split(",").map((e4) => e4.trim()).indexOf(t3) > -1 && (s3 = o3) : r3 = o3 : n3 = o3; } return n3 || s3 || r3; }(u2, n2); if (!l2) return false; if ((c2[l2] || []).find((e3 = {}) => e3.appId === s2 && (e3.platform || "").toLowerCase() === o2.toLowerCase())) return true; throw console.error(`此应用[appId: ${s2}, platform: ${o2}]不在云端配置的允许访问的应用列表内,参考:https://uniapp.dcloud.net.cn/uniCloud/secure-network.html#verify-client`), Nn(Ln); } function Hn({ functionName: e2, result: t2, logPvd: n2 }) { if (this.__dev__.debugLog && t2 && t2.requestId) { const s2 = JSON.stringify({ spaceId: this.config.spaceId, functionName: e2, requestId: t2.requestId }); console.log(`[${n2}-request]${s2}[/${n2}-request]`); } } function Jn(e2) { const t2 = e2.callFunction, n2 = function(n3) { const s2 = n3.name; n3.data = Ft.call(e2, { data: n3.data }); const r2 = { aliyun: "aliyun", tencent: "tcb", tcb: "tcb", alipay: "alipay", dcloud: "dcloud" }[this.config.provider], i2 = $n(n3), o2 = Bn(n3), a2 = i2 || o2; return t2.call(this, n3).then((e3) => (e3.errCode = 0, !a2 && Hn.call(this, { functionName: s2, result: e3, logPvd: r2 }), Promise.resolve(e3)), (e3) => (!a2 && Hn.call(this, { functionName: s2, result: e3, logPvd: r2 }), e3 && e3.message && (e3.message = function({ message: e4 = "", extraInfo: t3 = {}, formatter: n4 = [] } = {}) { for (let s3 = 0; s3 < n4.length; s3++) { const { rule: r3, content: i3, mode: o3 } = n4[s3], a3 = e4.match(r3); if (!a3) continue; let c2 = i3; for (let e5 = 1; e5 < a3.length; e5++) c2 = Wt(c2, `{$${e5}}`, a3[e5]); for (const e5 in t3) c2 = Wt(c2, `{${e5}}`, t3[e5]); return "replace" === o3 ? c2 : e4 + c2; } return e4; }({ message: `[${n3.name}]: ${e3.message}`, formatter: jt, extraInfo: { functionName: s2 } })), Promise.reject(e3))); }; e2.callFunction = function(t3) { const { provider: s2, spaceId: r2 } = e2.config, i2 = t3.name; let o2, a2; if (t3.data = t3.data || {}, e2.__dev__.debugInfo && !e2.__dev__.debugInfo.forceRemote && T ? (e2._callCloudFunction || (e2._callCloudFunction = n2, e2._callLocalFunction = Kt), o2 = Kt) : o2 = n2, o2 = o2.bind(e2), Bn(t3)) a2 = n2.call(e2, t3); else if ($n(t3)) { a2 = new Mn({ secretType: t3.secretType, uniCloudIns: e2 }).wrapEncryptDataCallFunction(n2.bind(e2))(t3); } else if (Wn({ provider: s2, spaceId: r2, functionName: i2 })) { a2 = new Mn({ secretType: t3.secretType, uniCloudIns: e2 }).wrapVerifyClientCallFunction(n2.bind(e2))(t3); } else a2 = o2(t3); return Object.defineProperty(a2, "result", { get: () => (console.warn("当前返回结果为Promise类型,不可直接访问其result属性,详情请参考:https://uniapp.dcloud.net.cn/uniCloud/faq?id=promise"), {}) }), a2.then((e3) => ("undefined" != typeof UTSJSONObject && (e3.result = new UTSJSONObject(e3.result)), e3)); }; } Mn = class { constructor() { throw Nn({ message: `Platform ${C} is not enabled, please check whether secure network module is enabled in your manifest.json` }); } }; const zn = Symbol("CLIENT_DB_INTERNAL"); function Vn(e2, t2) { return e2.then = "DoNotReturnProxyWithAFunctionNamedThen", e2._internalType = zn, e2.inspect = null, e2.__v_raw = void 0, new Proxy(e2, { get(e3, n2, s2) { if ("_uniClient" === n2) return null; if ("symbol" == typeof n2) return e3[n2]; if (n2 in e3 || "string" != typeof n2) { const t3 = e3[n2]; return "function" == typeof t3 ? t3.bind(e3) : t3; } return t2.get(e3, n2, s2); } }); } function Gn(e2) { return { on: (t2, n2) => { e2[t2] = e2[t2] || [], e2[t2].indexOf(n2) > -1 || e2[t2].push(n2); }, off: (t2, n2) => { e2[t2] = e2[t2] || []; const s2 = e2[t2].indexOf(n2); -1 !== s2 && e2[t2].splice(s2, 1); } }; } const Yn = ["db.Geo", "db.command", "command.aggregate"]; function Qn(e2, t2) { return Yn.indexOf(`${e2}.${t2}`) > -1; } function Xn(e2) { switch (f(e2 = se(e2))) { case "array": return e2.map((e3) => Xn(e3)); case "object": return e2._internalType === zn || Object.keys(e2).forEach((t2) => { e2[t2] = Xn(e2[t2]); }), e2; case "regexp": return { $regexp: { source: e2.source, flags: e2.flags } }; case "date": return { $date: e2.toISOString() }; default: return e2; } } function Zn(e2) { return e2 && e2.content && e2.content.$method; } class es { constructor(e2, t2, n2) { this.content = e2, this.prevStage = t2 || null, this.udb = null, this._database = n2; } toJSON() { let e2 = this; const t2 = [e2.content]; for (; e2.prevStage; ) e2 = e2.prevStage, t2.push(e2.content); return { $db: t2.reverse().map((e3) => ({ $method: e3.$method, $param: Xn(e3.$param) })) }; } toString() { return JSON.stringify(this.toJSON()); } getAction() { const e2 = this.toJSON().$db.find((e3) => "action" === e3.$method); return e2 && e2.$param && e2.$param[0]; } getCommand() { return { $db: this.toJSON().$db.filter((e2) => "action" !== e2.$method) }; } get isAggregate() { let e2 = this; for (; e2; ) { const t2 = Zn(e2), n2 = Zn(e2.prevStage); if ("aggregate" === t2 && "collection" === n2 || "pipeline" === t2) return true; e2 = e2.prevStage; } return false; } get isCommand() { let e2 = this; for (; e2; ) { if ("command" === Zn(e2)) return true; e2 = e2.prevStage; } return false; } get isAggregateCommand() { let e2 = this; for (; e2; ) { const t2 = Zn(e2), n2 = Zn(e2.prevStage); if ("aggregate" === t2 && "command" === n2) return true; e2 = e2.prevStage; } return false; } getNextStageFn(e2) { const t2 = this; return function() { return ts({ $method: e2, $param: Xn(Array.from(arguments)) }, t2, t2._database); }; } get count() { return this.isAggregate ? this.getNextStageFn("count") : function() { return this._send("count", Array.from(arguments)); }; } get remove() { return this.isCommand ? this.getNextStageFn("remove") : function() { return this._send("remove", Array.from(arguments)); }; } get() { return this._send("get", Array.from(arguments)); } get add() { return this.isCommand ? this.getNextStageFn("add") : function() { return this._send("add", Array.from(arguments)); }; } update() { return this._send("update", Array.from(arguments)); } end() { return this._send("end", Array.from(arguments)); } get set() { return this.isCommand ? this.getNextStageFn("set") : function() { throw new Error("JQL禁止使用set方法"); }; } _send(e2, t2) { const n2 = this.getAction(), s2 = this.getCommand(); if (s2.$db.push({ $method: e2, $param: Xn(t2) }), S) { const e3 = s2.$db.find((e4) => "collection" === e4.$method), t3 = e3 && e3.$param; t3 && 1 === t3.length && "string" == typeof e3.$param[0] && e3.$param[0].indexOf(",") > -1 && console.warn("检测到使用JQL语法联表查询时,未使用getTemp先过滤主表数据,在主表数据量大的情况下可能会查询缓慢。\n- 如何优化请参考此文档:https://uniapp.dcloud.net.cn/uniCloud/jql?id=lookup-with-temp \n- 如果主表数据量很小请忽略此信息,项目发行时不会出现此提示。"); } return this._database._callCloudFunction({ action: n2, command: s2 }); } } function ts(e2, t2, n2) { return Vn(new es(e2, t2, n2), { get(e3, t3) { let s2 = "db"; return e3 && e3.content && (s2 = e3.content.$method), Qn(s2, t3) ? ts({ $method: t3 }, e3, n2) : function() { return ts({ $method: t3, $param: Xn(Array.from(arguments)) }, e3, n2); }; } }); } function ns({ path: e2, method: t2 }) { return class { constructor() { this.param = Array.from(arguments); } toJSON() { return { $newDb: [...e2.map((e3) => ({ $method: e3 })), { $method: t2, $param: this.param }] }; } toString() { return JSON.stringify(this.toJSON()); } }; } function ss(e2, t2 = {}) { return Vn(new e2(t2), { get: (e3, t3) => Qn("db", t3) ? ts({ $method: t3 }, null, e3) : function() { return ts({ $method: t3, $param: Xn(Array.from(arguments)) }, null, e3); } }); } class rs extends class { constructor({ uniClient: e2 = {}, isJQL: t2 = false } = {}) { this._uniClient = e2, this._authCallBacks = {}, this._dbCallBacks = {}, e2._isDefault && (this._dbCallBacks = L("_globalUniCloudDatabaseCallback")), t2 || (this.auth = Gn(this._authCallBacks)), this._isJQL = t2, Object.assign(this, Gn(this._dbCallBacks)), this.env = Vn({}, { get: (e3, t3) => ({ $env: t3 }) }), this.Geo = Vn({}, { get: (e3, t3) => ns({ path: ["Geo"], method: t3 }) }), this.serverDate = ns({ path: [], method: "serverDate" }), this.RegExp = ns({ path: [], method: "RegExp" }); } getCloudEnv(e2) { if ("string" != typeof e2 || !e2.trim()) throw new Error("getCloudEnv参数错误"); return { $env: e2.replace("$cloudEnv_", "") }; } _callback(e2, t2) { const n2 = this._dbCallBacks; n2[e2] && n2[e2].forEach((e3) => { e3(...t2); }); } _callbackAuth(e2, t2) { const n2 = this._authCallBacks; n2[e2] && n2[e2].forEach((e3) => { e3(...t2); }); } multiSend() { const e2 = Array.from(arguments), t2 = e2.map((e3) => { const t3 = e3.getAction(), n2 = e3.getCommand(); if ("getTemp" !== n2.$db[n2.$db.length - 1].$method) throw new Error("multiSend只支持子命令内使用getTemp"); return { action: t3, command: n2 }; }); return this._callCloudFunction({ multiCommand: t2, queryList: e2 }); } } { _parseResult(e2) { return this._isJQL ? e2.result : e2; } _callCloudFunction({ action: e2, command: t2, multiCommand: n2, queryList: s2 }) { function r2(e3, t3) { if (n2 && s2) for (let n3 = 0; n3 < s2.length; n3++) { const r3 = s2[n3]; r3.udb && "function" == typeof r3.udb.setResult && (t3 ? r3.udb.setResult(t3) : r3.udb.setResult(e3.result.dataList[n3])); } } const i2 = this, o2 = this._isJQL ? "databaseForJQL" : "database"; function a2(e3) { return i2._callback("error", [e3]), M(q(o2, "fail"), e3).then(() => M(q(o2, "complete"), e3)).then(() => (r2(null, e3), Y(j, { type: W, content: e3 }), Promise.reject(e3))); } const c2 = M(q(o2, "invoke")), u2 = this._uniClient; return c2.then(() => u2.callFunction({ name: "DCloud-clientDB", type: l, data: { action: e2, command: t2, multiCommand: n2 } })).then((e3) => { const { code: t3, message: n3, token: s3, tokenExpired: c3, systemInfo: u3 = [] } = e3.result; if (u3) for (let e4 = 0; e4 < u3.length; e4++) { const { level: t4, message: n4, detail: s4 } = u3[e4], r3 = console["warn" === t4 ? "error" : t4] || console.log; let i3 = "[System Info]" + n4; s4 && (i3 = `${i3} 详细信息:${s4}`), r3(i3); } if (t3) { return a2(new te({ code: t3, message: n3, requestId: e3.requestId })); } e3.result.errCode = e3.result.errCode || e3.result.code, e3.result.errMsg = e3.result.errMsg || e3.result.message, s3 && c3 && (ie({ token: s3, tokenExpired: c3 }), this._callbackAuth("refreshToken", [{ token: s3, tokenExpired: c3 }]), this._callback("refreshToken", [{ token: s3, tokenExpired: c3 }]), Y(B, { token: s3, tokenExpired: c3 })); const l2 = [{ prop: "affectedDocs", tips: "affectedDocs不再推荐使用,请使用inserted/deleted/updated/data.length替代" }, { prop: "code", tips: "code不再推荐使用,请使用errCode替代" }, { prop: "message", tips: "message不再推荐使用,请使用errMsg替代" }]; for (let t4 = 0; t4 < l2.length; t4++) { const { prop: n4, tips: s4 } = l2[t4]; if (n4 in e3.result) { const t5 = e3.result[n4]; Object.defineProperty(e3.result, n4, { get: () => (console.warn(s4), t5) }); } } return function(e4) { return M(q(o2, "success"), e4).then(() => M(q(o2, "complete"), e4)).then(() => { r2(e4, null); const t4 = i2._parseResult(e4); return Y(j, { type: W, content: t4 }), Promise.resolve(t4); }); }(e3); }, (e3) => { /fc_function_not_found|FUNCTION_NOT_FOUND/g.test(e3.message) && console.warn("clientDB未初始化,请在web控制台保存一次schema以开启clientDB"); return a2(new te({ code: e3.code || "SYSTEM_ERROR", message: e3.message, requestId: e3.requestId })); }); } } const is = "token无效,跳转登录页面", os = "token过期,跳转登录页面", as = { TOKEN_INVALID_TOKEN_EXPIRED: os, TOKEN_INVALID_INVALID_CLIENTID: is, TOKEN_INVALID: is, TOKEN_INVALID_WRONG_TOKEN: is, TOKEN_INVALID_ANONYMOUS_USER: is }, cs = { "uni-id-token-expired": os, "uni-id-check-token-failed": is, "uni-id-token-not-exist": is, "uni-id-check-device-feature-failed": is }; function us(e2, t2) { let n2 = ""; return n2 = e2 ? `${e2}/${t2}` : t2, n2.replace(/^\//, ""); } function ls(e2 = [], t2 = "") { const n2 = [], s2 = []; return e2.forEach((e3) => { true === e3.needLogin ? n2.push(us(t2, e3.path)) : false === e3.needLogin && s2.push(us(t2, e3.path)); }), { needLoginPage: n2, notNeedLoginPage: s2 }; } function hs(e2) { return e2.split("?")[0].replace(/^\//, ""); } function ds() { return function(e2) { let t2 = e2 && e2.$page && e2.$page.fullPath || ""; return t2 ? ("/" !== t2.charAt(0) && (t2 = "/" + t2), t2) : t2; }(function() { const e2 = getCurrentPages(); return e2[e2.length - 1]; }()); } function ps() { return hs(ds()); } function fs(e2 = "", t2 = {}) { if (!e2) return false; if (!(t2 && t2.list && t2.list.length)) return false; const n2 = t2.list, s2 = hs(e2); return n2.some((e3) => e3.pagePath === s2); } const gs = !!e.uniIdRouter; const { loginPage: ms, routerNeedLogin: ys, resToLogin: _s, needLoginPage: ws, notNeedLoginPage: vs, loginPageInTabBar: Is } = function({ pages: t2 = [], subPackages: n2 = [], uniIdRouter: s2 = {}, tabBar: r2 = {} } = e) { const { loginPage: i2, needLogin: o2 = [], resToLogin: a2 = true } = s2, { needLoginPage: c2, notNeedLoginPage: u2 } = ls(t2), { needLoginPage: l2, notNeedLoginPage: h2 } = function(e2 = []) { const t3 = [], n3 = []; return e2.forEach((e3) => { const { root: s3, pages: r3 = [] } = e3, { needLoginPage: i3, notNeedLoginPage: o3 } = ls(r3, s3); t3.push(...i3), n3.push(...o3); }), { needLoginPage: t3, notNeedLoginPage: n3 }; }(n2); return { loginPage: i2, routerNeedLogin: o2, resToLogin: a2, needLoginPage: [...c2, ...l2], notNeedLoginPage: [...u2, ...h2], loginPageInTabBar: fs(i2, r2) }; }(); if (ws.indexOf(ms) > -1) throw new Error(`Login page [${ms}] should not be "needLogin", please check your pages.json`); function Ss(e2) { const t2 = ps(); if ("/" === e2.charAt(0)) return e2; const [n2, s2] = e2.split("?"), r2 = n2.replace(/^\//, "").split("/"), i2 = t2.split("/"); i2.pop(); for (let e3 = 0; e3 < r2.length; e3++) { const t3 = r2[e3]; ".." === t3 ? i2.pop() : "." !== t3 && i2.push(t3); } return "" === i2[0] && i2.shift(), "/" + i2.join("/") + (s2 ? "?" + s2 : ""); } function bs(e2) { const t2 = hs(Ss(e2)); return !(vs.indexOf(t2) > -1) && (ws.indexOf(t2) > -1 || ys.some((t3) => function(e3, t4) { return new RegExp(t4).test(e3); }(e2, t3))); } function ks({ redirect: e2 }) { const t2 = hs(e2), n2 = hs(ms); return ps() !== n2 && t2 !== n2; } function As({ api: e2, redirect: t2 } = {}) { if (!t2 || !ks({ redirect: t2 })) return; const n2 = function(e3, t3) { return "/" !== e3.charAt(0) && (e3 = "/" + e3), t3 ? e3.indexOf("?") > -1 ? e3 + `&uniIdRedirectUrl=${encodeURIComponent(t3)}` : e3 + `?uniIdRedirectUrl=${encodeURIComponent(t3)}` : e3; }(ms, t2); Is ? "navigateTo" !== e2 && "redirectTo" !== e2 || (e2 = "switchTab") : "switchTab" === e2 && (e2 = "navigateTo"); const s2 = { navigateTo: uni.navigateTo, redirectTo: uni.redirectTo, switchTab: uni.switchTab, reLaunch: uni.reLaunch }; setTimeout(() => { s2[e2]({ url: n2 }); }, 0); } function Cs({ url: e2 } = {}) { const t2 = { abortLoginPageJump: false, autoToLoginPage: false }, n2 = function() { const { token: e3, tokenExpired: t3 } = re(); let n3; if (e3) { if (t3 < Date.now()) { const e4 = "uni-id-token-expired"; n3 = { errCode: e4, errMsg: cs[e4] }; } } else { const e4 = "uni-id-check-token-failed"; n3 = { errCode: e4, errMsg: cs[e4] }; } return n3; }(); if (bs(e2) && n2) { n2.uniIdRedirectUrl = e2; if (z($).length > 0) return setTimeout(() => { Y($, n2); }, 0), t2.abortLoginPageJump = true, t2; t2.autoToLoginPage = true; } return t2; } function Ps() { !function() { const e3 = ds(), { abortLoginPageJump: t2, autoToLoginPage: n2 } = Cs({ url: e3 }); t2 || n2 && As({ api: "redirectTo", redirect: e3 }); }(); const e2 = ["navigateTo", "redirectTo", "reLaunch", "switchTab"]; for (let t2 = 0; t2 < e2.length; t2++) { const n2 = e2[t2]; uni.addInterceptor(n2, { invoke(e3) { const { abortLoginPageJump: t3, autoToLoginPage: s2 } = Cs({ url: e3.url }); return t3 ? e3 : s2 ? (As({ api: n2, redirect: Ss(e3.url) }), false) : e3; } }); } } function Ts() { this.onResponse((e2) => { const { type: t2, content: n2 } = e2; let s2 = false; switch (t2) { case "cloudobject": s2 = function(e3) { if ("object" != typeof e3) return false; const { errCode: t3 } = e3 || {}; return t3 in cs; }(n2); break; case "clientdb": s2 = function(e3) { if ("object" != typeof e3) return false; const { errCode: t3 } = e3 || {}; return t3 in as; }(n2); } s2 && function(e3 = {}) { const t3 = z($); Z().then(() => { const n3 = ds(); if (n3 && ks({ redirect: n3 })) return t3.length > 0 ? Y($, Object.assign({ uniIdRedirectUrl: n3 }, e3)) : void (ms && As({ api: "navigateTo", redirect: n3 })); }); }(n2); }); } function xs(e2) { !function(e3) { e3.onResponse = function(e4) { V(j, e4); }, e3.offResponse = function(e4) { G(j, e4); }; }(e2), function(e3) { e3.onNeedLogin = function(e4) { V($, e4); }, e3.offNeedLogin = function(e4) { G($, e4); }, gs && (L("_globalUniCloudStatus").needLoginInit || (L("_globalUniCloudStatus").needLoginInit = true, Z().then(() => { Ps.call(e3); }), _s && Ts.call(e3))); }(e2), function(e3) { e3.onRefreshToken = function(e4) { V(B, e4); }, e3.offRefreshToken = function(e4) { G(B, e4); }; }(e2); } let Os; const Es = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", Ls = /^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/; function Rs() { const e2 = re().token || "", t2 = e2.split("."); if (!e2 || 3 !== t2.length) return { uid: null, role: [], permission: [], tokenExpired: 0 }; let n2; try { n2 = JSON.parse((s2 = t2[1], decodeURIComponent(Os(s2).split("").map(function(e3) { return "%" + ("00" + e3.charCodeAt(0).toString(16)).slice(-2); }).join("")))); } catch (e3) { throw new Error("获取当前用户信息出错,详细错误信息为:" + e3.message); } var s2; return n2.tokenExpired = 1e3 * n2.exp, delete n2.exp, delete n2.iat, n2; } Os = "function" != typeof atob ? function(e2) { if (e2 = String(e2).replace(/[\t\n\f\r ]+/g, ""), !Ls.test(e2)) throw new Error("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded."); var t2; e2 += "==".slice(2 - (3 & e2.length)); for (var n2, s2, r2 = "", i2 = 0; i2 < e2.length; ) t2 = Es.indexOf(e2.charAt(i2++)) << 18 | Es.indexOf(e2.charAt(i2++)) << 12 | (n2 = Es.indexOf(e2.charAt(i2++))) << 6 | (s2 = Es.indexOf(e2.charAt(i2++))), r2 += 64 === n2 ? String.fromCharCode(t2 >> 16 & 255) : 64 === s2 ? String.fromCharCode(t2 >> 16 & 255, t2 >> 8 & 255) : String.fromCharCode(t2 >> 16 & 255, t2 >> 8 & 255, 255 & t2); return r2; } : atob; var Us = n(function(e2, t2) { Object.defineProperty(t2, "__esModule", { value: true }); const n2 = "chooseAndUploadFile:ok", s2 = "chooseAndUploadFile:fail"; function r2(e3, t3) { return e3.tempFiles.forEach((e4, n3) => { e4.name || (e4.name = e4.path.substring(e4.path.lastIndexOf("/") + 1)), t3 && (e4.fileType = t3), e4.cloudPath = Date.now() + "_" + n3 + e4.name.substring(e4.name.lastIndexOf(".")); }), e3.tempFilePaths || (e3.tempFilePaths = e3.tempFiles.map((e4) => e4.path)), e3; } function i2(e3, t3, { onChooseFile: s3, onUploadProgress: r3 }) { return t3.then((e4) => { if (s3) { const t4 = s3(e4); if (void 0 !== t4) return Promise.resolve(t4).then((t5) => void 0 === t5 ? e4 : t5); } return e4; }).then((t4) => false === t4 ? { errMsg: n2, tempFilePaths: [], tempFiles: [] } : function(e4, t5, s4 = 5, r4) { (t5 = Object.assign({}, t5)).errMsg = n2; const i3 = t5.tempFiles, o2 = i3.length; let a2 = 0; return new Promise((n3) => { for (; a2 < s4; ) c2(); function c2() { const s5 = a2++; if (s5 >= o2) return void (!i3.find((e5) => !e5.url && !e5.errMsg) && n3(t5)); const u2 = i3[s5]; e4.uploadFile({ provider: u2.provider, filePath: u2.path, cloudPath: u2.cloudPath, fileType: u2.fileType, cloudPathAsRealPath: u2.cloudPathAsRealPath, onUploadProgress(e5) { e5.index = s5, e5.tempFile = u2, e5.tempFilePath = u2.path, r4 && r4(e5); } }).then((e5) => { u2.url = e5.fileID, s5 < o2 && c2(); }).catch((e5) => { u2.errMsg = e5.errMsg || e5.message, s5 < o2 && c2(); }); } }); }(e3, t4, 5, r3)); } t2.initChooseAndUploadFile = function(e3) { return function(t3 = { type: "all" }) { return "image" === t3.type ? i2(e3, function(e4) { const { count: t4, sizeType: n3, sourceType: i3 = ["album", "camera"], extension: o2 } = e4; return new Promise((e5, a2) => { uni.chooseImage({ count: t4, sizeType: n3, sourceType: i3, extension: o2, success(t5) { e5(r2(t5, "image")); }, fail(e6) { a2({ errMsg: e6.errMsg.replace("chooseImage:fail", s2) }); } }); }); }(t3), t3) : "video" === t3.type ? i2(e3, function(e4) { const { camera: t4, compressed: n3, maxDuration: i3, sourceType: o2 = ["album", "camera"], extension: a2 } = e4; return new Promise((e5, c2) => { uni.chooseVideo({ camera: t4, compressed: n3, maxDuration: i3, sourceType: o2, extension: a2, success(t5) { const { tempFilePath: n4, duration: s3, size: i4, height: o3, width: a3 } = t5; e5(r2({ errMsg: "chooseVideo:ok", tempFilePaths: [n4], tempFiles: [{ name: t5.tempFile && t5.tempFile.name || "", path: n4, size: i4, type: t5.tempFile && t5.tempFile.type || "", width: a3, height: o3, duration: s3, fileType: "video", cloudPath: "" }] }, "video")); }, fail(e6) { c2({ errMsg: e6.errMsg.replace("chooseVideo:fail", s2) }); } }); }); }(t3), t3) : i2(e3, function(e4) { const { count: t4, extension: n3 } = e4; return new Promise((e5, i3) => { let o2 = uni.chooseFile; if ("undefined" != typeof wx && "function" == typeof wx.chooseMessageFile && (o2 = wx.chooseMessageFile), "function" != typeof o2) return i3({ errMsg: s2 + " 请指定 type 类型,该平台仅支持选择 image 或 video。" }); o2({ type: "all", count: t4, extension: n3, success(t5) { e5(r2(t5)); }, fail(e6) { i3({ errMsg: e6.errMsg.replace("chooseFile:fail", s2) }); } }); }); }(t3), t3); }; }; }), Ns = t$2(Us); const Ds = "manual"; function Ms(e2) { return { props: { localdata: { type: Array, default: () => [] }, options: { type: [Object, Array], default: () => ({}) }, spaceInfo: { type: Object, default: () => ({}) }, collection: { type: [String, Array], default: "" }, action: { type: String, default: "" }, field: { type: String, default: "" }, orderby: { type: String, default: "" }, where: { type: [String, Object], default: "" }, pageData: { type: String, default: "add" }, pageCurrent: { type: Number, default: 1 }, pageSize: { type: Number, default: 20 }, getcount: { type: [Boolean, String], default: false }, gettree: { type: [Boolean, String], default: false }, gettreepath: { type: [Boolean, String], default: false }, startwith: { type: String, default: "" }, limitlevel: { type: Number, default: 10 }, groupby: { type: String, default: "" }, groupField: { type: String, default: "" }, distinct: { type: [Boolean, String], default: false }, foreignKey: { type: String, default: "" }, loadtime: { type: String, default: "auto" }, manual: { type: Boolean, default: false } }, data: () => ({ mixinDatacomLoading: false, mixinDatacomHasMore: false, mixinDatacomResData: [], mixinDatacomErrorMessage: "", mixinDatacomPage: {}, mixinDatacomError: null }), created() { this.mixinDatacomPage = { current: this.pageCurrent, size: this.pageSize, count: 0 }, this.$watch(() => { var e3 = []; return ["pageCurrent", "pageSize", "localdata", "collection", "action", "field", "orderby", "where", "getont", "getcount", "gettree", "groupby", "groupField", "distinct"].forEach((t2) => { e3.push(this[t2]); }), e3; }, (e3, t2) => { if (this.loadtime === Ds) return; let n2 = false; const s2 = []; for (let r2 = 2; r2 < e3.length; r2++) e3[r2] !== t2[r2] && (s2.push(e3[r2]), n2 = true); e3[0] !== t2[0] && (this.mixinDatacomPage.current = this.pageCurrent), this.mixinDatacomPage.size = this.pageSize, this.onMixinDatacomPropsChange(n2, s2); }); }, methods: { onMixinDatacomPropsChange(e3, t2) { }, mixinDatacomEasyGet({ getone: e3 = false, success: t2, fail: n2 } = {}) { this.mixinDatacomLoading || (this.mixinDatacomLoading = true, this.mixinDatacomErrorMessage = "", this.mixinDatacomError = null, this.mixinDatacomGet().then((n3) => { this.mixinDatacomLoading = false; const { data: s2, count: r2 } = n3.result; this.getcount && (this.mixinDatacomPage.count = r2), this.mixinDatacomHasMore = s2.length < this.pageSize; const i2 = e3 ? s2.length ? s2[0] : void 0 : s2; this.mixinDatacomResData = i2, t2 && t2(i2); }).catch((e4) => { this.mixinDatacomLoading = false, this.mixinDatacomErrorMessage = e4, this.mixinDatacomError = e4, n2 && n2(e4); })); }, mixinDatacomGet(t2 = {}) { let n2; t2 = t2 || {}, n2 = "undefined" != typeof __uniX && __uniX ? e2.databaseForJQL(this.spaceInfo) : e2.database(this.spaceInfo); const s2 = t2.action || this.action; s2 && (n2 = n2.action(s2)); const r2 = t2.collection || this.collection; n2 = Array.isArray(r2) ? n2.collection(...r2) : n2.collection(r2); const i2 = t2.where || this.where; i2 && Object.keys(i2).length && (n2 = n2.where(i2)); const o2 = t2.field || this.field; o2 && (n2 = n2.field(o2)); const a2 = t2.foreignKey || this.foreignKey; a2 && (n2 = n2.foreignKey(a2)); const c2 = t2.groupby || this.groupby; c2 && (n2 = n2.groupBy(c2)); const u2 = t2.groupField || this.groupField; u2 && (n2 = n2.groupField(u2)); true === (void 0 !== t2.distinct ? t2.distinct : this.distinct) && (n2 = n2.distinct()); const l2 = t2.orderby || this.orderby; l2 && (n2 = n2.orderBy(l2)); const h2 = void 0 !== t2.pageCurrent ? t2.pageCurrent : this.mixinDatacomPage.current, d2 = void 0 !== t2.pageSize ? t2.pageSize : this.mixinDatacomPage.size, p2 = void 0 !== t2.getcount ? t2.getcount : this.getcount, f2 = void 0 !== t2.gettree ? t2.gettree : this.gettree, g2 = void 0 !== t2.gettreepath ? t2.gettreepath : this.gettreepath, m2 = { getCount: p2 }, y2 = { limitLevel: void 0 !== t2.limitlevel ? t2.limitlevel : this.limitlevel, startWith: void 0 !== t2.startwith ? t2.startwith : this.startwith }; return f2 && (m2.getTree = y2), g2 && (m2.getTreePath = y2), n2 = n2.skip(d2 * (h2 - 1)).limit(d2).get(m2), n2; } } }; } function qs(e2) { return function(t2, n2 = {}) { n2 = function(e3, t3 = {}) { return e3.customUI = t3.customUI || e3.customUI, e3.parseSystemError = t3.parseSystemError || e3.parseSystemError, Object.assign(e3.loadingOptions, t3.loadingOptions), Object.assign(e3.errorOptions, t3.errorOptions), "object" == typeof t3.secretMethods && (e3.secretMethods = t3.secretMethods), e3; }({ customUI: false, loadingOptions: { title: "加载中...", mask: true }, errorOptions: { type: "modal", retry: false } }, n2); const { customUI: s2, loadingOptions: r2, errorOptions: i2, parseSystemError: o2 } = n2, a2 = !s2; return new Proxy({}, { get(s3, c2) { switch (c2) { case "toString": return "[object UniCloudObject]"; case "toJSON": return {}; } return function({ fn: e3, interceptorName: t3, getCallbackArgs: n3 } = {}) { return async function(...s4) { const r3 = n3 ? n3({ params: s4 }) : {}; let i3, o3; try { return await M(q(t3, "invoke"), { ...r3 }), i3 = await e3(...s4), await M(q(t3, "success"), { ...r3, result: i3 }), i3; } catch (e4) { throw o3 = e4, await M(q(t3, "fail"), { ...r3, error: o3 }), o3; } finally { await M(q(t3, "complete"), o3 ? { ...r3, error: o3 } : { ...r3, result: i3 }); } }; }({ fn: async function s4(...l2) { let h2; a2 && uni.showLoading({ title: r2.title, mask: r2.mask }); const d2 = { name: t2, type: u, data: { method: c2, params: l2 } }; "object" == typeof n2.secretMethods && function(e3, t3) { const n3 = t3.data.method, s5 = e3.secretMethods || {}, r3 = s5[n3] || s5["*"]; r3 && (t3.secretType = r3); }(n2, d2); let p2 = false; try { h2 = await e2.callFunction(d2); } catch (e3) { p2 = true, h2 = { result: new te(e3) }; } const { errSubject: f2, errCode: g2, errMsg: m2, newToken: y2 } = h2.result || {}; if (a2 && uni.hideLoading(), y2 && y2.token && y2.tokenExpired && (ie(y2), Y(B, { ...y2 })), g2) { let e3 = m2; if (p2 && o2) { e3 = (await o2({ objectName: t2, methodName: c2, params: l2, errSubject: f2, errCode: g2, errMsg: m2 })).errMsg || m2; } if (a2) if ("toast" === i2.type) uni.showToast({ title: e3, icon: "none" }); else { if ("modal" !== i2.type) throw new Error(`Invalid errorOptions.type: ${i2.type}`); { const { confirm: t3 } = await async function({ title: e4, content: t4, showCancel: n4, cancelText: s5, confirmText: r3 } = {}) { return new Promise((i3, o3) => { uni.showModal({ title: e4, content: t4, showCancel: n4, cancelText: s5, confirmText: r3, success(e5) { i3(e5); }, fail() { i3({ confirm: false, cancel: true }); } }); }); }({ title: "提示", content: e3, showCancel: i2.retry, cancelText: "取消", confirmText: i2.retry ? "重试" : "确定" }); if (i2.retry && t3) return s4(...l2); } } const n3 = new te({ subject: f2, code: g2, message: m2, requestId: h2.requestId }); throw n3.detail = h2.result, Y(j, { type: J, content: n3 }), n3; } return Y(j, { type: J, content: h2.result }), h2.result; }, interceptorName: "callObject", getCallbackArgs: function({ params: e3 } = {}) { return { objectName: t2, methodName: c2, params: e3 }; } }); } }); }; } function Fs(e2) { return L("_globalUniCloudSecureNetworkCache__{spaceId}".replace("{spaceId}", e2.config.spaceId)); } async function Ks({ openid: e2, callLoginByWeixin: t2 = false } = {}) { Fs(this); throw new Error(`[SecureNetwork] API \`initSecureNetworkByWeixin\` is not supported on platform \`${C}\``); } async function js(e2) { const t2 = Fs(this); return t2.initPromise || (t2.initPromise = Ks.call(this, e2).then((e3) => e3).catch((e3) => { throw delete t2.initPromise, e3; })), t2.initPromise; } function $s(e2) { return function({ openid: t2, callLoginByWeixin: n2 = false } = {}) { return js.call(e2, { openid: t2, callLoginByWeixin: n2 }); }; } function Bs(e2) { !function(e3) { le = e3; }(e2); } function Ws(e2) { const t2 = { getSystemInfo: uni.getSystemInfo, getPushClientId: uni.getPushClientId }; return function(n2) { return new Promise((s2, r2) => { t2[e2]({ ...n2, success(e3) { s2(e3); }, fail(e3) { r2(e3); } }); }); }; } class Hs extends class { constructor() { this._callback = {}; } addListener(e2, t2) { this._callback[e2] || (this._callback[e2] = []), this._callback[e2].push(t2); } on(e2, t2) { return this.addListener(e2, t2); } removeListener(e2, t2) { if (!t2) throw new Error('The "listener" argument must be of type function. Received undefined'); const n2 = this._callback[e2]; if (!n2) return; const s2 = function(e3, t3) { for (let n3 = e3.length - 1; n3 >= 0; n3--) if (e3[n3] === t3) return n3; return -1; }(n2, t2); n2.splice(s2, 1); } off(e2, t2) { return this.removeListener(e2, t2); } removeAllListener(e2) { delete this._callback[e2]; } emit(e2, ...t2) { const n2 = this._callback[e2]; if (n2) for (let e3 = 0; e3 < n2.length; e3++) n2[e3](...t2); } } { constructor() { super(), this._uniPushMessageCallback = this._receivePushMessage.bind(this), this._currentMessageId = -1, this._payloadQueue = []; } init() { return Promise.all([Ws("getSystemInfo")(), Ws("getPushClientId")()]).then(([{ appId: e2 } = {}, { cid: t2 } = {}] = []) => { if (!e2) throw new Error("Invalid appId, please check the manifest.json file"); if (!t2) throw new Error("Invalid push client id"); this._appId = e2, this._pushClientId = t2, this._seqId = Date.now() + "-" + Math.floor(9e5 * Math.random() + 1e5), this.emit("open"), this._initMessageListener(); }, (e2) => { throw this.emit("error", e2), this.close(), e2; }); } async open() { return this.init(); } _isUniCloudSSE(e2) { if ("receive" !== e2.type) return false; const t2 = e2 && e2.data && e2.data.payload; return !(!t2 || "UNI_CLOUD_SSE" !== t2.channel || t2.seqId !== this._seqId); } _receivePushMessage(e2) { if (!this._isUniCloudSSE(e2)) return; const t2 = e2 && e2.data && e2.data.payload, { action: n2, messageId: s2, message: r2 } = t2; this._payloadQueue.push({ action: n2, messageId: s2, message: r2 }), this._consumMessage(); } _consumMessage() { for (; ; ) { const e2 = this._payloadQueue.find((e3) => e3.messageId === this._currentMessageId + 1); if (!e2) break; this._currentMessageId++, this._parseMessagePayload(e2); } } _parseMessagePayload(e2) { const { action: t2, messageId: n2, message: s2 } = e2; "end" === t2 ? this._end({ messageId: n2, message: s2 }) : "message" === t2 && this._appendMessage({ messageId: n2, message: s2 }); } _appendMessage({ messageId: e2, message: t2 } = {}) { this.emit("message", t2); } _end({ messageId: e2, message: t2 } = {}) { this.emit("end", t2), this.close(); } _initMessageListener() { uni.onPushMessage(this._uniPushMessageCallback); } _destroy() { uni.offPushMessage(this._uniPushMessageCallback); } toJSON() { return { appId: this._appId, pushClientId: this._pushClientId, seqId: this._seqId }; } close() { this._destroy(), this.emit("close"); } } async function Js(e2) { { const { osName: e3, osVersion: t3 } = ce(); "ios" === e3 && function(e4) { if (!e4 || "string" != typeof e4) return 0; const t4 = e4.match(/^(\d+)./); return t4 && t4[1] ? parseInt(t4[1]) : 0; }(t3) >= 14 && console.warn("iOS 14及以上版本连接uniCloud本地调试服务需要允许客户端查找并连接到本地网络上的设备(仅开发期间需要,发行后不需要)"); } const t2 = e2.__dev__; if (!t2.debugInfo) return; const { address: n2, servePort: s2 } = t2.debugInfo, { address: r2 } = await At(n2, s2); if (r2) return t2.localAddress = r2, void (t2.localPort = s2); const i2 = console["error"]; let o2 = ""; if ("remote" === t2.debugInfo.initialLaunchType ? (t2.debugInfo.forceRemote = true, o2 = "当前客户端和HBuilderX不在同一局域网下(或其他网络原因无法连接HBuilderX),uniCloud本地调试服务不对当前客户端生效。\n- 如果不使用uniCloud本地调试服务,请直接忽略此信息。\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。") : o2 = "无法连接uniCloud本地调试服务,请检查当前客户端是否与主机在同一局域网下。\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。", o2 += "\n- 如果在HBuilderX开启的状态下切换过网络环境,请重启HBuilderX后再试\n- 检查系统防火墙是否拦截了HBuilderX自带的nodejs\n- 检查是否错误的使用拦截器修改uni.request方法的参数", 0 === C.indexOf("mp-") && (o2 += "\n- 小程序中如何使用uniCloud,请参考:https://uniapp.dcloud.net.cn/uniCloud/publish.html#useinmp"), !t2.debugInfo.forceRemote) throw new Error(o2); i2(o2); } function zs(e2) { e2._initPromiseHub || (e2._initPromiseHub = new v({ createPromise: function() { let t2 = Promise.resolve(); var n2; n2 = 1, t2 = new Promise((e3) => { setTimeout(() => { e3(); }, n2); }); const s2 = e2.auth(); return t2.then(() => s2.getLoginState()).then((e3) => e3 ? Promise.resolve() : s2.signInAnonymously()); } })); } const Vs = { tcb: bt, tencent: bt, aliyun: fe, private: Tt, dcloud: Tt, alipay: qt }; let Gs = new class { init(e2) { let t2 = {}; const n2 = Vs[e2.provider]; if (!n2) throw new Error("未提供正确的provider参数"); t2 = n2.init(e2), function(e3) { const t3 = {}; e3.__dev__ = t3, t3.debugLog = "app" === C; const n3 = P; n3 && !n3.code && (t3.debugInfo = n3); const s2 = new v({ createPromise: function() { return Js(e3); } }); t3.initLocalNetwork = function() { return s2.exec(); }; }(t2), zs(t2), Jn(t2), function(e3) { const t3 = e3.uploadFile; e3.uploadFile = function(e4) { return t3.call(this, e4); }; }(t2), function(e3) { e3.database = function(t3) { if (t3 && Object.keys(t3).length > 0) return e3.init(t3).database(); if (this._database) return this._database; const n3 = ss(rs, { uniClient: e3 }); return this._database = n3, n3; }, e3.databaseForJQL = function(t3) { if (t3 && Object.keys(t3).length > 0) return e3.init(t3).databaseForJQL(); if (this._databaseForJQL) return this._databaseForJQL; const n3 = ss(rs, { uniClient: e3, isJQL: true }); return this._databaseForJQL = n3, n3; }; }(t2), function(e3) { e3.getCurrentUserInfo = Rs, e3.chooseAndUploadFile = Ns.initChooseAndUploadFile(e3), Object.assign(e3, { get mixinDatacom() { return Ms(e3); } }), e3.SSEChannel = Hs, e3.initSecureNetworkByWeixin = $s(e3), e3.setCustomClientInfo = Bs, e3.importObject = qs(e3); }(t2); return ["callFunction", "uploadFile", "deleteFile", "getTempFileURL", "downloadFile", "chooseAndUploadFile"].forEach((e3) => { if (!t2[e3]) return; const n3 = t2[e3]; t2[e3] = function() { return n3.apply(t2, Array.from(arguments)); }, t2[e3] = (/* @__PURE__ */ function(e4, t3) { return function(n4) { let s2 = false; if ("callFunction" === t3) { const e5 = n4 && n4.type || c; s2 = e5 !== c; } const r2 = "callFunction" === t3 && !s2, i2 = this._initPromiseHub.exec(); n4 = n4 || {}; const { success: o2, fail: a2, complete: u2 } = ee(n4), l2 = i2.then(() => s2 ? Promise.resolve() : M(q(t3, "invoke"), n4)).then(() => e4.call(this, n4)).then((e5) => s2 ? Promise.resolve(e5) : M(q(t3, "success"), e5).then(() => M(q(t3, "complete"), e5)).then(() => (r2 && Y(j, { type: H, content: e5 }), Promise.resolve(e5))), (e5) => s2 ? Promise.reject(e5) : M(q(t3, "fail"), e5).then(() => M(q(t3, "complete"), e5)).then(() => (Y(j, { type: H, content: e5 }), Promise.reject(e5)))); if (!(o2 || a2 || u2)) return l2; l2.then((e5) => { o2 && o2(e5), u2 && u2(e5), r2 && Y(j, { type: H, content: e5 }); }, (e5) => { a2 && a2(e5), u2 && u2(e5), r2 && Y(j, { type: H, content: e5 }); }); }; }(t2[e3], e3)).bind(t2); }), t2.init = this.init, t2; } }(); (() => { const e2 = T; let t2 = {}; if (e2 && 1 === e2.length) t2 = e2[0], Gs = Gs.init(t2), Gs._isDefault = true; else { const t3 = ["auth", "callFunction", "uploadFile", "deleteFile", "getTempFileURL", "downloadFile", "database", "getCurrentUSerInfo", "importObject"]; let n2; n2 = e2 && e2.length > 0 ? "应用有多个服务空间,请通过uniCloud.init方法指定要使用的服务空间" : "应用未关联服务空间,请在uniCloud目录右键关联服务空间", t3.forEach((e3) => { Gs[e3] = function() { return console.error(n2), Promise.reject(new te({ code: "SYS_ERR", message: n2 })); }; }); } Object.assign(Gs, { get mixinDatacom() { return Ms(Gs); } }), xs(Gs), Gs.addInterceptor = N, Gs.removeInterceptor = D, Gs.interceptObject = F; })(); var Ys = Gs; const _sfc_main$u = { name: "uni-data-select", mixins: [Ys.mixinDatacom || {}], props: { localdata: { type: Array, default() { return []; } }, value: { type: [String, Number], default: "" }, modelValue: { type: [String, Number], default: "" }, label: { type: String, default: "" }, placeholder: { type: String, default: "请选择" }, emptyTips: { type: String, default: "无选项" }, clear: { type: Boolean, default: true }, defItem: { type: Number, default: 0 }, disabled: { type: Boolean, default: false }, // 格式化输出 用法 field="_id as value, version as text, uni_platform as label" format="{label} - {text}" format: { type: String, default: "" }, placement: { type: String, default: "bottom" } }, data() { return { showSelector: false, current: "", mixinDatacomResData: [], apps: [], channels: [], cacheKey: "uni-data-select-lastSelectedValue" }; }, created() { this.debounceGet = this.debounce(() => { this.query(); }, 300); if (this.collection && !this.localdata.length) { this.debounceGet(); } }, computed: { typePlaceholder() { const text = { "opendb-stat-app-versions": "版本", "opendb-app-channels": "渠道", "opendb-app-list": "应用" }; const common = this.placeholder; const placeholder = text[this.collection]; return placeholder ? common + placeholder : common; }, valueCom() { return this.modelValue; }, textShow() { let text = this.current; if (text.length > 10) { return text.slice(0, 25) + "..."; } return text; }, getOffsetByPlacement() { switch (this.placement) { case "top": return "bottom:calc(100% + 12px);"; case "bottom": return "top:calc(100% + 12px);"; } } }, watch: { localdata: { immediate: true, handler(val, old) { if (Array.isArray(val) && old !== val) { this.mixinDatacomResData = val; } } }, valueCom(val, old) { this.initDefVal(); }, mixinDatacomResData: { immediate: true, handler(val) { if (val.length) { this.initDefVal(); } } } }, methods: { debounce(fn, time = 100) { let timer = null; return function(...args) { if (timer) clearTimeout(timer); timer = setTimeout(() => { fn.apply(this, args); }, time); }; }, // 执行数据库查询 query() { this.mixinDatacomEasyGet(); }, // 监听查询条件变更事件 onMixinDatacomPropsChange() { if (this.collection) { this.debounceGet(); } }, initDefVal() { let defValue = ""; if ((this.valueCom || this.valueCom === 0) && !this.isDisabled(this.valueCom)) { defValue = this.valueCom; } else { let strogeValue; if (this.collection) { strogeValue = this.getCache(); } if (strogeValue || strogeValue === 0) { defValue = strogeValue; } else { let defItem = ""; if (this.defItem > 0 && this.defItem <= this.mixinDatacomResData.length) { defItem = this.mixinDatacomResData[this.defItem - 1].value; } defValue = defItem; } if (defValue || defValue === 0) { this.emit(defValue); } } const def = this.mixinDatacomResData.find((item) => item.value === defValue); this.current = def ? this.formatItemName(def) : ""; }, /** * @param {[String, Number]} value * 判断用户给的 value 是否同时为禁用状态 */ isDisabled(value) { let isDisabled = false; this.mixinDatacomResData.forEach((item) => { if (item.value === value) { isDisabled = item.disable; } }); return isDisabled; }, clearVal() { this.emit(""); if (this.collection) { this.removeCache(); } }, change(item) { if (!item.disable) { this.showSelector = false; this.current = this.formatItemName(item); this.emit(item.value); } }, emit(val) { this.$emit("input", val); this.$emit("update:modelValue", val); this.$emit("change", val); if (this.collection) { this.setCache(val); } }, toggleSelector() { if (this.disabled) { return; } this.showSelector = !this.showSelector; }, formatItemName(item) { let { text, value, channel_code } = item; channel_code = channel_code ? `(${channel_code})` : ""; if (this.format) { let str = ""; str = this.format; for (let key in item) { str = str.replace(new RegExp(`{${key}}`, "g"), item[key]); } return str; } else { return this.collection.indexOf("app-list") > 0 ? `${text}(${value})` : text ? text : `未命名${channel_code}`; } }, // 获取当前加载的数据 getLoadData() { return this.mixinDatacomResData; }, // 获取当前缓存key getCurrentCacheKey() { return this.collection; }, // 获取缓存 getCache(name = this.getCurrentCacheKey()) { let cacheData = uni.getStorageSync(this.cacheKey) || {}; return cacheData[name]; }, // 设置缓存 setCache(value, name = this.getCurrentCacheKey()) { let cacheData = uni.getStorageSync(this.cacheKey) || {}; cacheData[name] = value; uni.setStorageSync(this.cacheKey, cacheData); }, // 删除缓存 removeCache(name = this.getCurrentCacheKey()) { let cacheData = uni.getStorageSync(this.cacheKey) || {}; delete cacheData[name]; uni.setStorageSync(this.cacheKey, cacheData); } } }; function _sfc_render$t(_ctx, _cache, $props, $setup, $data, $options) { const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4); return vue.openBlock(), vue.createElementBlock("view", { class: "uni-stat__select" }, [ $props.label ? (vue.openBlock(), vue.createElementBlock( "span", { key: 0, class: "uni-label-text hide-on-phone" }, vue.toDisplayString($props.label + ":"), 1 /* TEXT */ )) : vue.createCommentVNode("v-if", true), vue.createElementVNode( "view", { class: vue.normalizeClass(["uni-stat-box", { "uni-stat__actived": $data.current }]) }, [ vue.createElementVNode( "view", { class: vue.normalizeClass(["uni-select", { "uni-select--disabled": $props.disabled }]) }, [ vue.createElementVNode("view", { class: "uni-select__input-box", onClick: _cache[1] || (_cache[1] = (...args) => $options.toggleSelector && $options.toggleSelector(...args)) }, [ $data.current ? (vue.openBlock(), vue.createElementBlock( "view", { key: 0, class: "uni-select__input-text" }, vue.toDisplayString($options.textShow), 1 /* TEXT */ )) : (vue.openBlock(), vue.createElementBlock( "view", { key: 1, class: "uni-select__input-text uni-select__input-placeholder" }, vue.toDisplayString($options.typePlaceholder), 1 /* TEXT */ )), $data.current && $props.clear && !$props.disabled ? (vue.openBlock(), vue.createElementBlock("view", { key: 2, onClick: _cache[0] || (_cache[0] = vue.withModifiers((...args) => $options.clearVal && $options.clearVal(...args), ["stop"])) }, [ vue.createVNode(_component_uni_icons, { type: "clear", color: "#c0c4cc", size: "24" }) ])) : (vue.openBlock(), vue.createElementBlock("view", { key: 3 }, [ vue.createVNode(_component_uni_icons, { type: $data.showSelector ? "top" : "bottom", size: "14", color: "#999" }, null, 8, ["type"]) ])) ]), $data.showSelector ? (vue.openBlock(), vue.createElementBlock("view", { key: 0, class: "uni-select--mask", onClick: _cache[2] || (_cache[2] = (...args) => $options.toggleSelector && $options.toggleSelector(...args)) })) : vue.createCommentVNode("v-if", true), $data.showSelector ? (vue.openBlock(), vue.createElementBlock( "view", { key: 1, class: "uni-select__selector", style: vue.normalizeStyle($options.getOffsetByPlacement) }, [ vue.createElementVNode( "view", { class: vue.normalizeClass($props.placement == "bottom" ? "uni-popper__arrow_bottom" : "uni-popper__arrow_top") }, null, 2 /* CLASS */ ), vue.createElementVNode("scroll-view", { "scroll-y": "true", class: "uni-select__selector-scroll" }, [ $data.mixinDatacomResData.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", { key: 0, class: "uni-select__selector-empty" }, [ vue.createElementVNode( "text", null, vue.toDisplayString($props.emptyTips), 1 /* TEXT */ ) ])) : (vue.openBlock(true), vue.createElementBlock( vue.Fragment, { key: 1 }, vue.renderList($data.mixinDatacomResData, (item, index) => { return vue.openBlock(), vue.createElementBlock("view", { class: "uni-select__selector-item", key: index, onClick: ($event) => $options.change(item) }, [ vue.createElementVNode( "text", { class: vue.normalizeClass({ "uni-select__selector__disabled": item.disable }) }, vue.toDisplayString($options.formatItemName(item)), 3 /* TEXT, CLASS */ ) ], 8, ["onClick"]); }), 128 /* KEYED_FRAGMENT */ )) ]) ], 4 /* STYLE */ )) : vue.createCommentVNode("v-if", true) ], 2 /* CLASS */ ) ], 2 /* CLASS */ ) ]); } const __easycom_0$6 = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["render", _sfc_render$t], ["__scopeId", "data-v-ddf9e0a2"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue"]]); const isObject = (val) => val !== null && typeof val === "object"; const defaultDelimiters = ["{", "}"]; class BaseFormatter { constructor() { this._caches = /* @__PURE__ */ Object.create(null); } interpolate(message, values, delimiters = defaultDelimiters) { if (!values) { return [message]; } let tokens = this._caches[message]; if (!tokens) { tokens = parse(message, delimiters); this._caches[message] = tokens; } return compile(tokens, values); } } const RE_TOKEN_LIST_VALUE = /^(?:\d)+/; const RE_TOKEN_NAMED_VALUE = /^(?:\w)+/; function parse(format, [startDelimiter, endDelimiter]) { const tokens = []; let position = 0; let text = ""; while (position < format.length) { let char = format[position++]; if (char === startDelimiter) { if (text) { tokens.push({ type: "text", value: text }); } text = ""; let sub = ""; char = format[position++]; while (char !== void 0 && char !== endDelimiter) { sub += char; char = format[position++]; } const isClosed = char === endDelimiter; const type = RE_TOKEN_LIST_VALUE.test(sub) ? "list" : isClosed && RE_TOKEN_NAMED_VALUE.test(sub) ? "named" : "unknown"; tokens.push({ value: sub, type }); } else { text += char; } } text && tokens.push({ type: "text", value: text }); return tokens; } function compile(tokens, values) { const compiled = []; let index = 0; const mode = Array.isArray(values) ? "list" : isObject(values) ? "named" : "unknown"; if (mode === "unknown") { return compiled; } while (index < tokens.length) { const token = tokens[index]; switch (token.type) { case "text": compiled.push(token.value); break; case "list": compiled.push(values[parseInt(token.value, 10)]); break; case "named": if (mode === "named") { compiled.push(values[token.value]); } else { { console.warn(`Type of token '${token.type}' and format of value '${mode}' don't match!`); } } break; case "unknown": { console.warn(`Detect 'unknown' type of token!`); } break; } index++; } return compiled; } const LOCALE_ZH_HANS = "zh-Hans"; const LOCALE_ZH_HANT = "zh-Hant"; const LOCALE_EN = "en"; const LOCALE_FR = "fr"; const LOCALE_ES = "es"; const hasOwnProperty = Object.prototype.hasOwnProperty; const hasOwn = (val, key) => hasOwnProperty.call(val, key); const defaultFormatter = new BaseFormatter(); 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, messages2) { if (!locale) { return; } locale = locale.trim().replace(/_/g, "-"); if (messages2 && messages2[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 (messages2 && Object.keys(messages2).length > 0) { locales = Object.keys(messages2); } const lang = startsWith(locale, locales); if (lang) { return lang; } } class I18n { constructor({ locale, fallbackLocale, messages: messages2, watcher, formater: formater2 }) { this.locale = LOCALE_EN; this.fallbackLocale = LOCALE_EN; this.message = {}; this.messages = {}; this.watchers = []; if (fallbackLocale) { this.fallbackLocale = fallbackLocale; } this.formater = formater2 || defaultFormatter; this.messages = messages2 || {}; this.setLocale(locale || LOCALE_EN); if (watcher) { this.watchLocale(watcher); } } setLocale(locale) { const oldLocale = this.locale; this.locale = normalizeLocale(locale, this.messages) || this.fallbackLocale; if (!this.messages[this.locale]) { this.messages[this.locale] = {}; } this.message = this.messages[this.locale]; if (oldLocale !== this.locale) { this.watchers.forEach((watcher) => { watcher(this.locale, oldLocale); }); } } getLocale() { return this.locale; } watchLocale(fn) { const index = this.watchers.push(fn) - 1; return () => { this.watchers.splice(index, 1); }; } add(locale, message, override = true) { const curMessages = this.messages[locale]; if (curMessages) { if (override) { Object.assign(curMessages, message); } else { Object.keys(message).forEach((key) => { if (!hasOwn(curMessages, key)) { curMessages[key] = message[key]; } }); } } else { this.messages[locale] = message; } } f(message, values, delimiters) { return this.formater.interpolate(message, values, delimiters).join(""); } t(key, locale, values) { let message = this.message; if (typeof locale === "string") { locale = normalizeLocale(locale, this.messages); locale && (message = this.messages[locale]); } else { values = locale; } if (!hasOwn(message, key)) { console.warn(`Cannot translate the value of keypath ${key}. Use the value of keypath as default.`); return key; } return this.formater.interpolate(message[key], values).join(""); } } function watchAppLocale(appVm, i18n) { if (appVm.$watchLocale) { appVm.$watchLocale((newLocale) => { i18n.setLocale(newLocale); }); } else { appVm.$watch(() => appVm.$locale, (newLocale) => { i18n.setLocale(newLocale); }); } } function getDefaultLocale() { if (typeof uni !== "undefined" && uni.getLocale) { return uni.getLocale(); } if (typeof global !== "undefined" && global.getLocale) { return global.getLocale(); } return LOCALE_EN; } function initVueI18n(locale, messages2 = {}, fallbackLocale, watcher) { if (typeof locale !== "string") { const options = [ messages2, locale ]; locale = options[0]; messages2 = options[1]; } if (typeof locale !== "string") { locale = getDefaultLocale(); } if (typeof fallbackLocale !== "string") { fallbackLocale = typeof __uniConfig !== "undefined" && __uniConfig.fallbackLocale || LOCALE_EN; } const i18n = new I18n({ locale, fallbackLocale, messages: messages2, watcher }); let t2 = (key, values) => { if (typeof getApp !== "function") { t2 = function(key2, values2) { return i18n.t(key2, values2); }; } else { let isWatchedAppLocale = false; t2 = function(key2, values2) { const appVm = getApp().$vm; if (appVm) { appVm.$locale; if (!isWatchedAppLocale) { isWatchedAppLocale = true; watchAppLocale(appVm, i18n); } } return i18n.t(key2, values2); }; } return t2(key, values); }; return { i18n, f(message, values, delimiters) { return i18n.f(message, values, delimiters); }, t(key, values) { return t2(key, values); }, add(locale2, message, override = true) { return i18n.add(locale2, message, override); }, watch(fn) { return i18n.watchLocale(fn); }, getLocale() { return i18n.getLocale(); }, setLocale(newLocale) { return i18n.setLocale(newLocale); } }; } const en$1 = { "uni-load-more.contentdown": "Pull up to show more", "uni-load-more.contentrefresh": "loading...", "uni-load-more.contentnomore": "No more data" }; const zhHans$1 = { "uni-load-more.contentdown": "上拉显示更多", "uni-load-more.contentrefresh": "正在加载...", "uni-load-more.contentnomore": "没有更多数据了" }; const zhHant$1 = { "uni-load-more.contentdown": "上拉顯示更多", "uni-load-more.contentrefresh": "正在加載...", "uni-load-more.contentnomore": "沒有更多數據了" }; const messages$1 = { en: en$1, "zh-Hans": zhHans$1, "zh-Hant": zhHant$1 }; let platform; setTimeout(() => { platform = uni.getSystemInfoSync().platform; }, 16); const { t: t$1 } = initVueI18n(messages$1); const _sfc_main$t = { name: "UniLoadMore", emits: ["clickLoadMore"], props: { status: { // 上拉的状态:more-loading前;loading-loading中;noMore-没有更多了 type: String, default: "more" }, showIcon: { type: Boolean, default: true }, iconType: { type: String, default: "auto" }, iconSize: { type: Number, default: 24 }, color: { type: String, default: "#777777" }, contentText: { type: Object, default() { return { contentdown: "", contentrefresh: "", contentnomore: "" }; } }, showText: { type: Boolean, default: true } }, data() { return { webviewHide: false, platform, imgBase64: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzlBMzU3OTlEOUM0MTFFOUI0NTZDNERBQURBQzI4RkUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzlBMzU3OUFEOUM0MTFFOUI0NTZDNERBQURBQzI4RkUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDOUEzNTc5N0Q5QzQxMUU5QjQ1NkM0REFBREFDMjhGRSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDOUEzNTc5OEQ5QzQxMUU5QjQ1NkM0REFBREFDMjhGRSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pt+ALSwAAA6CSURBVHja1FsLkFZVHb98LM+F5bHL8khA1iSeiyQBCRM+YGqKUnnJTDLGI0BGZlKDIU2MMglUiDApEZvSsZnQtBRJtKwQNKQMFYeRDR10WOLd8ljYXdh+v8v5fR3Od+797t1dnOnO/Ofce77z+J//+b/P+ZqtXbs2sJ9MJhNUV1cHJ06cCJo3bx7EPc2aNcvpy7pWrVoF+/fvDyoqKoI2bdoE9fX1F7TjN8a+EXBn/fkfvw942Tf+wYMHg9mzZwfjxo0LDhw4EPa1x2MbFw/fOGfPng1qa2tzcCkILsLDydq2bRsunpOTMM7TD/W/tZDZhPdeKD+yGxHhdu3aBV27dg3OnDlzMVANMheLAO3btw8KCwuDmpoaX5OxbgUIMEq7K8IcPnw4KCsrC/r37x8cP378/4cAXAB3vqSkJMuiDhTkw+XcuXNhOWbMmKBly5YhUT8xArhyFvP0BfwRsAuwxJZJsm/nzp2DTp06he/OU+cZ64K6o0ePBkOHDg2GDx8e6gEbJ5Q/NHNuAJQ1hgBeHUDlR7nVTkY8rQAvAi4z34vR/mPs1FoRsaCgIJThI0eOBC1atEiFGGV+5MiRoS45efJkqFjJFXV1dQuA012m2WcwTw98fy6CqBdsaiIO4CScrGPHjvk4odhavPquRtFWXEC25VgkREKOCh/qDSq+vn37htzD/mZTOmOc5U7zKzBPEedygWshcDyWvs30igAbU+6oyMgJBCFhwQE0fccxN60Ay9iebbjoDh06hMowjQxT4fXq1SskArmHZpkArvixp/kWzHdMeArExSJEaiXIjjRjRJ4DaAGWpibLzXN3Fm1vA5teBgh3j1Rv3bp1YgKwPdmf2p9zcyNYYgPKMfY0T5f5nNYdw158nJ8QawW4CLKwiOBSEgO/hok2eBydR+3dYH+PLxA5J8Vv0KBBwenTp0P2JWAx6+yFEBfs8lMY+y0SWMBNI9E4ThKi58VKTg3FQZS1RQF1cz27eC0QHMu+3E0SkUowjhVt5VdaWhp07949ZHv2Qd1EjDXM2cla1M0nl3GxAs3J9yREzyTdFVKVFOaE9qRA8GM0WebRuo9JGZKA7Mv2SeS/Z8+eoQ9BArMfFrLGo6jvxbhHbJZnKX2Rzz1O7QhJJ9Cs2ZMaWIyq/zhdeqPNfIoHd58clIQD+JSXl4dKlyIAuBdVXZwFVWKspSSoxE++h8x4k3uCnEhE4I5KwRiFWGOU0QWKiCYLbdoRMRKAu2kQ9vkfLU6dOhX06NEjlH+yMRZSinnuyWnYosVcji8CEA/6Cg2JF+IIUBqnGKUTCNwtwBN4f89RiK1R96DEgO2o0NDmtEdvVFdVVYV+P3UAPUEs6GFwV3PHmXkD4vh74iDFJysVI/MlaQhwKeBNTLYX5VuA8T4/gZxA4MRGFxDB6R7OmYPfyykGRJbyie+XnGYnQIC/coH9+vULiYrxrkL9ZA9+0ykaHIfEpM7ge8TiJ2CsHYwyMfafAF1yCGBHYIbCVDjDjKt7BeB51D+LgQa6OkG7IDYEEtvQ7lnXLKLtLdLuJBpE4gPUXcW2+PkZwOex+4cGDhwYDBkyRL7/HFcEwUGPo/8uWRUpYnfxGHco8HkewLHLyYmAawAPuIFZxhOpDfJQ8gbUv41yORAptMWBNr6oqMhWird5+u+iHmBb2nhjDV7HWBNQTgK8y11l5NetWzc5ULscAtSj7nbNI0skhWeUZCc0W4nyH/jO4Vz0u1IeYhbk4AiwM6tjxIWByHsoZ9qcIBPJd/y+DwPfBESOmCa/QF3WiZHucLlEDpNxcNhmheEOPgdQNx6/VZFQzFZ5TN08AHXQt2Ii3EdyFuUsPtTcGPhW5iMiCNELvz+Gdn9huG4HUJaW/w3g0wxV0XaG7arG2WeKiUWYM4Y7GO5ezshTARbbWGw/DvXkpp/ivVvE0JVoMxN4rpGzJMhE5Pl+xlATsDIqikP9F9D2z3h9nOksEUFhK+qO4rcPkoalMQ/HqJLIyb3F3JdjrCcw1yZ8joyJLR5gCo54etlag7qIoeNh1N1BRYj3DTFJ0elotxPlVzkGuYAmL0VSJVGAJA41c4Z6A3BzTLfn0HYwYKEI6CUAMzZEWvLsIcQOo1AmmyyM72nHJCfYsogflGV6jEk9vyQZXSuq6w4c16NsGcGZbwOPr+H1RkOk2LEzjNepxQkihHSCQ4ynAYNRx2zMKV92CQMWqj8J0BRE8EShxRFN6YrfCRhC0x3r/Zm4IbQCcmJoV0kMamllccR6FjHqUC5F2R/wS2dcymOlfAKOS4KmzQb5cpNC2MC7JhVn5wjXoJ44rYhLh8n0eXOCorJxa7POjbSlCGVczr34/RsAmrcvo9s+wGp3tzVhntxiXiJ4nvEYb4FJkf0O8HocAePmLvCxnL0AORraVekJk6TYjDabRVXfRE2lCN1h6ZQRN1+InUbsCpKwoBZHh0dODN9JBCUffItXxEavTQkUtnfTVAplCWL3JISz29h4NjotnuSsQKJCk8dF+kJR6RARjrqFVmfPnj3ZbK8cIJ0msd6jgHPGtfVTQ8VLmlvh4mct9sobRmPic0DyDQQnx/NlfYUgyz59+oScsH379pAwXABD32nTpoUHIToESeI5mnbE/UqDdyLcafEBf2MCqgC7NwxIbMREJQ0g4D4sfJwnD+AmRrII05cfMWJE+L1169bQr+fip06dGp4oJ83lmYd5wj/EmMa4TaHivo4EeCguYZBnkB5g2aWA69OIEnUHOaGysjIYMGBAMGnSpODYsWPZwCpFmm4lNq+4gSLQA7jcX8DwtjEyRC8wjabnXEx9kfWnTJkSJkAo90xpJVV+FmcVNeYAF5zWngS4C4O91MBxmAv8blLEpbjI5sz9MTdAhcgkCT1RO8mZkAjfiYpTEvStAS53Uw1vAiUGgZ3GpuQEYvoiBqlIan7kSDHnTwJQFNiPu0+5VxCVYhcZIjNrdXUDdp+Eq5AZ3Gkg8QAyVZRZIk4Tl4QAbF9cXJxNYZMAtAokgs4BrNxEpCtteXg7DDTMDKYNSuQdKsnJBek7HxewvxaosWxLYXtw+cJp18217wql4aKCfBNoEu0O5VU+PhctJ0YeXD4C6JQpyrlpSLTojpGGGN5YwNziChdIZLk4lvLcFJ9jMX3QdiImY9bmGQU+TRUL5CHITTRlgF8D9ouD1MfmLoEPl5xokIumZ2cfgMpHt47IW9N64Hsh7wQYYjyIugWuF5fCqYncXRd5vPMWyizzvhi/32+nvG0dZc9vR6fZOu0md5e+uC408FvKSIOZwXlGvxPv95izA2Vtvg1xKFWARI+vMX66HUhpQQb643uW1bSjuTWyw2SBvDrBvjFic1eGGlz5esq3ko9uSIlBRqPuFcCv8F4WIcN12nVaBd0SaYwI6PDDImR11JkqgHcPmQssjxIn6bUshygDFJUTxPMpHk+jfjPgupgdnYV2R/g7xSjtpah8RJBewhwf0gGK6XI92u4wXFEU40afJ4DN4h5LcAd+40HI3JgJecuT0c062W0i2hQJUTcxan3/CMW1PF2K6bbA+Daz4xRs1D3Br1Cm0OihKCqizW78/nXAF/G5TXrEcVzaNMH6CyMswqsAHqDyDLEyou8lwOXnKF8DjI6KjV3KzMBiXkDH8ij/H214J5A596ekrZ3F0zXlWeL7+P5eUrNo3/QwC15uxthuzidy7DzKRwEDaAViiDgKbTbz7CJnzo0bN7pIfIiid8SuPwn25o3QCmpnyjlZkyxPP8EomCJzrGb7GJMx7tNsq4MT2xMUYaiErZOluTzKsnz3gwCeCZyVRZJfYplNEokEjwrPtxlxjeYAk+F1F74VAzPxQRNYYdtpOUvWs8J1sGhBJMNsb7igN8plJs1eSmLIhLKE4rvaCX27gOhLpLOsIzJ7qn/i+wZzcvSOZ23/du8TZjwV8zHIXoP4R3ifBxiFz1dcVpa3aPntPE+c6TmIWE9EtcMmAcPdWAhYhAXxcLOQi9L1WhD1Sc8p1d2oL7XGiRKp8F4A2i8K/nfI+y/gsTDJ/YC/8+AD5Uh04KHiGl+cIFPnBDDrPMjwRGkLXyxO4VGbfQWnDH2v0bVWE3C9QOXlepbgjEfIJQI6XDG3z5ahD9cw2pS78ipB85wyScNTvsVzlzzhL8/jRrnmVjfFJK/m3m4nj9vbgQTguT8XZTjsm672R5uJKEaQmBI/c58gyus8ZDagLpEVSJBIyHp4jn++xqPV71OgQgJYEWOtZ/haxRtKmWOBu8xdBLftWltsY84zE6WIEy/eIOWL+BaayMx+KHtL7EAkqdNDLiEXmEMUHniedtJqg9HmZtfvt26vNi0BdG3Ft3g8ZOf7PAu59TxtzivLNIekyi+wD1i8CuUiD9FXAa8C+/xS3JPmZnomyc7H+fb4/Se0bk41Fel621r4cgVxbq91V4jVqwB7HTe2M7jgB+QWHavZkDRPmZcASoZEmBx6i75bGjPcMdL4/VKGFAGWZkGzPG0XAbdL9A81G5LOmUnC9hHKJeO7dcUMjblSl12867ElFTtaGl20xvvLGPdVz/8TVuU7y0x1PG7vtNg24oz9Uo/Z412++VFWI7Fcog9tu9Lm6gvRmIPv9x1xmQAu6RDkXtbOtlGEmpgD5Nvnyc0dcv0EE6cfdi1HmhMf9wDF3k3gtRvEedhxjpgfqPb9PU9iEJHnyOUA7bQUXh6kq/D7l2iTjWv7XOD530BDr8jIrus+srXjt4MzumJMHuTsBa63YKE1+RR5lBjEikCCnWKWiHdzOgKO+nRIBAF88za/IFmJ3eMZov4CYxGBabcpGL8EYx+SeMXJeRwHNsV/h+vdxeuhEpN3ZyNY78Gm2fknJxVGhyjixPiQvVkNzT1elD9Py/aTAL64Hb9vcYmC9zfdXdT/C1LeGbg4rnBaAihDFJH12W5ulfNCNe/xTsP3bp8ikzJs5BF+5PNfAQYAPaseTdsEcaYAAAAASUVORK5CYII=" }; }, computed: { iconSnowWidth() { return (Math.floor(this.iconSize / 24) || 1) * 2; }, contentdownText() { return this.contentText.contentdown || t$1("uni-load-more.contentdown"); }, contentrefreshText() { return this.contentText.contentrefresh || t$1("uni-load-more.contentrefresh"); }, contentnomoreText() { return this.contentText.contentnomore || t$1("uni-load-more.contentnomore"); } }, mounted() { var pages2 = getCurrentPages(); var page = pages2[pages2.length - 1]; var currentWebview = page.$getAppWebview(); currentWebview.addEventListener("hide", () => { this.webviewHide = true; }); currentWebview.addEventListener("show", () => { this.webviewHide = false; }); }, methods: { onClick() { this.$emit("clickLoadMore", { detail: { status: this.status } }); } } }; function _sfc_render$s(_ctx, _cache, $props, $setup, $data, $options) { return vue.openBlock(), vue.createElementBlock("view", { class: "uni-load-more", onClick: _cache[0] || (_cache[0] = (...args) => $options.onClick && $options.onClick(...args)) }, [ !$data.webviewHide && ($props.iconType === "circle" || $props.iconType === "auto" && $data.platform === "android") && $props.status === "loading" && $props.showIcon ? (vue.openBlock(), vue.createElementBlock( "view", { key: 0, style: vue.normalizeStyle({ width: $props.iconSize + "px", height: $props.iconSize + "px" }), class: "uni-load-more__img uni-load-more__img--android-MP" }, [ vue.createElementVNode( "view", { class: "uni-load-more__img-icon", style: vue.normalizeStyle({ borderTopColor: $props.color, borderTopWidth: $props.iconSize / 12 }) }, null, 4 /* STYLE */ ), vue.createElementVNode( "view", { class: "uni-load-more__img-icon", style: vue.normalizeStyle({ borderTopColor: $props.color, borderTopWidth: $props.iconSize / 12 }) }, null, 4 /* STYLE */ ), vue.createElementVNode( "view", { class: "uni-load-more__img-icon", style: vue.normalizeStyle({ borderTopColor: $props.color, borderTopWidth: $props.iconSize / 12 }) }, null, 4 /* STYLE */ ) ], 4 /* STYLE */ )) : !$data.webviewHide && $props.status === "loading" && $props.showIcon ? (vue.openBlock(), vue.createElementBlock( "view", { key: 1, style: vue.normalizeStyle({ width: $props.iconSize + "px", height: $props.iconSize + "px" }), class: "uni-load-more__img uni-load-more__img--ios-H5" }, [ vue.createElementVNode("image", { src: $data.imgBase64, mode: "widthFix" }, null, 8, ["src"]) ], 4 /* STYLE */ )) : vue.createCommentVNode("v-if", true), $props.showText ? (vue.openBlock(), vue.createElementBlock( "text", { key: 2, class: "uni-load-more__text", style: vue.normalizeStyle({ color: $props.color }) }, vue.toDisplayString($props.status === "more" ? $options.contentdownText : $props.status === "loading" ? $options.contentrefreshText : $options.contentnomoreText), 5 /* TEXT, STYLE */ )) : vue.createCommentVNode("v-if", true) ]); } const __easycom_0$5 = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["render", _sfc_render$s], ["__scopeId", "data-v-9245e42c"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue"]]); const _sfc_main$s = { name: "uniDataChecklist", mixins: [Ys.mixinDatacom || {}], emits: ["input", "update:modelValue", "change"], props: { mode: { type: String, default: "default" }, multiple: { type: Boolean, default: false }, value: { type: [Array, String, Number], default() { return ""; } }, // TODO vue3 modelValue: { type: [Array, String, Number], default() { return ""; } }, localdata: { type: Array, default() { return []; } }, min: { type: [Number, String], default: "" }, max: { type: [Number, String], default: "" }, wrap: { type: Boolean, default: false }, icon: { type: String, default: "left" }, selectedColor: { type: String, default: "" }, selectedTextColor: { type: String, default: "" }, emptyText: { type: String, default: "暂无数据" }, disabled: { type: Boolean, default: false }, map: { type: Object, default() { return { text: "text", value: "value" }; } } }, watch: { localdata: { handler(newVal) { this.range = newVal; this.dataList = this.getDataList(this.getSelectedValue(newVal)); }, deep: true }, mixinDatacomResData(newVal) { this.range = newVal; this.dataList = this.getDataList(this.getSelectedValue(newVal)); }, value(newVal) { this.dataList = this.getDataList(newVal); }, modelValue(newVal) { this.dataList = this.getDataList(newVal); } }, data() { return { dataList: [], range: [], contentText: { contentdown: "查看更多", contentrefresh: "加载中", contentnomore: "没有更多" }, isLocal: true, styles: { selectedColor: "#2979ff", selectedTextColor: "#666" }, isTop: 0 }; }, computed: { dataValue() { if (this.value === "") return this.modelValue; if (this.modelValue === "") return this.value; return this.value; } }, created() { if (this.localdata && this.localdata.length !== 0) { this.isLocal = true; this.range = this.localdata; this.dataList = this.getDataList(this.getSelectedValue(this.range)); } else { if (this.collection) { this.isLocal = false; this.loadData(); } } }, methods: { loadData() { this.mixinDatacomGet().then((res) => { this.mixinDatacomResData = res.result.data; if (this.mixinDatacomResData.length === 0) { this.isLocal = false; this.mixinDatacomErrorMessage = this.emptyText; } else { this.isLocal = true; } }).catch((err) => { this.mixinDatacomErrorMessage = err.message; }); }, /** * 获取父元素实例 */ getForm(name = "uniForms") { let parent = this.$parent; let parentName = parent.$options.name; while (parentName !== name) { parent = parent.$parent; if (!parent) return false; parentName = parent.$options.name; } return parent; }, change(e2) { const values = e2.detail.value; let detail = { value: [], data: [] }; if (this.multiple) { this.range.forEach((item) => { if (values.includes(item[this.map.value] + "")) { detail.value.push(item[this.map.value]); detail.data.push(item); } }); } else { const range = this.range.find((item) => item[this.map.value] + "" === values); if (range) { detail = { value: range[this.map.value], data: range }; } } this.$emit("input", detail.value); this.$emit("update:modelValue", detail.value); this.$emit("change", { detail }); if (this.multiple) { this.dataList = this.getDataList(detail.value, true); } else { this.dataList = this.getDataList(detail.value); } }, /** * 获取渲染的新数组 * @param {Object} value 选中内容 */ getDataList(value) { let dataList = JSON.parse(JSON.stringify(this.range)); let list = []; if (this.multiple) { if (!Array.isArray(value)) { value = []; } } dataList.forEach((item, index) => { item.disabled = item.disable || item.disabled || false; if (this.multiple) { if (value.length > 0) { let have = value.find((val) => val === item[this.map.value]); item.selected = have !== void 0; } else { item.selected = false; } } else { item.selected = value === item[this.map.value]; } list.push(item); }); return this.setRange(list); }, /** * 处理最大最小值 * @param {Object} list */ setRange(list) { let selectList = list.filter((item) => item.selected); let min = Number(this.min) || 0; let max = Number(this.max) || ""; list.forEach((item, index) => { if (this.multiple) { if (selectList.length <= min) { let have = selectList.find((val) => val[this.map.value] === item[this.map.value]); if (have !== void 0) { item.disabled = true; } } if (selectList.length >= max && max !== "") { let have = selectList.find((val) => val[this.map.value] === item[this.map.value]); if (have === void 0) { item.disabled = true; } } } this.setStyles(item, index); list[index] = item; }); return list; }, /** * 设置 class * @param {Object} item * @param {Object} index */ setStyles(item, index) { item.styleBackgroud = this.setStyleBackgroud(item); item.styleIcon = this.setStyleIcon(item); item.styleIconText = this.setStyleIconText(item); item.styleRightIcon = this.setStyleRightIcon(item); }, /** * 获取选中值 * @param {Object} range */ getSelectedValue(range) { if (!this.multiple) return this.dataValue; let selectedArr = []; range.forEach((item) => { if (item.selected) { selectedArr.push(item[this.map.value]); } }); return this.dataValue.length > 0 ? this.dataValue : selectedArr; }, /** * 设置背景样式 */ setStyleBackgroud(item) { let styles = {}; let selectedColor = this.selectedColor ? this.selectedColor : "#2979ff"; if (this.selectedColor) { if (this.mode !== "list") { styles["border-color"] = item.selected ? selectedColor : "#DCDFE6"; } if (this.mode === "tag") { styles["background-color"] = item.selected ? selectedColor : "#f5f5f5"; } } let classles = ""; for (let i2 in styles) { classles += `${i2}:${styles[i2]};`; } return classles; }, setStyleIcon(item) { let styles = {}; let classles = ""; if (this.selectedColor) { let selectedColor = this.selectedColor ? this.selectedColor : "#2979ff"; styles["background-color"] = item.selected ? selectedColor : "#fff"; styles["border-color"] = item.selected ? selectedColor : "#DCDFE6"; if (!item.selected && item.disabled) { styles["background-color"] = "#F2F6FC"; styles["border-color"] = item.selected ? selectedColor : "#DCDFE6"; } } for (let i2 in styles) { classles += `${i2}:${styles[i2]};`; } return classles; }, setStyleIconText(item) { let styles = {}; let classles = ""; if (this.selectedColor) { let selectedColor = this.selectedColor ? this.selectedColor : "#2979ff"; if (this.mode === "tag") { styles.color = item.selected ? this.selectedTextColor ? this.selectedTextColor : "#fff" : "#666"; } else { styles.color = item.selected ? this.selectedTextColor ? this.selectedTextColor : selectedColor : "#666"; } if (!item.selected && item.disabled) { styles.color = "#999"; } } for (let i2 in styles) { classles += `${i2}:${styles[i2]};`; } return classles; }, setStyleRightIcon(item) { let styles = {}; let classles = ""; if (this.mode === "list") { styles["border-color"] = item.selected ? this.styles.selectedColor : "#DCDFE6"; } for (let i2 in styles) { classles += `${i2}:${styles[i2]};`; } return classles; } } }; function _sfc_render$r(_ctx, _cache, $props, $setup, $data, $options) { const _component_uni_load_more = resolveEasycom(vue.resolveDynamicComponent("uni-load-more"), __easycom_0$5); return vue.openBlock(), vue.createElementBlock( "view", { class: "uni-data-checklist", style: vue.normalizeStyle({ "margin-top": $data.isTop + "px" }) }, [ !$data.isLocal ? (vue.openBlock(), vue.createElementBlock("view", { key: 0, class: "uni-data-loading" }, [ !_ctx.mixinDatacomErrorMessage ? (vue.openBlock(), vue.createBlock(_component_uni_load_more, { key: 0, status: "loading", iconType: "snow", iconSize: 18, "content-text": $data.contentText }, null, 8, ["content-text"])) : (vue.openBlock(), vue.createElementBlock( "text", { key: 1 }, vue.toDisplayString(_ctx.mixinDatacomErrorMessage), 1 /* TEXT */ )) ])) : (vue.openBlock(), vue.createElementBlock( vue.Fragment, { key: 1 }, [ $props.multiple ? (vue.openBlock(), vue.createElementBlock( "checkbox-group", { key: 0, class: vue.normalizeClass(["checklist-group", { "is-list": $props.mode === "list" || $props.wrap }]), onChange: _cache[0] || (_cache[0] = (...args) => $options.change && $options.change(...args)) }, [ (vue.openBlock(true), vue.createElementBlock( vue.Fragment, null, vue.renderList($data.dataList, (item, index) => { return vue.openBlock(), vue.createElementBlock( "label", { class: vue.normalizeClass(["checklist-box", ["is--" + $props.mode, item.selected ? "is-checked" : "", $props.disabled || !!item.disabled ? "is-disable" : "", index !== 0 && $props.mode === "list" ? "is-list-border" : ""]]), style: vue.normalizeStyle(item.styleBackgroud), key: index }, [ vue.createElementVNode("checkbox", { class: "hidden", hidden: "", disabled: $props.disabled || !!item.disabled, value: item[$props.map.value] + "", checked: item.selected }, null, 8, ["disabled", "value", "checked"]), $props.mode !== "tag" && $props.mode !== "list" || $props.mode === "list" && $props.icon === "left" ? (vue.openBlock(), vue.createElementBlock( "view", { key: 0, class: "checkbox__inner", style: vue.normalizeStyle(item.styleIcon) }, [ vue.createElementVNode("view", { class: "checkbox__inner-icon" }) ], 4 /* STYLE */ )) : vue.createCommentVNode("v-if", true), vue.createElementVNode( "view", { class: vue.normalizeClass(["checklist-content", { "list-content": $props.mode === "list" && $props.icon === "left" }]) }, [ vue.createElementVNode( "text", { class: "checklist-text", style: vue.normalizeStyle(item.styleIconText) }, vue.toDisplayString(item[$props.map.text]), 5 /* TEXT, STYLE */ ), $props.mode === "list" && $props.icon === "right" ? (vue.openBlock(), vue.createElementBlock( "view", { key: 0, class: "checkobx__list", style: vue.normalizeStyle(item.styleBackgroud) }, null, 4 /* STYLE */ )) : vue.createCommentVNode("v-if", true) ], 2 /* CLASS */ ) ], 6 /* CLASS, STYLE */ ); }), 128 /* KEYED_FRAGMENT */ )) ], 34 /* CLASS, NEED_HYDRATION */ )) : (vue.openBlock(), vue.createElementBlock( "radio-group", { key: 1, class: vue.normalizeClass(["checklist-group", { "is-list": $props.mode === "list", "is-wrap": $props.wrap }]), onChange: _cache[1] || (_cache[1] = (...args) => $options.change && $options.change(...args)) }, [ (vue.openBlock(true), vue.createElementBlock( vue.Fragment, null, vue.renderList($data.dataList, (item, index) => { return vue.openBlock(), vue.createElementBlock( "label", { class: vue.normalizeClass(["checklist-box", ["is--" + $props.mode, item.selected ? "is-checked" : "", $props.disabled || !!item.disabled ? "is-disable" : "", index !== 0 && $props.mode === "list" ? "is-list-border" : ""]]), style: vue.normalizeStyle(item.styleBackgroud), key: index }, [ vue.createElementVNode("radio", { class: "hidden", hidden: "", disabled: $props.disabled || item.disabled, value: item[$props.map.value] + "", checked: item.selected }, null, 8, ["disabled", "value", "checked"]), $props.mode !== "tag" && $props.mode !== "list" || $props.mode === "list" && $props.icon === "left" ? (vue.openBlock(), vue.createElementBlock( "view", { key: 0, class: "radio__inner", style: vue.normalizeStyle(item.styleBackgroud) }, [ vue.createElementVNode( "view", { class: "radio__inner-icon", style: vue.normalizeStyle(item.styleIcon) }, null, 4 /* STYLE */ ) ], 4 /* STYLE */ )) : vue.createCommentVNode("v-if", true), vue.createElementVNode( "view", { class: vue.normalizeClass(["checklist-content", { "list-content": $props.mode === "list" && $props.icon === "left" }]) }, [ vue.createElementVNode( "text", { class: "checklist-text", style: vue.normalizeStyle(item.styleIconText) }, vue.toDisplayString(item[$props.map.text]), 5 /* TEXT, STYLE */ ), $props.mode === "list" && $props.icon === "right" ? (vue.openBlock(), vue.createElementBlock( "view", { key: 0, style: vue.normalizeStyle(item.styleRightIcon), class: "checkobx__list" }, null, 4 /* STYLE */ )) : vue.createCommentVNode("v-if", true) ], 2 /* CLASS */ ) ], 6 /* CLASS, STYLE */ ); }), 128 /* KEYED_FRAGMENT */ )) ], 34 /* CLASS, NEED_HYDRATION */ )) ], 64 /* STABLE_FRAGMENT */ )) ], 4 /* STYLE */ ); } const __easycom_0$4 = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["render", _sfc_render$r], ["__scopeId", "data-v-2f788efd"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.vue"]]); var pattern = { email: /^\S+?@\S+?\.\S+?$/, idcard: /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/, url: new RegExp( "^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$", "i" ) }; const FORMAT_MAPPING = { "int": "integer", "bool": "boolean", "double": "number", "long": "number", "password": "string" // "fileurls": 'array' }; function formatMessage(args, resources = "") { var defaultMessage = ["label"]; defaultMessage.forEach((item) => { if (args[item] === void 0) { args[item] = ""; } }); let str = resources; for (let key in args) { let reg = new RegExp("{" + key + "}"); str = str.replace(reg, args[key]); } return str; } function isEmptyValue(value, type) { if (value === void 0 || value === null) { return true; } if (typeof value === "string" && !value) { return true; } if (Array.isArray(value) && !value.length) { return true; } if (type === "object" && !Object.keys(value).length) { return true; } return false; } const types = { integer(value) { return types.number(value) && parseInt(value, 10) === value; }, string(value) { return typeof value === "string"; }, number(value) { if (isNaN(value)) { return false; } return typeof value === "number"; }, "boolean": function(value) { return typeof value === "boolean"; }, "float": function(value) { return types.number(value) && !types.integer(value); }, array(value) { return Array.isArray(value); }, object(value) { return typeof value === "object" && !types.array(value); }, date(value) { return value instanceof Date; }, timestamp(value) { if (!this.integer(value) || Math.abs(value).toString().length > 16) { return false; } return true; }, file(value) { return typeof value.url === "string"; }, email(value) { return typeof value === "string" && !!value.match(pattern.email) && value.length < 255; }, url(value) { return typeof value === "string" && !!value.match(pattern.url); }, pattern(reg, value) { try { return new RegExp(reg).test(value); } catch (e2) { return false; } }, method(value) { return typeof value === "function"; }, idcard(value) { return typeof value === "string" && !!value.match(pattern.idcard); }, "url-https"(value) { return this.url(value) && value.startsWith("https://"); }, "url-scheme"(value) { return value.startsWith("://"); }, "url-web"(value) { return false; } }; class RuleValidator { constructor(message) { this._message = message; } async validateRule(fieldKey, fieldValue, value, data, allData) { var result = null; let rules = fieldValue.rules; let hasRequired = rules.findIndex((item) => { return item.required; }); if (hasRequired < 0) { if (value === null || value === void 0) { return result; } if (typeof value === "string" && !value.length) { return result; } } var message = this._message; if (rules === void 0) { return message["default"]; } for (var i2 = 0; i2 < rules.length; i2++) { let rule = rules[i2]; let vt2 = this._getValidateType(rule); Object.assign(rule, { label: fieldValue.label || `["${fieldKey}"]` }); if (RuleValidatorHelper[vt2]) { result = RuleValidatorHelper[vt2](rule, value, message); if (result != null) { break; } } if (rule.validateExpr) { let now = Date.now(); let resultExpr = rule.validateExpr(value, allData, now); if (resultExpr === false) { result = this._getMessage(rule, rule.errorMessage || this._message["default"]); break; } } if (rule.validateFunction) { result = await this.validateFunction(rule, value, data, allData, vt2); if (result !== null) { break; } } } if (result !== null) { result = message.TAG + result; } return result; } async validateFunction(rule, value, data, allData, vt2) { let result = null; try { let callbackMessage = null; const res = await rule.validateFunction(rule, value, allData || data, (message) => { callbackMessage = message; }); if (callbackMessage || typeof res === "string" && res || res === false) { result = this._getMessage(rule, callbackMessage || res, vt2); } } catch (e2) { result = this._getMessage(rule, e2.message, vt2); } return result; } _getMessage(rule, message, vt2) { return formatMessage(rule, message || rule.errorMessage || this._message[vt2] || message["default"]); } _getValidateType(rule) { var result = ""; if (rule.required) { result = "required"; } else if (rule.format) { result = "format"; } else if (rule.arrayType) { result = "arrayTypeFormat"; } else if (rule.range) { result = "range"; } else if (rule.maximum !== void 0 || rule.minimum !== void 0) { result = "rangeNumber"; } else if (rule.maxLength !== void 0 || rule.minLength !== void 0) { result = "rangeLength"; } else if (rule.pattern) { result = "pattern"; } else if (rule.validateFunction) { result = "validateFunction"; } return result; } } const RuleValidatorHelper = { required(rule, value, message) { if (rule.required && isEmptyValue(value, rule.format || typeof value)) { return formatMessage(rule, rule.errorMessage || message.required); } return null; }, range(rule, value, message) { const { range, errorMessage } = rule; let list = new Array(range.length); for (let i2 = 0; i2 < range.length; i2++) { const item = range[i2]; if (types.object(item) && item.value !== void 0) { list[i2] = item.value; } else { list[i2] = item; } } let result = false; if (Array.isArray(value)) { result = new Set(value.concat(list)).size === list.length; } else { if (list.indexOf(value) > -1) { result = true; } } if (!result) { return formatMessage(rule, errorMessage || message["enum"]); } return null; }, rangeNumber(rule, value, message) { if (!types.number(value)) { return formatMessage(rule, rule.errorMessage || message.pattern.mismatch); } let { minimum, maximum, exclusiveMinimum, exclusiveMaximum } = rule; let min = exclusiveMinimum ? value <= minimum : value < minimum; let max = exclusiveMaximum ? value >= maximum : value > maximum; if (minimum !== void 0 && min) { return formatMessage(rule, rule.errorMessage || message["number"][exclusiveMinimum ? "exclusiveMinimum" : "minimum"]); } else if (maximum !== void 0 && max) { return formatMessage(rule, rule.errorMessage || message["number"][exclusiveMaximum ? "exclusiveMaximum" : "maximum"]); } else if (minimum !== void 0 && maximum !== void 0 && (min || max)) { return formatMessage(rule, rule.errorMessage || message["number"].range); } return null; }, rangeLength(rule, value, message) { if (!types.string(value) && !types.array(value)) { return formatMessage(rule, rule.errorMessage || message.pattern.mismatch); } let min = rule.minLength; let max = rule.maxLength; let val = value.length; if (min !== void 0 && val < min) { return formatMessage(rule, rule.errorMessage || message["length"].minLength); } else if (max !== void 0 && val > max) { return formatMessage(rule, rule.errorMessage || message["length"].maxLength); } else if (min !== void 0 && max !== void 0 && (val < min || val > max)) { return formatMessage(rule, rule.errorMessage || message["length"].range); } return null; }, pattern(rule, value, message) { if (!types["pattern"](rule.pattern, value)) { return formatMessage(rule, rule.errorMessage || message.pattern.mismatch); } return null; }, format(rule, value, message) { var customTypes = Object.keys(types); var format = FORMAT_MAPPING[rule.format] ? FORMAT_MAPPING[rule.format] : rule.format || rule.arrayType; if (customTypes.indexOf(format) > -1) { if (!types[format](value)) { return formatMessage(rule, rule.errorMessage || message.typeError); } } return null; }, arrayTypeFormat(rule, value, message) { if (!Array.isArray(value)) { return formatMessage(rule, rule.errorMessage || message.typeError); } for (let i2 = 0; i2 < value.length; i2++) { const element = value[i2]; let formatResult = this.format(rule, element, message); if (formatResult !== null) { return formatResult; } } return null; } }; class SchemaValidator extends RuleValidator { constructor(schema, options) { super(SchemaValidator.message); this._schema = schema; this._options = options || null; } updateSchema(schema) { this._schema = schema; } async validate(data, allData) { let result = this._checkFieldInSchema(data); if (!result) { result = await this.invokeValidate(data, false, allData); } return result.length ? result[0] : null; } async validateAll(data, allData) { let result = this._checkFieldInSchema(data); if (!result) { result = await this.invokeValidate(data, true, allData); } return result; } async validateUpdate(data, allData) { let result = this._checkFieldInSchema(data); if (!result) { result = await this.invokeValidateUpdate(data, false, allData); } return result.length ? result[0] : null; } async invokeValidate(data, all, allData) { let result = []; let schema = this._schema; for (let key in schema) { let value = schema[key]; let errorMessage = await this.validateRule(key, value, data[key], data, allData); if (errorMessage != null) { result.push({ key, errorMessage }); if (!all) break; } } return result; } async invokeValidateUpdate(data, all, allData) { let result = []; for (let key in data) { let errorMessage = await this.validateRule(key, this._schema[key], data[key], data, allData); if (errorMessage != null) { result.push({ key, errorMessage }); if (!all) break; } } return result; } _checkFieldInSchema(data) { var keys = Object.keys(data); var keys2 = Object.keys(this._schema); if (new Set(keys.concat(keys2)).size === keys2.length) { return ""; } var noExistFields = keys.filter((key) => { return keys2.indexOf(key) < 0; }); var errorMessage = formatMessage({ field: JSON.stringify(noExistFields) }, SchemaValidator.message.TAG + SchemaValidator.message["defaultInvalid"]); return [{ key: "invalid", errorMessage }]; } } function Message() { return { TAG: "", default: "验证错误", defaultInvalid: "提交的字段{field}在数据库中并不存在", validateFunction: "验证无效", required: "{label}必填", "enum": "{label}超出范围", timestamp: "{label}格式无效", whitespace: "{label}不能为空", typeError: "{label}类型无效", date: { format: "{label}日期{value}格式无效", parse: "{label}日期无法解析,{value}无效", invalid: "{label}日期{value}无效" }, length: { minLength: "{label}长度不能少于{minLength}", maxLength: "{label}长度不能超过{maxLength}", range: "{label}必须介于{minLength}和{maxLength}之间" }, number: { minimum: "{label}不能小于{minimum}", maximum: "{label}不能大于{maximum}", exclusiveMinimum: "{label}不能小于等于{minimum}", exclusiveMaximum: "{label}不能大于等于{maximum}", range: "{label}必须介于{minimum}and{maximum}之间" }, pattern: { mismatch: "{label}格式不匹配" } }; } SchemaValidator.message = new Message(); const deepCopy = (val) => { return JSON.parse(JSON.stringify(val)); }; const typeFilter = (format) => { return format === "int" || format === "double" || format === "number" || format === "timestamp"; }; const getValue = (key, value, rules) => { const isRuleNumType = rules.find((val) => val.format && typeFilter(val.format)); const isRuleBoolType = rules.find((val) => val.format && val.format === "boolean" || val.format === "bool"); if (!!isRuleNumType) { if (!value && value !== 0) { value = null; } else { value = isNumber(Number(value)) ? Number(value) : value; } } if (!!isRuleBoolType) { value = isBoolean(value) ? value : false; } return value; }; const setDataValue = (field, formdata, value) => { formdata[field] = value; return value || ""; }; const getDataValue = (field, data) => { return objGet(data, field); }; const realName = (name, data = {}) => { const base_name = _basePath(name); if (typeof base_name === "object" && Array.isArray(base_name) && base_name.length > 1) { const realname = base_name.reduce((a2, b2) => a2 += `#${b2}`, "_formdata_"); return realname; } return base_name[0] || name; }; const isRealName = (name) => { const reg = /^_formdata_#*/; return reg.test(name); }; const rawData = (object = {}, name) => { let newData = JSON.parse(JSON.stringify(object)); let formData = {}; for (let i2 in newData) { let path = name2arr(i2); objSet(formData, path, newData[i2]); } return formData; }; const name2arr = (name) => { let field = name.replace("_formdata_#", ""); field = field.split("#").map((v2) => isNumber(v2) ? Number(v2) : v2); return field; }; const objSet = (object, path, value) => { if (typeof object !== "object") return object; _basePath(path).reduce((o2, k, i2, _2) => { if (i2 === _2.length - 1) { o2[k] = value; return null; } else if (k in o2) { return o2[k]; } else { o2[k] = /^[0-9]{1,}$/.test(_2[i2 + 1]) ? [] : {}; return o2[k]; } }, object); return object; }; function _basePath(path) { if (Array.isArray(path)) return path; return path.replace(/\[/g, ".").replace(/\]/g, "").split("."); } const objGet = (object, path, defaultVal = "undefined") => { let newPath = _basePath(path); let val = newPath.reduce((o2, k) => { return (o2 || {})[k]; }, object); return !val || val !== void 0 ? val : defaultVal; }; const isNumber = (num) => { return !isNaN(Number(num)); }; const isBoolean = (bool) => { return typeof bool === "boolean"; }; const isRequiredField = (rules) => { let isNoField = false; for (let i2 = 0; i2 < rules.length; i2++) { const ruleData = rules[i2]; if (ruleData.required) { isNoField = true; break; } } return isNoField; }; const isEqual = (a2, b2) => { if (a2 === b2) { return a2 !== 0 || 1 / a2 === 1 / b2; } if (a2 == null || b2 == null) { return a2 === b2; } var classNameA = toString.call(a2), classNameB = toString.call(b2); if (classNameA !== classNameB) { return false; } switch (classNameA) { case "[object RegExp]": case "[object String]": return "" + a2 === "" + b2; case "[object Number]": if (+a2 !== +a2) { return +b2 !== +b2; } return +a2 === 0 ? 1 / +a2 === 1 / b2 : +a2 === +b2; case "[object Date]": case "[object Boolean]": return +a2 === +b2; } if (classNameA == "[object Object]") { var propsA = Object.getOwnPropertyNames(a2), propsB = Object.getOwnPropertyNames(b2); if (propsA.length != propsB.length) { return false; } for (var i2 = 0; i2 < propsA.length; i2++) { var propName = propsA[i2]; if (a2[propName] !== b2[propName]) { return false; } } return true; } if (classNameA == "[object Array]") { if (a2.toString() == b2.toString()) { return true; } return false; } }; const _sfc_main$r = { name: "uniForms", emits: ["validate", "submit"], options: { virtualHost: true }, props: { // 即将弃用 value: { type: Object, default() { return null; } }, // vue3 替换 value 属性 modelValue: { type: Object, default() { return null; } }, // 1.4.0 开始将不支持 v-model ,且废弃 value 和 modelValue model: { type: Object, default() { return null; } }, // 表单校验规则 rules: { type: Object, default() { return {}; } }, //校验错误信息提示方式 默认 undertext 取值 [undertext|toast|modal] errShowType: { type: String, default: "undertext" }, // 校验触发器方式 默认 bind 取值 [bind|submit] validateTrigger: { type: String, default: "submit" }, // label 位置,默认 left 取值 top/left labelPosition: { type: String, default: "left" }, // label 宽度 labelWidth: { type: [String, Number], default: "" }, // label 居中方式,默认 left 取值 left/center/right labelAlign: { type: String, default: "left" }, border: { type: Boolean, default: false } }, provide() { return { uniForm: this }; }, data() { return { // 表单本地值的记录,不应该与传如的值进行关联 formData: {}, formRules: {} }; }, computed: { // 计算数据源变化的 localData() { const localVal = this.model || this.modelValue || this.value; if (localVal) { return deepCopy(localVal); } return {}; } }, watch: { // 监听数据变化 ,暂时不使用,需要单独赋值 // localData: {}, // 监听规则变化 rules: { handler: function(val, oldVal) { this.setRules(val); }, deep: true, immediate: true } }, created() { let getbinddata = getApp().$vm.$.appContext.config.globalProperties.binddata; if (!getbinddata) { getApp().$vm.$.appContext.config.globalProperties.binddata = function(name, value, formName) { if (formName) { this.$refs[formName].setValue(name, value); } else { let formVm; for (let i2 in this.$refs) { const vm = this.$refs[i2]; if (vm && vm.$options && vm.$options.name === "uniForms") { formVm = vm; break; } } if (!formVm) return formatAppLog("error", "at uni_modules/uni-forms/components/uni-forms/uni-forms.vue:182", "当前 uni-froms 组件缺少 ref 属性"); formVm.setValue(name, value); } }; } this.childrens = []; this.inputChildrens = []; this.setRules(this.rules); }, methods: { /** * 外部调用方法 * 设置规则 ,主要用于小程序自定义检验规则 * @param {Array} rules 规则源数据 */ setRules(rules) { this.formRules = Object.assign({}, this.formRules, rules); this.validator = new SchemaValidator(rules); }, /** * 外部调用方法 * 设置数据,用于设置表单数据,公开给用户使用 , 不支持在动态表单中使用 * @param {Object} key * @param {Object} value */ setValue(key, value) { let example = this.childrens.find((child) => child.name === key); if (!example) return null; this.formData[key] = getValue(key, value, this.formRules[key] && this.formRules[key].rules || []); return example.onFieldChange(this.formData[key]); }, /** * 外部调用方法 * 手动提交校验表单 * 对整个表单进行校验的方法,参数为一个回调函数。 * @param {Array} keepitem 保留不参与校验的字段 * @param {type} callback 方法回调 */ validate(keepitem, callback) { return this.checkAll(this.formData, keepitem, callback); }, /** * 外部调用方法 * 部分表单校验 * @param {Array|String} props 需要校验的字段 * @param {Function} 回调函数 */ validateField(props = [], callback) { props = [].concat(props); let invalidFields = {}; this.childrens.forEach((item) => { const name = realName(item.name); if (props.indexOf(name) !== -1) { invalidFields = Object.assign({}, invalidFields, { [name]: this.formData[name] }); } }); return this.checkAll(invalidFields, [], callback); }, /** * 外部调用方法 * 移除表单项的校验结果。传入待移除的表单项的 prop 属性或者 prop 组成的数组,如不传则移除整个表单的校验结果 * @param {Array|String} props 需要移除校验的字段 ,不填为所有 */ clearValidate(props = []) { props = [].concat(props); this.childrens.forEach((item) => { if (props.length === 0) { item.errMsg = ""; } else { const name = realName(item.name); if (props.indexOf(name) !== -1) { item.errMsg = ""; } } }); }, /** * 外部调用方法 ,即将废弃 * 手动提交校验表单 * 对整个表单进行校验的方法,参数为一个回调函数。 * @param {Array} keepitem 保留不参与校验的字段 * @param {type} callback 方法回调 */ submit(keepitem, callback, type) { for (let i2 in this.dataValue) { const itemData = this.childrens.find((v2) => v2.name === i2); if (itemData) { if (this.formData[i2] === void 0) { this.formData[i2] = this._getValue(i2, this.dataValue[i2]); } } } if (!type) { formatAppLog("warn", "at uni_modules/uni-forms/components/uni-forms/uni-forms.vue:289", "submit 方法即将废弃,请使用validate方法代替!"); } return this.checkAll(this.formData, keepitem, callback, "submit"); }, // 校验所有 async checkAll(invalidFields, keepitem, callback, type) { if (!this.validator) return; let childrens = []; for (let i2 in invalidFields) { const item = this.childrens.find((v2) => realName(v2.name) === i2); if (item) { childrens.push(item); } } if (!callback && typeof keepitem === "function") { callback = keepitem; } let promise; if (!callback && typeof callback !== "function" && Promise) { promise = new Promise((resolve, reject) => { callback = function(valid, invalidFields2) { !valid ? resolve(invalidFields2) : reject(valid); }; }); } let results = []; let tempFormData = JSON.parse(JSON.stringify(invalidFields)); for (let i2 in childrens) { const child = childrens[i2]; let name = realName(child.name); const result = await child.onFieldChange(tempFormData[name]); if (result) { results.push(result); if (this.errShowType === "toast" || this.errShowType === "modal") break; } } if (Array.isArray(results)) { if (results.length === 0) results = null; } if (Array.isArray(keepitem)) { keepitem.forEach((v2) => { let vName = realName(v2); let value = getDataValue(v2, this.localData); if (value !== void 0) { tempFormData[vName] = value; } }); } if (type === "submit") { this.$emit("submit", { detail: { value: tempFormData, errors: results } }); } else { this.$emit("validate", results); } let resetFormData = {}; resetFormData = rawData(tempFormData, this.name); callback && typeof callback === "function" && callback(results, resetFormData); if (promise && callback) { return promise; } else { return null; } }, /** * 返回validate事件 * @param {Object} result */ validateCheck(result) { this.$emit("validate", result); }, _getValue: getValue, _isRequiredField: isRequiredField, _setDataValue: setDataValue, _getDataValue: getDataValue, _realName: realName, _isRealName: isRealName, _isEqual: isEqual } }; function _sfc_render$q(_ctx, _cache, $props, $setup, $data, $options) { return vue.openBlock(), vue.createElementBlock("view", { class: "uni-forms" }, [ vue.createElementVNode("form", null, [ vue.renderSlot(_ctx.$slots, "default", {}, void 0, true) ]) ]); } const __easycom_3$2 = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["render", _sfc_render$q], ["__scopeId", "data-v-9a1e3c32"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-forms/components/uni-forms/uni-forms.vue"]]); const popup = { data() { return {}; }, created() { this.popup = this.getParent(); }, methods: { /** * 获取父元素实例 */ getParent(name = "uniPopup") { let parent = this.$parent; let parentName = parent.$options.name; while (parentName !== name) { parent = parent.$parent; if (!parent) return false; parentName = parent.$options.name; } return parent; } } }; const _sfc_main$q = { name: "uniPopupMessage", mixins: [popup], props: { /** * 主题 success/warning/info/error 默认 success */ type: { type: String, default: "success" }, /** * 消息文字 */ message: { type: String, default: "" }, /** * 显示时间,设置为 0 则不会自动关闭 */ duration: { type: Number, default: 3e3 }, maskShow: { type: Boolean, default: false } }, data() { return {}; }, created() { this.popup.maskShow = this.maskShow; this.popup.messageChild = this; }, methods: { timerClose() { if (this.duration === 0) return; clearTimeout(this.timer); this.timer = setTimeout(() => { this.popup.close(); }, this.duration); } } }; function _sfc_render$p(_ctx, _cache, $props, $setup, $data, $options) { return vue.openBlock(), vue.createElementBlock("view", { class: "uni-popup-message" }, [ vue.createElementVNode( "view", { class: vue.normalizeClass(["uni-popup-message__box fixforpc-width", "uni-popup__" + $props.type]) }, [ vue.renderSlot(_ctx.$slots, "default", {}, () => [ vue.createElementVNode( "text", { class: vue.normalizeClass(["uni-popup-message-text", "uni-popup__" + $props.type + "-text"]) }, vue.toDisplayString($props.message), 3 /* TEXT, CLASS */ ) ], true) ], 2 /* CLASS */ ) ]); } const __easycom_5 = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["render", _sfc_render$p], ["__scopeId", "data-v-a4566996"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue"]]); class MPAnimation { constructor(options, _this) { this.options = options; this.animation = uni.createAnimation({ ...options }); this.currentStepAnimates = {}; this.next = 0; this.$ = _this; } _nvuePushAnimates(type, args) { let aniObj = this.currentStepAnimates[this.next]; let styles = {}; if (!aniObj) { styles = { styles: {}, config: {} }; } else { styles = aniObj; } if (animateTypes1.includes(type)) { if (!styles.styles.transform) { styles.styles.transform = ""; } let unit = ""; if (type === "rotate") { unit = "deg"; } styles.styles.transform += `${type}(${args + unit}) `; } else { styles.styles[type] = `${args}`; } this.currentStepAnimates[this.next] = styles; } _animateRun(styles = {}, config = {}) { let ref = this.$.$refs["ani"].ref; if (!ref) return; return new Promise((resolve, reject) => { nvueAnimation.transition(ref, { styles, ...config }, (res) => { resolve(); }); }); } _nvueNextAnimate(animates, step = 0, fn) { let obj = animates[step]; if (obj) { let { styles, config } = obj; this._animateRun(styles, config).then(() => { step += 1; this._nvueNextAnimate(animates, step, fn); }); } else { this.currentStepAnimates = {}; typeof fn === "function" && fn(); this.isEnd = true; } } step(config = {}) { this.animation.step(config); return this; } run(fn) { this.$.animationData = this.animation.export(); this.$.timer = setTimeout(() => { typeof fn === "function" && fn(); }, this.$.durationTime); } } const animateTypes1 = [ "matrix", "matrix3d", "rotate", "rotate3d", "rotateX", "rotateY", "rotateZ", "scale", "scale3d", "scaleX", "scaleY", "scaleZ", "skew", "skewX", "skewY", "translate", "translate3d", "translateX", "translateY", "translateZ" ]; const animateTypes2 = ["opacity", "backgroundColor"]; const animateTypes3 = ["width", "height", "left", "right", "top", "bottom"]; animateTypes1.concat(animateTypes2, animateTypes3).forEach((type) => { MPAnimation.prototype[type] = function(...args) { this.animation[type](...args); return this; }; }); function createAnimation(option, _this) { if (!_this) return; clearTimeout(_this.timer); return new MPAnimation(option, _this); } const _sfc_main$p = { name: "uniTransition", emits: ["click", "change"], props: { show: { type: Boolean, default: false }, modeClass: { type: [Array, String], default() { return "fade"; } }, duration: { type: Number, default: 300 }, styles: { type: Object, default() { return {}; } }, customClass: { type: String, default: "" }, onceRender: { type: Boolean, default: false } }, data() { return { isShow: false, transform: "", opacity: 1, animationData: {}, durationTime: 300, config: {} }; }, watch: { show: { handler(newVal) { if (newVal) { this.open(); } else { if (this.isShow) { this.close(); } } }, immediate: true } }, computed: { // 生成样式数据 stylesObject() { let styles = { ...this.styles, "transition-duration": this.duration / 1e3 + "s" }; let transform = ""; for (let i2 in styles) { let line = this.toLine(i2); transform += line + ":" + styles[i2] + ";"; } return transform; }, // 初始化动画条件 transformStyles() { return "transform:" + this.transform + ";opacity:" + this.opacity + ";" + this.stylesObject; } }, created() { this.config = { duration: this.duration, timingFunction: "ease", transformOrigin: "50% 50%", delay: 0 }; this.durationTime = this.duration; }, methods: { /** * ref 触发 初始化动画 */ init(obj = {}) { if (obj.duration) { this.durationTime = obj.duration; } this.animation = createAnimation(Object.assign(this.config, obj), this); }, /** * 点击组件触发回调 */ onClick() { this.$emit("click", { detail: this.isShow }); }, /** * ref 触发 动画分组 * @param {Object} obj */ step(obj, config = {}) { if (!this.animation) return; for (let i2 in obj) { try { if (typeof obj[i2] === "object") { this.animation[i2](...obj[i2]); } else { this.animation[i2](obj[i2]); } } catch (e2) { formatAppLog("error", "at uni_modules/uni-transition/components/uni-transition/uni-transition.vue:148", `方法 ${i2} 不存在`); } } this.animation.step(config); return this; }, /** * ref 触发 执行动画 */ run(fn) { if (!this.animation) return; this.animation.run(fn); }, // 开始过度动画 open() { clearTimeout(this.timer); this.transform = ""; this.isShow = true; let { opacity, transform } = this.styleInit(false); if (typeof opacity !== "undefined") { this.opacity = opacity; } this.transform = transform; this.$nextTick(() => { this.timer = setTimeout(() => { this.animation = createAnimation(this.config, this); this.tranfromInit(false).step(); this.animation.run(); this.$emit("change", { detail: this.isShow }); }, 20); }); }, // 关闭过度动画 close(type) { if (!this.animation) return; this.tranfromInit(true).step().run(() => { this.isShow = false; this.animationData = null; this.animation = null; let { opacity, transform } = this.styleInit(false); this.opacity = opacity || 1; this.transform = transform; this.$emit("change", { detail: this.isShow }); }); }, // 处理动画开始前的默认样式 styleInit(type) { let styles = { transform: "" }; let buildStyle = (type2, mode) => { if (mode === "fade") { styles.opacity = this.animationType(type2)[mode]; } else { styles.transform += this.animationType(type2)[mode] + " "; } }; if (typeof this.modeClass === "string") { buildStyle(type, this.modeClass); } else { this.modeClass.forEach((mode) => { buildStyle(type, mode); }); } return styles; }, // 处理内置组合动画 tranfromInit(type) { let buildTranfrom = (type2, mode) => { let aniNum = null; if (mode === "fade") { aniNum = type2 ? 0 : 1; } else { aniNum = type2 ? "-100%" : "0"; if (mode === "zoom-in") { aniNum = type2 ? 0.8 : 1; } if (mode === "zoom-out") { aniNum = type2 ? 1.2 : 1; } if (mode === "slide-right") { aniNum = type2 ? "100%" : "0"; } if (mode === "slide-bottom") { aniNum = type2 ? "100%" : "0"; } } this.animation[this.animationMode()[mode]](aniNum); }; if (typeof this.modeClass === "string") { buildTranfrom(type, this.modeClass); } else { this.modeClass.forEach((mode) => { buildTranfrom(type, mode); }); } return this.animation; }, animationType(type) { return { fade: type ? 1 : 0, "slide-top": `translateY(${type ? "0" : "-100%"})`, "slide-right": `translateX(${type ? "0" : "100%"})`, "slide-bottom": `translateY(${type ? "0" : "100%"})`, "slide-left": `translateX(${type ? "0" : "-100%"})`, "zoom-in": `scaleX(${type ? 1 : 0.8}) scaleY(${type ? 1 : 0.8})`, "zoom-out": `scaleX(${type ? 1 : 1.2}) scaleY(${type ? 1 : 1.2})` }; }, // 内置动画类型与实际动画对应字典 animationMode() { return { fade: "opacity", "slide-top": "translateY", "slide-right": "translateX", "slide-bottom": "translateY", "slide-left": "translateX", "zoom-in": "scale", "zoom-out": "scale" }; }, // 驼峰转中横线 toLine(name) { return name.replace(/([A-Z])/g, "-$1").toLowerCase(); } } }; function _sfc_render$o(_ctx, _cache, $props, $setup, $data, $options) { return vue.withDirectives((vue.openBlock(), vue.createElementBlock("view", { ref: "ani", animation: $data.animationData, class: vue.normalizeClass($props.customClass), style: vue.normalizeStyle($options.transformStyles), onClick: _cache[0] || (_cache[0] = (...args) => $options.onClick && $options.onClick(...args)) }, [ vue.renderSlot(_ctx.$slots, "default") ], 14, ["animation"])), [ [vue.vShow, $data.isShow] ]); } const __easycom_0$3 = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["render", _sfc_render$o], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-transition/components/uni-transition/uni-transition.vue"]]); const _sfc_main$o = { name: "uniPopup", components: {}, emits: ["change", "maskClick"], props: { // 开启动画 animation: { type: Boolean, default: true }, // 弹出层类型,可选值,top: 顶部弹出层;bottom:底部弹出层;center:全屏弹出层 // message: 消息提示 ; dialog : 对话框 type: { type: String, default: "center" }, // maskClick isMaskClick: { type: Boolean, default: null }, // TODO 2 个版本后废弃属性 ,使用 isMaskClick maskClick: { type: Boolean, default: null }, backgroundColor: { type: String, default: "none" }, safeArea: { type: Boolean, default: true }, maskBackgroundColor: { type: String, default: "rgba(0, 0, 0, 0.4)" } }, watch: { /** * 监听type类型 */ type: { handler: function(type) { if (!this.config[type]) return; this[this.config[type]](true); }, immediate: true }, isDesktop: { handler: function(newVal) { if (!this.config[newVal]) return; this[this.config[this.type]](true); }, immediate: true }, /** * 监听遮罩是否可点击 * @param {Object} val */ maskClick: { handler: function(val) { this.mkclick = val; }, immediate: true }, isMaskClick: { handler: function(val) { this.mkclick = val; }, immediate: true }, // H5 下禁止底部滚动 showPopup(show) { } }, data() { return { duration: 300, ani: [], showPopup: false, showTrans: false, popupWidth: 0, popupHeight: 0, config: { top: "top", bottom: "bottom", center: "center", left: "left", right: "right", message: "top", dialog: "center", share: "bottom" }, maskClass: { position: "fixed", bottom: 0, top: 0, left: 0, right: 0, backgroundColor: "rgba(0, 0, 0, 0.4)" }, transClass: { position: "fixed", left: 0, right: 0 }, maskShow: true, mkclick: true, popupstyle: "top" }; }, computed: { isDesktop() { return this.popupWidth >= 500 && this.popupHeight >= 500; }, bg() { if (this.backgroundColor === "" || this.backgroundColor === "none") { return "transparent"; } return this.backgroundColor; } }, mounted() { const fixSize = () => { const { windowWidth, windowHeight, windowTop, safeArea, screenHeight, safeAreaInsets } = uni.getSystemInfoSync(); this.popupWidth = windowWidth; this.popupHeight = windowHeight + (windowTop || 0); if (safeArea && this.safeArea) { this.safeAreaInsets = safeAreaInsets.bottom; } else { this.safeAreaInsets = 0; } }; fixSize(); }, // TODO vue3 unmounted() { this.setH5Visible(); }, created() { if (this.isMaskClick === null && this.maskClick === null) { this.mkclick = true; } else { this.mkclick = this.isMaskClick !== null ? this.isMaskClick : this.maskClick; } if (this.animation) { this.duration = 300; } else { this.duration = 0; } this.messageChild = null; this.clearPropagation = false; this.maskClass.backgroundColor = this.maskBackgroundColor; }, methods: { setH5Visible() { }, /** * 公用方法,不显示遮罩层 */ closeMask() { this.maskShow = false; }, /** * 公用方法,遮罩层禁止点击 */ disableMask() { this.mkclick = false; }, // TODO nvue 取消冒泡 clear(e2) { e2.stopPropagation(); this.clearPropagation = true; }, open(direction) { if (this.showPopup) { return; } let innerType = ["top", "center", "bottom", "left", "right", "message", "dialog", "share"]; if (!(direction && innerType.indexOf(direction) !== -1)) { direction = this.type; } if (!this.config[direction]) { formatAppLog("error", "at uni_modules/uni-popup/components/uni-popup/uni-popup.vue:279", "缺少类型:", direction); return; } this[this.config[direction]](); this.$emit("change", { show: true, type: direction }); }, close(type) { this.showTrans = false; this.$emit("change", { show: false, type: this.type }); clearTimeout(this.timer); this.timer = setTimeout(() => { this.showPopup = false; }, 300); }, // TODO 处理冒泡事件,头条的冒泡事件有问题 ,先这样兼容 touchstart() { this.clearPropagation = false; }, onTap() { if (this.clearPropagation) { this.clearPropagation = false; return; } this.$emit("maskClick"); if (!this.mkclick) return; this.close(); }, /** * 顶部弹出样式处理 */ top(type) { this.popupstyle = this.isDesktop ? "fixforpc-top" : "top"; this.ani = ["slide-top"]; this.transClass = { position: "fixed", left: 0, right: 0, backgroundColor: this.bg }; if (type) return; this.showPopup = true; this.showTrans = true; this.$nextTick(() => { if (this.messageChild && this.type === "message") { this.messageChild.timerClose(); } }); }, /** * 底部弹出样式处理 */ bottom(type) { this.popupstyle = "bottom"; this.ani = ["slide-bottom"]; this.transClass = { position: "fixed", left: 0, right: 0, bottom: 0, paddingBottom: this.safeAreaInsets + "px", backgroundColor: this.bg }; if (type) return; this.showPopup = true; this.showTrans = true; }, /** * 中间弹出样式处理 */ center(type) { this.popupstyle = "center"; this.ani = ["zoom-out", "fade"]; this.transClass = { position: "fixed", display: "flex", flexDirection: "column", bottom: 0, left: 0, right: 0, top: 0, justifyContent: "center", alignItems: "center" }; if (type) return; this.showPopup = true; this.showTrans = true; }, left(type) { this.popupstyle = "left"; this.ani = ["slide-left"]; this.transClass = { position: "fixed", left: 0, bottom: 0, top: 0, backgroundColor: this.bg, display: "flex", flexDirection: "column" }; if (type) return; this.showPopup = true; this.showTrans = true; }, right(type) { this.popupstyle = "right"; this.ani = ["slide-right"]; this.transClass = { position: "fixed", bottom: 0, right: 0, top: 0, backgroundColor: this.bg, display: "flex", flexDirection: "column" }; if (type) return; this.showPopup = true; this.showTrans = true; } } }; function _sfc_render$n(_ctx, _cache, $props, $setup, $data, $options) { const _component_uni_transition = resolveEasycom(vue.resolveDynamicComponent("uni-transition"), __easycom_0$3); return $data.showPopup ? (vue.openBlock(), vue.createElementBlock( "view", { key: 0, class: vue.normalizeClass(["uni-popup", [$data.popupstyle, $options.isDesktop ? "fixforpc-z-index" : ""]]) }, [ vue.createElementVNode( "view", { onTouchstart: _cache[1] || (_cache[1] = (...args) => $options.touchstart && $options.touchstart(...args)) }, [ $data.maskShow ? (vue.openBlock(), vue.createBlock(_component_uni_transition, { key: "1", name: "mask", "mode-class": "fade", styles: $data.maskClass, duration: $data.duration, show: $data.showTrans, onClick: $options.onTap }, null, 8, ["styles", "duration", "show", "onClick"])) : vue.createCommentVNode("v-if", true), vue.createVNode(_component_uni_transition, { key: "2", "mode-class": $data.ani, name: "content", styles: $data.transClass, duration: $data.duration, show: $data.showTrans, onClick: $options.onTap }, { default: vue.withCtx(() => [ vue.createElementVNode( "view", { class: vue.normalizeClass(["uni-popup__wrapper", [$data.popupstyle]]), style: vue.normalizeStyle({ backgroundColor: $options.bg }), onClick: _cache[0] || (_cache[0] = (...args) => $options.clear && $options.clear(...args)) }, [ vue.renderSlot(_ctx.$slots, "default", {}, void 0, true) ], 6 /* CLASS, STYLE */ ) ]), _: 3 /* FORWARDED */ }, 8, ["mode-class", "styles", "duration", "show", "onClick"]) ], 32 /* NEED_HYDRATION */ ) ], 2 /* CLASS */ )) : vue.createCommentVNode("v-if", true); } const __easycom_6 = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["render", _sfc_render$n], ["__scopeId", "data-v-4dd3c44b"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-popup/components/uni-popup/uni-popup.vue"]]); const en = { "uni-popup.cancel": "cancel", "uni-popup.ok": "ok", "uni-popup.placeholder": "pleace enter", "uni-popup.title": "Hint", "uni-popup.shareTitle": "Share to" }; const zhHans = { "uni-popup.cancel": "取消", "uni-popup.ok": "确定", "uni-popup.placeholder": "请输入", "uni-popup.title": "提示", "uni-popup.shareTitle": "分享到" }; const zhHant = { "uni-popup.cancel": "取消", "uni-popup.ok": "確定", "uni-popup.placeholder": "請輸入", "uni-popup.title": "提示", "uni-popup.shareTitle": "分享到" }; const messages = { en, "zh-Hans": zhHans, "zh-Hant": zhHant }; const { t } = initVueI18n(messages); const _sfc_main$n = { name: "uniPopupDialog", mixins: [popup], emits: ["confirm", "close"], props: { inputType: { type: String, default: "text" }, value: { type: [String, Number], default: "" }, placeholder: { type: [String, Number], default: "" }, type: { type: String, default: "error" }, mode: { type: String, default: "base" }, title: { type: String, default: "" }, content: { type: String, default: "" }, beforeClose: { type: Boolean, default: false }, cancelText: { type: String, default: "" }, confirmText: { type: String, default: "" } }, data() { return { dialogType: "error", focus: false, val: "" }; }, computed: { okText() { return this.confirmText || t("uni-popup.ok"); }, closeText() { return this.cancelText || t("uni-popup.cancel"); }, placeholderText() { return this.placeholder || t("uni-popup.placeholder"); }, titleText() { return this.title || t("uni-popup.title"); } }, watch: { type(val) { this.dialogType = val; }, mode(val) { if (val === "input") { this.dialogType = "info"; } }, value(val) { this.val = val; } }, created() { this.popup.disableMask(); if (this.mode === "input") { this.dialogType = "info"; this.val = this.value; } else { this.dialogType = this.type; } }, mounted() { this.focus = true; }, methods: { /** * 点击确认按钮 */ onOk() { if (this.mode === "input") { this.$emit("confirm", this.val); } else { this.$emit("confirm"); } if (this.beforeClose) return; this.popup.close(); }, /** * 点击取消按钮 */ closeDialog() { this.$emit("close"); if (this.beforeClose) return; this.popup.close(); }, close() { this.popup.close(); } } }; function _sfc_render$m(_ctx, _cache, $props, $setup, $data, $options) { return vue.openBlock(), vue.createElementBlock("view", { class: "uni-popup-dialog" }, [ vue.createElementVNode("view", { class: "uni-dialog-title" }, [ vue.createElementVNode( "text", { class: vue.normalizeClass(["uni-dialog-title-text", ["uni-popup__" + $data.dialogType]]) }, vue.toDisplayString($options.titleText), 3 /* TEXT, CLASS */ ) ]), $props.mode === "base" ? (vue.openBlock(), vue.createElementBlock("view", { key: 0, class: "uni-dialog-content" }, [ vue.renderSlot(_ctx.$slots, "default", {}, () => [ vue.createElementVNode( "text", { class: "uni-dialog-content-text" }, vue.toDisplayString($props.content), 1 /* TEXT */ ) ], true) ])) : (vue.openBlock(), vue.createElementBlock("view", { key: 1, class: "uni-dialog-content" }, [ vue.renderSlot(_ctx.$slots, "default", {}, () => [ vue.withDirectives(vue.createElementVNode("input", { class: "uni-dialog-input", "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.val = $event), type: $props.inputType, placeholder: $options.placeholderText, focus: $data.focus }, null, 8, ["type", "placeholder", "focus"]), [ [vue.vModelDynamic, $data.val] ]) ], true) ])), vue.createElementVNode("view", { class: "uni-dialog-button-group" }, [ vue.createElementVNode("view", { class: "uni-dialog-button", onClick: _cache[1] || (_cache[1] = (...args) => $options.closeDialog && $options.closeDialog(...args)) }, [ vue.createElementVNode( "text", { class: "uni-dialog-button-text" }, vue.toDisplayString($options.closeText), 1 /* TEXT */ ) ]), vue.createElementVNode("view", { class: "uni-dialog-button uni-border-left", onClick: _cache[2] || (_cache[2] = (...args) => $options.onOk && $options.onOk(...args)) }, [ vue.createElementVNode( "text", { class: "uni-dialog-button-text uni-button-color" }, vue.toDisplayString($options.okText), 1 /* TEXT */ ) ]) ]) ]); } const __easycom_0$2 = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["render", _sfc_render$m], ["__scopeId", "data-v-d78c88b7"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue"]]); var dayjs_min = { exports: {} }; (function(module, exports) { !function(t2, e2) { module.exports = e2(); }(commonjsGlobal, function() { var t2 = 1e3, e2 = 6e4, n2 = 36e5, r2 = "millisecond", i2 = "second", s2 = "minute", u2 = "hour", a2 = "day", o2 = "week", c2 = "month", f2 = "quarter", h2 = "year", d2 = "date", l2 = "Invalid Date", $2 = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y2 = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, M2 = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(t3) { var e3 = ["th", "st", "nd", "rd"], n3 = t3 % 100; return "[" + t3 + (e3[(n3 - 20) % 10] || e3[n3] || e3[0]) + "]"; } }, m2 = function(t3, e3, n3) { var r3 = String(t3); return !r3 || r3.length >= e3 ? t3 : "" + Array(e3 + 1 - r3.length).join(n3) + t3; }, v2 = { s: m2, z: function(t3) { var e3 = -t3.utcOffset(), n3 = Math.abs(e3), r3 = Math.floor(n3 / 60), i3 = n3 % 60; return (e3 <= 0 ? "+" : "-") + m2(r3, 2, "0") + ":" + m2(i3, 2, "0"); }, m: function t3(e3, n3) { if (e3.date() < n3.date()) return -t3(n3, e3); var r3 = 12 * (n3.year() - e3.year()) + (n3.month() - e3.month()), i3 = e3.clone().add(r3, c2), s3 = n3 - i3 < 0, u3 = e3.clone().add(r3 + (s3 ? -1 : 1), c2); return +(-(r3 + (n3 - i3) / (s3 ? i3 - u3 : u3 - i3)) || 0); }, a: function(t3) { return t3 < 0 ? Math.ceil(t3) || 0 : Math.floor(t3); }, p: function(t3) { return { M: c2, y: h2, w: o2, d: a2, D: d2, h: u2, m: s2, s: i2, ms: r2, Q: f2 }[t3] || String(t3 || "").toLowerCase().replace(/s$/, ""); }, u: function(t3) { return void 0 === t3; } }, g2 = "en", D2 = {}; D2[g2] = M2; var p2 = "$isDayjsObject", S2 = function(t3) { return t3 instanceof _2 || !(!t3 || !t3[p2]); }, w2 = function t3(e3, n3, r3) { var i3; if (!e3) return g2; if ("string" == typeof e3) { var s3 = e3.toLowerCase(); D2[s3] && (i3 = s3), n3 && (D2[s3] = n3, i3 = s3); var u3 = e3.split("-"); if (!i3 && u3.length > 1) return t3(u3[0]); } else { var a3 = e3.name; D2[a3] = e3, i3 = a3; } return !r3 && i3 && (g2 = i3), i3 || !r3 && g2; }, O2 = function(t3, e3) { if (S2(t3)) return t3.clone(); var n3 = "object" == typeof e3 ? e3 : {}; return n3.date = t3, n3.args = arguments, new _2(n3); }, b2 = v2; b2.l = w2, b2.i = S2, b2.w = function(t3, e3) { return O2(t3, { locale: e3.$L, utc: e3.$u, x: e3.$x, $offset: e3.$offset }); }; var _2 = function() { function M3(t3) { this.$L = w2(t3.locale, null, true), this.parse(t3), this.$x = this.$x || t3.x || {}, this[p2] = true; } var m3 = M3.prototype; return m3.parse = function(t3) { this.$d = function(t4) { var e3 = t4.date, n3 = t4.utc; if (null === e3) return /* @__PURE__ */ new Date(NaN); if (b2.u(e3)) return /* @__PURE__ */ new Date(); if (e3 instanceof Date) return new Date(e3); if ("string" == typeof e3 && !/Z$/i.test(e3)) { var r3 = e3.match($2); if (r3) { var i3 = r3[2] - 1 || 0, s3 = (r3[7] || "0").substring(0, 3); return n3 ? new Date(Date.UTC(r3[1], i3, r3[3] || 1, r3[4] || 0, r3[5] || 0, r3[6] || 0, s3)) : new Date(r3[1], i3, r3[3] || 1, r3[4] || 0, r3[5] || 0, r3[6] || 0, s3); } } return new Date(e3); }(t3), this.init(); }, m3.init = function() { var t3 = this.$d; this.$y = t3.getFullYear(), this.$M = t3.getMonth(), this.$D = t3.getDate(), this.$W = t3.getDay(), this.$H = t3.getHours(), this.$m = t3.getMinutes(), this.$s = t3.getSeconds(), this.$ms = t3.getMilliseconds(); }, m3.$utils = function() { return b2; }, m3.isValid = function() { return !(this.$d.toString() === l2); }, m3.isSame = function(t3, e3) { var n3 = O2(t3); return this.startOf(e3) <= n3 && n3 <= this.endOf(e3); }, m3.isAfter = function(t3, e3) { return O2(t3) < this.startOf(e3); }, m3.isBefore = function(t3, e3) { return this.endOf(e3) < O2(t3); }, m3.$g = function(t3, e3, n3) { return b2.u(t3) ? this[e3] : this.set(n3, t3); }, m3.unix = function() { return Math.floor(this.valueOf() / 1e3); }, m3.valueOf = function() { return this.$d.getTime(); }, m3.startOf = function(t3, e3) { var n3 = this, r3 = !!b2.u(e3) || e3, f3 = b2.p(t3), l3 = function(t4, e4) { var i3 = b2.w(n3.$u ? Date.UTC(n3.$y, e4, t4) : new Date(n3.$y, e4, t4), n3); return r3 ? i3 : i3.endOf(a2); }, $3 = function(t4, e4) { return b2.w(n3.toDate()[t4].apply(n3.toDate("s"), (r3 ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e4)), n3); }, y3 = this.$W, M4 = this.$M, m4 = this.$D, v3 = "set" + (this.$u ? "UTC" : ""); switch (f3) { case h2: return r3 ? l3(1, 0) : l3(31, 11); case c2: return r3 ? l3(1, M4) : l3(0, M4 + 1); case o2: var g3 = this.$locale().weekStart || 0, D3 = (y3 < g3 ? y3 + 7 : y3) - g3; return l3(r3 ? m4 - D3 : m4 + (6 - D3), M4); case a2: case d2: return $3(v3 + "Hours", 0); case u2: return $3(v3 + "Minutes", 1); case s2: return $3(v3 + "Seconds", 2); case i2: return $3(v3 + "Milliseconds", 3); default: return this.clone(); } }, m3.endOf = function(t3) { return this.startOf(t3, false); }, m3.$set = function(t3, e3) { var n3, o3 = b2.p(t3), f3 = "set" + (this.$u ? "UTC" : ""), l3 = (n3 = {}, n3[a2] = f3 + "Date", n3[d2] = f3 + "Date", n3[c2] = f3 + "Month", n3[h2] = f3 + "FullYear", n3[u2] = f3 + "Hours", n3[s2] = f3 + "Minutes", n3[i2] = f3 + "Seconds", n3[r2] = f3 + "Milliseconds", n3)[o3], $3 = o3 === a2 ? this.$D + (e3 - this.$W) : e3; if (o3 === c2 || o3 === h2) { var y3 = this.clone().set(d2, 1); y3.$d[l3]($3), y3.init(), this.$d = y3.set(d2, Math.min(this.$D, y3.daysInMonth())).$d; } else l3 && this.$d[l3]($3); return this.init(), this; }, m3.set = function(t3, e3) { return this.clone().$set(t3, e3); }, m3.get = function(t3) { return this[b2.p(t3)](); }, m3.add = function(r3, f3) { var d3, l3 = this; r3 = Number(r3); var $3 = b2.p(f3), y3 = function(t3) { var e3 = O2(l3); return b2.w(e3.date(e3.date() + Math.round(t3 * r3)), l3); }; if ($3 === c2) return this.set(c2, this.$M + r3); if ($3 === h2) return this.set(h2, this.$y + r3); if ($3 === a2) return y3(1); if ($3 === o2) return y3(7); var M4 = (d3 = {}, d3[s2] = e2, d3[u2] = n2, d3[i2] = t2, d3)[$3] || 1, m4 = this.$d.getTime() + r3 * M4; return b2.w(m4, this); }, m3.subtract = function(t3, e3) { return this.add(-1 * t3, e3); }, m3.format = function(t3) { var e3 = this, n3 = this.$locale(); if (!this.isValid()) return n3.invalidDate || l2; var r3 = t3 || "YYYY-MM-DDTHH:mm:ssZ", i3 = b2.z(this), s3 = this.$H, u3 = this.$m, a3 = this.$M, o3 = n3.weekdays, c3 = n3.months, f3 = n3.meridiem, h3 = function(t4, n4, i4, s4) { return t4 && (t4[n4] || t4(e3, r3)) || i4[n4].slice(0, s4); }, d3 = function(t4) { return b2.s(s3 % 12 || 12, t4, "0"); }, $3 = f3 || function(t4, e4, n4) { var r4 = t4 < 12 ? "AM" : "PM"; return n4 ? r4.toLowerCase() : r4; }; return r3.replace(y2, function(t4, r4) { return r4 || function(t5) { switch (t5) { case "YY": return String(e3.$y).slice(-2); case "YYYY": return b2.s(e3.$y, 4, "0"); case "M": return a3 + 1; case "MM": return b2.s(a3 + 1, 2, "0"); case "MMM": return h3(n3.monthsShort, a3, c3, 3); case "MMMM": return h3(c3, a3); case "D": return e3.$D; case "DD": return b2.s(e3.$D, 2, "0"); case "d": return String(e3.$W); case "dd": return h3(n3.weekdaysMin, e3.$W, o3, 2); case "ddd": return h3(n3.weekdaysShort, e3.$W, o3, 3); case "dddd": return o3[e3.$W]; case "H": return String(s3); case "HH": return b2.s(s3, 2, "0"); case "h": return d3(1); case "hh": return d3(2); case "a": return $3(s3, u3, true); case "A": return $3(s3, u3, false); case "m": return String(u3); case "mm": return b2.s(u3, 2, "0"); case "s": return String(e3.$s); case "ss": return b2.s(e3.$s, 2, "0"); case "SSS": return b2.s(e3.$ms, 3, "0"); case "Z": return i3; } return null; }(t4) || i3.replace(":", ""); }); }, m3.utcOffset = function() { return 15 * -Math.round(this.$d.getTimezoneOffset() / 15); }, m3.diff = function(r3, d3, l3) { var $3, y3 = this, M4 = b2.p(d3), m4 = O2(r3), v3 = (m4.utcOffset() - this.utcOffset()) * e2, g3 = this - m4, D3 = function() { return b2.m(y3, m4); }; switch (M4) { case h2: $3 = D3() / 12; break; case c2: $3 = D3(); break; case f2: $3 = D3() / 3; break; case o2: $3 = (g3 - v3) / 6048e5; break; case a2: $3 = (g3 - v3) / 864e5; break; case u2: $3 = g3 / n2; break; case s2: $3 = g3 / e2; break; case i2: $3 = g3 / t2; break; default: $3 = g3; } return l3 ? $3 : b2.a($3); }, m3.daysInMonth = function() { return this.endOf(c2).$D; }, m3.$locale = function() { return D2[this.$L]; }, m3.locale = function(t3, e3) { if (!t3) return this.$L; var n3 = this.clone(), r3 = w2(t3, e3, true); return r3 && (n3.$L = r3), n3; }, m3.clone = function() { return b2.w(this.$d, this); }, m3.toDate = function() { return new Date(this.valueOf()); }, m3.toJSON = function() { return this.isValid() ? this.toISOString() : null; }, m3.toISOString = function() { return this.$d.toISOString(); }, m3.toString = function() { return this.$d.toUTCString(); }, M3; }(), k = _2.prototype; return O2.prototype = k, [["$ms", r2], ["$s", i2], ["$m", s2], ["$H", u2], ["$W", a2], ["$M", c2], ["$y", h2], ["$D", d2]].forEach(function(t3) { k[t3[1]] = function(e3) { return this.$g(e3, t3[0], t3[1]); }; }), O2.extend = function(t3, e3) { return t3.$i || (t3(e3, _2, O2), t3.$i = true), O2; }, O2.locale = w2, O2.isDayjs = S2, O2.unix = function(t3) { return O2(1e3 * t3); }, O2.en = D2[g2], O2.Ls = D2, O2.p = {}, O2; }); })(dayjs_min); var dayjs_minExports = dayjs_min.exports; const dayjs = /* @__PURE__ */ getDefaultExportFromCjs(dayjs_minExports); var isIOS; function album() { var result = 0; var PHPhotoLibrary = plus.ios.import("PHPhotoLibrary"); var authStatus = PHPhotoLibrary.authorizationStatus(); if (authStatus === 0) { result = null; } else if (authStatus == 3) { result = 1; } else { result = 0; } plus.ios.deleteObject(PHPhotoLibrary); return result; } function camera() { var result = 0; var AVCaptureDevice = plus.ios.import("AVCaptureDevice"); var authStatus = AVCaptureDevice.authorizationStatusForMediaType("vide"); if (authStatus === 0) { result = null; } else if (authStatus == 3) { result = 1; } else { result = 0; } plus.ios.deleteObject(AVCaptureDevice); return result; } function location$1() { var result = 0; var cllocationManger = plus.ios.import("CLLocationManager"); var enable = cllocationManger.locationServicesEnabled(); var status = cllocationManger.authorizationStatus(); if (!enable) { result = 2; } else if (status === 0) { result = null; } else if (status === 3 || status === 4) { result = 1; } else { result = 0; } plus.ios.deleteObject(cllocationManger); return result; } function push() { var result = 0; var UIApplication = plus.ios.import("UIApplication"); var app = UIApplication.sharedApplication(); var enabledTypes = 0; if (app.currentUserNotificationSettings) { var settings = app.currentUserNotificationSettings(); enabledTypes = settings.plusGetAttribute("types"); if (enabledTypes == 0) { result = 0; formatAppLog("log", "at common/permission.js:63", "推送权限没有开启"); } else { result = 1; formatAppLog("log", "at common/permission.js:66", "已经开启推送功能!"); } plus.ios.deleteObject(settings); } else { enabledTypes = app.enabledRemoteNotificationTypes(); if (enabledTypes == 0) { result = 3; formatAppLog("log", "at common/permission.js:73", "推送权限没有开启!"); } else { result = 4; formatAppLog("log", "at common/permission.js:76", "已经开启推送功能!"); } } plus.ios.deleteObject(app); plus.ios.deleteObject(UIApplication); return result; } function contact() { var result = 0; var CNContactStore = plus.ios.import("CNContactStore"); var cnAuthStatus = CNContactStore.authorizationStatusForEntityType(0); if (cnAuthStatus === 0) { result = null; } else if (cnAuthStatus == 3) { result = 1; } else { result = 0; } plus.ios.deleteObject(CNContactStore); return result; } function record() { var result = null; var avaudiosession = plus.ios.import("AVAudioSession"); var avaudio = avaudiosession.sharedInstance(); var status = avaudio.recordPermission(); formatAppLog("log", "at common/permission.js:104", "permissionStatus:" + status); if (status === 1970168948) { result = null; } else if (status === 1735552628) { result = 1; } else { result = 0; } plus.ios.deleteObject(avaudiosession); return result; } function calendar() { var result = null; var EKEventStore = plus.ios.import("EKEventStore"); var ekAuthStatus = EKEventStore.authorizationStatusForEntityType(0); if (ekAuthStatus == 3) { result = 1; formatAppLog("log", "at common/permission.js:122", "日历权限已经开启"); } else { formatAppLog("log", "at common/permission.js:124", "日历权限没有开启"); } plus.ios.deleteObject(EKEventStore); return result; } function memo() { var result = null; var EKEventStore = plus.ios.import("EKEventStore"); var ekAuthStatus = EKEventStore.authorizationStatusForEntityType(1); if (ekAuthStatus == 3) { result = 1; formatAppLog("log", "at common/permission.js:136", "备忘录权限已经开启"); } else { formatAppLog("log", "at common/permission.js:138", "备忘录权限没有开启"); } plus.ios.deleteObject(EKEventStore); return result; } function requestIOS(permissionID) { return new Promise((resolve, reject) => { switch (permissionID) { case "push": resolve(push()); break; case "location": resolve(location$1()); break; case "record": resolve(record()); break; case "camera": resolve(camera()); break; case "album": resolve(album()); break; case "contact": resolve(contact()); break; case "calendar": resolve(calendar()); break; case "memo": resolve(memo()); break; default: resolve(0); break; } }); } function requestAndroid(permissionID) { return new Promise((resolve, reject) => { plus.android.requestPermissions( [permissionID], function(resultObj) { var result = 0; for (var i2 = 0; i2 < resultObj.granted.length; i2++) { var grantedPermission = resultObj.granted[i2]; formatAppLog("log", "at common/permission.js:187", "已获取的权限:" + grantedPermission); result = 1; } for (var i2 = 0; i2 < resultObj.deniedPresent.length; i2++) { var deniedPresentPermission = resultObj.deniedPresent[i2]; formatAppLog("log", "at common/permission.js:192", "拒绝本次申请的权限:" + deniedPresentPermission); result = 0; } for (var i2 = 0; i2 < resultObj.deniedAlways.length; i2++) { var deniedAlwaysPermission = resultObj.deniedAlways[i2]; formatAppLog("log", "at common/permission.js:197", "永久拒绝申请的权限:" + deniedAlwaysPermission); result = -1; } resolve(result); }, function(error) { formatAppLog("log", "at common/permission.js:203", "result error: " + error.message); resolve({ code: error.code, message: error.message }); } ); }); } function gotoAppPermissionSetting() { if (permission.isIOS) { var UIApplication = plus.ios.import("UIApplication"); var application2 = UIApplication.sharedApplication(); var NSURL2 = plus.ios.import("NSURL"); var setting2 = NSURL2.URLWithString("app-settings:"); application2.openURL(setting2); plus.ios.deleteObject(setting2); plus.ios.deleteObject(NSURL2); plus.ios.deleteObject(application2); } else { var Intent = plus.android.importClass("android.content.Intent"); var Settings = plus.android.importClass("android.provider.Settings"); var Uri = plus.android.importClass("android.net.Uri"); var mainActivity = plus.android.runtimeMainActivity(); var intent = new Intent(); intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); var uri = Uri.fromParts("package", mainActivity.getPackageName(), null); intent.setData(uri); mainActivity.startActivity(intent); } } const permission = { get isIOS() { return typeof isIOS === "boolean" ? isIOS : isIOS = uni.getSystemInfoSync().platform === "ios"; }, requestIOS, requestAndroid, gotoAppSetting: gotoAppPermissionSetting }; const baseURL = "http://dsg.tms.api.aibasil.cn"; const warehouseScanURL = baseURL + "/admin/order.sheetOrder/warehouseScan"; const instockScanURL = baseURL + "/admin/order.scanOrder/instock"; const outStockScanURL = baseURL + "/admin/order.scanOrder/outStock"; const checkWaybillGoodsURL = baseURL + "/admin/order.scanOrder/checkWaybillGoods"; const getWarehouseSpaceURL = baseURL + "/admin/order.ScanOrder/getWarehouseSpace"; const weighScanURL = baseURL + "/admin/order.scanOrder/weigh"; const getBindParamsURL = baseURL + "/admin/order.scanOrder/getBindParams"; const getPrinterListURL = baseURL + "/admin/printer//getPrinterList"; const bindShippingURL = baseURL + "/admin/order.scanOrder/bindShipping"; const getWaybillsURL = baseURL + "/admin/order.scanOrder/getWaybills"; const printWaybillLabelURL = baseURL + "/admin/order.ScanOrder/printWaybillLabel"; const printCustomerLabelURL = baseURL + "/admin/order.ScanOrder/printCustomerLabel"; const loginURL = baseURL + "/admin/index/login"; const getcaptchaURL = baseURL + "/api/common/captcha"; const pickupWaybillDeliveryOrderURL = baseURL + "/admin/pickup.waybillDeliveryOrder"; const addWaybillNoURL = baseURL + "/admin/warehouse.waybillNo/add"; const waybillNoOptions = baseURL + "/admin/warehouse.waybillNo/getOptions"; const sendOutURL = baseURL + "/admin/pickup.waybillDeliveryOrder/sendOut"; const deliveredURL = baseURL + "/admin/pickup.waybillDeliveryOrder/delivered"; const refuseURL = baseURL + "/admin/pickup.waybillDeliveryOrder/refuse"; const createTrackPodURL = baseURL + "/admin/pickup.waybillDeliveryOrder/createTrackPod"; const cancelFedExPickUpURL = baseURL + "/admin/pickup.waybillDeliveryOrder/cancelFedExPickUp"; const getAliyunOssSignatureUrl = baseURL + "/admin/Config/getAliyunOssSignature"; const hexList = []; for (let i2 = 0; i2 <= 15; i2++) { hexList[i2] = i2.toString(16); } function uuid() { let uuid2 = ""; for (let i2 = 1; i2 <= 36; i2++) { if (i2 === 9 || i2 === 14 || i2 === 19 || i2 === 24) { uuid2 += "-"; } else if (i2 === 15) { uuid2 += 4; } else if (i2 === 20) { uuid2 += hexList[Math.random() * 4 | 8]; } else { uuid2 += hexList[Math.random() * 16 | 0]; } } return uuid2; } const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({ __name: "index", setup(__props, { expose: __expose }) { __expose(); const alertDialog = vue.ref(); const message = vue.ref(); const valiForm = vue.ref(); const printerDialog = vue.ref(); const token = vue.ref(null); const user = vue.ref(null); const loading = vue.ref(false); const images = vue.ref([]); const messageType = vue.ref(""); const messageText = vue.ref(""); const batchOptions = vue.ref([]); const spaces = vue.ref([]); const previewImage = vue.ref(null); const maxImages = vue.ref(6); const uploadData = vue.ref([]); const imageValue = vue.ref([]); const printerList = vue.ref({}); const instockHistory = vue.ref([]); const printers = vue.ref([]); const downloadFile = vue.ref([]); const sendToPeinter = vue.ref([1]); const selectPrinter = vue.ref(0); const subLoading = vue.ref(false); const focusType = vue.ref(true); const result = vue.ref(); const valiFormData = vue.reactive({ images: [], orderNum: "", batch_number: "", space_code: "", weight: "", search_pkg: true, typing: true, search_order: true, search_order_choice: 1 }); const searchOrderChoice = vue.reactive([ { text: "更新为已入库,状态为【已入库】", value: 1 }, { text: "更新为已出库,状态为【已出库】", value: 2 }, { text: "称重计费", value: 3 } ]); const rules = vue.computed(() => { return { orderNum: { rules: [ { required: valiFormData.search_order_choice !== 2, errorMessage: "单号不能为空" } ] }, weight: { rules: [ { required: true, errorMessage: "重量不能为空" }, { format: "number", errorMessage: "重量只能输入数字" } ] } }; }); const spaceRes = vue.computed(() => { try { const res = spaces.value.find((item) => item.value === valiFormData.space_code); return res == null ? void 0 : res.text; } catch (e2) { formatAppLog("log", "at pages/instock/index.vue:261", e2); return ""; } }); onShow(() => { focusType.value = true; loading.value = false; token.value = uni.getStorageSync("token"); user.value = uni.getStorageSync("user"); getWarehouseSpace(); getBindParams(); getPrinterList(); }); onHide(() => { focusType.value = false; loading.value = false; }); onNavigationBarButtonTap((event) => { if (event.index === 0) { uni.navigateTo({ url: "/pages/instock/instockLog" }); } }); const getWarehouseSpace = () => { uni.request({ url: getWarehouseSpaceURL, method: "POST", header: { batoken: token.value }, data: { code: "" }, success: (res) => { if (res.data.code === 1) { spaces.value = res.data.data.spaces.map((item) => { return { text: item.name, value: item.code }; }); } } }); }; const getBindParams = () => { uni.request({ url: getBindParamsURL, method: "GET", header: { batoken: token.value }, success: (res) => { if (res.data.code === 1) { batchOptions.value = res.data.data.batch_number.map((item) => { return { text: item.name, value: item.id }; }); } }, fail(e2) { formatAppLog("log", "at pages/instock/index.vue:327", "fail--", e2); } }); }; const getPrinterList = () => { uni.request({ url: getPrinterListURL, method: "GET", header: { batoken: token.value }, success: (res) => { if (res.data.code === 1) { printerList.value = res.data.data.printers; printers.value = Object.values(printerList.value).map((item) => { return { text: item.name, value: item.value }; }); } }, fail(e2) { formatAppLog("log", "at pages/instock/index.vue:351", "fail--", e2); } }); }; const batchText = (batch_number) => { var _a; return (_a = batchOptions.value.find((item) => item.value === batch_number)) == null ? void 0 : _a.text; }; const searchPkgChange = () => { valiFormData.search_pkg = !valiFormData.search_pkg; valiFormData.typing = valiFormData.search_pkg; }; const searchOrderChoiceChange = () => { valiFormData.search_order = !valiFormData.search_order; valiFormData.search_order_choice = valiFormData.search_order ? 3 : ""; }; const reset = () => { loading.value = false; focusType.value = false; images.value = []; valiFormData.orderNum = ""; valiFormData.batch_number = ""; valiFormData.weight = ""; valiFormData.search_pkg = true; valiFormData.typing = true; valiFormData.search_order = true; vue.nextTick(() => { focusType.value = true; }); }; const scan = async () => { let status = await checkPermission(); if (status !== 1) { return; } uni.scanCode({ success: (res) => { result.value = res.result; valiFormData.orderNum = res.result; }, fail: (err) => { } }); }; const checkPermission = async () => { let status = permission.isIOS ? await permission.requestIOS("camera") : await permission.requestAndroid("android.permission.CAMERA"); if (status === null || status === 1) { status = 1; } else { uni.showModal({ content: "Camera permission required", confirmText: "Setting", success: function(res) { if (res.confirm) { permission.gotoAppSetting(); } } }); } return status; }; let st2; const warehouseScan = async () => { st2 && clearTimeout(st2); if (valiFormData.search_order_choice === 1) { await checkWaybillGoods(); } else if (valiFormData.search_order_choice === 2) { await scanOutstock(); } else if (valiFormData.search_order_choice === 3) { await weighScan(); } }; const checkWaybillGoods = async () => { loading.value = true; uni.request({ url: checkWaybillGoodsURL, method: "POST", header: { batoken: token.value }, data: { order_no: valiFormData.orderNum }, success: (res) => { if (res.data.code === 1 && res.data.data.is_goods_empty) { alertDialog.value.open(); } else { instockScan(0); } } }); }; const instockScan = (is_save_goods) => { const images2 = getImages(); uni.request({ url: instockScanURL, method: "POST", header: { batoken: token.value }, data: { order_no: valiFormData.orderNum, weight: valiFormData.weight, space_code: valiFormData.space_code, is_save_goods, images: images2 }, success: (res) => { loading.value = false; if (res.data.code == 1) { messageType.value = "success"; messageText.value = res.data.msg; message.value.open(); formatAppLog("log", "at pages/instock/index.vue:475", "res.data.data---", res.data.data); const historyItem = { orderNum: valiFormData.orderNum, createTime: /* @__PURE__ */ new Date(), space: spaceRes.value, type: "入库", status: true }; instockHistory.value.unshift(historyItem); uni.setStorageSync("instockHistory", instockHistory.value); if (res.data.data.express_label) { formatAppLog("log", "at pages/instock/index.vue:489", "有打印面单"); selectPrinter.value = sendToPeinter.value.length > 0 ? printers.value[0].value : 0; printerDialog.value.open(); } else { st2 = setTimeout(() => { reset(); st2 && clearTimeout(st2); }, 1e3); } } else { messageType.value = "error"; messageText.value = res.data.msg; message.value.open(); const historyItem = { orderNum: valiFormData.orderNum, createTime: /* @__PURE__ */ new Date(), space: spaceRes.value, type: "入库", status: false }; instockHistory.value.unshift(historyItem); uni.setStorageSync("instockHistory", instockHistory.value); st2 = setTimeout(() => { reset(); st2 && clearTimeout(st2); }, 1e3); } } }); }; const scanOutstock = () => { formatAppLog("log", "at pages/instock/index.vue:522", valiFormData.orderNum, valiFormData.batch_number); if (valiFormData.orderNum.length === 0 && valiFormData.batch_number.length === 0) { messageType.value = "error"; messageText.value = "单号或批次号至少填一个"; message.value.open(); return; } loading.value = true; uni.request({ url: outStockScanURL, method: "POST", header: { batoken: token.value }, data: { order_no: valiFormData.orderNum, batch_number: valiFormData.batch_number }, success: (res) => { loading.value = false; if (res.data.code == 1) { messageType.value = "success"; messageText.value = res.data.msg; message.value.open(); const historyItem = { orderNum: valiFormData.orderNum, batch_text: batchText(valiFormData.batch_number), createTime: /* @__PURE__ */ new Date(), type: "出库", status: true }; instockHistory.value.unshift(historyItem); instockHistory.value.length > 10 && (instockHistory.value.length = 10); uni.setStorageSync("instockHistory", instockHistory.value); if (res.data.data.labels && res.data.data.labels.length > 0) { formatAppLog("log", "at pages/instock/index.vue:559", "有打印面单"); selectPrinter.value = sendToPeinter.value.length > 0 ? printers.value[0].value : 0; printerDialog.value.open(); } else { st2 = setTimeout(() => { reset(); st2 && clearTimeout(st2); }, 700); } } else { messageType.value = "error"; messageText.value = res.data.msg; message.value.open(); const historyItem = { orderNum: valiFormData.orderNum, batch_text: batchText(valiFormData.batch_number), createTime: /* @__PURE__ */ new Date(), type: "出库", status: false }; instockHistory.value.unshift(historyItem); instockHistory.value.length > 10 && (instockHistory.value.length = 10); uni.setStorageSync("instockHistory", instockHistory.value); st2 = setTimeout(() => { reset(); st2 && clearTimeout(st2); }, 700); } } }); }; const weighScan = () => { loading.value = true; uni.request({ url: weighScanURL, method: "POST", header: { batoken: token.value }, data: { order_no: valiFormData.orderNum, weight: valiFormData.weight }, success: (res) => { loading.value = false; if (res.data.code == 1) { messageType.value = "success"; messageText.value = res.data.msg; message.value.open(); const historyItem = { orderNum: valiFormData.orderNum, createTime: /* @__PURE__ */ new Date(), type: "称重", status: true }; instockHistory.value.unshift(historyItem); instockHistory.value.length > 10 && (instockHistory.value.length = 10); uni.setStorageSync("instockHistory", instockHistory.value); } else { messageType.value = "error"; messageText.value = res.data.msg; message.value.open(); const historyItem = { orderNum: valiFormData.orderNum, createTime: /* @__PURE__ */ new Date(), type: "称重", status: false }; instockHistory.value.unshift(historyItem); instockHistory.value.length > 10 && (instockHistory.value.length = 10); uni.setStorageSync("instockHistory", instockHistory.value); } st2 = setTimeout(() => { reset(); st2 && clearTimeout(st2); }, 700); } }); }; const close = () => { printerDialog.value.close(); st2 = setTimeout(() => { reset(); st2 && clearTimeout(st2); }, 700); }; const dialogConfirm = () => { instockScan(1); }; const dialogClose = () => { instockScan(0); }; const sendToPeinterFun = (res) => { if (!res.detail.value.length > 0) { selectPrinter.value = 0; } else { selectPrinter.value = printers.value[0].value; } }; const printConfirm = () => { subLoading.value = true; uni.request({ url: printWaybillLabelURL, method: "POST", header: { batoken: token.value }, data: { order_no: valiFormData.orderNum, printer_code: selectPrinter }, success: (res) => { close(); subLoading.value = false; formatAppLog("log", "at pages/instock/index.vue:678", "打印成功", res); messageType.value = "success"; messageText.value = "打印成功"; message.value.open(); } }); }; const onsubmit = () => { valiForm.value.validate().then((res) => { warehouseScan(); }).catch((err) => { formatAppLog("log", "at pages/instock/index.vue:692", "err", err); }); }; const getHistory = () => { }; const getImages = () => { const res = images.value.map((item) => { return { name: item.name, savePath: item.serverUrl, fileSize: item.size, mimeType: item.type }; }); formatAppLog("log", "at pages/instock/index.vue:707", "res22 ", res); return res; }; const getAliyunOssSignature = (rawFiles) => { uni.request({ url: getAliyunOssSignatureUrl, method: "GET", header: { batoken: token.value }, success: ({ data }) => { const signature = data.data.signature; const uploadPromises = rawFiles.map((image) => { return upLoadFile(signature, image); }); Promise.all(uploadPromises).then((results) => { formatAppLog("log", "at pages/instock/index.vue:728", "所有图片加载成功:", results); uni.showToast({ title: "加载成功", icon: "success" }); }).catch((error) => { formatAppLog("error", "at pages/instock/index.vue:735", "加载失败:", error); uni.showToast({ title: "加载失败", icon: "none" }); }); }, fail: (err) => { formatAppLog("log", "at pages/instock/index.vue:743", err); } }); }; const upLoadFile = (signature, image) => { const fileData = { policy: signature.policy, signature: signature.signature, ossaccessKeyId: signature.ossAccessKeyId, key: signature.dir + dayjs().format("YYYYMMDD") + "/" + uuid() + "_" + image.name, dir: signature.dir, host: signature.host, file: image.file }; return new Promise((resolve, reject) => { const uploadTask = uni.uploadFile({ url: signature.host, // 你的上传接口地址 filePath: image.path, name: image.name, // 这里根据后端需要的字段来定义 formData: fileData, success: (uploadFileRes) => { if (uploadFileRes.statusCode === 204 || uploadFileRes.statusCode === 200) { image.serverUrl = fileData.key; resolve(uploadFileRes); } else { reject(uploadFileRes); } }, fail: (error) => { formatAppLog("log", "at pages/instock/index.vue:772", "error++", error); reject(error); }, // 更新上传进度 complete: () => { formatAppLog("log", "at pages/instock/index.vue:777", "complete---"); image.progress = 100; } }); uploadTask.onProgressUpdate((progressEvent) => { image.progress = progressEvent.progress; }); }); }; const chooseImage = () => { uni.chooseImage({ count: maxImages.value - images.value.length, success: (res) => { formatAppLog("log", "at pages/instock/index.vue:791", "res---", res); images.value = images.value.concat( res.tempFiles.map((item) => { const res2 = { size: item.size, path: item.path, name: item.name, type: item.type, progress: 0, file: item }; const suffix = item.path.substring(item.path.lastIndexOf(".") + 1); const fileName = item.path.substring(item.path.lastIndexOf("/") + 1); res2.name = fileName; res2.type = suffix; return res2; }) ); const paddingImages = images.value.filter((image) => image.progress === 0); vue.nextTick(() => { getAliyunOssSignature(paddingImages); }); }, fail: (err) => { formatAppLog("error", "at pages/instock/index.vue:825", err); } }); }; const deleteImage = (index) => { images.value.splice(index, 1); }; const openPreview = (image) => { previewImage.value = image; }; const closePreview = () => { previewImage.value = null; }; const __returned__ = { alertDialog, message, valiForm, printerDialog, token, user, loading, images, messageType, messageText, batchOptions, spaces, previewImage, maxImages, uploadData, imageValue, printerList, instockHistory, printers, downloadFile, sendToPeinter, selectPrinter, subLoading, focusType, result, valiFormData, searchOrderChoice, rules, spaceRes, getWarehouseSpace, getBindParams, getPrinterList, batchText, searchPkgChange, searchOrderChoiceChange, reset, scan, checkPermission, get st() { return st2; }, set st(v2) { st2 = v2; }, warehouseScan, checkWaybillGoods, instockScan, scanOutstock, weighScan, close, dialogConfirm, dialogClose, sendToPeinterFun, printConfirm, onsubmit, getHistory, getImages, getAliyunOssSignature, upLoadFile, chooseImage, deleteImage, openPreview, closePreview }; Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true }); return __returned__; } }); function _sfc_render$l(_ctx, _cache, $props, $setup, $data, $options) { const _component_uni_easyinput = resolveEasycom(vue.resolveDynamicComponent("uni-easyinput"), __easycom_1$1); const _component_uni_forms_item = resolveEasycom(vue.resolveDynamicComponent("uni-forms-item"), __easycom_2$1); const _component_uni_data_select = resolveEasycom(vue.resolveDynamicComponent("uni-data-select"), __easycom_0$6); const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4); const _component_uni_data_checkbox = resolveEasycom(vue.resolveDynamicComponent("uni-data-checkbox"), __easycom_0$4); const _component_uni_forms = resolveEasycom(vue.resolveDynamicComponent("uni-forms"), __easycom_3$2); const _component_uni_popup_message = resolveEasycom(vue.resolveDynamicComponent("uni-popup-message"), __easycom_5); const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_6); const _component_uni_popup_dialog = resolveEasycom(vue.resolveDynamicComponent("uni-popup-dialog"), __easycom_0$2); return vue.openBlock(), vue.createElementBlock("view", { class: "container" }, [ vue.createElementVNode("view", { class: "example" }, [ vue.createCommentVNode(" 基础表单校验 "), vue.createVNode(_component_uni_forms, { ref: "valiForm", "label-align": "right", rules: $setup.rules, modelValue: $setup.valiFormData }, { default: vue.withCtx(() => [ vue.createVNode(_component_uni_forms_item, { label: "单号", required: $setup.valiFormData.search_order_choice !== 2, name: "orderNum" }, { default: vue.withCtx(() => [ vue.createVNode(_component_uni_easyinput, { modelValue: $setup.valiFormData.orderNum, "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $setup.valiFormData.orderNum = $event), placeholder: "请输入单号", suffixIcon: "scan", focus: $setup.focusType, onIconClick: $setup.scan }, null, 8, ["modelValue", "focus"]) ]), _: 1 /* STABLE */ }, 8, ["required"]), $setup.valiFormData.search_order_choice === 2 ? (vue.openBlock(), vue.createBlock(_component_uni_forms_item, { key: 0, label: "批次号", name: "batch_number" }, { default: vue.withCtx(() => [ vue.createVNode(_component_uni_data_select, { modelValue: $setup.valiFormData.batch_number, "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $setup.valiFormData.batch_number = $event), localdata: $setup.batchOptions, placeholder: "请选择批次号" }, null, 8, ["modelValue", "localdata"]) ]), _: 1 /* STABLE */ })) : vue.createCommentVNode("v-if", true), $setup.valiFormData.search_order_choice === 1 ? (vue.openBlock(), vue.createBlock(_component_uni_forms_item, { key: 1, label: "仓位编码", name: "space_code" }, { default: vue.withCtx(() => [ vue.createVNode(_component_uni_data_select, { modelValue: $setup.valiFormData.space_code, "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $setup.valiFormData.space_code = $event), localdata: $setup.spaces, placeholder: "请选择仓位编码" }, null, 8, ["modelValue", "localdata"]) ]), _: 1 /* STABLE */ })) : vue.createCommentVNode("v-if", true), $setup.valiFormData.search_order_choice !== 2 ? (vue.openBlock(), vue.createBlock(_component_uni_forms_item, { key: 2, label: "重量", required: "", name: "weight" }, { default: vue.withCtx(() => [ vue.createVNode(_component_uni_easyinput, { modelValue: $setup.valiFormData.weight, "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => $setup.valiFormData.weight = $event), placeholder: "请输入重量", oninput: "value=value.replace(/[^\\d.]/g,'').replace(/^\\./g, '').replace(/\\.{2,}/g, '').replace('.', '$#$').replace(/\\./g, '').replace('$#$', '.').match(/^\\d*(\\.?\\d{0,2})/g)[0] || null" }, { right: vue.withCtx(() => [ vue.createElementVNode("view", { class: "weight-right" }, "KG") ]), _: 1 /* STABLE */ }, 8, ["modelValue"]) ]), _: 1 /* STABLE */ })) : vue.createCommentVNode("v-if", true), $setup.valiFormData.search_order_choice === 1 ? (vue.openBlock(), vue.createBlock(_component_uni_forms_item, { key: 3, label: "图片", name: "images" }, { default: vue.withCtx(() => [ vue.createElementVNode("view", { class: "upload-container" }, [ vue.createElementVNode("view", { class: "preview" }, [ (vue.openBlock(true), vue.createElementBlock( vue.Fragment, null, vue.renderList($setup.images, (img, index) => { return vue.openBlock(), vue.createElementBlock("view", { key: index, class: "image-container" }, [ vue.createElementVNode("image", { src: img.path, class: "preview-image", mode: "aspectFill", onClick: ($event) => $setup.openPreview(img.path) }, null, 8, ["src", "onClick"]), vue.createElementVNode("progress", { percent: img.progress || 0, activeColor: Number(img.progress || 0) === 100 ? "#00ff00" : "#10AEFF", "stroke-width": "3" }, null, 8, ["percent", "activeColor"]), img.status === "success" ? (vue.openBlock(), vue.createElementBlock("text", { key: 0 }, "1")) : vue.createCommentVNode("v-if", true), vue.createVNode(_component_uni_icons, { class: "delete-icon", onClick: ($event) => $setup.deleteImage(index), type: "clear", size: "20", color: "red" }, null, 8, ["onClick"]) ]); }), 128 /* KEYED_FRAGMENT */ )), $setup.images.length < $setup.maxImages ? (vue.openBlock(), vue.createElementBlock("view", { key: 0, class: "choose-image-container", onClick: $setup.chooseImage }, [ vue.createVNode(_component_uni_icons, { type: "plusempty", size: "40", color: "#ccc" }) ])) : vue.createCommentVNode("v-if", true) ]), vue.createElementVNode("text", { style: { "padding-top": "8px" } }, "最多选择6张图片"), vue.createCommentVNode(" 放大预览 "), $setup.previewImage ? (vue.openBlock(), vue.createElementBlock("view", { key: 0, class: "preview-modal", onClick: $setup.closePreview }, [ vue.createElementVNode("image", { src: $setup.previewImage, class: "preview-large", mode: "aspectFit", onClick: vue.withModifiers($setup.closePreview, ["stop"]) }, null, 8, ["src"]) ])) : vue.createCommentVNode("v-if", true) ]) ]), _: 1 /* STABLE */ })) : vue.createCommentVNode("v-if", true), vue.createVNode(_component_uni_forms_item, null, { default: vue.withCtx(() => [ vue.createElementVNode( "view", { onClick: $setup.searchPkgChange, class: "checkbox-cum", style: vue.normalizeStyle({ color: $setup.valiFormData.search_pkg ? "#007AFF" : "gray" }) }, [ vue.createElementVNode("checkbox", { checked: $setup.valiFormData.search_pkg, onClick: $setup.searchPkgChange }, null, 8, ["checked"]), vue.createTextVNode(" 搜索寄存包裹 ") ], 4 /* STYLE */ ), vue.createElementVNode("view", { class: "sub-choice" }, [ vue.createElementVNode("checkbox", { disabled: !$setup.valiFormData.search_pkg, checked: $setup.valiFormData.typing }, null, 8, ["disabled", "checked"]), vue.createElementVNode( "text", { onClick: _cache[4] || (_cache[4] = () => { if ($setup.valiFormData.search_pkg) { $setup.valiFormData.typing = !$setup.valiFormData.typing; } }), style: vue.normalizeStyle({ color: $setup.valiFormData.search_pkg && $setup.valiFormData.typing ? "#007AFF" : "gray" }) }, " 包裹寄存、代购、运单都找不到时手工添加包裹 ", 4 /* STYLE */ ) ]), vue.createElementVNode( "view", { onClick: $setup.searchOrderChoiceChange, class: "checkbox-cum", style: vue.normalizeStyle({ color: $setup.valiFormData.search_order ? "#007AFF" : "gray" }) }, [ vue.createElementVNode("checkbox", { checked: $setup.valiFormData.search_order, onClick: $setup.searchOrderChoiceChange }, null, 8, ["checked"]), vue.createTextVNode(" 搜索运单 ") ], 4 /* STYLE */ ), vue.createElementVNode("view", null, [ vue.createVNode(_component_uni_data_checkbox, { disabled: !$setup.valiFormData.search_order, modelValue: $setup.valiFormData.search_order_choice, "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => $setup.valiFormData.search_order_choice = $event), localdata: $setup.searchOrderChoice }, null, 8, ["disabled", "modelValue", "localdata"]) ]) ]), _: 1 /* STABLE */ }) ]), _: 1 /* STABLE */ }, 8, ["rules", "modelValue"]), vue.createElementVNode("view", { class: "button-group" }, [ vue.createElementVNode("button", { type: "info", onClick: $setup.reset }, "重置"), vue.createElementVNode("button", { type: "primary", onClick: $setup.onsubmit, loading: $setup.loading }, [ !$setup.loading ? (vue.openBlock(), vue.createBlock(_component_uni_icons, { key: 0, type: "checkmarkempty", size: "18", color: "white" })) : vue.createCommentVNode("v-if", true), vue.createTextVNode(" 提交 ") ], 8, ["loading"]) ]) ]), vue.createElementVNode("view", { class: "history" }, [ (vue.openBlock(true), vue.createElementBlock( vue.Fragment, null, vue.renderList($setup.instockHistory.slice(0, 5), (item, i2) => { return vue.openBlock(), vue.createElementBlock("view", { class: "item", key: i2 }, [ vue.createElementVNode( "text", { class: "code", style: vue.normalizeStyle({ color: item.status ? "green" : "#666" }) }, [ vue.createTextVNode( vue.toDisplayString(item.orderNum) + " ", 1 /* TEXT */ ), item.batch_text ? (vue.openBlock(), vue.createElementBlock( "text", { key: 0 }, "批次号: " + vue.toDisplayString(item.batch_text), 1 /* TEXT */ )) : vue.createCommentVNode("v-if", true), item.space ? (vue.openBlock(), vue.createElementBlock( "text", { key: 1 }, "仓位编码: " + vue.toDisplayString(item.space), 1 /* TEXT */ )) : vue.createCommentVNode("v-if", true), vue.createTextVNode( " " + vue.toDisplayString(item.type), 1 /* TEXT */ ) ], 4 /* STYLE */ ), item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, { key: 0, type: "checkmarkempty", class: "status", size: "16", color: "green" })) : (vue.openBlock(), vue.createElementBlock("text", { key: 1, class: "status fail" }, "F")), vue.createElementVNode( "text", { style: { "margin-left": "10rpx", "font-weight": "300" } }, vue.toDisplayString("\r\n" + item.createTime), 1 /* TEXT */ ) ]); }), 128 /* KEYED_FRAGMENT */ )) ]), vue.createVNode( _component_uni_popup, { ref: "message", type: "message" }, { default: vue.withCtx(() => [ vue.createVNode(_component_uni_popup_message, { type: $setup.messageType, message: $setup.messageText, duration: 2e3 }, null, 8, ["type", "message"]) ]), _: 1 /* STABLE */ }, 512 /* NEED_PATCH */ ), vue.createVNode( _component_uni_popup, { ref: "alertDialog", type: "dialog" }, { default: vue.withCtx(() => [ vue.createVNode(_component_uni_popup_dialog, { type: "info", cancelText: "否", confirmText: "是", title: "提示", content: "是否按默认申报(默认申报为:衣服,10件,单价1)", onConfirm: $setup.dialogConfirm, onClose: $setup.dialogClose }) ]), _: 1 /* STABLE */ }, 512 /* NEED_PATCH */ ), vue.createVNode( _component_uni_popup, { ref: "printerDialog", type: "dialog", "is-mask-click": false }, { default: vue.withCtx(() => [ vue.createElementVNode("view", { style: { "width": "90%", "margin": "0 auto", "min-height": "250px", "background-color": "#fff", "border-radius": "5px" } }, [ vue.createElementVNode("view", { class: "", style: { "font-size": "20px", "border-bottom": "1px solid #e1e1e1", "padding": "15px 10px" } }, [ vue.createElementVNode("view", null, [ vue.createElementVNode("view", { style: { "margin-bottom": "20px" } }, [ vue.createElementVNode("text", null, "打印尾程面单") ]), vue.createElementVNode("view", null, [ $setup.printerList ? (vue.openBlock(), vue.createElementBlock("view", { key: 0 }, [ vue.createElementVNode("view", null, [ vue.createVNode(_component_uni_data_checkbox, { multiple: "", modelValue: $setup.sendToPeinter, "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => $setup.sendToPeinter = $event), localdata: [ { text: "发送到标签打印机打印", value: 1 } ], onChange: $setup.sendToPeinterFun }, { default: vue.withCtx(() => [ vue.createTextVNode(" > ") ]), _: 1 /* STABLE */ }, 8, ["modelValue"]), vue.createVNode(_component_uni_data_checkbox, { disabled: $setup.sendToPeinter.length === 0, modelValue: $setup.selectPrinter, "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => $setup.selectPrinter = $event), localdata: $setup.printers }, null, 8, ["disabled", "modelValue", "localdata"]) ]) ])) : vue.createCommentVNode("v-if", true) ]) ]), vue.createElementVNode("view", { style: { "text-align": "center", "position": "absolute", "bottom": "10px", "width": "90%", "display": "flex", "margin": "0 auto", "left": "0", "right": "0" } }, [ vue.createElementVNode("button", { onClick: $setup.close, style: { "width": "35%" } }, "关闭"), vue.createElementVNode("button", { onClick: $setup.printConfirm, "hover-stay-time": 500, loading: $setup.subLoading, disabled: $setup.sendToPeinter.length === 0 || $setup.subLoading, class: "my-bt-bg", style: { "width": "35%" } }, " 打印 ", 8, ["loading", "disabled"]) ]) ]) ]) ]), _: 1 /* STABLE */ }, 512 /* NEED_PATCH */ ) ]); } const PagesInstockIndex = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["render", _sfc_render$l], ["__scopeId", "data-v-0a882863"], ["__file", "E:/HBuilderProjects/YTAPP/pages/instock/index.vue"]]); const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({ __name: "instockLog", setup(__props, { expose: __expose }) { __expose(); const instockHistory = vue.ref([]); const getHistory = () => { instockHistory.value = uni.getStorageSync("instockHistory"); }; onLoad(() => { getHistory(); }); const __returned__ = { instockHistory, getHistory }; Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true }); return __returned__; } }); function _sfc_render$k(_ctx, _cache, $props, $setup, $data, $options) { const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4); return vue.openBlock(), vue.createElementBlock("view", { class: "history" }, [ (vue.openBlock(true), vue.createElementBlock( vue.Fragment, null, vue.renderList($setup.instockHistory, (item, i2) => { return vue.openBlock(), vue.createElementBlock("view", { class: "item" }, [ vue.createElementVNode( "text", { class: "code", style: vue.normalizeStyle({ color: item.status ? "green" : "#666" }) }, [ vue.createTextVNode( vue.toDisplayString(item.orderNum) + " ", 1 /* TEXT */ ), item.batch_text ? (vue.openBlock(), vue.createElementBlock( "text", { key: 0 }, "批次号: " + vue.toDisplayString(item.batch_text), 1 /* TEXT */ )) : vue.createCommentVNode("v-if", true), item.space ? (vue.openBlock(), vue.createElementBlock( "text", { key: 1 }, "仓位编码: " + vue.toDisplayString(item.space), 1 /* TEXT */ )) : vue.createCommentVNode("v-if", true), vue.createTextVNode( " " + vue.toDisplayString(item.type), 1 /* TEXT */ ) ], 4 /* STYLE */ ), item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, { key: 0, type: "checkmarkempty", class: "status", size: "16", color: "green" })) : (vue.openBlock(), vue.createElementBlock("text", { key: 1, class: "status fail" }, "F")), vue.createElementVNode( "text", { style: { "margin-left": "10rpx", "font-weight": "300" } }, vue.toDisplayString("\r\n" + item.createTime), 1 /* TEXT */ ) ]); }), 256 /* UNKEYED_FRAGMENT */ )), $setup.instockHistory.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", { key: 0, class: "is-empty" }, "暂无历史")) : vue.createCommentVNode("v-if", true) ]); } const PagesInstockInstockLog = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["render", _sfc_render$k], ["__scopeId", "data-v-02f20d50"], ["__file", "E:/HBuilderProjects/YTAPP/pages/instock/instockLog.vue"]]); const _imports_0$2 = "/static/user.png"; const _sfc_main$k = { data() { const token = vue.ref(null); const user = vue.ref(null); return { token, user }; }, onLoad() { }, onShow() { this.token = uni.getStorageSync("token"); this.user = uni.getStorageSync("user"); }, methods: { avatarClick() { if (this.token) ; else { uni.navigateTo({ url: "/pages/login/index" }); } }, logout() { uni.removeStorageSync("token"); uni.removeStorageSync("user"); this.token = uni.getStorageSync("token"); this.user = uni.getStorageSync("user"); }, dialogToggle() { this.$refs.alertDialog.open(); } } }; function _sfc_render$j(_ctx, _cache, $props, $setup, $data, $options) { const _component_uni_popup_dialog = resolveEasycom(vue.resolveDynamicComponent("uni-popup-dialog"), __easycom_0$2); const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_6); return vue.openBlock(), vue.createElementBlock("view", { class: "content" }, [ vue.createElementVNode("view", { class: "user-v", onClick: _cache[0] || (_cache[0] = (...args) => $options.avatarClick && $options.avatarClick(...args)) }, [ !$data.user.avatar ? (vue.openBlock(), vue.createElementBlock("image", { key: 0, class: "user-icon", src: _imports_0$2 })) : (vue.openBlock(), vue.createElementBlock("image", { key: 1, class: "user-icon", src: $data.user.avatar }, null, 8, ["src"])) ]), vue.createElementVNode("view", { class: "text-area" }, [ vue.createElementVNode( "text", { class: "title" }, vue.toDisplayString($data.user.username), 1 /* TEXT */ ) ]), vue.createElementVNode("view", { class: "login-btn" }, [ !$data.token ? (vue.openBlock(), vue.createElementBlock("button", { key: 0, type: "primary", plain: "true", size: "mini", onClick: _cache[1] || (_cache[1] = (...args) => $options.avatarClick && $options.avatarClick(...args)) }, "登录")) : (vue.openBlock(), vue.createElementBlock("button", { key: 1, type: "default", plain: "true", size: "mini", onClick: _cache[2] || (_cache[2] = (...args) => $options.dialogToggle && $options.dialogToggle(...args)) }, "注销")) ]), vue.createVNode( _component_uni_popup, { ref: "alertDialog", type: "dialog" }, { default: vue.withCtx(() => [ vue.createVNode(_component_uni_popup_dialog, { type: "info", cancelText: "取消", confirmText: "注销", title: "注销", content: "确定是要注销吗?", onConfirm: $options.logout }, null, 8, ["onConfirm"]) ]), _: 1 /* STABLE */ }, 512 /* NEED_PATCH */ ) ]); } const PagesProfileIndex = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["render", _sfc_render$j], ["__file", "E:/HBuilderProjects/YTAPP/pages/profile/index.vue"]]); const _imports_0$1 = "/static/logo.png"; const _sfc_main$j = { data() { return { messageText: "", captcha_id: "f2dd39ce-0d3e-4c1e-916c-b50090a7590s", verifyCodeImg: "", //验证码图片 verifyCodeToken: "", //图形验证码的验证token isVerifyCodeTure: false, //验证码输入是否正确 valiFormData: { account: "", password: "", captcha: "" }, rules: { name: { rules: [{ required: true, errorMessage: "姓名不能为空" }] } } }; }, onLoad() { this.getVerifyCodeImg(); }, methods: { getVerifyCodeImg() { uni.request({ url: `${getcaptchaURL}?server=1&id=${this.captcha_id}&m=` + Math.random(), method: "GET", responseType: "arraybuffer", //设置响应类型 success: (res) => { const arrayBuffer = new Uint8Array(res.data); const base64 = "data:image/png;base64," + uni.arrayBufferToBase64( arrayBuffer ); this.verifyCodeImg = base64; this.verifyCodeToken = res.header["Set-Cookie"]; } }); }, formSubmit() { uni.request({ //api地址 url: loginURL, data: { "username": this.valiFormData.account, "password": this.valiFormData.password, "captcha": this.valiFormData.captcha, "keep": false, "loading": true, "captcha_id": this.captcha_id }, //请求类型 method: "POST", success: (res) => { formatAppLog("log", "at pages/login/index.vue:100", res); if (res.data.code == 1) { const userInfo = res.data.data.userInfo; uni.setStorage({ key: "token", data: userInfo.token, success() { uni.setStorage({ key: "user", data: userInfo, success() { uni.navigateBack(); } }); } }); } else { formatAppLog("log", "at pages/login/index.vue:120", res); this.messageText = res.data.msg; this.$refs.message.open(); } } }); } } }; function _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) { const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4); const _component_uni_easyinput = resolveEasycom(vue.resolveDynamicComponent("uni-easyinput"), __easycom_1$1); const _component_uni_forms = resolveEasycom(vue.resolveDynamicComponent("uni-forms"), __easycom_3$2); const _component_uni_popup_message = resolveEasycom(vue.resolveDynamicComponent("uni-popup-message"), __easycom_5); const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_6); return vue.openBlock(), vue.createElementBlock("view", { class: "contaier" }, [ vue.createElementVNode("view", { class: "top-bg" }, [ vue.createElementVNode("image", { class: "logo-icon", src: _imports_0$1 }) ]), vue.createElementVNode("view", { class: "input-box padding-lr" }, [ vue.createVNode(_component_uni_forms, { ref: "valiForm", rules: $data.rules, modelValue: $data.valiFormData }, { default: vue.withCtx(() => [ vue.createElementVNode("view", { class: "cu-form-group margin-top" }, [ vue.createVNode(_component_uni_icons, { class: "uni-icon", type: "person", size: "30", color: "#999" }), vue.createVNode(_component_uni_easyinput, { placeholder: "账号", modelValue: $data.valiFormData.account, "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.valiFormData.account = $event) }, null, 8, ["modelValue"]) ]), vue.createElementVNode("view", { class: "cu-form-group" }, [ vue.createVNode(_component_uni_icons, { class: "uni-icon", type: "locked", size: "30", color: "#999" }), vue.createVNode(_component_uni_easyinput, { placeholder: "密码", type: "password", modelValue: $data.valiFormData.password, "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $data.valiFormData.password = $event) }, null, 8, ["modelValue"]) ]), vue.createElementVNode("view", { class: "cu-form-group solid-bottom" }, [ vue.createVNode(_component_uni_icons, { class: "uni-icon", type: "more-filled", size: "30", color: "#999" }), vue.createVNode(_component_uni_easyinput, { placeholder: "验证码", modelValue: $data.valiFormData.captcha, "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $data.valiFormData.captcha = $event) }, null, 8, ["modelValue"]), vue.createCommentVNode(" "), vue.createElementVNode("image", { class: "cu-btn captchaImg", src: $data.verifyCodeImg, onClick: _cache[3] || (_cache[3] = (...args) => $options.getVerifyCodeImg && $options.getVerifyCodeImg(...args)) }, null, 8, ["src"]) ]) ]), _: 1 /* STABLE */ }, 8, ["rules", "modelValue"]) ]), vue.createElementVNode("view", { class: "padding-lr margin-top-xs" }, [ vue.createElementVNode("button", { class: "cu-btn block round bg-login-zl margin-tb-sm lg", onClick: _cache[4] || (_cache[4] = ($event) => $options.formSubmit("valiForm")) }, "立即登录") ]), vue.createVNode( _component_uni_popup, { ref: "message", type: "message" }, { default: vue.withCtx(() => [ vue.createVNode(_component_uni_popup_message, { type: "error", message: $data.messageText, duration: 2e3 }, null, 8, ["message"]) ]), _: 1 /* STABLE */ }, 512 /* NEED_PATCH */ ) ]); } const PagesLoginIndex = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["render", _sfc_render$i], ["__scopeId", "data-v-d08ef7d4"], ["__file", "E:/HBuilderProjects/YTAPP/pages/login/index.vue"]]); const _sfc_main$i = { data() { const token = vue.ref(null); const user = vue.ref(null); return { token, user }; }, onLoad() { }, onShow() { this.token = uni.getStorageSync("token"); this.user = uni.getStorageSync("user"); }, methods: { avatarClick() { if (this.token) ; else { uni.navigateTo({ url: "/pages/login/index" }); } }, logout() { uni.removeStorageSync("token"); uni.removeStorageSync("user"); this.token = uni.getStorageSync("token"); this.user = uni.getStorageSync("user"); }, dialogToggle() { this.$refs.alertDialog.open(); } } }; function _sfc_render$h(_ctx, _cache, $props, $setup, $data, $options) { return vue.openBlock(), vue.createElementBlock("view", { class: "content" }); } const PagesOrderIndex = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["render", _sfc_render$h], ["__file", "E:/HBuilderProjects/YTAPP/pages/order/index.vue"]]); const dataPicker = { props: { localdata: { type: [Array, Object], default() { return []; } }, spaceInfo: { type: Object, default() { return {}; } }, collection: { type: String, default: "" }, action: { type: String, default: "" }, field: { type: String, default: "" }, orderby: { type: String, default: "" }, where: { type: [String, Object], default: "" }, pageData: { type: String, default: "add" }, pageCurrent: { type: Number, default: 1 }, pageSize: { type: Number, default: 500 }, getcount: { type: [Boolean, String], default: false }, getone: { type: [Boolean, String], default: false }, gettree: { type: [Boolean, String], default: false }, manual: { type: Boolean, default: false }, value: { type: [Array, String, Number], default() { return []; } }, modelValue: { type: [Array, String, Number], default() { return []; } }, preload: { type: Boolean, default: false }, stepSearh: { type: Boolean, default: true }, selfField: { type: String, default: "" }, parentField: { type: String, default: "" }, multiple: { type: Boolean, default: false }, map: { type: Object, default() { return { text: "text", value: "value" }; } } }, data() { return { loading: false, errorMessage: "", loadMore: { contentdown: "", contentrefresh: "", contentnomore: "" }, dataList: [], selected: [], selectedIndex: 0, page: { current: this.pageCurrent, size: this.pageSize, count: 0 } }; }, computed: { isLocalData() { return !this.collection.length; }, isCloudData() { return this.collection.length > 0; }, isCloudDataList() { return this.isCloudData && (!this.parentField && !this.selfField); }, isCloudDataTree() { return this.isCloudData && this.parentField && this.selfField; }, dataValue() { let isModelValue = Array.isArray(this.modelValue) ? this.modelValue.length > 0 : this.modelValue !== null || this.modelValue !== void 0; return isModelValue ? this.modelValue : this.value; }, hasValue() { if (typeof this.dataValue === "number") { return true; } return this.dataValue != null && this.dataValue.length > 0; } }, created() { this.$watch(() => { var al = []; [ "pageCurrent", "pageSize", "spaceInfo", "value", "modelValue", "localdata", "collection", "action", "field", "orderby", "where", "getont", "getcount", "gettree" ].forEach((key) => { al.push(this[key]); }); return al; }, (newValue, oldValue) => { for (let i2 = 2; i2 < newValue.length; i2++) { if (newValue[i2] != oldValue[i2]) { break; } } if (newValue[0] != oldValue[0]) { this.page.current = this.pageCurrent; } this.page.size = this.pageSize; this.onPropsChange(); }); this._treeData = []; }, methods: { onPropsChange() { this._treeData = []; }, // 填充 pickview 数据 async loadData() { if (this.isLocalData) { this.loadLocalData(); } else if (this.isCloudDataList) { this.loadCloudDataList(); } else if (this.isCloudDataTree) { this.loadCloudDataTree(); } }, // 加载本地数据 async loadLocalData() { this._treeData = []; this._extractTree(this.localdata, this._treeData); let inputValue = this.dataValue; if (inputValue === void 0) { return; } if (Array.isArray(inputValue)) { inputValue = inputValue[inputValue.length - 1]; if (typeof inputValue === "object" && inputValue[this.map.value]) { inputValue = inputValue[this.map.value]; } } this.selected = this._findNodePath(inputValue, this.localdata); }, // 加载 Cloud 数据 (单列) async loadCloudDataList() { if (this.loading) { return; } this.loading = true; try { let response = await this.getCommand(); let responseData = response.result.data; this._treeData = responseData; this._updateBindData(); this._updateSelected(); this.onDataChange(); } catch (e2) { this.errorMessage = e2; } finally { this.loading = false; } }, // 加载 Cloud 数据 (树形) async loadCloudDataTree() { if (this.loading) { return; } this.loading = true; try { let commandOptions = { field: this._cloudDataPostField(), where: this._cloudDataTreeWhere() }; if (this.gettree) { commandOptions.startwith = `${this.selfField}=='${this.dataValue}'`; } let response = await this.getCommand(commandOptions); let responseData = response.result.data; this._treeData = responseData; this._updateBindData(); this._updateSelected(); this.onDataChange(); } catch (e2) { this.errorMessage = e2; } finally { this.loading = false; } }, // 加载 Cloud 数据 (节点) async loadCloudDataNode(callback) { if (this.loading) { return; } this.loading = true; try { let commandOptions = { field: this._cloudDataPostField(), where: this._cloudDataNodeWhere() }; let response = await this.getCommand(commandOptions); let responseData = response.result.data; callback(responseData); } catch (e2) { this.errorMessage = e2; } finally { this.loading = false; } }, // 回显 Cloud 数据 getCloudDataValue() { if (this.isCloudDataList) { return this.getCloudDataListValue(); } if (this.isCloudDataTree) { return this.getCloudDataTreeValue(); } }, // 回显 Cloud 数据 (单列) getCloudDataListValue() { let where = []; let whereField = this._getForeignKeyByField(); if (whereField) { where.push(`${whereField} == '${this.dataValue}'`); } where = where.join(" || "); if (this.where) { where = `(${this.where}) && (${where})`; } return this.getCommand({ field: this._cloudDataPostField(), where }).then((res) => { this.selected = res.result.data; return res.result.data; }); }, // 回显 Cloud 数据 (树形) getCloudDataTreeValue() { return this.getCommand({ field: this._cloudDataPostField(), getTreePath: { startWith: `${this.selfField}=='${this.dataValue}'` } }).then((res) => { let treePath = []; this._extractTreePath(res.result.data, treePath); this.selected = treePath; return treePath; }); }, getCommand(options = {}) { let db = Ys.database(this.spaceInfo); const action = options.action || this.action; if (action) { db = db.action(action); } const collection = options.collection || this.collection; db = db.collection(collection); const where = options.where || this.where; if (!(!where || !Object.keys(where).length)) { db = db.where(where); } const field = options.field || this.field; if (field) { db = db.field(field); } const orderby = options.orderby || this.orderby; if (orderby) { db = db.orderBy(orderby); } const current = options.pageCurrent !== void 0 ? options.pageCurrent : this.page.current; const size = options.pageSize !== void 0 ? options.pageSize : this.page.size; const getCount = options.getcount !== void 0 ? options.getcount : this.getcount; const getTree = options.gettree !== void 0 ? options.gettree : this.gettree; const getOptions = { getCount, getTree }; if (options.getTreePath) { getOptions.getTreePath = options.getTreePath; } db = db.skip(size * (current - 1)).limit(size).get(getOptions); return db; }, _cloudDataPostField() { let fields = [this.field]; if (this.parentField) { fields.push(`${this.parentField} as parent_value`); } return fields.join(","); }, _cloudDataTreeWhere() { let result = []; let selected = this.selected; let parentField = this.parentField; if (parentField) { result.push(`${parentField} == null || ${parentField} == ""`); } if (selected.length) { for (var i2 = 0; i2 < selected.length - 1; i2++) { result.push(`${parentField} == '${selected[i2].value}'`); } } let where = []; if (this.where) { where.push(`(${this.where})`); } if (result.length) { where.push(`(${result.join(" || ")})`); } return where.join(" && "); }, _cloudDataNodeWhere() { let where = []; let selected = this.selected; if (selected.length) { where.push(`${this.parentField} == '${selected[selected.length - 1].value}'`); } where = where.join(" || "); if (this.where) { return `(${this.where}) && (${where})`; } return where; }, _getWhereByForeignKey() { let result = []; let whereField = this._getForeignKeyByField(); if (whereField) { result.push(`${whereField} == '${this.dataValue}'`); } if (this.where) { return `(${this.where}) && (${result.join(" || ")})`; } return result.join(" || "); }, _getForeignKeyByField() { let fields = this.field.split(","); let whereField = null; for (let i2 = 0; i2 < fields.length; i2++) { const items = fields[i2].split("as"); if (items.length < 2) { continue; } if (items[1].trim() === "value") { whereField = items[0].trim(); break; } } return whereField; }, _updateBindData(node) { const { dataList, hasNodes } = this._filterData(this._treeData, this.selected); let isleaf = this._stepSearh === false && !hasNodes; if (node) { node.isleaf = isleaf; } this.dataList = dataList; this.selectedIndex = dataList.length - 1; if (!isleaf && this.selected.length < dataList.length) { this.selected.push({ value: null, text: "请选择" }); } return { isleaf, hasNodes }; }, _updateSelected() { let dl = this.dataList; let sl = this.selected; let textField = this.map.text; let valueField = this.map.value; for (let i2 = 0; i2 < sl.length; i2++) { let value = sl[i2].value; let dl2 = dl[i2]; for (let j2 = 0; j2 < dl2.length; j2++) { let item2 = dl2[j2]; if (item2[valueField] === value) { sl[i2].text = item2[textField]; break; } } } }, _filterData(data, paths) { let dataList = []; let hasNodes = true; dataList.push(data.filter((item) => { return item.parent_value === null || item.parent_value === void 0 || item.parent_value === ""; })); for (let i2 = 0; i2 < paths.length; i2++) { let value = paths[i2].value; let nodes = data.filter((item) => { return item.parent_value === value; }); if (nodes.length) { dataList.push(nodes); } else { hasNodes = false; } } return { dataList, hasNodes }; }, _extractTree(nodes, result, parent_value) { let valueField = this.map.value; for (let i2 = 0; i2 < nodes.length; i2++) { let node = nodes[i2]; let child = {}; for (let key in node) { if (key !== "children") { child[key] = node[key]; } } if (parent_value !== null && parent_value !== void 0 && parent_value !== "") { child.parent_value = parent_value; } result.push(child); let children = node.children; if (children) { this._extractTree(children, result, node[valueField]); } } }, _extractTreePath(nodes, result) { for (let i2 = 0; i2 < nodes.length; i2++) { let node = nodes[i2]; let child = {}; for (let key in node) { if (key !== "children") { child[key] = node[key]; } } result.push(child); let children = node.children; if (children) { this._extractTreePath(children, result); } } }, _findNodePath(key, nodes, path = []) { let textField = this.map.text; let valueField = this.map.value; for (let i2 = 0; i2 < nodes.length; i2++) { let node = nodes[i2]; let children = node.children; let text = node[textField]; let value = node[valueField]; path.push({ value, text }); if (value === key) { return path; } if (children) { const p2 = this._findNodePath(key, children, path); if (p2.length) { return p2; } } path.pop(); } return []; } } }; const _sfc_main$h = { name: "UniDataPickerView", emits: ["nodeclick", "change", "datachange", "update:modelValue"], mixins: [dataPicker], props: { managedMode: { type: Boolean, default: false }, ellipsis: { type: Boolean, default: true } }, created() { if (!this.managedMode) { this.$nextTick(() => { this.loadData(); }); } }, methods: { onPropsChange() { this._treeData = []; this.selectedIndex = 0; this.$nextTick(() => { this.loadData(); }); }, handleSelect(index) { this.selectedIndex = index; }, handleNodeClick(item, i2, j2) { if (item.disable) { return; } const node = this.dataList[i2][j2]; const text = node[this.map.text]; const value = node[this.map.value]; if (i2 < this.selected.length - 1) { this.selected.splice(i2, this.selected.length - i2); this.selected.push({ text, value }); } else if (i2 === this.selected.length - 1) { this.selected.splice(i2, 1, { text, value }); } if (node.isleaf) { this.onSelectedChange(node, node.isleaf); return; } const { isleaf, hasNodes } = this._updateBindData(); if (this.isLocalData) { this.onSelectedChange(node, !hasNodes || isleaf); } else if (this.isCloudDataList) { this.onSelectedChange(node, true); } else if (this.isCloudDataTree) { if (isleaf) { this.onSelectedChange(node, node.isleaf); } else if (!hasNodes) { this.loadCloudDataNode((data) => { if (!data.length) { node.isleaf = true; } else { this._treeData.push(...data); this._updateBindData(node); } this.onSelectedChange(node, node.isleaf); }); } } }, updateData(data) { this._treeData = data.treeData; this.selected = data.selected; if (!this._treeData.length) { this.loadData(); } else { this._updateBindData(); } }, onDataChange() { this.$emit("datachange"); }, onSelectedChange(node, isleaf) { if (isleaf) { this._dispatchEvent(); } if (node) { this.$emit("nodeclick", node); } }, _dispatchEvent() { this.$emit("change", this.selected.slice(0)); } } }; function _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) { const _component_uni_load_more = resolveEasycom(vue.resolveDynamicComponent("uni-load-more"), __easycom_0$5); return vue.openBlock(), vue.createElementBlock("view", { class: "uni-data-pickerview" }, [ !_ctx.isCloudDataList ? (vue.openBlock(), vue.createElementBlock("scroll-view", { key: 0, class: "selected-area", "scroll-x": "true" }, [ vue.createElementVNode("view", { class: "selected-list" }, [ (vue.openBlock(true), vue.createElementBlock( vue.Fragment, null, vue.renderList(_ctx.selected, (item, index) => { return vue.openBlock(), vue.createElementBlock("view", { class: vue.normalizeClass(["selected-item", { "selected-item-active": index == _ctx.selectedIndex }]), key: index, onClick: ($event) => $options.handleSelect(index) }, [ vue.createElementVNode( "text", null, vue.toDisplayString(item.text || ""), 1 /* TEXT */ ) ], 10, ["onClick"]); }), 128 /* KEYED_FRAGMENT */ )) ]) ])) : vue.createCommentVNode("v-if", true), vue.createElementVNode("view", { class: "tab-c" }, [ vue.createElementVNode("scroll-view", { class: "list", "scroll-y": true }, [ (vue.openBlock(true), vue.createElementBlock( vue.Fragment, null, vue.renderList(_ctx.dataList[_ctx.selectedIndex], (item, j2) => { return vue.openBlock(), vue.createElementBlock("view", { class: vue.normalizeClass(["item", { "is-disabled": !!item.disable }]), key: j2, onClick: ($event) => $options.handleNodeClick(item, _ctx.selectedIndex, j2) }, [ vue.createElementVNode( "text", { class: "item-text" }, vue.toDisplayString(item[_ctx.map.text]), 1 /* TEXT */ ), _ctx.selected.length > _ctx.selectedIndex && item[_ctx.map.value] == _ctx.selected[_ctx.selectedIndex].value ? (vue.openBlock(), vue.createElementBlock("view", { key: 0, class: "check" })) : vue.createCommentVNode("v-if", true) ], 10, ["onClick"]); }), 128 /* KEYED_FRAGMENT */ )) ]), _ctx.loading ? (vue.openBlock(), vue.createElementBlock("view", { key: 0, class: "loading-cover" }, [ vue.createVNode(_component_uni_load_more, { class: "load-more", contentText: _ctx.loadMore, status: "loading" }, null, 8, ["contentText"]) ])) : vue.createCommentVNode("v-if", true), _ctx.errorMessage ? (vue.openBlock(), vue.createElementBlock("view", { key: 1, class: "error-message" }, [ vue.createElementVNode( "text", { class: "error-text" }, vue.toDisplayString(_ctx.errorMessage), 1 /* TEXT */ ) ])) : vue.createCommentVNode("v-if", true) ]) ]); } const DataPickerView = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["render", _sfc_render$g], ["__scopeId", "data-v-91ec6a82"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue"]]); const _sfc_main$g = { name: "UniDataPicker", emits: ["popupopened", "popupclosed", "nodeclick", "input", "change", "update:modelValue", "inputclick"], mixins: [dataPicker], components: { DataPickerView }, props: { options: { type: [Object, Array], default() { return {}; } }, popupTitle: { type: String, default: "请选择" }, placeholder: { type: String, default: "请选择" }, heightMobile: { type: String, default: "" }, readonly: { type: Boolean, default: false }, clearIcon: { type: Boolean, default: true }, border: { type: Boolean, default: true }, split: { type: String, default: "/" }, ellipsis: { type: Boolean, default: true } }, data() { return { isOpened: false, inputSelected: [] }; }, created() { this.$nextTick(() => { this.load(); }); }, watch: { localdata: { handler() { this.load(); }, deep: true } }, methods: { clear() { this._dispatchEvent([]); }, onPropsChange() { this._treeData = []; this.selectedIndex = 0; this.load(); }, load() { if (this.readonly) { this._processReadonly(this.localdata, this.dataValue); return; } if (this.isLocalData) { this.loadData(); this.inputSelected = this.selected.slice(0); } else if (this.isCloudDataList || this.isCloudDataTree) { this.loading = true; this.getCloudDataValue().then((res) => { this.loading = false; this.inputSelected = res; }).catch((err) => { this.loading = false; this.errorMessage = err; }); } }, show() { this.isOpened = true; setTimeout(() => { this.$refs.pickerView.updateData({ treeData: this._treeData, selected: this.selected, selectedIndex: this.selectedIndex }); }, 200); this.$emit("popupopened"); }, hide() { this.isOpened = false; this.$emit("popupclosed"); }, handleInput() { if (this.readonly) { this.$emit("inputclick"); return; } this.show(); }, handleClose(e2) { this.hide(); }, onnodeclick(e2) { this.$emit("nodeclick", e2); }, ondatachange(e2) { this._treeData = this.$refs.pickerView._treeData; }, onchange(e2) { this.hide(); this.$nextTick(() => { this.inputSelected = e2; }); this._dispatchEvent(e2); }, _processReadonly(dataList, value) { var isTree = dataList.findIndex((item2) => { return item2.children; }); if (isTree > -1) { let inputValue; if (Array.isArray(value)) { inputValue = value[value.length - 1]; if (typeof inputValue === "object" && inputValue.value) { inputValue = inputValue.value; } } else { inputValue = value; } this.inputSelected = this._findNodePath(inputValue, this.localdata); return; } if (!this.hasValue) { this.inputSelected = []; return; } let result = []; for (let i2 = 0; i2 < value.length; i2++) { var val = value[i2]; var item = dataList.find((v2) => { return v2.value == val; }); if (item) { result.push(item); } } if (result.length) { this.inputSelected = result; } }, _filterForArray(data, valueArray) { var result = []; for (let i2 = 0; i2 < valueArray.length; i2++) { var value = valueArray[i2]; var found = data.find((item) => { return item.value == value; }); if (found) { result.push(found); } } return result; }, _dispatchEvent(selected) { let item = {}; if (selected.length) { var value = new Array(selected.length); for (var i2 = 0; i2 < selected.length; i2++) { value[i2] = selected[i2].value; } item = selected[selected.length - 1]; } else { item.value = ""; } if (this.formItem) { this.formItem.setValue(item.value); } this.$emit("input", item.value); this.$emit("update:modelValue", item.value); this.$emit("change", { detail: { value: selected } }); } } }; function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) { const _component_uni_load_more = resolveEasycom(vue.resolveDynamicComponent("uni-load-more"), __easycom_0$5); const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4); const _component_data_picker_view = vue.resolveComponent("data-picker-view"); return vue.openBlock(), vue.createElementBlock("view", { class: "uni-data-tree" }, [ vue.createElementVNode("view", { class: "uni-data-tree-input", onClick: _cache[1] || (_cache[1] = (...args) => $options.handleInput && $options.handleInput(...args)) }, [ vue.renderSlot(_ctx.$slots, "default", { options: $props.options, data: $data.inputSelected, error: _ctx.errorMessage }, () => [ vue.createElementVNode( "view", { class: vue.normalizeClass(["input-value", { "input-value-border": $props.border }]) }, [ _ctx.errorMessage ? (vue.openBlock(), vue.createElementBlock( "text", { key: 0, class: "selected-area error-text" }, vue.toDisplayString(_ctx.errorMessage), 1 /* TEXT */ )) : _ctx.loading && !$data.isOpened ? (vue.openBlock(), vue.createElementBlock("view", { key: 1, class: "selected-area" }, [ vue.createVNode(_component_uni_load_more, { class: "load-more", contentText: _ctx.loadMore, status: "loading" }, null, 8, ["contentText"]) ])) : $data.inputSelected.length ? (vue.openBlock(), vue.createElementBlock("scroll-view", { key: 2, class: "selected-area", "scroll-x": "true" }, [ vue.createElementVNode("view", { class: "selected-list" }, [ (vue.openBlock(true), vue.createElementBlock( vue.Fragment, null, vue.renderList($data.inputSelected, (item, index) => { return vue.openBlock(), vue.createElementBlock("view", { class: "selected-item", key: index }, [ vue.createElementVNode( "text", { class: "text-color" }, vue.toDisplayString(item.text), 1 /* TEXT */ ), index < $data.inputSelected.length - 1 ? (vue.openBlock(), vue.createElementBlock( "text", { key: 0, class: "input-split-line" }, vue.toDisplayString($props.split), 1 /* TEXT */ )) : vue.createCommentVNode("v-if", true) ]); }), 128 /* KEYED_FRAGMENT */ )) ]) ])) : (vue.openBlock(), vue.createElementBlock( "text", { key: 3, class: "selected-area placeholder" }, vue.toDisplayString($props.placeholder), 1 /* TEXT */ )), $props.clearIcon && !$props.readonly && $data.inputSelected.length ? (vue.openBlock(), vue.createElementBlock("view", { key: 4, class: "icon-clear", onClick: _cache[0] || (_cache[0] = vue.withModifiers((...args) => $options.clear && $options.clear(...args), ["stop"])) }, [ vue.createVNode(_component_uni_icons, { type: "clear", color: "#c0c4cc", size: "24" }) ])) : vue.createCommentVNode("v-if", true), (!$props.clearIcon || !$data.inputSelected.length) && !$props.readonly ? (vue.openBlock(), vue.createElementBlock("view", { key: 5, class: "arrow-area" }, [ vue.createElementVNode("view", { class: "input-arrow" }) ])) : vue.createCommentVNode("v-if", true) ], 2 /* CLASS */ ) ], true) ]), $data.isOpened ? (vue.openBlock(), vue.createElementBlock("view", { key: 0, class: "uni-data-tree-cover", onClick: _cache[2] || (_cache[2] = (...args) => $options.handleClose && $options.handleClose(...args)) })) : vue.createCommentVNode("v-if", true), $data.isOpened ? (vue.openBlock(), vue.createElementBlock("view", { key: 1, class: "uni-data-tree-dialog" }, [ vue.createElementVNode("view", { class: "uni-popper__arrow" }), vue.createElementVNode("view", { class: "dialog-caption" }, [ vue.createElementVNode("view", { class: "title-area" }, [ vue.createElementVNode( "text", { class: "dialog-title" }, vue.toDisplayString($props.popupTitle), 1 /* TEXT */ ) ]), vue.createElementVNode("view", { class: "dialog-close", onClick: _cache[3] || (_cache[3] = (...args) => $options.handleClose && $options.handleClose(...args)) }, [ vue.createElementVNode("view", { class: "dialog-close-plus", "data-id": "close" }), vue.createElementVNode("view", { class: "dialog-close-plus dialog-close-rotate", "data-id": "close" }) ]) ]), vue.createVNode(_component_data_picker_view, { class: "picker-view", ref: "pickerView", modelValue: _ctx.dataValue, "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => _ctx.dataValue = $event), localdata: _ctx.localdata, preload: _ctx.preload, collection: _ctx.collection, field: _ctx.field, orderby: _ctx.orderby, where: _ctx.where, "step-searh": _ctx.stepSearh, "self-field": _ctx.selfField, "parent-field": _ctx.parentField, "managed-mode": true, map: _ctx.map, ellipsis: $props.ellipsis, onChange: $options.onchange, onDatachange: $options.ondatachange, onNodeclick: $options.onnodeclick }, null, 8, ["modelValue", "localdata", "preload", "collection", "field", "orderby", "where", "step-searh", "self-field", "parent-field", "map", "ellipsis", "onChange", "onDatachange", "onNodeclick"]) ])) : vue.createCommentVNode("v-if", true) ]); } const __easycom_3$1 = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["render", _sfc_render$f], ["__scopeId", "data-v-2653531e"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-data-picker/components/uni-data-picker/uni-data-picker.vue"]]); const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({ __name: "index", setup(__props, { expose: __expose }) { __expose(); const token = vue.ref(); const loading = vue.ref(false); const hidePage = vue.ref(false); const focusType = vue.ref(true); const editBatchNum = vue.ref(false); const editPalletNum = vue.ref(false); const lotnoLogHistory = vue.ref([]); const messageRef = vue.ref(); const messageType = vue.ref(); const messageText = vue.ref(); let st2; const valiFormData = vue.ref({ orderNum: "", weight: "", batchNum: "", palletNum: "" }); const rules = vue.reactive({ orderNum: { rules: [ { required: true, errorMessage: "单号不能为空" } ] } }); const options = vue.reactive({ batch: [], pallet: [] }); const onnodeclick = () => { }; const onpopupopened = () => { }; const onpopupclosed = () => { }; const onchange = () => { }; const checkPermission = async () => { let status = permission.isIOS ? await permission.requestIOS("camera") : await permission.requestAndroid("android.permission.CAMERA"); if (status === null || status === 1) { status = 1; } else { uni.showModal({ content: "Camera permission required", confirmText: "Setting", success: function(res) { if (res.confirm) { permission.gotoAppSetting(); } } }); } return status; }; const scanInput = async () => { let status = await checkPermission(); if (status !== 1) { return; } uni.scanCode({ success: (res) => { valiFormData.value.orderNum = res.result; }, fail: (err) => { } }); }; const reset = () => { loading.value = false; valiFormData.value.orderNum = ""; valiFormData.value.weight = ""; }; const submitBatchNum = () => { if (valiFormData.value.batchNum) { editBatchNum.value = true; } else { messageType.value = "error"; messageText.value = "请选择批次号"; messageRef.value.open(); } }; const batchNum = vue.computed(() => { const res = options.batch.find((item) => item.value === valiFormData.value.batchNum); return res == null ? void 0 : res.text; }); const submitPalletNum = () => { if (valiFormData.value.palletNum) { editPalletNum.value = true; } else { messageType.value = "error"; messageText.value = "请选择托盘号"; messageRef.value.open(); } }; const palletNum = vue.computed(() => { function findTextByValue(arr, targetValue) { for (let item of arr) { if (item.value === targetValue) { return item.text; } if (item.children && item.children.length > 0) { const result = findTextByValue(item.children, targetValue); if (result) { return `${item.text}/${result}`; } } } return null; } const textPath = findTextByValue(options.pallet, valiFormData.value.palletNum); return textPath; }); const checkOrder = () => { loading.value = true; uni.setStorageSync("waybills", []); uni.request({ url: getWaybillsURL, method: "POST", header: { batoken: token.value }, data: { order_no: valiFormData.value.orderNum, batch_number: valiFormData.value.batchNum, pallet_number: valiFormData.value.palletNum ? findPalletNumIdByValue(options.pallet, valiFormData.value.palletNum) : "" }, success: (res) => { loading.value = false; if (res.data.code == 1) { messageType.value = "success"; messageText.value = res.data.msg; messageRef.value.open(); uni.setStorageSync("waybills", res.data.data.waybills); uni.navigateTo({ url: "/pages/scanLotno/waybillsList" }); } else { messageType.value = "error"; messageText.value = res.data.msg; messageRef.value.open(); } } }); }; const findPalletNumIdByValue = (data, targetValue) => { for (let i2 = 0; i2 < data.length; i2++) { const item = data[i2]; if (item.id === targetValue || item.value === targetValue) { return [item.id]; } else if (item.children && item.children.length > 0) { const childId = findPalletNumIdByValue(item.children, targetValue); if (childId !== null) { return childId; } } } return null; }; const onsubmit = () => { st2 && clearTimeout(st2); loading.value = true; uni.request({ url: bindShippingURL, method: "POST", header: { batoken: token.value }, data: { order_no: valiFormData.value.orderNum, reweighting: valiFormData.value.weight, batch_number: valiFormData.value.batchNum, pallet_number: valiFormData.value.palletNum ? findPalletNumIdByValue(options.pallet, valiFormData.value.palletNum) : "" }, success: (res) => { loading.value = false; if (res.data.code == 1) { messageType.value = "success"; messageText.value = res.data.msg; messageRef.value.open(); if (res.data.data.labels && res.data.data.labels.length > 0) { formatAppLog("log", "at pages/scanLotno/index.vue:278", "有打印面单"); } const historyItem = { orderNum: valiFormData.value.orderNum, createTime: /* @__PURE__ */ new Date(), type: valiFormData.value.batchNum ? "绑定批次" : "绑定托盘", status: true }; formatAppLog("log", "at pages/scanLotno/index.vue:290", "lotnoLogHistory--", lotnoLogHistory); lotnoLogHistory.value.unshift(historyItem); uni.setStorageSync("lotnoLogHistory", lotnoLogHistory.value); getHistory(); } else { messageType.value = "error"; messageText.value = res.data.msg; messageRef.value.open(); const historyItem = { orderNum: valiFormData.value.orderNum, createTime: /* @__PURE__ */ new Date(), type: valiFormData.value.batchNum ? "绑定批次" : "绑定托盘", status: false }; lotnoLogHistory.value.unshift(historyItem); uni.setStorageSync("lotnoLogHistory", lotnoLogHistory.value); getHistory(); } st2 = setTimeout(() => { reset(); setFocus(); st2 && clearTimeout(st2); }, 1e3); } }); }; const getHistory = () => { lotnoLogHistory.value = uni.getStorageSync("lotnoLogHistory") || []; }; const keypress = (e2) => { formatAppLog("log", "at pages/scanLotno/index.vue:321", e2, "按键码"); if (e2.keyCode === 102 || e2.keyCode === 103 || e2.keyCode === 104) ; if (e2.keyCode == 66) { onsubmit(); } }; onLoad(() => { plus.key.addEventListener("keyup", keypress); }); onUnload(() => { plus.key.removeEventListener("keyup", keypress); }); onHide(() => { hidePage.value = true; plus.key.removeEventListener("keyup", keypress); }); onBackPress(() => { plus.key.removeEventListener("keyup", keypress); }); onShow(() => { hidePage.value = false; token.value = uni.getStorageSync("token"); getBindParams(); getHistory(); }); const setFocus = () => { if (hidePage.value) { return; } focusType.value = false; vue.nextTick(() => { focusType.value = true; }); }; const getBindParams = () => { uni.request({ url: getBindParamsURL, method: "GET", header: { batoken: token.value }, success: (res) => { if (res.data.code === 1) { let transformData = function(data) { return data.map((item) => { const { id, value, label, ...rest } = item; return { id: id || value, value, text: label, ...rest, children: item.children ? transformData(item.children) : [] }; }); }; options.batch = res.data.data.batch_number.map((item) => { return { text: item.name, value: item.id }; }); const shipping = transformData(res.data.data.shipping); options.pallet = shipping; } }, fail(e2) { formatAppLog("log", "at pages/scanLotno/index.vue:411", "fail--", e2); } }); }; onNavigationBarButtonTap((event) => { if (event.index === 0) { uni.navigateTo({ url: "/pages/scanLotno/lotnoLog" }); } }); const __returned__ = { token, loading, hidePage, focusType, editBatchNum, editPalletNum, lotnoLogHistory, messageRef, messageType, messageText, get st() { return st2; }, set st(v2) { st2 = v2; }, valiFormData, rules, options, onnodeclick, onpopupopened, onpopupclosed, onchange, checkPermission, scanInput, reset, submitBatchNum, batchNum, submitPalletNum, palletNum, checkOrder, findPalletNumIdByValue, onsubmit, getHistory, keypress, setFocus, getBindParams }; Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true }); return __returned__; } }); function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) { const _component_uni_easyinput = resolveEasycom(vue.resolveDynamicComponent("uni-easyinput"), __easycom_1$1); const _component_uni_forms_item = resolveEasycom(vue.resolveDynamicComponent("uni-forms-item"), __easycom_2$1); const _component_uni_data_select = resolveEasycom(vue.resolveDynamicComponent("uni-data-select"), __easycom_0$6); const _component_uni_data_picker = resolveEasycom(vue.resolveDynamicComponent("uni-data-picker"), __easycom_3$1); const _component_uni_forms = resolveEasycom(vue.resolveDynamicComponent("uni-forms"), __easycom_3$2); const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4); const _component_uni_popup_message = resolveEasycom(vue.resolveDynamicComponent("uni-popup-message"), __easycom_5); const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_6); return vue.openBlock(), vue.createElementBlock("view", { class: "container" }, [ vue.createVNode(_component_uni_forms, { ref: "valiForm", "label-align": "right", "label-width": 80, rules: $setup.rules, modelValue: $setup.valiFormData }, { default: vue.withCtx(() => [ vue.createVNode(_component_uni_forms_item, { label: "运单号码", required: "", name: "orderNum" }, { default: vue.withCtx(() => [ vue.createVNode(_component_uni_easyinput, { modelValue: $setup.valiFormData.orderNum, "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $setup.valiFormData.orderNum = $event), placeholder: "请输入单号", suffixIcon: "scan", focus: $setup.focusType, onIconClick: $setup.scanInput }, null, 8, ["modelValue", "focus"]) ]), _: 1 /* STABLE */ }), vue.createVNode(_component_uni_forms_item, { label: "复称重量", name: "weight" }, { default: vue.withCtx(() => [ vue.createVNode(_component_uni_easyinput, { modelValue: $setup.valiFormData.weight, "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $setup.valiFormData.weight = $event), placeholder: "请输入复称重量", oninput: "value=value.replace(/[^\\d.]/g,'').replace(/^\\./g, '').replace(/\\.{2,}/g, '').replace('.', '$#$').replace(/\\./g, '').replace('$#$', '.').match(/^\\d*(\\.?\\d{0,2})/g)[0] || null" }, { right: vue.withCtx(() => [ vue.createElementVNode("view", { class: "weight-right" }, "KG") ]), _: 1 /* STABLE */ }, 8, ["modelValue"]) ]), _: 1 /* STABLE */ }), vue.createCommentVNode(" 复称重量作用是确保句惠完整,防止工作人员计费称車后进行的其他操作引起的物品丢失问题 "), vue.createCommentVNode(' '), vue.createVNode(_component_uni_forms_item, { label: "绑定批次号", name: "batchNum", class: "select-item" }, { default: vue.withCtx(() => [ !$setup.editBatchNum ? (vue.openBlock(), vue.createBlock(_component_uni_data_select, { key: 0, modelValue: $setup.valiFormData.batchNum, "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $setup.valiFormData.batchNum = $event), placeholder: "请选择批次号", localdata: $setup.options.batch, clear: false }, null, 8, ["modelValue", "localdata"])) : vue.createCommentVNode("v-if", true), $setup.editBatchNum ? (vue.openBlock(), vue.createBlock(_component_uni_easyinput, { key: 1, value: $setup.batchNum, disabled: $setup.editBatchNum }, null, 8, ["value", "disabled"])) : vue.createCommentVNode("v-if", true), !$setup.editBatchNum ? (vue.openBlock(), vue.createElementBlock("button", { key: 2, type: "primary", onClick: $setup.submitBatchNum }, "确认")) : vue.createCommentVNode("v-if", true), $setup.editBatchNum ? (vue.openBlock(), vue.createElementBlock("button", { key: 3, type: "primary", onClick: _cache[3] || (_cache[3] = ($event) => $setup.editBatchNum = false) }, "修改")) : vue.createCommentVNode("v-if", true) ]), _: 1 /* STABLE */ }), vue.createVNode(_component_uni_forms_item, { label: "绑定托盘号", name: "palletNum", class: "select-item" }, { default: vue.withCtx(() => [ !$setup.editPalletNum ? (vue.openBlock(), vue.createBlock(_component_uni_data_picker, { key: 0, placeholder: "请选择托盘号", "popup-title": "绑定托盘号", localdata: $setup.options.pallet, modelValue: $setup.valiFormData.palletNum, "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => $setup.valiFormData.palletNum = $event), onChange: $setup.onchange, onNodeclick: $setup.onnodeclick, onPopupopened: $setup.onpopupopened, onPopupclosed: $setup.onpopupclosed }, null, 8, ["localdata", "modelValue"])) : vue.createCommentVNode("v-if", true), $setup.editPalletNum ? (vue.openBlock(), vue.createBlock(_component_uni_easyinput, { key: 1, value: $setup.palletNum, disabled: $setup.editPalletNum }, null, 8, ["value", "disabled"])) : vue.createCommentVNode("v-if", true), !$setup.editPalletNum ? (vue.openBlock(), vue.createElementBlock("button", { key: 2, type: "primary", onClick: $setup.submitPalletNum }, "确认")) : vue.createCommentVNode("v-if", true), $setup.editPalletNum ? (vue.openBlock(), vue.createElementBlock("button", { key: 3, type: "primary", onClick: _cache[5] || (_cache[5] = ($event) => $setup.editPalletNum = false) }, "修改")) : vue.createCommentVNode("v-if", true) ]), _: 1 /* STABLE */ }), vue.createCommentVNode(" ") ]), _: 1 /* STABLE */ }, 8, ["rules", "modelValue"]), vue.createElementVNode("view", { class: "button-group" }, [ vue.createElementVNode("button", { type: "info", onClick: $setup.reset }, "重置"), vue.createElementVNode("button", { type: "default", onClick: $setup.checkOrder, loading: $setup.loading }, [ !$setup.loading ? (vue.openBlock(), vue.createBlock(_component_uni_icons, { key: 0, type: "search", size: "18" })) : vue.createCommentVNode("v-if", true), vue.createTextVNode(" 查看运单 ") ], 8, ["loading"]), vue.createElementVNode("button", { type: "primary", onClick: $setup.onsubmit, loading: $setup.loading }, [ !$setup.loading ? (vue.openBlock(), vue.createBlock(_component_uni_icons, { key: 0, type: "checkmarkempty", size: "18", color: "white" })) : vue.createCommentVNode("v-if", true), vue.createTextVNode(" 提交 ") ], 8, ["loading"]) ]), $setup.lotnoLogHistory.length > 0 ? (vue.openBlock(), vue.createElementBlock("view", { key: 0, class: "history" }, [ vue.createElementVNode("text", { class: "title" }, "记录(最近5条)") ])) : vue.createCommentVNode("v-if", true), vue.createElementVNode("view", { class: "history" }, [ (vue.openBlock(true), vue.createElementBlock( vue.Fragment, null, vue.renderList($setup.lotnoLogHistory.slice(0, 5), (item, i2) => { return vue.openBlock(), vue.createElementBlock("view", { class: "item", key: i2 }, [ vue.createElementVNode( "text", { class: "type" }, vue.toDisplayString(item.type), 1 /* TEXT */ ), vue.createElementVNode( "text", { class: "code", style: vue.normalizeStyle({ color: item.status ? "green" : "#666" }) }, vue.toDisplayString(item.orderNum), 5 /* TEXT, STYLE */ ), item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, { key: 0, type: "checkmarkempty", class: "status", size: "16", color: "green" })) : (vue.openBlock(), vue.createElementBlock("text", { key: 1, class: "status fail" }, "F")), vue.createElementVNode( "text", { style: { "margin-left": "10rpx", "font-weight": "300" } }, vue.toDisplayString("\r\n" + item.createTime), 1 /* TEXT */ ) ]); }), 128 /* KEYED_FRAGMENT */ )) ]), vue.createVNode( _component_uni_popup, { ref: "messageRef", type: "message" }, { default: vue.withCtx(() => [ vue.createVNode(_component_uni_popup_message, { type: $setup.messageType, message: $setup.messageText, duration: 2e3 }, null, 8, ["type", "message"]) ]), _: 1 /* STABLE */ }, 512 /* NEED_PATCH */ ) ]); } const PagesScanLotnoIndex = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["render", _sfc_render$e], ["__file", "E:/HBuilderProjects/YTAPP/pages/scanLotno/index.vue"]]); const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({ __name: "lotnoLog", setup(__props, { expose: __expose }) { __expose(); const lotnoLogHistory = vue.ref([]); const getHistory = () => { lotnoLogHistory.value = uni.getStorageSync("lotnoLogHistory"); }; onLoad(() => { getHistory(); }); const __returned__ = { lotnoLogHistory, getHistory }; Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true }); return __returned__; } }); function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) { const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4); return vue.openBlock(), vue.createElementBlock("view", { class: "history" }, [ (vue.openBlock(true), vue.createElementBlock( vue.Fragment, null, vue.renderList($setup.lotnoLogHistory, (item, i2) => { return vue.openBlock(), vue.createElementBlock("view", { class: "item", key: i2 }, [ vue.createElementVNode( "text", { class: "type" }, vue.toDisplayString(item.type), 1 /* TEXT */ ), vue.createElementVNode( "text", { class: "code", style: vue.normalizeStyle({ color: item.status ? "green" : "#666" }) }, vue.toDisplayString(item.orderNum), 5 /* TEXT, STYLE */ ), item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, { key: 0, type: "checkmarkempty", class: "status", size: "16", color: "green" })) : (vue.openBlock(), vue.createElementBlock("text", { key: 1, class: "status fail" }, "F")), vue.createElementVNode( "text", { style: { "margin-left": "10rpx", "font-weight": "300" } }, vue.toDisplayString("\r\n" + item.createTime), 1 /* TEXT */ ) ]); }), 128 /* KEYED_FRAGMENT */ )), $setup.lotnoLogHistory.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", { key: 0, class: "is-empty" }, "暂无历史")) : vue.createCommentVNode("v-if", true) ]); } const PagesScanLotnoLotnoLog = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["render", _sfc_render$d], ["__scopeId", "data-v-d86d23fe"], ["__file", "E:/HBuilderProjects/YTAPP/pages/scanLotno/lotnoLog.vue"]]); const _sfc_main$d = { name: "UniSection", emits: ["click"], props: { type: { type: String, default: "" }, title: { type: String, required: true, default: "" }, titleFontSize: { type: String, default: "14px" }, titleColor: { type: String, default: "#333" }, subTitle: { type: String, default: "" }, subTitleFontSize: { type: String, default: "12px" }, subTitleColor: { type: String, default: "#999" }, padding: { type: [Boolean, String], default: false } }, computed: { _padding() { if (typeof this.padding === "string") { return this.padding; } return this.padding ? "10px" : ""; } }, watch: { title(newVal) { if (uni.report && newVal !== "") { uni.report("title", newVal); } } }, methods: { onClick() { this.$emit("click"); } } }; function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) { return vue.openBlock(), vue.createElementBlock("view", { class: "uni-section" }, [ vue.createElementVNode("view", { class: "uni-section-header", onClick: _cache[0] || (_cache[0] = (...args) => $options.onClick && $options.onClick(...args)) }, [ $props.type ? (vue.openBlock(), vue.createElementBlock( "view", { key: 0, class: vue.normalizeClass(["uni-section-header__decoration", $props.type]) }, null, 2 /* CLASS */ )) : vue.renderSlot(_ctx.$slots, "decoration", { key: 1 }, void 0, true), vue.createElementVNode("view", { class: "uni-section-header__content" }, [ vue.createElementVNode( "text", { style: vue.normalizeStyle({ "font-size": $props.titleFontSize, "color": $props.titleColor }), class: vue.normalizeClass(["uni-section__content-title", { "distraction": !$props.subTitle }]) }, vue.toDisplayString($props.title), 7 /* TEXT, CLASS, STYLE */ ), $props.subTitle ? (vue.openBlock(), vue.createElementBlock( "text", { key: 0, style: vue.normalizeStyle({ "font-size": $props.subTitleFontSize, "color": $props.subTitleColor }), class: "uni-section-header__content-sub" }, vue.toDisplayString($props.subTitle), 5 /* TEXT, STYLE */ )) : vue.createCommentVNode("v-if", true) ]), vue.createElementVNode("view", { class: "uni-section-header__slot-right" }, [ vue.renderSlot(_ctx.$slots, "right", {}, void 0, true) ]) ]), vue.createElementVNode( "view", { class: "uni-section-content", style: vue.normalizeStyle({ padding: $options._padding }) }, [ vue.renderSlot(_ctx.$slots, "default", {}, void 0, true) ], 4 /* STYLE */ ) ]); } const __easycom_0$1 = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$c], ["__scopeId", "data-v-637fd36b"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-section/components/uni-section/uni-section.vue"]]); const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({ __name: "waybillsList", setup(__props, { expose: __expose }) { __expose(); const waybills = vue.ref([]); const getHistory = () => { waybills.value = uni.getStorageSync("waybills"); }; onLoad(() => { getHistory(); }); const __returned__ = { waybills, getHistory }; Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true }); return __returned__; } }); function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) { const _component_uni_section = resolveEasycom(vue.resolveDynamicComponent("uni-section"), __easycom_0$1); return vue.openBlock(), vue.createElementBlock("view", { class: "history" }, [ vue.createVNode(_component_uni_section, { title: "数量: " + $setup.waybills.length }, null, 8, ["title"]), (vue.openBlock(true), vue.createElementBlock( vue.Fragment, null, vue.renderList($setup.waybills, (item, i2) => { return vue.openBlock(), vue.createElementBlock("view", { class: "item", key: i2 }, [ vue.createElementVNode( "text", { class: "code", style: { color: "#666" } }, vue.toDisplayString(item.order_box_no), 1 /* TEXT */ ), vue.createElementVNode( "text", { class: "type" }, "重量: " + vue.toDisplayString(item.weight) + "KG", 1 /* TEXT */ ), vue.createElementVNode("view", { class: "sub-items" }, [ vue.createElementVNode("view", { class: "sub-item" }, [ vue.createElementVNode("text", { class: "type" }, "批次/船航/托盘"), vue.createElementVNode( "text", { class: "type" }, vue.toDisplayString(item.batch_shipping_pallet), 1 /* TEXT */ ) ]), vue.createElementVNode("view", { class: "sub-item" }, [ vue.createElementVNode("text", { class: "type" }, "末公里运单号"), vue.createElementVNode( "text", { class: "type" }, vue.toDisplayString(item.tracking_number || "无"), 1 /* TEXT */ ) ]) ]) ]); }), 128 /* KEYED_FRAGMENT */ )), $setup.waybills.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", { key: 0, class: "is-empty" }, "暂无运单")) : vue.createCommentVNode("v-if", true) ]); } const PagesScanLotnoWaybillsList = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$b], ["__scopeId", "data-v-ef3fda20"], ["__file", "E:/HBuilderProjects/YTAPP/pages/scanLotno/waybillsList.vue"]]); const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({ __name: "index", setup(__props, { expose: __expose }) { __expose(); const token = vue.ref(); const loading = vue.ref(false); const hidePage = vue.ref(false); const focusType = vue.ref(true); const warehouseLogHistory = vue.ref([]); const messageRef = vue.ref(); const messageType = vue.ref(); const messageText = vue.ref(); let st2; const valiFormData = vue.ref({ order_code: "" }); const rules = vue.reactive({ order_code: { rules: [ { required: true, errorMessage: "单据编号不能为空" } ] } }); const checkPermission = async () => { let status = permission.isIOS ? await permission.requestIOS("camera") : await permission.requestAndroid("android.permission.CAMERA"); if (status === null || status === 1) { status = 1; } else { uni.showModal({ content: "Camera permission required", confirmText: "Setting", success: function(res) { if (res.confirm) { permission.gotoAppSetting(); } } }); } return status; }; const scanInput = async () => { let status = await checkPermission(); if (status !== 1) { return; } uni.scanCode({ success: (res) => { valiFormData.value.order_code = res.result; onsubmit(); }, fail: (err) => { } }); }; const reset = () => { loading.value = false; valiFormData.value.order_code = ""; }; const setfocus = () => { if (hidePage.value) { return; } focusType.value = false; vue.nextTick(() => { focusType.value = true; }); }; const onsubmit = () => { st2 && clearTimeout(st2); loading.value = true; uni.request({ url: warehouseScanURL, method: "POST", header: { batoken: token.value }, data: { order_code: valiFormData.value.order_code }, success: (res) => { loading.value = false; if (res.data.code == 1) { messageType.value = "success"; messageText.value = res.data.msg; messageRef.value.open(); const historyItem = { order_code: valiFormData.value.order_code, createTime: /* @__PURE__ */ new Date(), type: "单据扫描", status: true }; warehouseLogHistory.value.unshift(historyItem); uni.setStorageSync("warehouseLogHistory", warehouseLogHistory.value); getHistory(); } else { messageType.value = "error"; messageText.value = res.data.msg; messageRef.value.open(); const historyItem = { order_code: valiFormData.value.order_code, createTime: /* @__PURE__ */ new Date(), type: "单据扫描", status: false }; warehouseLogHistory.value.unshift(historyItem); uni.setStorageSync("warehouseLogHistory", warehouseLogHistory.value); getHistory(); } st2 = setTimeout(() => { reset(); st2 && clearTimeout(st2); }, 1e3); } }); }; const getHistory = () => { warehouseLogHistory.value = uni.getStorageSync("warehouseLogHistory") || []; }; const keypress = (e2) => { formatAppLog("log", "at pages/warehouseScan/index.vue:179", e2, "按键码"); if (e2.keyCode === 102 || e2.keyCode === 103 || e2.keyCode === 104) ; if (e2.keyCode == 66) { onsubmit(); } }; onLoad(() => { plus.key.addEventListener("keyup", keypress); }); onUnload(() => { plus.key.removeEventListener("keyup", keypress); }); onHide(() => { hidePage.value = true; plus.key.removeEventListener("keyup", keypress); }); onBackPress(() => { plus.key.removeEventListener("keyup", keypress); }); onShow(() => { token.value = uni.getStorageSync("token"); hidePage.value = false; getHistory(); }); onNavigationBarButtonTap((event) => { if (event.index === 0) { uni.navigateTo({ url: "/pages/warehouseScan/warehouseLog" }); } }); const __returned__ = { token, loading, hidePage, focusType, warehouseLogHistory, messageRef, messageType, messageText, get st() { return st2; }, set st(v2) { st2 = v2; }, valiFormData, rules, checkPermission, scanInput, reset, setfocus, onsubmit, getHistory, keypress }; Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true }); return __returned__; } }); function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) { const _component_uni_easyinput = resolveEasycom(vue.resolveDynamicComponent("uni-easyinput"), __easycom_1$1); const _component_uni_forms_item = resolveEasycom(vue.resolveDynamicComponent("uni-forms-item"), __easycom_2$1); const _component_uni_forms = resolveEasycom(vue.resolveDynamicComponent("uni-forms"), __easycom_3$2); const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4); const _component_uni_popup_message = resolveEasycom(vue.resolveDynamicComponent("uni-popup-message"), __easycom_5); const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_6); return vue.openBlock(), vue.createElementBlock("view", { class: "container" }, [ vue.createVNode(_component_uni_forms, { ref: "valiForm", "label-align": "right", "label-width": 80, rules: $setup.rules, modelValue: $setup.valiFormData }, { default: vue.withCtx(() => [ vue.createVNode(_component_uni_forms_item, { label: "单据编号", required: "", name: "order_code" }, { default: vue.withCtx(() => [ vue.createVNode(_component_uni_easyinput, { modelValue: $setup.valiFormData.order_code, "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $setup.valiFormData.order_code = $event), placeholder: "请输入单据编号", suffixIcon: "scan", focus: $setup.focusType, onIconClick: $setup.scanInput, onBlur: $setup.setfocus, onConfirm: $setup.onsubmit }, null, 8, ["modelValue", "focus"]) ]), _: 1 /* STABLE */ }) ]), _: 1 /* STABLE */ }, 8, ["rules", "modelValue"]), vue.createElementVNode("view", { class: "button-group" }, [ vue.createElementVNode("button", { type: "info", onClick: $setup.reset }, "重置"), vue.createElementVNode("button", { type: "primary", onClick: $setup.onsubmit, loading: $setup.loading }, [ !$setup.loading ? (vue.openBlock(), vue.createBlock(_component_uni_icons, { key: 0, type: "checkmarkempty", size: "18", color: "white" })) : vue.createCommentVNode("v-if", true), vue.createTextVNode(" 提交 ") ], 8, ["loading"]) ]), $setup.warehouseLogHistory.length > 0 ? (vue.openBlock(), vue.createElementBlock("view", { key: 0, class: "history" }, [ vue.createElementVNode("text", { class: "title" }, "记录(最近5条)") ])) : vue.createCommentVNode("v-if", true), vue.createElementVNode("view", { class: "history" }, [ (vue.openBlock(true), vue.createElementBlock( vue.Fragment, null, vue.renderList($setup.warehouseLogHistory.slice(0, 5), (item, i2) => { return vue.openBlock(), vue.createElementBlock("view", { class: "item", key: i2 }, [ vue.createElementVNode( "text", { class: "code", style: vue.normalizeStyle({ color: item.status ? "green" : "#666" }) }, vue.toDisplayString(item.order_code), 5 /* TEXT, STYLE */ ), item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, { key: 0, type: "checkmarkempty", class: "status", size: "16", color: "green" })) : (vue.openBlock(), vue.createElementBlock("text", { key: 1, class: "status fail" }, "F")), vue.createElementVNode( "text", { style: { "margin-left": "10rpx", "font-weight": "300" } }, vue.toDisplayString("\r\n" + item.createTime), 1 /* TEXT */ ) ]); }), 128 /* KEYED_FRAGMENT */ )) ]), vue.createVNode( _component_uni_popup, { ref: "messageRef", type: "message" }, { default: vue.withCtx(() => [ vue.createVNode(_component_uni_popup_message, { type: $setup.messageType, message: $setup.messageText, duration: 2e3 }, null, 8, ["type", "message"]) ]), _: 1 /* STABLE */ }, 512 /* NEED_PATCH */ ) ]); } const PagesWarehouseScanIndex = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$a], ["__scopeId", "data-v-c64ca80c"], ["__file", "E:/HBuilderProjects/YTAPP/pages/warehouseScan/index.vue"]]); const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({ __name: "warehouseLog", setup(__props, { expose: __expose }) { __expose(); const warehouseLogHistory = vue.ref([]); const getHistory = () => { warehouseLogHistory.value = uni.getStorageSync("warehouseLogHistory"); }; onLoad(() => { getHistory(); }); const __returned__ = { warehouseLogHistory, getHistory }; Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true }); return __returned__; } }); function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) { const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4); return vue.openBlock(), vue.createElementBlock("view", { class: "history" }, [ (vue.openBlock(true), vue.createElementBlock( vue.Fragment, null, vue.renderList($setup.warehouseLogHistory, (item, i2) => { return vue.openBlock(), vue.createElementBlock("view", { class: "item", key: i2 }, [ vue.createElementVNode( "text", { class: "type" }, vue.toDisplayString(item.type), 1 /* TEXT */ ), vue.createElementVNode( "text", { class: "code", style: vue.normalizeStyle({ color: item.status ? "green" : "#666" }) }, vue.toDisplayString(item.order_code), 5 /* TEXT, STYLE */ ), item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, { key: 0, type: "checkmarkempty", class: "status", size: "16", color: "green" })) : (vue.openBlock(), vue.createElementBlock("text", { key: 1, class: "status fail" }, "F")), vue.createElementVNode( "text", { style: { "margin-left": "10rpx", "font-weight": "300" } }, vue.toDisplayString("\r\n" + item.createTime), 1 /* TEXT */ ) ]); }), 128 /* KEYED_FRAGMENT */ )), $setup.warehouseLogHistory.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", { key: 0, class: "is-empty" }, "暂无历史")) : vue.createCommentVNode("v-if", true) ]); } const PagesWarehouseScanWarehouseLog = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$9], ["__scopeId", "data-v-dadaa086"], ["__file", "E:/HBuilderProjects/YTAPP/pages/warehouseScan/warehouseLog.vue"]]); const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({ __name: "index", setup(__props, { expose: __expose }) { __expose(); const token = vue.ref(); const editSpaceNo = vue.ref(false); const loading = vue.ref(false); const hidePage = vue.ref(false); const focusType = vue.ref(true); const waybillNoHistory = vue.ref([]); const messageRef = vue.ref(); const messageType = vue.ref(); const messageText = vue.ref(); let st2; const valiFormData = vue.ref({ code: "", space_id: "" }); const rules = vue.reactive({ code: { rules: [ { required: true, errorMessage: "单号不能为空" } ] } }); const options = vue.reactive({ space: [] }); const checkPermission = async () => { let status = permission.isIOS ? await permission.requestIOS("camera") : await permission.requestAndroid("android.permission.CAMERA"); if (status === null || status === 1) { status = 1; } else { uni.showModal({ content: "Camera permission required", confirmText: "Setting", success: function(res) { if (res.confirm) { permission.gotoAppSetting(); } } }); } return status; }; const scanInput = async () => { let status = await checkPermission(); if (status !== 1) { return; } uni.scanCode({ success: (res) => { valiFormData.value.code = res.result; }, fail: (err) => { } }); }; const reset = () => { loading.value = false; valiFormData.value.code = ""; }; const submitSpace = () => { if (valiFormData.value.space_id) { editSpaceNo.value = true; setFocus(); } else { messageType.value = "error"; messageText.value = "请选择库位"; messageRef.value.open(); } }; const space = vue.computed(() => { const res = options.space.find((item) => item.value === valiFormData.value.space_id); return res == null ? void 0 : res.text; }); const findPalletNumIdByValue = (data, targetValue) => { for (let i2 = 0; i2 < data.length; i2++) { const item = data[i2]; if (item.id === targetValue || item.value === targetValue) { return [item.id]; } else if (item.children && item.children.length > 0) { const childId = findPalletNumIdByValue(item.children, targetValue); if (childId !== null) { return childId; } } } return null; }; const onsubmit = () => { if (valiFormData.value.space_id && valiFormData.value.code) { st2 && clearTimeout(st2); loading.value = true; uni.request({ url: addWaybillNoURL, method: "POST", header: { batoken: token.value }, data: { code: valiFormData.value.code, space_id: valiFormData.value.space_id }, success: (res) => { loading.value = false; const space2 = options.space.find((item) => item.value === valiFormData.value.space_id); if (res.data.code == 1) { messageType.value = "success"; messageText.value = res.data.msg; messageRef.value.open(); const historyItem = { code: valiFormData.value.code, createTime: /* @__PURE__ */ new Date(), type: "运单号", space: space2.text, status: true }; waybillNoHistory.value.unshift(historyItem); uni.setStorageSync("waybillNoHistory", waybillNoHistory.value); getHistory(); } else { messageType.value = "error"; messageText.value = res.data.msg; messageRef.value.open(); const historyItem = { code: valiFormData.value.code, createTime: /* @__PURE__ */ new Date(), type: "运单号", space: space2.text, status: false }; waybillNoHistory.value.unshift(historyItem); uni.setStorageSync("waybillNoHistory", waybillNoHistory.value); getHistory(); } st2 = setTimeout(() => { reset(); setFocus(); st2 && clearTimeout(st2); }, 1e3); } }); } else { if (!valiFormData.value.space_id) { messageType.value = "error"; messageText.value = "请选择库位"; messageRef.value.open(); } if (!valiFormData.value.code) { messageType.value = "error"; messageText.value = "请填写运单号"; messageRef.value.open(); } } }; const getHistory = () => { waybillNoHistory.value = uni.getStorageSync("waybillNoHistory") || []; }; const keypress = (e2) => { formatAppLog("log", "at pages/waybillNo/index.vue:240", e2, "按键码"); if (e2.keyCode === 102 || e2.keyCode === 103 || e2.keyCode === 104) ; if (e2.keyCode == 66) { onsubmit(); } }; onLoad(() => { plus.key.addEventListener("keyup", keypress); }); onUnload(() => { plus.key.removeEventListener("keyup", keypress); }); onHide(() => { hidePage.value = true; plus.key.removeEventListener("keyup", keypress); }); onBackPress(() => { plus.key.removeEventListener("keyup", keypress); }); onShow(() => { hidePage.value = false; token.value = uni.getStorageSync("token"); getOptions(); getHistory(); }); const getOptions = () => { uni.request({ url: waybillNoOptions, method: "GET", header: { batoken: token.value }, success: (res) => { formatAppLog("log", "at pages/waybillNo/index.vue:300", res); if (res.data.code === 1) { for (let key in res.data.data.space_id) { if (res.data.data.space_id.hasOwnProperty(key)) { options.space.push({ text: res.data.data.space_id[key], value: key }); } } } }, fail(e2) { formatAppLog("log", "at pages/waybillNo/index.vue:310", "fail--", e2); } }); }; const setFocus = () => { if (hidePage.value) { return; } focusType.value = false; vue.nextTick(() => { focusType.value = true; }); }; onNavigationBarButtonTap((event) => { if (event.index === 0) { uni.navigateTo({ url: "/pages/waybillNo/waybillNoLog" }); } }); const __returned__ = { token, editSpaceNo, loading, hidePage, focusType, waybillNoHistory, messageRef, messageType, messageText, get st() { return st2; }, set st(v2) { st2 = v2; }, valiFormData, rules, options, checkPermission, scanInput, reset, submitSpace, space, findPalletNumIdByValue, onsubmit, getHistory, keypress, getOptions, setFocus }; Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true }); return __returned__; } }); function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) { const _component_uni_data_select = resolveEasycom(vue.resolveDynamicComponent("uni-data-select"), __easycom_0$6); const _component_uni_easyinput = resolveEasycom(vue.resolveDynamicComponent("uni-easyinput"), __easycom_1$1); const _component_uni_forms = resolveEasycom(vue.resolveDynamicComponent("uni-forms"), __easycom_3$2); const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4); const _component_uni_popup_message = resolveEasycom(vue.resolveDynamicComponent("uni-popup-message"), __easycom_5); const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_6); return vue.openBlock(), vue.createElementBlock("view", { class: "container" }, [ vue.createVNode(_component_uni_forms, { ref: "valiForm", "label-align": "right", "label-width": 80, rules: $setup.rules, modelValue: $setup.valiFormData }, { default: vue.withCtx(() => [ vue.createElementVNode("view", { class: "space-select" }, [ !$setup.editSpaceNo ? (vue.openBlock(), vue.createBlock(_component_uni_data_select, { key: 0, modelValue: $setup.valiFormData.space_id, "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $setup.valiFormData.space_id = $event), placeholder: "请选择库位", localdata: $setup.options.space, clear: false }, null, 8, ["modelValue", "localdata"])) : vue.createCommentVNode("v-if", true), $setup.editSpaceNo ? (vue.openBlock(), vue.createBlock(_component_uni_easyinput, { key: 1, value: $setup.space, disabled: $setup.editSpaceNo }, null, 8, ["value", "disabled"])) : vue.createCommentVNode("v-if", true), !$setup.editSpaceNo ? (vue.openBlock(), vue.createElementBlock("button", { key: 2, type: "primary", onClick: $setup.submitSpace }, "确认")) : vue.createCommentVNode("v-if", true), $setup.editSpaceNo ? (vue.openBlock(), vue.createElementBlock("button", { key: 3, type: "primary", onClick: _cache[1] || (_cache[1] = ($event) => $setup.editSpaceNo = false) }, "修改")) : vue.createCommentVNode("v-if", true) ]), vue.createElementVNode("view", null, [ vue.createVNode(_component_uni_easyinput, { modelValue: $setup.valiFormData.code, "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $setup.valiFormData.code = $event), placeholder: "请输入运单号", suffixIcon: "scan", focus: $setup.focusType, onIconClick: $setup.scanInput }, null, 8, ["modelValue", "focus"]) ]) ]), _: 1 /* STABLE */ }, 8, ["rules", "modelValue"]), vue.createElementVNode("view", { class: "button-group" }, [ vue.createElementVNode("button", { type: "info", onClick: $setup.reset }, "重置"), vue.createElementVNode("button", { type: "primary", onClick: $setup.onsubmit, loading: $setup.loading }, [ !$setup.loading ? (vue.openBlock(), vue.createBlock(_component_uni_icons, { key: 0, type: "checkmarkempty", size: "18", color: "white" })) : vue.createCommentVNode("v-if", true), vue.createTextVNode(" 提交 ") ], 8, ["loading"]) ]), $setup.waybillNoHistory.length > 0 ? (vue.openBlock(), vue.createElementBlock("view", { key: 0, class: "history" }, [ vue.createElementVNode("text", { class: "title" }, "记录(最近5条)") ])) : vue.createCommentVNode("v-if", true), vue.createElementVNode("view", { class: "history" }, [ (vue.openBlock(true), vue.createElementBlock( vue.Fragment, null, vue.renderList($setup.waybillNoHistory.slice(0, 5), (item, i2) => { return vue.openBlock(), vue.createElementBlock("view", { class: "item", key: i2 }, [ vue.createElementVNode("view", null, [ vue.createElementVNode("view", null, [ vue.createElementVNode("text", { class: "type" }, "库位"), vue.createElementVNode( "text", { class: "code", style: vue.normalizeStyle({ color: item.status ? "green" : "#666" }) }, vue.toDisplayString(item.space), 5 /* TEXT, STYLE */ ) ]), vue.createElementVNode("view", null, [ vue.createElementVNode("text", { class: "type" }, "单号"), vue.createElementVNode( "text", { class: "code", style: vue.normalizeStyle({ color: item.status ? "green" : "#666" }) }, vue.toDisplayString(item.code), 5 /* TEXT, STYLE */ ) ]), vue.createElementVNode("view", { class: "space-time" }, [ vue.createElementVNode( "text", null, vue.toDisplayString(item.createTime), 1 /* TEXT */ ) ]) ]), vue.createElementVNode("view", null, [ item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, { key: 0, type: "checkmarkempty", class: "status", size: "16", color: "green" })) : (vue.openBlock(), vue.createElementBlock("text", { key: 1, class: "status fail" }, "F")) ]) ]); }), 128 /* KEYED_FRAGMENT */ )) ]), vue.createVNode( _component_uni_popup, { ref: "messageRef", type: "message" }, { default: vue.withCtx(() => [ vue.createVNode(_component_uni_popup_message, { type: $setup.messageType, message: $setup.messageText, duration: 2e3 }, null, 8, ["type", "message"]) ]), _: 1 /* STABLE */ }, 512 /* NEED_PATCH */ ) ]); } const PagesWaybillNoIndex = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render$8], ["__file", "E:/HBuilderProjects/YTAPP/pages/waybillNo/index.vue"]]); const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({ __name: "waybillNoLog", setup(__props, { expose: __expose }) { __expose(); const waybillNoHistory = vue.ref([]); const getHistory = async () => { waybillNoHistory.value = await uni.getStorageSync("waybillNoHistory"); }; onLoad(async () => { await getHistory(); }); const __returned__ = { waybillNoHistory, getHistory }; Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true }); return __returned__; } }); function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) { const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4); return vue.openBlock(), vue.createElementBlock("view", { class: "history" }, [ (vue.openBlock(true), vue.createElementBlock( vue.Fragment, null, vue.renderList($setup.waybillNoHistory, (item, i2) => { return vue.openBlock(), vue.createElementBlock("view", { class: "item", key: i2 }, [ vue.createElementVNode("view", null, [ vue.createElementVNode("view", null, [ vue.createElementVNode("text", { class: "type" }, "库位"), vue.createElementVNode( "text", { class: "code", style: vue.normalizeStyle({ color: item.status ? "green" : "#666" }) }, vue.toDisplayString(item.space), 5 /* TEXT, STYLE */ ) ]), vue.createElementVNode("view", null, [ vue.createElementVNode("text", { class: "type" }, "单号"), vue.createElementVNode( "text", { class: "code", style: vue.normalizeStyle({ color: item.status ? "green" : "#666" }) }, vue.toDisplayString(item.code), 5 /* TEXT, STYLE */ ) ]), vue.createElementVNode("view", { class: "space-time" }, [ vue.createElementVNode( "text", null, vue.toDisplayString(item.createTime), 1 /* TEXT */ ) ]) ]), vue.createElementVNode("view", null, [ item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, { key: 0, type: "checkmarkempty", class: "status", size: "16", color: "green" })) : (vue.openBlock(), vue.createElementBlock("text", { key: 1, class: "status fail" }, "F")) ]) ]); }), 128 /* KEYED_FRAGMENT */ )), $setup.waybillNoHistory.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", { key: 0, class: "is-empty" }, "暂无历史")) : vue.createCommentVNode("v-if", true) ]); } const PagesWaybillNoWaybillNoLog = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render$7], ["__scopeId", "data-v-2f55e896"], ["__file", "E:/HBuilderProjects/YTAPP/pages/waybillNo/waybillNoLog.vue"]]); const _sfc_main$7 = { name: "UniDrawer", components: {}, emits: ["change"], props: { /** * 显示模式(左、右),只在初始化生效 */ mode: { type: String, default: "" }, /** * 蒙层显示状态 */ mask: { type: Boolean, default: true }, /** * 遮罩是否可点击关闭 */ maskClick: { type: Boolean, default: true }, /** * 抽屉宽度 */ width: { type: Number, default: 220 } }, data() { return { visibleSync: false, showDrawer: false, rightMode: false, watchTimer: null, drawerWidth: 220 }; }, created() { this.drawerWidth = this.width; this.rightMode = this.mode === "right"; }, methods: { clear() { }, close(type) { if (type === "mask" && !this.maskClick || !this.visibleSync) return; this._change("showDrawer", "visibleSync", false); }, open() { if (this.visibleSync) return; this._change("visibleSync", "showDrawer", true); }, _change(param1, param2, status) { this[param1] = status; if (this.watchTimer) { clearTimeout(this.watchTimer); } this.watchTimer = setTimeout(() => { this[param2] = status; this.$emit("change", status); }, status ? 50 : 300); } } }; function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) { return $data.visibleSync ? (vue.openBlock(), vue.createElementBlock( "view", { key: 0, class: vue.normalizeClass([{ "uni-drawer--visible": $data.showDrawer }, "uni-drawer"]), onTouchmove: _cache[1] || (_cache[1] = vue.withModifiers((...args) => $options.clear && $options.clear(...args), ["stop", "prevent"])) }, [ vue.createElementVNode( "view", { class: vue.normalizeClass(["uni-drawer__mask", { "uni-drawer__mask--visible": $data.showDrawer && $props.mask }]), onClick: _cache[0] || (_cache[0] = ($event) => $options.close("mask")) }, null, 2 /* CLASS */ ), vue.createElementVNode( "view", { class: vue.normalizeClass(["uni-drawer__content", { "uni-drawer--right": $data.rightMode, "uni-drawer--left": !$data.rightMode, "uni-drawer__content--visible": $data.showDrawer }]), style: vue.normalizeStyle({ width: $data.drawerWidth + "px" }) }, [ vue.renderSlot(_ctx.$slots, "default", {}, void 0, true) ], 6 /* CLASS, STYLE */ ) ], 34 /* CLASS, NEED_HYDRATION */ )) : vue.createCommentVNode("v-if", true); } const __easycom_3 = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$6], ["__scopeId", "data-v-f7c32d22"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue"]]); const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({ __name: "index", setup(__props, { expose: __expose }) { __expose(); const loading = vue.ref(false); const loadingBtn = vue.ref(false); const token = vue.ref(); const searchValue = vue.ref(); const waybillDelivery = vue.ref([]); const messageType = vue.ref(); const messageText = vue.ref(); const messageRef = vue.ref(); const showRightRef = vue.ref(); const resetForm = () => { }; const confirmForm = () => { showRightRef.value.close(); }; const copyOrderNo = (order_no) => { uni.setClipboardData({ data: order_no, success: function() { uni.showToast({ title: "复制成功", icon: "success", duration: 2e3 }); }, fail: function() { formatAppLog("log", "at pages/waybillDeliveryOrder/index.vue:85", "复制失败"); } }); }; const callPhone = (phoneNumber) => { formatAppLog("log", "at pages/waybillDeliveryOrder/index.vue:91", phoneNumber); uni.makePhoneCall({ phoneNumber, success: function() { formatAppLog("log", "at pages/waybillDeliveryOrder/index.vue:96", "拨打电话成功!"); }, fail: function() { formatAppLog("log", "at pages/waybillDeliveryOrder/index.vue:99", "拨打电话失败!"); } }); }; const checkPermission = async () => { let status = permission.isIOS ? await permission.requestIOS("camera") : await permission.requestAndroid("android.permission.CAMERA"); if (status === null || status === 1) { status = 1; } else { uni.showModal({ content: "Camera permission required", confirmText: "Setting", success: function(res) { if (res.confirm) { permission.gotoAppSetting(); } } }); } return status; }; const scanInput = async () => { let status = await checkPermission(); if (status !== 1) { return; } uni.scanCode({ success: (res) => { }, fail: (err) => { } }); }; const itemClick = (item) => { uni.setStorageSync("selectItem", item); uni.navigateTo({ url: "/pages/waybillDeliveryOrder/orderInfo?id=" + item.id }); }; const onButtonClick = async (row, value) => { if (value === "send_out") { sendOut({ id: row.id }); } else if (value === "delivered") { updateDelivered({ id: row.id }); } else if (value === "refuse") { updateRefuse({ id: row.id }); } else if (value === "create_track_pod") { createTrackPod({ id: row.id }); } else if (value === "edit") ; else if (value === "generate_label") ; else if (value === "fedex_appointment_pick_up") ; else if (value === "print_get_back_label") ; else if (value === "fedex_cancel_pick_up") { cancelFedExPickUp({ id: row.id }); } }; const sendOut = (data) => { loadingBtn.value = true; uni.request({ url: sendOutURL, method: "POST", header: { batoken: token.value }, data, success: ({ data: data2 }) => { loadingBtn.value = false; messageType.value = "success"; messageText.value = "发出成功"; messageRef.value.open(); }, fail: (err) => { loadingBtn.value = false; messageType.value = "error"; messageText.value = "发出失败,请稍后重试"; messageRef.value.open(); } }); }; const updateDelivered = (data) => { loadingBtn.value = true; uni.request({ url: deliveredURL, method: "POST", header: { batoken: token.value }, data, success: ({ data: data2 }) => { loadingBtn.value = false; messageType.value = "success"; messageText.value = "确认送达成功"; messageRef.value.open(); }, fail: (err) => { loadingBtn.value = false; messageType.value = "error"; messageText.value = "确认送达失败,请稍后重试"; messageRef.value.open(); } }); }; const updateRefuse = (data) => { loadingBtn.value = true; uni.request({ url: refuseURL, method: "POST", header: { batoken: token.value }, data, success: ({ data: data2 }) => { loadingBtn.value = false; messageType.value = "success"; messageText.value = "已拒绝签收"; messageRef.value.open(); }, fail: (err) => { loadingBtn.value = false; messageType.value = "error"; messageText.value = "修改失败,请稍后重试"; messageRef.value.open(); } }); }; const createTrackPod = (data) => { loadingBtn.value = true; uni.request({ url: createTrackPodURL, method: "POST", header: { batoken: token.value }, data, success: ({ data: data2 }) => { loadingBtn.value = false; messageType.value = "success"; messageText.value = "同步成功"; messageRef.value.open(); }, fail: (err) => { loadingBtn.value = false; messageType.value = "error"; messageText.value = "同步失败,请稍后重试"; messageRef.value.open(); } }); }; const cancelFedExPickUp = (data) => { loadingBtn.value = true; uni.request({ url: cancelFedExPickUpURL, method: "POST", header: { batoken: token.value }, data, success: ({ data: data2 }) => { loadingBtn.value = false; messageType.value = "success"; messageText.value = "操作成功"; messageRef.value.open(); }, fail: (err) => { loadingBtn.value = false; messageType.value = "error"; messageText.value = "操作失败,请稍后重试"; messageRef.value.open(); } }); }; const getList = () => { loading.value = true; uni.request({ url: pickupWaybillDeliveryOrderURL + "/index", method: "GET", header: { batoken: token.value }, success: ({ data }) => { loading.value = false; formatAppLog("log", "at pages/waybillDeliveryOrder/index.vue:319", data); if (data.code == 1) { waybillDelivery.value = data.data.list; } else { messageType.value = "error"; messageText.value = data.msg; messageRef.value.open(); } }, fail: (err) => { loading.value = false; } }); }; onLoad(() => { token.value = uni.getStorageSync("token"); getList(); }); onNavigationBarButtonTap((event) => { if (event.index === 0) { showRightRef.value.open(); } }); const __returned__ = { loading, loadingBtn, token, searchValue, waybillDelivery, messageType, messageText, messageRef, showRightRef, resetForm, confirmForm, copyOrderNo, callPhone, checkPermission, scanInput, itemClick, onButtonClick, sendOut, updateDelivered, updateRefuse, createTrackPod, cancelFedExPickUp, getList }; Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true }); return __returned__; } }); const _imports_0 = "/static/copy.png"; const _imports_1 = "/static/call.png"; function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) { const _component_uni_easyinput = resolveEasycom(vue.resolveDynamicComponent("uni-easyinput"), __easycom_1$1); const _component_uni_popup_message = resolveEasycom(vue.resolveDynamicComponent("uni-popup-message"), __easycom_5); const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_6); const _component_uni_drawer = resolveEasycom(vue.resolveDynamicComponent("uni-drawer"), __easycom_3); return vue.openBlock(), vue.createElementBlock("view", { class: "list" }, [ vue.createCommentVNode(' '), vue.createVNode(_component_uni_easyinput, { modelValue: $setup.searchValue, "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $setup.searchValue = $event), placeholder: "请输入单号", suffixIcon: "scan", onIconClick: $setup.scanInput }, null, 8, ["modelValue"]), (vue.openBlock(true), vue.createElementBlock( vue.Fragment, null, vue.renderList($setup.waybillDelivery, (item, i2) => { return vue.openBlock(), vue.createElementBlock("view", { class: "item", key: i2, onClick: ($event) => $setup.itemClick(item) }, [ vue.createElementVNode("view", { class: "order-no" }, [ vue.createElementVNode( "text", null, " 派送单号: " + vue.toDisplayString(item.order_no), 1 /* TEXT */ ), vue.createElementVNode("image", { onClick: ($event) => $setup.copyOrderNo(item.order_no), class: "icon", src: _imports_0, mode: "aspectFill" }, null, 8, ["onClick"]) ]), vue.createElementVNode("view", { class: "address-info" }, [ vue.createElementVNode("view", { class: "info" }, [ vue.createElementVNode("view", { class: "user" }, [ vue.createElementVNode( "text", null, vue.toDisplayString(item.address.first_name + " " + item.address.last_name) + " " + vue.toDisplayString("+" + item.address.mobile_code + " " + item.address.mobile), 1 /* TEXT */ ), vue.createElementVNode("image", { onClick: ($event) => $setup.callPhone(item.address.mobile_code + " " + item.address.mobile), class: "icon", src: _imports_1, mode: "aspectFill" }, null, 8, ["onClick"]) ]), vue.createElementVNode("view", null, [ vue.createElementVNode("text", { class: "address" }, [ vue.createElementVNode( "text", { class: "city" }, vue.toDisplayString(item.address.city), 1 /* TEXT */ ), vue.createTextVNode( " " + vue.toDisplayString(item.address.zip_code), 1 /* TEXT */ ) ]), vue.createElementVNode("image", { onClick: ($event) => $setup.copyOrderNo(item.address.zip_code), class: "icon", src: _imports_0, mode: "aspectFill" }, null, 8, ["onClick"]) ]) ]), vue.createElementVNode("view", { class: "info" }) ]), vue.createElementVNode("view"), vue.createElementVNode("view", { class: "operations" }, [ (vue.openBlock(true), vue.createElementBlock( vue.Fragment, null, vue.renderList(item.operations, (operation, i22) => { return vue.openBlock(), vue.createElementBlock("button", { key: i22, onClick: ($event) => $setup.onButtonClick(item, operation.value), type: "info", size: "mini" }, vue.toDisplayString(operation.text), 9, ["onClick"]); }), 128 /* KEYED_FRAGMENT */ )) ]) ], 8, ["onClick"]); }), 128 /* KEYED_FRAGMENT */ )), $setup.waybillDelivery.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", { key: 0, class: "is-empty" }, "暂无派送单")) : vue.createCommentVNode("v-if", true), vue.createVNode( _component_uni_popup, { ref: "messageRef", type: "message" }, { default: vue.withCtx(() => [ vue.createVNode(_component_uni_popup_message, { type: $setup.messageType, message: $setup.messageText, duration: 2e3 }, null, 8, ["type", "message"]) ]), _: 1 /* STABLE */ }, 512 /* NEED_PATCH */ ), vue.createVNode( _component_uni_drawer, { ref: "showRightRef", mode: "right", "mask-click": true }, { default: vue.withCtx(() => [ vue.createElementVNode("scroll-view", { style: { "height": "100%" }, "scroll-y": "true" }, [ vue.createElementVNode("view", { class: "button-group" }, [ vue.createElementVNode("button", { onClick: $setup.resetForm, type: "info" }, "重置"), vue.createElementVNode("button", { onClick: $setup.confirmForm, type: "primary" }, "确认") ]) ]) ]), _: 1 /* STABLE */ }, 512 /* NEED_PATCH */ ) ]); } const PagesWaybillDeliveryOrderIndex = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$5], ["__scopeId", "data-v-e43ee4da"], ["__file", "E:/HBuilderProjects/YTAPP/pages/waybillDeliveryOrder/index.vue"]]); const _sfc_main$5 = { name: "UniSegmentedControl", emits: ["clickItem"], props: { current: { type: Number, default: 0 }, values: { type: Array, default() { return []; } }, activeColor: { type: String, default: "#2979FF" }, inActiveColor: { type: String, default: "transparent" }, styleType: { type: String, default: "button" } }, data() { return { currentIndex: 0 }; }, watch: { current(val) { if (val !== this.currentIndex) { this.currentIndex = val; } } }, computed: {}, created() { this.currentIndex = this.current; }, methods: { _onClick(index) { if (this.currentIndex !== index) { this.currentIndex = index; this.$emit("clickItem", { currentIndex: index }); } } } }; function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) { return vue.openBlock(), vue.createElementBlock( "view", { class: vue.normalizeClass([[$props.styleType === "text" ? "segmented-control--text" : "segmented-control--button"], "segmented-control"]), style: vue.normalizeStyle({ borderColor: $props.styleType === "text" ? "" : $props.activeColor }) }, [ (vue.openBlock(true), vue.createElementBlock( vue.Fragment, null, vue.renderList($props.values, (item, index) => { return vue.openBlock(), vue.createElementBlock("view", { class: vue.normalizeClass([[ $props.styleType === "text" ? "" : "segmented-control__item--button", index === 0 && $props.styleType === "button" ? "segmented-control__item--button--first" : "", index === $props.values.length - 1 && $props.styleType === "button" ? "segmented-control__item--button--last" : "" ], "segmented-control__item"]), key: index, style: vue.normalizeStyle({ backgroundColor: index === $data.currentIndex && $props.styleType === "button" ? $props.activeColor : $props.styleType === "button" ? $props.inActiveColor : "transparent", borderColor: index === $data.currentIndex && $props.styleType === "text" || $props.styleType === "button" ? $props.activeColor : $props.inActiveColor }), onClick: ($event) => $options._onClick(index) }, [ vue.createElementVNode("view", null, [ vue.createElementVNode( "text", { style: vue.normalizeStyle({ color: index === $data.currentIndex ? $props.styleType === "text" ? $props.activeColor : "#fff" : $props.styleType === "text" ? "#000" : $props.activeColor }), class: vue.normalizeClass(["segmented-control__text", $props.styleType === "text" && index === $data.currentIndex ? "segmented-control__item--text" : ""]) }, vue.toDisplayString(item), 7 /* TEXT, CLASS, STYLE */ ) ]) ], 14, ["onClick"]); }), 128 /* KEYED_FRAGMENT */ )) ], 6 /* CLASS, STYLE */ ); } const __easycom_0 = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$4], ["__scopeId", "data-v-86aa1171"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.vue"]]); const _sfc_main$4 = { name: "UniTag", emits: ["click"], props: { type: { // 标签类型default、primary、success、warning、error、royal type: String, default: "default" }, size: { // 标签大小 normal, small type: String, default: "normal" }, // 标签内容 text: { type: String, default: "" }, disabled: { // 是否为禁用状态 type: [Boolean, String], default: false }, inverted: { // 是否为空心 type: [Boolean, String], default: false }, circle: { // 是否为圆角样式 type: [Boolean, String], default: false }, mark: { // 是否为标记样式 type: [Boolean, String], default: false }, customStyle: { type: String, default: "" } }, computed: { classes() { const { type, disabled, inverted, circle, mark, size, isTrue } = this; const classArr = [ "uni-tag--" + type, "uni-tag--" + size, isTrue(disabled) ? "uni-tag--disabled" : "", isTrue(inverted) ? "uni-tag--" + type + "--inverted" : "", isTrue(circle) ? "uni-tag--circle" : "", isTrue(mark) ? "uni-tag--mark" : "", // type === 'default' ? 'uni-tag--default' : 'uni-tag-text', isTrue(inverted) ? "uni-tag--inverted uni-tag-text--" + type : "", size === "small" ? "uni-tag-text--small" : "" ]; return classArr.join(" "); } }, methods: { isTrue(value) { return value === true || value === "true"; }, onClick() { if (this.isTrue(this.disabled)) return; this.$emit("click"); } } }; function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) { return $props.text ? (vue.openBlock(), vue.createElementBlock( "text", { key: 0, class: vue.normalizeClass(["uni-tag", $options.classes]), style: vue.normalizeStyle($props.customStyle), onClick: _cache[0] || (_cache[0] = (...args) => $options.onClick && $options.onClick(...args)) }, vue.toDisplayString($props.text), 7 /* TEXT, CLASS, STYLE */ )) : vue.createCommentVNode("v-if", true); } const __easycom_1 = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$3], ["__scopeId", "data-v-1f94d070"], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-tag/components/uni-tag/uni-tag.vue"]]); function pad(str, length = 2) { str += ""; while (str.length < length) { str = "0" + str; } return str.slice(-length); } const parser = { yyyy: (dateObj) => { return pad(dateObj.year, 4); }, yy: (dateObj) => { return pad(dateObj.year); }, MM: (dateObj) => { return pad(dateObj.month); }, M: (dateObj) => { return dateObj.month; }, dd: (dateObj) => { return pad(dateObj.day); }, d: (dateObj) => { return dateObj.day; }, hh: (dateObj) => { return pad(dateObj.hour); }, h: (dateObj) => { return dateObj.hour; }, mm: (dateObj) => { return pad(dateObj.minute); }, m: (dateObj) => { return dateObj.minute; }, ss: (dateObj) => { return pad(dateObj.second); }, s: (dateObj) => { return dateObj.second; }, SSS: (dateObj) => { return pad(dateObj.millisecond, 3); }, S: (dateObj) => { return dateObj.millisecond; } }; function getDate(time) { if (time instanceof Date) { return time; } switch (typeof time) { case "string": { if (time.indexOf("T") > -1) { return new Date(time); } return new Date(time.replace(/-/g, "/")); } default: return new Date(time); } } function formatDate(date, format = "yyyy/MM/dd hh:mm:ss") { if (!date && date !== 0) { return ""; } date = getDate(date); const dateObj = { year: date.getFullYear(), month: date.getMonth() + 1, day: date.getDate(), hour: date.getHours(), minute: date.getMinutes(), second: date.getSeconds(), millisecond: date.getMilliseconds() }; const tokenRegExp = /yyyy|yy|MM|M|dd|d|hh|h|mm|m|ss|s|SSS|SS|S/; let flag = true; let result = format; while (flag) { flag = false; result = result.replace(tokenRegExp, function(matched) { flag = true; return parser[matched](dateObj); }); } return result; } function friendlyDate(time, { locale = "zh", threshold = [6e4, 36e5], format = "yyyy/MM/dd hh:mm:ss" }) { if (time === "-") { return time; } if (!time && time !== 0) { return ""; } const localeText = { zh: { year: "年", month: "月", day: "天", hour: "小时", minute: "分钟", second: "秒", ago: "前", later: "后", justNow: "刚刚", soon: "马上", template: "{num}{unit}{suffix}" }, en: { year: "year", month: "month", day: "day", hour: "hour", minute: "minute", second: "second", ago: "ago", later: "later", justNow: "just now", soon: "soon", template: "{num} {unit} {suffix}" } }; const text = localeText[locale] || localeText.zh; let date = getDate(time); let ms2 = date.getTime() - Date.now(); let absMs = Math.abs(ms2); if (absMs < threshold[0]) { return ms2 < 0 ? text.justNow : text.soon; } if (absMs >= threshold[1]) { return formatDate(date, format); } let num; let unit; let suffix = text.later; if (ms2 < 0) { suffix = text.ago; ms2 = -ms2; } const seconds = Math.floor(ms2 / 1e3); const minutes = Math.floor(seconds / 60); const hours = Math.floor(minutes / 60); const days = Math.floor(hours / 24); const months = Math.floor(days / 30); const years = Math.floor(months / 12); switch (true) { case years > 0: num = years; unit = text.year; break; case months > 0: num = months; unit = text.month; break; case days > 0: num = days; unit = text.day; break; case hours > 0: num = hours; unit = text.hour; break; case minutes > 0: num = minutes; unit = text.minute; break; default: num = seconds; unit = text.second; break; } if (locale === "en") { if (num === 1) { num = "a"; } else { unit += "s"; } } return text.template.replace(/{\s*num\s*}/g, num + "").replace(/{\s*unit\s*}/g, unit).replace( /{\s*suffix\s*}/g, suffix ); } const _sfc_main$3 = { name: "uniDateformat", props: { date: { type: [Object, String, Number], default() { return "-"; } }, locale: { type: String, default: "zh" }, threshold: { type: Array, default() { return [0, 0]; } }, format: { type: String, default: "yyyy/MM/dd hh:mm:ss" }, // refreshRate使用不当可能导致性能问题,谨慎使用 refreshRate: { type: [Number, String], default: 0 } }, data() { return { refreshMark: 0 }; }, computed: { dateShow() { this.refreshMark; return friendlyDate(this.date, { locale: this.locale, threshold: this.threshold, format: this.format }); } }, watch: { refreshRate: { handler() { this.setAutoRefresh(); }, immediate: true } }, methods: { refresh() { this.refreshMark++; }, setAutoRefresh() { clearInterval(this.refreshInterval); if (this.refreshRate) { this.refreshInterval = setInterval(() => { this.refresh(); }, parseInt(this.refreshRate)); } } } }; function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) { return vue.openBlock(), vue.createElementBlock( "text", null, vue.toDisplayString($options.dateShow), 1 /* TEXT */ ); } const __easycom_2 = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$2], ["__file", "E:/HBuilderProjects/YTAPP/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue"]]); const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({ __name: "orderInfo", setup(__props, { expose: __expose }) { __expose(); const current = vue.ref(0); const items = vue.ref(["基本信息", "运单详情"]); const loading = vue.ref(false); const token = vue.ref(); const waybillDelivery = vue.ref([]); const messageType = vue.ref(); const messageText = vue.ref(); const messageRef = vue.ref(); const item = vue.ref(); const deliveryOrderOptions = vue.ref({}); const delivery_type = vue.ref({ "1": "英途派送", "2": "第三方物流" }); onLoad((query) => { token.value = uni.getStorageSync("token"); item.value = uni.getStorageSync("selectItem"); deliveryOrderOptions.value = uni.getStorageSync("deliveryOrderOptions"); formatAppLog("log", "at pages/waybillDeliveryOrder/orderInfo.vue:128", item.value); }); const onClickItem = (e2) => { if (current.value != e2.currentIndex) { current.value = e2.currentIndex; } }; const copyString = (str) => { uni.setClipboardData({ data: str, success: function() { uni.showToast({ title: "复制成功", icon: "success", duration: 2e3 }); }, fail: function() { formatAppLog("log", "at pages/waybillDeliveryOrder/orderInfo.vue:149", "复制失败"); } }); }; const __returned__ = { current, items, loading, token, waybillDelivery, messageType, messageText, messageRef, item, deliveryOrderOptions, delivery_type, onClickItem, copyString }; Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true }); return __returned__; } }); function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) { const _component_uni_segmented_control = resolveEasycom(vue.resolveDynamicComponent("uni-segmented-control"), __easycom_0); const _component_uni_tag = resolveEasycom(vue.resolveDynamicComponent("uni-tag"), __easycom_1); const _component_uni_dateformat = resolveEasycom(vue.resolveDynamicComponent("uni-dateformat"), __easycom_2); const _component_uni_popup_message = resolveEasycom(vue.resolveDynamicComponent("uni-popup-message"), __easycom_5); const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_6); return vue.openBlock(), vue.createElementBlock("view", { class: "info" }, [ vue.createVNode(_component_uni_segmented_control, { current: $setup.current, values: $setup.items, onClickItem: $setup.onClickItem, styleType: "text", activeColor: "#007aff" }, null, 8, ["current", "values"]), vue.createElementVNode("view", { class: "content" }, [ vue.withDirectives(vue.createElementVNode( "view", null, [ vue.createElementVNode("view", { class: "order-no" }, [ vue.createElementVNode("view", null, [ vue.createElementVNode( "text", null, "派送单号: " + vue.toDisplayString($setup.item.order_no), 1 /* TEXT */ ), vue.createElementVNode("image", { onClick: _cache[0] || (_cache[0] = ($event) => $setup.copyString($setup.item.order_no)), class: "icon", src: _imports_0, mode: "aspectFill" }) ]), vue.createVNode(_component_uni_tag, { text: $setup.item.status_text, type: "primary", circle: "" }, null, 8, ["text"]) ]), vue.createElementVNode("view", { class: "box-card" }, [ vue.createElementVNode("view", { class: "label-icon" }, [ vue.createElementVNode("text", { class: "label-title" }, "地址信息") ]), vue.createElementVNode("view", { class: "label-content" }, [ vue.createElementVNode( "text", null, vue.toDisplayString($setup.item.address.first_name + " " + $setup.item.address.last_name), 1 /* TEXT */ ), $setup.item.address.mobile ? (vue.openBlock(), vue.createElementBlock("text", { key: 0 }, [ vue.createTextVNode( " +" + vue.toDisplayString($setup.item.address.mobile_code + " " + $setup.item.address.mobile) + " ", 1 /* TEXT */ ), vue.createElementVNode("br") ])) : vue.createCommentVNode("v-if", true), $setup.item.address.email ? (vue.openBlock(), vue.createElementBlock("text", { key: 1 }, [ vue.createTextVNode( vue.toDisplayString($setup.item.address.email) + " ", 1 /* TEXT */ ), vue.createElementVNode("br") ])) : vue.createCommentVNode("v-if", true), vue.createElementVNode("text", null, [ vue.createTextVNode( vue.toDisplayString($setup.item.address.address_line_1) + " ", 1 /* TEXT */ ), vue.createElementVNode("br") ]), $setup.item.address.address_line_2 ? (vue.openBlock(), vue.createElementBlock("text", { key: 2 }, [ vue.createTextVNode( vue.toDisplayString($setup.item.address.address_line_2) + " ", 1 /* TEXT */ ), vue.createElementVNode("br") ])) : vue.createCommentVNode("v-if", true), $setup.item.address.address_line_3 ? (vue.openBlock(), vue.createElementBlock("text", { key: 3 }, [ vue.createTextVNode( vue.toDisplayString($setup.item.address.address_line_3) + " ", 1 /* TEXT */ ), vue.createElementVNode("br") ])) : vue.createCommentVNode("v-if", true), vue.createElementVNode("text", null, [ vue.createTextVNode( vue.toDisplayString($setup.item.address.city + " " + $setup.item.address.district) + " ", 1 /* TEXT */ ), vue.createElementVNode("br") ]), vue.createElementVNode("text", null, [ vue.createTextVNode( vue.toDisplayString($setup.item.address.province) + " ", 1 /* TEXT */ ), vue.createElementVNode("br") ]), vue.createElementVNode("text", null, [ vue.createTextVNode( vue.toDisplayString($setup.item.address.zip_code) + " ", 1 /* TEXT */ ), vue.createElementVNode("br") ]) ]) ]), vue.createElementVNode("view", { class: "box-card" }, [ vue.createElementVNode("text", null, [ vue.createTextVNode("客户派送日期: "), $setup.item.delivery_date ? (vue.openBlock(), vue.createBlock(_component_uni_dateformat, { key: 0, date: $setup.item.delivery_date, format: "yyyy-MM-dd" }, null, 8, ["date"])) : (vue.openBlock(), vue.createElementBlock("text", { key: 1 }, "无")), vue.createElementVNode("br") ]), vue.createElementVNode( "text", null, "备注: " + vue.toDisplayString($setup.item.remark || "无"), 1 /* TEXT */ ) ]), vue.createElementVNode("view", { class: "box-card" }, [ vue.createElementVNode("view", { class: "label-icon" }, [ vue.createElementVNode("text", { class: "label-title" }, "物流信息") ]), vue.createElementVNode("view", { class: "label-content" }, [ vue.createElementVNode("text", null, [ vue.createTextVNode("派送渠道类型: "), vue.createVNode(_component_uni_tag, { text: $setup.delivery_type[$setup.item.delivery_type], type: "primary" }, null, 8, ["text"]), vue.createElementVNode("br") ]), Number($setup.item.delivery_type) === 1 ? (vue.openBlock(), vue.createElementBlock("text", { key: 0 }, [ vue.createTextVNode( "司机: " + vue.toDisplayString($setup.deliveryOrderOptions["driver_id"][$setup.item.driver_id] || "无") + " ", 1 /* TEXT */ ), vue.createElementVNode("br") ])) : vue.createCommentVNode("v-if", true), Number($setup.item.delivery_type) === 2 ? (vue.openBlock(), vue.createElementBlock("text", { key: 1 }, [ vue.createTextVNode("快递公司: "), vue.createVNode(_component_uni_tag, { text: $setup.item.express.name || "无", type: "success", size: "small", circle: "" }, null, 8, ["text"]), vue.createElementVNode("br") ])) : vue.createCommentVNode("v-if", true), vue.createElementVNode("text", null, [ vue.createTextVNode( "物流单号: " + vue.toDisplayString($setup.item.express_no || "无") + " ", 1 /* TEXT */ ), vue.createElementVNode("br") ]), vue.createElementVNode( "text", null, "追踪单号: " + vue.toDisplayString($setup.item.express_tracking_number || "无"), 1 /* TEXT */ ) ]) ]) ], 512 /* NEED_PATCH */ ), [ [vue.vShow, $setup.current === 0] ]), vue.withDirectives(vue.createElementVNode( "view", null, " 选项卡2的内容 ", 512 /* NEED_PATCH */ ), [ [vue.vShow, $setup.current === 1] ]) ]), vue.createVNode( _component_uni_popup, { ref: "messageRef", type: "message" }, { default: vue.withCtx(() => [ vue.createVNode(_component_uni_popup_message, { type: $setup.messageType, message: $setup.messageText, duration: 2e3 }, null, 8, ["type", "message"]) ]), _: 1 /* STABLE */ }, 512 /* NEED_PATCH */ ) ]); } const PagesWaybillDeliveryOrderOrderInfo = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$1], ["__scopeId", "data-v-a28459fe"], ["__file", "E:/HBuilderProjects/YTAPP/pages/waybillDeliveryOrder/orderInfo.vue"]]); const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({ __name: "index", setup(__props, { expose: __expose }) { __expose(); const token = vue.ref(); const loading = vue.ref(false); const hidePage = vue.ref(false); const focusType = vue.ref(true); const selectType = vue.ref(1); const printType = vue.ref([ { text: "打印尾程面单", value: 1 }, { text: "打印客户联(详细)", value: 2 }, { text: "打印客户联(简单)", value: 3 } ]); const printerDialog = vue.ref(); const subLoading = vue.ref(false); const printerList = vue.ref([]); const printers = vue.ref([]); const downloadFile = vue.ref([]); const sendToPeinter = vue.ref([1]); const selectPrinter = vue.ref(0); const printLogHistory = vue.ref([]); const messageRef = vue.ref(); const messageType = vue.ref(); const messageText = vue.ref(); let st2; const valiFormData = vue.ref({ order_code: "" }); const rules = vue.reactive({ order_code: { rules: [ { required: true, errorMessage: "单据编号不能为空" } ] } }); const checkPermission = async () => { let status = permission.isIOS ? await permission.requestIOS("camera") : await permission.requestAndroid("android.permission.CAMERA"); if (status === null || status === 1) { status = 1; } else { uni.showModal({ content: "Camera permission required", confirmText: "Setting", success: function(res) { if (res.confirm) { permission.gotoAppSetting(); } } }); } return status; }; const scanInput = async () => { let status = await checkPermission(); if (status !== 1) { return; } uni.scanCode({ success: (res) => { valiFormData.value.order_code = res.result; onsubmit(); }, fail: (err) => { } }); }; const reset = () => { loading.value = false; valiFormData.value.order_code = ""; }; const setfocus = () => { if (hidePage.value) { return; } focusType.value = false; vue.nextTick(() => { focusType.value = true; }); }; const close = () => { printerDialog.value.close(); st2 = setTimeout(() => { reset(); st2 && clearTimeout(st2); }, 700); }; const sendToPeinterFun = (res) => { if (res.detail.value.length === 0) { selectPrinter.value = 0; } else { selectPrinter.value = printers.value[0].value; } }; const printConfirm = () => { subLoading.value = true; const url = selectType.value === 1 ? printWaybillLabelURL : printCustomerLabelURL; let data = { order_no: valiFormData.value.order_code, printer_code: selectPrinter.value }; let type = "尾程面单打印"; if (selectType.value === 2) { data.style = "detail"; type = "打印客户联(详细)"; } if (selectType.value === 3) { data.style = "simple"; type = "打印客户联(简单)"; } uni.request({ url, method: "POST", header: { batoken: token.value }, data, success: (res) => { subLoading.value = false; formatAppLog("log", "at pages/printer/index.vue:233", "打印成功", res); messageType.value = res.data.code ? "success" : "error"; messageText.value = res.data.msg; messageRef.value.open(); const historyItem = { order_code: valiFormData.value.order_code, createTime: /* @__PURE__ */ new Date(), type, status: res.data.code }; printLogHistory.value.unshift(historyItem); uni.setStorageSync("printLogHistory", printLogHistory.value); getHistory(); close(); }, fail: (err) => { subLoading.value = false; formatAppLog("log", "at pages/printer/index.vue:251", "打印失败", err); messageType.value = "error"; messageText.value = "打印失败"; messageRef.value.open(); const historyItem = { order_code: valiFormData.value.order_code, createTime: /* @__PURE__ */ new Date(), type, status: false }; printLogHistory.value.unshift(historyItem); uni.setStorageSync("printLogHistory", printLogHistory.value); getHistory(); close(); } }); }; const getPrinterList = () => { uni.request({ url: getPrinterListURL, method: "GET", header: { batoken: token.value }, success: (res) => { if (res.data.code === 1) { printerList.value = res.data.data.printers; printers.value = Object.values(printerList.value).map((item) => { return { text: item.name, value: item.value }; }); } }, fail(e2) { formatAppLog("log", "at pages/printer/index.vue:288", "fail--", e2); } }); }; const onsubmit = () => { if (valiFormData.value.order_code) { loading.value = true; st2 && clearTimeout(st2); selectPrinter.value = sendToPeinter.value.length > 0 ? printers.value[0].value : 0; printerDialog.value.open(); loading.value = false; } else { messageType.value = "error"; messageText.value = "请填写运单号"; messageRef.value.open(); } }; const getHistory = () => { printLogHistory.value = uni.getStorageSync("printLogHistory") || []; }; const keypress = (e2) => { formatAppLog("log", "at pages/printer/index.vue:311", e2, "按键码"); if (e2.keyCode === 102 || e2.keyCode === 103 || e2.keyCode === 104) ; if (e2.keyCode == 66) { onsubmit(); } }; onLoad(() => { plus.key.addEventListener("keyup", keypress); }); onUnload(() => { plus.key.removeEventListener("keyup", keypress); }); onHide(() => { hidePage.value = true; plus.key.removeEventListener("keyup", keypress); }); onBackPress(() => { plus.key.removeEventListener("keyup", keypress); }); onShow(() => { token.value = uni.getStorageSync("token"); hidePage.value = false; getHistory(); getPrinterList(); }); onNavigationBarButtonTap((event) => { if (event.index === 0) { uni.navigateTo({ url: "/pages/warehouseScan/warehouseLog" }); } }); const __returned__ = { token, loading, hidePage, focusType, selectType, printType, printerDialog, subLoading, printerList, printers, downloadFile, sendToPeinter, selectPrinter, printLogHistory, messageRef, messageType, messageText, get st() { return st2; }, set st(v2) { st2 = v2; }, valiFormData, rules, checkPermission, scanInput, reset, setfocus, close, sendToPeinterFun, printConfirm, getPrinterList, onsubmit, getHistory, keypress }; Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true }); return __returned__; } }); function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { const _component_uni_data_checkbox = resolveEasycom(vue.resolveDynamicComponent("uni-data-checkbox"), __easycom_0$4); const _component_uni_easyinput = resolveEasycom(vue.resolveDynamicComponent("uni-easyinput"), __easycom_1$1); const _component_uni_forms_item = resolveEasycom(vue.resolveDynamicComponent("uni-forms-item"), __easycom_2$1); const _component_uni_forms = resolveEasycom(vue.resolveDynamicComponent("uni-forms"), __easycom_3$2); const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_4); const _component_uni_popup_message = resolveEasycom(vue.resolveDynamicComponent("uni-popup-message"), __easycom_5); const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_6); return vue.openBlock(), vue.createElementBlock("view", { class: "container" }, [ vue.createElementVNode("view", { class: "checkbox" }, [ vue.createVNode(_component_uni_data_checkbox, { modelValue: $setup.selectType, "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $setup.selectType = $event), localdata: $setup.printType }, null, 8, ["modelValue", "localdata"]) ]), vue.createVNode(_component_uni_forms, { ref: "valiForm", "label-align": "right", "label-width": 80, rules: $setup.rules, modelValue: $setup.valiFormData }, { default: vue.withCtx(() => [ vue.createVNode(_component_uni_forms_item, { label: "单据编号", required: "", name: "order_code" }, { default: vue.withCtx(() => [ vue.createVNode(_component_uni_easyinput, { modelValue: $setup.valiFormData.order_code, "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $setup.valiFormData.order_code = $event), placeholder: "请输入单据编号", suffixIcon: "scan", focus: $setup.focusType, onIconClick: $setup.scanInput, onBlur: $setup.setfocus, onConfirm: $setup.onsubmit }, null, 8, ["modelValue", "focus"]) ]), _: 1 /* STABLE */ }) ]), _: 1 /* STABLE */ }, 8, ["rules", "modelValue"]), vue.createElementVNode("view", { class: "button-group" }, [ vue.createElementVNode("button", { type: "info", onClick: $setup.reset }, "重置"), vue.createElementVNode("button", { type: "primary", onClick: $setup.onsubmit, loading: $setup.loading }, [ !$setup.loading ? (vue.openBlock(), vue.createBlock(_component_uni_icons, { key: 0, type: "checkmarkempty", size: "18", color: "white" })) : vue.createCommentVNode("v-if", true), vue.createTextVNode(" 打印 ") ], 8, ["loading"]) ]), $setup.printLogHistory.length > 0 ? (vue.openBlock(), vue.createElementBlock("view", { key: 0, class: "history" }, [ vue.createElementVNode("text", { class: "title" }, "记录(最近5条)") ])) : vue.createCommentVNode("v-if", true), vue.createElementVNode("view", { class: "history" }, [ (vue.openBlock(true), vue.createElementBlock( vue.Fragment, null, vue.renderList($setup.printLogHistory.slice(0, 5), (item, i2) => { return vue.openBlock(), vue.createElementBlock("view", { class: "item", key: i2 }, [ vue.createElementVNode( "text", { class: "code", style: vue.normalizeStyle({ color: item.status ? "green" : "#666" }) }, vue.toDisplayString(item.type) + " " + vue.toDisplayString(item.order_code), 5 /* TEXT, STYLE */ ), item.status ? (vue.openBlock(), vue.createBlock(_component_uni_icons, { key: 0, type: "checkmarkempty", class: "status", size: "16", color: "green" })) : (vue.openBlock(), vue.createElementBlock("text", { key: 1, class: "status fail" }, "F")), vue.createElementVNode( "text", { style: { "margin-left": "10rpx", "font-weight": "300" } }, vue.toDisplayString("\r\n" + item.createTime), 1 /* TEXT */ ) ]); }), 128 /* KEYED_FRAGMENT */ )) ]), vue.createVNode( _component_uni_popup, { ref: "messageRef", type: "message" }, { default: vue.withCtx(() => [ vue.createVNode(_component_uni_popup_message, { type: $setup.messageType, message: $setup.messageText, duration: 2e3 }, null, 8, ["type", "message"]) ]), _: 1 /* STABLE */ }, 512 /* NEED_PATCH */ ), vue.createVNode( _component_uni_popup, { ref: "printerDialog", type: "dialog", "is-mask-click": false }, { default: vue.withCtx(() => [ vue.createElementVNode("view", { style: { "width": "90%", "margin": "0 auto", "min-height": "250px", "background-color": "#fff", "border-radius": "5px" } }, [ vue.createElementVNode("view", { class: "", style: { "font-size": "20px", "border-bottom": "1px solid #e1e1e1", "padding": "15px 10px" } }, [ vue.createElementVNode("view", null, [ vue.createElementVNode("view", { style: { "margin-bottom": "20px" } }, [ vue.createElementVNode("text", null, "打印尾程面单") ]), vue.createElementVNode("view", null, [ $setup.printerList ? (vue.openBlock(), vue.createElementBlock("view", { key: 0 }, [ vue.createElementVNode("view", null, [ vue.createVNode(_component_uni_data_checkbox, { multiple: "", modelValue: $setup.sendToPeinter, "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $setup.sendToPeinter = $event), localdata: [ { text: "发送到标签打印机打印", value: 1 } ], onChange: $setup.sendToPeinterFun }, { default: vue.withCtx(() => [ vue.createTextVNode(" > ") ]), _: 1 /* STABLE */ }, 8, ["modelValue"]), vue.createVNode(_component_uni_data_checkbox, { disabled: $setup.sendToPeinter.length === 0, modelValue: $setup.selectPrinter, "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => $setup.selectPrinter = $event), localdata: $setup.printers }, null, 8, ["disabled", "modelValue", "localdata"]) ]) ])) : vue.createCommentVNode("v-if", true) ]) ]), vue.createElementVNode("view", { style: { "text-align": "center", "position": "absolute", "bottom": "10px", "width": "90%", "display": "flex", "margin": "0 auto", "left": "0", "right": "0" } }, [ vue.createElementVNode("button", { onClick: $setup.close, style: { "width": "35%" } }, "关闭"), vue.createElementVNode("button", { onClick: $setup.printConfirm, "hover-stay-time": 500, loading: $setup.subLoading, disabled: $setup.sendToPeinter.length === 0 || $setup.subLoading, class: "my-bt-bg", style: { "width": "35%" } }, " 打印 ", 8, ["loading", "disabled"]) ]) ]) ]) ]), _: 1 /* STABLE */ }, 512 /* NEED_PATCH */ ) ]); } const PagesPrinterIndex = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render], ["__scopeId", "data-v-b2c0c306"], ["__file", "E:/HBuilderProjects/YTAPP/pages/printer/index.vue"]]); __definePage("pages/home/index", PagesHomeIndex); __definePage("pages/instock/index", PagesInstockIndex); __definePage("pages/instock/instockLog", PagesInstockInstockLog); __definePage("pages/profile/index", PagesProfileIndex); __definePage("pages/login/index", PagesLoginIndex); __definePage("pages/order/index", PagesOrderIndex); __definePage("pages/scanLotno/index", PagesScanLotnoIndex); __definePage("pages/scanLotno/lotnoLog", PagesScanLotnoLotnoLog); __definePage("pages/scanLotno/waybillsList", PagesScanLotnoWaybillsList); __definePage("pages/warehouseScan/index", PagesWarehouseScanIndex); __definePage("pages/warehouseScan/warehouseLog", PagesWarehouseScanWarehouseLog); __definePage("pages/waybillNo/index", PagesWaybillNoIndex); __definePage("pages/waybillNo/waybillNoLog", PagesWaybillNoWaybillNoLog); __definePage("pages/waybillDeliveryOrder/index", PagesWaybillDeliveryOrderIndex); __definePage("pages/waybillDeliveryOrder/orderInfo", PagesWaybillDeliveryOrderOrderInfo); __definePage("pages/printer/index", PagesPrinterIndex); const _sfc_main = { onLaunch: function() { formatAppLog("log", "at App.vue:4", "App Launch"); }, onShow: function() { formatAppLog("log", "at App.vue:7", "App Show"); }, onHide: function() { formatAppLog("log", "at App.vue:10", "App Hide"); } }; const App = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "E:/HBuilderProjects/YTAPP/App.vue"]]); function createApp() { const app = vue.createVueApp(App); return { app }; } const { app: __app__, Vuex: __Vuex__, Pinia: __Pinia__ } = createApp(); uni.Vuex = __Vuex__; uni.Pinia = __Pinia__; __app__.provide("__globalStyles", __uniConfig.styles); __app__._component.mpType = "app"; __app__._component.render = () => { }; __app__.mount("#app"); })(Vue);