163 lines
4.5 KiB
JavaScript
163 lines
4.5 KiB
JavaScript
// node_modules/@vue/devtools-api/lib/esm/env.js
|
|
function getDevtoolsGlobalHook() {
|
|
return getTarget().__VUE_DEVTOOLS_GLOBAL_HOOK__;
|
|
}
|
|
function getTarget() {
|
|
return typeof navigator !== "undefined" && typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {};
|
|
}
|
|
var isProxyAvailable = typeof Proxy === "function";
|
|
|
|
// node_modules/@vue/devtools-api/lib/esm/const.js
|
|
var HOOK_SETUP = "devtools-plugin:setup";
|
|
var HOOK_PLUGIN_SETTINGS_SET = "plugin:settings:set";
|
|
|
|
// node_modules/@vue/devtools-api/lib/esm/time.js
|
|
var supported;
|
|
var 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 global !== "undefined" && ((_a = global.perf_hooks) === null || _a === void 0 ? void 0 : _a.performance)) {
|
|
supported = true;
|
|
perf = global.perf_hooks.performance;
|
|
} else {
|
|
supported = false;
|
|
}
|
|
return supported;
|
|
}
|
|
function now() {
|
|
return isPerformanceSupported() ? perf.now() : Date.now();
|
|
}
|
|
|
|
// node_modules/@vue/devtools-api/lib/esm/proxy.js
|
|
var ApiProxy = class {
|
|
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 (e) {
|
|
}
|
|
this.fallbacks = {
|
|
getSettings() {
|
|
return currentSettings;
|
|
},
|
|
setSettings(value) {
|
|
try {
|
|
localStorage.setItem(localSettingsSaveId, JSON.stringify(value));
|
|
} catch (e) {
|
|
}
|
|
currentSettings = value;
|
|
},
|
|
now() {
|
|
return now();
|
|
}
|
|
};
|
|
if (hook) {
|
|
hook.on(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));
|
|
}
|
|
}
|
|
};
|
|
|
|
// node_modules/@vue/devtools-api/lib/esm/index.js
|
|
function setupDevtoolsPlugin(pluginDescriptor, setupFn) {
|
|
const descriptor = pluginDescriptor;
|
|
const target = getTarget();
|
|
const hook = getDevtoolsGlobalHook();
|
|
const enableProxy = isProxyAvailable && descriptor.enableEarlyProxy;
|
|
if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) {
|
|
hook.emit(HOOK_SETUP, pluginDescriptor, setupFn);
|
|
} else {
|
|
const proxy = enableProxy ? new 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);
|
|
}
|
|
}
|
|
export {
|
|
isPerformanceSupported,
|
|
now,
|
|
setupDevtoolsPlugin
|
|
};
|
|
//# sourceMappingURL=vitepress___@vue_devtools-api.js.map
|