diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..46f7c67 --- /dev/null +++ b/.gitignore @@ -0,0 +1,26 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +.DS_Store +coverage +*.local + +docs/.vuepress/.cache +docs/.vuepress/.temp + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000..8fd9f27 --- /dev/null +++ b/.npmignore @@ -0,0 +1,24 @@ +# 只有编译后的 dist 目录、package.json、README.md是需要被发布的 +# 忽略目录 +.DS_Store +.vscode/ +node_modules +packages/ +public/ +src/ +docs/ + +# 忽略指定文件 +.eslintrc.cjs +.gitignore +.npmignore +.npmrc +.prettierrc.json +components.d.ts +env.d.ts +index.html +pnpm-lock.yaml +stats.html +tsconfig.config.json +tsconfig.json +vite.config.ts diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..c0a6e5a --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..70714cc --- /dev/null +++ b/README.md @@ -0,0 +1,57 @@ +# Q UI + +Q UI 是一套基于 `Vue3` + `TypeScript` 开发的 UI 组件库。 + +总结前端 UI 组件库和介绍文档搭建的经验,同时封装一些项目中常用的组件,提高编码效率。 + +## 特性 + +本组件库的实现尽量不采用第三方库,主要提供 **按钮、** 等简洁易用的组件。 + +本组件库主要用于个人学习交流使用,不可用于生产环境。[源代码](https://github.com/jqw755/q-ui) 。 + +## 安装使用 + +```bash +pnpm i @jqw755/q-ui +# or +npm install @jqw755/q-ui +# or +yarn add @jqw755/q-ui +``` + +Import and register component + +**Global** + +```ts +import { createApp } from "vue" +import App from "./App.vue" + +import QUI from "@jqw755/q-ui" +import "@jqw755/q-ui/css" + +const app = createApp(App) +app.use(QUI) +``` + +**Local** + +```vue + +``` + +## Components + +| Component name | Descriptions | +| -------------- | ------------ | +| QBreadcrumb | 面包屑 | +| QButton | 按钮 | +| QSelect | 下拉菜单 | + +**Global** + +[CSDN](https://blog.csdn.net/qq_21473443) diff --git a/dist/favicon.ico b/dist/favicon.ico new file mode 100644 index 0000000..df36fcf Binary files /dev/null and b/dist/favicon.ico differ diff --git a/dist/q-ui.js b/dist/q-ui.js new file mode 100644 index 0000000..2b93dc9 --- /dev/null +++ b/dist/q-ui.js @@ -0,0 +1,456 @@ +import { defineComponent, computed, openBlock, createElementBlock, normalizeClass, unref, createCommentVNode, renderSlot, createTextVNode, toDisplayString, ref, watchEffect, normalizeStyle, createElementVNode, withModifiers, createVNode, Transition, withCtx, withDirectives, Fragment, renderList, vShow, pushScopeId, popScopeId } from "vue"; +const index = ""; +function dateFormat(time = Date.now(), fmt = "yyyy-MM-dd hh:mm:ss") { + let date = new Date(time); + let o = { + "M+": date.getMonth() + 1, + //月份 + "d+": date.getDate(), + //日 + "h+": date.getHours(), + //小时 + "m+": date.getMinutes(), + //分 + "s+": date.getSeconds(), + //秒 + "q+": Math.floor((date.getMonth() + 3) / 3), + //季度 + S: date.getMilliseconds() + //毫秒 + }; + if (/(y+)/.test(fmt)) + fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length)); + for (let k in o) { + if (new RegExp("(" + k + ")").test(fmt)) { + fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)); + } + } + return fmt; +} +function throttle(fn, delay = 300) { + let timer; + return function() { + if (timer) { + return; + } + timer = setTimeout(() => { + fn(); + timer = null; + }, delay); + }; +} +function debounce(fn, delay = 300) { + let timer; + return function() { + if (timer) { + clearTimeout(timer); + } + timer = setTimeout(() => { + fn(); + timer = null; + }, delay); + }; +} +function copyText(text) { + return new Promise((resolve) => { + const copyInput = document.createElement("input"); + copyInput.value = text; + document.body.appendChild(copyInput); + copyInput.select(); + document.execCommand("copy"); + copyInput.remove(); + resolve(true); + }); +} +function isArrayRepeat(arr) { + var hash = {}; + for (var i in arr) { + if (hash[arr[i]]) { + return true; + } + hash[arr[i]] = true; + } + return false; +} +function downloadFile(url, name) { + var fileName = ""; + if (name) { + fileName = name; + } else { + const res = url.split("?")[0].split("/"); + fileName = res[res.length - 1]; + } + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, true); + xhr.responseType = "blob"; + xhr.onload = function() { + if (xhr.status === 200) { + const blob = xhr.response; + const link = document.createElement("a"); + const body = document.querySelector("body"); + link.href = window.URL.createObjectURL(blob); + link.download = fileName; + link.style.display = "none"; + body == null ? void 0 : body.appendChild(link); + link.click(); + body == null ? void 0 : body.removeChild(link); + window.URL.revokeObjectURL(link.href); + } + }; + xhr.send(); +} +const _hoisted_1$2 = { + key: 0, + class: "q-loadingIndicator" +}; +const __default__$2 = { + name: "QButton" +}; +const _sfc_main$2 = /* @__PURE__ */ defineComponent({ + ...__default__$2, + props: { + type: { + type: String, + default: "default" + }, + dashed: { + type: Boolean, + default: false + }, + size: { + type: String, + default: "default" + }, + round: { + type: Boolean, + default: false + }, + disabled: { + type: Boolean, + default: false + }, + loading: { + type: Boolean, + default: false + } + }, + setup(__props) { + const props = __props; + const { type, dashed, size, round, disabled, loading } = props; + const classes = computed(() => { + return { + [`q-type-${type}`]: type, + [`q-type-dashed`]: dashed, + [`q-size-${size}`]: size, + [`is-round`]: round, + [`is-disabled`]: disabled || loading, + ["is-loading"]: loading + }; + }); + return (_ctx, _cache) => { + return openBlock(), createElementBlock("button", { + class: normalizeClass(["q-button", classes.value]) + }, [ + unref(loading) ? (openBlock(), createElementBlock("span", _hoisted_1$2)) : createCommentVNode("", true), + renderSlot(_ctx.$slots, "default", {}, () => [ + createTextVNode(toDisplayString(unref(type)), 1) + ], true) + ], 2); + }; + } +}); +const index_vue_vue_type_style_index_0_scoped_4eae179c_lang = ""; +const _export_sfc = (sfc, props) => { + const target = sfc.__vccOpts || sfc; + for (const [key, val] of props) { + target[key] = val; + } + return target; +}; +const QButton = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-4eae179c"]]); +QButton.install = (app) => { + app.component(QButton.__name, QButton); +}; +const _withScopeId$1 = (n) => (pushScopeId("data-v-3b126f0b"), n = n(), popScopeId(), n); +const _hoisted_1$1 = ["title"]; +const _hoisted_2$1 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createElementVNode("path", { d: "M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z" }, null, -1)); +const _hoisted_3$1 = [ + _hoisted_2$1 +]; +const _hoisted_4$1 = ["onClick"]; +const _hoisted_5$1 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createElementVNode("path", { d: "M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z" }, null, -1)); +const _hoisted_6$1 = [ + _hoisted_5$1 +]; +const _hoisted_7 = ["title", "onMouseenter", "onClick"]; +const __default__$1 = { + name: "QSelect" +}; +const _sfc_main$1 = /* @__PURE__ */ defineComponent({ + ...__default__$1, + props: { + options: { default: () => [] }, + label: { default: "label" }, + value: { default: "value" }, + placeholder: { default: "请选择" }, + disabled: { type: Boolean, default: false }, + allowClear: { type: Boolean, default: false }, + width: { default: 120 }, + height: { default: 32 }, + maxDisplay: { default: 6 }, + modelValue: { default: null } + }, + emits: ["update:modelValue", "change"], + setup(__props, { emit: emits }) { + const props = __props; + const selectedName = ref(); + const hoverValue = ref(); + const showOptions = ref(false); + const activeBlur = ref(true); + const showClose = ref(false); + const select = ref(); + watchEffect(() => { + initSelector(); + }); + function initSelector() { + if (props.modelValue) { + const target = props.options.find((option) => option[props.value] === props.modelValue); + if (target) { + selectedName.value = target[props.label]; + hoverValue.value = target[props.value]; + } else { + selectedName.value = props.modelValue; + hoverValue.value = null; + } + } else { + selectedName.value = null; + hoverValue.value = null; + } + } + function onBlur() { + if (showOptions.value) { + showOptions.value = false; + } + } + function onInputEnter() { + if (props.allowClear && selectedName.value) { + showClose.value = true; + } + } + function onInputLeave() { + if (props.allowClear && showClose.value) { + showClose.value = false; + } + } + function onHover(value) { + hoverValue.value = value; + } + function onEnter() { + activeBlur.value = false; + } + function onLeave() { + hoverValue.value = null; + activeBlur.value = true; + select.value.focus(); + } + function openSelect() { + showOptions.value = !showOptions.value; + if (!hoverValue.value && selectedName.value) { + const target = props.options.find((option) => option[props.label] === selectedName.value); + hoverValue.value = target ? target[props.value] : null; + } + } + function onClear() { + showClose.value = false; + selectedName.value = null; + hoverValue.value = null; + emits("update:modelValue"); + emits("change"); + } + function onChange(value, label, index2) { + if (props.modelValue !== value) { + selectedName.value = label; + hoverValue.value = value; + emits("update:modelValue", value); + emits("change", value, label, index2); + } + showOptions.value = false; + } + return (_ctx, _cache) => { + return openBlock(), createElementBlock("div", { + class: "m-select", + style: normalizeStyle(`height: ${_ctx.height}px;`) + }, [ + createElementVNode("div", { + class: normalizeClass(["m-select-wrap", { hover: !_ctx.disabled, focus: showOptions.value, disabled: _ctx.disabled }]), + style: normalizeStyle(`width: ${_ctx.width}px; height: ${_ctx.height}px;`), + tabindex: "0", + ref_key: "select", + ref: select, + onMouseenter: onInputEnter, + onMouseleave: onInputLeave, + onBlur: _cache[0] || (_cache[0] = ($event) => activeBlur.value && !_ctx.disabled ? onBlur() : () => false), + onClick: _cache[1] || (_cache[1] = ($event) => _ctx.disabled ? () => false : openSelect()) + }, [ + createElementVNode("div", { + class: normalizeClass(["u-select-input", { placeholder: !selectedName.value }]), + style: normalizeStyle(`line-height: ${_ctx.height - 2}px;`), + title: selectedName.value + }, toDisplayString(selectedName.value || _ctx.placeholder), 15, _hoisted_1$1), + (openBlock(), createElementBlock("svg", { + class: normalizeClass(["triangle", { rotate: showOptions.value, show: !showClose.value }]), + viewBox: "64 64 896 896", + "data-icon": "down", + "aria-hidden": "true", + focusable: "false" + }, _hoisted_3$1, 2)), + (openBlock(), createElementBlock("svg", { + onClick: withModifiers(onClear, ["stop"]), + class: normalizeClass(["close", { show: showClose.value }]), + focusable: "false", + "data-icon": "close-circle", + "aria-hidden": "true", + viewBox: "64 64 896 896" + }, _hoisted_6$1, 10, _hoisted_4$1)) + ], 38), + createVNode(Transition, { name: "fade" }, { + default: withCtx(() => [ + withDirectives(createElementVNode("div", { + class: "m-options-panel", + onMouseenter: onEnter, + onMouseleave: onLeave, + style: normalizeStyle(`top: ${_ctx.height + 4}px; line-height: ${_ctx.height - 10}px; max-height: ${_ctx.maxDisplay * _ctx.height + 9}px; width: ${_ctx.width}px;`) + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.options, (option, index2) => { + return openBlock(), createElementBlock("p", { + key: index2, + class: normalizeClass([ + "u-option", + { + "option-selected": option[_ctx.label] === selectedName.value, + "option-hover": !option.disabled && option[_ctx.value] === hoverValue.value, + "option-disabled": option.disabled + } + ]), + title: option[_ctx.label], + onMouseenter: ($event) => onHover(option[_ctx.value]), + onClick: ($event) => option.disabled ? () => false : onChange(option[_ctx.value], option[_ctx.label], index2) + }, toDisplayString(option[_ctx.label]), 43, _hoisted_7); + }), 128)) + ], 36), [ + [vShow, showOptions.value] + ]) + ]), + _: 1 + }) + ], 4); + }; + } +}); +const index_vue_vue_type_style_index_0_scoped_3b126f0b_lang = ""; +const QSelect = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-3b126f0b"]]); +QSelect.install = (app) => { + app.component(QSelect.__name, QSelect); +}; +const _withScopeId = (n) => (pushScopeId("data-v-8c81a90d"), n = n(), popScopeId(), n); +const _hoisted_1 = ["href", "title", "target"]; +const _hoisted_2 = { + key: 0, + class: "u-separator" +}; +const _hoisted_3 = { + key: 1, + class: "u-arrow", + viewBox: "64 64 896 896", + "data-icon": "right", + "aria-hidden": "true", + focusable: "false" +}; +const _hoisted_4 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("path", { d: "M765.7 486.8L314.9 134.7A7.97 7.97 0 0 0 302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 0 0 0-50.4z" }, null, -1)); +const _hoisted_5 = [ + _hoisted_4 +]; +const _hoisted_6 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("div", { class: "assist" }, null, -1)); +const __default__ = { + name: "QBreadcrumb" +}; +const _sfc_main = /* @__PURE__ */ defineComponent({ + ...__default__, + props: { + routes: { default: () => [] }, + fontSize: { default: 14 }, + height: { default: 21 }, + maxWidth: { default: 180 }, + separator: { default: "" }, + target: { default: "_self" } + }, + setup(__props) { + const props = __props; + const len = computed(() => { + return props.routes.length; + }); + function getUrl(route) { + var targetUrl = route.path; + if (route.query && JSON.stringify(route.query) !== "{}") { + const query = route.query; + Object.keys(query).forEach((param, index2) => { + if (index2 === 0) { + targetUrl = targetUrl + "?" + param + "=" + query[param]; + } else { + targetUrl = targetUrl + "&" + param + "=" + query[param]; + } + }); + } + return targetUrl; + } + return (_ctx, _cache) => { + return openBlock(), createElementBlock("div", { + class: "m-breadcrumb", + style: normalizeStyle(`height: ${_ctx.height}px;`) + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.routes, (route, index2) => { + return openBlock(), createElementBlock("div", { + class: "m-bread", + key: index2 + }, [ + createElementVNode("a", { + class: normalizeClass(["u-route", { active: index2 === len.value - 1 }]), + style: normalizeStyle(`font-size: ${_ctx.fontSize}px; max-width: ${_ctx.maxWidth}px;`), + href: index2 === len.value - 1 ? "javascript:;" : getUrl(route), + title: route.name, + target: index2 === len.value - 1 ? "_self" : _ctx.target + }, toDisplayString(route.name || "--"), 15, _hoisted_1), + index2 !== len.value - 1 ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [ + _ctx.separator ? (openBlock(), createElementBlock("span", _hoisted_2, toDisplayString(_ctx.separator), 1)) : (openBlock(), createElementBlock("svg", _hoisted_3, _hoisted_5)) + ], 64)) : createCommentVNode("", true) + ]); + }), 128)), + _hoisted_6 + ], 4); + }; + } +}); +const index_vue_vue_type_style_index_0_scoped_8c81a90d_lang = ""; +const QBreadcrumb = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-8c81a90d"]]); +QBreadcrumb.install = (app) => { + app.component(QBreadcrumb.__name, QBreadcrumb); +}; +const components = [QButton, QSelect, QBreadcrumb]; +const install = (app) => { + components.forEach((component) => app.component(component.name, component)); +}; +const QUI = { + install +}; +export { + QBreadcrumb, + QButton, + QSelect, + copyText, + dateFormat, + debounce, + QUI as default, + downloadFile, + isArrayRepeat, + throttle +}; diff --git a/dist/q-ui.umd.cjs b/dist/q-ui.umd.cjs new file mode 100644 index 0000000..c2bc533 --- /dev/null +++ b/dist/q-ui.umd.cjs @@ -0,0 +1 @@ +!function(e,l){"object"==typeof exports&&"undefined"!=typeof module?l(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],l):l((e="undefined"!=typeof globalThis?globalThis:e||self).QUI={},e.Vue)}(this,(function(e,l){"use strict";const t={key:0,class:"q-loadingIndicator"},a=(e,l)=>{const t=e.__vccOpts||e;for(const[a,o]of l)t[a]=o;return t},o=a(l.defineComponent({name:"QButton",props:{type:{type:String,default:"default"},dashed:{type:Boolean,default:!1},size:{type:String,default:"default"},round:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1}},setup(e){const a=e,{type:o,dashed:n,size:u,round:i,disabled:s,loading:c}=a,r=l.computed((()=>({[`q-type-${o}`]:o,"q-type-dashed":n,[`q-size-${u}`]:u,"is-round":i,"is-disabled":s||c,"is-loading":c})));return(e,a)=>(l.openBlock(),l.createElementBlock("button",{class:l.normalizeClass(["q-button",r.value])},[l.unref(c)?(l.openBlock(),l.createElementBlock("span",t)):l.createCommentVNode("",!0),l.renderSlot(e.$slots,"default",{},(()=>[l.createTextVNode(l.toDisplayString(l.unref(o)),1)]),!0)],2))}}),[["__scopeId","data-v-4eae179c"]]);o.install=e=>{e.component(o.__name,o)};const n=e=>(l.pushScopeId("data-v-3b126f0b"),e=e(),l.popScopeId(),e),u=["title"],i=[n((()=>l.createElementVNode("path",{d:"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"},null,-1)))],s=["onClick"],c=[n((()=>l.createElementVNode("path",{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"},null,-1)))],r=["title","onMouseenter","onClick"],d=a(l.defineComponent({name:"QSelect",props:{options:{default:()=>[]},label:{default:"label"},value:{default:"value"},placeholder:{default:"请选择"},disabled:{type:Boolean,default:!1},allowClear:{type:Boolean,default:!1},width:{default:120},height:{default:32},maxDisplay:{default:6},modelValue:{default:null}},emits:["update:modelValue","change"],setup(e,{emit:t}){const a=e,o=l.ref(),n=l.ref(),d=l.ref(!1),p=l.ref(!0),f=l.ref(!1),m=l.ref();function v(){a.allowClear&&o.value&&(f.value=!0)}function h(){a.allowClear&&f.value&&(f.value=!1)}function g(){p.value=!1}function y(){n.value=null,p.value=!0,m.value.focus()}function b(){f.value=!1,o.value=null,n.value=null,t("update:modelValue"),t("change")}return l.watchEffect((()=>{!function(){if(a.modelValue){const e=a.options.find((e=>e[a.value]===a.modelValue));e?(o.value=e[a.label],n.value=e[a.value]):(o.value=a.modelValue,n.value=null)}else o.value=null,n.value=null}()})),(e,k)=>(l.openBlock(),l.createElementBlock("div",{class:"m-select",style:l.normalizeStyle(`height: ${e.height}px;`)},[l.createElementVNode("div",{class:l.normalizeClass(["m-select-wrap",{hover:!e.disabled,focus:d.value,disabled:e.disabled}]),style:l.normalizeStyle(`width: ${e.width}px; height: ${e.height}px;`),tabindex:"0",ref_key:"select",ref:m,onMouseenter:v,onMouseleave:h,onBlur:k[0]||(k[0]=l=>p.value&&!e.disabled?void(d.value&&(d.value=!1)):()=>!1),onClick:k[1]||(k[1]=l=>e.disabled?()=>!1:function(){if(d.value=!d.value,!n.value&&o.value){const e=a.options.find((e=>e[a.label]===o.value));n.value=e?e[a.value]:null}}())},[l.createElementVNode("div",{class:l.normalizeClass(["u-select-input",{placeholder:!o.value}]),style:l.normalizeStyle(`line-height: ${e.height-2}px;`),title:o.value},l.toDisplayString(o.value||e.placeholder),15,u),(l.openBlock(),l.createElementBlock("svg",{class:l.normalizeClass(["triangle",{rotate:d.value,show:!f.value}]),viewBox:"64 64 896 896","data-icon":"down","aria-hidden":"true",focusable:"false"},i,2)),(l.openBlock(),l.createElementBlock("svg",{onClick:l.withModifiers(b,["stop"]),class:l.normalizeClass(["close",{show:f.value}]),focusable:"false","data-icon":"close-circle","aria-hidden":"true",viewBox:"64 64 896 896"},c,10,s))],38),l.createVNode(l.Transition,{name:"fade"},{default:l.withCtx((()=>[l.withDirectives(l.createElementVNode("div",{class:"m-options-panel",onMouseenter:g,onMouseleave:y,style:l.normalizeStyle(`top: ${e.height+4}px; line-height: ${e.height-10}px; max-height: ${e.maxDisplay*e.height+9}px; width: ${e.width}px;`)},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(e.options,((u,i)=>(l.openBlock(),l.createElementBlock("p",{key:i,class:l.normalizeClass(["u-option",{"option-selected":u[e.label]===o.value,"option-hover":!u.disabled&&u[e.value]===n.value,"option-disabled":u.disabled}]),title:u[e.label],onMouseenter:l=>{return t=u[e.value],void(n.value=t);var t},onClick:l=>u.disabled?()=>!1:function(e,l,u){a.modelValue!==e&&(o.value=l,n.value=e,t("update:modelValue",e),t("change",e,l,u)),d.value=!1}(u[e.value],u[e.label],i)},l.toDisplayString(u[e.label]),43,r)))),128))],36),[[l.vShow,d.value]])])),_:1})],4))}}),[["__scopeId","data-v-3b126f0b"]]);d.install=e=>{e.component(d.__name,d)};const p=e=>(l.pushScopeId("data-v-8c81a90d"),e=e(),l.popScopeId(),e),f=["href","title","target"],m={key:0,class:"u-separator"},v={key:1,class:"u-arrow",viewBox:"64 64 896 896","data-icon":"right","aria-hidden":"true",focusable:"false"},h=[p((()=>l.createElementVNode("path",{d:"M765.7 486.8L314.9 134.7A7.97 7.97 0 0 0 302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 0 0 0-50.4z"},null,-1)))],g=p((()=>l.createElementVNode("div",{class:"assist"},null,-1))),y=a(l.defineComponent({name:"QBreadcrumb",props:{routes:{default:()=>[]},fontSize:{default:14},height:{default:21},maxWidth:{default:180},separator:{default:""},target:{default:"_self"}},setup(e){const t=e,a=l.computed((()=>t.routes.length));function o(e){var l=e.path;if(e.query&&"{}"!==JSON.stringify(e.query)){const t=e.query;Object.keys(t).forEach(((e,a)=>{l=0===a?l+"?"+e+"="+t[e]:l+"&"+e+"="+t[e]}))}return l}return(e,t)=>(l.openBlock(),l.createElementBlock("div",{class:"m-breadcrumb",style:l.normalizeStyle(`height: ${e.height}px;`)},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(e.routes,((t,n)=>(l.openBlock(),l.createElementBlock("div",{class:"m-bread",key:n},[l.createElementVNode("a",{class:l.normalizeClass(["u-route",{active:n===a.value-1}]),style:l.normalizeStyle(`font-size: ${e.fontSize}px; max-width: ${e.maxWidth}px;`),href:n===a.value-1?"javascript:;":o(t),title:t.name,target:n===a.value-1?"_self":e.target},l.toDisplayString(t.name||"--"),15,f),n!==a.value-1?(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[e.separator?(l.openBlock(),l.createElementBlock("span",m,l.toDisplayString(e.separator),1)):(l.openBlock(),l.createElementBlock("svg",v,h))],64)):l.createCommentVNode("",!0)])))),128)),g],4))}}),[["__scopeId","data-v-8c81a90d"]]);y.install=e=>{e.component(y.__name,y)};const b=[o,d,y],k={install:e=>{b.forEach((l=>e.component(l.name,l)))}};e.QBreadcrumb=y,e.QButton=o,e.QSelect=d,e.copyText=function(e){return new Promise((l=>{const t=document.createElement("input");t.value=e,document.body.appendChild(t),t.select(),document.execCommand("copy"),t.remove(),l(!0)}))},e.dateFormat=function(e=Date.now(),l="yyyy-MM-dd hh:mm:ss"){let t=new Date(e),a={"M+":t.getMonth()+1,"d+":t.getDate(),"h+":t.getHours(),"m+":t.getMinutes(),"s+":t.getSeconds(),"q+":Math.floor((t.getMonth()+3)/3),S:t.getMilliseconds()};/(y+)/.test(l)&&(l=l.replace(RegExp.$1,(t.getFullYear()+"").substr(4-RegExp.$1.length)));for(let o in a)new RegExp("("+o+")").test(l)&&(l=l.replace(RegExp.$1,1===RegExp.$1.length?a[o]:("00"+a[o]).substr((""+a[o]).length)));return l},e.debounce=function(e,l=300){let t;return function(){t&&clearTimeout(t),t=setTimeout((()=>{e(),t=null}),l)}},e.default=k,e.downloadFile=function(e,l){var t="";if(l)t=l;else{const l=e.split("?")[0].split("/");t=l[l.length-1]}var a=new XMLHttpRequest;a.open("GET",e,!0),a.responseType="blob",a.onload=function(){if(200===a.status){const e=a.response,l=document.createElement("a"),o=document.querySelector("body");l.href=window.URL.createObjectURL(e),l.download=t,l.style.display="none",null==o||o.appendChild(l),l.click(),null==o||o.removeChild(l),window.URL.revokeObjectURL(l.href)}},a.send()},e.isArrayRepeat=function(e){var l={};for(var t in e){if(l[e[t]])return!0;l[e[t]]=!0}return!1},e.throttle=function(e,l=300){let t;return function(){t||(t=setTimeout((()=>{e(),t=null}),l))}},Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})})); diff --git a/dist/style.css b/dist/style.css new file mode 100644 index 0000000..b5606e4 --- /dev/null +++ b/dist/style.css @@ -0,0 +1 @@ +@charset "UTF-8";.w5{width:5%}.w10{width:10%}.w15{width:15%}.w20{width:20%}.w25{width:25%}.w30{width:30%}.w40{width:40%}.w50{width:50%}.w60{width:60%}.w100{width:100%}.ml-0{margin-left:0}.mr-0{margin-right:0}.mt-0{margin-top:0}.mb-0{margin-bottom:0}.pl-0{padding-left:0}.pr-0{padding-right:0}.pt-0{padding-top:0}.pb-0{padding-bottom:0}.ml-2{margin-left:2px}.mr-2{margin-right:2px}.mt-2{margin-top:2px}.mb-2{margin-bottom:2px}.pl-2{padding-left:2px}.pr-2{padding-right:2px}.pt-2{padding-top:2px}.pb-2{padding-bottom:2px}.ml-5{margin-left:5px}.mr-5{margin-right:5px}.mt-5{margin-top:5px}.mb-5{margin-bottom:5px}.pl-5{padding-left:5px}.pr-5{padding-right:5px}.pt-5{padding-top:5px}.pb-5{padding-bottom:5px}.ml-8{margin-left:8px}.mr-8{margin-right:8px}.mt-8{margin-top:8px}.mb-8{margin-bottom:8px}.pl-8{padding-left:8px}.pr-8{padding-right:8px}.pt-8{padding-top:8px}.pb-8{padding-bottom:8px}.ml-10{margin-left:10px}.mr-10{margin-right:10px}.mt-10{margin-top:10px}.mb-10{margin-bottom:10px}.pl-10{padding-left:10px}.pr-10{padding-right:10px}.pt-10{padding-top:10px}.pb-10{padding-bottom:10px}.ml-12{margin-left:12px}.mr-12{margin-right:12px}.mt-12{margin-top:12px}.mb-12{margin-bottom:12px}.pl-12{padding-left:12px}.pr-12{padding-right:12px}.pt-12{padding-top:12px}.pb-12{padding-bottom:12px}.ml-14{margin-left:14px}.mr-14{margin-right:14px}.mt-14{margin-top:14px}.mb-14{margin-bottom:14px}.pl-14{padding-left:14px}.pr-14{padding-right:14px}.pt-14{padding-top:14px}.pb-14{padding-bottom:14px}.ml-15{margin-left:15px}.mr-15{margin-right:15px}.mt-15{margin-top:15px}.mb-15{margin-bottom:15px}.pl-15{padding-left:15px}.pr-15{padding-right:15px}.pt-15{padding-top:15px}.pb-15{padding-bottom:15px}.ml-16{margin-left:16px}.mr-16{margin-right:16px}.mt-16{margin-top:16px}.mb-16{margin-bottom:16px}.pl-16{padding-left:16px}.pr-16{padding-right:16px}.pt-16{padding-top:16px}.pb-16{padding-bottom:16px}.ml-18{margin-left:18px}.mr-18{margin-right:18px}.mt-18{margin-top:18px}.mb-18{margin-bottom:18px}.pl-18{padding-left:18px}.pr-18{padding-right:18px}.pt-18{padding-top:18px}.pb-18{padding-bottom:18px}.ml-20{margin-left:20px}.mr-20{margin-right:20px}.mt-20{margin-top:20px}.mb-20{margin-bottom:20px}.pl-20{padding-left:20px}.pr-20{padding-right:20px}.pt-20{padding-top:20px}.pb-20{padding-bottom:20px}.ml-24{margin-left:24px}.mr-24{margin-right:24px}.mt-24{margin-top:24px}.mb-24{margin-bottom:24px}.pl-24{padding-left:24px}.pr-24{padding-right:24px}.pt-24{padding-top:24px}.pb-24{padding-bottom:24px}.ml-25{margin-left:25px}.mr-25{margin-right:25px}.mt-25{margin-top:25px}.mb-25{margin-bottom:25px}.pl-25{padding-left:25px}.pr-25{padding-right:25px}.pt-25{padding-top:25px}.pb-25{padding-bottom:25px}.ml-30{margin-left:30px}.mr-30{margin-right:30px}.mt-30{margin-top:30px}.mb-30{margin-bottom:30px}.pl-30{padding-left:30px}.pr-30{padding-right:30px}.pt-30{padding-top:30px}.pb-30{padding-bottom:30px}.ml-36{margin-left:36px}.mr-36{margin-right:36px}.mt-36{margin-top:36px}.mb-36{margin-bottom:36px}.pl-36{padding-left:36px}.pr-36{padding-right:36px}.pt-36{padding-top:36px}.pb-36{padding-bottom:36px}.ml-40{margin-left:40px}.mr-40{margin-right:40px}.mt-40{margin-top:40px}.mb-40{margin-bottom:40px}.pl-40{padding-left:40px}.pr-40{padding-right:40px}.pt-40{padding-top:40px}.pb-40{padding-bottom:40px}.ml-50{margin-left:50px}.mr-50{margin-right:50px}.mt-50{margin-top:50px}.mb-50{margin-bottom:50px}.pl-50{padding-left:50px}.pr-50{padding-right:50px}.pt-50{padding-top:50px}.pb-50{padding-bottom:50px}.ml-100{margin-left:100px}.mr-100{margin-right:100px}.mt-100{margin-top:100px}.mb-100{margin-bottom:100px}.pl-100{padding-left:100px}.pr-100{padding-right:100px}.pt-100{padding-top:100px}.pb-100{padding-bottom:100px}.w5[data-v-4eae179c]{width:5%}.w10[data-v-4eae179c]{width:10%}.w15[data-v-4eae179c]{width:15%}.w20[data-v-4eae179c]{width:20%}.w25[data-v-4eae179c]{width:25%}.w30[data-v-4eae179c]{width:30%}.w40[data-v-4eae179c]{width:40%}.w50[data-v-4eae179c]{width:50%}.w60[data-v-4eae179c]{width:60%}.w100[data-v-4eae179c]{width:100%}.ml-0[data-v-4eae179c]{margin-left:0}.mr-0[data-v-4eae179c]{margin-right:0}.mt-0[data-v-4eae179c]{margin-top:0}.mb-0[data-v-4eae179c]{margin-bottom:0}.pl-0[data-v-4eae179c]{padding-left:0}.pr-0[data-v-4eae179c]{padding-right:0}.pt-0[data-v-4eae179c]{padding-top:0}.pb-0[data-v-4eae179c]{padding-bottom:0}.ml-2[data-v-4eae179c]{margin-left:2px}.mr-2[data-v-4eae179c]{margin-right:2px}.mt-2[data-v-4eae179c]{margin-top:2px}.mb-2[data-v-4eae179c]{margin-bottom:2px}.pl-2[data-v-4eae179c]{padding-left:2px}.pr-2[data-v-4eae179c]{padding-right:2px}.pt-2[data-v-4eae179c]{padding-top:2px}.pb-2[data-v-4eae179c]{padding-bottom:2px}.ml-5[data-v-4eae179c]{margin-left:5px}.mr-5[data-v-4eae179c]{margin-right:5px}.mt-5[data-v-4eae179c]{margin-top:5px}.mb-5[data-v-4eae179c]{margin-bottom:5px}.pl-5[data-v-4eae179c]{padding-left:5px}.pr-5[data-v-4eae179c]{padding-right:5px}.pt-5[data-v-4eae179c]{padding-top:5px}.pb-5[data-v-4eae179c]{padding-bottom:5px}.ml-8[data-v-4eae179c]{margin-left:8px}.mr-8[data-v-4eae179c]{margin-right:8px}.mt-8[data-v-4eae179c]{margin-top:8px}.mb-8[data-v-4eae179c]{margin-bottom:8px}.pl-8[data-v-4eae179c]{padding-left:8px}.pr-8[data-v-4eae179c]{padding-right:8px}.pt-8[data-v-4eae179c]{padding-top:8px}.pb-8[data-v-4eae179c]{padding-bottom:8px}.ml-10[data-v-4eae179c]{margin-left:10px}.mr-10[data-v-4eae179c]{margin-right:10px}.mt-10[data-v-4eae179c]{margin-top:10px}.mb-10[data-v-4eae179c]{margin-bottom:10px}.pl-10[data-v-4eae179c]{padding-left:10px}.pr-10[data-v-4eae179c]{padding-right:10px}.pt-10[data-v-4eae179c]{padding-top:10px}.pb-10[data-v-4eae179c]{padding-bottom:10px}.ml-12[data-v-4eae179c]{margin-left:12px}.mr-12[data-v-4eae179c]{margin-right:12px}.mt-12[data-v-4eae179c]{margin-top:12px}.mb-12[data-v-4eae179c]{margin-bottom:12px}.pl-12[data-v-4eae179c]{padding-left:12px}.pr-12[data-v-4eae179c]{padding-right:12px}.pt-12[data-v-4eae179c]{padding-top:12px}.pb-12[data-v-4eae179c]{padding-bottom:12px}.ml-14[data-v-4eae179c]{margin-left:14px}.mr-14[data-v-4eae179c]{margin-right:14px}.mt-14[data-v-4eae179c]{margin-top:14px}.mb-14[data-v-4eae179c]{margin-bottom:14px}.pl-14[data-v-4eae179c]{padding-left:14px}.pr-14[data-v-4eae179c]{padding-right:14px}.pt-14[data-v-4eae179c]{padding-top:14px}.pb-14[data-v-4eae179c]{padding-bottom:14px}.ml-15[data-v-4eae179c]{margin-left:15px}.mr-15[data-v-4eae179c]{margin-right:15px}.mt-15[data-v-4eae179c]{margin-top:15px}.mb-15[data-v-4eae179c]{margin-bottom:15px}.pl-15[data-v-4eae179c]{padding-left:15px}.pr-15[data-v-4eae179c]{padding-right:15px}.pt-15[data-v-4eae179c]{padding-top:15px}.pb-15[data-v-4eae179c]{padding-bottom:15px}.ml-16[data-v-4eae179c]{margin-left:16px}.mr-16[data-v-4eae179c]{margin-right:16px}.mt-16[data-v-4eae179c]{margin-top:16px}.mb-16[data-v-4eae179c]{margin-bottom:16px}.pl-16[data-v-4eae179c]{padding-left:16px}.pr-16[data-v-4eae179c]{padding-right:16px}.pt-16[data-v-4eae179c]{padding-top:16px}.pb-16[data-v-4eae179c]{padding-bottom:16px}.ml-18[data-v-4eae179c]{margin-left:18px}.mr-18[data-v-4eae179c]{margin-right:18px}.mt-18[data-v-4eae179c]{margin-top:18px}.mb-18[data-v-4eae179c]{margin-bottom:18px}.pl-18[data-v-4eae179c]{padding-left:18px}.pr-18[data-v-4eae179c]{padding-right:18px}.pt-18[data-v-4eae179c]{padding-top:18px}.pb-18[data-v-4eae179c]{padding-bottom:18px}.ml-20[data-v-4eae179c]{margin-left:20px}.mr-20[data-v-4eae179c]{margin-right:20px}.mt-20[data-v-4eae179c]{margin-top:20px}.mb-20[data-v-4eae179c]{margin-bottom:20px}.pl-20[data-v-4eae179c]{padding-left:20px}.pr-20[data-v-4eae179c]{padding-right:20px}.pt-20[data-v-4eae179c]{padding-top:20px}.pb-20[data-v-4eae179c]{padding-bottom:20px}.ml-24[data-v-4eae179c]{margin-left:24px}.mr-24[data-v-4eae179c]{margin-right:24px}.mt-24[data-v-4eae179c]{margin-top:24px}.mb-24[data-v-4eae179c]{margin-bottom:24px}.pl-24[data-v-4eae179c]{padding-left:24px}.pr-24[data-v-4eae179c]{padding-right:24px}.pt-24[data-v-4eae179c]{padding-top:24px}.pb-24[data-v-4eae179c]{padding-bottom:24px}.ml-25[data-v-4eae179c]{margin-left:25px}.mr-25[data-v-4eae179c]{margin-right:25px}.mt-25[data-v-4eae179c]{margin-top:25px}.mb-25[data-v-4eae179c]{margin-bottom:25px}.pl-25[data-v-4eae179c]{padding-left:25px}.pr-25[data-v-4eae179c]{padding-right:25px}.pt-25[data-v-4eae179c]{padding-top:25px}.pb-25[data-v-4eae179c]{padding-bottom:25px}.ml-30[data-v-4eae179c]{margin-left:30px}.mr-30[data-v-4eae179c]{margin-right:30px}.mt-30[data-v-4eae179c]{margin-top:30px}.mb-30[data-v-4eae179c]{margin-bottom:30px}.pl-30[data-v-4eae179c]{padding-left:30px}.pr-30[data-v-4eae179c]{padding-right:30px}.pt-30[data-v-4eae179c]{padding-top:30px}.pb-30[data-v-4eae179c]{padding-bottom:30px}.ml-36[data-v-4eae179c]{margin-left:36px}.mr-36[data-v-4eae179c]{margin-right:36px}.mt-36[data-v-4eae179c]{margin-top:36px}.mb-36[data-v-4eae179c]{margin-bottom:36px}.pl-36[data-v-4eae179c]{padding-left:36px}.pr-36[data-v-4eae179c]{padding-right:36px}.pt-36[data-v-4eae179c]{padding-top:36px}.pb-36[data-v-4eae179c]{padding-bottom:36px}.ml-40[data-v-4eae179c]{margin-left:40px}.mr-40[data-v-4eae179c]{margin-right:40px}.mt-40[data-v-4eae179c]{margin-top:40px}.mb-40[data-v-4eae179c]{margin-bottom:40px}.pl-40[data-v-4eae179c]{padding-left:40px}.pr-40[data-v-4eae179c]{padding-right:40px}.pt-40[data-v-4eae179c]{padding-top:40px}.pb-40[data-v-4eae179c]{padding-bottom:40px}.ml-50[data-v-4eae179c]{margin-left:50px}.mr-50[data-v-4eae179c]{margin-right:50px}.mt-50[data-v-4eae179c]{margin-top:50px}.mb-50[data-v-4eae179c]{margin-bottom:50px}.pl-50[data-v-4eae179c]{padding-left:50px}.pr-50[data-v-4eae179c]{padding-right:50px}.pt-50[data-v-4eae179c]{padding-top:50px}.pb-50[data-v-4eae179c]{padding-bottom:50px}.ml-100[data-v-4eae179c]{margin-left:100px}.mr-100[data-v-4eae179c]{margin-right:100px}.mt-100[data-v-4eae179c]{margin-top:100px}.mb-100[data-v-4eae179c]{margin-bottom:100px}.pl-100[data-v-4eae179c]{padding-left:100px}.pr-100[data-v-4eae179c]{padding-right:100px}.pt-100[data-v-4eae179c]{padding-top:100px}.pb-100[data-v-4eae179c]{padding-bottom:100px}.q-button[data-v-4eae179c]{box-sizing:border-box;height:32px;background-color:#fff;padding:0 12px;cursor:pointer;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;border-radius:3px;box-shadow:0 1px #0000000d;transition:all .25s;color:#333;border:1px solid #d9d9d9;user-select:none}.q-button[data-v-4eae179c]:focus{outline:none}.q-button[data-v-4eae179c]::-moz-focus-inner{border:0}.q-button.q-size-large[data-v-4eae179c]{font-size:24px;height:48px;padding:0 16px}.q-button.q-size-small[data-v-4eae179c]{font-size:12px;height:20px;padding:0 8px}.q-button.is-round.q-size-default[data-v-4eae179c]{border-radius:16px}.q-button.is-round.q-size-large[data-v-4eae179c]{border-radius:24px}.q-button.is-round.q-size-small[data-v-4eae179c]{border-radius:10px}.q-button.q-type-default[data-v-4eae179c]:hover{color:#1bb760;border-color:#1bb760}.q-button.q-type-default.is-disabled[data-v-4eae179c]{cursor:not-allowed;background:#fff;border-color:#e4e7ed}.q-button.q-type-default.is-disabled[data-v-4eae179c]:hover{color:#333;background:#fff;border-color:#e4e7ed}.q-button.q-type-default[data-v-4eae179c]:active{color:#0e5e31;border-color:#0e5e31}.q-button.q-type-default.q-type-dashed[data-v-4eae179c]{border-style:dashed}.q-button.q-type-default>.q-loadingIndicator[data-v-4eae179c]{border-color:#333 #333 #333 transparent}.q-button.q-type-primary[data-v-4eae179c]{background-color:#1bb760;border-color:#1bb760;color:#fff}.q-button.q-type-primary[data-v-4eae179c]:hover{background:#52e694;border-color:#52e694}.q-button.q-type-primary[data-v-4eae179c]:active{background-color:#0e5e31;border-color:#0e5e31}.q-button.q-type-primary.is-disabled[data-v-4eae179c]{cursor:not-allowed;background:#52e694;border-color:#52e694}.q-button.q-type-primary.is-disabled[data-v-4eae179c]:hover{background:#52e694;border-color:#52e694}.q-button.q-type-primary.q-type-dashed[data-v-4eae179c]{border-style:dashed;background-color:#fff!important;color:#1bb760}.q-button.q-type-info[data-v-4eae179c]{background-color:#909399;border-color:#909399;color:#fff}.q-button.q-type-info[data-v-4eae179c]:hover{background:#c5c7ca;border-color:#c5c7ca}.q-button.q-type-info[data-v-4eae179c]:active{background-color:#5d6066;border-color:#5d6066}.q-button.q-type-info.is-disabled[data-v-4eae179c]{cursor:not-allowed;background:#c5c7ca;border-color:#c5c7ca}.q-button.q-type-info.is-disabled[data-v-4eae179c]:hover{background:#c5c7ca;border-color:#c5c7ca}.q-button.q-type-info.q-type-dashed[data-v-4eae179c]{border-style:dashed;background-color:#fff!important;color:#909399}.q-button.q-type-success[data-v-4eae179c]{background-color:#85ce61;border-color:#85ce61;color:#fff}.q-button.q-type-success[data-v-4eae179c]:hover{background:#c1e6af;border-color:#c1e6af}.q-button.q-type-success[data-v-4eae179c]:active{background-color:#539930;border-color:#539930}.q-button.q-type-success.is-disabled[data-v-4eae179c]{cursor:not-allowed;background:#c1e6af;border-color:#c1e6af}.q-button.q-type-success.is-disabled[data-v-4eae179c]:hover{background:#c1e6af;border-color:#c1e6af}.q-button.q-type-success.q-type-dashed[data-v-4eae179c]{border-style:dashed;background-color:#fff!important;color:#85ce61}.q-button.q-type-warning[data-v-4eae179c]{background-color:#f0a020;border-color:#f0a020;color:#fff}.q-button.q-type-warning[data-v-4eae179c]:hover{background:#f6c980;border-color:#f6c980}.q-button.q-type-warning[data-v-4eae179c]:active{background-color:#9f660b;border-color:#9f660b}.q-button.q-type-warning.is-disabled[data-v-4eae179c]{cursor:not-allowed;background:#f6c980;border-color:#f6c980}.q-button.q-type-warning.is-disabled[data-v-4eae179c]:hover{background:#f6c980;border-color:#f6c980}.q-button.q-type-warning.q-type-dashed[data-v-4eae179c]{border-style:dashed;background-color:#fff!important;color:#f0a020}.q-button.q-type-error[data-v-4eae179c]{background-color:#d03050;border-color:#d03050;color:#fff}.q-button.q-type-error[data-v-4eae179c]:hover{background:#e38396;border-color:#e38396}.q-button.q-type-error[data-v-4eae179c]:active{background-color:#7e1c30;border-color:#7e1c30}.q-button.q-type-error.is-disabled[data-v-4eae179c]{cursor:not-allowed;background:#e38396;border-color:#e38396}.q-button.q-type-error.is-disabled[data-v-4eae179c]:hover{background:#e38396;border-color:#e38396}.q-button.q-type-error.q-type-dashed[data-v-4eae179c]{border-style:dashed;background-color:#fff!important;color:#d03050}.q-button>.q-loadingIndicator[data-v-4eae179c]{width:14px;height:14px;display:inline-block;margin-right:5px;border-radius:50%;border-color:#fff #fff #fff transparent;border-style:solid;border-width:2px;animation:q-spin-4eae179c 1s infinite linear}.q-button.is-loading[data-v-4eae179c]{pointer-events:none!important}@keyframes q-spin-4eae179c{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.w5[data-v-3b126f0b]{width:5%}.w10[data-v-3b126f0b]{width:10%}.w15[data-v-3b126f0b]{width:15%}.w20[data-v-3b126f0b]{width:20%}.w25[data-v-3b126f0b]{width:25%}.w30[data-v-3b126f0b]{width:30%}.w40[data-v-3b126f0b]{width:40%}.w50[data-v-3b126f0b]{width:50%}.w60[data-v-3b126f0b]{width:60%}.w100[data-v-3b126f0b]{width:100%}.ml-0[data-v-3b126f0b]{margin-left:0}.mr-0[data-v-3b126f0b]{margin-right:0}.mt-0[data-v-3b126f0b]{margin-top:0}.mb-0[data-v-3b126f0b]{margin-bottom:0}.pl-0[data-v-3b126f0b]{padding-left:0}.pr-0[data-v-3b126f0b]{padding-right:0}.pt-0[data-v-3b126f0b]{padding-top:0}.pb-0[data-v-3b126f0b]{padding-bottom:0}.ml-2[data-v-3b126f0b]{margin-left:2px}.mr-2[data-v-3b126f0b]{margin-right:2px}.mt-2[data-v-3b126f0b]{margin-top:2px}.mb-2[data-v-3b126f0b]{margin-bottom:2px}.pl-2[data-v-3b126f0b]{padding-left:2px}.pr-2[data-v-3b126f0b]{padding-right:2px}.pt-2[data-v-3b126f0b]{padding-top:2px}.pb-2[data-v-3b126f0b]{padding-bottom:2px}.ml-5[data-v-3b126f0b]{margin-left:5px}.mr-5[data-v-3b126f0b]{margin-right:5px}.mt-5[data-v-3b126f0b]{margin-top:5px}.mb-5[data-v-3b126f0b]{margin-bottom:5px}.pl-5[data-v-3b126f0b]{padding-left:5px}.pr-5[data-v-3b126f0b]{padding-right:5px}.pt-5[data-v-3b126f0b]{padding-top:5px}.pb-5[data-v-3b126f0b]{padding-bottom:5px}.ml-8[data-v-3b126f0b]{margin-left:8px}.mr-8[data-v-3b126f0b]{margin-right:8px}.mt-8[data-v-3b126f0b]{margin-top:8px}.mb-8[data-v-3b126f0b]{margin-bottom:8px}.pl-8[data-v-3b126f0b]{padding-left:8px}.pr-8[data-v-3b126f0b]{padding-right:8px}.pt-8[data-v-3b126f0b]{padding-top:8px}.pb-8[data-v-3b126f0b]{padding-bottom:8px}.ml-10[data-v-3b126f0b]{margin-left:10px}.mr-10[data-v-3b126f0b]{margin-right:10px}.mt-10[data-v-3b126f0b]{margin-top:10px}.mb-10[data-v-3b126f0b]{margin-bottom:10px}.pl-10[data-v-3b126f0b]{padding-left:10px}.pr-10[data-v-3b126f0b]{padding-right:10px}.pt-10[data-v-3b126f0b]{padding-top:10px}.pb-10[data-v-3b126f0b]{padding-bottom:10px}.ml-12[data-v-3b126f0b]{margin-left:12px}.mr-12[data-v-3b126f0b]{margin-right:12px}.mt-12[data-v-3b126f0b]{margin-top:12px}.mb-12[data-v-3b126f0b]{margin-bottom:12px}.pl-12[data-v-3b126f0b]{padding-left:12px}.pr-12[data-v-3b126f0b]{padding-right:12px}.pt-12[data-v-3b126f0b]{padding-top:12px}.pb-12[data-v-3b126f0b]{padding-bottom:12px}.ml-14[data-v-3b126f0b]{margin-left:14px}.mr-14[data-v-3b126f0b]{margin-right:14px}.mt-14[data-v-3b126f0b]{margin-top:14px}.mb-14[data-v-3b126f0b]{margin-bottom:14px}.pl-14[data-v-3b126f0b]{padding-left:14px}.pr-14[data-v-3b126f0b]{padding-right:14px}.pt-14[data-v-3b126f0b]{padding-top:14px}.pb-14[data-v-3b126f0b]{padding-bottom:14px}.ml-15[data-v-3b126f0b]{margin-left:15px}.mr-15[data-v-3b126f0b]{margin-right:15px}.mt-15[data-v-3b126f0b]{margin-top:15px}.mb-15[data-v-3b126f0b]{margin-bottom:15px}.pl-15[data-v-3b126f0b]{padding-left:15px}.pr-15[data-v-3b126f0b]{padding-right:15px}.pt-15[data-v-3b126f0b]{padding-top:15px}.pb-15[data-v-3b126f0b]{padding-bottom:15px}.ml-16[data-v-3b126f0b]{margin-left:16px}.mr-16[data-v-3b126f0b]{margin-right:16px}.mt-16[data-v-3b126f0b]{margin-top:16px}.mb-16[data-v-3b126f0b]{margin-bottom:16px}.pl-16[data-v-3b126f0b]{padding-left:16px}.pr-16[data-v-3b126f0b]{padding-right:16px}.pt-16[data-v-3b126f0b]{padding-top:16px}.pb-16[data-v-3b126f0b]{padding-bottom:16px}.ml-18[data-v-3b126f0b]{margin-left:18px}.mr-18[data-v-3b126f0b]{margin-right:18px}.mt-18[data-v-3b126f0b]{margin-top:18px}.mb-18[data-v-3b126f0b]{margin-bottom:18px}.pl-18[data-v-3b126f0b]{padding-left:18px}.pr-18[data-v-3b126f0b]{padding-right:18px}.pt-18[data-v-3b126f0b]{padding-top:18px}.pb-18[data-v-3b126f0b]{padding-bottom:18px}.ml-20[data-v-3b126f0b]{margin-left:20px}.mr-20[data-v-3b126f0b]{margin-right:20px}.mt-20[data-v-3b126f0b]{margin-top:20px}.mb-20[data-v-3b126f0b]{margin-bottom:20px}.pl-20[data-v-3b126f0b]{padding-left:20px}.pr-20[data-v-3b126f0b]{padding-right:20px}.pt-20[data-v-3b126f0b]{padding-top:20px}.pb-20[data-v-3b126f0b]{padding-bottom:20px}.ml-24[data-v-3b126f0b]{margin-left:24px}.mr-24[data-v-3b126f0b]{margin-right:24px}.mt-24[data-v-3b126f0b]{margin-top:24px}.mb-24[data-v-3b126f0b]{margin-bottom:24px}.pl-24[data-v-3b126f0b]{padding-left:24px}.pr-24[data-v-3b126f0b]{padding-right:24px}.pt-24[data-v-3b126f0b]{padding-top:24px}.pb-24[data-v-3b126f0b]{padding-bottom:24px}.ml-25[data-v-3b126f0b]{margin-left:25px}.mr-25[data-v-3b126f0b]{margin-right:25px}.mt-25[data-v-3b126f0b]{margin-top:25px}.mb-25[data-v-3b126f0b]{margin-bottom:25px}.pl-25[data-v-3b126f0b]{padding-left:25px}.pr-25[data-v-3b126f0b]{padding-right:25px}.pt-25[data-v-3b126f0b]{padding-top:25px}.pb-25[data-v-3b126f0b]{padding-bottom:25px}.ml-30[data-v-3b126f0b]{margin-left:30px}.mr-30[data-v-3b126f0b]{margin-right:30px}.mt-30[data-v-3b126f0b]{margin-top:30px}.mb-30[data-v-3b126f0b]{margin-bottom:30px}.pl-30[data-v-3b126f0b]{padding-left:30px}.pr-30[data-v-3b126f0b]{padding-right:30px}.pt-30[data-v-3b126f0b]{padding-top:30px}.pb-30[data-v-3b126f0b]{padding-bottom:30px}.ml-36[data-v-3b126f0b]{margin-left:36px}.mr-36[data-v-3b126f0b]{margin-right:36px}.mt-36[data-v-3b126f0b]{margin-top:36px}.mb-36[data-v-3b126f0b]{margin-bottom:36px}.pl-36[data-v-3b126f0b]{padding-left:36px}.pr-36[data-v-3b126f0b]{padding-right:36px}.pt-36[data-v-3b126f0b]{padding-top:36px}.pb-36[data-v-3b126f0b]{padding-bottom:36px}.ml-40[data-v-3b126f0b]{margin-left:40px}.mr-40[data-v-3b126f0b]{margin-right:40px}.mt-40[data-v-3b126f0b]{margin-top:40px}.mb-40[data-v-3b126f0b]{margin-bottom:40px}.pl-40[data-v-3b126f0b]{padding-left:40px}.pr-40[data-v-3b126f0b]{padding-right:40px}.pt-40[data-v-3b126f0b]{padding-top:40px}.pb-40[data-v-3b126f0b]{padding-bottom:40px}.ml-50[data-v-3b126f0b]{margin-left:50px}.mr-50[data-v-3b126f0b]{margin-right:50px}.mt-50[data-v-3b126f0b]{margin-top:50px}.mb-50[data-v-3b126f0b]{margin-bottom:50px}.pl-50[data-v-3b126f0b]{padding-left:50px}.pr-50[data-v-3b126f0b]{padding-right:50px}.pt-50[data-v-3b126f0b]{padding-top:50px}.pb-50[data-v-3b126f0b]{padding-bottom:50px}.ml-100[data-v-3b126f0b]{margin-left:100px}.mr-100[data-v-3b126f0b]{margin-right:100px}.mt-100[data-v-3b126f0b]{margin-top:100px}.mb-100[data-v-3b126f0b]{margin-bottom:100px}.pl-100[data-v-3b126f0b]{padding-left:100px}.pr-100[data-v-3b126f0b]{padding-right:100px}.pt-100[data-v-3b126f0b]{padding-top:100px}.pb-100[data-v-3b126f0b]{padding-bottom:100px}.m-select[data-v-3b126f0b]{position:relative;display:inline-block;font-size:14px;font-weight:400;color:#000000a6}.fade-enter-active[data-v-3b126f0b],.fade-leave-active[data-v-3b126f0b]{transform:scaleY(1);transform-origin:0% 0%;opacity:1;transition:all .3s}.fade-enter-from[data-v-3b126f0b]{transform:scaleY(.8);transform-origin:0% 0%;opacity:0}.fade-leave-to[data-v-3b126f0b]{transform:scaleY(1);opacity:0}.m-select-wrap[data-v-3b126f0b]{position:relative;z-index:8;display:inline-block;border:1px solid #d9d9d9;border-radius:4px;background-color:#fff;cursor:pointer;transition:all .3s cubic-bezier(.645,.045,.355,1)}.m-select-wrap .u-select-input[data-v-3b126f0b]{display:block;text-align:left;margin-left:11px;margin-right:27px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-select-wrap .placeholder[data-v-3b126f0b]{color:#bfbfbf}.m-select-wrap .triangle[data-v-3b126f0b]{position:absolute;top:0;bottom:0;margin:auto 0;right:11px;width:12px;height:12px;fill:#00000040;opacity:0;pointer-events:none;transition:all .3s ease-in-out}.m-select-wrap .rotate[data-v-3b126f0b]{transform:rotate(180deg);-webkit-transform:rotate(180deg)}.m-select-wrap .close[data-v-3b126f0b]{position:absolute;top:0;bottom:0;margin:auto 0;right:11px;width:12px;height:12px;fill:#8c8c8c99;opacity:0;pointer-events:none;transition:all .3s ease-in-out}.m-select-wrap .close[data-v-3b126f0b]:hover{fill:#646464cc}.m-select-wrap .show[data-v-3b126f0b]{opacity:1;pointer-events:auto}.hover[data-v-3b126f0b]:hover{border-color:#1bb760}.focus[data-v-3b126f0b]{border-color:#1bb760;box-shadow:0 0 0 2px fade(#1bb760,20%)}.disabled[data-v-3b126f0b]{color:#00000040;background:#f5f5f5;user-select:none;cursor:not-allowed}.m-options-panel[data-v-3b126f0b]{position:absolute;z-index:9;overflow:auto;background:#fff;padding:4px 0;border-radius:4px;box-shadow:0 2px 8px #00000026}.m-options-panel .u-option[data-v-3b126f0b]{text-align:left;position:relative;display:block;padding:5px 12px;font-weight:400;line-height:inherit;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;transition:background .3s ease}.m-options-panel .option-selected[data-v-3b126f0b]{font-weight:600;background:#fafafa}.m-options-panel .option-hover[data-v-3b126f0b]{background:#e6f7ff}.m-options-panel .option-disabled[data-v-3b126f0b]{color:#00000040;user-select:none;cursor:not-allowed}.w5[data-v-8c81a90d]{width:5%}.w10[data-v-8c81a90d]{width:10%}.w15[data-v-8c81a90d]{width:15%}.w20[data-v-8c81a90d]{width:20%}.w25[data-v-8c81a90d]{width:25%}.w30[data-v-8c81a90d]{width:30%}.w40[data-v-8c81a90d]{width:40%}.w50[data-v-8c81a90d]{width:50%}.w60[data-v-8c81a90d]{width:60%}.w100[data-v-8c81a90d]{width:100%}.ml-0[data-v-8c81a90d]{margin-left:0}.mr-0[data-v-8c81a90d]{margin-right:0}.mt-0[data-v-8c81a90d]{margin-top:0}.mb-0[data-v-8c81a90d]{margin-bottom:0}.pl-0[data-v-8c81a90d]{padding-left:0}.pr-0[data-v-8c81a90d]{padding-right:0}.pt-0[data-v-8c81a90d]{padding-top:0}.pb-0[data-v-8c81a90d]{padding-bottom:0}.ml-2[data-v-8c81a90d]{margin-left:2px}.mr-2[data-v-8c81a90d]{margin-right:2px}.mt-2[data-v-8c81a90d]{margin-top:2px}.mb-2[data-v-8c81a90d]{margin-bottom:2px}.pl-2[data-v-8c81a90d]{padding-left:2px}.pr-2[data-v-8c81a90d]{padding-right:2px}.pt-2[data-v-8c81a90d]{padding-top:2px}.pb-2[data-v-8c81a90d]{padding-bottom:2px}.ml-5[data-v-8c81a90d]{margin-left:5px}.mr-5[data-v-8c81a90d]{margin-right:5px}.mt-5[data-v-8c81a90d]{margin-top:5px}.mb-5[data-v-8c81a90d]{margin-bottom:5px}.pl-5[data-v-8c81a90d]{padding-left:5px}.pr-5[data-v-8c81a90d]{padding-right:5px}.pt-5[data-v-8c81a90d]{padding-top:5px}.pb-5[data-v-8c81a90d]{padding-bottom:5px}.ml-8[data-v-8c81a90d]{margin-left:8px}.mr-8[data-v-8c81a90d]{margin-right:8px}.mt-8[data-v-8c81a90d]{margin-top:8px}.mb-8[data-v-8c81a90d]{margin-bottom:8px}.pl-8[data-v-8c81a90d]{padding-left:8px}.pr-8[data-v-8c81a90d]{padding-right:8px}.pt-8[data-v-8c81a90d]{padding-top:8px}.pb-8[data-v-8c81a90d]{padding-bottom:8px}.ml-10[data-v-8c81a90d]{margin-left:10px}.mr-10[data-v-8c81a90d]{margin-right:10px}.mt-10[data-v-8c81a90d]{margin-top:10px}.mb-10[data-v-8c81a90d]{margin-bottom:10px}.pl-10[data-v-8c81a90d]{padding-left:10px}.pr-10[data-v-8c81a90d]{padding-right:10px}.pt-10[data-v-8c81a90d]{padding-top:10px}.pb-10[data-v-8c81a90d]{padding-bottom:10px}.ml-12[data-v-8c81a90d]{margin-left:12px}.mr-12[data-v-8c81a90d]{margin-right:12px}.mt-12[data-v-8c81a90d]{margin-top:12px}.mb-12[data-v-8c81a90d]{margin-bottom:12px}.pl-12[data-v-8c81a90d]{padding-left:12px}.pr-12[data-v-8c81a90d]{padding-right:12px}.pt-12[data-v-8c81a90d]{padding-top:12px}.pb-12[data-v-8c81a90d]{padding-bottom:12px}.ml-14[data-v-8c81a90d]{margin-left:14px}.mr-14[data-v-8c81a90d]{margin-right:14px}.mt-14[data-v-8c81a90d]{margin-top:14px}.mb-14[data-v-8c81a90d]{margin-bottom:14px}.pl-14[data-v-8c81a90d]{padding-left:14px}.pr-14[data-v-8c81a90d]{padding-right:14px}.pt-14[data-v-8c81a90d]{padding-top:14px}.pb-14[data-v-8c81a90d]{padding-bottom:14px}.ml-15[data-v-8c81a90d]{margin-left:15px}.mr-15[data-v-8c81a90d]{margin-right:15px}.mt-15[data-v-8c81a90d]{margin-top:15px}.mb-15[data-v-8c81a90d]{margin-bottom:15px}.pl-15[data-v-8c81a90d]{padding-left:15px}.pr-15[data-v-8c81a90d]{padding-right:15px}.pt-15[data-v-8c81a90d]{padding-top:15px}.pb-15[data-v-8c81a90d]{padding-bottom:15px}.ml-16[data-v-8c81a90d]{margin-left:16px}.mr-16[data-v-8c81a90d]{margin-right:16px}.mt-16[data-v-8c81a90d]{margin-top:16px}.mb-16[data-v-8c81a90d]{margin-bottom:16px}.pl-16[data-v-8c81a90d]{padding-left:16px}.pr-16[data-v-8c81a90d]{padding-right:16px}.pt-16[data-v-8c81a90d]{padding-top:16px}.pb-16[data-v-8c81a90d]{padding-bottom:16px}.ml-18[data-v-8c81a90d]{margin-left:18px}.mr-18[data-v-8c81a90d]{margin-right:18px}.mt-18[data-v-8c81a90d]{margin-top:18px}.mb-18[data-v-8c81a90d]{margin-bottom:18px}.pl-18[data-v-8c81a90d]{padding-left:18px}.pr-18[data-v-8c81a90d]{padding-right:18px}.pt-18[data-v-8c81a90d]{padding-top:18px}.pb-18[data-v-8c81a90d]{padding-bottom:18px}.ml-20[data-v-8c81a90d]{margin-left:20px}.mr-20[data-v-8c81a90d]{margin-right:20px}.mt-20[data-v-8c81a90d]{margin-top:20px}.mb-20[data-v-8c81a90d]{margin-bottom:20px}.pl-20[data-v-8c81a90d]{padding-left:20px}.pr-20[data-v-8c81a90d]{padding-right:20px}.pt-20[data-v-8c81a90d]{padding-top:20px}.pb-20[data-v-8c81a90d]{padding-bottom:20px}.ml-24[data-v-8c81a90d]{margin-left:24px}.mr-24[data-v-8c81a90d]{margin-right:24px}.mt-24[data-v-8c81a90d]{margin-top:24px}.mb-24[data-v-8c81a90d]{margin-bottom:24px}.pl-24[data-v-8c81a90d]{padding-left:24px}.pr-24[data-v-8c81a90d]{padding-right:24px}.pt-24[data-v-8c81a90d]{padding-top:24px}.pb-24[data-v-8c81a90d]{padding-bottom:24px}.ml-25[data-v-8c81a90d]{margin-left:25px}.mr-25[data-v-8c81a90d]{margin-right:25px}.mt-25[data-v-8c81a90d]{margin-top:25px}.mb-25[data-v-8c81a90d]{margin-bottom:25px}.pl-25[data-v-8c81a90d]{padding-left:25px}.pr-25[data-v-8c81a90d]{padding-right:25px}.pt-25[data-v-8c81a90d]{padding-top:25px}.pb-25[data-v-8c81a90d]{padding-bottom:25px}.ml-30[data-v-8c81a90d]{margin-left:30px}.mr-30[data-v-8c81a90d]{margin-right:30px}.mt-30[data-v-8c81a90d]{margin-top:30px}.mb-30[data-v-8c81a90d]{margin-bottom:30px}.pl-30[data-v-8c81a90d]{padding-left:30px}.pr-30[data-v-8c81a90d]{padding-right:30px}.pt-30[data-v-8c81a90d]{padding-top:30px}.pb-30[data-v-8c81a90d]{padding-bottom:30px}.ml-36[data-v-8c81a90d]{margin-left:36px}.mr-36[data-v-8c81a90d]{margin-right:36px}.mt-36[data-v-8c81a90d]{margin-top:36px}.mb-36[data-v-8c81a90d]{margin-bottom:36px}.pl-36[data-v-8c81a90d]{padding-left:36px}.pr-36[data-v-8c81a90d]{padding-right:36px}.pt-36[data-v-8c81a90d]{padding-top:36px}.pb-36[data-v-8c81a90d]{padding-bottom:36px}.ml-40[data-v-8c81a90d]{margin-left:40px}.mr-40[data-v-8c81a90d]{margin-right:40px}.mt-40[data-v-8c81a90d]{margin-top:40px}.mb-40[data-v-8c81a90d]{margin-bottom:40px}.pl-40[data-v-8c81a90d]{padding-left:40px}.pr-40[data-v-8c81a90d]{padding-right:40px}.pt-40[data-v-8c81a90d]{padding-top:40px}.pb-40[data-v-8c81a90d]{padding-bottom:40px}.ml-50[data-v-8c81a90d]{margin-left:50px}.mr-50[data-v-8c81a90d]{margin-right:50px}.mt-50[data-v-8c81a90d]{margin-top:50px}.mb-50[data-v-8c81a90d]{margin-bottom:50px}.pl-50[data-v-8c81a90d]{padding-left:50px}.pr-50[data-v-8c81a90d]{padding-right:50px}.pt-50[data-v-8c81a90d]{padding-top:50px}.pb-50[data-v-8c81a90d]{padding-bottom:50px}.ml-100[data-v-8c81a90d]{margin-left:100px}.mr-100[data-v-8c81a90d]{margin-right:100px}.mt-100[data-v-8c81a90d]{margin-top:100px}.mb-100[data-v-8c81a90d]{margin-bottom:100px}.pl-100[data-v-8c81a90d]{padding-left:100px}.pr-100[data-v-8c81a90d]{padding-right:100px}.pt-100[data-v-8c81a90d]{padding-top:100px}.pb-100[data-v-8c81a90d]{padding-bottom:100px}.m-breadcrumb[data-v-8c81a90d]{display:flex;align-items:center}.m-breadcrumb .m-bread[data-v-8c81a90d]{display:inline-flex;align-items:center;line-height:1.5}.m-breadcrumb .m-bread .u-route[data-v-8c81a90d]{color:#00000073;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;padding:0 4px;border-radius:4px;transition:color .2s,background-color .2s}.m-breadcrumb .m-bread .u-route[data-v-8c81a90d]:hover{background-color:#0000000d;color:#000000e0}.m-breadcrumb .m-bread .active[data-v-8c81a90d]{color:#000000e0;cursor:default}.m-breadcrumb .m-bread .active[data-v-8c81a90d]:hover{background-color:transparent}.m-breadcrumb .m-bread .u-separator[data-v-8c81a90d]{margin:0 4px;color:#00000073}.m-breadcrumb .m-bread .u-arrow[data-v-8c81a90d]{width:12px;height:12px;fill:#00000073}.m-breadcrumb .assist[data-v-8c81a90d]{height:100%;width:0;display:inline-block;vertical-align:middle} diff --git a/docs/.vitepress/cache/deps/_metadata.json b/docs/.vitepress/cache/deps/_metadata.json new file mode 100644 index 0000000..98f9403 --- /dev/null +++ b/docs/.vitepress/cache/deps/_metadata.json @@ -0,0 +1,13 @@ +{ + "hash": "faeec25e", + "browserHash": "708bd63e", + "optimized": { + "vue": { + "src": "../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js", + "file": "vue.js", + "fileHash": "61d62cff", + "needsInterop": false + } + }, + "chunks": {} +} \ No newline at end of file diff --git a/docs/.vitepress/cache/deps/package.json b/docs/.vitepress/cache/deps/package.json new file mode 100644 index 0000000..3dbc1ca --- /dev/null +++ b/docs/.vitepress/cache/deps/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +} diff --git a/docs/.vitepress/cache/deps/vue.js b/docs/.vitepress/cache/deps/vue.js new file mode 100644 index 0000000..cc22c9f --- /dev/null +++ b/docs/.vitepress/cache/deps/vue.js @@ -0,0 +1,10795 @@ +// node_modules/@vue/shared/dist/shared.esm-bundler.js +function makeMap(str, expectsLowerCase) { + const map2 = /* @__PURE__ */ Object.create(null); + const list = str.split(","); + for (let i = 0; i < list.length; i++) { + map2[list[i]] = true; + } + return expectsLowerCase ? (val) => !!map2[val.toLowerCase()] : (val) => !!map2[val]; +} +var EMPTY_OBJ = true ? Object.freeze({}) : {}; +var EMPTY_ARR = true ? Object.freeze([]) : []; +var NOOP = () => { +}; +var NO = () => false; +var onRE = /^on[^a-z]/; +var isOn = (key) => onRE.test(key); +var isModelListener = (key) => key.startsWith("onUpdate:"); +var extend = Object.assign; +var remove = (arr, el) => { + const i = arr.indexOf(el); + if (i > -1) { + arr.splice(i, 1); + } +}; +var hasOwnProperty = Object.prototype.hasOwnProperty; +var hasOwn = (val, key) => hasOwnProperty.call(val, key); +var isArray = Array.isArray; +var isMap = (val) => toTypeString(val) === "[object Map]"; +var isSet = (val) => toTypeString(val) === "[object Set]"; +var isDate = (val) => toTypeString(val) === "[object Date]"; +var isRegExp = (val) => toTypeString(val) === "[object RegExp]"; +var isFunction = (val) => typeof val === "function"; +var isString = (val) => typeof val === "string"; +var isSymbol = (val) => typeof val === "symbol"; +var isObject = (val) => val !== null && typeof val === "object"; +var isPromise = (val) => { + return isObject(val) && isFunction(val.then) && isFunction(val.catch); +}; +var objectToString = Object.prototype.toString; +var toTypeString = (value) => objectToString.call(value); +var toRawType = (value) => { + return toTypeString(value).slice(8, -1); +}; +var isPlainObject = (val) => toTypeString(val) === "[object Object]"; +var isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; +var isReservedProp = makeMap( + // the leading comma is intentional so empty string "" is also included + ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" +); +var isBuiltInDirective = makeMap( + "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" +); +var cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return (str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }; +}; +var camelizeRE = /-(\w)/g; +var camelize = cacheStringFunction((str) => { + return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : ""); +}); +var hyphenateRE = /\B([A-Z])/g; +var hyphenate = cacheStringFunction( + (str) => str.replace(hyphenateRE, "-$1").toLowerCase() +); +var capitalize = cacheStringFunction( + (str) => str.charAt(0).toUpperCase() + str.slice(1) +); +var toHandlerKey = cacheStringFunction( + (str) => str ? `on${capitalize(str)}` : `` +); +var hasChanged = (value, oldValue) => !Object.is(value, oldValue); +var invokeArrayFns = (fns, arg) => { + for (let i = 0; i < fns.length; i++) { + fns[i](arg); + } +}; +var def = (obj, key, value) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + value + }); +}; +var looseToNumber = (val) => { + const n = parseFloat(val); + return isNaN(n) ? val : n; +}; +var toNumber = (val) => { + const n = isString(val) ? Number(val) : NaN; + return isNaN(n) ? val : n; +}; +var _globalThis; +var getGlobalThis = () => { + return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); +}; +var GLOBALS_WHITE_LISTED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console"; +var isGloballyWhitelisted = makeMap(GLOBALS_WHITE_LISTED); +function normalizeStyle(value) { + if (isArray(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } else if (isString(value)) { + return value; + } else if (isObject(value)) { + return value; + } +} +var listDelimiterRE = /;(?![^(]*\))/g; +var propertyDelimiterRE = /:([^]+)/; +var styleCommentRE = /\/\*[^]*?\*\//g; +function parseStringStyle(cssText) { + const ret = {}; + cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; +} +function normalizeClass(value) { + let res = ""; + if (isString(value)) { + res = value; + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + const normalized = normalizeClass(value[i]); + if (normalized) { + res += normalized + " "; + } + } + } else if (isObject(value)) { + for (const name in value) { + if (value[name]) { + res += name + " "; + } + } + } + return res.trim(); +} +function normalizeProps(props) { + if (!props) + return null; + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (style) { + props.style = normalizeStyle(style); + } + return props; +} +var HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; +var SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; +var VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; +var isHTMLTag = makeMap(HTML_TAGS); +var isSVGTag = makeMap(SVG_TAGS); +var isVoidTag = makeMap(VOID_TAGS); +var specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; +var isSpecialBooleanAttr = makeMap(specialBooleanAttrs); +var isBooleanAttr = makeMap( + specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected` +); +function includeBooleanAttr(value) { + return !!value || value === ""; +} +var isKnownHtmlAttr = makeMap( + `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap` +); +var isKnownSvgAttr = makeMap( + `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` +); +function looseCompareArrays(a, b) { + if (a.length !== b.length) + return false; + let equal = true; + for (let i = 0; equal && i < a.length; i++) { + equal = looseEqual(a[i], b[i]); + } + return equal; +} +function looseEqual(a, b) { + if (a === b) + return true; + let aValidType = isDate(a); + let bValidType = isDate(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? a.getTime() === b.getTime() : false; + } + aValidType = isSymbol(a); + bValidType = isSymbol(b); + if (aValidType || bValidType) { + return a === b; + } + aValidType = isArray(a); + bValidType = isArray(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? looseCompareArrays(a, b) : false; + } + aValidType = isObject(a); + bValidType = isObject(b); + if (aValidType || bValidType) { + if (!aValidType || !bValidType) { + return false; + } + const aKeysCount = Object.keys(a).length; + const bKeysCount = Object.keys(b).length; + if (aKeysCount !== bKeysCount) { + return false; + } + for (const key in a) { + const aHasKey = a.hasOwnProperty(key); + const bHasKey = b.hasOwnProperty(key); + if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) { + return false; + } + } + } + return String(a) === String(b); +} +function looseIndexOf(arr, val) { + return arr.findIndex((item) => looseEqual(item, val)); +} +var toDisplayString = (val) => { + return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val); +}; +var replacer = (_key, val) => { + if (val && val.__v_isRef) { + return replacer(_key, val.value); + } else if (isMap(val)) { + return { + [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val2]) => { + entries[`${key} =>`] = val2; + return entries; + }, {}) + }; + } else if (isSet(val)) { + return { + [`Set(${val.size})`]: [...val.values()] + }; + } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { + return String(val); + } + return val; +}; + +// node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js +function warn(msg, ...args) { + console.warn(`[Vue warn] ${msg}`, ...args); +} +var activeEffectScope; +var EffectScope = class { + constructor(detached = false) { + this.detached = detached; + this._active = true; + this.effects = []; + this.cleanups = []; + this.parent = activeEffectScope; + if (!detached && activeEffectScope) { + this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( + this + ) - 1; + } + } + get active() { + return this._active; + } + run(fn) { + if (this._active) { + const currentEffectScope = activeEffectScope; + try { + activeEffectScope = this; + return fn(); + } finally { + activeEffectScope = currentEffectScope; + } + } else if (true) { + warn(`cannot run an inactive effect scope.`); + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + on() { + activeEffectScope = this; + } + /** + * This should only be called on non-detached scopes + * @internal + */ + off() { + activeEffectScope = this.parent; + } + stop(fromParent) { + if (this._active) { + let i, l; + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].stop(); + } + for (i = 0, l = this.cleanups.length; i < l; i++) { + this.cleanups[i](); + } + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].stop(true); + } + } + if (!this.detached && this.parent && !fromParent) { + const last = this.parent.scopes.pop(); + if (last && last !== this) { + this.parent.scopes[this.index] = last; + last.index = this.index; + } + } + this.parent = void 0; + this._active = false; + } + } +}; +function effectScope(detached) { + return new EffectScope(detached); +} +function recordEffectScope(effect2, scope = activeEffectScope) { + if (scope && scope.active) { + scope.effects.push(effect2); + } +} +function getCurrentScope() { + return activeEffectScope; +} +function onScopeDispose(fn) { + if (activeEffectScope) { + activeEffectScope.cleanups.push(fn); + } else if (true) { + warn( + `onScopeDispose() is called when there is no active effect scope to be associated with.` + ); + } +} +var createDep = (effects) => { + const dep = new Set(effects); + dep.w = 0; + dep.n = 0; + return dep; +}; +var wasTracked = (dep) => (dep.w & trackOpBit) > 0; +var newTracked = (dep) => (dep.n & trackOpBit) > 0; +var initDepMarkers = ({ deps }) => { + if (deps.length) { + for (let i = 0; i < deps.length; i++) { + deps[i].w |= trackOpBit; + } + } +}; +var finalizeDepMarkers = (effect2) => { + const { deps } = effect2; + if (deps.length) { + let ptr = 0; + for (let i = 0; i < deps.length; i++) { + const dep = deps[i]; + if (wasTracked(dep) && !newTracked(dep)) { + dep.delete(effect2); + } else { + deps[ptr++] = dep; + } + dep.w &= ~trackOpBit; + dep.n &= ~trackOpBit; + } + deps.length = ptr; + } +}; +var targetMap = /* @__PURE__ */ new WeakMap(); +var effectTrackDepth = 0; +var trackOpBit = 1; +var maxMarkerBits = 30; +var activeEffect; +var ITERATE_KEY = Symbol(true ? "iterate" : ""); +var MAP_KEY_ITERATE_KEY = Symbol(true ? "Map key iterate" : ""); +var ReactiveEffect = class { + constructor(fn, scheduler = null, scope) { + this.fn = fn; + this.scheduler = scheduler; + this.active = true; + this.deps = []; + this.parent = void 0; + recordEffectScope(this, scope); + } + run() { + if (!this.active) { + return this.fn(); + } + let parent = activeEffect; + let lastShouldTrack = shouldTrack; + while (parent) { + if (parent === this) { + return; + } + parent = parent.parent; + } + try { + this.parent = activeEffect; + activeEffect = this; + shouldTrack = true; + trackOpBit = 1 << ++effectTrackDepth; + if (effectTrackDepth <= maxMarkerBits) { + initDepMarkers(this); + } else { + cleanupEffect(this); + } + return this.fn(); + } finally { + if (effectTrackDepth <= maxMarkerBits) { + finalizeDepMarkers(this); + } + trackOpBit = 1 << --effectTrackDepth; + activeEffect = this.parent; + shouldTrack = lastShouldTrack; + this.parent = void 0; + if (this.deferStop) { + this.stop(); + } + } + } + stop() { + if (activeEffect === this) { + this.deferStop = true; + } else if (this.active) { + cleanupEffect(this); + if (this.onStop) { + this.onStop(); + } + this.active = false; + } + } +}; +function cleanupEffect(effect2) { + const { deps } = effect2; + if (deps.length) { + for (let i = 0; i < deps.length; i++) { + deps[i].delete(effect2); + } + deps.length = 0; + } +} +function effect(fn, options) { + if (fn.effect) { + fn = fn.effect.fn; + } + const _effect = new ReactiveEffect(fn); + if (options) { + extend(_effect, options); + if (options.scope) + recordEffectScope(_effect, options.scope); + } + if (!options || !options.lazy) { + _effect.run(); + } + const runner = _effect.run.bind(_effect); + runner.effect = _effect; + return runner; +} +function stop(runner) { + runner.effect.stop(); +} +var shouldTrack = true; +var trackStack = []; +function pauseTracking() { + trackStack.push(shouldTrack); + shouldTrack = false; +} +function resetTracking() { + const last = trackStack.pop(); + shouldTrack = last === void 0 ? true : last; +} +function track(target, type, key) { + if (shouldTrack && activeEffect) { + let depsMap = targetMap.get(target); + if (!depsMap) { + targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); + } + let dep = depsMap.get(key); + if (!dep) { + depsMap.set(key, dep = createDep()); + } + const eventInfo = true ? { effect: activeEffect, target, type, key } : void 0; + trackEffects(dep, eventInfo); + } +} +function trackEffects(dep, debuggerEventExtraInfo) { + let shouldTrack2 = false; + if (effectTrackDepth <= maxMarkerBits) { + if (!newTracked(dep)) { + dep.n |= trackOpBit; + shouldTrack2 = !wasTracked(dep); + } + } else { + shouldTrack2 = !dep.has(activeEffect); + } + if (shouldTrack2) { + dep.add(activeEffect); + activeEffect.deps.push(dep); + if (activeEffect.onTrack) { + activeEffect.onTrack( + extend( + { + effect: activeEffect + }, + debuggerEventExtraInfo + ) + ); + } + } +} +function trigger(target, type, key, newValue, oldValue, oldTarget) { + const depsMap = targetMap.get(target); + if (!depsMap) { + return; + } + let deps = []; + if (type === "clear") { + deps = [...depsMap.values()]; + } else if (key === "length" && isArray(target)) { + const newLength = Number(newValue); + depsMap.forEach((dep, key2) => { + if (key2 === "length" || key2 >= newLength) { + deps.push(dep); + } + }); + } else { + if (key !== void 0) { + deps.push(depsMap.get(key)); + } + switch (type) { + case "add": + if (!isArray(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + deps.push(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } else if (isIntegerKey(key)) { + deps.push(depsMap.get("length")); + } + break; + case "delete": + if (!isArray(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + deps.push(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + break; + case "set": + if (isMap(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + } + break; + } + } + const eventInfo = true ? { target, type, key, newValue, oldValue, oldTarget } : void 0; + if (deps.length === 1) { + if (deps[0]) { + if (true) { + triggerEffects(deps[0], eventInfo); + } else { + triggerEffects(deps[0]); + } + } + } else { + const effects = []; + for (const dep of deps) { + if (dep) { + effects.push(...dep); + } + } + if (true) { + triggerEffects(createDep(effects), eventInfo); + } else { + triggerEffects(createDep(effects)); + } + } +} +function triggerEffects(dep, debuggerEventExtraInfo) { + const effects = isArray(dep) ? dep : [...dep]; + for (const effect2 of effects) { + if (effect2.computed) { + triggerEffect(effect2, debuggerEventExtraInfo); + } + } + for (const effect2 of effects) { + if (!effect2.computed) { + triggerEffect(effect2, debuggerEventExtraInfo); + } + } +} +function triggerEffect(effect2, debuggerEventExtraInfo) { + if (effect2 !== activeEffect || effect2.allowRecurse) { + if (effect2.onTrigger) { + effect2.onTrigger(extend({ effect: effect2 }, debuggerEventExtraInfo)); + } + if (effect2.scheduler) { + effect2.scheduler(); + } else { + effect2.run(); + } + } +} +function getDepFromReactive(object, key) { + var _a; + return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key); +} +var isNonTrackableKeys = makeMap(`__proto__,__v_isRef,__isVue`); +var builtInSymbols = new Set( + Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol) +); +var get$1 = createGetter(); +var shallowGet = createGetter(false, true); +var readonlyGet = createGetter(true); +var shallowReadonlyGet = createGetter(true, true); +var arrayInstrumentations = createArrayInstrumentations(); +function createArrayInstrumentations() { + const instrumentations = {}; + ["includes", "indexOf", "lastIndexOf"].forEach((key) => { + instrumentations[key] = function(...args) { + const arr = toRaw(this); + for (let i = 0, l = this.length; i < l; i++) { + track(arr, "get", i + ""); + } + const res = arr[key](...args); + if (res === -1 || res === false) { + return arr[key](...args.map(toRaw)); + } else { + return res; + } + }; + }); + ["push", "pop", "shift", "unshift", "splice"].forEach((key) => { + instrumentations[key] = function(...args) { + pauseTracking(); + const res = toRaw(this)[key].apply(this, args); + resetTracking(); + return res; + }; + }); + return instrumentations; +} +function hasOwnProperty2(key) { + const obj = toRaw(this); + track(obj, "has", key); + return obj.hasOwnProperty(key); +} +function createGetter(isReadonly2 = false, shallow = false) { + return function get2(target, key, receiver) { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_isShallow") { + return shallow; + } else if (key === "__v_raw" && receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target)) { + return target; + } + const targetIsArray = isArray(target); + if (!isReadonly2) { + if (targetIsArray && hasOwn(arrayInstrumentations, key)) { + return Reflect.get(arrayInstrumentations, key, receiver); + } + if (key === "hasOwnProperty") { + return hasOwnProperty2; + } + } + const res = Reflect.get(target, key, receiver); + if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { + return res; + } + if (!isReadonly2) { + track(target, "get", key); + } + if (shallow) { + return res; + } + if (isRef(res)) { + return targetIsArray && isIntegerKey(key) ? res : res.value; + } + if (isObject(res)) { + return isReadonly2 ? readonly(res) : reactive(res); + } + return res; + }; +} +var set$1 = createSetter(); +var shallowSet = createSetter(true); +function createSetter(shallow = false) { + return function set2(target, key, value, receiver) { + let oldValue = target[key]; + if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) { + return false; + } + if (!shallow) { + if (!isShallow(value) && !isReadonly(value)) { + oldValue = toRaw(oldValue); + value = toRaw(value); + } + if (!isArray(target) && isRef(oldValue) && !isRef(value)) { + oldValue.value = value; + return true; + } + } + const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key); + const result = Reflect.set(target, key, value, receiver); + if (target === toRaw(receiver)) { + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + } + return result; + }; +} +function deleteProperty(target, key) { + const hadKey = hasOwn(target, key); + const oldValue = target[key]; + const result = Reflect.deleteProperty(target, key); + if (result && hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; +} +function has$1(target, key) { + const result = Reflect.has(target, key); + if (!isSymbol(key) || !builtInSymbols.has(key)) { + track(target, "has", key); + } + return result; +} +function ownKeys(target) { + track(target, "iterate", isArray(target) ? "length" : ITERATE_KEY); + return Reflect.ownKeys(target); +} +var mutableHandlers = { + get: get$1, + set: set$1, + deleteProperty, + has: has$1, + ownKeys +}; +var readonlyHandlers = { + get: readonlyGet, + set(target, key) { + if (true) { + warn( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + }, + deleteProperty(target, key) { + if (true) { + warn( + `Delete operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } +}; +var shallowReactiveHandlers = extend( + {}, + mutableHandlers, + { + get: shallowGet, + set: shallowSet + } +); +var shallowReadonlyHandlers = extend( + {}, + readonlyHandlers, + { + get: shallowReadonlyGet + } +); +var toShallow = (value) => value; +var getProto = (v) => Reflect.getPrototypeOf(v); +function get(target, key, isReadonly2 = false, isShallow3 = false) { + target = target["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!isReadonly2) { + if (key !== rawKey) { + track(rawTarget, "get", key); + } + track(rawTarget, "get", rawKey); + } + const { has: has2 } = getProto(rawTarget); + const wrap = isShallow3 ? toShallow : isReadonly2 ? toReadonly : toReactive; + if (has2.call(rawTarget, key)) { + return wrap(target.get(key)); + } else if (has2.call(rawTarget, rawKey)) { + return wrap(target.get(rawKey)); + } else if (target !== rawTarget) { + target.get(key); + } +} +function has(key, isReadonly2 = false) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!isReadonly2) { + if (key !== rawKey) { + track(rawTarget, "has", key); + } + track(rawTarget, "has", rawKey); + } + return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); +} +function size(target, isReadonly2 = false) { + target = target["__v_raw"]; + !isReadonly2 && track(toRaw(target), "iterate", ITERATE_KEY); + return Reflect.get(target, "size", target); +} +function add(value) { + value = toRaw(value); + const target = toRaw(this); + const proto = getProto(target); + const hadKey = proto.has.call(target, value); + if (!hadKey) { + target.add(value); + trigger(target, "add", value, value); + } + return this; +} +function set(key, value) { + value = toRaw(value); + const target = toRaw(this); + const { has: has2, get: get2 } = getProto(target); + let hadKey = has2.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has2.call(target, key); + } else if (true) { + checkIdentityKeys(target, has2, key); + } + const oldValue = get2.call(target, key); + target.set(key, value); + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + return this; +} +function deleteEntry(key) { + const target = toRaw(this); + const { has: has2, get: get2 } = getProto(target); + let hadKey = has2.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has2.call(target, key); + } else if (true) { + checkIdentityKeys(target, has2, key); + } + const oldValue = get2 ? get2.call(target, key) : void 0; + const result = target.delete(key); + if (hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; +} +function clear() { + const target = toRaw(this); + const hadItems = target.size !== 0; + const oldTarget = true ? isMap(target) ? new Map(target) : new Set(target) : void 0; + const result = target.clear(); + if (hadItems) { + trigger(target, "clear", void 0, void 0, oldTarget); + } + return result; +} +function createForEach(isReadonly2, isShallow3) { + return function forEach(callback, thisArg) { + const observed = this; + const target = observed["__v_raw"]; + const rawTarget = toRaw(target); + const wrap = isShallow3 ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track(rawTarget, "iterate", ITERATE_KEY); + return target.forEach((value, key) => { + return callback.call(thisArg, wrap(value), wrap(key), observed); + }); + }; +} +function createIterableMethod(method, isReadonly2, isShallow3) { + return function(...args) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const targetIsMap = isMap(rawTarget); + const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; + const isKeyOnly = method === "keys" && targetIsMap; + const innerIterator = target[method](...args); + const wrap = isShallow3 ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track( + rawTarget, + "iterate", + isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY + ); + return { + // iterator protocol + next() { + const { value, done } = innerIterator.next(); + return done ? { value, done } : { + value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), + done + }; + }, + // iterable protocol + [Symbol.iterator]() { + return this; + } + }; + }; +} +function createReadonlyMethod(type) { + return function(...args) { + if (true) { + const key = args[0] ? `on key "${args[0]}" ` : ``; + console.warn( + `${capitalize(type)} operation ${key}failed: target is readonly.`, + toRaw(this) + ); + } + return type === "delete" ? false : this; + }; +} +function createInstrumentations() { + const mutableInstrumentations2 = { + get(key) { + return get(this, key); + }, + get size() { + return size(this); + }, + has, + add, + set, + delete: deleteEntry, + clear, + forEach: createForEach(false, false) + }; + const shallowInstrumentations2 = { + get(key) { + return get(this, key, false, true); + }, + get size() { + return size(this); + }, + has, + add, + set, + delete: deleteEntry, + clear, + forEach: createForEach(false, true) + }; + const readonlyInstrumentations2 = { + get(key) { + return get(this, key, true); + }, + get size() { + return size(this, true); + }, + has(key) { + return has.call(this, key, true); + }, + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear"), + forEach: createForEach(true, false) + }; + const shallowReadonlyInstrumentations2 = { + get(key) { + return get(this, key, true, true); + }, + get size() { + return size(this, true); + }, + has(key) { + return has.call(this, key, true); + }, + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear"), + forEach: createForEach(true, true) + }; + const iteratorMethods = ["keys", "values", "entries", Symbol.iterator]; + iteratorMethods.forEach((method) => { + mutableInstrumentations2[method] = createIterableMethod( + method, + false, + false + ); + readonlyInstrumentations2[method] = createIterableMethod( + method, + true, + false + ); + shallowInstrumentations2[method] = createIterableMethod( + method, + false, + true + ); + shallowReadonlyInstrumentations2[method] = createIterableMethod( + method, + true, + true + ); + }); + return [ + mutableInstrumentations2, + readonlyInstrumentations2, + shallowInstrumentations2, + shallowReadonlyInstrumentations2 + ]; +} +var [ + mutableInstrumentations, + readonlyInstrumentations, + shallowInstrumentations, + shallowReadonlyInstrumentations +] = createInstrumentations(); +function createInstrumentationGetter(isReadonly2, shallow) { + const instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations; + return (target, key, receiver) => { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_raw") { + return target; + } + return Reflect.get( + hasOwn(instrumentations, key) && key in target ? instrumentations : target, + key, + receiver + ); + }; +} +var mutableCollectionHandlers = { + get: createInstrumentationGetter(false, false) +}; +var shallowCollectionHandlers = { + get: createInstrumentationGetter(false, true) +}; +var readonlyCollectionHandlers = { + get: createInstrumentationGetter(true, false) +}; +var shallowReadonlyCollectionHandlers = { + get: createInstrumentationGetter(true, true) +}; +function checkIdentityKeys(target, has2, key) { + const rawKey = toRaw(key); + if (rawKey !== key && has2.call(target, rawKey)) { + const type = toRawType(target); + console.warn( + `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.` + ); + } +} +var reactiveMap = /* @__PURE__ */ new WeakMap(); +var shallowReactiveMap = /* @__PURE__ */ new WeakMap(); +var readonlyMap = /* @__PURE__ */ new WeakMap(); +var shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); +function targetTypeMap(rawType) { + switch (rawType) { + case "Object": + case "Array": + return 1; + case "Map": + case "Set": + case "WeakMap": + case "WeakSet": + return 2; + default: + return 0; + } +} +function getTargetType(value) { + return value["__v_skip"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value)); +} +function reactive(target) { + if (isReadonly(target)) { + return target; + } + return createReactiveObject( + target, + false, + mutableHandlers, + mutableCollectionHandlers, + reactiveMap + ); +} +function shallowReactive(target) { + return createReactiveObject( + target, + false, + shallowReactiveHandlers, + shallowCollectionHandlers, + shallowReactiveMap + ); +} +function readonly(target) { + return createReactiveObject( + target, + true, + readonlyHandlers, + readonlyCollectionHandlers, + readonlyMap + ); +} +function shallowReadonly(target) { + return createReactiveObject( + target, + true, + shallowReadonlyHandlers, + shallowReadonlyCollectionHandlers, + shallowReadonlyMap + ); +} +function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { + if (!isObject(target)) { + if (true) { + console.warn(`value cannot be made reactive: ${String(target)}`); + } + return target; + } + if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { + return target; + } + const existingProxy = proxyMap.get(target); + if (existingProxy) { + return existingProxy; + } + const targetType = getTargetType(target); + if (targetType === 0) { + return target; + } + const proxy = new Proxy( + target, + targetType === 2 ? collectionHandlers : baseHandlers + ); + proxyMap.set(target, proxy); + return proxy; +} +function isReactive(value) { + if (isReadonly(value)) { + return isReactive(value["__v_raw"]); + } + return !!(value && value["__v_isReactive"]); +} +function isReadonly(value) { + return !!(value && value["__v_isReadonly"]); +} +function isShallow(value) { + return !!(value && value["__v_isShallow"]); +} +function isProxy(value) { + return isReactive(value) || isReadonly(value); +} +function toRaw(observed) { + const raw = observed && observed["__v_raw"]; + return raw ? toRaw(raw) : observed; +} +function markRaw(value) { + def(value, "__v_skip", true); + return value; +} +var toReactive = (value) => isObject(value) ? reactive(value) : value; +var toReadonly = (value) => isObject(value) ? readonly(value) : value; +function trackRefValue(ref2) { + if (shouldTrack && activeEffect) { + ref2 = toRaw(ref2); + if (true) { + trackEffects(ref2.dep || (ref2.dep = createDep()), { + target: ref2, + type: "get", + key: "value" + }); + } else { + trackEffects(ref2.dep || (ref2.dep = createDep())); + } + } +} +function triggerRefValue(ref2, newVal) { + ref2 = toRaw(ref2); + const dep = ref2.dep; + if (dep) { + if (true) { + triggerEffects(dep, { + target: ref2, + type: "set", + key: "value", + newValue: newVal + }); + } else { + triggerEffects(dep); + } + } +} +function isRef(r) { + return !!(r && r.__v_isRef === true); +} +function ref(value) { + return createRef(value, false); +} +function shallowRef(value) { + return createRef(value, true); +} +function createRef(rawValue, shallow) { + if (isRef(rawValue)) { + return rawValue; + } + return new RefImpl(rawValue, shallow); +} +var RefImpl = class { + constructor(value, __v_isShallow) { + this.__v_isShallow = __v_isShallow; + this.dep = void 0; + this.__v_isRef = true; + this._rawValue = __v_isShallow ? value : toRaw(value); + this._value = __v_isShallow ? value : toReactive(value); + } + get value() { + trackRefValue(this); + return this._value; + } + set value(newVal) { + const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal); + newVal = useDirectValue ? newVal : toRaw(newVal); + if (hasChanged(newVal, this._rawValue)) { + this._rawValue = newVal; + this._value = useDirectValue ? newVal : toReactive(newVal); + triggerRefValue(this, newVal); + } + } +}; +function triggerRef(ref2) { + triggerRefValue(ref2, true ? ref2.value : void 0); +} +function unref(ref2) { + return isRef(ref2) ? ref2.value : ref2; +} +function toValue(source) { + return isFunction(source) ? source() : unref(source); +} +var shallowUnwrapHandlers = { + get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)), + set: (target, key, value, receiver) => { + const oldValue = target[key]; + if (isRef(oldValue) && !isRef(value)) { + oldValue.value = value; + return true; + } else { + return Reflect.set(target, key, value, receiver); + } + } +}; +function proxyRefs(objectWithRefs) { + return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); +} +var CustomRefImpl = class { + constructor(factory) { + this.dep = void 0; + this.__v_isRef = true; + const { get: get2, set: set2 } = factory( + () => trackRefValue(this), + () => triggerRefValue(this) + ); + this._get = get2; + this._set = set2; + } + get value() { + return this._get(); + } + set value(newVal) { + this._set(newVal); + } +}; +function customRef(factory) { + return new CustomRefImpl(factory); +} +function toRefs(object) { + if (!isProxy(object)) { + console.warn(`toRefs() expects a reactive object but received a plain one.`); + } + const ret = isArray(object) ? new Array(object.length) : {}; + for (const key in object) { + ret[key] = propertyToRef(object, key); + } + return ret; +} +var ObjectRefImpl = class { + constructor(_object, _key, _defaultValue) { + this._object = _object; + this._key = _key; + this._defaultValue = _defaultValue; + this.__v_isRef = true; + } + get value() { + const val = this._object[this._key]; + return val === void 0 ? this._defaultValue : val; + } + set value(newVal) { + this._object[this._key] = newVal; + } + get dep() { + return getDepFromReactive(toRaw(this._object), this._key); + } +}; +var GetterRefImpl = class { + constructor(_getter) { + this._getter = _getter; + this.__v_isRef = true; + this.__v_isReadonly = true; + } + get value() { + return this._getter(); + } +}; +function toRef(source, key, defaultValue) { + if (isRef(source)) { + return source; + } else if (isFunction(source)) { + return new GetterRefImpl(source); + } else if (isObject(source) && arguments.length > 1) { + return propertyToRef(source, key, defaultValue); + } else { + return ref(source); + } +} +function propertyToRef(source, key, defaultValue) { + const val = source[key]; + return isRef(val) ? val : new ObjectRefImpl( + source, + key, + defaultValue + ); +} +var ComputedRefImpl = class { + constructor(getter, _setter, isReadonly2, isSSR) { + this._setter = _setter; + this.dep = void 0; + this.__v_isRef = true; + this["__v_isReadonly"] = false; + this._dirty = true; + this.effect = new ReactiveEffect(getter, () => { + if (!this._dirty) { + this._dirty = true; + triggerRefValue(this); + } + }); + this.effect.computed = this; + this.effect.active = this._cacheable = !isSSR; + this["__v_isReadonly"] = isReadonly2; + } + get value() { + const self2 = toRaw(this); + trackRefValue(self2); + if (self2._dirty || !self2._cacheable) { + self2._dirty = false; + self2._value = self2.effect.run(); + } + return self2._value; + } + set value(newValue) { + this._setter(newValue); + } +}; +function computed(getterOrOptions, debugOptions, isSSR = false) { + let getter; + let setter; + const onlyGetter = isFunction(getterOrOptions); + if (onlyGetter) { + getter = getterOrOptions; + setter = true ? () => { + console.warn("Write operation failed: computed value is readonly"); + } : NOOP; + } else { + getter = getterOrOptions.get; + setter = getterOrOptions.set; + } + const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR); + if (debugOptions && !isSSR) { + cRef.effect.onTrack = debugOptions.onTrack; + cRef.effect.onTrigger = debugOptions.onTrigger; + } + return cRef; +} +var tick = Promise.resolve(); + +// node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js +var stack = []; +function pushWarningContext(vnode) { + stack.push(vnode); +} +function popWarningContext() { + stack.pop(); +} +function warn2(msg, ...args) { + if (false) + return; + pauseTracking(); + const instance = stack.length ? stack[stack.length - 1].component : null; + const appWarnHandler = instance && instance.appContext.config.warnHandler; + const trace = getComponentTrace(); + if (appWarnHandler) { + callWithErrorHandling( + appWarnHandler, + instance, + 11, + [ + msg + args.join(""), + instance && instance.proxy, + trace.map( + ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>` + ).join("\n"), + trace + ] + ); + } else { + const warnArgs = [`[Vue warn]: ${msg}`, ...args]; + if (trace.length && // avoid spamming console during tests + true) { + warnArgs.push(` +`, ...formatTrace(trace)); + } + console.warn(...warnArgs); + } + resetTracking(); +} +function getComponentTrace() { + let currentVNode = stack[stack.length - 1]; + if (!currentVNode) { + return []; + } + const normalizedStack = []; + while (currentVNode) { + const last = normalizedStack[0]; + if (last && last.vnode === currentVNode) { + last.recurseCount++; + } else { + normalizedStack.push({ + vnode: currentVNode, + recurseCount: 0 + }); + } + const parentInstance = currentVNode.component && currentVNode.component.parent; + currentVNode = parentInstance && parentInstance.vnode; + } + return normalizedStack; +} +function formatTrace(trace) { + const logs = []; + trace.forEach((entry, i) => { + logs.push(...i === 0 ? [] : [` +`], ...formatTraceEntry(entry)); + }); + return logs; +} +function formatTraceEntry({ vnode, recurseCount }) { + const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; + const isRoot = vnode.component ? vnode.component.parent == null : false; + const open = ` at <${formatComponentName( + vnode.component, + vnode.type, + isRoot + )}`; + const close = `>` + postfix; + return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close]; +} +function formatProps(props) { + const res = []; + const keys = Object.keys(props); + keys.slice(0, 3).forEach((key) => { + res.push(...formatProp(key, props[key])); + }); + if (keys.length > 3) { + res.push(` ...`); + } + return res; +} +function formatProp(key, value, raw) { + if (isString(value)) { + value = JSON.stringify(value); + return raw ? value : [`${key}=${value}`]; + } else if (typeof value === "number" || typeof value === "boolean" || value == null) { + return raw ? value : [`${key}=${value}`]; + } else if (isRef(value)) { + value = formatProp(key, toRaw(value.value), true); + return raw ? value : [`${key}=Ref<`, value, `>`]; + } else if (isFunction(value)) { + return [`${key}=fn${value.name ? `<${value.name}>` : ``}`]; + } else { + value = toRaw(value); + return raw ? value : [`${key}=`, value]; + } +} +function assertNumber(val, type) { + if (false) + return; + if (val === void 0) { + return; + } else if (typeof val !== "number") { + warn2(`${type} is not a valid number - got ${JSON.stringify(val)}.`); + } else if (isNaN(val)) { + warn2(`${type} is NaN - the duration expression might be incorrect.`); + } +} +var ErrorTypeStrings = { + ["sp"]: "serverPrefetch hook", + ["bc"]: "beforeCreate hook", + ["c"]: "created hook", + ["bm"]: "beforeMount hook", + ["m"]: "mounted hook", + ["bu"]: "beforeUpdate hook", + ["u"]: "updated", + ["bum"]: "beforeUnmount hook", + ["um"]: "unmounted hook", + ["a"]: "activated hook", + ["da"]: "deactivated hook", + ["ec"]: "errorCaptured hook", + ["rtc"]: "renderTracked hook", + ["rtg"]: "renderTriggered hook", + [0]: "setup function", + [1]: "render function", + [2]: "watcher getter", + [3]: "watcher callback", + [4]: "watcher cleanup function", + [5]: "native event handler", + [6]: "component event handler", + [7]: "vnode hook", + [8]: "directive hook", + [9]: "transition hook", + [10]: "app errorHandler", + [11]: "app warnHandler", + [12]: "ref function", + [13]: "async component loader", + [14]: "scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core" +}; +function callWithErrorHandling(fn, instance, type, args) { + let res; + try { + res = args ? fn(...args) : fn(); + } catch (err) { + handleError(err, instance, type); + } + return res; +} +function callWithAsyncErrorHandling(fn, instance, type, args) { + if (isFunction(fn)) { + const res = callWithErrorHandling(fn, instance, type, args); + if (res && isPromise(res)) { + res.catch((err) => { + handleError(err, instance, type); + }); + } + return res; + } + const values = []; + for (let i = 0; i < fn.length; i++) { + values.push(callWithAsyncErrorHandling(fn[i], instance, type, args)); + } + return values; +} +function handleError(err, instance, type, throwInDev = true) { + const contextVNode = instance ? instance.vnode : null; + if (instance) { + let cur = instance.parent; + const exposedInstance = instance.proxy; + const errorInfo = true ? ErrorTypeStrings[type] : type; + while (cur) { + const errorCapturedHooks = cur.ec; + if (errorCapturedHooks) { + for (let i = 0; i < errorCapturedHooks.length; i++) { + if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { + return; + } + } + } + cur = cur.parent; + } + const appErrorHandler = instance.appContext.config.errorHandler; + if (appErrorHandler) { + callWithErrorHandling( + appErrorHandler, + null, + 10, + [err, exposedInstance, errorInfo] + ); + return; + } + } + logError(err, type, contextVNode, throwInDev); +} +function logError(err, type, contextVNode, throwInDev = true) { + if (true) { + const info = ErrorTypeStrings[type]; + if (contextVNode) { + pushWarningContext(contextVNode); + } + warn2(`Unhandled error${info ? ` during execution of ${info}` : ``}`); + if (contextVNode) { + popWarningContext(); + } + if (throwInDev) { + throw err; + } else { + console.error(err); + } + } else { + console.error(err); + } +} +var isFlushing = false; +var isFlushPending = false; +var queue = []; +var flushIndex = 0; +var pendingPostFlushCbs = []; +var activePostFlushCbs = null; +var postFlushIndex = 0; +var resolvedPromise = Promise.resolve(); +var currentFlushPromise = null; +var RECURSION_LIMIT = 100; +function nextTick(fn) { + const p2 = currentFlushPromise || resolvedPromise; + return fn ? p2.then(this ? fn.bind(this) : fn) : p2; +} +function findInsertionIndex(id) { + let start = flushIndex + 1; + let end = queue.length; + while (start < end) { + const middle = start + end >>> 1; + const middleJobId = getId(queue[middle]); + middleJobId < id ? start = middle + 1 : end = middle; + } + return start; +} +function queueJob(job) { + if (!queue.length || !queue.includes( + job, + isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex + )) { + if (job.id == null) { + queue.push(job); + } else { + queue.splice(findInsertionIndex(job.id), 0, job); + } + queueFlush(); + } +} +function queueFlush() { + if (!isFlushing && !isFlushPending) { + isFlushPending = true; + currentFlushPromise = resolvedPromise.then(flushJobs); + } +} +function invalidateJob(job) { + const i = queue.indexOf(job); + if (i > flushIndex) { + queue.splice(i, 1); + } +} +function queuePostFlushCb(cb) { + if (!isArray(cb)) { + if (!activePostFlushCbs || !activePostFlushCbs.includes( + cb, + cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex + )) { + pendingPostFlushCbs.push(cb); + } + } else { + pendingPostFlushCbs.push(...cb); + } + queueFlush(); +} +function flushPreFlushCbs(seen, i = isFlushing ? flushIndex + 1 : 0) { + if (true) { + seen = seen || /* @__PURE__ */ new Map(); + } + for (; i < queue.length; i++) { + const cb = queue[i]; + if (cb && cb.pre) { + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + queue.splice(i, 1); + i--; + cb(); + } + } +} +function flushPostFlushCbs(seen) { + if (pendingPostFlushCbs.length) { + const deduped = [...new Set(pendingPostFlushCbs)]; + pendingPostFlushCbs.length = 0; + if (activePostFlushCbs) { + activePostFlushCbs.push(...deduped); + return; + } + activePostFlushCbs = deduped; + if (true) { + seen = seen || /* @__PURE__ */ new Map(); + } + activePostFlushCbs.sort((a, b) => getId(a) - getId(b)); + for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { + if (checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) { + continue; + } + activePostFlushCbs[postFlushIndex](); + } + activePostFlushCbs = null; + postFlushIndex = 0; + } +} +var getId = (job) => job.id == null ? Infinity : job.id; +var comparator = (a, b) => { + const diff = getId(a) - getId(b); + if (diff === 0) { + if (a.pre && !b.pre) + return -1; + if (b.pre && !a.pre) + return 1; + } + return diff; +}; +function flushJobs(seen) { + isFlushPending = false; + isFlushing = true; + if (true) { + seen = seen || /* @__PURE__ */ new Map(); + } + queue.sort(comparator); + const check = true ? (job) => checkRecursiveUpdates(seen, job) : NOOP; + try { + for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job && job.active !== false) { + if (check(job)) { + continue; + } + callWithErrorHandling(job, null, 14); + } + } + } finally { + flushIndex = 0; + queue.length = 0; + flushPostFlushCbs(seen); + isFlushing = false; + currentFlushPromise = null; + if (queue.length || pendingPostFlushCbs.length) { + flushJobs(seen); + } + } +} +function checkRecursiveUpdates(seen, fn) { + if (!seen.has(fn)) { + seen.set(fn, 1); + } else { + const count = seen.get(fn); + if (count > RECURSION_LIMIT) { + const instance = fn.ownerInstance; + const componentName = instance && getComponentName(instance.type); + warn2( + `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.` + ); + return true; + } else { + seen.set(fn, count + 1); + } + } +} +var isHmrUpdating = false; +var hmrDirtyComponents = /* @__PURE__ */ new Set(); +if (true) { + getGlobalThis().__VUE_HMR_RUNTIME__ = { + createRecord: tryWrap(createRecord), + rerender: tryWrap(rerender), + reload: tryWrap(reload) + }; +} +var map = /* @__PURE__ */ new Map(); +function registerHMR(instance) { + const id = instance.type.__hmrId; + let record = map.get(id); + if (!record) { + createRecord(id, instance.type); + record = map.get(id); + } + record.instances.add(instance); +} +function unregisterHMR(instance) { + map.get(instance.type.__hmrId).instances.delete(instance); +} +function createRecord(id, initialDef) { + if (map.has(id)) { + return false; + } + map.set(id, { + initialDef: normalizeClassComponent(initialDef), + instances: /* @__PURE__ */ new Set() + }); + return true; +} +function normalizeClassComponent(component) { + return isClassComponent(component) ? component.__vccOpts : component; +} +function rerender(id, newRender) { + const record = map.get(id); + if (!record) { + return; + } + record.initialDef.render = newRender; + [...record.instances].forEach((instance) => { + if (newRender) { + instance.render = newRender; + normalizeClassComponent(instance.type).render = newRender; + } + instance.renderCache = []; + isHmrUpdating = true; + instance.update(); + isHmrUpdating = false; + }); +} +function reload(id, newComp) { + const record = map.get(id); + if (!record) + return; + newComp = normalizeClassComponent(newComp); + updateComponentDef(record.initialDef, newComp); + const instances = [...record.instances]; + for (const instance of instances) { + const oldComp = normalizeClassComponent(instance.type); + if (!hmrDirtyComponents.has(oldComp)) { + if (oldComp !== record.initialDef) { + updateComponentDef(oldComp, newComp); + } + hmrDirtyComponents.add(oldComp); + } + instance.appContext.propsCache.delete(instance.type); + instance.appContext.emitsCache.delete(instance.type); + instance.appContext.optionsCache.delete(instance.type); + if (instance.ceReload) { + hmrDirtyComponents.add(oldComp); + instance.ceReload(newComp.styles); + hmrDirtyComponents.delete(oldComp); + } else if (instance.parent) { + queueJob(instance.parent.update); + } else if (instance.appContext.reload) { + instance.appContext.reload(); + } else if (typeof window !== "undefined") { + window.location.reload(); + } else { + console.warn( + "[HMR] Root or manually mounted instance modified. Full reload required." + ); + } + } + queuePostFlushCb(() => { + for (const instance of instances) { + hmrDirtyComponents.delete( + normalizeClassComponent(instance.type) + ); + } + }); +} +function updateComponentDef(oldComp, newComp) { + extend(oldComp, newComp); + for (const key in oldComp) { + if (key !== "__file" && !(key in newComp)) { + delete oldComp[key]; + } + } +} +function tryWrap(fn) { + return (id, arg) => { + try { + return fn(id, arg); + } catch (e) { + console.error(e); + console.warn( + `[HMR] Something went wrong during Vue component hot-reload. Full reload required.` + ); + } + }; +} +var devtools; +var buffer = []; +var devtoolsNotInstalled = false; +function emit$1(event, ...args) { + if (devtools) { + devtools.emit(event, ...args); + } else if (!devtoolsNotInstalled) { + buffer.push({ event, args }); + } +} +function setDevtoolsHook(hook, target) { + var _a, _b; + devtools = hook; + if (devtools) { + devtools.enabled = true; + buffer.forEach(({ event, args }) => devtools.emit(event, ...args)); + buffer = []; + } else if ( + // handle late devtools injection - only do this if we are in an actual + // browser environment to avoid the timer handle stalling test runner exit + // (#4815) + typeof window !== "undefined" && // some envs mock window but not fully + window.HTMLElement && // also exclude jsdom + !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes("jsdom")) + ) { + const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []; + replay.push((newHook) => { + setDevtoolsHook(newHook, target); + }); + setTimeout(() => { + if (!devtools) { + target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null; + devtoolsNotInstalled = true; + buffer = []; + } + }, 3e3); + } else { + devtoolsNotInstalled = true; + buffer = []; + } +} +function devtoolsInitApp(app, version2) { + emit$1("app:init", app, version2, { + Fragment, + Text, + Comment, + Static + }); +} +function devtoolsUnmountApp(app) { + emit$1("app:unmount", app); +} +var devtoolsComponentAdded = createDevtoolsComponentHook( + "component:added" + /* COMPONENT_ADDED */ +); +var devtoolsComponentUpdated = createDevtoolsComponentHook( + "component:updated" + /* COMPONENT_UPDATED */ +); +var _devtoolsComponentRemoved = createDevtoolsComponentHook( + "component:removed" + /* COMPONENT_REMOVED */ +); +var devtoolsComponentRemoved = (component) => { + if (devtools && typeof devtools.cleanupBuffer === "function" && // remove the component if it wasn't buffered + !devtools.cleanupBuffer(component)) { + _devtoolsComponentRemoved(component); + } +}; +function createDevtoolsComponentHook(hook) { + return (component) => { + emit$1( + hook, + component.appContext.app, + component.uid, + component.parent ? component.parent.uid : void 0, + component + ); + }; +} +var devtoolsPerfStart = createDevtoolsPerformanceHook( + "perf:start" + /* PERFORMANCE_START */ +); +var devtoolsPerfEnd = createDevtoolsPerformanceHook( + "perf:end" + /* PERFORMANCE_END */ +); +function createDevtoolsPerformanceHook(hook) { + return (component, type, time) => { + emit$1(hook, component.appContext.app, component.uid, component, type, time); + }; +} +function devtoolsComponentEmit(component, event, params) { + emit$1( + "component:emit", + component.appContext.app, + component, + event, + params + ); +} +function emit(instance, event, ...rawArgs) { + if (instance.isUnmounted) + return; + const props = instance.vnode.props || EMPTY_OBJ; + if (true) { + const { + emitsOptions, + propsOptions: [propsOptions] + } = instance; + if (emitsOptions) { + if (!(event in emitsOptions) && true) { + if (!propsOptions || !(toHandlerKey(event) in propsOptions)) { + warn2( + `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(event)}" prop.` + ); + } + } else { + const validator = emitsOptions[event]; + if (isFunction(validator)) { + const isValid = validator(...rawArgs); + if (!isValid) { + warn2( + `Invalid event arguments: event validation failed for event "${event}".` + ); + } + } + } + } + } + let args = rawArgs; + const isModelListener2 = event.startsWith("update:"); + const modelArg = isModelListener2 && event.slice(7); + if (modelArg && modelArg in props) { + const modifiersKey = `${modelArg === "modelValue" ? "model" : modelArg}Modifiers`; + const { number, trim } = props[modifiersKey] || EMPTY_OBJ; + if (trim) { + args = rawArgs.map((a) => isString(a) ? a.trim() : a); + } + if (number) { + args = rawArgs.map(looseToNumber); + } + } + if (true) { + devtoolsComponentEmit(instance, event, args); + } + if (true) { + const lowerCaseEvent = event.toLowerCase(); + if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) { + warn2( + `Event "${lowerCaseEvent}" is emitted in component ${formatComponentName( + instance, + instance.type + )} but the handler is registered for "${event}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${hyphenate(event)}" instead of "${event}".` + ); + } + } + let handlerName; + let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249) + props[handlerName = toHandlerKey(camelize(event))]; + if (!handler && isModelListener2) { + handler = props[handlerName = toHandlerKey(hyphenate(event))]; + } + if (handler) { + callWithAsyncErrorHandling( + handler, + instance, + 6, + args + ); + } + const onceHandler = props[handlerName + `Once`]; + if (onceHandler) { + if (!instance.emitted) { + instance.emitted = {}; + } else if (instance.emitted[handlerName]) { + return; + } + instance.emitted[handlerName] = true; + callWithAsyncErrorHandling( + onceHandler, + instance, + 6, + args + ); + } +} +function normalizeEmitsOptions(comp, appContext, asMixin = false) { + const cache = appContext.emitsCache; + const cached = cache.get(comp); + if (cached !== void 0) { + return cached; + } + const raw = comp.emits; + let normalized = {}; + let hasExtends = false; + if (__VUE_OPTIONS_API__ && !isFunction(comp)) { + const extendEmits = (raw2) => { + const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true); + if (normalizedFromExtend) { + hasExtends = true; + extend(normalized, normalizedFromExtend); + } + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendEmits); + } + if (comp.extends) { + extendEmits(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendEmits); + } + } + if (!raw && !hasExtends) { + if (isObject(comp)) { + cache.set(comp, null); + } + return null; + } + if (isArray(raw)) { + raw.forEach((key) => normalized[key] = null); + } else { + extend(normalized, raw); + } + if (isObject(comp)) { + cache.set(comp, normalized); + } + return normalized; +} +function isEmitListener(options, key) { + if (!options || !isOn(key)) { + return false; + } + key = key.slice(2).replace(/Once$/, ""); + return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key); +} +var currentRenderingInstance = null; +var currentScopeId = null; +function setCurrentRenderingInstance(instance) { + const prev = currentRenderingInstance; + currentRenderingInstance = instance; + currentScopeId = instance && instance.type.__scopeId || null; + return prev; +} +function pushScopeId(id) { + currentScopeId = id; +} +function popScopeId() { + currentScopeId = null; +} +var withScopeId = (_id) => withCtx; +function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) { + if (!ctx) + return fn; + if (fn._n) { + return fn; + } + const renderFnWithContext = (...args) => { + if (renderFnWithContext._d) { + setBlockTracking(-1); + } + const prevInstance = setCurrentRenderingInstance(ctx); + let res; + try { + res = fn(...args); + } finally { + setCurrentRenderingInstance(prevInstance); + if (renderFnWithContext._d) { + setBlockTracking(1); + } + } + if (true) { + devtoolsComponentUpdated(ctx); + } + return res; + }; + renderFnWithContext._n = true; + renderFnWithContext._c = true; + renderFnWithContext._d = true; + return renderFnWithContext; +} +var accessedAttrs = false; +function markAttrsAccessed() { + accessedAttrs = true; +} +function renderComponentRoot(instance) { + const { + type: Component, + vnode, + proxy, + withProxy, + props, + propsOptions: [propsOptions], + slots, + attrs, + emit: emit2, + render: render2, + renderCache, + data, + setupState, + ctx, + inheritAttrs + } = instance; + let result; + let fallthroughAttrs; + const prev = setCurrentRenderingInstance(instance); + if (true) { + accessedAttrs = false; + } + try { + if (vnode.shapeFlag & 4) { + const proxyToUse = withProxy || proxy; + result = normalizeVNode( + render2.call( + proxyToUse, + proxyToUse, + renderCache, + props, + setupState, + data, + ctx + ) + ); + fallthroughAttrs = attrs; + } else { + const render22 = Component; + if (attrs === props) { + markAttrsAccessed(); + } + result = normalizeVNode( + render22.length > 1 ? render22( + props, + true ? { + get attrs() { + markAttrsAccessed(); + return attrs; + }, + slots, + emit: emit2 + } : { attrs, slots, emit: emit2 } + ) : render22( + props, + null + /* we know it doesn't need it */ + ) + ); + fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs); + } + } catch (err) { + blockStack.length = 0; + handleError(err, instance, 1); + result = createVNode(Comment); + } + let root = result; + let setRoot = void 0; + if (result.patchFlag > 0 && result.patchFlag & 2048) { + [root, setRoot] = getChildRoot(result); + } + if (fallthroughAttrs && inheritAttrs !== false) { + const keys = Object.keys(fallthroughAttrs); + const { shapeFlag } = root; + if (keys.length) { + if (shapeFlag & (1 | 6)) { + if (propsOptions && keys.some(isModelListener)) { + fallthroughAttrs = filterModelListeners( + fallthroughAttrs, + propsOptions + ); + } + root = cloneVNode(root, fallthroughAttrs); + } else if (!accessedAttrs && root.type !== Comment) { + const allAttrs = Object.keys(attrs); + const eventAttrs = []; + const extraAttrs = []; + for (let i = 0, l = allAttrs.length; i < l; i++) { + const key = allAttrs[i]; + if (isOn(key)) { + if (!isModelListener(key)) { + eventAttrs.push(key[2].toLowerCase() + key.slice(3)); + } + } else { + extraAttrs.push(key); + } + } + if (extraAttrs.length) { + warn2( + `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.` + ); + } + if (eventAttrs.length) { + warn2( + `Extraneous non-emits event listeners (${eventAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.` + ); + } + } + } + } + if (vnode.dirs) { + if (!isElementRoot(root)) { + warn2( + `Runtime directive used on component with non-element root node. The directives will not function as intended.` + ); + } + root = cloneVNode(root); + root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs; + } + if (vnode.transition) { + if (!isElementRoot(root)) { + warn2( + `Component inside renders non-element root node that cannot be animated.` + ); + } + root.transition = vnode.transition; + } + if (setRoot) { + setRoot(root); + } else { + result = root; + } + setCurrentRenderingInstance(prev); + return result; +} +var getChildRoot = (vnode) => { + const rawChildren = vnode.children; + const dynamicChildren = vnode.dynamicChildren; + const childRoot = filterSingleRoot(rawChildren); + if (!childRoot) { + return [vnode, void 0]; + } + const index = rawChildren.indexOf(childRoot); + const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1; + const setRoot = (updatedRoot) => { + rawChildren[index] = updatedRoot; + if (dynamicChildren) { + if (dynamicIndex > -1) { + dynamicChildren[dynamicIndex] = updatedRoot; + } else if (updatedRoot.patchFlag > 0) { + vnode.dynamicChildren = [...dynamicChildren, updatedRoot]; + } + } + }; + return [normalizeVNode(childRoot), setRoot]; +}; +function filterSingleRoot(children) { + let singleRoot; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isVNode(child)) { + if (child.type !== Comment || child.children === "v-if") { + if (singleRoot) { + return; + } else { + singleRoot = child; + } + } + } else { + return; + } + } + return singleRoot; +} +var getFunctionalFallthrough = (attrs) => { + let res; + for (const key in attrs) { + if (key === "class" || key === "style" || isOn(key)) { + (res || (res = {}))[key] = attrs[key]; + } + } + return res; +}; +var filterModelListeners = (attrs, props) => { + const res = {}; + for (const key in attrs) { + if (!isModelListener(key) || !(key.slice(9) in props)) { + res[key] = attrs[key]; + } + } + return res; +}; +var isElementRoot = (vnode) => { + return vnode.shapeFlag & (6 | 1) || vnode.type === Comment; +}; +function shouldUpdateComponent(prevVNode, nextVNode, optimized) { + const { props: prevProps, children: prevChildren, component } = prevVNode; + const { props: nextProps, children: nextChildren, patchFlag } = nextVNode; + const emits = component.emitsOptions; + if ((prevChildren || nextChildren) && isHmrUpdating) { + return true; + } + if (nextVNode.dirs || nextVNode.transition) { + return true; + } + if (optimized && patchFlag >= 0) { + if (patchFlag & 1024) { + return true; + } + if (patchFlag & 16) { + if (!prevProps) { + return !!nextProps; + } + return hasPropsChanged(prevProps, nextProps, emits); + } else if (patchFlag & 8) { + const dynamicProps = nextVNode.dynamicProps; + for (let i = 0; i < dynamicProps.length; i++) { + const key = dynamicProps[i]; + if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) { + return true; + } + } + } + } else { + if (prevChildren || nextChildren) { + if (!nextChildren || !nextChildren.$stable) { + return true; + } + } + if (prevProps === nextProps) { + return false; + } + if (!prevProps) { + return !!nextProps; + } + if (!nextProps) { + return true; + } + return hasPropsChanged(prevProps, nextProps, emits); + } + return false; +} +function hasPropsChanged(prevProps, nextProps, emitsOptions) { + const nextKeys = Object.keys(nextProps); + if (nextKeys.length !== Object.keys(prevProps).length) { + return true; + } + for (let i = 0; i < nextKeys.length; i++) { + const key = nextKeys[i]; + if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) { + return true; + } + } + return false; +} +function updateHOCHostEl({ vnode, parent }, el) { + while (parent && parent.subTree === vnode) { + (vnode = parent.vnode).el = el; + parent = parent.parent; + } +} +var isSuspense = (type) => type.__isSuspense; +var SuspenseImpl = { + name: "Suspense", + // In order to make Suspense tree-shakable, we need to avoid importing it + // directly in the renderer. The renderer checks for the __isSuspense flag + // on a vnode's type and calls the `process` method, passing in renderer + // internals. + __isSuspense: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) { + if (n1 == null) { + mountSuspense( + n2, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized, + rendererInternals + ); + } else { + patchSuspense( + n1, + n2, + container, + anchor, + parentComponent, + isSVG, + slotScopeIds, + optimized, + rendererInternals + ); + } + }, + hydrate: hydrateSuspense, + create: createSuspenseBoundary, + normalize: normalizeSuspenseChildren +}; +var Suspense = SuspenseImpl; +function triggerEvent(vnode, name) { + const eventListener = vnode.props && vnode.props[name]; + if (isFunction(eventListener)) { + eventListener(); + } +} +function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) { + const { + p: patch, + o: { createElement } + } = rendererInternals; + const hiddenContainer = createElement("div"); + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + container, + hiddenContainer, + anchor, + isSVG, + slotScopeIds, + optimized, + rendererInternals + ); + patch( + null, + suspense.pendingBranch = vnode.ssContent, + hiddenContainer, + null, + parentComponent, + suspense, + isSVG, + slotScopeIds + ); + if (suspense.deps > 0) { + triggerEvent(vnode, "onPending"); + triggerEvent(vnode, "onFallback"); + patch( + null, + vnode.ssFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + isSVG, + slotScopeIds + ); + setActiveBranch(suspense, vnode.ssFallback); + } else { + suspense.resolve(false, true); + } +} +function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) { + const suspense = n2.suspense = n1.suspense; + suspense.vnode = n2; + n2.el = n1.el; + const newBranch = n2.ssContent; + const newFallback = n2.ssFallback; + const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense; + if (pendingBranch) { + suspense.pendingBranch = newBranch; + if (isSameVNodeType(newBranch, pendingBranch)) { + patch( + pendingBranch, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else if (isInFallback) { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + isSVG, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } else { + suspense.pendingId++; + if (isHydrating) { + suspense.isHydrating = false; + suspense.activeBranch = pendingBranch; + } else { + unmount(pendingBranch, parentComponent, suspense); + } + suspense.deps = 0; + suspense.effects.length = 0; + suspense.hiddenContainer = createElement("div"); + if (isInFallback) { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + isSVG, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + suspense.resolve(true); + } else { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } + } + } + } else { + if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newBranch); + } else { + triggerEvent(n2, "onPending"); + suspense.pendingBranch = newBranch; + suspense.pendingId++; + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + const { timeout, pendingId } = suspense; + if (timeout > 0) { + setTimeout(() => { + if (suspense.pendingId === pendingId) { + suspense.fallback(newFallback); + } + }, timeout); + } else if (timeout === 0) { + suspense.fallback(newFallback); + } + } + } + } +} +var hasWarned = false; +function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) { + if (!hasWarned) { + hasWarned = true; + console[console.info ? "info" : "log"]( + ` is an experimental feature and its API will likely change.` + ); + } + const { + p: patch, + m: move, + um: unmount, + n: next, + o: { parentNode, remove: remove2 } + } = rendererInternals; + let parentSuspenseId; + const isSuspensible = isVNodeSuspensible(vnode); + if (isSuspensible) { + if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) { + parentSuspenseId = parentSuspense.pendingId; + parentSuspense.deps++; + } + } + const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0; + if (true) { + assertNumber(timeout, `Suspense timeout`); + } + const suspense = { + vnode, + parent: parentSuspense, + parentComponent, + isSVG, + container, + hiddenContainer, + anchor, + deps: 0, + pendingId: 0, + timeout: typeof timeout === "number" ? timeout : -1, + activeBranch: null, + pendingBranch: null, + isInFallback: true, + isHydrating, + isUnmounted: false, + effects: [], + resolve(resume = false, sync = false) { + if (true) { + if (!resume && !suspense.pendingBranch) { + throw new Error( + `suspense.resolve() is called without a pending branch.` + ); + } + if (suspense.isUnmounted) { + throw new Error( + `suspense.resolve() is called on an already unmounted suspense boundary.` + ); + } + } + const { + vnode: vnode2, + activeBranch, + pendingBranch, + pendingId, + effects, + parentComponent: parentComponent2, + container: container2 + } = suspense; + if (suspense.isHydrating) { + suspense.isHydrating = false; + } else if (!resume) { + const delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = () => { + if (pendingId === suspense.pendingId) { + move(pendingBranch, container2, anchor2, 0); + } + }; + } + let { anchor: anchor2 } = suspense; + if (activeBranch) { + anchor2 = next(activeBranch); + unmount(activeBranch, parentComponent2, suspense, true); + } + if (!delayEnter) { + move(pendingBranch, container2, anchor2, 0); + } + } + setActiveBranch(suspense, pendingBranch); + suspense.pendingBranch = null; + suspense.isInFallback = false; + let parent = suspense.parent; + let hasUnresolvedAncestor = false; + while (parent) { + if (parent.pendingBranch) { + parent.effects.push(...effects); + hasUnresolvedAncestor = true; + break; + } + parent = parent.parent; + } + if (!hasUnresolvedAncestor) { + queuePostFlushCb(effects); + } + suspense.effects = []; + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) { + parentSuspense.deps--; + if (parentSuspense.deps === 0 && !sync) { + parentSuspense.resolve(); + } + } + } + triggerEvent(vnode2, "onResolve"); + }, + fallback(fallbackVNode) { + if (!suspense.pendingBranch) { + return; + } + const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, isSVG: isSVG2 } = suspense; + triggerEvent(vnode2, "onFallback"); + const anchor2 = next(activeBranch); + const mountFallback = () => { + if (!suspense.isInFallback) { + return; + } + patch( + null, + fallbackVNode, + container2, + anchor2, + parentComponent2, + null, + // fallback tree will not have suspense context + isSVG2, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, fallbackVNode); + }; + const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = mountFallback; + } + suspense.isInFallback = true; + unmount( + activeBranch, + parentComponent2, + null, + // no suspense so unmount hooks fire now + true + // shouldRemove + ); + if (!delayEnter) { + mountFallback(); + } + }, + move(container2, anchor2, type) { + suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type); + suspense.container = container2; + }, + next() { + return suspense.activeBranch && next(suspense.activeBranch); + }, + registerDep(instance, setupRenderEffect) { + const isInPendingSuspense = !!suspense.pendingBranch; + if (isInPendingSuspense) { + suspense.deps++; + } + const hydratedEl = instance.vnode.el; + instance.asyncDep.catch((err) => { + handleError(err, instance, 0); + }).then((asyncSetupResult) => { + if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) { + return; + } + instance.asyncResolved = true; + const { vnode: vnode2 } = instance; + if (true) { + pushWarningContext(vnode2); + } + handleSetupResult(instance, asyncSetupResult, false); + if (hydratedEl) { + vnode2.el = hydratedEl; + } + const placeholder = !hydratedEl && instance.subTree.el; + setupRenderEffect( + instance, + vnode2, + // component may have been moved before resolve. + // if this is not a hydration, instance.subTree will be the comment + // placeholder. + parentNode(hydratedEl || instance.subTree.el), + // anchor will not be used if this is hydration, so only need to + // consider the comment placeholder case. + hydratedEl ? null : next(instance.subTree), + suspense, + isSVG, + optimized + ); + if (placeholder) { + remove2(placeholder); + } + updateHOCHostEl(instance, vnode2.el); + if (true) { + popWarningContext(); + } + if (isInPendingSuspense && --suspense.deps === 0) { + suspense.resolve(); + } + }); + }, + unmount(parentSuspense2, doRemove) { + suspense.isUnmounted = true; + if (suspense.activeBranch) { + unmount( + suspense.activeBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + if (suspense.pendingBranch) { + unmount( + suspense.pendingBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + } + }; + return suspense; +} +function hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) { + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + node.parentNode, + document.createElement("div"), + null, + isSVG, + slotScopeIds, + optimized, + rendererInternals, + true + /* hydrating */ + ); + const result = hydrateNode( + node, + suspense.pendingBranch = vnode.ssContent, + parentComponent, + suspense, + slotScopeIds, + optimized + ); + if (suspense.deps === 0) { + suspense.resolve(false, true); + } + return result; +} +function normalizeSuspenseChildren(vnode) { + const { shapeFlag, children } = vnode; + const isSlotChildren = shapeFlag & 32; + vnode.ssContent = normalizeSuspenseSlot( + isSlotChildren ? children.default : children + ); + vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment); +} +function normalizeSuspenseSlot(s) { + let block; + if (isFunction(s)) { + const trackBlock = isBlockTreeEnabled && s._c; + if (trackBlock) { + s._d = false; + openBlock(); + } + s = s(); + if (trackBlock) { + s._d = true; + block = currentBlock; + closeBlock(); + } + } + if (isArray(s)) { + const singleChild = filterSingleRoot(s); + if (!singleChild) { + warn2(` slots expect a single root node.`); + } + s = singleChild; + } + s = normalizeVNode(s); + if (block && !s.dynamicChildren) { + s.dynamicChildren = block.filter((c) => c !== s); + } + return s; +} +function queueEffectWithSuspense(fn, suspense) { + if (suspense && suspense.pendingBranch) { + if (isArray(fn)) { + suspense.effects.push(...fn); + } else { + suspense.effects.push(fn); + } + } else { + queuePostFlushCb(fn); + } +} +function setActiveBranch(suspense, branch) { + suspense.activeBranch = branch; + const { vnode, parentComponent } = suspense; + const el = vnode.el = branch.el; + if (parentComponent && parentComponent.subTree === vnode) { + parentComponent.vnode.el = el; + updateHOCHostEl(parentComponent, el); + } +} +function isVNodeSuspensible(vnode) { + var _a; + return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false; +} +function watchEffect(effect2, options) { + return doWatch(effect2, null, options); +} +function watchPostEffect(effect2, options) { + return doWatch( + effect2, + null, + true ? extend({}, options, { flush: "post" }) : { flush: "post" } + ); +} +function watchSyncEffect(effect2, options) { + return doWatch( + effect2, + null, + true ? extend({}, options, { flush: "sync" }) : { flush: "sync" } + ); +} +var INITIAL_WATCHER_VALUE = {}; +function watch(source, cb, options) { + if (!isFunction(cb)) { + warn2( + `\`watch(fn, options?)\` signature has been moved to a separate API. Use \`watchEffect(fn, options?)\` instead. \`watch\` now only supports \`watch(source, cb, options?) signature.` + ); + } + return doWatch(source, cb, options); +} +function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) { + var _a; + if (!cb) { + if (immediate !== void 0) { + warn2( + `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + if (deep !== void 0) { + warn2( + `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + } + const warnInvalidSource = (s) => { + warn2( + `Invalid watch source: `, + s, + `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.` + ); + }; + const instance = getCurrentScope() === ((_a = currentInstance) == null ? void 0 : _a.scope) ? currentInstance : null; + let getter; + let forceTrigger = false; + let isMultiSource = false; + if (isRef(source)) { + getter = () => source.value; + forceTrigger = isShallow(source); + } else if (isReactive(source)) { + getter = () => source; + deep = true; + } else if (isArray(source)) { + isMultiSource = true; + forceTrigger = source.some((s) => isReactive(s) || isShallow(s)); + getter = () => source.map((s) => { + if (isRef(s)) { + return s.value; + } else if (isReactive(s)) { + return traverse(s); + } else if (isFunction(s)) { + return callWithErrorHandling(s, instance, 2); + } else { + warnInvalidSource(s); + } + }); + } else if (isFunction(source)) { + if (cb) { + getter = () => callWithErrorHandling(source, instance, 2); + } else { + getter = () => { + if (instance && instance.isUnmounted) { + return; + } + if (cleanup) { + cleanup(); + } + return callWithAsyncErrorHandling( + source, + instance, + 3, + [onCleanup] + ); + }; + } + } else { + getter = NOOP; + warnInvalidSource(source); + } + if (cb && deep) { + const baseGetter = getter; + getter = () => traverse(baseGetter()); + } + let cleanup; + let onCleanup = (fn) => { + cleanup = effect2.onStop = () => { + callWithErrorHandling(fn, instance, 4); + }; + }; + let ssrCleanup; + if (isInSSRComponentSetup) { + onCleanup = NOOP; + if (!cb) { + getter(); + } else if (immediate) { + callWithAsyncErrorHandling(cb, instance, 3, [ + getter(), + isMultiSource ? [] : void 0, + onCleanup + ]); + } + if (flush === "sync") { + const ctx = useSSRContext(); + ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []); + } else { + return NOOP; + } + } + let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE; + const job = () => { + if (!effect2.active) { + return; + } + if (cb) { + const newValue = effect2.run(); + if (deep || forceTrigger || (isMultiSource ? newValue.some( + (v, i) => hasChanged(v, oldValue[i]) + ) : hasChanged(newValue, oldValue)) || false) { + if (cleanup) { + cleanup(); + } + callWithAsyncErrorHandling(cb, instance, 3, [ + newValue, + // pass undefined as the old value when it's changed for the first time + oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue, + onCleanup + ]); + oldValue = newValue; + } + } else { + effect2.run(); + } + }; + job.allowRecurse = !!cb; + let scheduler; + if (flush === "sync") { + scheduler = job; + } else if (flush === "post") { + scheduler = () => queuePostRenderEffect(job, instance && instance.suspense); + } else { + job.pre = true; + if (instance) + job.id = instance.uid; + scheduler = () => queueJob(job); + } + const effect2 = new ReactiveEffect(getter, scheduler); + if (true) { + effect2.onTrack = onTrack; + effect2.onTrigger = onTrigger; + } + if (cb) { + if (immediate) { + job(); + } else { + oldValue = effect2.run(); + } + } else if (flush === "post") { + queuePostRenderEffect( + effect2.run.bind(effect2), + instance && instance.suspense + ); + } else { + effect2.run(); + } + const unwatch = () => { + effect2.stop(); + if (instance && instance.scope) { + remove(instance.scope.effects, effect2); + } + }; + if (ssrCleanup) + ssrCleanup.push(unwatch); + return unwatch; +} +function instanceWatch(source, value, options) { + const publicThis = this.proxy; + const getter = isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis); + let cb; + if (isFunction(value)) { + cb = value; + } else { + cb = value.handler; + options = value; + } + const cur = currentInstance; + setCurrentInstance(this); + const res = doWatch(getter, cb.bind(publicThis), options); + if (cur) { + setCurrentInstance(cur); + } else { + unsetCurrentInstance(); + } + return res; +} +function createPathGetter(ctx, path) { + const segments = path.split("."); + return () => { + let cur = ctx; + for (let i = 0; i < segments.length && cur; i++) { + cur = cur[segments[i]]; + } + return cur; + }; +} +function traverse(value, seen) { + if (!isObject(value) || value["__v_skip"]) { + return value; + } + seen = seen || /* @__PURE__ */ new Set(); + if (seen.has(value)) { + return value; + } + seen.add(value); + if (isRef(value)) { + traverse(value.value, seen); + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + traverse(value[i], seen); + } + } else if (isSet(value) || isMap(value)) { + value.forEach((v) => { + traverse(v, seen); + }); + } else if (isPlainObject(value)) { + for (const key in value) { + traverse(value[key], seen); + } + } + return value; +} +function validateDirectiveName(name) { + if (isBuiltInDirective(name)) { + warn2("Do not use built-in directive ids as custom directive id: " + name); + } +} +function withDirectives(vnode, directives) { + const internalInstance = currentRenderingInstance; + if (internalInstance === null) { + warn2(`withDirectives can only be used inside render functions.`); + return vnode; + } + const instance = getExposeProxy(internalInstance) || internalInstance.proxy; + const bindings = vnode.dirs || (vnode.dirs = []); + for (let i = 0; i < directives.length; i++) { + let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i]; + if (dir) { + if (isFunction(dir)) { + dir = { + mounted: dir, + updated: dir + }; + } + if (dir.deep) { + traverse(value); + } + bindings.push({ + dir, + instance, + value, + oldValue: void 0, + arg, + modifiers + }); + } + } + return vnode; +} +function invokeDirectiveHook(vnode, prevVNode, instance, name) { + const bindings = vnode.dirs; + const oldBindings = prevVNode && prevVNode.dirs; + for (let i = 0; i < bindings.length; i++) { + const binding = bindings[i]; + if (oldBindings) { + binding.oldValue = oldBindings[i].value; + } + let hook = binding.dir[name]; + if (hook) { + pauseTracking(); + callWithAsyncErrorHandling(hook, instance, 8, [ + vnode.el, + binding, + vnode, + prevVNode + ]); + resetTracking(); + } + } +} +function useTransitionState() { + const state = { + isMounted: false, + isLeaving: false, + isUnmounting: false, + leavingVNodes: /* @__PURE__ */ new Map() + }; + onMounted(() => { + state.isMounted = true; + }); + onBeforeUnmount(() => { + state.isUnmounting = true; + }); + return state; +} +var TransitionHookValidator = [Function, Array]; +var BaseTransitionPropsValidators = { + mode: String, + appear: Boolean, + persisted: Boolean, + // enter + onBeforeEnter: TransitionHookValidator, + onEnter: TransitionHookValidator, + onAfterEnter: TransitionHookValidator, + onEnterCancelled: TransitionHookValidator, + // leave + onBeforeLeave: TransitionHookValidator, + onLeave: TransitionHookValidator, + onAfterLeave: TransitionHookValidator, + onLeaveCancelled: TransitionHookValidator, + // appear + onBeforeAppear: TransitionHookValidator, + onAppear: TransitionHookValidator, + onAfterAppear: TransitionHookValidator, + onAppearCancelled: TransitionHookValidator +}; +var BaseTransitionImpl = { + name: `BaseTransition`, + props: BaseTransitionPropsValidators, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const state = useTransitionState(); + let prevTransitionKey; + return () => { + const children = slots.default && getTransitionRawChildren(slots.default(), true); + if (!children || !children.length) { + return; + } + let child = children[0]; + if (children.length > 1) { + let hasFound = false; + for (const c of children) { + if (c.type !== Comment) { + if (hasFound) { + warn2( + " can only be used on a single element or component. Use for lists." + ); + break; + } + child = c; + hasFound = true; + if (false) + break; + } + } + } + const rawProps = toRaw(props); + const { mode } = rawProps; + if (mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") { + warn2(`invalid mode: ${mode}`); + } + if (state.isLeaving) { + return emptyPlaceholder(child); + } + const innerChild = getKeepAliveChild(child); + if (!innerChild) { + return emptyPlaceholder(child); + } + const enterHooks = resolveTransitionHooks( + innerChild, + rawProps, + state, + instance + ); + setTransitionHooks(innerChild, enterHooks); + const oldChild = instance.subTree; + const oldInnerChild = oldChild && getKeepAliveChild(oldChild); + let transitionKeyChanged = false; + const { getTransitionKey } = innerChild.type; + if (getTransitionKey) { + const key = getTransitionKey(); + if (prevTransitionKey === void 0) { + prevTransitionKey = key; + } else if (key !== prevTransitionKey) { + prevTransitionKey = key; + transitionKeyChanged = true; + } + } + if (oldInnerChild && oldInnerChild.type !== Comment && (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) { + const leavingHooks = resolveTransitionHooks( + oldInnerChild, + rawProps, + state, + instance + ); + setTransitionHooks(oldInnerChild, leavingHooks); + if (mode === "out-in") { + state.isLeaving = true; + leavingHooks.afterLeave = () => { + state.isLeaving = false; + if (instance.update.active !== false) { + instance.update(); + } + }; + return emptyPlaceholder(child); + } else if (mode === "in-out" && innerChild.type !== Comment) { + leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => { + const leavingVNodesCache = getLeavingNodesForType( + state, + oldInnerChild + ); + leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild; + el._leaveCb = () => { + earlyRemove(); + el._leaveCb = void 0; + delete enterHooks.delayedLeave; + }; + enterHooks.delayedLeave = delayedLeave; + }; + } + } + return child; + }; + } +}; +var BaseTransition = BaseTransitionImpl; +function getLeavingNodesForType(state, vnode) { + const { leavingVNodes } = state; + let leavingVNodesCache = leavingVNodes.get(vnode.type); + if (!leavingVNodesCache) { + leavingVNodesCache = /* @__PURE__ */ Object.create(null); + leavingVNodes.set(vnode.type, leavingVNodesCache); + } + return leavingVNodesCache; +} +function resolveTransitionHooks(vnode, props, state, instance) { + const { + appear, + mode, + persisted = false, + onBeforeEnter, + onEnter, + onAfterEnter, + onEnterCancelled, + onBeforeLeave, + onLeave, + onAfterLeave, + onLeaveCancelled, + onBeforeAppear, + onAppear, + onAfterAppear, + onAppearCancelled + } = props; + const key = String(vnode.key); + const leavingVNodesCache = getLeavingNodesForType(state, vnode); + const callHook3 = (hook, args) => { + hook && callWithAsyncErrorHandling( + hook, + instance, + 9, + args + ); + }; + const callAsyncHook = (hook, args) => { + const done = args[1]; + callHook3(hook, args); + if (isArray(hook)) { + if (hook.every((hook2) => hook2.length <= 1)) + done(); + } else if (hook.length <= 1) { + done(); + } + }; + const hooks = { + mode, + persisted, + beforeEnter(el) { + let hook = onBeforeEnter; + if (!state.isMounted) { + if (appear) { + hook = onBeforeAppear || onBeforeEnter; + } else { + return; + } + } + if (el._leaveCb) { + el._leaveCb( + true + /* cancelled */ + ); + } + const leavingVNode = leavingVNodesCache[key]; + if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el._leaveCb) { + leavingVNode.el._leaveCb(); + } + callHook3(hook, [el]); + }, + enter(el) { + let hook = onEnter; + let afterHook = onAfterEnter; + let cancelHook = onEnterCancelled; + if (!state.isMounted) { + if (appear) { + hook = onAppear || onEnter; + afterHook = onAfterAppear || onAfterEnter; + cancelHook = onAppearCancelled || onEnterCancelled; + } else { + return; + } + } + let called = false; + const done = el._enterCb = (cancelled) => { + if (called) + return; + called = true; + if (cancelled) { + callHook3(cancelHook, [el]); + } else { + callHook3(afterHook, [el]); + } + if (hooks.delayedLeave) { + hooks.delayedLeave(); + } + el._enterCb = void 0; + }; + if (hook) { + callAsyncHook(hook, [el, done]); + } else { + done(); + } + }, + leave(el, remove2) { + const key2 = String(vnode.key); + if (el._enterCb) { + el._enterCb( + true + /* cancelled */ + ); + } + if (state.isUnmounting) { + return remove2(); + } + callHook3(onBeforeLeave, [el]); + let called = false; + const done = el._leaveCb = (cancelled) => { + if (called) + return; + called = true; + remove2(); + if (cancelled) { + callHook3(onLeaveCancelled, [el]); + } else { + callHook3(onAfterLeave, [el]); + } + el._leaveCb = void 0; + if (leavingVNodesCache[key2] === vnode) { + delete leavingVNodesCache[key2]; + } + }; + leavingVNodesCache[key2] = vnode; + if (onLeave) { + callAsyncHook(onLeave, [el, done]); + } else { + done(); + } + }, + clone(vnode2) { + return resolveTransitionHooks(vnode2, props, state, instance); + } + }; + return hooks; +} +function emptyPlaceholder(vnode) { + if (isKeepAlive(vnode)) { + vnode = cloneVNode(vnode); + vnode.children = null; + return vnode; + } +} +function getKeepAliveChild(vnode) { + return isKeepAlive(vnode) ? vnode.children ? vnode.children[0] : void 0 : vnode; +} +function setTransitionHooks(vnode, hooks) { + if (vnode.shapeFlag & 6 && vnode.component) { + setTransitionHooks(vnode.component.subTree, hooks); + } else if (vnode.shapeFlag & 128) { + vnode.ssContent.transition = hooks.clone(vnode.ssContent); + vnode.ssFallback.transition = hooks.clone(vnode.ssFallback); + } else { + vnode.transition = hooks; + } +} +function getTransitionRawChildren(children, keepComment = false, parentKey) { + let ret = []; + let keyedFragmentCount = 0; + for (let i = 0; i < children.length; i++) { + let child = children[i]; + const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i); + if (child.type === Fragment) { + if (child.patchFlag & 128) + keyedFragmentCount++; + ret = ret.concat( + getTransitionRawChildren(child.children, keepComment, key) + ); + } else if (keepComment || child.type !== Comment) { + ret.push(key != null ? cloneVNode(child, { key }) : child); + } + } + if (keyedFragmentCount > 1) { + for (let i = 0; i < ret.length; i++) { + ret[i].patchFlag = -2; + } + } + return ret; +} +function defineComponent(options, extraOptions) { + return isFunction(options) ? ( + // #8326: extend call and options.name access are considered side-effects + // by Rollup, so we have to wrap it in a pure-annotated IIFE. + (() => extend({ name: options.name }, extraOptions, { setup: options }))() + ) : options; +} +var isAsyncWrapper = (i) => !!i.type.__asyncLoader; +function defineAsyncComponent(source) { + if (isFunction(source)) { + source = { loader: source }; + } + const { + loader, + loadingComponent, + errorComponent, + delay = 200, + timeout, + // undefined = never times out + suspensible = true, + onError: userOnError + } = source; + let pendingRequest = null; + let resolvedComp; + let retries = 0; + const retry = () => { + retries++; + pendingRequest = null; + return load(); + }; + const load = () => { + let thisRequest; + return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => { + err = err instanceof Error ? err : new Error(String(err)); + if (userOnError) { + return new Promise((resolve2, reject) => { + const userRetry = () => resolve2(retry()); + const userFail = () => reject(err); + userOnError(err, userRetry, userFail, retries + 1); + }); + } else { + throw err; + } + }).then((comp) => { + if (thisRequest !== pendingRequest && pendingRequest) { + return pendingRequest; + } + if (!comp) { + warn2( + `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.` + ); + } + if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) { + comp = comp.default; + } + if (comp && !isObject(comp) && !isFunction(comp)) { + throw new Error(`Invalid async component load result: ${comp}`); + } + resolvedComp = comp; + return comp; + })); + }; + return defineComponent({ + name: "AsyncComponentWrapper", + __asyncLoader: load, + get __asyncResolved() { + return resolvedComp; + }, + setup() { + const instance = currentInstance; + if (resolvedComp) { + return () => createInnerComp(resolvedComp, instance); + } + const onError = (err) => { + pendingRequest = null; + handleError( + err, + instance, + 13, + !errorComponent + /* do not throw in dev if user provided error component */ + ); + }; + if (suspensible && instance.suspense || isInSSRComponentSetup) { + return load().then((comp) => { + return () => createInnerComp(comp, instance); + }).catch((err) => { + onError(err); + return () => errorComponent ? createVNode(errorComponent, { + error: err + }) : null; + }); + } + const loaded = ref(false); + const error = ref(); + const delayed = ref(!!delay); + if (delay) { + setTimeout(() => { + delayed.value = false; + }, delay); + } + if (timeout != null) { + setTimeout(() => { + if (!loaded.value && !error.value) { + const err = new Error( + `Async component timed out after ${timeout}ms.` + ); + onError(err); + error.value = err; + } + }, timeout); + } + load().then(() => { + loaded.value = true; + if (instance.parent && isKeepAlive(instance.parent.vnode)) { + queueJob(instance.parent.update); + } + }).catch((err) => { + onError(err); + error.value = err; + }); + return () => { + if (loaded.value && resolvedComp) { + return createInnerComp(resolvedComp, instance); + } else if (error.value && errorComponent) { + return createVNode(errorComponent, { + error: error.value + }); + } else if (loadingComponent && !delayed.value) { + return createVNode(loadingComponent); + } + }; + } + }); +} +function createInnerComp(comp, parent) { + const { ref: ref2, props, children, ce } = parent.vnode; + const vnode = createVNode(comp, props, children); + vnode.ref = ref2; + vnode.ce = ce; + delete parent.vnode.ce; + return vnode; +} +var isKeepAlive = (vnode) => vnode.type.__isKeepAlive; +var KeepAliveImpl = { + name: `KeepAlive`, + // Marker for special handling inside the renderer. We are not using a === + // check directly on KeepAlive in the renderer, because importing it directly + // would prevent it from being tree-shaken. + __isKeepAlive: true, + props: { + include: [String, RegExp, Array], + exclude: [String, RegExp, Array], + max: [String, Number] + }, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const sharedContext = instance.ctx; + if (!sharedContext.renderer) { + return () => { + const children = slots.default && slots.default(); + return children && children.length === 1 ? children[0] : children; + }; + } + const cache = /* @__PURE__ */ new Map(); + const keys = /* @__PURE__ */ new Set(); + let current = null; + if (true) { + instance.__v_cache = cache; + } + const parentSuspense = instance.suspense; + const { + renderer: { + p: patch, + m: move, + um: _unmount, + o: { createElement } + } + } = sharedContext; + const storageContainer = createElement("div"); + sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => { + const instance2 = vnode.component; + move(vnode, container, anchor, 0, parentSuspense); + patch( + instance2.vnode, + vnode, + container, + anchor, + instance2, + parentSuspense, + isSVG, + vnode.slotScopeIds, + optimized + ); + queuePostRenderEffect(() => { + instance2.isDeactivated = false; + if (instance2.a) { + invokeArrayFns(instance2.a); + } + const vnodeHook = vnode.props && vnode.props.onVnodeMounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + }, parentSuspense); + if (true) { + devtoolsComponentAdded(instance2); + } + }; + sharedContext.deactivate = (vnode) => { + const instance2 = vnode.component; + move(vnode, storageContainer, null, 1, parentSuspense); + queuePostRenderEffect(() => { + if (instance2.da) { + invokeArrayFns(instance2.da); + } + const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + instance2.isDeactivated = true; + }, parentSuspense); + if (true) { + devtoolsComponentAdded(instance2); + } + }; + function unmount(vnode) { + resetShapeFlag(vnode); + _unmount(vnode, instance, parentSuspense, true); + } + function pruneCache(filter) { + cache.forEach((vnode, key) => { + const name = getComponentName(vnode.type); + if (name && (!filter || !filter(name))) { + pruneCacheEntry(key); + } + }); + } + function pruneCacheEntry(key) { + const cached = cache.get(key); + if (!current || !isSameVNodeType(cached, current)) { + unmount(cached); + } else if (current) { + resetShapeFlag(current); + } + cache.delete(key); + keys.delete(key); + } + watch( + () => [props.include, props.exclude], + ([include, exclude]) => { + include && pruneCache((name) => matches(include, name)); + exclude && pruneCache((name) => !matches(exclude, name)); + }, + // prune post-render after `current` has been updated + { flush: "post", deep: true } + ); + let pendingCacheKey = null; + const cacheSubtree = () => { + if (pendingCacheKey != null) { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + } + }; + onMounted(cacheSubtree); + onUpdated(cacheSubtree); + onBeforeUnmount(() => { + cache.forEach((cached) => { + const { subTree, suspense } = instance; + const vnode = getInnerChild(subTree); + if (cached.type === vnode.type && cached.key === vnode.key) { + resetShapeFlag(vnode); + const da = vnode.component.da; + da && queuePostRenderEffect(da, suspense); + return; + } + unmount(cached); + }); + }); + return () => { + pendingCacheKey = null; + if (!slots.default) { + return null; + } + const children = slots.default(); + const rawVNode = children[0]; + if (children.length > 1) { + if (true) { + warn2(`KeepAlive should contain exactly one component child.`); + } + current = null; + return children; + } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) { + current = null; + return rawVNode; + } + let vnode = getInnerChild(rawVNode); + const comp = vnode.type; + const name = getComponentName( + isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp + ); + const { include, exclude, max } = props; + if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) { + current = vnode; + return rawVNode; + } + const key = vnode.key == null ? comp : vnode.key; + const cachedVNode = cache.get(key); + if (vnode.el) { + vnode = cloneVNode(vnode); + if (rawVNode.shapeFlag & 128) { + rawVNode.ssContent = vnode; + } + } + pendingCacheKey = key; + if (cachedVNode) { + vnode.el = cachedVNode.el; + vnode.component = cachedVNode.component; + if (vnode.transition) { + setTransitionHooks(vnode, vnode.transition); + } + vnode.shapeFlag |= 512; + keys.delete(key); + keys.add(key); + } else { + keys.add(key); + if (max && keys.size > parseInt(max, 10)) { + pruneCacheEntry(keys.values().next().value); + } + } + vnode.shapeFlag |= 256; + current = vnode; + return isSuspense(rawVNode.type) ? rawVNode : vnode; + }; + } +}; +var KeepAlive = KeepAliveImpl; +function matches(pattern, name) { + if (isArray(pattern)) { + return pattern.some((p2) => matches(p2, name)); + } else if (isString(pattern)) { + return pattern.split(",").includes(name); + } else if (isRegExp(pattern)) { + return pattern.test(name); + } + return false; +} +function onActivated(hook, target) { + registerKeepAliveHook(hook, "a", target); +} +function onDeactivated(hook, target) { + registerKeepAliveHook(hook, "da", target); +} +function registerKeepAliveHook(hook, type, target = currentInstance) { + const wrappedHook = hook.__wdc || (hook.__wdc = () => { + let current = target; + while (current) { + if (current.isDeactivated) { + return; + } + current = current.parent; + } + return hook(); + }); + injectHook(type, wrappedHook, target); + if (target) { + let current = target.parent; + while (current && current.parent) { + if (isKeepAlive(current.parent.vnode)) { + injectToKeepAliveRoot(wrappedHook, type, target, current); + } + current = current.parent; + } + } +} +function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) { + const injected = injectHook( + type, + hook, + keepAliveRoot, + true + /* prepend */ + ); + onUnmounted(() => { + remove(keepAliveRoot[type], injected); + }, target); +} +function resetShapeFlag(vnode) { + vnode.shapeFlag &= ~256; + vnode.shapeFlag &= ~512; +} +function getInnerChild(vnode) { + return vnode.shapeFlag & 128 ? vnode.ssContent : vnode; +} +function injectHook(type, hook, target = currentInstance, prepend = false) { + if (target) { + const hooks = target[type] || (target[type] = []); + const wrappedHook = hook.__weh || (hook.__weh = (...args) => { + if (target.isUnmounted) { + return; + } + pauseTracking(); + setCurrentInstance(target); + const res = callWithAsyncErrorHandling(hook, target, type, args); + unsetCurrentInstance(); + resetTracking(); + return res; + }); + if (prepend) { + hooks.unshift(wrappedHook); + } else { + hooks.push(wrappedHook); + } + return wrappedHook; + } else if (true) { + const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, "")); + warn2( + `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` + ); + } +} +var createHook = (lifecycle) => (hook, target = currentInstance) => ( + // post-create lifecycle registrations are noops during SSR (except for serverPrefetch) + (!isInSSRComponentSetup || lifecycle === "sp") && injectHook(lifecycle, (...args) => hook(...args), target) +); +var onBeforeMount = createHook("bm"); +var onMounted = createHook("m"); +var onBeforeUpdate = createHook("bu"); +var onUpdated = createHook("u"); +var onBeforeUnmount = createHook("bum"); +var onUnmounted = createHook("um"); +var onServerPrefetch = createHook("sp"); +var onRenderTriggered = createHook( + "rtg" +); +var onRenderTracked = createHook( + "rtc" +); +function onErrorCaptured(hook, target = currentInstance) { + injectHook("ec", hook, target); +} +var COMPONENTS = "components"; +var DIRECTIVES = "directives"; +function resolveComponent(name, maybeSelfReference) { + return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name; +} +var NULL_DYNAMIC_COMPONENT = Symbol.for("v-ndc"); +function resolveDynamicComponent(component) { + if (isString(component)) { + return resolveAsset(COMPONENTS, component, false) || component; + } else { + return component || NULL_DYNAMIC_COMPONENT; + } +} +function resolveDirective(name) { + return resolveAsset(DIRECTIVES, name); +} +function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) { + const instance = currentRenderingInstance || currentInstance; + if (instance) { + const Component = instance.type; + if (type === COMPONENTS) { + const selfName = getComponentName( + Component, + false + /* do not include inferred name to avoid breaking existing code */ + ); + if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) { + return Component; + } + } + const res = ( + // local registration + // check instance[type] first which is resolved for options API + resolve(instance[type] || Component[type], name) || // global registration + resolve(instance.appContext[type], name) + ); + if (!res && maybeSelfReference) { + return Component; + } + if (warnMissing && !res) { + const extra = type === COMPONENTS ? ` +If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``; + warn2(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`); + } + return res; + } else if (true) { + warn2( + `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().` + ); + } +} +function resolve(registry, name) { + return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]); +} +function renderList(source, renderItem, cache, index) { + let ret; + const cached = cache && cache[index]; + if (isArray(source) || isString(source)) { + ret = new Array(source.length); + for (let i = 0, l = source.length; i < l; i++) { + ret[i] = renderItem(source[i], i, void 0, cached && cached[i]); + } + } else if (typeof source === "number") { + if (!Number.isInteger(source)) { + warn2(`The v-for range expect an integer value but got ${source}.`); + } + ret = new Array(source); + for (let i = 0; i < source; i++) { + ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]); + } + } else if (isObject(source)) { + if (source[Symbol.iterator]) { + ret = Array.from( + source, + (item, i) => renderItem(item, i, void 0, cached && cached[i]) + ); + } else { + const keys = Object.keys(source); + ret = new Array(keys.length); + for (let i = 0, l = keys.length; i < l; i++) { + const key = keys[i]; + ret[i] = renderItem(source[key], key, i, cached && cached[i]); + } + } + } else { + ret = []; + } + if (cache) { + cache[index] = ret; + } + return ret; +} +function createSlots(slots, dynamicSlots) { + for (let i = 0; i < dynamicSlots.length; i++) { + const slot = dynamicSlots[i]; + if (isArray(slot)) { + for (let j = 0; j < slot.length; j++) { + slots[slot[j].name] = slot[j].fn; + } + } else if (slot) { + slots[slot.name] = slot.key ? (...args) => { + const res = slot.fn(...args); + if (res) + res.key = slot.key; + return res; + } : slot.fn; + } + } + return slots; +} +function renderSlot(slots, name, props = {}, fallback, noSlotted) { + if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) { + if (name !== "default") + props.name = name; + return createVNode("slot", props, fallback && fallback()); + } + let slot = slots[name]; + if (slot && slot.length > 1) { + warn2( + `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.` + ); + slot = () => []; + } + if (slot && slot._c) { + slot._d = false; + } + openBlock(); + const validSlotContent = slot && ensureValidVNode(slot(props)); + const rendered = createBlock( + Fragment, + { + key: props.key || // slot content array of a dynamic conditional slot may have a branch + // key attached in the `createSlots` helper, respect that + validSlotContent && validSlotContent.key || `_${name}` + }, + validSlotContent || (fallback ? fallback() : []), + validSlotContent && slots._ === 1 ? 64 : -2 + ); + if (!noSlotted && rendered.scopeId) { + rendered.slotScopeIds = [rendered.scopeId + "-s"]; + } + if (slot && slot._c) { + slot._d = true; + } + return rendered; +} +function ensureValidVNode(vnodes) { + return vnodes.some((child) => { + if (!isVNode(child)) + return true; + if (child.type === Comment) + return false; + if (child.type === Fragment && !ensureValidVNode(child.children)) + return false; + return true; + }) ? vnodes : null; +} +function toHandlers(obj, preserveCaseIfNecessary) { + const ret = {}; + if (!isObject(obj)) { + warn2(`v-on with no argument expects an object value.`); + return ret; + } + for (const key in obj) { + ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key]; + } + return ret; +} +var getPublicInstance = (i) => { + if (!i) + return null; + if (isStatefulComponent(i)) + return getExposeProxy(i) || i.proxy; + return getPublicInstance(i.parent); +}; +var publicPropertiesMap = ( + // Move PURE marker to new line to workaround compiler discarding it + // due to type annotation + extend(/* @__PURE__ */ Object.create(null), { + $: (i) => i, + $el: (i) => i.vnode.el, + $data: (i) => i.data, + $props: (i) => true ? shallowReadonly(i.props) : i.props, + $attrs: (i) => true ? shallowReadonly(i.attrs) : i.attrs, + $slots: (i) => true ? shallowReadonly(i.slots) : i.slots, + $refs: (i) => true ? shallowReadonly(i.refs) : i.refs, + $parent: (i) => getPublicInstance(i.parent), + $root: (i) => getPublicInstance(i.root), + $emit: (i) => i.emit, + $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type, + $forceUpdate: (i) => i.f || (i.f = () => queueJob(i.update)), + $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)), + $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP + }) +); +var isReservedPrefix = (key) => key === "_" || key === "$"; +var hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key); +var PublicInstanceProxyHandlers = { + get({ _: instance }, key) { + const { ctx, setupState, data, props, accessCache, type, appContext } = instance; + if (key === "__isVue") { + return true; + } + let normalizedProps; + if (key[0] !== "$") { + const n = accessCache[key]; + if (n !== void 0) { + switch (n) { + case 1: + return setupState[key]; + case 2: + return data[key]; + case 4: + return ctx[key]; + case 3: + return props[key]; + } + } else if (hasSetupBinding(setupState, key)) { + accessCache[key] = 1; + return setupState[key]; + } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { + accessCache[key] = 2; + return data[key]; + } else if ( + // only cache other properties when instance has declared (thus stable) + // props + (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key) + ) { + accessCache[key] = 3; + return props[key]; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4; + return ctx[key]; + } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) { + accessCache[key] = 0; + } + } + const publicGetter = publicPropertiesMap[key]; + let cssModule, globalProperties; + if (publicGetter) { + if (key === "$attrs") { + track(instance, "get", key); + markAttrsAccessed(); + } else if (key === "$slots") { + track(instance, "get", key); + } + return publicGetter(instance); + } else if ( + // css module (injected by vue-loader) + (cssModule = type.__cssModules) && (cssModule = cssModule[key]) + ) { + return cssModule; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4; + return ctx[key]; + } else if ( + // global properties + globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key) + ) { + { + return globalProperties[key]; + } + } else if (currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading + // to infinite warning loop + key.indexOf("__v") !== 0)) { + if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) { + warn2( + `Property ${JSON.stringify( + key + )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.` + ); + } else if (instance === currentRenderingInstance) { + warn2( + `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.` + ); + } + } + }, + set({ _: instance }, key, value) { + const { data, setupState, ctx } = instance; + if (hasSetupBinding(setupState, key)) { + setupState[key] = value; + return true; + } else if (setupState.__isScriptSetup && hasOwn(setupState, key)) { + warn2(`Cannot mutate + + + + + +
Skip to content

404

PAGE NOT FOUND

But if you don't change your direction, and if you keep looking, you may end up where you are heading.

License

+ + + + \ No newline at end of file diff --git a/docs/.vitepress/dist/assets/app.1e0108a1.js b/docs/.vitepress/dist/assets/app.1e0108a1.js new file mode 100644 index 0000000..5076e62 --- /dev/null +++ b/docs/.vitepress/dist/assets/app.1e0108a1.js @@ -0,0 +1 @@ +import{d as C,l as E,o as d,c,b as z,G as L,r as K,a as X,t as y,n as h,h as m,k as M,C as f,K as g,a3 as Y,J as Z,E as x,a5 as ee,F as B,R as P,a6 as ae,T as te,S as q,U as D,Q as k,a7 as le,a8 as se,a9 as ne,aa as oe,ab as ue,ac as ie,ad as re,ae as de,af as ce,ag as pe,M as fe,u as he,p as ve,ah as me,ai as ge,aj as _e,ak as ye}from"./chunks/framework.dc35932b.js";import{t as be}from"./chunks/theme.0d1c29fb.js";const we={key:0,class:"q-loadingIndicator"},$e={name:"QButton"},Ce=C({...$e,props:{type:{type:String,default:"default"},dashed:{type:Boolean,default:!1},size:{type:String,default:"default"},round:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1}},setup(e){const l=e,{type:a,dashed:n,size:s,round:u,disabled:r,loading:o}=l,v=E(()=>({[`q-type-${a}`]:a,["q-type-dashed"]:n,[`q-size-${s}`]:s,["is-round"]:u,["is-disabled"]:r||o,["is-loading"]:o}));return(S,A)=>(d(),c("button",{class:h(["q-button",v.value])},[z(o)?(d(),c("span",we)):L("",!0),K(S.$slots,"default",{},()=>[X(y(z(a)),1)],!0)],2))}}),V=(e,l)=>{const a=e.__vccOpts||e;for(const[n,s]of l)a[n]=s;return a},b=V(Ce,[["__scopeId","data-v-4eae179c"]]);b.install=e=>{e.component(b.__name,b)};const O=e=>(q("data-v-3b126f0b"),e=e(),D(),e),Se=["title"],Be=O(()=>f("path",{d:"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"},null,-1)),ke=[Be],Ve=["onClick"],Ae=O(()=>f("path",{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"},null,-1)),Ie=[Ae],ze=["title","onMouseenter","onClick"],Ee={name:"QSelect"},Le=C({...Ee,props:{options:{default:()=>[]},label:{default:"label"},value:{default:"value"},placeholder:{default:"请选择"},disabled:{type:Boolean,default:!1},allowClear:{type:Boolean,default:!1},width:{default:120},height:{default:32},maxDisplay:{default:6},modelValue:{default:null}},emits:["update:modelValue","change"],setup(e,{emit:l}){const a=e,n=m(),s=m(),u=m(!1),r=m(!0),o=m(!1),v=m();M(()=>{S()});function S(){if(a.modelValue){const t=a.options.find(p=>p[a.value]===a.modelValue);t?(n.value=t[a.label],s.value=t[a.value]):(n.value=a.modelValue,s.value=null)}else n.value=null,s.value=null}function A(){u.value&&(u.value=!1)}function T(){a.allowClear&&n.value&&(o.value=!0)}function N(){a.allowClear&&o.value&&(o.value=!1)}function j(t){s.value=t}function F(){r.value=!1}function U(){s.value=null,r.value=!0,v.value.focus()}function G(){if(u.value=!u.value,!s.value&&n.value){const t=a.options.find(p=>p[a.label]===n.value);s.value=t?t[a.value]:null}}function H(){o.value=!1,n.value=null,s.value=null,l("update:modelValue"),l("change")}function J(t,p,i){a.modelValue!==t&&(n.value=p,s.value=t,l("update:modelValue",t),l("change",t,p,i)),u.value=!1}return(t,p)=>(d(),c("div",{class:"m-select",style:g(`height: ${t.height}px;`)},[f("div",{class:h(["m-select-wrap",{hover:!t.disabled,focus:u.value,disabled:t.disabled}]),style:g(`width: ${t.width}px; height: ${t.height}px;`),tabindex:"0",ref_key:"select",ref:v,onMouseenter:T,onMouseleave:N,onBlur:p[0]||(p[0]=i=>r.value&&!t.disabled?A():()=>!1),onClick:p[1]||(p[1]=i=>t.disabled?()=>!1:G())},[f("div",{class:h(["u-select-input",{placeholder:!n.value}]),style:g(`line-height: ${t.height-2}px;`),title:n.value},y(n.value||t.placeholder),15,Se),(d(),c("svg",{class:h(["triangle",{rotate:u.value,show:!o.value}]),viewBox:"64 64 896 896","data-icon":"down","aria-hidden":"true",focusable:"false"},ke,2)),(d(),c("svg",{onClick:Y(H,["stop"]),class:h(["close",{show:o.value}]),focusable:"false","data-icon":"close-circle","aria-hidden":"true",viewBox:"64 64 896 896"},Ie,10,Ve))],38),Z(te,{name:"fade"},{default:x(()=>[ee(f("div",{class:"m-options-panel",onMouseenter:F,onMouseleave:U,style:g(`top: ${t.height+4}px; line-height: ${t.height-10}px; max-height: ${t.maxDisplay*t.height+9}px; width: ${t.width}px;`)},[(d(!0),c(B,null,P(t.options,(i,I)=>(d(),c("p",{key:I,class:h(["u-option",{"option-selected":i[t.label]===n.value,"option-hover":!i.disabled&&i[t.value]===s.value,"option-disabled":i.disabled}]),title:i[t.label],onMouseenter:W=>j(i[t.value]),onClick:W=>i.disabled?()=>!1:J(i[t.value],i[t.label],I)},y(i[t.label]),43,ze))),128))],36),[[ae,u.value]])]),_:1})],4))}}),w=V(Le,[["__scopeId","data-v-3b126f0b"]]);w.install=e=>{e.component(w.__name,w)};const Q=e=>(q("data-v-8c81a90d"),e=e(),D(),e),Me=["href","title","target"],Pe={key:0,class:"u-separator"},qe={key:1,class:"u-arrow",viewBox:"64 64 896 896","data-icon":"right","aria-hidden":"true",focusable:"false"},De=Q(()=>f("path",{d:"M765.7 486.8L314.9 134.7A7.97 7.97 0 0 0 302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 0 0 0-50.4z"},null,-1)),Oe=[De],Qe=Q(()=>f("div",{class:"assist"},null,-1)),Re={name:"QBreadcrumb"},Te=C({...Re,props:{routes:{default:()=>[]},fontSize:{default:14},height:{default:21},maxWidth:{default:180},separator:{default:""},target:{default:"_self"}},setup(e){const l=e,a=E(()=>l.routes.length);function n(s){var u=s.path;if(s.query&&JSON.stringify(s.query)!=="{}"){const r=s.query;Object.keys(r).forEach((o,v)=>{v===0?u=u+"?"+o+"="+r[o]:u=u+"&"+o+"="+r[o]})}return u}return(s,u)=>(d(),c("div",{class:"m-breadcrumb",style:g(`height: ${s.height}px;`)},[(d(!0),c(B,null,P(s.routes,(r,o)=>(d(),c("div",{class:"m-bread",key:o},[f("a",{class:h(["u-route",{active:o===a.value-1}]),style:g(`font-size: ${s.fontSize}px; max-width: ${s.maxWidth}px;`),href:o===a.value-1?"javascript:;":n(r),title:r.name,target:o===a.value-1?"_self":s.target},y(r.name||"--"),15,Me),o!==a.value-1?(d(),c(B,{key:0},[s.separator?(d(),c("span",Pe,y(s.separator),1)):(d(),c("svg",qe,Oe))],64)):L("",!0)]))),128)),Qe],4))}}),$=V(Te,[["__scopeId","data-v-8c81a90d"]]);$.install=e=>{e.component($.__name,$)};const Ne=[b,w,$],je=e=>{Ne.forEach(l=>e.component(l.name,l))},Fe={install:je};const Ue={extends:be,enhanceApp({app:e}){e.use(Fe)}};function R(e){if(e.extends){const l=R(e.extends);return{...l,...e,async enhanceApp(a){l.enhanceApp&&await l.enhanceApp(a),e.enhanceApp&&await e.enhanceApp(a)}}}return e}const _=R(Ue),Ge=C({name:"VitePressApp",setup(){const{site:e}=he();return ve(()=>{M(()=>{document.documentElement.lang=e.value.lang,document.documentElement.dir=e.value.dir})}),me(),ge(),_e(),_.setup&&_.setup(),()=>ye(_.Layout)}});async function He(){const e=We(),l=Je();l.provide(se,e);const a=ne(e.route);return l.provide(oe,a),l.component("Content",ue),l.component("ClientOnly",ie),Object.defineProperties(l.config.globalProperties,{$frontmatter:{get(){return a.frontmatter.value}},$params:{get(){return a.page.value.params}}}),_.enhanceApp&&await _.enhanceApp({app:l,router:e,siteData:re}),{app:l,router:e,data:a}}function Je(){return de(Ge)}function We(){let e=k,l;return ce(a=>{let n=pe(a);return e&&(l=n),(e||l===n)&&(n=n.replace(/\.js$/,".lean.js")),k&&(e=!1),fe(()=>import(n),[])},_.NotFound)}k&&He().then(({app:e,router:l,data:a})=>{l.go().then(()=>{le(l.route,a.site),e.mount("#app")})});export{He as createApp}; diff --git a/docs/.vitepress/dist/assets/chunks/@localSearchIndexroot.9006b9da.js b/docs/.vitepress/dist/assets/chunks/@localSearchIndexroot.9006b9da.js new file mode 100644 index 0000000..7500939 --- /dev/null +++ b/docs/.vitepress/dist/assets/chunks/@localSearchIndexroot.9006b9da.js @@ -0,0 +1 @@ +const t='{"documentCount":57,"nextId":57,"documentIds":{"0":"/q-ui/guide/components/breadcrumb.html#面包屑-qbreadcrumb","1":"/q-ui/guide/components/breadcrumb.html#何时使用","2":"/q-ui/guide/components/breadcrumb.html#基本使用","3":"/q-ui/guide/components/breadcrumb.html#自定义分隔符","4":"/q-ui/guide/components/breadcrumb.html#自定义样式","5":"/q-ui/guide/components/breadcrumb.html#新页面打开目标链接","6":"/q-ui/guide/components/breadcrumb.html#apis","7":"/q-ui/guide/components/breadcrumb.html#route-type","8":"/q-ui/guide/components/button.html#按钮","9":"/q-ui/guide/components/button.html#何时使用","10":"/q-ui/guide/components/button.html#基本使用","11":"/q-ui/guide/components/button.html#大、中、小三种尺寸","12":"/q-ui/guide/components/button.html#自定义样式","13":"/q-ui/guide/components/button.html#加载中状态","14":"/q-ui/guide/components/button.html#apis","15":"/q-ui/guide/components/button.html#events","16":"/q-ui/guide/components/select.html#选择器-qselect","17":"/q-ui/guide/components/select.html#何时使用","18":"/q-ui/guide/components/select.html#基本使用","19":"/q-ui/guide/components/select.html#禁用","20":"/q-ui/guide/components/select.html#禁用选项","21":"/q-ui/guide/components/select.html#支持清除","22":"/q-ui/guide/components/select.html#自定义样式","23":"/q-ui/guide/components/select.html#自定义字段名","24":"/q-ui/guide/components/select.html#自定义下拉面板展示数","25":"/q-ui/guide/components/select.html#apis","26":"/q-ui/guide/components/select.html#option-type","27":"/q-ui/guide/components/select.html#events","28":"/q-ui/guide/started.html#快速上手","29":"/q-ui/guide/started.html#安装","30":"/q-ui/guide/started.html#使用","31":"/q-ui/utils/date-format.html#日期格式化","32":"/q-ui/utils/date-format.html#何时使用","33":"/q-ui/utils/date-format.html#基本使用","34":"/q-ui/utils/date-format.html#格式化字符串","35":"/q-ui/utils/date-format.html#展示毫秒值","36":"/q-ui/utils/date-format.html#params","37":"/q-ui/utils/date-format.html#format-支持的格式化占位符列表","38":"/q-ui/utils/started.html#快速上手","39":"/q-ui/utils/started.html#简要介绍","40":"/q-ui/utils/started.html#使用方式","41":"/q-ui/utils/started.html#一共-9-个常用工具函数","42":"/q-ui/utils/throttle.html#节流","43":"/q-ui/utils/throttle.html#何时使用","44":"/q-ui/utils/throttle.html#基本使用","45":"/q-ui/utils/throttle.html#params","46":"/q-ui/guide/features.html#特性","47":"/q-ui/guide/features.html#介绍","48":"/q-ui/guide/features.html#三种使用方式","49":"/q-ui/utils/debounce.html#防抖","50":"/q-ui/utils/debounce.html#何时使用","51":"/q-ui/utils/debounce.html#基本使用","52":"/q-ui/utils/debounce.html#params","53":"/q-ui/utils/download-file.html#下载文件","54":"/q-ui/utils/download-file.html#何时使用","55":"/q-ui/utils/download-file.html#基本使用","56":"/q-ui/utils/download-file.html#params"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[2,1,3],"1":[1,2,6],"2":[1,2,33],"3":[1,2,34],"4":[1,2,36],"5":[1,2,35],"6":[1,2,35],"7":[2,2,16],"8":[1,1,1],"9":[1,1,2],"10":[1,1,33],"11":[3,1,28],"12":[1,1,37],"13":[1,1,43],"14":[1,1,62],"15":[1,1,14],"16":[2,1,1],"17":[1,2,12],"18":[1,2,44],"19":[1,2,42],"20":[1,2,43],"21":[1,2,53],"22":[1,2,55],"23":[1,2,55],"24":[1,2,53],"25":[1,2,42],"26":[2,2,20],"27":[1,2,15],"28":[1,1,1],"29":[1,1,12],"30":[1,1,21],"31":[1,1,64],"32":[1,1,2],"33":[1,1,23],"34":[1,1,21],"35":[1,1,30],"36":[1,1,27],"37":[2,1,40],"38":[1,1,1],"39":[1,1,2],"40":[1,1,18],"41":[3,1,62],"42":[1,1,29],"43":[1,1,6],"44":[1,1,35],"45":[1,1,17],"46":[1,1,1],"47":[1,1,8],"48":[1,1,13],"49":[1,1,25],"50":[1,1,6],"51":[1,1,35],"52":[1,1,17],"53":[1,1,54],"54":[1,1,2],"55":[1,1,27],"56":[1,1,15]},"averageFieldLength":[1.1578947368421053,1.3157894736842102,25.736842105263158],"storedFields":{"0":{"title":"面包屑 QBreadcrumb","titles":[]},"1":{"title":"何时使用","titles":["面包屑 QBreadcrumb"]},"2":{"title":"基本使用","titles":["面包屑 QBreadcrumb"]},"3":{"title":"自定义分隔符","titles":["面包屑 QBreadcrumb"]},"4":{"title":"自定义样式","titles":["面包屑 QBreadcrumb"]},"5":{"title":"新页面打开目标链接","titles":["面包屑 QBreadcrumb"]},"6":{"title":"APIs","titles":["面包屑 QBreadcrumb"]},"7":{"title":"Route Type","titles":["面包屑 QBreadcrumb"]},"8":{"title":"按钮","titles":[]},"9":{"title":"何时使用","titles":["按钮"]},"10":{"title":"基本使用","titles":["按钮"]},"11":{"title":"大、中、小三种尺寸","titles":["按钮"]},"12":{"title":"自定义样式","titles":["按钮"]},"13":{"title":"加载中状态","titles":["按钮"]},"14":{"title":"APIs","titles":["按钮"]},"15":{"title":"Events","titles":["按钮"]},"16":{"title":"选择器 QSelect","titles":[]},"17":{"title":"何时使用","titles":["选择器 QSelect"]},"18":{"title":"基本使用","titles":["选择器 QSelect"]},"19":{"title":"禁用","titles":["选择器 QSelect"]},"20":{"title":"禁用选项","titles":["选择器 QSelect"]},"21":{"title":"支持清除","titles":["选择器 QSelect"]},"22":{"title":"自定义样式","titles":["选择器 QSelect"]},"23":{"title":"自定义字段名","titles":["选择器 QSelect"]},"24":{"title":"自定义下拉面板展示数","titles":["选择器 QSelect"]},"25":{"title":"APIs","titles":["选择器 QSelect"]},"26":{"title":"Option Type","titles":["选择器 QSelect"]},"27":{"title":"Events","titles":["选择器 QSelect"]},"28":{"title":"快速上手","titles":[]},"29":{"title":"安装","titles":["快速上手"]},"30":{"title":"使用","titles":["快速上手"]},"31":{"title":"日期格式化","titles":[]},"32":{"title":"何时使用","titles":["日期格式化"]},"33":{"title":"基本使用","titles":["日期格式化"]},"34":{"title":"格式化字符串","titles":["日期格式化"]},"35":{"title":"展示毫秒值","titles":["日期格式化"]},"36":{"title":"Params","titles":["日期格式化"]},"37":{"title":"format 支持的格式化占位符列表","titles":["日期格式化"]},"38":{"title":"快速上手","titles":[]},"39":{"title":"简要介绍","titles":["快速上手"]},"40":{"title":"使用方式","titles":["快速上手"]},"41":{"title":"一共 9 个常用工具函数","titles":["快速上手"]},"42":{"title":"节流","titles":[]},"43":{"title":"何时使用","titles":["节流"]},"44":{"title":"基本使用","titles":["节流"]},"45":{"title":"Params","titles":["节流"]},"46":{"title":"特性","titles":[]},"47":{"title":"介绍","titles":["特性"]},"48":{"title":"三种使用方式","titles":["特性"]},"49":{"title":"防抖","titles":[]},"50":{"title":"何时使用","titles":["防抖"]},"51":{"title":"基本使用","titles":["防抖"]},"52":{"title":"Params","titles":["防抖"]},"53":{"title":"下载文件","titles":[]},"54":{"title":"何时使用","titles":["下载文件"]},"55":{"title":"基本使用","titles":["下载文件"]},"56":{"title":"Params","titles":["下载文件"]}},"dirtCount":0,"index":[["文件地址",{"2":{"56":1}}],["文本最大显示宽度",{"2":{"6":1}}],["xmlhttprequest",{"2":{"53":1}}],["xhr",{"2":{"53":7}}],["内函数只执行最后一次",{"2":{"50":1}}],["内函数只执行一次",{"2":{"43":1}}],["在",{"2":{"50":1}}],["借助闭包",{"2":{"49":1}}],["事件处理函数只执行一次",{"2":{"49":1}}],["事件名称",{"2":{"15":1,"27":1}}],["期限内",{"2":{"49":1}}],["期限内不再工作",{"2":{"42":1}}],["对于短时间内连续触发的事件",{"2":{"49":1,"50":1}}],["对象",{"2":{"36":1}}],["防抖时间期限",{"2":{"52":1}}],["防抖就是让某个时间",{"2":{"49":1}}],["防抖",{"0":{"49":1},"1":{"50":1,"51":1,"52":1}}],["到项目内使用",{"2":{"48":1}}],["到本地后",{"2":{"48":1}}],["按需引入部分组件",{"2":{"48":1}}],["按钮",{"0":{"8":1},"1":{"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1},"2":{"14":1}}],["实现",{"2":{"47":1}}],["实现的防抖函数",{"2":{"41":1}}],["实现的节流函数",{"2":{"41":1}}],["实现的定时器函数",{"2":{"41":1}}],["该组件库采用",{"2":{"47":1}}],["该函数在指定的时间",{"2":{"42":1}}],["介绍",{"0":{"47":1}}],["特性",{"0":{"46":1},"1":{"47":1,"48":1}}],["要执行的函数",{"2":{"45":1,"52":1}}],["滚动条位置",{"2":{"44":1,"51":1}}],["移除键盘切换事件",{"2":{"44":1,"51":1}}],["打开控制台查看输出",{"2":{"44":1,"51":1}}],["每",{"2":{"43":1}}],["短时间内大量触发同一事件时",{"2":{"43":1}}],["将函数置为无效",{"2":{"42":1}}],["直至过了这段时间才重新生效",{"2":{"42":1}}],["那么在函数执行一次之后",{"2":{"42":1}}],["如果短时间内大量触发同一事件",{"2":{"42":1}}],["如何打开目标",{"2":{"6":1,"14":1}}],["节流",{"0":{"42":1},"1":{"43":1,"44":1,"45":1}}],["未传时",{"2":{"56":1}}],["未传",{"2":{"41":1}}],["未设置",{"2":{"15":1}}],["下载文件",{"0":{"53":1},"1":{"54":1,"55":1,"56":1}}],["下载文件并自定义文件名时",{"2":{"54":1}}],["下载文件并自定义文件名",{"2":{"41":1}}],["下单独拷贝单文件组件",{"2":{"48":1}}],["下拉面板最多能展示的下拉项数",{"2":{"25":1}}],["加减精度问题的加法函数",{"2":{"41":1}}],["加载中状态",{"0":{"13":1}}],["jsdelivr",{"2":{"55":1}}],["js",{"2":{"41":1}}],["jqw755",{"2":{"29":2,"30":4,"33":1,"34":1,"35":1,"40":1,"44":1,"51":1,"55":1}}],["消除",{"2":{"41":1}}],["函数失效时长",{"2":{"45":1}}],["函数不执行",{"2":{"42":1}}],["函数",{"2":{"41":1}}],["和",{"2":{"41":1}}],["等效替代",{"2":{"41":1}}],["针对不同浏览器进行兼容处理",{"2":{"41":2}}],["简单易用的日期格式化函数",{"2":{"41":1}}],["简要介绍",{"0":{"39":1}}],["个常用工具函数",{"0":{"41":1}}],["9",{"0":{"41":1}}],["999",{"2":{"37":1}}],["一共",{"0":{"41":1}}],["一级路由",{"2":{"2":1,"3":1,"4":1,"5":1}}],["开箱即用",{"2":{"39":1}}],["开始",{"2":{"37":1}}],["三种使用方式",{"0":{"48":1}}],["三位数",{"2":{"37":1}}],["三级路由三级路由三级路由三级路由三级路由",{"2":{"4":1}}],["三级路由三级路由三级路由三级路由",{"2":{"2":1,"3":1,"5":1}}],["毫秒",{"2":{"37":1}}],["秒",{"2":{"37":2}}],["分钟",{"2":{"37":2}}],["分隔符",{"2":{"6":1}}],["小时",{"2":{"37":2}}],["小三种尺寸",{"0":{"11":1}}],["日",{"2":{"37":2}}],["日期格式化",{"0":{"31":1},"1":{"32":1,"33":1,"34":1,"35":1,"36":1,"37":1}}],["从文件地址中自动获取文件名称",{"2":{"41":1,"56":1}}],["从",{"2":{"37":1,"48":1}}],["月",{"2":{"37":2}}],["四位数",{"2":{"37":1}}],["两位数",{"2":{"37":6}}],["年",{"2":{"37":2}}],["描述",{"2":{"37":1}}],["示例",{"2":{"37":1}}],["标识",{"2":{"37":1}}],["支持的格式化占位符列表",{"0":{"37":1}}],["支持清除",{"0":{"21":1}}],["或者",{"2":{"36":1}}],["或者可以转化为",{"2":{"36":1}}],["或者需要一个更优雅的多选器时",{"2":{"17":1}}],["位时间戳",{"2":{"36":1}}],["展示毫秒值",{"0":{"35":1}}],["格式化目标形式",{"2":{"36":1}}],["格式化字符串",{"0":{"34":1}}],["格式化时间戳",{"2":{"33":1}}],["格式化日期时",{"2":{"32":1}}],["gh",{"2":{"55":1}}],["git",{"2":{"48":1}}],["get",{"2":{"53":1}}],["getseconds",{"2":{"31":1}}],["gethours",{"2":{"31":1}}],["getdate",{"2":{"31":1}}],["getminutes",{"2":{"31":1}}],["getmilliseconds",{"2":{"31":1}}],["getmonth",{"2":{"31":1}}],["getfullyear",{"2":{"31":1}}],["gt",{"2":{"2":5,"3":5,"4":5,"5":5,"10":14,"11":10,"12":8,"13":13,"15":1,"18":6,"19":5,"20":5,"21":6,"22":6,"23":6,"24":6,"27":1,"33":2,"34":2,"35":2,"40":2,"41":7,"42":1,"44":4,"51":4,"55":2}}],["+",{"2":{"31":3,"44":1,"47":3,"51":1}}],["y",{"2":{"31":3}}],["yy",{"2":{"31":2,"37":1}}],["yyyy",{"2":{"31":3,"34":1,"35":1,"36":1,"37":1,"41":1}}],["yarn",{"2":{"29":2}}],["单文件",{"2":{"30":1}}],["单位",{"2":{"6":2,"45":1,"52":1}}],["全局引入所有组件",{"2":{"48":1}}],["全局",{"2":{"30":1}}],["use",{"2":{"30":1}}],["ui",{"2":{"29":2,"30":4,"33":1,"34":1,"35":1,"40":1,"44":1,"48":1,"51":1,"55":1}}],["url",{"2":{"6":1,"14":2,"41":1,"53":5,"56":1}}],["安装",{"0":{"29":1}}],["快速上手",{"0":{"28":1,"38":1},"1":{"29":1,"30":1,"39":1,"40":1,"41":1}}],["用于取消",{"2":{"41":1}}],["用于包含带有任意数量的其他属性",{"2":{"26":1}}],["用于代替原生的选择器",{"2":{"17":1}}],["添加一个字符串索引签名",{"2":{"26":1}}],["条目",{"2":{"25":1}}],["超过后滚动显示",{"2":{"25":1}}],["超出后显示省略号",{"2":{"6":1}}],["请选择",{"2":{"25":1}}],["字典项的值字段名",{"2":{"25":1}}],["字典项的文本字段名",{"2":{"25":1}}],["字体大小",{"2":{"6":1}}],["选项值改变后的回调",{"2":{"27":1}}],["选项值",{"2":{"26":1}}],["选项名",{"2":{"26":1}}],["选项数据",{"2":{"25":1}}],["选择器",{"0":{"16":1},"1":{"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1}}],["禁用选项",{"0":{"20":1}}],["禁用",{"0":{"19":1}}],["君士坦丁堡",{"2":{"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1}}],["7",{"2":{"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1}}],["拜占庭",{"2":{"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1}}],["679",{"2":{"35":2}}],["6",{"2":{"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1}}],["伊斯坦布尔",{"2":{"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1}}],["布宜诺斯艾利斯",{"2":{"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1}}],["45",{"2":{"33":2,"35":2}}],["4",{"2":{"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"31":1}}],["40",{"2":{"12":1}}],["旧金山",{"2":{"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1}}],["300",{"2":{"41":2,"42":1,"45":1,"49":1,"52":1}}],["31",{"2":{"33":2,"34":3,"35":2,"37":2}}],["32",{"2":{"25":1}}],["3",{"2":{"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"31":1,"55":1}}],["36",{"2":{"6":1,"22":1}}],["纽约市",{"2":{"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1}}],["上海市",{"2":{"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1}}],["北京市",{"2":{"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1}}],["window",{"2":{"53":2}}],["with",{"2":{"29":2}}],["width",{"2":{"14":1,"25":1}}],["width=",{"2":{"12":1,"22":1}}],["watcheffect",{"2":{"18":2,"21":2,"22":2,"23":2,"24":2}}],["是更好的选择",{"2":{"17":1}}],["是否支持清除",{"2":{"25":1}}],["是否将按钮设置为块级元素并居中展示",{"2":{"14":1}}],["是否加载中",{"2":{"14":1}}],["是否禁用选项",{"2":{"26":1}}],["是否禁用",{"2":{"14":1,"25":1}}],["使用方式不变",{"2":{"41":2}}],["使用方式",{"0":{"40":1}}],["使用",{"0":{"30":1},"2":{"17":1,"41":3}}],["建议直接将选项平铺",{"2":{"17":1}}],["项",{"2":{"17":1}}],["少于",{"2":{"17":1}}],["弹出一个下拉菜单给用户选择操作",{"2":{"17":1}}],["点击按钮时的回调",{"2":{"15":1}}],["设置",{"2":{"14":1}}],["open",{"2":{"53":1}}],["option",{"0":{"26":1},"2":{"25":2}}],["optionscustom",{"2":{"23":2}}],["optionsdisabled",{"2":{"20":2}}],["options=",{"2":{"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1}}],["options",{"2":{"18":2,"19":2,"21":2,"22":2,"24":2,"25":1}}],["onload",{"2":{"53":1}}],["onscroll",{"2":{"44":2,"51":2}}],["onunmounted",{"2":{"44":2,"51":2}}],["onmounted",{"2":{"44":2,"51":2}}],["onchange",{"2":{"21":2,"22":2,"23":2,"24":2}}],["onclick",{"2":{"10":6,"11":4,"12":2,"13":4}}],["object",{"2":{"14":1,"41":1}}],["地址",{"2":{"14":1}}],["跳转目标",{"2":{"14":1}}],["59",{"2":{"37":4}}],["5",{"2":{"14":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1}}],["圆角",{"2":{"14":1}}],["高度",{"2":{"14":1,"25":1}}],["000",{"2":{"37":1}}],["00",{"2":{"37":3}}],["01",{"2":{"37":2}}],["05",{"2":{"33":2,"34":3,"35":2}}],["0",{"2":{"14":3,"31":2,"37":3,"41":1,"53":1,"55":2}}],["属性",{"2":{"14":2}}],["优先级高于",{"2":{"14":2}}],["宽度",{"2":{"14":1,"25":1}}],["尺寸",{"2":{"14":1}}],["才生效",{"2":{"14":1}}],["为",{"2":{"14":2}}],["只有",{"2":{"14":1}}],["悬浮变化效果",{"2":{"14":1}}],["markdown",{"2":{"55":2}}],["maxdisplay",{"2":{"25":1}}],["max",{"2":{"24":1}}],["maxwidth",{"2":{"6":1}}],["ms",{"2":{"43":1,"45":1,"50":1,"52":1}}],["m",{"2":{"31":10,"37":2}}],["mm",{"2":{"31":6,"34":1,"35":2,"36":2,"37":2,"41":2}}],["mount",{"2":{"30":1}}],["modelvalue",{"2":{"25":1}}],["model=",{"2":{"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1}}],["model",{"2":{"13":1,"25":1}}],["middle",{"2":{"14":1}}],["vite3",{"2":{"47":1}}],["valid为false时",{"2":{"42":1}}],["valid",{"2":{"42":4}}],["value=",{"2":{"23":1}}],["value",{"2":{"18":9,"19":8,"20":8,"21":12,"22":12,"23":1,"24":12,"25":2,"26":1,"27":1,"31":9,"36":1}}],["var",{"2":{"31":5,"42":1,"53":2}}],["void",{"2":{"15":1,"27":1,"41":2}}],["v",{"2":{"13":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1}}],["vue3",{"2":{"47":1}}],["vue",{"2":{"2":1,"3":1,"4":1,"5":1,"10":1,"11":1,"12":1,"13":2,"18":2,"19":2,"20":2,"21":2,"22":2,"23":2,"24":2,"30":2,"33":1,"34":1,"35":1,"40":1,"44":2,"51":2,"55":1}}],["https",{"2":{"55":1}}],["href",{"2":{"53":2}}],["h",{"2":{"31":5,"37":1}}],["hh",{"2":{"31":3,"35":1,"36":1,"37":1,"41":1}}],["h3",{"2":{"13":2}}],["height=",{"2":{"12":1,"22":1}}],["height",{"2":{"6":1,"14":1,"25":1}}],["interval",{"2":{"41":1}}],["includes",{"2":{"31":13}}],["index",{"2":{"21":3,"22":3,"23":3,"24":3,"27":1}}],["if",{"2":{"31":8,"42":1,"49":1,"53":2}}],["i",{"2":{"29":1}}],["import",{"2":{"13":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"30":4,"33":1,"34":1,"35":1,"40":1,"44":2,"51":2,"55":1}}],["id",{"2":{"2":1,"3":1,"4":1,"5":1,"23":12,"41":1}}],["8",{"2":{"12":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":2}}],["中",{"0":{"11":1}}],["大",{"0":{"11":1}}],["blob",{"2":{"53":3}}],["blank",{"2":{"5":1,"6":1,"14":1}}],["bash$",{"2":{"29":2}}],["body",{"2":{"44":1,"51":1,"53":4}}],["boolean",{"2":{"14":3,"25":2,"26":1}}],["borderradius",{"2":{"14":1}}],["border",{"2":{"12":1}}],["button",{"2":{"10":10,"11":6,"12":2,"13":6}}],["cdn",{"2":{"55":1}}],["createobjecturl",{"2":{"53":1}}],["createelement",{"2":{"53":1}}],["createapp",{"2":{"30":2}}],["cancelraf",{"2":{"41":1,"49":1}}],["cancelanimationframe",{"2":{"41":1}}],["css",{"2":{"30":2}}],["change",{"2":{"27":1}}],["change=",{"2":{"21":1,"22":1,"23":1,"24":1}}],["checked=",{"2":{"13":1}}],["clone",{"2":{"48":1}}],["clear",{"2":{"21":1}}],["click=",{"2":{"10":5,"11":3,"12":1,"13":3}}],["click",{"2":{"10":1,"11":1,"12":1,"13":1,"15":1,"53":1}}],["center",{"2":{"14":1}}],["console",{"2":{"10":1,"11":1,"12":1,"13":1,"18":1,"21":4,"22":4,"23":4,"24":4,"44":1,"51":1}}],["const",{"2":{"2":1,"3":1,"4":1,"5":1,"13":1,"18":2,"19":2,"20":2,"21":2,"22":2,"23":2,"24":2,"30":1,"31":5,"44":1,"51":1,"53":4}}],["code",{"2":{"2":1,"3":1,"4":1,"5":1,"10":1,"11":1,"12":1,"13":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"31":1,"42":1,"49":1,"53":1}}],["else",{"2":{"31":1,"53":1}}],["effect",{"2":{"14":2}}],["effect=",{"2":{"10":1}}],["events",{"0":{"15":1,"27":1}}],["event",{"2":{"10":1,"11":1,"12":1,"13":1,"15":1}}],["e",{"2":{"10":1,"11":1,"12":1,"13":1,"15":1}}],["donwloadfile",{"2":{"55":1}}],["download",{"2":{"53":1}}],["downloadfile",{"2":{"40":1,"41":1,"53":1,"55":1}}],["documentelement",{"2":{"44":1,"51":1}}],["document",{"2":{"44":4,"51":4,"53":2}}],["delay",{"2":{"41":3,"42":3,"43":1,"45":1,"49":3,"50":1,"52":1}}],["descriptions",{"2":{"41":1}}],["debounce",{"2":{"40":1,"41":1,"49":1,"51":2}}],["default",{"2":{"10":2,"11":2,"13":2,"14":3}}],["d",{"2":{"31":5,"37":1}}],["dd",{"2":{"31":3,"34":1,"35":1,"36":1,"37":1,"41":1}}],["date",{"2":{"31":12,"36":4}}],["dateformat",{"2":{"31":1,"33":2,"34":2,"35":2,"40":1,"41":1}}],["danger",{"2":{"10":3,"13":3,"14":1}}],["display",{"2":{"53":1}}],["display=",{"2":{"24":1}}],["disabled",{"2":{"10":3,"14":1,"19":1,"20":1,"25":1,"26":1}}],["raf",{"2":{"41":1}}],["raftimeout",{"2":{"41":4,"42":1,"49":1}}],["radio",{"2":{"17":1}}],["radius=",{"2":{"12":1}}],["revokeobjecturl",{"2":{"53":1}}],["reverse",{"2":{"10":3,"14":1}}],["removechild",{"2":{"53":1}}],["resources",{"2":{"55":1}}],["response",{"2":{"53":1}}],["responsetype",{"2":{"53":1}}],["res",{"2":{"53":3}}],["requestanimationframe",{"2":{"41":2}}],["repeat",{"2":{"31":1}}],["replace",{"2":{"31":13}}],["return",{"2":{"31":2,"42":2,"49":1}}],["ref",{"2":{"13":2,"18":3,"19":3,"20":3,"21":3,"22":3,"23":3,"24":3}}],["route",{"0":{"7":1},"2":{"6":1,"14":2,"15":1}}],["routes=",{"2":{"2":1,"3":1,"4":1,"5":1}}],["routes",{"2":{"2":2,"3":2,"4":2,"5":2,"6":1}}],["a",{"2":{"53":1}}],["arguments",{"2":{"41":1}}],["appendchild",{"2":{"53":1}}],["app",{"2":{"30":7}}],["apis",{"0":{"6":1,"14":1,"25":1}}],["add",{"2":{"29":1,"41":1}}],["allowclear",{"2":{"25":1}}],["allow",{"2":{"21":1}}],["any",{"2":{"7":1,"26":1,"41":2,"42":1,"49":2}}],["名称",{"2":{"7":1,"26":1}}],["||",{"2":{"31":1,"44":1,"51":1}}],["|",{"2":{"6":1,"14":7,"21":1,"22":1,"23":1,"24":1,"25":2,"26":1,"27":1,"31":2,"36":2}}],["默认文字",{"2":{"25":1}}],["默认文本",{"2":{"14":1}}],["默认",{"2":{"6":1}}],["默认值",{"2":{"6":1,"14":1,"25":1,"36":1,"45":1,"52":1,"56":1}}],["net",{"2":{"55":1}}],["new",{"2":{"31":1,"53":1}}],["none",{"2":{"53":1}}],["now",{"2":{"31":1,"36":1}}],["npm",{"2":{"29":2}}],["num2",{"2":{"41":1}}],["num1",{"2":{"41":1}}],["number|string|date",{"2":{"41":1}}],["number",{"2":{"6":2,"14":3,"21":2,"22":2,"23":2,"24":2,"25":4,"26":1,"27":2,"31":3,"36":1,"41":4,"45":1,"52":1}}],["null",{"2":{"25":2,"44":1,"49":1,"51":1}}],["name",{"2":{"2":3,"3":3,"4":3,"5":3,"7":1,"14":1,"23":11,"41":3,"53":3,"56":1}}],["pdf",{"2":{"55":1}}],["packages",{"2":{"48":1}}],["params",{"0":{"36":1,"45":1,"52":1,"56":1}}],["path",{"2":{"2":3,"3":3,"4":3,"5":3,"7":1,"14":1}}],["placeholder",{"2":{"25":1}}],["p",{"2":{"12":2}}],["primary",{"2":{"10":3,"13":3,"14":1}}],["propname",{"2":{"7":1,"26":1}}],["px",{"2":{"6":2}}],["必传",{"2":{"6":1,"7":1,"14":1,"25":1,"26":1,"36":1,"45":1,"52":1,"56":1}}],["类型的字符串日期",{"2":{"36":1}}],["类型",{"2":{"6":1,"7":1,"14":2,"25":1,"26":1,"36":1,"45":1,"52":1,"56":1}}],["说明",{"2":{"6":1,"7":1,"14":1,"15":1,"25":1,"26":1,"27":1,"36":1,"45":1,"52":1,"56":1}}],["参数",{"2":{"6":1,"14":1,"15":1,"25":1,"27":1,"36":1,"45":1,"52":1,"56":1}}],["新页面打开目标链接",{"0":{"5":1}}],["fn",{"2":{"41":2,"42":2,"45":1,"49":2,"52":1}}],["func",{"2":{"41":1}}],["function",{"2":{"10":1,"11":1,"12":1,"13":1,"21":1,"22":1,"23":1,"24":1,"31":1,"41":4,"42":2,"44":1,"45":1,"49":2,"51":1,"52":1,"53":1}}],["filename",{"2":{"53":4}}],["fixedtwo",{"2":{"31":6}}],["first",{"2":{"2":1,"3":1,"4":1,"5":1}}],["format",{"0":{"37":1},"2":{"31":2,"36":1,"41":1}}],["fontsize",{"2":{"6":1}}],["font",{"2":{"4":1,"12":1}}],["fade",{"2":{"14":1}}],["false",{"2":{"6":5,"7":1,"14":14,"25":12,"26":3,"36":2,"41":1,"42":2,"45":1,"52":1,"56":1}}],["from",{"2":{"13":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"30":4,"33":1,"34":1,"35":1,"40":1,"44":2,"51":2,"55":1}}],["自定义文件名",{"2":{"56":1}}],["自定义下拉面板展示数",{"0":{"24":1}}],["自定义字段名",{"0":{"23":1}}],["自定义样式",{"0":{"4":1,"12":1,"22":1},"2":{"12":2}}],["自定义分隔符",{"0":{"3":1}}],["二级路由",{"2":{"2":1,"3":1,"4":1,"5":1}}],["路由查询参数",{"2":{"7":1}}],["路由数组",{"2":{"6":1}}],["路由名称",{"2":{"2":1,"3":1,"4":1,"5":1,"7":1}}],["路由参数",{"2":{"2":1,"3":1,"4":1,"5":1}}],["路由地址",{"2":{"2":1,"3":1,"4":1,"5":1,"7":1}}],["23",{"2":{"37":3}}],["200",{"2":{"53":1}}],["20",{"2":{"33":2,"35":2}}],["2023",{"2":{"33":2,"34":3,"35":2,"37":1}}],["2",{"2":{"2":1,"3":1,"4":1,"5":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"31":1}}],["timer",{"2":{"49":4}}],["timestamp",{"2":{"41":1}}],["themusecatcher",{"2":{"55":1}}],["throttle",{"2":{"40":1,"41":1,"42":1,"44":2}}],["third",{"2":{"2":1,"3":1,"4":1,"5":1}}],["typeof",{"2":{"31":2}}],["type=",{"2":{"10":2,"13":2}}],["type",{"0":{"7":1,"26":1},"2":{"14":2}}],["true",{"2":{"6":1,"7":2,"13":1,"20":1,"42":2,"45":1,"52":1,"53":1,"56":1}}],["target",{"2":{"6":1,"14":1}}],["target=",{"2":{"5":1}}],["tab",{"2":{"2":1,"3":1,"4":1,"5":1}}],["template",{"2":{"2":2,"3":2,"4":2,"5":2,"10":2,"11":2,"12":2,"13":2,"18":2,"19":2,"20":2,"21":2,"22":2,"23":2,"24":2}}],["tsfunction",{"2":{"31":1,"42":1,"49":1,"53":1}}],["tsimport",{"2":{"30":2}}],["ts",{"2":{"2":1,"3":1,"4":1,"5":1,"10":1,"11":1,"12":1,"13":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"33":1,"34":1,"35":1,"40":1,"44":1,"47":1,"51":1,"55":1}}],["12",{"2":{"37":2}}],["120",{"2":{"12":1,"25":1}}],["13",{"2":{"36":1}}],["1000",{"2":{"44":1,"51":1}}],["10",{"2":{"31":1}}],["18px",{"2":{"12":1}}],["180",{"2":{"6":1}}],["14",{"2":{"6":1,"33":2,"35":2}}],["1685514045679",{"2":{"33":1,"35":1}}],["160",{"2":{"22":1}}],["16",{"2":{"4":1}}],["1",{"2":{"2":1,"3":1,"4":1,"5":1,"18":2,"19":2,"20":2,"21":2,"22":2,"23":2,"24":2,"31":1,"37":3,"53":1}}],["===",{"2":{"31":2,"53":1}}],["=",{"2":{"2":1,"3":1,"4":1,"5":1,"13":1,"15":1,"18":3,"19":2,"20":2,"21":3,"22":3,"23":3,"24":3,"27":1,"30":1,"31":19,"41":12,"42":5,"44":5,"49":3,"51":5,"53":13}}],["qbutton",{"2":{"30":1}}],["qbreadcrumb",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1},"2":{"2":1,"3":1,"4":1,"5":1}}],["qselectedvalue",{"2":{"18":4,"19":2,"20":2,"21":4,"22":4,"23":4,"24":4}}],["qselect",{"0":{"16":1},"1":{"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1},"2":{"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1}}],["q",{"2":{"10":10,"11":6,"12":2,"13":6,"29":2,"30":4,"33":1,"34":1,"35":1,"40":1,"44":1,"48":1,"51":1,"55":1}}],["qui",{"2":{"30":2}}],["queryselector",{"2":{"53":1}}],["query",{"2":{"2":1,"3":1,"4":1,"5":1,"7":1,"14":1}}],["quot",{"2":{"2":16,"3":18,"4":18,"5":18,"10":20,"11":14,"12":16,"13":24,"18":26,"19":24,"20":24,"21":34,"22":38,"23":38,"24":36,"30":14,"31":62,"33":4,"34":8,"35":6,"40":4,"44":8,"51":8,"53":16,"55":8}}],["link",{"2":{"53":8}}],["let",{"2":{"49":1}}],["length",{"2":{"31":1,"53":1}}],["loading=",{"2":{"13":3}}],["loading",{"2":{"13":7,"14":1}}],["log",{"2":{"10":1,"11":1,"12":1,"13":1,"18":1,"21":4,"22":4,"23":4,"24":4,"44":1,"51":1}}],["label=",{"2":{"23":1}}],["label",{"2":{"18":8,"19":8,"20":8,"21":11,"22":11,"23":1,"24":11,"25":2,"26":1,"27":1}}],["large",{"2":{"11":3,"12":1,"14":1}}],["lang=",{"2":{"2":1,"3":1,"4":1,"5":1,"10":1,"11":1,"12":1,"13":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"33":1,"34":1,"35":1,"40":1,"44":1,"51":1,"55":1}}],["lt",{"2":{"2":5,"3":5,"4":5,"5":5,"10":14,"11":10,"12":8,"13":13,"18":5,"19":5,"20":5,"21":5,"22":5,"23":5,"24":5,"31":1,"33":2,"34":2,"35":2,"40":2,"44":2,"51":2,"55":2}}],["split",{"2":{"53":2}}],["sfc",{"2":{"48":1}}],["scss",{"2":{"47":1}}],["scrolltop",{"2":{"44":4,"51":4}}],["script",{"2":{"2":2,"3":2,"4":2,"5":2,"10":2,"11":2,"12":2,"13":2,"18":2,"19":2,"20":2,"21":2,"22":2,"23":2,"24":2,"33":2,"34":2,"35":2,"40":2,"44":2,"51":2,"55":2}}],["slice",{"2":{"31":1}}],["slot",{"2":{"14":1}}],["s",{"2":{"31":8,"37":1}}],["sss",{"2":{"31":2,"35":1,"37":1}}],["ss",{"2":{"31":3,"35":1,"36":1,"37":1,"41":1}}],["source",{"2":{"31":1,"42":1,"49":1,"53":1}}],["switch",{"2":{"13":1}}],["size",{"2":{"12":1,"14":3}}],["size=",{"2":{"4":1,"11":2,"12":1}}],["style",{"2":{"53":1}}],["style=",{"2":{"12":1}}],["status",{"2":{"53":1}}],["state",{"2":{"13":2}}],["string",{"2":{"6":1,"7":3,"14":2,"21":2,"22":2,"23":2,"24":2,"25":4,"26":3,"27":2,"31":13,"36":2,"41":3,"53":2,"56":2}}],["small",{"2":{"11":3,"14":1}}],["send",{"2":{"53":1}}],["setinterval",{"2":{"41":1}}],["settimeout",{"2":{"41":1}}],["setup",{"2":{"2":1,"3":1,"4":1,"5":1,"10":1,"11":1,"12":1,"13":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"33":1,"34":1,"35":1,"40":1,"44":1,"51":1,"55":1}}],["self",{"2":{"6":2,"14":3}}],["separator",{"2":{"6":1}}],["separator=",{"2":{"3":1}}],["second",{"2":{"2":1,"3":1,"4":1,"5":1}}],["showposition",{"2":{"44":2,"51":2}}],["showtime",{"2":{"31":35}}],["show",{"2":{"2":1,"3":1,"4":1,"5":1,"10":1,"11":1,"12":1,"13":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"31":1,"42":1,"49":1,"53":1}}],["基本使用",{"0":{"2":1,"10":1,"18":1,"33":1,"44":1,"51":1,"55":1}}],["时生效",{"2":{"14":1,"15":1}}],["时自适应内容的宽度",{"2":{"14":1}}],["时为箭头",{"2":{"6":1}}],["时",{"2":{"1":1,"14":1,"41":1}}],["你在哪里",{"2":{"1":1}}],["当前选中的",{"2":{"25":1}}],["当选项少时",{"2":{"17":1}}],["当需要添加一个操作按钮时",{"2":{"9":1}}],["当需要向上导航的功能时",{"2":{"1":1}}],["当需要告知用户",{"2":{"1":1}}],["当系统拥有超过两级以上的层级结构时",{"2":{"1":1}}],["何时使用",{"0":{"1":1,"9":1,"17":1,"32":1,"43":1,"50":1,"54":1}}],["并能向上返回",{"2":{"0":1}}],["显示当前页面在系统层级结构中的位置",{"2":{"0":1}}],["面包屑高度",{"2":{"6":1}}],["面包屑",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1}}]],"serializationVersion":2}';export{t as default}; diff --git a/docs/.vitepress/dist/assets/chunks/VPLocalSearchBox.12a3dd91.js b/docs/.vitepress/dist/assets/chunks/VPLocalSearchBox.12a3dd91.js new file mode 100644 index 0000000..bc5e6e0 --- /dev/null +++ b/docs/.vitepress/dist/assets/chunks/VPLocalSearchBox.12a3dd91.js @@ -0,0 +1,7 @@ +import{M as vt,h as te,w as Le,d as Nt,s as ue,l as Te,k as _t,p as Ne,v as le,al as It,am as Dt,o as H,D as Ot,C,a3 as Mt,b as $,a5 as Rt,an as Pt,q as Lt,c as Q,n as Ze,G as ye,R as Xe,F as et,a as ce,t as fe,ao as zt,S as Vt,U as Bt,ap as tt,aq as $t,aa as Wt,ag as jt,_ as Kt}from"./framework.dc35932b.js";import{u as Jt,a as Ut,b as Ht,c as rt,d as qt,e as Gt,w as Qt,o as ge,f as Yt,g as Zt,h as Xt}from"./theme.0d1c29fb.js";const er={root:()=>vt(()=>import("./@localSearchIndexroot.9006b9da.js"),[])};/*! +* tabbable 6.1.2 +* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE +*/var pt=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],xe=pt.join(","),yt=typeof Element>"u",re=yt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Fe=!yt&&Element.prototype.getRootNode?function(o){var e;return o==null||(e=o.getRootNode)===null||e===void 0?void 0:e.call(o)}:function(o){return o==null?void 0:o.ownerDocument},Ee=function o(e,t){var r;t===void 0&&(t=!0);var n=e==null||(r=e.getAttribute)===null||r===void 0?void 0:r.call(e,"inert"),a=n===""||n==="true",i=a||t&&e&&o(e.parentNode);return i},tr=function(e){var t,r=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return r===""||r==="true"},gt=function(e,t,r){if(Ee(e))return[];var n=Array.prototype.slice.apply(e.querySelectorAll(xe));return t&&re.call(e,xe)&&n.unshift(e),n=n.filter(r),n},mt=function o(e,t,r){for(var n=[],a=Array.from(e);a.length;){var i=a.shift();if(!Ee(i,!1))if(i.tagName==="SLOT"){var s=i.assignedElements(),u=s.length?s:i.children,l=o(u,!0,r);r.flatten?n.push.apply(n,l):n.push({scopeParent:i,candidates:l})}else{var f=re.call(i,xe);f&&r.filter(i)&&(t||!e.includes(i))&&n.push(i);var d=i.shadowRoot||typeof r.getShadowRoot=="function"&&r.getShadowRoot(i),v=!Ee(d,!1)&&(!r.shadowRootFilter||r.shadowRootFilter(i));if(d&&v){var y=o(d===!0?i.children:d.children,!0,r);r.flatten?n.push.apply(n,y):n.push({scopeParent:i,candidates:y})}else a.unshift.apply(a,i.children)}}return n},bt=function(e,t){return e.tabIndex<0&&(t||/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||tr(e))&&isNaN(parseInt(e.getAttribute("tabindex"),10))?0:e.tabIndex},rr=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},wt=function(e){return e.tagName==="INPUT"},ar=function(e){return wt(e)&&e.type==="hidden"},nr=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(r){return r.tagName==="SUMMARY"});return t},ir=function(e,t){for(var r=0;rsummary:first-of-type"),i=a?e.parentElement:e;if(re.call(i,"details:not([open]) *"))return!0;if(!r||r==="full"||r==="legacy-full"){if(typeof n=="function"){for(var s=e;e;){var u=e.parentElement,l=Fe(e);if(u&&!u.shadowRoot&&n(u)===!0)return at(e);e.assignedSlot?e=e.assignedSlot:!u&&l!==e.ownerDocument?e=l.host:e=u}e=s}if(lr(e))return!e.getClientRects().length;if(r!=="legacy-full")return!0}else if(r==="non-zero-area")return at(e);return!1},fr=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var r=0;r=0)},dr=function o(e){var t=[],r=[];return e.forEach(function(n,a){var i=!!n.scopeParent,s=i?n.scopeParent:n,u=bt(s,i),l=i?o(n.candidates):s;u===0?i?t.push.apply(t,l):t.push(s):r.push({documentOrder:a,tabIndex:u,item:n,isScope:i,content:l})}),r.sort(rr).reduce(function(n,a){return a.isScope?n.push.apply(n,a.content):n.push(a.content),n},[]).concat(t)},vr=function(e,t){t=t||{};var r;return t.getShadowRoot?r=mt([e],t.includeContainer,{filter:ze.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:hr}):r=gt(e,t.includeContainer,ze.bind(null,t)),dr(r)},pr=function(e,t){t=t||{};var r;return t.getShadowRoot?r=mt([e],t.includeContainer,{filter:Se.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):r=gt(e,t.includeContainer,Se.bind(null,t)),r},me=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return re.call(e,xe)===!1?!1:ze(t,e)},yr=pt.concat("iframe").join(","),_e=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return re.call(e,yr)===!1?!1:Se(t,e)};/*! +* focus-trap 7.4.3 +* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE +*/function nt(o,e){var t=Object.keys(o);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(o);e&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(o,n).enumerable})),t.push.apply(t,r)}return t}function it(o){for(var e=1;e0){var r=e[e.length-1];r!==t&&r.pause()}var n=e.indexOf(t);n===-1||e.splice(n,1),e.push(t)},deactivateTrap:function(e,t){var r=e.indexOf(t);r!==-1&&e.splice(r,1),e.length>0&&e[e.length-1].unpause()}},wr=function(e){return e.tagName&&e.tagName.toLowerCase()==="input"&&typeof e.select=="function"},xr=function(e){return e.key==="Escape"||e.key==="Esc"||e.keyCode===27},ve=function(e){return e.key==="Tab"||e.keyCode===9},Fr=function(e){return ve(e)&&!e.shiftKey},Er=function(e){return ve(e)&&e.shiftKey},st=function(e){return setTimeout(e,0)},ut=function(e,t){var r=-1;return e.every(function(n,a){return t(n)?(r=a,!1):!0}),r},he=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n1?h-1:0),S=1;S=0)c=r.activeElement;else{var p=i.tabbableGroups[0],h=p&&p.firstTabbableNode;c=h||f("fallbackFocus")}if(!c)throw new Error("Your focus-trap needs to have at least one focusable element");return c},v=function(){if(i.containerGroups=i.containers.map(function(c){var p=vr(c,a.tabbableOptions),h=pr(c,a.tabbableOptions);return{container:c,tabbableNodes:p,focusableNodes:h,firstTabbableNode:p.length>0?p[0]:null,lastTabbableNode:p.length>0?p[p.length-1]:null,nextTabbableNode:function(S){var M=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,R=h.findIndex(function(m){return m===S});if(!(R<0))return M?h.slice(R+1).find(function(m){return me(m,a.tabbableOptions)}):h.slice(0,R).reverse().find(function(m){return me(m,a.tabbableOptions)})}}}),i.tabbableGroups=i.containerGroups.filter(function(c){return c.tabbableNodes.length>0}),i.tabbableGroups.length<=0&&!f("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times")},y=function F(c){if(c!==!1&&c!==r.activeElement){if(!c||!c.focus){F(d());return}c.focus({preventScroll:!!a.preventScroll}),i.mostRecentlyFocusedNode=c,wr(c)&&c.select()}},b=function(c){var p=f("setReturnFocus",c);return p||(p===!1?!1:c)},g=function(c){var p=be(c);if(!(l(p,c)>=0)){if(he(a.clickOutsideDeactivates,c)){s.deactivate({returnFocus:a.returnFocusOnDeactivate});return}he(a.allowOutsideClick,c)||c.preventDefault()}},w=function(c){var p=be(c),h=l(p,c)>=0;h||p instanceof Document?h&&(i.mostRecentlyFocusedNode=p):(c.stopImmediatePropagation(),y(i.mostRecentlyFocusedNode||d()))},T=function(c){var p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,h=be(c);v();var E=null;if(i.tabbableGroups.length>0){var S=l(h,c),M=S>=0?i.containerGroups[S]:void 0;if(S<0)p?E=i.tabbableGroups[i.tabbableGroups.length-1].lastTabbableNode:E=i.tabbableGroups[0].firstTabbableNode;else if(p){var R=ut(i.tabbableGroups,function(K){var V=K.firstTabbableNode;return h===V});if(R<0&&(M.container===h||_e(h,a.tabbableOptions)&&!me(h,a.tabbableOptions)&&!M.nextTabbableNode(h,!1))&&(R=S),R>=0){var m=R===0?i.tabbableGroups.length-1:R-1,k=i.tabbableGroups[m];E=k.lastTabbableNode}else ve(c)||(E=M.nextTabbableNode(h,!1))}else{var P=ut(i.tabbableGroups,function(K){var V=K.lastTabbableNode;return h===V});if(P<0&&(M.container===h||_e(h,a.tabbableOptions)&&!me(h,a.tabbableOptions)&&!M.nextTabbableNode(h))&&(P=S),P>=0){var oe=P===i.tabbableGroups.length-1?0:P+1,ae=i.tabbableGroups[oe];E=ae.firstTabbableNode}else ve(c)||(E=M.nextTabbableNode(h))}}else E=f("fallbackFocus");E&&(ve(c)&&c.preventDefault(),y(E))},_=function(c){if(xr(c)&&he(a.escapeDeactivates,c)!==!1){c.preventDefault(),s.deactivate();return}(a.isKeyForward(c)||a.isKeyBackward(c))&&T(c,a.isKeyBackward(c))},A=function(c){var p=be(c);l(p,c)>=0||he(a.clickOutsideDeactivates,c)||he(a.allowOutsideClick,c)||(c.preventDefault(),c.stopImmediatePropagation())},O=function(){if(i.active)return ot.activateTrap(n,s),i.delayInitialFocusTimer=a.delayInitialFocus?st(function(){y(d())}):y(d()),r.addEventListener("focusin",w,!0),r.addEventListener("mousedown",g,{capture:!0,passive:!1}),r.addEventListener("touchstart",g,{capture:!0,passive:!1}),r.addEventListener("click",A,{capture:!0,passive:!1}),r.addEventListener("keydown",_,{capture:!0,passive:!1}),s},D=function(){if(i.active)return r.removeEventListener("focusin",w,!0),r.removeEventListener("mousedown",g,!0),r.removeEventListener("touchstart",g,!0),r.removeEventListener("click",A,!0),r.removeEventListener("keydown",_,!0),s},L=function(c){var p=c.some(function(h){var E=Array.from(h.removedNodes);return E.some(function(S){return S===i.mostRecentlyFocusedNode})});p&&y(d())},x=typeof window<"u"&&"MutationObserver"in window?new MutationObserver(L):void 0,N=function(){x&&(x.disconnect(),i.active&&!i.paused&&i.containers.map(function(c){x.observe(c,{subtree:!0,childList:!0})}))};return s={get active(){return i.active},get paused(){return i.paused},activate:function(c){if(i.active)return this;var p=u(c,"onActivate"),h=u(c,"onPostActivate"),E=u(c,"checkCanFocusTrap");E||v(),i.active=!0,i.paused=!1,i.nodeFocusedBeforeActivation=r.activeElement,p==null||p();var S=function(){E&&v(),O(),N(),h==null||h()};return E?(E(i.containers.concat()).then(S,S),this):(S(),this)},deactivate:function(c){if(!i.active)return this;var p=it({onDeactivate:a.onDeactivate,onPostDeactivate:a.onPostDeactivate,checkCanReturnFocus:a.checkCanReturnFocus},c);clearTimeout(i.delayInitialFocusTimer),i.delayInitialFocusTimer=void 0,D(),i.active=!1,i.paused=!1,N(),ot.deactivateTrap(n,s);var h=u(p,"onDeactivate"),E=u(p,"onPostDeactivate"),S=u(p,"checkCanReturnFocus"),M=u(p,"returnFocus","returnFocusOnDeactivate");h==null||h();var R=function(){st(function(){M&&y(b(i.nodeFocusedBeforeActivation)),E==null||E()})};return M&&S?(S(b(i.nodeFocusedBeforeActivation)).then(R,R),this):(R(),this)},pause:function(c){if(i.paused||!i.active)return this;var p=u(c,"onPause"),h=u(c,"onPostPause");return i.paused=!0,p==null||p(),D(),N(),h==null||h(),this},unpause:function(c){if(!i.paused||!i.active)return this;var p=u(c,"onUnpause"),h=u(c,"onPostUnpause");return i.paused=!1,p==null||p(),v(),O(),N(),h==null||h(),this},updateContainerElements:function(c){var p=[].concat(c).filter(Boolean);return i.containers=p.map(function(h){return typeof h=="string"?r.querySelector(h):h}),i.active&&v(),N(),this}},s.updateContainerElements(e),s},Cr=Object.defineProperty,kr=Object.defineProperties,Tr=Object.getOwnPropertyDescriptors,Ae=Object.getOwnPropertySymbols,xt=Object.prototype.hasOwnProperty,Ft=Object.prototype.propertyIsEnumerable,lt=(o,e,t)=>e in o?Cr(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,Nr=(o,e)=>{for(var t in e||(e={}))xt.call(e,t)&<(o,t,e[t]);if(Ae)for(var t of Ae(e))Ft.call(e,t)&<(o,t,e[t]);return o},_r=(o,e)=>kr(o,Tr(e)),Ir=(o,e)=>{var t={};for(var r in o)xt.call(o,r)&&e.indexOf(r)<0&&(t[r]=o[r]);if(o!=null&&Ae)for(var r of Ae(o))e.indexOf(r)<0&&Ft.call(o,r)&&(t[r]=o[r]);return t};function Dr(o,e={}){let t;const r=e,{immediate:n}=r,a=Ir(r,["immediate"]),i=te(!1),s=te(!1),u=v=>t&&t.activate(v),l=v=>t&&t.deactivate(v),f=()=>{t&&(t.pause(),s.value=!0)},d=()=>{t&&(t.unpause(),s.value=!1)};return Le(()=>Jt(o),v=>{v&&(t=Ar(v,_r(Nr({},a),{onActivate(){i.value=!0,e.onActivate&&e.onActivate()},onDeactivate(){i.value=!1,e.onDeactivate&&e.onDeactivate()}})),n&&u())},{flush:"post"}),Ut(()=>l()),{hasFocus:i,isPaused:s,activate:u,deactivate:l,pause:f,unpause:d}}class ie{constructor(e,t=!0,r=[],n=5e3){this.ctx=e,this.iframes=t,this.exclude=r,this.iframesTimeout=n}static matches(e,t){const r=typeof t=="string"?[t]:t,n=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(n){let a=!1;return r.every(i=>n.call(e,i)?(a=!0,!1):!0),a}else return!1}getContexts(){let e,t=[];return typeof this.ctx>"u"||!this.ctx?e=[]:NodeList.prototype.isPrototypeOf(this.ctx)?e=Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?e=this.ctx:typeof this.ctx=="string"?e=Array.prototype.slice.call(document.querySelectorAll(this.ctx)):e=[this.ctx],e.forEach(r=>{const n=t.filter(a=>a.contains(r)).length>0;t.indexOf(r)===-1&&!n&&t.push(r)}),t}getIframeContents(e,t,r=()=>{}){let n;try{const a=e.contentWindow;if(n=a.document,!a||!n)throw new Error("iframe inaccessible")}catch{r()}n&&t(n)}isIframeBlank(e){const t="about:blank",r=e.getAttribute("src").trim();return e.contentWindow.location.href===t&&r!==t&&r}observeIframeLoad(e,t,r){let n=!1,a=null;const i=()=>{if(!n){n=!0,clearTimeout(a);try{this.isIframeBlank(e)||(e.removeEventListener("load",i),this.getIframeContents(e,t,r))}catch{r()}}};e.addEventListener("load",i),a=setTimeout(i,this.iframesTimeout)}onIframeReady(e,t,r){try{e.contentWindow.document.readyState==="complete"?this.isIframeBlank(e)?this.observeIframeLoad(e,t,r):this.getIframeContents(e,t,r):this.observeIframeLoad(e,t,r)}catch{r()}}waitForIframes(e,t){let r=0;this.forEachIframe(e,()=>!0,n=>{r++,this.waitForIframes(n.querySelector("html"),()=>{--r||t()})},n=>{n||t()})}forEachIframe(e,t,r,n=()=>{}){let a=e.querySelectorAll("iframe"),i=a.length,s=0;a=Array.prototype.slice.call(a);const u=()=>{--i<=0&&n(s)};i||u(),a.forEach(l=>{ie.matches(l,this.exclude)?u():this.onIframeReady(l,f=>{t(l)&&(s++,r(f)),u()},u)})}createIterator(e,t,r){return document.createNodeIterator(e,t,r,!1)}createInstanceOnIframe(e){return new ie(e.querySelector("html"),this.iframes)}compareNodeIframe(e,t,r){const n=e.compareDocumentPosition(r),a=Node.DOCUMENT_POSITION_PRECEDING;if(n&a)if(t!==null){const i=t.compareDocumentPosition(r),s=Node.DOCUMENT_POSITION_FOLLOWING;if(i&s)return!0}else return!0;return!1}getIteratorNode(e){const t=e.previousNode();let r;return t===null?r=e.nextNode():r=e.nextNode()&&e.nextNode(),{prevNode:t,node:r}}checkIframeFilter(e,t,r,n){let a=!1,i=!1;return n.forEach((s,u)=>{s.val===r&&(a=u,i=s.handled)}),this.compareNodeIframe(e,t,r)?(a===!1&&!i?n.push({val:r,handled:!0}):a!==!1&&!i&&(n[a].handled=!0),!0):(a===!1&&n.push({val:r,handled:!1}),!1)}handleOpenIframes(e,t,r,n){e.forEach(a=>{a.handled||this.getIframeContents(a.val,i=>{this.createInstanceOnIframe(i).forEachNode(t,r,n)})})}iterateThroughNodes(e,t,r,n,a){const i=this.createIterator(t,e,n);let s=[],u=[],l,f,d=()=>({prevNode:f,node:l}=this.getIteratorNode(i),l);for(;d();)this.iframes&&this.forEachIframe(t,v=>this.checkIframeFilter(l,f,v,s),v=>{this.createInstanceOnIframe(v).forEachNode(e,y=>u.push(y),n)}),u.push(l);u.forEach(v=>{r(v)}),this.iframes&&this.handleOpenIframes(s,e,r,n),a()}forEachNode(e,t,r,n=()=>{}){const a=this.getContexts();let i=a.length;i||n(),a.forEach(s=>{const u=()=>{this.iterateThroughNodes(e,s,t,r,()=>{--i<=0&&n()})};this.iframes?this.waitForIframes(s,u):u()})}}let Or=class{constructor(e){this.ctx=e,this.ie=!1;const t=window.navigator.userAgent;(t.indexOf("MSIE")>-1||t.indexOf("Trident")>-1)&&(this.ie=!0)}set opt(e){this._opt=Object.assign({},{element:"",className:"",exclude:[],iframes:!1,iframesTimeout:5e3,separateWordSearch:!0,diacritics:!0,synonyms:{},accuracy:"partially",acrossElements:!1,caseSensitive:!1,ignoreJoiners:!1,ignoreGroups:0,ignorePunctuation:[],wildcards:"disabled",each:()=>{},noMatch:()=>{},filter:()=>!0,done:()=>{},debug:!1,log:window.console},e)}get opt(){return this._opt}get iterator(){return new ie(this.ctx,this.opt.iframes,this.opt.exclude,this.opt.iframesTimeout)}log(e,t="debug"){const r=this.opt.log;this.opt.debug&&typeof r=="object"&&typeof r[t]=="function"&&r[t](`mark.js: ${e}`)}escapeStr(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}createRegExp(e){return this.opt.wildcards!=="disabled"&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),this.opt.wildcards!=="disabled"&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e),e}createSynonymsRegExp(e){const t=this.opt.synonyms,r=this.opt.caseSensitive?"":"i",n=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(let a in t)if(t.hasOwnProperty(a)){const i=t[a],s=this.opt.wildcards!=="disabled"?this.setupWildcardsRegExp(a):this.escapeStr(a),u=this.opt.wildcards!=="disabled"?this.setupWildcardsRegExp(i):this.escapeStr(i);s!==""&&u!==""&&(e=e.replace(new RegExp(`(${this.escapeStr(s)}|${this.escapeStr(u)})`,`gm${r}`),n+`(${this.processSynomyms(s)}|${this.processSynomyms(u)})`+n))}return e}processSynomyms(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}setupWildcardsRegExp(e){return e=e.replace(/(?:\\)*\?/g,t=>t.charAt(0)==="\\"?"?":""),e.replace(/(?:\\)*\*/g,t=>t.charAt(0)==="\\"?"*":"")}createWildcardsRegExp(e){let t=this.opt.wildcards==="withSpaces";return e.replace(/\u0001/g,t?"[\\S\\s]?":"\\S?").replace(/\u0002/g,t?"[\\S\\s]*?":"\\S*")}setupIgnoreJoinersRegExp(e){return e.replace(/[^(|)\\]/g,(t,r,n)=>{let a=n.charAt(r+1);return/[(|)\\]/.test(a)||a===""?t:t+"\0"})}createJoinersRegExp(e){let t=[];const r=this.opt.ignorePunctuation;return Array.isArray(r)&&r.length&&t.push(this.escapeStr(r.join(""))),this.opt.ignoreJoiners&&t.push("\\u00ad\\u200b\\u200c\\u200d"),t.length?e.split(/\u0000+/).join(`[${t.join("")}]*`):e}createDiacriticsRegExp(e){const t=this.opt.caseSensitive?"":"i",r=this.opt.caseSensitive?["aàáảãạăằắẳẵặâầấẩẫậäåāą","AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćč","CÇĆČ","dđď","DĐĎ","eèéẻẽẹêềếểễệëěēę","EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïī","IÌÍỈĨỊÎÏĪ","lł","LŁ","nñňń","NÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøō","OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rř","RŘ","sšśșş","SŠŚȘŞ","tťțţ","TŤȚŢ","uùúủũụưừứửữựûüůū","UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿ","YÝỲỶỸỴŸ","zžżź","ZŽŻŹ"]:["aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćčCÇĆČ","dđďDĐĎ","eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïīIÌÍỈĨỊÎÏĪ","lłLŁ","nñňńNÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rřRŘ","sšśșşSŠŚȘŞ","tťțţTŤȚŢ","uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿYÝỲỶỸỴŸ","zžżźZŽŻŹ"];let n=[];return e.split("").forEach(a=>{r.every(i=>{if(i.indexOf(a)!==-1){if(n.indexOf(i)>-1)return!1;e=e.replace(new RegExp(`[${i}]`,`gm${t}`),`[${i}]`),n.push(i)}return!0})}),e}createMergedBlanksRegExp(e){return e.replace(/[\s]+/gmi,"[\\s]+")}createAccuracyRegExp(e){const t="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~¡¿";let r=this.opt.accuracy,n=typeof r=="string"?r:r.value,a=typeof r=="string"?[]:r.limiters,i="";switch(a.forEach(s=>{i+=`|${this.escapeStr(s)}`}),n){case"partially":default:return`()(${e})`;case"complementary":return i="\\s"+(i||this.escapeStr(t)),`()([^${i}]*${e}[^${i}]*)`;case"exactly":return`(^|\\s${i})(${e})(?=$|\\s${i})`}}getSeparatedKeywords(e){let t=[];return e.forEach(r=>{this.opt.separateWordSearch?r.split(" ").forEach(n=>{n.trim()&&t.indexOf(n)===-1&&t.push(n)}):r.trim()&&t.indexOf(r)===-1&&t.push(r)}),{keywords:t.sort((r,n)=>n.length-r.length),length:t.length}}isNumeric(e){return Number(parseFloat(e))==e}checkRanges(e){if(!Array.isArray(e)||Object.prototype.toString.call(e[0])!=="[object Object]")return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(e),[];const t=[];let r=0;return e.sort((n,a)=>n.start-a.start).forEach(n=>{let{start:a,end:i,valid:s}=this.callNoMatchOnInvalidRanges(n,r);s&&(n.start=a,n.length=i-a,t.push(n),r=i)}),t}callNoMatchOnInvalidRanges(e,t){let r,n,a=!1;return e&&typeof e.start<"u"?(r=parseInt(e.start,10),n=r+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&n-t>0&&n-r>0?a=!0:(this.log(`Ignoring invalid or overlapping range: ${JSON.stringify(e)}`),this.opt.noMatch(e))):(this.log(`Ignoring invalid range: ${JSON.stringify(e)}`),this.opt.noMatch(e)),{start:r,end:n,valid:a}}checkWhitespaceRanges(e,t,r){let n,a=!0,i=r.length,s=t-i,u=parseInt(e.start,10)-s;return u=u>i?i:u,n=u+parseInt(e.length,10),n>i&&(n=i,this.log(`End range automatically set to the max value of ${i}`)),u<0||n-u<0||u>i||n>i?(a=!1,this.log(`Invalid range: ${JSON.stringify(e)}`),this.opt.noMatch(e)):r.substring(u,n).replace(/\s+/g,"")===""&&(a=!1,this.log("Skipping whitespace only range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:u,end:n,valid:a}}getTextNodes(e){let t="",r=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,n=>{r.push({start:t.length,end:(t+=n.textContent).length,node:n})},n=>this.matchesExclude(n.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT,()=>{e({value:t,nodes:r})})}matchesExclude(e){return ie.matches(e,this.opt.exclude.concat(["script","style","title","head","html"]))}wrapRangeInTextNode(e,t,r){const n=this.opt.element?this.opt.element:"mark",a=e.splitText(t),i=a.splitText(r-t);let s=document.createElement(n);return s.setAttribute("data-markjs","true"),this.opt.className&&s.setAttribute("class",this.opt.className),s.textContent=a.textContent,a.parentNode.replaceChild(s,a),i}wrapRangeInMappedTextNode(e,t,r,n,a){e.nodes.every((i,s)=>{const u=e.nodes[s+1];if(typeof u>"u"||u.start>t){if(!n(i.node))return!1;const l=t-i.start,f=(r>i.end?i.end:r)-i.start,d=e.value.substr(0,i.start),v=e.value.substr(f+i.start);if(i.node=this.wrapRangeInTextNode(i.node,l,f),e.value=d+v,e.nodes.forEach((y,b)=>{b>=s&&(e.nodes[b].start>0&&b!==s&&(e.nodes[b].start-=f),e.nodes[b].end-=f)}),r-=f,a(i.node.previousSibling,i.start),r>i.end)t=i.end;else return!1}return!0})}wrapMatches(e,t,r,n,a){const i=t===0?0:t+1;this.getTextNodes(s=>{s.nodes.forEach(u=>{u=u.node;let l;for(;(l=e.exec(u.textContent))!==null&&l[i]!=="";){if(!r(l[i],u))continue;let f=l.index;if(i!==0)for(let d=1;d{let u;for(;(u=e.exec(s.value))!==null&&u[i]!=="";){let l=u.index;if(i!==0)for(let d=1;dr(u[i],d),(d,v)=>{e.lastIndex=v,n(d)})}a()})}wrapRangeFromIndex(e,t,r,n){this.getTextNodes(a=>{const i=a.value.length;e.forEach((s,u)=>{let{start:l,end:f,valid:d}=this.checkWhitespaceRanges(s,i,a.value);d&&this.wrapRangeInMappedTextNode(a,l,f,v=>t(v,s,a.value.substring(l,f),u),v=>{r(v,s)})}),n()})}unwrapMatches(e){const t=e.parentNode;let r=document.createDocumentFragment();for(;e.firstChild;)r.appendChild(e.removeChild(e.firstChild));t.replaceChild(r,e),this.ie?this.normalizeTextNode(t):t.normalize()}normalizeTextNode(e){if(e){if(e.nodeType===3)for(;e.nextSibling&&e.nextSibling.nodeType===3;)e.nodeValue+=e.nextSibling.nodeValue,e.parentNode.removeChild(e.nextSibling);else this.normalizeTextNode(e.firstChild);this.normalizeTextNode(e.nextSibling)}}markRegExp(e,t){this.opt=t,this.log(`Searching with expression "${e}"`);let r=0,n="wrapMatches";const a=i=>{r++,this.opt.each(i)};this.opt.acrossElements&&(n="wrapMatchesAcrossElements"),this[n](e,this.opt.ignoreGroups,(i,s)=>this.opt.filter(s,i,r),a,()=>{r===0&&this.opt.noMatch(e),this.opt.done(r)})}mark(e,t){this.opt=t;let r=0,n="wrapMatches";const{keywords:a,length:i}=this.getSeparatedKeywords(typeof e=="string"?[e]:e),s=this.opt.caseSensitive?"":"i",u=l=>{let f=new RegExp(this.createRegExp(l),`gm${s}`),d=0;this.log(`Searching with expression "${f}"`),this[n](f,1,(v,y)=>this.opt.filter(y,l,r,d),v=>{d++,r++,this.opt.each(v)},()=>{d===0&&this.opt.noMatch(l),a[i-1]===l?this.opt.done(r):u(a[a.indexOf(l)+1])})};this.opt.acrossElements&&(n="wrapMatchesAcrossElements"),i===0?this.opt.done(r):u(a[0])}markRanges(e,t){this.opt=t;let r=0,n=this.checkRanges(e);n&&n.length?(this.log("Starting to mark with the following ranges: "+JSON.stringify(n)),this.wrapRangeFromIndex(n,(a,i,s,u)=>this.opt.filter(a,i,s,u),(a,i)=>{r++,this.opt.each(a,i)},()=>{this.opt.done(r)})):this.opt.done(r)}unmark(e){this.opt=e;let t=this.opt.element?this.opt.element:"*";t+="[data-markjs]",this.opt.className&&(t+=`.${this.opt.className}`),this.log(`Removal selector "${t}"`),this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT,r=>{this.unwrapMatches(r)},r=>{const n=ie.matches(r,t),a=this.matchesExclude(r);return!n||a?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},this.opt.done)}};function Mr(o){const e=new Or(o);return this.mark=(t,r)=>(e.mark(t,r),this),this.markRegExp=(t,r)=>(e.markRegExp(t,r),this),this.markRanges=(t,r)=>(e.markRanges(t,r),this),this.unmark=t=>(e.unmark(t),this),this}var z=function(){return z=Object.assign||function(e){for(var t,r=1,n=arguments.length;r0&&a[a.length-1])&&(l[0]===6||l[0]===2)){t=0;continue}if(l[0]===3&&(!a||l[1]>a[0]&&l[1]=o.length&&(o=void 0),{value:o&&o[r++],done:!o}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function B(o,e){var t=typeof Symbol=="function"&&o[Symbol.iterator];if(!t)return o;var r=t.call(o),n,a=[],i;try{for(;(e===void 0||e-- >0)&&!(n=r.next()).done;)a.push(n.value)}catch(s){i={error:s}}finally{try{n&&!n.done&&(t=r.return)&&t.call(r)}finally{if(i)throw i.error}}return a}var Lr="ENTRIES",Et="KEYS",St="VALUES",W="",Ie=function(){function o(e,t){var r=e._tree,n=Array.from(r.keys());this.set=e,this._type=t,this._path=n.length>0?[{node:r,keys:n}]:[]}return o.prototype.next=function(){var e=this.dive();return this.backtrack(),e},o.prototype.dive=function(){if(this._path.length===0)return{done:!0,value:void 0};var e=ne(this._path),t=e.node,r=e.keys;if(ne(r)===W)return{done:!1,value:this.result()};var n=t.get(ne(r));return this._path.push({node:n,keys:Array.from(n.keys())}),this.dive()},o.prototype.backtrack=function(){if(this._path.length!==0){var e=ne(this._path).keys;e.pop(),!(e.length>0)&&(this._path.pop(),this.backtrack())}},o.prototype.key=function(){return this.set._prefix+this._path.map(function(e){var t=e.keys;return ne(t)}).filter(function(e){return e!==W}).join("")},o.prototype.value=function(){return ne(this._path).node.get(W)},o.prototype.result=function(){switch(this._type){case St:return this.value();case Et:return this.key();default:return[this.key(),this.value()]}},o.prototype[Symbol.iterator]=function(){return this},o}(),ne=function(o){return o[o.length-1]},zr=function(o,e,t){var r=new Map;if(e===void 0)return r;for(var n=e.length+1,a=n+t,i=new Uint8Array(a*n).fill(t+1),s=0;st)continue e}At(o.get(y),e,t,r,n,g,i,s+y)}}}catch(E){u={error:E}}finally{try{v&&!v.done&&(l=d.return)&&l.call(d)}finally{if(u)throw u.error}}},De=function(){function o(e,t){e===void 0&&(e=new Map),t===void 0&&(t=""),this._size=void 0,this._tree=e,this._prefix=t}return o.prototype.atPrefix=function(e){var t,r;if(!e.startsWith(this._prefix))throw new Error("Mismatched prefix");var n=B(Ce(this._tree,e.slice(this._prefix.length)),2),a=n[0],i=n[1];if(a===void 0){var s=B(We(i),2),u=s[0],l=s[1];try{for(var f=I(u.keys()),d=f.next();!d.done;d=f.next()){var v=d.value;if(v!==W&&v.startsWith(l)){var y=new Map;return y.set(v.slice(l.length),u.get(v)),new o(y,e)}}}catch(b){t={error:b}}finally{try{d&&!d.done&&(r=f.return)&&r.call(f)}finally{if(t)throw t.error}}}return new o(a,e)},o.prototype.clear=function(){this._size=void 0,this._tree.clear()},o.prototype.delete=function(e){return this._size=void 0,Vr(this._tree,e)},o.prototype.entries=function(){return new Ie(this,Lr)},o.prototype.forEach=function(e){var t,r;try{for(var n=I(this),a=n.next();!a.done;a=n.next()){var i=B(a.value,2),s=i[0],u=i[1];e(s,u,this)}}catch(l){t={error:l}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(t)throw t.error}}},o.prototype.fuzzyGet=function(e,t){return zr(this._tree,e,t)},o.prototype.get=function(e){var t=Ve(this._tree,e);return t!==void 0?t.get(W):void 0},o.prototype.has=function(e){var t=Ve(this._tree,e);return t!==void 0&&t.has(W)},o.prototype.keys=function(){return new Ie(this,Et)},o.prototype.set=function(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;var r=Oe(this._tree,e);return r.set(W,t),this},Object.defineProperty(o.prototype,"size",{get:function(){if(this._size)return this._size;this._size=0;for(var e=this.entries();!e.next().done;)this._size+=1;return this._size},enumerable:!1,configurable:!0}),o.prototype.update=function(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;var r=Oe(this._tree,e);return r.set(W,t(r.get(W))),this},o.prototype.fetch=function(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;var r=Oe(this._tree,e),n=r.get(W);return n===void 0&&r.set(W,n=t()),n},o.prototype.values=function(){return new Ie(this,St)},o.prototype[Symbol.iterator]=function(){return this.entries()},o.from=function(e){var t,r,n=new o;try{for(var a=I(e),i=a.next();!i.done;i=a.next()){var s=B(i.value,2),u=s[0],l=s[1];n.set(u,l)}}catch(f){t={error:f}}finally{try{i&&!i.done&&(r=a.return)&&r.call(a)}finally{if(t)throw t.error}}return n},o.fromObject=function(e){return o.from(Object.entries(e))},o}(),Ce=function(o,e,t){var r,n;if(t===void 0&&(t=[]),e.length===0||o==null)return[o,t];try{for(var a=I(o.keys()),i=a.next();!i.done;i=a.next()){var s=i.value;if(s!==W&&e.startsWith(s))return t.push([o,s]),Ce(o.get(s),e.slice(s.length),t)}}catch(u){r={error:u}}finally{try{i&&!i.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}return t.push([o,e]),Ce(void 0,"",t)},Ve=function(o,e){var t,r;if(e.length===0||o==null)return o;try{for(var n=I(o.keys()),a=n.next();!a.done;a=n.next()){var i=a.value;if(i!==W&&e.startsWith(i))return Ve(o.get(i),e.slice(i.length))}}catch(s){t={error:s}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(t)throw t.error}}},Oe=function(o,e){var t,r,n=e.length;e:for(var a=0;o&&a0)throw new Error("Expected documents to be present. Omit the argument to remove all documents.");this._index=new De,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldLength=new Map,this._avgFieldLength=[],this._storedFields=new Map,this._nextId=0}},o.prototype.discard=function(e){var t=this,r=this._idToShortId.get(e);if(r==null)throw new Error("MiniSearch: cannot discard document with ID ".concat(e,": it is not in the index"));this._idToShortId.delete(e),this._documentIds.delete(r),this._storedFields.delete(r),(this._fieldLength.get(r)||[]).forEach(function(n,a){t.removeFieldLength(r,a,t._documentCount,n)}),this._fieldLength.delete(r),this._documentCount-=1,this._dirtCount+=1,this.maybeAutoVacuum()},o.prototype.maybeAutoVacuum=function(){if(this._options.autoVacuum!==!1){var e=this._options.autoVacuum,t=e.minDirtFactor,r=e.minDirtCount,n=e.batchSize,a=e.batchWait;this.conditionalVacuum({batchSize:n,batchWait:a},{minDirtCount:r,minDirtFactor:t})}},o.prototype.discardAll=function(e){var t,r,n=this._options.autoVacuum;try{this._options.autoVacuum=!1;try{for(var a=I(e),i=a.next();!i.done;i=a.next()){var s=i.value;this.discard(s)}}catch(u){t={error:u}}finally{try{i&&!i.done&&(r=a.return)&&r.call(a)}finally{if(t)throw t.error}}}finally{this._options.autoVacuum=n}this.maybeAutoVacuum()},o.prototype.replace=function(e){var t=this._options,r=t.idField,n=t.extractField,a=n(e,r);this.discard(a),this.add(e)},o.prototype.vacuum=function(e){return e===void 0&&(e={}),this.conditionalVacuum(e)},o.prototype.conditionalVacuum=function(e,t){var r=this;return this._currentVacuum?(this._enqueuedVacuumConditions=this._enqueuedVacuumConditions&&t,this._enqueuedVacuum!=null?this._enqueuedVacuum:(this._enqueuedVacuum=this._currentVacuum.then(function(){var n=r._enqueuedVacuumConditions;return r._enqueuedVacuumConditions=$e,r.performVacuuming(e,n)}),this._enqueuedVacuum)):this.vacuumConditionsMet(t)===!1?Promise.resolve():(this._currentVacuum=this.performVacuuming(e),this._currentVacuum)},o.prototype.performVacuuming=function(e,t){return Rr(this,void 0,void 0,function(){var r,n,a,i,s,u,l,f,d,v,y,b,g,w,T,_,A,O,D,L,x,N,F,c,p;return Pr(this,function(h){switch(h.label){case 0:if(r=this._dirtCount,!this.vacuumConditionsMet(t))return[3,10];n=e.batchSize||Be.batchSize,a=e.batchWait||Be.batchWait,i=1,h.label=1;case 1:h.trys.push([1,7,8,9]),s=I(this._index),u=s.next(),h.label=2;case 2:if(u.done)return[3,6];l=B(u.value,2),f=l[0],d=l[1];try{for(v=(N=void 0,I(d)),y=v.next();!y.done;y=v.next()){b=B(y.value,2),g=b[0],w=b[1];try{for(T=(c=void 0,I(w)),_=T.next();!_.done;_=T.next())A=B(_.value,1),O=A[0],!this._documentIds.has(O)&&(w.size<=1?d.delete(g):w.delete(O))}catch(E){c={error:E}}finally{try{_&&!_.done&&(p=T.return)&&p.call(T)}finally{if(c)throw c.error}}}}catch(E){N={error:E}}finally{try{y&&!y.done&&(F=v.return)&&F.call(v)}finally{if(N)throw N.error}}return this._index.get(f).size===0&&this._index.delete(f),i%n!==0?[3,4]:[4,new Promise(function(E){return setTimeout(E,a)})];case 3:h.sent(),h.label=4;case 4:i+=1,h.label=5;case 5:return u=s.next(),[3,2];case 6:return[3,9];case 7:return D=h.sent(),L={error:D},[3,9];case 8:try{u&&!u.done&&(x=s.return)&&x.call(s)}finally{if(L)throw L.error}return[7];case 9:this._dirtCount-=r,h.label=10;case 10:return[4,null];case 11:return h.sent(),this._currentVacuum=this._enqueuedVacuum,this._enqueuedVacuum=null,[2]}})})},o.prototype.vacuumConditionsMet=function(e){if(e==null)return!0;var t=e.minDirtCount,r=e.minDirtFactor;return t=t||Pe.minDirtCount,r=r||Pe.minDirtFactor,this.dirtCount>=t&&this.dirtFactor>=r},Object.defineProperty(o.prototype,"isVacuuming",{get:function(){return this._currentVacuum!=null},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"dirtCount",{get:function(){return this._dirtCount},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"dirtFactor",{get:function(){return this._dirtCount/(1+this._documentCount+this._dirtCount)},enumerable:!1,configurable:!0}),o.prototype.has=function(e){return this._idToShortId.has(e)},o.prototype.getStoredFields=function(e){var t=this._idToShortId.get(e);if(t!=null)return this._storedFields.get(t)},o.prototype.search=function(e,t){var r,n;t===void 0&&(t={});var a=this.executeQuery(e,t),i=[];try{for(var s=I(a),u=s.next();!u.done;u=s.next()){var l=B(u.value,2),f=l[0],d=l[1],v=d.score,y=d.terms,b=d.match,g=y.length,w={id:this._documentIds.get(f),score:v*g,terms:Object.keys(b),match:b};Object.assign(w,this._storedFields.get(f)),(t.filter==null||t.filter(w))&&i.push(w)}}catch(T){r={error:T}}finally{try{u&&!u.done&&(n=s.return)&&n.call(s)}finally{if(r)throw r.error}}return i.sort(ht),i},o.prototype.autoSuggest=function(e,t){var r,n,a,i;t===void 0&&(t={}),t=z(z({},this._options.autoSuggestOptions),t);var s=new Map;try{for(var u=I(this.search(e,t)),l=u.next();!l.done;l=u.next()){var f=l.value,d=f.score,v=f.terms,y=v.join(" "),b=s.get(y);b!=null?(b.score+=d,b.count+=1):s.set(y,{score:d,terms:v,count:1})}}catch(D){r={error:D}}finally{try{l&&!l.done&&(n=u.return)&&n.call(u)}finally{if(r)throw r.error}}var g=[];try{for(var w=I(s),T=w.next();!T.done;T=w.next()){var _=B(T.value,2),b=_[0],A=_[1],d=A.score,v=A.terms,O=A.count;g.push({suggestion:b,terms:v,score:d/O})}}catch(D){a={error:D}}finally{try{T&&!T.done&&(i=w.return)&&i.call(w)}finally{if(a)throw a.error}}return g.sort(ht),g},Object.defineProperty(o.prototype,"documentCount",{get:function(){return this._documentCount},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"termCount",{get:function(){return this._index.size},enumerable:!1,configurable:!0}),o.loadJSON=function(e,t){if(t==null)throw new Error("MiniSearch: loadJSON should be given the same options used when serializing the index");return this.loadJS(JSON.parse(e),t)},o.getDefault=function(e){if(Re.hasOwnProperty(e))return Me(Re,e);throw new Error('MiniSearch: unknown option "'.concat(e,'"'))},o.loadJS=function(e,t){var r,n,a,i,s,u,l=e.index,f=e.documentCount,d=e.nextId,v=e.documentIds,y=e.fieldIds,b=e.fieldLength,g=e.averageFieldLength,w=e.storedFields,T=e.dirtCount,_=e.serializationVersion;if(_!==1&&_!==2)throw new Error("MiniSearch: cannot deserialize an index created with an incompatible version");var A=new o(t);A._documentCount=f,A._nextId=d,A._documentIds=we(v),A._idToShortId=new Map,A._fieldIds=y,A._fieldLength=we(b),A._avgFieldLength=g,A._storedFields=we(w),A._dirtCount=T||0,A._index=new De;try{for(var O=I(A._documentIds),D=O.next();!D.done;D=O.next()){var L=B(D.value,2),x=L[0],N=L[1];A._idToShortId.set(N,x)}}catch(P){r={error:P}}finally{try{D&&!D.done&&(n=O.return)&&n.call(O)}finally{if(r)throw r.error}}try{for(var F=I(l),c=F.next();!c.done;c=F.next()){var p=B(c.value,2),h=p[0],E=p[1],S=new Map;try{for(var M=(s=void 0,I(Object.keys(E))),R=M.next();!R.done;R=M.next()){var m=R.value,k=E[m];_===1&&(k=k.ds),S.set(parseInt(m,10),we(k))}}catch(P){s={error:P}}finally{try{R&&!R.done&&(u=M.return)&&u.call(M)}finally{if(s)throw s.error}}A._index.set(h,S)}}catch(P){a={error:P}}finally{try{c&&!c.done&&(i=F.return)&&i.call(F)}finally{if(a)throw a.error}}return A},o.prototype.executeQuery=function(e,t){var r=this;if(t===void 0&&(t={}),typeof e!="string"){var n=z(z(z({},t),e),{queries:void 0}),a=e.queries.map(function(w){return r.executeQuery(w,n)});return this.combineResults(a,n.combineWith)}var i=this._options,s=i.tokenize,u=i.processTerm,l=i.searchOptions,f=z(z({tokenize:s,processTerm:u},l),t),d=f.tokenize,v=f.processTerm,y=d(e).flatMap(function(w){return v(w)}).filter(function(w){return!!w}),b=y.map(Jr(f)),g=b.map(function(w){return r.executeQuerySpec(w,f)});return this.combineResults(g,f.combineWith)},o.prototype.executeQuerySpec=function(e,t){var r,n,a,i,s=z(z({},this._options.searchOptions),t),u=(s.fields||this._options.fields).reduce(function(m,k){var P;return z(z({},m),(P={},P[k]=Me(s.boost,k)||1,P))},{}),l=s.boostDocument,f=s.weights,d=s.maxFuzzy,v=s.bm25,y=z(z({},ct.weights),f),b=y.fuzzy,g=y.prefix,w=this._index.get(e.term),T=this.termResults(e.term,e.term,1,w,u,l,v),_,A;if(e.prefix&&(_=this._index.atPrefix(e.term)),e.fuzzy){var O=e.fuzzy===!0?.2:e.fuzzy,D=O<1?Math.min(d,Math.round(e.term.length*O)):O;D&&(A=this._index.fuzzyGet(e.term,D))}if(_)try{for(var L=I(_),x=L.next();!x.done;x=L.next()){var N=B(x.value,2),F=N[0],c=N[1],p=F.length-e.term.length;if(p){A==null||A.delete(F);var h=g*F.length/(F.length+.3*p);this.termResults(e.term,F,h,c,u,l,v,T)}}}catch(m){r={error:m}}finally{try{x&&!x.done&&(n=L.return)&&n.call(L)}finally{if(r)throw r.error}}if(A)try{for(var E=I(A.keys()),S=E.next();!S.done;S=E.next()){var F=S.value,M=B(A.get(F),2),R=M[0],p=M[1];if(p){var h=b*F.length/(F.length+p);this.termResults(e.term,F,h,R,u,l,v,T)}}}catch(m){a={error:m}}finally{try{S&&!S.done&&(i=E.return)&&i.call(E)}finally{if(a)throw a.error}}return T},o.prototype.combineResults=function(e,t){if(t===void 0&&(t=je),e.length===0)return new Map;var r=t.toLowerCase();return e.reduce(Wr[r])||new Map},o.prototype.toJSON=function(){var e,t,r,n,a=[];try{for(var i=I(this._index),s=i.next();!s.done;s=i.next()){var u=B(s.value,2),l=u[0],f=u[1],d={};try{for(var v=(r=void 0,I(f)),y=v.next();!y.done;y=v.next()){var b=B(y.value,2),g=b[0],w=b[1];d[g]=Object.fromEntries(w)}}catch(T){r={error:T}}finally{try{y&&!y.done&&(n=v.return)&&n.call(v)}finally{if(r)throw r.error}}a.push([l,d])}}catch(T){e={error:T}}finally{try{s&&!s.done&&(t=i.return)&&t.call(i)}finally{if(e)throw e.error}}return{documentCount:this._documentCount,nextId:this._nextId,documentIds:Object.fromEntries(this._documentIds),fieldIds:this._fieldIds,fieldLength:Object.fromEntries(this._fieldLength),averageFieldLength:this._avgFieldLength,storedFields:Object.fromEntries(this._storedFields),dirtCount:this._dirtCount,index:a,serializationVersion:2}},o.prototype.termResults=function(e,t,r,n,a,i,s,u){var l,f,d,v,y;if(u===void 0&&(u=new Map),n==null)return u;try{for(var b=I(Object.keys(a)),g=b.next();!g.done;g=b.next()){var w=g.value,T=a[w],_=this._fieldIds[w],A=n.get(_);if(A!=null){var O=A.size,D=this._avgFieldLength[_];try{for(var L=(d=void 0,I(A.keys())),x=L.next();!x.done;x=L.next()){var N=x.value;if(!this._documentIds.has(N)){this.removeTerm(_,N,t),O-=1;continue}var F=i?i(this._documentIds.get(N),t,this._storedFields.get(N)):1;if(F){var c=A.get(N),p=this._fieldLength.get(N)[_],h=Kr(c,O,this._documentCount,p,D,s),E=r*T*F*h,S=u.get(N);if(S){S.score+=E,Hr(S.terms,e);var M=Me(S.match,t);M?M.push(w):S.match[t]=[w]}else u.set(N,{score:E,terms:[e],match:(y={},y[t]=[w],y)})}}}catch(R){d={error:R}}finally{try{x&&!x.done&&(v=L.return)&&v.call(L)}finally{if(d)throw d.error}}}}}catch(R){l={error:R}}finally{try{g&&!g.done&&(f=b.return)&&f.call(b)}finally{if(l)throw l.error}}return u},o.prototype.addTerm=function(e,t,r){var n=this._index.fetch(r,dt),a=n.get(e);if(a==null)a=new Map,a.set(t,1),n.set(e,a);else{var i=a.get(t);a.set(t,(i||0)+1)}},o.prototype.removeTerm=function(e,t,r){if(!this._index.has(r)){this.warnDocumentChanged(t,e,r);return}var n=this._index.fetch(r,dt),a=n.get(e);a==null||a.get(t)==null?this.warnDocumentChanged(t,e,r):a.get(t)<=1?a.size<=1?n.delete(e):a.delete(t):a.set(t,a.get(t)-1),this._index.get(r).size===0&&this._index.delete(r)},o.prototype.warnDocumentChanged=function(e,t,r){var n,a;try{for(var i=I(Object.keys(this._fieldIds)),s=i.next();!s.done;s=i.next()){var u=s.value;if(this._fieldIds[u]===t){this._options.logger("warn","MiniSearch: document with ID ".concat(this._documentIds.get(e),' has changed before removal: term "').concat(r,'" was not present in field "').concat(u,'". Removing a document after it has changed can corrupt the index!'),"version_conflict");return}}}catch(l){n={error:l}}finally{try{s&&!s.done&&(a=i.return)&&a.call(i)}finally{if(n)throw n.error}}},o.prototype.addDocumentId=function(e){var t=this._nextId;return this._idToShortId.set(e,t),this._documentIds.set(t,e),this._documentCount+=1,this._nextId+=1,t},o.prototype.addFields=function(e){for(var t=0;t(Vt("data-v-b030f574"),o=o(),Bt(),o),Gr=["aria-owns"],Qr={class:"shell"},Yr=["title"],Zr=J(()=>C("svg",{class:"search-icon",width:"18",height:"18",viewBox:"0 0 24 24","aria-hidden":"true"},[C("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[C("circle",{cx:"11",cy:"11",r:"8"}),C("path",{d:"m21 21l-4.35-4.35"})])],-1)),Xr=[Zr],ea={class:"search-actions before"},ta=["title"],ra=J(()=>C("svg",{width:"18",height:"18",viewBox:"0 0 24 24","aria-hidden":"true"},[C("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 12H5m7 7l-7-7l7-7"})],-1)),aa=[ra],na=["placeholder"],ia={class:"search-actions"},oa=["title"],sa=J(()=>C("svg",{width:"18",height:"18",viewBox:"0 0 24 24","aria-hidden":"true"},[C("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 14h7v7H3zM3 3h7v7H3zm11 1h7m-7 5h7m-7 6h7m-7 5h7"})],-1)),ua=[sa],la=["disabled","title"],ca=J(()=>C("svg",{width:"18",height:"18",viewBox:"0 0 24 24","aria-hidden":"true"},[C("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M20 5H9l-7 7l7 7h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2Zm-2 4l-6 6m0-6l6 6"})],-1)),fa=[ca],ha=["id","role","aria-labelledby"],da=["aria-selected"],va=["href","aria-label","onMouseenter","onFocusin"],pa={class:"titles"},ya=J(()=>C("span",{class:"title-icon"},"#",-1)),ga=["innerHTML"],ma=J(()=>C("svg",{width:"18",height:"18",viewBox:"0 0 24 24"},[C("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m9 18l6-6l-6-6"})],-1)),ba={class:"title main"},wa=["innerHTML"],xa={key:0,class:"excerpt-wrapper"},Fa={key:0,class:"excerpt",inert:""},Ea=["innerHTML"],Sa=J(()=>C("div",{class:"excerpt-gradient-bottom"},null,-1)),Aa=J(()=>C("div",{class:"excerpt-gradient-top"},null,-1)),Ca={key:0,class:"no-results"},ka={class:"search-keyboard-shortcuts"},Ta=["aria-label"],Na=J(()=>C("svg",{width:"14",height:"14",viewBox:"0 0 24 24"},[C("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 19V5m-7 7l7-7l7 7"})],-1)),_a=[Na],Ia=["aria-label"],Da=J(()=>C("svg",{width:"14",height:"14",viewBox:"0 0 24 24"},[C("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 5v14m7-7l-7 7l-7-7"})],-1)),Oa=[Da],Ma=["aria-label"],Ra=J(()=>C("svg",{width:"14",height:"14",viewBox:"0 0 24 24"},[C("g",{fill:"none",stroke:"currentcolor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[C("path",{d:"m9 10l-5 5l5 5"}),C("path",{d:"M20 4v7a4 4 0 0 1-4 4H4"})])],-1)),Pa=[Ra],La=["aria-label"],za=Nt({__name:"VPLocalSearchBox",props:{placeholder:{}},emits:["close"],setup(o,{emit:e}){var R;const t=ue(),r=ue(),n=ue(),a=ue(er),i=Ht(),{activate:s}=Dr(t,{immediate:!0,allowOutsideClick:!0,clickOutsideDeactivates:!0,escapeDeactivates:!0}),{localeIndex:u,theme:l}=i,f=rt(async()=>{var m,k,P;return tt($r.loadJSON((P=await((k=(m=a.value)[u.value])==null?void 0:k.call(m)))==null?void 0:P.default,{fields:["title","titles","text"],storeFields:["title","titles"],searchOptions:{fuzzy:.2,prefix:!0,boost:{title:4,text:2,titles:1}}}))}),v=Te(()=>{var m,k;return((m=l.value.search)==null?void 0:m.provider)==="local"&&((k=l.value.search.options)==null?void 0:k.disableQueryPersistence)===!0}).value?te(""):qt("vitepress:local-search-filter",""),y=Gt("vitepress:local-search-detailed-list",!1),b=Te(()=>{var m,k;return((m=l.value.search)==null?void 0:m.provider)==="local"&&((k=l.value.search.options)==null?void 0:k.disableDetailedView)===!0});_t(()=>{b.value&&(y.value=!1)});const g=ue([]),w=te(!1);Le(v,()=>{w.value=!1});const T=rt(async()=>{if(r.value)return tt(new Mr(r.value))},null);Qt(()=>[f.value,v.value,y.value],async([m,k,P],oe,ae)=>{var Ke,Je,Ue,He;let K=!1;if(ae(()=>{K=!0}),!m)return;g.value=m.search(k).slice(0,16),w.value=!0;const V=P?await Promise.all(g.value.map(j=>_(j.id))):[];if(K)return;const q=new Map;for(const{id:j,mod:Z}of V){const X=j.slice(0,j.indexOf("#"));let G=q.get(X);if(G)continue;G=new Map,q.set(X,G);const U=Z.default??Z;if(U!=null&&U.render||U!=null&&U.setup){const ee=$t(U);ee.config.warnHandler=()=>{},ee.provide(Wt,i),Object.defineProperties(ee.config.globalProperties,{$frontmatter:{get(){return i.frontmatter.value}},$params:{get(){return i.page.value.params}}});const qe=document.createElement("div");ee.mount(qe),qe.querySelectorAll("h1, h2, h3, h4, h5, h6").forEach(se=>{var Ye;const pe=(Ye=se.querySelector("a"))==null?void 0:Ye.getAttribute("href"),Ge=(pe==null?void 0:pe.startsWith("#"))&&pe.slice(1);if(!Ge)return;let Qe="";for(;(se=se.nextElementSibling)&&!/^h[1-6]$/i.test(se.tagName);)Qe+=se.outerHTML;G.set(Ge,Qe)}),ee.unmount()}if(K)return}const Y=new Set;if(g.value=g.value.map(j=>{const[Z,X]=j.id.split("#"),G=q.get(Z),U=(G==null?void 0:G.get(X))??"";for(const ee in j.match)Y.add(ee);return{...j,text:U}}),await le(),K)return;await new Promise(j=>{var Z;(Z=T.value)==null||Z.unmark({done:()=>{var X;(X=T.value)==null||X.markRegExp(M(Y),{done:j})}})});const ke=((Ke=t.value)==null?void 0:Ke.querySelectorAll(".result .excerpt"))??[];for(const j of ke)(Je=j.querySelector('mark[data-markjs="true"]'))==null||Je.scrollIntoView({block:"center"});(He=(Ue=r.value)==null?void 0:Ue.firstElementChild)==null||He.scrollIntoView({block:"start"})},{debounce:200,immediate:!0});async function _(m){const k=jt(m.slice(0,m.indexOf("#")));try{return{id:m,mod:await vt(()=>import(k),[])}}catch(P){return console.error(P),{id:m,mod:{}}}}const A=te(),O=Te(()=>{var m;return((m=v.value)==null?void 0:m.length)<=0});function D(m=!0){var k,P;(k=A.value)==null||k.focus(),m&&((P=A.value)==null||P.select())}Ne(()=>{D()});function L(m){m.pointerType==="mouse"&&D()}const x=te(-1),N=te(!1);Le(g,m=>{x.value=m.length?0:-1,F()});function F(){le(()=>{const m=document.querySelector(".result.selected");m&&m.scrollIntoView({block:"nearest"})})}ge("ArrowUp",m=>{m.preventDefault(),x.value--,x.value<0&&(x.value=g.value.length-1),N.value=!0,F()}),ge("ArrowDown",m=>{m.preventDefault(),x.value++,x.value>=g.value.length&&(x.value=0),N.value=!0,F()});const c=It();ge("Enter",()=>{const m=g.value[x.value];m&&(c.go(m.id),e("close"))}),ge("Escape",()=>{e("close")});const p={modal:{displayDetails:"Display detailed list",resetButtonTitle:"Reset search",backButtonTitle:"Close search",noResultsText:"No results for",footer:{selectText:"to select",selectKeyAriaLabel:"enter",navigateText:"to navigate",navigateUpKeyAriaLabel:"up arrow",navigateDownKeyAriaLabel:"down arrow",closeText:"to close",closeKeyAriaLabel:"escape"}}},h=Yt((R=l.value.search)==null?void 0:R.options,p);Ne(()=>{window.history.pushState(null,"",null)}),Zt("popstate",m=>{m.preventDefault(),e("close")});const E=Xt(n);Ne(()=>{n.value=document.body,le(()=>{E.value=!0,le().then(()=>s())})}),Dt(()=>{E.value=!1});function S(){v.value="",le().then(()=>D(!1))}function M(m){return new RegExp([...m].sort((k,P)=>P.length-k.length).map(k=>`(${k.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")})`).join("|"),"gi")}return(m,k)=>{var P,oe,ae,K;return H(),Ot(zt,{to:"body"},[C("div",{ref_key:"el",ref:t,role:"button","aria-owns":(P=g.value)!=null&&P.length?"localsearch-list":void 0,"aria-expanded":"true","aria-haspopup":"listbox","aria-labelledby":"localsearch-label",class:"VPLocalSearchBox"},[C("div",{class:"backdrop",onClick:k[0]||(k[0]=V=>m.$emit("close"))}),C("div",Qr,[C("form",{class:"search-bar",onPointerup:k[4]||(k[4]=V=>L(V)),onSubmit:k[5]||(k[5]=Mt(()=>{},["prevent"]))},[C("label",{title:m.placeholder,id:"localsearch-label",for:"localsearch-input"},Xr,8,Yr),C("div",ea,[C("button",{class:"back-button",title:$(h)("modal.backButtonTitle"),onClick:k[1]||(k[1]=V=>x.value>-1&&m.$emit("close"))},aa,8,ta)]),Rt(C("input",{ref_key:"searchInput",ref:A,"onUpdate:modelValue":k[2]||(k[2]=V=>Lt(v)?v.value=V:null),placeholder:m.placeholder,id:"localsearch-input","aria-labelledby":"localsearch-label",class:"search-input"},null,8,na),[[Pt,$(v)]]),C("div",ia,[b.value?ye("",!0):(H(),Q("button",{key:0,class:Ze(["toggle-layout-button",{"detailed-list":$(y)}]),title:$(h)("modal.displayDetails"),onClick:k[3]||(k[3]=V=>x.value>-1&&(y.value=!$(y)))},ua,10,oa)),C("button",{class:"clear-button",type:"reset",disabled:O.value,title:$(h)("modal.resetButtonTitle"),onClick:S},fa,8,la)])],32),C("ul",{ref_key:"resultsEl",ref:r,id:(oe=g.value)!=null&&oe.length?"localsearch-list":void 0,role:(ae=g.value)!=null&&ae.length?"listbox":void 0,"aria-labelledby":(K=g.value)!=null&&K.length?"localsearch-label":void 0,class:"results",onMousemove:k[7]||(k[7]=V=>N.value=!1)},[(H(!0),Q(et,null,Xe(g.value,(V,q)=>(H(),Q("li",{key:V.id,role:"option","aria-selected":x.value===q?"true":"false"},[C("a",{href:V.id,class:Ze(["result",{selected:x.value===q}]),"aria-label":[...V.titles,V.title].join(" > "),onMouseenter:Y=>!N.value&&(x.value=q),onFocusin:Y=>x.value=q,onClick:k[6]||(k[6]=Y=>m.$emit("close"))},[C("div",null,[C("div",pa,[ya,(H(!0),Q(et,null,Xe(V.titles,(Y,ke)=>(H(),Q("span",{key:ke,class:"title"},[C("span",{class:"text",innerHTML:Y},null,8,ga),ma]))),128)),C("span",ba,[C("span",{class:"text",innerHTML:V.title},null,8,wa)])]),$(y)?(H(),Q("div",xa,[V.text?(H(),Q("div",Fa,[C("div",{class:"vp-doc",innerHTML:V.text},null,8,Ea)])):ye("",!0),Sa,Aa])):ye("",!0)])],42,va)],8,da))),128)),$(v)&&!g.value.length&&w.value?(H(),Q("li",Ca,[ce(fe($(h)("modal.noResultsText"))+' "',1),C("strong",null,fe($(v)),1),ce('" ')])):ye("",!0)],40,ha),C("div",ka,[C("span",null,[C("kbd",{"aria-label":$(h)("modal.footer.navigateUpKeyAriaLabel")},_a,8,Ta),C("kbd",{"aria-label":$(h)("modal.footer.navigateDownKeyAriaLabel")},Oa,8,Ia),ce(" "+fe($(h)("modal.footer.navigateText")),1)]),C("span",null,[C("kbd",{"aria-label":$(h)("modal.footer.selectKeyAriaLabel")},Pa,8,Ma),ce(" "+fe($(h)("modal.footer.selectText")),1)]),C("span",null,[C("kbd",{"aria-label":$(h)("modal.footer.closeKeyAriaLabel")},"esc",8,La),ce(" "+fe($(h)("modal.footer.closeText")),1)])])])],8,Gr)])}}});const ja=Kt(za,[["__scopeId","data-v-b030f574"]]);export{ja as default}; diff --git a/docs/.vitepress/dist/assets/chunks/framework.dc35932b.js b/docs/.vitepress/dist/assets/chunks/framework.dc35932b.js new file mode 100644 index 0000000..202f2d3 --- /dev/null +++ b/docs/.vitepress/dist/assets/chunks/framework.dc35932b.js @@ -0,0 +1,2 @@ +function ts(e,t){const n=Object.create(null),s=e.split(",");for(let r=0;r!!n[r.toLowerCase()]:r=>!!n[r]}const te={},at=[],Pe=()=>{},Hi=()=>!1,$i=/^on[^a-z]/,Bt=e=>$i.test(e),ns=e=>e.startsWith("onUpdate:"),oe=Object.assign,ss=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Ui=Object.prototype.hasOwnProperty,Y=(e,t)=>Ui.call(e,t),N=Array.isArray,ut=e=>mn(e)==="[object Map]",xr=e=>mn(e)==="[object Set]",D=e=>typeof e=="function",se=e=>typeof e=="string",rs=e=>typeof e=="symbol",ee=e=>e!==null&&typeof e=="object",Er=e=>ee(e)&&D(e.then)&&D(e.catch),Tr=Object.prototype.toString,mn=e=>Tr.call(e),ji=e=>mn(e).slice(8,-1),Ar=e=>mn(e)==="[object Object]",is=e=>se(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Pt=ts(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),_n=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Bi=/-(\w)/g,Se=_n(e=>e.replace(Bi,(t,n)=>n?n.toUpperCase():"")),Di=/\B([A-Z])/g,it=_n(e=>e.replace(Di,"-$1").toLowerCase()),bn=_n(e=>e.charAt(0).toUpperCase()+e.slice(1)),tn=_n(e=>e?`on${bn(e)}`:""),Nt=(e,t)=>!Object.is(e,t),nn=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},Bn=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Ki=e=>{const t=se(e)?Number(e):NaN;return isNaN(t)?e:t};let Os;const Dn=()=>Os||(Os=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function os(e){if(N(e)){const t={};for(let n=0;n{if(n){const s=n.split(Wi);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function ls(e){let t="";if(se(e))t=e;else if(N(e))for(let n=0;nse(e)?e:e==null?"":N(e)||ee(e)&&(e.toString===Tr||!D(e.toString))?JSON.stringify(e,Pr,2):String(e),Pr=(e,t)=>t&&t.__v_isRef?Pr(e,t.value):ut(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r])=>(n[`${s} =>`]=r,n),{})}:xr(t)?{[`Set(${t.size})`]:[...t.values()]}:ee(t)&&!N(t)&&!Ar(t)?String(t):t;let _e;class Ji{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=_e,!t&&_e&&(this.index=(_e.scopes||(_e.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=_e;try{return _e=this,t()}finally{_e=n}}}on(){_e=this}off(){_e=this.parent}stop(t){if(this._active){let n,s;for(n=0,s=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},Ir=e=>(e.w&qe)>0,Or=e=>(e.n&qe)>0,Qi=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let s=0;s{(d==="length"||d>=c)&&l.push(a)})}else switch(n!==void 0&&l.push(o.get(n)),t){case"add":N(e)?is(n)&&l.push(o.get("length")):(l.push(o.get(st)),ut(e)&&l.push(o.get(kn)));break;case"delete":N(e)||(l.push(o.get(st)),ut(e)&&l.push(o.get(kn)));break;case"set":ut(e)&&l.push(o.get(st));break}if(l.length===1)l[0]&&Wn(l[0]);else{const c=[];for(const a of l)a&&c.push(...a);Wn(cs(c))}}function Wn(e,t){const n=N(e)?e:[...e];for(const s of n)s.computed&&Ms(s);for(const s of n)s.computed||Ms(s)}function Ms(e,t){(e!==Ae||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}function eo(e,t){var n;return(n=cn.get(e))==null?void 0:n.get(t)}const to=ts("__proto__,__v_isRef,__isVue"),Sr=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(rs)),no=as(),so=as(!1,!0),ro=as(!0),Ss=io();function io(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const s=J(this);for(let i=0,o=this.length;i{e[t]=function(...n){Ct();const s=J(this)[t].apply(this,n);return wt(),s}}),e}function oo(e){const t=J(this);return pe(t,"has",e),t.hasOwnProperty(e)}function as(e=!1,t=!1){return function(s,r,i){if(r==="__v_isReactive")return!e;if(r==="__v_isReadonly")return e;if(r==="__v_isShallow")return t;if(r==="__v_raw"&&i===(e?t?xo:Ur:t?$r:Hr).get(s))return s;const o=N(s);if(!e){if(o&&Y(Ss,r))return Reflect.get(Ss,r,i);if(r==="hasOwnProperty")return oo}const l=Reflect.get(s,r,i);return(rs(r)?Sr.has(r):to(r))||(e||pe(s,"get",r),t)?l:ce(l)?o&&is(r)?l:l.value:ee(l)?e?jr(l):vn(l):l}}const lo=Lr(),co=Lr(!0);function Lr(e=!1){return function(n,s,r,i){let o=n[s];if(_t(o)&&ce(o)&&!ce(r))return!1;if(!e&&(!fn(r)&&!_t(r)&&(o=J(o),r=J(r)),!N(n)&&ce(o)&&!ce(r)))return o.value=r,!0;const l=N(n)&&is(s)?Number(s)e,yn=e=>Reflect.getPrototypeOf(e);function qt(e,t,n=!1,s=!1){e=e.__v_raw;const r=J(e),i=J(t);n||(t!==i&&pe(r,"get",t),pe(r,"get",i));const{has:o}=yn(r),l=s?us:n?ps:Ht;if(o.call(r,t))return l(e.get(t));if(o.call(r,i))return l(e.get(i));e!==r&&e.get(t)}function Vt(e,t=!1){const n=this.__v_raw,s=J(n),r=J(e);return t||(e!==r&&pe(s,"has",e),pe(s,"has",r)),e===r?n.has(e):n.has(e)||n.has(r)}function zt(e,t=!1){return e=e.__v_raw,!t&&pe(J(e),"iterate",st),Reflect.get(e,"size",e)}function Ls(e){e=J(e);const t=J(this);return yn(t).has.call(t,e)||(t.add(e),He(t,"add",e,e)),this}function Ns(e,t){t=J(t);const n=J(this),{has:s,get:r}=yn(n);let i=s.call(n,e);i||(e=J(e),i=s.call(n,e));const o=r.call(n,e);return n.set(e,t),i?Nt(t,o)&&He(n,"set",e,t):He(n,"add",e,t),this}function Hs(e){const t=J(this),{has:n,get:s}=yn(t);let r=n.call(t,e);r||(e=J(e),r=n.call(t,e)),s&&s.call(t,e);const i=t.delete(e);return r&&He(t,"delete",e,void 0),i}function $s(){const e=J(this),t=e.size!==0,n=e.clear();return t&&He(e,"clear",void 0,void 0),n}function Yt(e,t){return function(s,r){const i=this,o=i.__v_raw,l=J(o),c=t?us:e?ps:Ht;return!e&&pe(l,"iterate",st),o.forEach((a,d)=>s.call(r,c(a),c(d),i))}}function Jt(e,t,n){return function(...s){const r=this.__v_raw,i=J(r),o=ut(i),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,a=r[e](...s),d=n?us:t?ps:Ht;return!t&&pe(i,"iterate",c?kn:st),{next(){const{value:p,done:g}=a.next();return g?{value:p,done:g}:{value:l?[d(p[0]),d(p[1])]:d(p),done:g}},[Symbol.iterator](){return this}}}}function Ue(e){return function(...t){return e==="delete"?!1:this}}function go(){const e={get(i){return qt(this,i)},get size(){return zt(this)},has:Vt,add:Ls,set:Ns,delete:Hs,clear:$s,forEach:Yt(!1,!1)},t={get(i){return qt(this,i,!1,!0)},get size(){return zt(this)},has:Vt,add:Ls,set:Ns,delete:Hs,clear:$s,forEach:Yt(!1,!0)},n={get(i){return qt(this,i,!0)},get size(){return zt(this,!0)},has(i){return Vt.call(this,i,!0)},add:Ue("add"),set:Ue("set"),delete:Ue("delete"),clear:Ue("clear"),forEach:Yt(!0,!1)},s={get(i){return qt(this,i,!0,!0)},get size(){return zt(this,!0)},has(i){return Vt.call(this,i,!0)},add:Ue("add"),set:Ue("set"),delete:Ue("delete"),clear:Ue("clear"),forEach:Yt(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(i=>{e[i]=Jt(i,!1,!1),n[i]=Jt(i,!0,!1),t[i]=Jt(i,!1,!0),s[i]=Jt(i,!0,!0)}),[e,n,t,s]}const[mo,_o,bo,yo]=go();function ds(e,t){const n=t?e?yo:bo:e?_o:mo;return(s,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(Y(n,r)&&r in s?n:s,r,i)}const vo={get:ds(!1,!1)},Co={get:ds(!1,!0)},wo={get:ds(!0,!1)},Hr=new WeakMap,$r=new WeakMap,Ur=new WeakMap,xo=new WeakMap;function Eo(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function To(e){return e.__v_skip||!Object.isExtensible(e)?0:Eo(ji(e))}function vn(e){return _t(e)?e:hs(e,!1,Nr,vo,Hr)}function Ao(e){return hs(e,!1,po,Co,$r)}function jr(e){return hs(e,!0,ho,wo,Ur)}function hs(e,t,n,s,r){if(!ee(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=r.get(e);if(i)return i;const o=To(e);if(o===0)return e;const l=new Proxy(e,o===2?s:n);return r.set(e,l),l}function dt(e){return _t(e)?dt(e.__v_raw):!!(e&&e.__v_isReactive)}function _t(e){return!!(e&&e.__v_isReadonly)}function fn(e){return!!(e&&e.__v_isShallow)}function Br(e){return dt(e)||_t(e)}function J(e){const t=e&&e.__v_raw;return t?J(t):e}function It(e){return ln(e,"__v_skip",!0),e}const Ht=e=>ee(e)?vn(e):e,ps=e=>ee(e)?jr(e):e;function gs(e){ke&&Ae&&(e=J(e),Mr(e.dep||(e.dep=cs())))}function ms(e,t){e=J(e);const n=e.dep;n&&Wn(n)}function ce(e){return!!(e&&e.__v_isRef===!0)}function ht(e){return Dr(e,!1)}function Ro(e){return Dr(e,!0)}function Dr(e,t){return ce(e)?e:new Po(e,t)}class Po{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:J(t),this._value=n?t:Ht(t)}get value(){return gs(this),this._value}set value(t){const n=this.__v_isShallow||fn(t)||_t(t);t=n?t:J(t),Nt(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:Ht(t),ms(this))}}function Io(e){return ce(e)?e.value:e}const Oo={get:(e,t,n)=>Io(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return ce(r)&&!ce(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function Kr(e){return dt(e)?e:new Proxy(e,Oo)}class Fo{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:s}=t(()=>gs(this),()=>ms(this));this._get=n,this._set=s}get value(){return this._get()}set value(t){this._set(t)}}function Vc(e){return new Fo(e)}class Mo{constructor(t,n,s){this._object=t,this._key=n,this._defaultValue=s,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return eo(J(this._object),this._key)}}class So{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function zc(e,t,n){return ce(e)?e:D(e)?new So(e):ee(e)&&arguments.length>1?Lo(e,t,n):ht(e)}function Lo(e,t,n){const s=e[t];return ce(s)?s:new Mo(e,t,n)}class No{constructor(t,n,s,r){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this._dirty=!0,this.effect=new fs(t,()=>{this._dirty||(this._dirty=!0,ms(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=s}get value(){const t=J(this);return gs(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function Ho(e,t,n=!1){let s,r;const i=D(e);return i?(s=e,r=Pe):(s=e.get,r=e.set),new No(s,r,i||!r,n)}function We(e,t,n,s){let r;try{r=s?e(...s):e()}catch(i){Dt(i,t,n)}return r}function we(e,t,n,s){if(D(e)){const i=We(e,t,n,s);return i&&Er(i)&&i.catch(o=>{Dt(o,t,n)}),i}const r=[];for(let i=0;i>>1;Ut(ae[s])Me&&ae.splice(t,1)}function Bo(e){N(e)?pt.push(...e):(!Ne||!Ne.includes(e,e.allowRecurse?Qe+1:Qe))&&pt.push(e),qr()}function Us(e,t=$t?Me+1:0){for(;tUt(n)-Ut(s)),Qe=0;Qee.id==null?1/0:e.id,Do=(e,t)=>{const n=Ut(e)-Ut(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Vr(e){qn=!1,$t=!0,ae.sort(Do);const t=Pe;try{for(Me=0;Mese(C)?C.trim():C)),p&&(r=n.map(Bn))}let l,c=s[l=tn(t)]||s[l=tn(Se(t))];!c&&i&&(c=s[l=tn(it(t))]),c&&we(c,e,6,r);const a=s[l+"Once"];if(a){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,we(a,e,6,r)}}function zr(e,t,n=!1){const s=t.emitsCache,r=s.get(e);if(r!==void 0)return r;const i=e.emits;let o={},l=!1;if(!D(e)){const c=a=>{const d=zr(a,t,!0);d&&(l=!0,oe(o,d))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!l?(ee(e)&&s.set(e,null),null):(N(i)?i.forEach(c=>o[c]=null):oe(o,i),ee(e)&&s.set(e,o),o)}function wn(e,t){return!e||!Bt(t)?!1:(t=t.slice(2).replace(/Once$/,""),Y(e,t[0].toLowerCase()+t.slice(1))||Y(e,it(t))||Y(e,t))}let fe=null,xn=null;function un(e){const t=fe;return fe=e,xn=e&&e.type.__scopeId||null,t}function Yc(e){xn=e}function Jc(){xn=null}function ko(e,t=fe,n){if(!t||e._n)return e;const s=(...r)=>{s._d&&Zs(-1);const i=un(t);let o;try{o=e(...r)}finally{un(i),s._d&&Zs(1)}return o};return s._n=!0,s._c=!0,s._d=!0,s}function Mn(e){const{type:t,vnode:n,proxy:s,withProxy:r,props:i,propsOptions:[o],slots:l,attrs:c,emit:a,render:d,renderCache:p,data:g,setupState:C,ctx:R,inheritAttrs:P}=e;let $,_;const y=un(e);try{if(n.shapeFlag&4){const I=r||s;$=Te(d.call(I,I,p,i,C,g,R)),_=c}else{const I=t;$=Te(I.length>1?I(i,{attrs:c,slots:l,emit:a}):I(i,null)),_=t.props?c:Wo(c)}}catch(I){St.length=0,Dt(I,e,1),$=re(be)}let H=$;if(_&&P!==!1){const I=Object.keys(_),{shapeFlag:K}=H;I.length&&K&7&&(o&&I.some(ns)&&(_=qo(_,o)),H=Ve(H,_))}return n.dirs&&(H=Ve(H),H.dirs=H.dirs?H.dirs.concat(n.dirs):n.dirs),n.transition&&(H.transition=n.transition),$=H,un(y),$}const Wo=e=>{let t;for(const n in e)(n==="class"||n==="style"||Bt(n))&&((t||(t={}))[n]=e[n]);return t},qo=(e,t)=>{const n={};for(const s in e)(!ns(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function Vo(e,t,n){const{props:s,children:r,component:i}=e,{props:o,children:l,patchFlag:c}=t,a=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?js(s,o,a):!!o;if(c&8){const d=t.dynamicProps;for(let p=0;pe.__isSuspense;function Yr(e,t){t&&t.pendingBranch?N(e)?t.effects.push(...e):t.effects.push(e):Bo(e)}function Jo(e,t){return En(e,null,t)}function Xc(e,t){return En(e,null,{flush:"post"})}const Xt={};function sn(e,t,n){return En(e,t,n)}function En(e,t,{immediate:n,deep:s,flush:r,onTrack:i,onTrigger:o}=te){var l;const c=Zi()===((l=le)==null?void 0:l.scope)?le:null;let a,d=!1,p=!1;if(ce(e)?(a=()=>e.value,d=fn(e)):dt(e)?(a=()=>e,s=!0):N(e)?(p=!0,d=e.some(I=>dt(I)||fn(I)),a=()=>e.map(I=>{if(ce(I))return I.value;if(dt(I))return tt(I);if(D(I))return We(I,c,2)})):D(e)?t?a=()=>We(e,c,2):a=()=>{if(!(c&&c.isUnmounted))return g&&g(),we(e,c,3,[C])}:a=Pe,t&&s){const I=a;a=()=>tt(I())}let g,C=I=>{g=y.onStop=()=>{We(I,c,4)}},R;if(vt)if(C=Pe,t?n&&we(t,c,3,[a(),p?[]:void 0,C]):a(),r==="sync"){const I=ql();R=I.__watcherHandles||(I.__watcherHandles=[])}else return Pe;let P=p?new Array(e.length).fill(Xt):Xt;const $=()=>{if(y.active)if(t){const I=y.run();(s||d||(p?I.some((K,V)=>Nt(K,P[V])):Nt(I,P)))&&(g&&g(),we(t,c,3,[I,P===Xt?void 0:p&&P[0]===Xt?[]:P,C]),P=I)}else y.run()};$.allowRecurse=!!t;let _;r==="sync"?_=$:r==="post"?_=()=>de($,c&&c.suspense):($.pre=!0,c&&($.id=c.uid),_=()=>Cn($));const y=new fs(a,_);t?n?$():P=y.run():r==="post"?de(y.run.bind(y),c&&c.suspense):y.run();const H=()=>{y.stop(),c&&c.scope&&ss(c.scope.effects,y)};return R&&R.push(H),H}function Xo(e,t,n){const s=this.proxy,r=se(e)?e.includes(".")?Jr(s,e):()=>s[e]:e.bind(s,s);let i;D(t)?i=t:(i=t.handler,n=t);const o=le;yt(this);const l=En(r,i.bind(s),n);return o?yt(o):rt(),l}function Jr(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;r{tt(n,t)});else if(Ar(e))for(const n in e)tt(e[n],t);return e}function Zc(e,t){const n=fe;if(n===null)return e;const s=In(n)||n.proxy,r=e.dirs||(e.dirs=[]);for(let i=0;i{e.isMounted=!0}),ei(()=>{e.isUnmounting=!0}),e}const ye=[Function,Array],Xr={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ye,onEnter:ye,onAfterEnter:ye,onEnterCancelled:ye,onBeforeLeave:ye,onLeave:ye,onAfterLeave:ye,onLeaveCancelled:ye,onBeforeAppear:ye,onAppear:ye,onAfterAppear:ye,onAppearCancelled:ye},Qo={name:"BaseTransition",props:Xr,setup(e,{slots:t}){const n=yi(),s=Zo();let r;return()=>{const i=t.default&&Qr(t.default(),!0);if(!i||!i.length)return;let o=i[0];if(i.length>1){for(const P of i)if(P.type!==be){o=P;break}}const l=J(e),{mode:c}=l;if(s.isLeaving)return Sn(o);const a=Bs(o);if(!a)return Sn(o);const d=Vn(a,l,s,n);zn(a,d);const p=n.subTree,g=p&&Bs(p);let C=!1;const{getTransitionKey:R}=a.type;if(R){const P=R();r===void 0?r=P:P!==r&&(r=P,C=!0)}if(g&&g.type!==be&&(!Ge(a,g)||C)){const P=Vn(g,l,s,n);if(zn(g,P),c==="out-in")return s.isLeaving=!0,P.afterLeave=()=>{s.isLeaving=!1,n.update.active!==!1&&n.update()},Sn(o);c==="in-out"&&a.type!==be&&(P.delayLeave=($,_,y)=>{const H=Zr(s,g);H[String(g.key)]=g,$._leaveCb=()=>{_(),$._leaveCb=void 0,delete d.delayedLeave},d.delayedLeave=y})}return o}}},Go=Qo;function Zr(e,t){const{leavingVNodes:n}=e;let s=n.get(t.type);return s||(s=Object.create(null),n.set(t.type,s)),s}function Vn(e,t,n,s){const{appear:r,mode:i,persisted:o=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:a,onEnterCancelled:d,onBeforeLeave:p,onLeave:g,onAfterLeave:C,onLeaveCancelled:R,onBeforeAppear:P,onAppear:$,onAfterAppear:_,onAppearCancelled:y}=t,H=String(e.key),I=Zr(n,e),K=(E,j)=>{E&&we(E,s,9,j)},V=(E,j)=>{const U=j[1];K(E,j),N(E)?E.every(W=>W.length<=1)&&U():E.length<=1&&U()},k={mode:i,persisted:o,beforeEnter(E){let j=l;if(!n.isMounted)if(r)j=P||l;else return;E._leaveCb&&E._leaveCb(!0);const U=I[H];U&&Ge(e,U)&&U.el._leaveCb&&U.el._leaveCb(),K(j,[E])},enter(E){let j=c,U=a,W=d;if(!n.isMounted)if(r)j=$||c,U=_||a,W=y||d;else return;let O=!1;const q=E._enterCb=M=>{O||(O=!0,M?K(W,[E]):K(U,[E]),k.delayedLeave&&k.delayedLeave(),E._enterCb=void 0)};j?V(j,[E,q]):q()},leave(E,j){const U=String(e.key);if(E._enterCb&&E._enterCb(!0),n.isUnmounting)return j();K(p,[E]);let W=!1;const O=E._leaveCb=q=>{W||(W=!0,j(),q?K(R,[E]):K(C,[E]),E._leaveCb=void 0,I[U]===e&&delete I[U])};I[U]=e,g?V(g,[E,O]):O()},clone(E){return Vn(E,t,n,s)}};return k}function Sn(e){if(Kt(e))return e=Ve(e),e.children=null,e}function Bs(e){return Kt(e)?e.children?e.children[0]:void 0:e}function zn(e,t){e.shapeFlag&6&&e.component?zn(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Qr(e,t=!1,n){let s=[],r=0;for(let i=0;i1)for(let i=0;ioe({name:e.name},t,{setup:e}))():e}const gt=e=>!!e.type.__asyncLoader;function Qc(e){D(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:s,delay:r=200,timeout:i,suspensible:o=!0,onError:l}=e;let c=null,a,d=0;const p=()=>(d++,c=null,g()),g=()=>{let C;return c||(C=c=t().catch(R=>{if(R=R instanceof Error?R:new Error(String(R)),l)return new Promise((P,$)=>{l(R,()=>P(p()),()=>$(R),d+1)});throw R}).then(R=>C!==c&&c?c:(R&&(R.__esModule||R[Symbol.toStringTag]==="Module")&&(R=R.default),a=R,R)))};return bs({name:"AsyncComponentWrapper",__asyncLoader:g,get __asyncResolved(){return a},setup(){const C=le;if(a)return()=>Ln(a,C);const R=y=>{c=null,Dt(y,C,13,!s)};if(o&&C.suspense||vt)return g().then(y=>()=>Ln(y,C)).catch(y=>(R(y),()=>s?re(s,{error:y}):null));const P=ht(!1),$=ht(),_=ht(!!r);return r&&setTimeout(()=>{_.value=!1},r),i!=null&&setTimeout(()=>{if(!P.value&&!$.value){const y=new Error(`Async component timed out after ${i}ms.`);R(y),$.value=y}},i),g().then(()=>{P.value=!0,C.parent&&Kt(C.parent.vnode)&&Cn(C.parent.update)}).catch(y=>{R(y),$.value=y}),()=>{if(P.value&&a)return Ln(a,C);if($.value&&s)return re(s,{error:$.value});if(n&&!_.value)return re(n)}}})}function Ln(e,t){const{ref:n,props:s,children:r,ce:i}=t.vnode,o=re(e,s,r);return o.ref=n,o.ce=i,delete t.vnode.ce,o}const Kt=e=>e.type.__isKeepAlive;function el(e,t){Gr(e,"a",t)}function tl(e,t){Gr(e,"da",t)}function Gr(e,t,n=le){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(Tn(t,s,n),n){let r=n.parent;for(;r&&r.parent;)Kt(r.parent.vnode)&&nl(s,t,n,r),r=r.parent}}function nl(e,t,n,s){const r=Tn(t,e,s,!0);Rn(()=>{ss(s[t],r)},n)}function Tn(e,t,n=le,s=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;Ct(),yt(n);const l=we(t,n,e,o);return rt(),wt(),l});return s?r.unshift(i):r.push(i),i}}const $e=e=>(t,n=le)=>(!vt||e==="sp")&&Tn(e,(...s)=>t(...s),n),sl=$e("bm"),An=$e("m"),rl=$e("bu"),il=$e("u"),ei=$e("bum"),Rn=$e("um"),ol=$e("sp"),ll=$e("rtg"),cl=$e("rtc");function fl(e,t=le){Tn("ec",e,t)}const ys="components";function Gc(e,t){return ni(ys,e,!0,t)||e}const ti=Symbol.for("v-ndc");function ef(e){return se(e)?ni(ys,e,!1)||e:e||ti}function ni(e,t,n=!0,s=!1){const r=fe||le;if(r){const i=r.type;if(e===ys){const l=Kl(i,!1);if(l&&(l===t||l===Se(t)||l===bn(Se(t))))return i}const o=Ds(r[e]||i[e],t)||Ds(r.appContext[e],t);return!o&&s?i:o}}function Ds(e,t){return e&&(e[t]||e[Se(t)]||e[bn(Se(t))])}function tf(e,t,n,s){let r;const i=n&&n[s];if(N(e)||se(e)){r=new Array(e.length);for(let o=0,l=e.length;ot(o,l,void 0,i&&i[l]));else{const o=Object.keys(e);r=new Array(o.length);for(let l=0,c=o.length;lgn(t)?!(t.type===be||t.type===he&&!si(t.children)):!0)?e:null}function sf(e,t){const n={};for(const s in e)n[t&&/[A-Z]/.test(s)?`on:${s}`:tn(s)]=e[s];return n}const Yn=e=>e?vi(e)?In(e)||e.proxy:Yn(e.parent):null,Ot=oe(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Yn(e.parent),$root:e=>Yn(e.root),$emit:e=>e.emit,$options:e=>vs(e),$forceUpdate:e=>e.f||(e.f=()=>Cn(e.update)),$nextTick:e=>e.n||(e.n=Wr.bind(e.proxy)),$watch:e=>Xo.bind(e)}),Nn=(e,t)=>e!==te&&!e.__isScriptSetup&&Y(e,t),al={get({_:e},t){const{ctx:n,setupState:s,data:r,props:i,accessCache:o,type:l,appContext:c}=e;let a;if(t[0]!=="$"){const C=o[t];if(C!==void 0)switch(C){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return i[t]}else{if(Nn(s,t))return o[t]=1,s[t];if(r!==te&&Y(r,t))return o[t]=2,r[t];if((a=e.propsOptions[0])&&Y(a,t))return o[t]=3,i[t];if(n!==te&&Y(n,t))return o[t]=4,n[t];Jn&&(o[t]=0)}}const d=Ot[t];let p,g;if(d)return t==="$attrs"&&pe(e,"get",t),d(e);if((p=l.__cssModules)&&(p=p[t]))return p;if(n!==te&&Y(n,t))return o[t]=4,n[t];if(g=c.config.globalProperties,Y(g,t))return g[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:i}=e;return Nn(r,t)?(r[t]=n,!0):s!==te&&Y(s,t)?(s[t]=n,!0):Y(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,propsOptions:i}},o){let l;return!!n[o]||e!==te&&Y(e,o)||Nn(t,o)||(l=i[0])&&Y(l,o)||Y(s,o)||Y(Ot,o)||Y(r.config.globalProperties,o)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Y(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function rf(){return ul().slots}function ul(){const e=yi();return e.setupContext||(e.setupContext=wi(e))}function Ks(e){return N(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Jn=!0;function dl(e){const t=vs(e),n=e.proxy,s=e.ctx;Jn=!1,t.beforeCreate&&ks(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:o,watch:l,provide:c,inject:a,created:d,beforeMount:p,mounted:g,beforeUpdate:C,updated:R,activated:P,deactivated:$,beforeDestroy:_,beforeUnmount:y,destroyed:H,unmounted:I,render:K,renderTracked:V,renderTriggered:k,errorCaptured:E,serverPrefetch:j,expose:U,inheritAttrs:W,components:O,directives:q,filters:M}=t;if(a&&hl(a,s,null),o)for(const ne in o){const Q=o[ne];D(Q)&&(s[ne]=Q.bind(n))}if(r){const ne=r.call(n,n);ee(ne)&&(e.data=vn(ne))}if(Jn=!0,i)for(const ne in i){const Q=i[ne],ze=D(Q)?Q.bind(n,n):D(Q.get)?Q.get.bind(n,n):Pe,kt=!D(Q)&&D(Q.set)?Q.set.bind(n):Pe,Ye=Ee({get:ze,set:kt});Object.defineProperty(s,ne,{enumerable:!0,configurable:!0,get:()=>Ye.value,set:Ie=>Ye.value=Ie})}if(l)for(const ne in l)ri(l[ne],s,n,ne);if(c){const ne=D(c)?c.call(n):c;Reflect.ownKeys(ne).forEach(Q=>{yl(Q,ne[Q])})}d&&ks(d,e,"c");function X(ne,Q){N(Q)?Q.forEach(ze=>ne(ze.bind(n))):Q&&ne(Q.bind(n))}if(X(sl,p),X(An,g),X(rl,C),X(il,R),X(el,P),X(tl,$),X(fl,E),X(cl,V),X(ll,k),X(ei,y),X(Rn,I),X(ol,j),N(U))if(U.length){const ne=e.exposed||(e.exposed={});U.forEach(Q=>{Object.defineProperty(ne,Q,{get:()=>n[Q],set:ze=>n[Q]=ze})})}else e.exposed||(e.exposed={});K&&e.render===Pe&&(e.render=K),W!=null&&(e.inheritAttrs=W),O&&(e.components=O),q&&(e.directives=q)}function hl(e,t,n=Pe){N(e)&&(e=Xn(e));for(const s in e){const r=e[s];let i;ee(r)?"default"in r?i=mt(r.from||s,r.default,!0):i=mt(r.from||s):i=mt(r),ce(i)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[s]=i}}function ks(e,t,n){we(N(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function ri(e,t,n,s){const r=s.includes(".")?Jr(n,s):()=>n[s];if(se(e)){const i=t[e];D(i)&&sn(r,i)}else if(D(e))sn(r,e.bind(n));else if(ee(e))if(N(e))e.forEach(i=>ri(i,t,n,s));else{const i=D(e.handler)?e.handler.bind(n):t[e.handler];D(i)&&sn(r,i,e)}}function vs(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let c;return l?c=l:!r.length&&!n&&!s?c=t:(c={},r.length&&r.forEach(a=>dn(c,a,o,!0)),dn(c,t,o)),ee(t)&&i.set(t,c),c}function dn(e,t,n,s=!1){const{mixins:r,extends:i}=t;i&&dn(e,i,n,!0),r&&r.forEach(o=>dn(e,o,n,!0));for(const o in t)if(!(s&&o==="expose")){const l=pl[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const pl={data:Ws,props:qs,emits:qs,methods:Rt,computed:Rt,beforeCreate:ue,created:ue,beforeMount:ue,mounted:ue,beforeUpdate:ue,updated:ue,beforeDestroy:ue,beforeUnmount:ue,destroyed:ue,unmounted:ue,activated:ue,deactivated:ue,errorCaptured:ue,serverPrefetch:ue,components:Rt,directives:Rt,watch:ml,provide:Ws,inject:gl};function Ws(e,t){return t?e?function(){return oe(D(e)?e.call(this,this):e,D(t)?t.call(this,this):t)}:t:e}function gl(e,t){return Rt(Xn(e),Xn(t))}function Xn(e){if(N(e)){const t={};for(let n=0;n1)return n&&D(t)?t.call(s&&s.proxy):t}}function vl(e,t,n,s=!1){const r={},i={};ln(i,Pn,1),e.propsDefaults=Object.create(null),oi(e,t,r,i);for(const o in e.propsOptions[0])o in r||(r[o]=void 0);n?e.props=s?r:Ao(r):e.type.props?e.props=r:e.props=i,e.attrs=i}function Cl(e,t,n,s){const{props:r,attrs:i,vnode:{patchFlag:o}}=e,l=J(r),[c]=e.propsOptions;let a=!1;if((s||o>0)&&!(o&16)){if(o&8){const d=e.vnode.dynamicProps;for(let p=0;p{c=!0;const[g,C]=li(p,t,!0);oe(o,g),C&&l.push(...C)};!n&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}if(!i&&!c)return ee(e)&&s.set(e,at),at;if(N(i))for(let d=0;d-1,C[1]=P<0||R-1||Y(C,"default"))&&l.push(p)}}}const a=[o,l];return ee(e)&&s.set(e,a),a}function Vs(e){return e[0]!=="$"}function zs(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function Ys(e,t){return zs(e)===zs(t)}function Js(e,t){return N(t)?t.findIndex(n=>Ys(n,e)):D(t)&&Ys(t,e)?0:-1}const ci=e=>e[0]==="_"||e==="$stable",Cs=e=>N(e)?e.map(Te):[Te(e)],wl=(e,t,n)=>{if(t._n)return t;const s=ko((...r)=>Cs(t(...r)),n);return s._c=!1,s},fi=(e,t,n)=>{const s=e._ctx;for(const r in e){if(ci(r))continue;const i=e[r];if(D(i))t[r]=wl(r,i,s);else if(i!=null){const o=Cs(i);t[r]=()=>o}}},ai=(e,t)=>{const n=Cs(t);e.slots.default=()=>n},xl=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=J(t),ln(t,"_",n)):fi(t,e.slots={})}else e.slots={},t&&ai(e,t);ln(e.slots,Pn,1)},El=(e,t,n)=>{const{vnode:s,slots:r}=e;let i=!0,o=te;if(s.shapeFlag&32){const l=t._;l?n&&l===1?i=!1:(oe(r,t),!n&&l===1&&delete r._):(i=!t.$stable,fi(t,r)),o=t}else t&&(ai(e,t),o={default:1});if(i)for(const l in r)!ci(l)&&!(l in o)&&delete r[l]};function pn(e,t,n,s,r=!1){if(N(e)){e.forEach((g,C)=>pn(g,t&&(N(t)?t[C]:t),n,s,r));return}if(gt(s)&&!r)return;const i=s.shapeFlag&4?In(s.component)||s.component.proxy:s.el,o=r?null:i,{i:l,r:c}=e,a=t&&t.r,d=l.refs===te?l.refs={}:l.refs,p=l.setupState;if(a!=null&&a!==c&&(se(a)?(d[a]=null,Y(p,a)&&(p[a]=null)):ce(a)&&(a.value=null)),D(c))We(c,l,12,[o,d]);else{const g=se(c),C=ce(c);if(g||C){const R=()=>{if(e.f){const P=g?Y(p,c)?p[c]:d[c]:c.value;r?N(P)&&ss(P,i):N(P)?P.includes(i)||P.push(i):g?(d[c]=[i],Y(p,c)&&(p[c]=d[c])):(c.value=[i],e.k&&(d[e.k]=c.value))}else g?(d[c]=o,Y(p,c)&&(p[c]=o)):C&&(c.value=o,e.k&&(d[e.k]=o))};o?(R.id=-1,de(R,n)):R()}}}let je=!1;const Zt=e=>/svg/.test(e.namespaceURI)&&e.tagName!=="foreignObject",Qt=e=>e.nodeType===8;function Tl(e){const{mt:t,p:n,o:{patchProp:s,createText:r,nextSibling:i,parentNode:o,remove:l,insert:c,createComment:a}}=e,d=(_,y)=>{if(!y.hasChildNodes()){n(null,_,y),an(),y._vnode=_;return}je=!1,p(y.firstChild,_,null,null,null),an(),y._vnode=_,je&&console.error("Hydration completed but contains mismatches.")},p=(_,y,H,I,K,V=!1)=>{const k=Qt(_)&&_.data==="[",E=()=>P(_,y,H,I,K,k),{type:j,ref:U,shapeFlag:W,patchFlag:O}=y;let q=_.nodeType;y.el=_,O===-2&&(V=!1,y.dynamicChildren=null);let M=null;switch(j){case bt:q!==3?y.children===""?(c(y.el=r(""),o(_),_),M=_):M=E():(_.data!==y.children&&(je=!0,_.data=y.children),M=i(_));break;case be:q!==8||k?M=E():M=i(_);break;case Mt:if(k&&(_=i(_),q=_.nodeType),q===1||q===3){M=_;const ge=!y.children.length;for(let X=0;X{V=V||!!y.dynamicChildren;const{type:k,props:E,patchFlag:j,shapeFlag:U,dirs:W}=y,O=k==="input"&&W||k==="option";if(O||j!==-1){if(W&&Fe(y,null,H,"created"),E)if(O||!V||j&48)for(const M in E)(O&&M.endsWith("value")||Bt(M)&&!Pt(M))&&s(_,M,null,E[M],!1,void 0,H);else E.onClick&&s(_,"onClick",null,E.onClick,!1,void 0,H);let q;if((q=E&&E.onVnodeBeforeMount)&&ve(q,H,y),W&&Fe(y,null,H,"beforeMount"),((q=E&&E.onVnodeMounted)||W)&&Yr(()=>{q&&ve(q,H,y),W&&Fe(y,null,H,"mounted")},I),U&16&&!(E&&(E.innerHTML||E.textContent))){let M=C(_.firstChild,y,_,H,I,K,V);for(;M;){je=!0;const ge=M;M=M.nextSibling,l(ge)}}else U&8&&_.textContent!==y.children&&(je=!0,_.textContent=y.children)}return _.nextSibling},C=(_,y,H,I,K,V,k)=>{k=k||!!y.dynamicChildren;const E=y.children,j=E.length;for(let U=0;U{const{slotScopeIds:k}=y;k&&(K=K?K.concat(k):k);const E=o(_),j=C(i(_),y,E,H,I,K,V);return j&&Qt(j)&&j.data==="]"?i(y.anchor=j):(je=!0,c(y.anchor=a("]"),E,j),j)},P=(_,y,H,I,K,V)=>{if(je=!0,y.el=null,V){const j=$(_);for(;;){const U=i(_);if(U&&U!==j)l(U);else break}}const k=i(_),E=o(_);return l(_),n(null,y,E,k,H,I,Zt(E),K),k},$=_=>{let y=0;for(;_;)if(_=i(_),_&&Qt(_)&&(_.data==="["&&y++,_.data==="]")){if(y===0)return i(_);y--}return _};return[d,p]}const de=Yr;function Al(e){return ui(e)}function Rl(e){return ui(e,Tl)}function ui(e,t){const n=Dn();n.__VUE__=!0;const{insert:s,remove:r,patchProp:i,createElement:o,createText:l,createComment:c,setText:a,setElementText:d,parentNode:p,nextSibling:g,setScopeId:C=Pe,insertStaticContent:R}=e,P=(f,u,h,b=null,m=null,x=null,A=!1,w=null,T=!!u.dynamicChildren)=>{if(f===u)return;f&&!Ge(f,u)&&(b=Wt(f),Ie(f,m,x,!0),f=null),u.patchFlag===-2&&(T=!1,u.dynamicChildren=null);const{type:v,ref:S,shapeFlag:F}=u;switch(v){case bt:$(f,u,h,b);break;case be:_(f,u,h,b);break;case Mt:f==null&&y(u,h,b,A);break;case he:O(f,u,h,b,m,x,A,w,T);break;default:F&1?K(f,u,h,b,m,x,A,w,T):F&6?q(f,u,h,b,m,x,A,w,T):(F&64||F&128)&&v.process(f,u,h,b,m,x,A,w,T,ot)}S!=null&&m&&pn(S,f&&f.ref,x,u||f,!u)},$=(f,u,h,b)=>{if(f==null)s(u.el=l(u.children),h,b);else{const m=u.el=f.el;u.children!==f.children&&a(m,u.children)}},_=(f,u,h,b)=>{f==null?s(u.el=c(u.children||""),h,b):u.el=f.el},y=(f,u,h,b)=>{[f.el,f.anchor]=R(f.children,u,h,b,f.el,f.anchor)},H=({el:f,anchor:u},h,b)=>{let m;for(;f&&f!==u;)m=g(f),s(f,h,b),f=m;s(u,h,b)},I=({el:f,anchor:u})=>{let h;for(;f&&f!==u;)h=g(f),r(f),f=h;r(u)},K=(f,u,h,b,m,x,A,w,T)=>{A=A||u.type==="svg",f==null?V(u,h,b,m,x,A,w,T):j(f,u,m,x,A,w,T)},V=(f,u,h,b,m,x,A,w)=>{let T,v;const{type:S,props:F,shapeFlag:L,transition:B,dirs:z}=f;if(T=f.el=o(f.type,x,F&&F.is,F),L&8?d(T,f.children):L&16&&E(f.children,T,null,b,m,x&&S!=="foreignObject",A,w),z&&Fe(f,null,b,"created"),k(T,f,f.scopeId,A,b),F){for(const Z in F)Z!=="value"&&!Pt(Z)&&i(T,Z,null,F[Z],x,f.children,b,m,Le);"value"in F&&i(T,"value",null,F.value),(v=F.onVnodeBeforeMount)&&ve(v,b,f)}z&&Fe(f,null,b,"beforeMount");const G=(!m||m&&!m.pendingBranch)&&B&&!B.persisted;G&&B.beforeEnter(T),s(T,u,h),((v=F&&F.onVnodeMounted)||G||z)&&de(()=>{v&&ve(v,b,f),G&&B.enter(T),z&&Fe(f,null,b,"mounted")},m)},k=(f,u,h,b,m)=>{if(h&&C(f,h),b)for(let x=0;x{for(let v=T;v{const w=u.el=f.el;let{patchFlag:T,dynamicChildren:v,dirs:S}=u;T|=f.patchFlag&16;const F=f.props||te,L=u.props||te;let B;h&&Je(h,!1),(B=L.onVnodeBeforeUpdate)&&ve(B,h,u,f),S&&Fe(u,f,h,"beforeUpdate"),h&&Je(h,!0);const z=m&&u.type!=="foreignObject";if(v?U(f.dynamicChildren,v,w,h,b,z,x):A||Q(f,u,w,null,h,b,z,x,!1),T>0){if(T&16)W(w,u,F,L,h,b,m);else if(T&2&&F.class!==L.class&&i(w,"class",null,L.class,m),T&4&&i(w,"style",F.style,L.style,m),T&8){const G=u.dynamicProps;for(let Z=0;Z{B&&ve(B,h,u,f),S&&Fe(u,f,h,"updated")},b)},U=(f,u,h,b,m,x,A)=>{for(let w=0;w{if(h!==b){if(h!==te)for(const w in h)!Pt(w)&&!(w in b)&&i(f,w,h[w],null,A,u.children,m,x,Le);for(const w in b){if(Pt(w))continue;const T=b[w],v=h[w];T!==v&&w!=="value"&&i(f,w,v,T,A,u.children,m,x,Le)}"value"in b&&i(f,"value",h.value,b.value)}},O=(f,u,h,b,m,x,A,w,T)=>{const v=u.el=f?f.el:l(""),S=u.anchor=f?f.anchor:l("");let{patchFlag:F,dynamicChildren:L,slotScopeIds:B}=u;B&&(w=w?w.concat(B):B),f==null?(s(v,h,b),s(S,h,b),E(u.children,h,S,m,x,A,w,T)):F>0&&F&64&&L&&f.dynamicChildren?(U(f.dynamicChildren,L,h,m,x,A,w),(u.key!=null||m&&u===m.subTree)&&ws(f,u,!0)):Q(f,u,h,S,m,x,A,w,T)},q=(f,u,h,b,m,x,A,w,T)=>{u.slotScopeIds=w,f==null?u.shapeFlag&512?m.ctx.activate(u,h,b,A,T):M(u,h,b,m,x,A,T):ge(f,u,T)},M=(f,u,h,b,m,x,A)=>{const w=f.component=Ul(f,b,m);if(Kt(f)&&(w.ctx.renderer=ot),jl(w),w.asyncDep){if(m&&m.registerDep(w,X),!f.el){const T=w.subTree=re(be);_(null,T,u,h)}return}X(w,f,u,h,m,x,A)},ge=(f,u,h)=>{const b=u.component=f.component;if(Vo(f,u,h))if(b.asyncDep&&!b.asyncResolved){ne(b,u,h);return}else b.next=u,jo(b.update),b.update();else u.el=f.el,b.vnode=u},X=(f,u,h,b,m,x,A)=>{const w=()=>{if(f.isMounted){let{next:S,bu:F,u:L,parent:B,vnode:z}=f,G=S,Z;Je(f,!1),S?(S.el=z.el,ne(f,S,A)):S=z,F&&nn(F),(Z=S.props&&S.props.onVnodeBeforeUpdate)&&ve(Z,B,S,z),Je(f,!0);const ie=Mn(f),xe=f.subTree;f.subTree=ie,P(xe,ie,p(xe.el),Wt(xe),f,m,x),S.el=ie.el,G===null&&zo(f,ie.el),L&&de(L,m),(Z=S.props&&S.props.onVnodeUpdated)&&de(()=>ve(Z,B,S,z),m)}else{let S;const{el:F,props:L}=u,{bm:B,m:z,parent:G}=f,Z=gt(u);if(Je(f,!1),B&&nn(B),!Z&&(S=L&&L.onVnodeBeforeMount)&&ve(S,G,u),Je(f,!0),F&&Fn){const ie=()=>{f.subTree=Mn(f),Fn(F,f.subTree,f,m,null)};Z?u.type.__asyncLoader().then(()=>!f.isUnmounted&&ie()):ie()}else{const ie=f.subTree=Mn(f);P(null,ie,h,b,f,m,x),u.el=ie.el}if(z&&de(z,m),!Z&&(S=L&&L.onVnodeMounted)){const ie=u;de(()=>ve(S,G,ie),m)}(u.shapeFlag&256||G&>(G.vnode)&&G.vnode.shapeFlag&256)&&f.a&&de(f.a,m),f.isMounted=!0,u=h=b=null}},T=f.effect=new fs(w,()=>Cn(v),f.scope),v=f.update=()=>T.run();v.id=f.uid,Je(f,!0),v()},ne=(f,u,h)=>{u.component=f;const b=f.vnode.props;f.vnode=u,f.next=null,Cl(f,u.props,b,h),El(f,u.children,h),Ct(),Us(),wt()},Q=(f,u,h,b,m,x,A,w,T=!1)=>{const v=f&&f.children,S=f?f.shapeFlag:0,F=u.children,{patchFlag:L,shapeFlag:B}=u;if(L>0){if(L&128){kt(v,F,h,b,m,x,A,w,T);return}else if(L&256){ze(v,F,h,b,m,x,A,w,T);return}}B&8?(S&16&&Le(v,m,x),F!==v&&d(h,F)):S&16?B&16?kt(v,F,h,b,m,x,A,w,T):Le(v,m,x,!0):(S&8&&d(h,""),B&16&&E(F,h,b,m,x,A,w,T))},ze=(f,u,h,b,m,x,A,w,T)=>{f=f||at,u=u||at;const v=f.length,S=u.length,F=Math.min(v,S);let L;for(L=0;LS?Le(f,m,x,!0,!1,F):E(u,h,b,m,x,A,w,T,F)},kt=(f,u,h,b,m,x,A,w,T)=>{let v=0;const S=u.length;let F=f.length-1,L=S-1;for(;v<=F&&v<=L;){const B=f[v],z=u[v]=T?Ke(u[v]):Te(u[v]);if(Ge(B,z))P(B,z,h,null,m,x,A,w,T);else break;v++}for(;v<=F&&v<=L;){const B=f[F],z=u[L]=T?Ke(u[L]):Te(u[L]);if(Ge(B,z))P(B,z,h,null,m,x,A,w,T);else break;F--,L--}if(v>F){if(v<=L){const B=L+1,z=BL)for(;v<=F;)Ie(f[v],m,x,!0),v++;else{const B=v,z=v,G=new Map;for(v=z;v<=L;v++){const me=u[v]=T?Ke(u[v]):Te(u[v]);me.key!=null&&G.set(me.key,v)}let Z,ie=0;const xe=L-z+1;let lt=!1,Rs=0;const xt=new Array(xe);for(v=0;v=xe){Ie(me,m,x,!0);continue}let Oe;if(me.key!=null)Oe=G.get(me.key);else for(Z=z;Z<=L;Z++)if(xt[Z-z]===0&&Ge(me,u[Z])){Oe=Z;break}Oe===void 0?Ie(me,m,x,!0):(xt[Oe-z]=v+1,Oe>=Rs?Rs=Oe:lt=!0,P(me,u[Oe],h,null,m,x,A,w,T),ie++)}const Ps=lt?Pl(xt):at;for(Z=Ps.length-1,v=xe-1;v>=0;v--){const me=z+v,Oe=u[me],Is=me+1{const{el:x,type:A,transition:w,children:T,shapeFlag:v}=f;if(v&6){Ye(f.component.subTree,u,h,b);return}if(v&128){f.suspense.move(u,h,b);return}if(v&64){A.move(f,u,h,ot);return}if(A===he){s(x,u,h);for(let F=0;Fw.enter(x),m);else{const{leave:F,delayLeave:L,afterLeave:B}=w,z=()=>s(x,u,h),G=()=>{F(x,()=>{z(),B&&B()})};L?L(x,z,G):G()}else s(x,u,h)},Ie=(f,u,h,b=!1,m=!1)=>{const{type:x,props:A,ref:w,children:T,dynamicChildren:v,shapeFlag:S,patchFlag:F,dirs:L}=f;if(w!=null&&pn(w,null,h,f,!0),S&256){u.ctx.deactivate(f);return}const B=S&1&&L,z=!gt(f);let G;if(z&&(G=A&&A.onVnodeBeforeUnmount)&&ve(G,u,f),S&6)Ni(f.component,h,b);else{if(S&128){f.suspense.unmount(h,b);return}B&&Fe(f,null,u,"beforeUnmount"),S&64?f.type.remove(f,u,h,m,ot,b):v&&(x!==he||F>0&&F&64)?Le(v,u,h,!1,!0):(x===he&&F&384||!m&&S&16)&&Le(T,u,h),b&&Ts(f)}(z&&(G=A&&A.onVnodeUnmounted)||B)&&de(()=>{G&&ve(G,u,f),B&&Fe(f,null,u,"unmounted")},h)},Ts=f=>{const{type:u,el:h,anchor:b,transition:m}=f;if(u===he){Li(h,b);return}if(u===Mt){I(f);return}const x=()=>{r(h),m&&!m.persisted&&m.afterLeave&&m.afterLeave()};if(f.shapeFlag&1&&m&&!m.persisted){const{leave:A,delayLeave:w}=m,T=()=>A(h,x);w?w(f.el,x,T):T()}else x()},Li=(f,u)=>{let h;for(;f!==u;)h=g(f),r(f),f=h;r(u)},Ni=(f,u,h)=>{const{bum:b,scope:m,update:x,subTree:A,um:w}=f;b&&nn(b),m.stop(),x&&(x.active=!1,Ie(A,f,u,h)),w&&de(w,u),de(()=>{f.isUnmounted=!0},u),u&&u.pendingBranch&&!u.isUnmounted&&f.asyncDep&&!f.asyncResolved&&f.suspenseId===u.pendingId&&(u.deps--,u.deps===0&&u.resolve())},Le=(f,u,h,b=!1,m=!1,x=0)=>{for(let A=x;Af.shapeFlag&6?Wt(f.component.subTree):f.shapeFlag&128?f.suspense.next():g(f.anchor||f.el),As=(f,u,h)=>{f==null?u._vnode&&Ie(u._vnode,null,null,!0):P(u._vnode||null,f,u,null,null,null,h),Us(),an(),u._vnode=f},ot={p:P,um:Ie,m:Ye,r:Ts,mt:M,mc:E,pc:Q,pbc:U,n:Wt,o:e};let On,Fn;return t&&([On,Fn]=t(ot)),{render:As,hydrate:On,createApp:bl(As,On)}}function Je({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function ws(e,t,n=!1){const s=e.children,r=t.children;if(N(s)&&N(r))for(let i=0;i>1,e[n[l]]0&&(t[s]=n[i-1]),n[i]=s)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}const Il=e=>e.__isTeleport,Ft=e=>e&&(e.disabled||e.disabled===""),Xs=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Qn=(e,t)=>{const n=e&&e.to;return se(n)?t?t(n):null:n},Ol={__isTeleport:!0,process(e,t,n,s,r,i,o,l,c,a){const{mc:d,pc:p,pbc:g,o:{insert:C,querySelector:R,createText:P,createComment:$}}=a,_=Ft(t.props);let{shapeFlag:y,children:H,dynamicChildren:I}=t;if(e==null){const K=t.el=P(""),V=t.anchor=P("");C(K,n,s),C(V,n,s);const k=t.target=Qn(t.props,R),E=t.targetAnchor=P("");k&&(C(E,k),o=o||Xs(k));const j=(U,W)=>{y&16&&d(H,U,W,r,i,o,l,c)};_?j(n,V):k&&j(k,E)}else{t.el=e.el;const K=t.anchor=e.anchor,V=t.target=e.target,k=t.targetAnchor=e.targetAnchor,E=Ft(e.props),j=E?n:V,U=E?K:k;if(o=o||Xs(V),I?(g(e.dynamicChildren,I,j,r,i,o,l),ws(e,t,!0)):c||p(e,t,j,U,r,i,o,l,!1),_)E||Gt(t,n,K,a,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const W=t.target=Qn(t.props,R);W&&Gt(t,W,null,a,0)}else E&&Gt(t,V,k,a,1)}di(t)},remove(e,t,n,s,{um:r,o:{remove:i}},o){const{shapeFlag:l,children:c,anchor:a,targetAnchor:d,target:p,props:g}=e;if(p&&i(d),(o||!Ft(g))&&(i(a),l&16))for(let C=0;C0?Re||at:null,Ml(),jt>0&&Re&&Re.push(e),e}function lf(e,t,n,s,r,i){return pi(_i(e,t,n,s,r,i,!0))}function gi(e,t,n,s,r){return pi(re(e,t,n,s,r,!0))}function gn(e){return e?e.__v_isVNode===!0:!1}function Ge(e,t){return e.type===t.type&&e.key===t.key}const Pn="__vInternal",mi=({key:e})=>e??null,rn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?se(e)||ce(e)||D(e)?{i:fe,r:e,k:t,f:!!n}:e:null);function _i(e,t=null,n=null,s=0,r=null,i=e===he?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&mi(t),ref:t&&rn(t),scopeId:xn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:fe};return l?(xs(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=se(n)?8:16),jt>0&&!o&&Re&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&Re.push(c),c}const re=Sl;function Sl(e,t=null,n=null,s=0,r=null,i=!1){if((!e||e===ti)&&(e=be),gn(e)){const l=Ve(e,t,!0);return n&&xs(l,n),jt>0&&!i&&Re&&(l.shapeFlag&6?Re[Re.indexOf(e)]=l:Re.push(l)),l.patchFlag|=-2,l}if(kl(e)&&(e=e.__vccOpts),t){t=Ll(t);let{class:l,style:c}=t;l&&!se(l)&&(t.class=ls(l)),ee(c)&&(Br(c)&&!N(c)&&(c=oe({},c)),t.style=os(c))}const o=se(e)?1:Yo(e)?128:Il(e)?64:ee(e)?4:D(e)?2:0;return _i(e,t,n,s,r,o,i,!0)}function Ll(e){return e?Br(e)||Pn in e?oe({},e):e:null}function Ve(e,t,n=!1){const{props:s,ref:r,patchFlag:i,children:o}=e,l=t?Nl(s||{},t):s;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&mi(l),ref:t&&t.ref?n&&r?N(r)?r.concat(rn(t)):[r,rn(t)]:rn(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==he?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ve(e.ssContent),ssFallback:e.ssFallback&&Ve(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function bi(e=" ",t=0){return re(bt,null,e,t)}function cf(e,t){const n=re(Mt,null,e);return n.staticCount=t,n}function ff(e="",t=!1){return t?(hi(),gi(be,null,e)):re(be,null,e)}function Te(e){return e==null||typeof e=="boolean"?re(be):N(e)?re(he,null,e.slice()):typeof e=="object"?Ke(e):re(bt,null,String(e))}function Ke(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ve(e)}function xs(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(N(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),xs(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!(Pn in t)?t._ctx=fe:r===3&&fe&&(fe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else D(t)?(t={default:t,_ctx:fe},n=32):(t=String(t),s&64?(n=16,t=[bi(t)]):n=8);e.children=t,e.shapeFlag|=n}function Nl(...e){const t={};for(let n=0;nle||fe;let Es,ct,Qs="__VUE_INSTANCE_SETTERS__";(ct=Dn()[Qs])||(ct=Dn()[Qs]=[]),ct.push(e=>le=e),Es=e=>{ct.length>1?ct.forEach(t=>t(e)):ct[0](e)};const yt=e=>{Es(e),e.scope.on()},rt=()=>{le&&le.scope.off(),Es(null)};function vi(e){return e.vnode.shapeFlag&4}let vt=!1;function jl(e,t=!1){vt=t;const{props:n,children:s}=e.vnode,r=vi(e);vl(e,n,r,t),xl(e,s);const i=r?Bl(e,t):void 0;return vt=!1,i}function Bl(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=It(new Proxy(e.ctx,al));const{setup:s}=n;if(s){const r=e.setupContext=s.length>1?wi(e):null;yt(e),Ct();const i=We(s,e,0,[e.props,r]);if(wt(),rt(),Er(i)){if(i.then(rt,rt),t)return i.then(o=>{Gs(e,o,t)}).catch(o=>{Dt(o,e,0)});e.asyncDep=i}else Gs(e,i,t)}else Ci(e,t)}function Gs(e,t,n){D(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ee(t)&&(e.setupState=Kr(t)),Ci(e,n)}let er;function Ci(e,t,n){const s=e.type;if(!e.render){if(!t&&er&&!s.render){const r=s.template||vs(e).template;if(r){const{isCustomElement:i,compilerOptions:o}=e.appContext.config,{delimiters:l,compilerOptions:c}=s,a=oe(oe({isCustomElement:i,delimiters:l},o),c);s.render=er(r,a)}}e.render=s.render||Pe}yt(e),Ct(),dl(e),wt(),rt()}function Dl(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,n){return pe(e,"get","$attrs"),t[n]}}))}function wi(e){const t=n=>{e.exposed=n||{}};return{get attrs(){return Dl(e)},slots:e.slots,emit:e.emit,expose:t}}function In(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Kr(It(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Ot)return Ot[n](e)},has(t,n){return n in t||n in Ot}}))}function Kl(e,t=!0){return D(e)?e.displayName||e.name:e.name||t&&e.__name}function kl(e){return D(e)&&"__vccOpts"in e}const Ee=(e,t)=>Ho(e,t,vt);function Gn(e,t,n){const s=arguments.length;return s===2?ee(t)&&!N(t)?gn(t)?re(e,null,[t]):re(e,t):re(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&gn(n)&&(n=[n]),re(e,t,n))}const Wl=Symbol.for("v-scx"),ql=()=>mt(Wl),Vl="3.3.4",zl="http://www.w3.org/2000/svg",et=typeof document<"u"?document:null,tr=et&&et.createElement("template"),Yl={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t?et.createElementNS(zl,e):et.createElement(e,n?{is:n}:void 0);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>et.createTextNode(e),createComment:e=>et.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>et.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,i){const o=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{tr.innerHTML=s?`${e}`:e;const l=tr.content;if(s){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function Jl(e,t,n){const s=e._vtc;s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function Xl(e,t,n){const s=e.style,r=se(n);if(n&&!r){if(t&&!se(t))for(const i in t)n[i]==null&&es(s,i,"");for(const i in n)es(s,i,n[i])}else{const i=s.display;r?t!==n&&(s.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(s.display=i)}}const nr=/\s*!important$/;function es(e,t,n){if(N(n))n.forEach(s=>es(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=Zl(e,t);nr.test(n)?e.setProperty(it(s),n.replace(nr,""),"important"):e[s]=n}}const sr=["Webkit","Moz","ms"],Hn={};function Zl(e,t){const n=Hn[t];if(n)return n;let s=Se(t);if(s!=="filter"&&s in e)return Hn[t]=s;s=bn(s);for(let r=0;r$n||(sc.then(()=>$n=0),$n=Date.now());function ic(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;we(oc(s,n.value),t,5,[s])};return n.value=e,n.attached=rc(),n}function oc(e,t){if(N(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const or=/^on[a-z]/,lc=(e,t,n,s,r=!1,i,o,l,c)=>{t==="class"?Jl(e,s,r):t==="style"?Xl(e,n,s):Bt(t)?ns(t)||tc(e,t,n,s,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):cc(e,t,s,r))?Gl(e,t,s,i,o,l,c):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Ql(e,t,s,r))};function cc(e,t,n,s){return s?!!(t==="innerHTML"||t==="textContent"||t in e&&or.test(t)&&D(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||or.test(t)&&se(n)?!1:t in e}const Be="transition",Et="animation",xi=(e,{slots:t})=>Gn(Go,fc(e),t);xi.displayName="Transition";const Ei={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};xi.props=oe({},Xr,Ei);const Xe=(e,t=[])=>{N(e)?e.forEach(n=>n(...t)):e&&e(...t)},lr=e=>e?N(e)?e.some(t=>t.length>1):e.length>1:!1;function fc(e){const t={};for(const O in e)O in Ei||(t[O]=e[O]);if(e.css===!1)return t;const{name:n="v",type:s,duration:r,enterFromClass:i=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=i,appearActiveClass:a=o,appearToClass:d=l,leaveFromClass:p=`${n}-leave-from`,leaveActiveClass:g=`${n}-leave-active`,leaveToClass:C=`${n}-leave-to`}=e,R=ac(r),P=R&&R[0],$=R&&R[1],{onBeforeEnter:_,onEnter:y,onEnterCancelled:H,onLeave:I,onLeaveCancelled:K,onBeforeAppear:V=_,onAppear:k=y,onAppearCancelled:E=H}=t,j=(O,q,M)=>{Ze(O,q?d:l),Ze(O,q?a:o),M&&M()},U=(O,q)=>{O._isLeaving=!1,Ze(O,p),Ze(O,C),Ze(O,g),q&&q()},W=O=>(q,M)=>{const ge=O?k:y,X=()=>j(q,O,M);Xe(ge,[q,X]),cr(()=>{Ze(q,O?c:i),De(q,O?d:l),lr(ge)||fr(q,s,P,X)})};return oe(t,{onBeforeEnter(O){Xe(_,[O]),De(O,i),De(O,o)},onBeforeAppear(O){Xe(V,[O]),De(O,c),De(O,a)},onEnter:W(!1),onAppear:W(!0),onLeave(O,q){O._isLeaving=!0;const M=()=>U(O,q);De(O,p),hc(),De(O,g),cr(()=>{O._isLeaving&&(Ze(O,p),De(O,C),lr(I)||fr(O,s,$,M))}),Xe(I,[O,M])},onEnterCancelled(O){j(O,!1),Xe(H,[O])},onAppearCancelled(O){j(O,!0),Xe(E,[O])},onLeaveCancelled(O){U(O),Xe(K,[O])}})}function ac(e){if(e==null)return null;if(ee(e))return[Un(e.enter),Un(e.leave)];{const t=Un(e);return[t,t]}}function Un(e){return Ki(e)}function De(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e._vtc||(e._vtc=new Set)).add(t)}function Ze(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function cr(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let uc=0;function fr(e,t,n,s){const r=e._endId=++uc,i=()=>{r===e._endId&&s()};if(n)return setTimeout(i,n);const{type:o,timeout:l,propCount:c}=dc(e,t);if(!o)return s();const a=o+"end";let d=0;const p=()=>{e.removeEventListener(a,g),i()},g=C=>{C.target===e&&++d>=c&&p()};setTimeout(()=>{d(n[R]||"").split(", "),r=s(`${Be}Delay`),i=s(`${Be}Duration`),o=ar(r,i),l=s(`${Et}Delay`),c=s(`${Et}Duration`),a=ar(l,c);let d=null,p=0,g=0;t===Be?o>0&&(d=Be,p=o,g=i.length):t===Et?a>0&&(d=Et,p=a,g=c.length):(p=Math.max(o,a),d=p>0?o>a?Be:Et:null,g=d?d===Be?i.length:c.length:0);const C=d===Be&&/\b(transform|all)(,|$)/.test(s(`${Be}Property`).toString());return{type:d,timeout:p,propCount:g,hasTransform:C}}function ar(e,t){for(;e.lengthur(n)+ur(e[s])))}function ur(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function hc(){return document.body.offsetHeight}const dr=e=>{const t=e.props["onUpdate:modelValue"]||!1;return N(t)?n=>nn(t,n):t};function pc(e){e.target.composing=!0}function hr(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const af={created(e,{modifiers:{lazy:t,trim:n,number:s}},r){e._assign=dr(r);const i=s||r.props&&r.props.type==="number";ft(e,t?"change":"input",o=>{if(o.target.composing)return;let l=e.value;n&&(l=l.trim()),i&&(l=Bn(l)),e._assign(l)}),n&&ft(e,"change",()=>{e.value=e.value.trim()}),t||(ft(e,"compositionstart",pc),ft(e,"compositionend",hr),ft(e,"change",hr))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:s,number:r}},i){if(e._assign=dr(i),e.composing||document.activeElement===e&&e.type!=="range"&&(n||s&&e.value.trim()===t||(r||e.type==="number")&&Bn(e.value)===t))return;const o=t??"";e.value!==o&&(e.value=o)}},gc=["ctrl","shift","alt","meta"],mc={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>gc.some(n=>e[`${n}Key`]&&!t.includes(n))},uf=(e,t)=>(n,...s)=>{for(let r=0;rn=>{if(!("key"in n))return;const s=it(n.key);if(t.some(r=>r===s||_c[r]===s))return e(n)},hf={beforeMount(e,{value:t},{transition:n}){e._vod=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Tt(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:s}){!t!=!n&&(s?t?(s.beforeEnter(e),Tt(e,!0),s.enter(e)):s.leave(e,()=>{Tt(e,!1)}):Tt(e,t))},beforeUnmount(e,{value:t}){Tt(e,t)}};function Tt(e,t){e.style.display=t?e._vod:"none"}const Ti=oe({patchProp:lc},Yl);let Lt,pr=!1;function bc(){return Lt||(Lt=Al(Ti))}function yc(){return Lt=pr?Lt:Rl(Ti),pr=!0,Lt}const pf=(...e)=>{const t=bc().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Ai(s);if(!r)return;const i=t._component;!D(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.innerHTML="";const o=n(r,!1,r instanceof SVGElement);return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),o},t},gf=(...e)=>{const t=yc().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Ai(s);if(r)return n(r,!0,r instanceof SVGElement)},t};function Ai(e){return se(e)?document.querySelector(e):e}const mf=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},vc="modulepreload",Cc=function(e){return"/q-ui/"+e},gr={},_f=function(t,n,s){if(!n||n.length===0)return t();const r=document.getElementsByTagName("link");return Promise.all(n.map(i=>{if(i=Cc(i),i in gr)return;gr[i]=!0;const o=i.endsWith(".css"),l=o?'[rel="stylesheet"]':"";if(!!s)for(let d=r.length-1;d>=0;d--){const p=r[d];if(p.href===i&&(!o||p.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${i}"]${l}`))return;const a=document.createElement("link");if(a.rel=o?"stylesheet":vc,o||(a.as="script",a.crossOrigin=""),a.href=i,document.head.appendChild(a),o)return new Promise((d,p)=>{a.addEventListener("load",d),a.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${i}`)))})})).then(()=>t())},wc=window.__VP_SITE_DATA__,Ri=/^[a-z]+:/i,bf=/^pathname:\/\//,yf="vitepress-theme-appearance",Pi=/#.*$/,xc=/(index)?\.(md|html)$/,Ce=typeof document<"u",Ii={relativePath:"",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function Ec(e,t,n=!1){if(t===void 0)return!1;if(e=mr(`/${e}`),n)return new RegExp(t).test(e);if(mr(t)!==e)return!1;const s=t.match(Pi);return s?(Ce?location.hash:"")===s[0]:!0}function mr(e){return decodeURI(e).replace(Pi,"").replace(xc,"")}function Tc(e){return Ri.test(e)}function Ac(e,t){var s,r,i,o,l,c,a;const n=Object.keys(e.locales).find(d=>d!=="root"&&!Tc(d)&&Ec(t,`/${d}/`,!0))||"root";return Object.assign({},e,{localeIndex:n,lang:((s=e.locales[n])==null?void 0:s.lang)??e.lang,dir:((r=e.locales[n])==null?void 0:r.dir)??e.dir,title:((i=e.locales[n])==null?void 0:i.title)??e.title,titleTemplate:((o=e.locales[n])==null?void 0:o.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:Fi(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(a=e.locales[n])==null?void 0:a.themeConfig}})}function Oi(e,t){const n=t.title||e.title,s=t.titleTemplate??e.titleTemplate;if(typeof s=="string"&&s.includes(":title"))return s.replace(/:title/g,n);const r=Rc(e.title,s);return`${n}${r}`}function Rc(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function Pc(e,t){const[n,s]=t;if(n!=="meta")return!1;const r=Object.entries(s)[0];return r==null?!1:e.some(([i,o])=>i===n&&o[r[0]]===r[1])}function Fi(e,t){return[...e.filter(n=>!Pc(t,n)),...t]}const Ic=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,Oc=/^[a-z]:/i;function _r(e){const t=Oc.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(Ic,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const Fc=Symbol(),nt=Ro(wc);function vf(e){const t=Ee(()=>Ac(nt.value,e.data.relativePath));return{site:t,theme:Ee(()=>t.value.themeConfig),page:Ee(()=>e.data),frontmatter:Ee(()=>e.data.frontmatter),params:Ee(()=>e.data.params),lang:Ee(()=>t.value.lang),dir:Ee(()=>t.value.dir),localeIndex:Ee(()=>t.value.localeIndex||"root"),title:Ee(()=>Oi(t.value,e.data)),description:Ee(()=>e.data.description||t.value.description),isDark:ht(!1)}}function Cf(){const e=mt(Fc);if(!e)throw new Error("vitepress data not properly injected in app");return e}function Mc(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function br(e){return Ri.test(e)||e.startsWith(".")?e:Mc(nt.value.base,e)}function Sc(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),Ce){const n="/q-ui/";t=_r(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let s=__VP_HASH_MAP__[t.toLowerCase()];s||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",s=__VP_HASH_MAP__[t.toLowerCase()]),t=`${n}assets/${t}.${s}.js`}else t=`./${_r(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let on=[];function wf(e){on.push(e),Rn(()=>{on=on.filter(t=>t!==e)})}const Lc=Symbol(),yr="http://a.com",Nc=()=>({path:"/",component:null,data:Ii});function xf(e,t){const n=vn(Nc()),s={route:n,go:r};async function r(l=Ce?location.href:"/"){var a,d;await((a=s.onBeforeRouteChange)==null?void 0:a.call(s,l));const c=new URL(l,yr);nt.value.cleanUrls||!c.pathname.endsWith("/")&&!c.pathname.endsWith(".html")&&(c.pathname+=".html",l=c.pathname+c.search+c.hash),Ce&&l!==location.href&&(history.replaceState({scrollPosition:window.scrollY},document.title),history.pushState(null,"",l)),await o(l),await((d=s.onAfterRouteChanged)==null?void 0:d.call(s,l))}let i=null;async function o(l,c=0,a=!1){const d=new URL(l,yr),p=i=d.pathname;try{let g=await e(p);if(i===p){i=null;const{default:C,__pageData:R}=g;if(!C)throw new Error(`Invalid route component: ${C}`);n.path=Ce?p:br(p),n.component=It(C),n.data=It(R),Ce&&Wr(()=>{let P=nt.value.base+R.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!nt.value.cleanUrls&&!P.endsWith("/")&&(P+=".html"),P!==d.pathname&&(d.pathname=P,l=P+d.search+d.hash,history.replaceState(null,"",l)),d.hash&&!c){let $=null;try{$=document.querySelector(decodeURIComponent(d.hash))}catch(_){console.warn(_)}if($){vr($,d.hash);return}}window.scrollTo(0,c)})}}catch(g){if(!/fetch/.test(g.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(g),!a)try{const C=await fetch(nt.value.base+"hashmap.json");window.__VP_HASH_MAP__=await C.json(),await o(l,c,!0);return}catch{}i===p&&(i=null,n.path=Ce?p:br(p),n.component=t?It(t):null,n.data=Ii)}}return Ce&&(window.addEventListener("click",l=>{if(l.target.closest("button"))return;const a=l.target.closest("a");if(a&&!a.closest(".vp-raw")&&(a instanceof SVGElement||!a.download)){const{target:d}=a,{href:p,origin:g,pathname:C,hash:R,search:P}=new URL(a.href instanceof SVGAnimatedString?a.href.animVal:a.href,a.baseURI),$=window.location,_=C.match(/\.\w+$/);!l.ctrlKey&&!l.shiftKey&&!l.altKey&&!l.metaKey&&d!=="_blank"&&g===$.origin&&!(_&&_[0]!==".html")&&(l.preventDefault(),C===$.pathname&&P===$.search?R&&(R!==$.hash&&(history.pushState(null,"",R),window.dispatchEvent(new Event("hashchange"))),vr(a,R,a.classList.contains("header-anchor"))):r(p))}},{capture:!0}),window.addEventListener("popstate",l=>{o(location.href,l.state&&l.state.scrollPosition||0)}),window.addEventListener("hashchange",l=>{l.preventDefault()})),s}function Hc(){const e=mt(Lc);if(!e)throw new Error("useRouter() is called without provider.");return e}function Mi(){return Hc().route}function vr(e,t,n=!1){let s=null;try{s=e.classList.contains("header-anchor")?e:document.querySelector(decodeURIComponent(t))}catch(r){console.warn(r)}if(s){const r=nt.value.scrollOffset;let i=0;if(typeof r=="number")i=r;else if(typeof r=="string")i=Cr(r);else if(Array.isArray(r))for(const c of r){const a=Cr(c);if(a){i=a;break}}const o=parseInt(window.getComputedStyle(s).paddingTop,10),l=window.scrollY+s.getBoundingClientRect().top-i+o;!n||Math.abs(l-window.scrollY)>window.innerHeight?window.scrollTo(0,l):window.scrollTo({left:0,top:l,behavior:"smooth"})}}function Cr(e){const t=document.querySelector(e);if(!t)return 0;const n=t.getBoundingClientRect().bottom;return n<0?0:n+24}const wr=()=>on.forEach(e=>e()),Ef=bs({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=Mi();return()=>Gn(e.as,{style:{position:"relative"}},[t.component?Gn(t.component,{onVnodeMounted:wr,onVnodeUpdated:wr}):"404 Page Not Found"])}});function Tf(e,t){let n=[],s=!0;const r=i=>{if(s){s=!1;return}n.forEach(o=>document.head.removeChild(o)),n=[],i.forEach(o=>{const l=$c(o);document.head.appendChild(l),n.push(l)})};Jo(()=>{const i=e.data,o=t.value,l=i&&i.description,c=i&&i.frontmatter.head||[];document.title=Oi(o,i),document.querySelector("meta[name=description]").setAttribute("content",l||o.description),r(Fi(o.head,jc(c)))})}function $c([e,t,n]){const s=document.createElement(e);for(const r in t)s.setAttribute(r,t[r]);return n&&(s.innerHTML=n),s}function Uc(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function jc(e){return e.filter(t=>!Uc(t))}const jn=new Set,Si=()=>document.createElement("link"),Bc=e=>{const t=Si();t.rel="prefetch",t.href=e,document.head.appendChild(t)},Dc=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let en;const Kc=Ce&&(en=Si())&&en.relList&&en.relList.supports&&en.relList.supports("prefetch")?Bc:Dc;function Af(){if(!Ce||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const s=()=>{n&&n.disconnect(),n=new IntersectionObserver(i=>{i.forEach(o=>{if(o.isIntersecting){const l=o.target;n.unobserve(l);const{pathname:c}=l;if(!jn.has(c)){jn.add(c);const a=Sc(c);Kc(a)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(i=>{const{target:o}=i,{hostname:l,pathname:c}=new URL(i.href instanceof SVGAnimatedString?i.href.animVal:i.href,i.baseURI),a=c.match(/\.\w+$/);a&&a[0]!==".html"||o!=="_blank"&&l===location.hostname&&(c!==location.pathname?n.observe(i):jn.add(c))})})};An(s);const r=Mi();sn(()=>r.path,s),Rn(()=>{n&&n.disconnect()})}const Rf=bs({setup(e,{slots:t}){const n=ht(!1);return An(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function Pf(){if(Ce){const e=new WeakMap;window.addEventListener("click",t=>{var s;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const r=n.parentElement,i=(s=n.nextElementSibling)==null?void 0:s.nextElementSibling;if(!r||!i)return;const o=/language-(shellscript|shell|bash|sh|zsh)/.test(r.className);let l="";i.querySelectorAll("span.line:not(.diff.remove)").forEach(c=>l+=(c.textContent||"")+` +`),l=l.slice(0,-1),o&&(l=l.replace(/^ *(\$|>) /gm,"").trim()),kc(l).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const c=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,c)})}})}}async function kc(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const s=document.getSelection(),r=s?s.rangeCount>0&&s.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),r&&(s.removeAllRanges(),s.addRange(r)),n&&n.focus()}}function If(){Ce&&window.addEventListener("click",e=>{var n,s;const t=e.target;if(t.matches(".vp-code-group input")){const r=(n=t.parentElement)==null?void 0:n.parentElement,i=Array.from((r==null?void 0:r.querySelectorAll("input"))||[]).indexOf(t),o=r==null?void 0:r.querySelector('div[class*="language-"].active'),l=(s=r==null?void 0:r.querySelectorAll('div[class*="language-"]:not(.language-id)'))==null?void 0:s[i];o&&l&&o!==l&&(o.classList.remove("active"),l.classList.add("active"))}})}export{wf as $,Mi as A,Rn as B,_i as C,gi as D,ko as E,he as F,ff as G,Gc as H,Nl as I,re as J,os as K,Qc as L,_f as M,ef as N,Ri as O,bf as P,Ce as Q,tf as R,Yc as S,xi as T,Jc as U,cf as V,yf as W,mt as X,yl as Y,il as Z,mf as _,bi as a,sf as a0,df as a1,Xc as a2,uf as a3,rf as a4,Zc as a5,hf as a6,Tf as a7,Lc as a8,vf as a9,Fc as aa,Ef as ab,Rf as ac,nt as ad,gf as ae,xf as af,Sc as ag,Af as ah,Pf as ai,If as aj,Gn as ak,Hc as al,ei as am,af as an,of as ao,It as ap,pf as aq,Io as b,lf as c,bs as d,zc as e,jr as f,Vc as g,ht as h,Zi as i,qc as j,Jo as k,Ee as l,yi as m,ls as n,hi as o,An as p,ce as q,nf as r,Ro as s,Wc as t,Cf as u,Wr as v,sn as w,Tc as x,br as y,Ec as z}; diff --git a/docs/.vitepress/dist/assets/chunks/q-ui.bc6b1064.js b/docs/.vitepress/dist/assets/chunks/q-ui.bc6b1064.js new file mode 100644 index 0000000..0354b53 --- /dev/null +++ b/docs/.vitepress/dist/assets/chunks/q-ui.bc6b1064.js @@ -0,0 +1 @@ +import{d as S,l as I,o as r,c,b as z,G as M,r as G,a as H,t as _,n as v,h as m,k as K,C as h,K as g,a3 as R,J as P,E as X,a5 as Y,F as B,R as q,a6 as Z,T as x,S as L,U as E}from"./framework.dc35932b.js";function $e(t,u=300){let a;return function(){a||(a=setTimeout(()=>{t(),a=null},u))}}function we(t,u=300){let a;return function(){a&&clearTimeout(a),a=setTimeout(()=>{t(),a=null},u)}}const ee={key:0,class:"q-loadingIndicator"},ae={name:"QButton"},le=S({...ae,props:{type:{type:String,default:"default"},dashed:{type:Boolean,default:!1},size:{type:String,default:"default"},round:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1}},setup(t){const u=t,{type:a,dashed:o,size:l,round:n,disabled:d,loading:s}=u,p=I(()=>({[`q-type-${a}`]:a,["q-type-dashed"]:o,[`q-size-${l}`]:l,["is-round"]:n,["is-disabled"]:d||s,["is-loading"]:s}));return(b,C)=>(r(),c("button",{class:v(["q-button",p.value])},[z(s)?(r(),c("span",ee)):M("",!0),G(b.$slots,"default",{},()=>[H(_(z(a)),1)],!0)],2))}}),k=(t,u)=>{const a=t.__vccOpts||t;for(const[o,l]of u)a[o]=l;return a},y=k(le,[["__scopeId","data-v-4eae179c"]]);y.install=t=>{t.component(y.__name,y)};const N=t=>(L("data-v-3b126f0b"),t=t(),E(),t),te=["title"],se=N(()=>h("path",{d:"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"},null,-1)),oe=[se],ne=["onClick"],ue=N(()=>h("path",{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"},null,-1)),ie=[ue],de=["title","onMouseenter","onClick"],re={name:"QSelect"},ce=S({...re,props:{options:{default:()=>[]},label:{default:"label"},value:{default:"value"},placeholder:{default:"请选择"},disabled:{type:Boolean,default:!1},allowClear:{type:Boolean,default:!1},width:{default:120},height:{default:32},maxDisplay:{default:6},modelValue:{default:null}},emits:["update:modelValue","change"],setup(t,{emit:u}){const a=t,o=m(),l=m(),n=m(!1),d=m(!0),s=m(!1),p=m();K(()=>{b()});function b(){if(a.modelValue){const e=a.options.find(f=>f[a.value]===a.modelValue);e?(o.value=e[a.label],l.value=e[a.value]):(o.value=a.modelValue,l.value=null)}else o.value=null,l.value=null}function C(){n.value&&(n.value=!1)}function T(){a.allowClear&&o.value&&(s.value=!0)}function D(){a.allowClear&&s.value&&(s.value=!1)}function O(e){l.value=e}function U(){d.value=!1}function j(){l.value=null,d.value=!0,p.value.focus()}function F(){if(n.value=!n.value,!l.value&&o.value){const e=a.options.find(f=>f[a.label]===o.value);l.value=e?e[a.value]:null}}function J(){s.value=!1,o.value=null,l.value=null,u("update:modelValue"),u("change")}function W(e,f,i){a.modelValue!==e&&(o.value=f,l.value=e,u("update:modelValue",e),u("change",e,f,i)),n.value=!1}return(e,f)=>(r(),c("div",{class:"m-select",style:g(`height: ${e.height}px;`)},[h("div",{class:v(["m-select-wrap",{hover:!e.disabled,focus:n.value,disabled:e.disabled}]),style:g(`width: ${e.width}px; height: ${e.height}px;`),tabindex:"0",ref_key:"select",ref:p,onMouseenter:T,onMouseleave:D,onBlur:f[0]||(f[0]=i=>d.value&&!e.disabled?C():()=>!1),onClick:f[1]||(f[1]=i=>e.disabled?()=>!1:F())},[h("div",{class:v(["u-select-input",{placeholder:!o.value}]),style:g(`line-height: ${e.height-2}px;`),title:o.value},_(o.value||e.placeholder),15,te),(r(),c("svg",{class:v(["triangle",{rotate:n.value,show:!s.value}]),viewBox:"64 64 896 896","data-icon":"down","aria-hidden":"true",focusable:"false"},oe,2)),(r(),c("svg",{onClick:R(J,["stop"]),class:v(["close",{show:s.value}]),focusable:"false","data-icon":"close-circle","aria-hidden":"true",viewBox:"64 64 896 896"},ie,10,ne))],38),P(x,{name:"fade"},{default:X(()=>[Y(h("div",{class:"m-options-panel",onMouseenter:U,onMouseleave:j,style:g(`top: ${e.height+4}px; line-height: ${e.height-10}px; max-height: ${e.maxDisplay*e.height+9}px; width: ${e.width}px;`)},[(r(!0),c(B,null,q(e.options,(i,V)=>(r(),c("p",{key:V,class:v(["u-option",{"option-selected":i[e.label]===o.value,"option-hover":!i.disabled&&i[e.value]===l.value,"option-disabled":i.disabled}]),title:i[e.label],onMouseenter:A=>O(i[e.value]),onClick:A=>i.disabled?()=>!1:W(i[e.value],i[e.label],V)},_(i[e.label]),43,de))),128))],36),[[Z,n.value]])]),_:1})],4))}}),$=k(ce,[["__scopeId","data-v-3b126f0b"]]);$.install=t=>{t.component($.__name,$)};const Q=t=>(L("data-v-8c81a90d"),t=t(),E(),t),fe=["href","title","target"],he={key:0,class:"u-separator"},ve={key:1,class:"u-arrow",viewBox:"64 64 896 896","data-icon":"right","aria-hidden":"true",focusable:"false"},pe=Q(()=>h("path",{d:"M765.7 486.8L314.9 134.7A7.97 7.97 0 0 0 302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 0 0 0-50.4z"},null,-1)),me=[pe],ge=Q(()=>h("div",{class:"assist"},null,-1)),_e={name:"QBreadcrumb"},be=S({..._e,props:{routes:{default:()=>[]},fontSize:{default:14},height:{default:21},maxWidth:{default:180},separator:{default:""},target:{default:"_self"}},setup(t){const u=t,a=I(()=>u.routes.length);function o(l){var n=l.path;if(l.query&&JSON.stringify(l.query)!=="{}"){const d=l.query;Object.keys(d).forEach((s,p)=>{p===0?n=n+"?"+s+"="+d[s]:n=n+"&"+s+"="+d[s]})}return n}return(l,n)=>(r(),c("div",{class:"m-breadcrumb",style:g(`height: ${l.height}px;`)},[(r(!0),c(B,null,q(l.routes,(d,s)=>(r(),c("div",{class:"m-bread",key:s},[h("a",{class:v(["u-route",{active:s===a.value-1}]),style:g(`font-size: ${l.fontSize}px; max-width: ${l.maxWidth}px;`),href:s===a.value-1?"javascript:;":o(d),title:d.name,target:s===a.value-1?"_self":l.target},_(d.name||"--"),15,fe),s!==a.value-1?(r(),c(B,{key:0},[l.separator?(r(),c("span",he,_(l.separator),1)):(r(),c("svg",ve,me))],64)):M("",!0)]))),128)),ge],4))}}),w=k(be,[["__scopeId","data-v-8c81a90d"]]);w.install=t=>{t.component(w.__name,w)};export{we as d,$e as t}; diff --git a/docs/.vitepress/dist/assets/chunks/theme.0d1c29fb.js b/docs/.vitepress/dist/assets/chunks/theme.0d1c29fb.js new file mode 100644 index 0000000..c9bf123 --- /dev/null +++ b/docs/.vitepress/dist/assets/chunks/theme.0d1c29fb.js @@ -0,0 +1,7 @@ +import{d as y,o as a,c as l,r as d,n as T,a as O,t as C,_ as g,u as Ct,b as i,e as At,f as Ie,g as Tt,h as L,i as Bt,j as xt,w as K,k as ee,l as w,m as Ot,p as R,q as Et,s as le,v as at,x as Ht,P as Dt,y as Ne,z as te,A as ce,B as Ce,C as _,F as A,D as P,E as p,G as m,T as Ae,H as X,I as fe,J as f,K as rt,L as zt,M as Ft,N as Q,O as it,Q as lt,R as E,S as F,U as j,V as jt,W as We,X as Te,Y as he,Z as Gt,$ as se,a0 as Rt,a1 as Ut,a2 as Wt,a3 as Kt,a4 as qt}from"./framework.dc35932b.js";const Yt=y({__name:"VPBadge",props:{text:{},type:{}},setup(t){return(e,n)=>(a(),l("span",{class:T(["VPBadge",e.type??"tip"])},[d(e.$slots,"default",{},()=>[O(C(e.text),1)],!0)],2))}});const Jt=g(Yt,[["__scopeId","data-v-350d3852"]]),N=Ct;function Be(t){return Bt()?(xt(t),!0):!1}function U(t){return typeof t=="function"?t():i(t)}const ct=typeof window<"u",ae=()=>{},Ke=Xt();function Xt(){var t;return ct&&((t=window==null?void 0:window.navigator)==null?void 0:t.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent)}function Qt(t,e){function n(...o){return new Promise((s,r)=>{Promise.resolve(t(()=>e.apply(this,o),{fn:e,thisArg:this,args:o})).then(s).catch(r)})}return n}const ut=t=>t();function Zt(t,e={}){let n,o,s=ae;const r=v=>{clearTimeout(v),s(),s=ae};return v=>{const u=U(t),h=U(e.maxWait);return n&&r(n),u<=0||h!==void 0&&h<=0?(o&&(r(o),o=null),Promise.resolve(v())):new Promise((b,k)=>{s=e.rejectOnCancel?k:b,h&&!o&&(o=setTimeout(()=>{n&&r(n),o=null,b(v())},h)),n=setTimeout(()=>{o&&r(o),o=null,b(v())},u)})}}function en(t=ut){const e=L(!0);function n(){e.value=!1}function o(){e.value=!0}const s=(...r)=>{e.value&&t(...r)};return{isActive:Ie(e),pause:n,resume:o,eventFilter:s}}function dt(...t){if(t.length!==1)return At(...t);const e=t[0];return typeof e=="function"?Ie(Tt(()=>({get:e,set:ae}))):L(e)}var qe=Object.getOwnPropertySymbols,tn=Object.prototype.hasOwnProperty,nn=Object.prototype.propertyIsEnumerable,on=(t,e)=>{var n={};for(var o in t)tn.call(t,o)&&e.indexOf(o)<0&&(n[o]=t[o]);if(t!=null&&qe)for(var o of qe(t))e.indexOf(o)<0&&nn.call(t,o)&&(n[o]=t[o]);return n};function _t(t,e,n={}){const o=n,{eventFilter:s=ut}=o,r=on(o,["eventFilter"]);return K(t,Qt(s,e),r)}var sn=Object.defineProperty,an=Object.defineProperties,rn=Object.getOwnPropertyDescriptors,me=Object.getOwnPropertySymbols,vt=Object.prototype.hasOwnProperty,pt=Object.prototype.propertyIsEnumerable,Ye=(t,e,n)=>e in t?sn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,ln=(t,e)=>{for(var n in e||(e={}))vt.call(e,n)&&Ye(t,n,e[n]);if(me)for(var n of me(e))pt.call(e,n)&&Ye(t,n,e[n]);return t},cn=(t,e)=>an(t,rn(e)),un=(t,e)=>{var n={};for(var o in t)vt.call(t,o)&&e.indexOf(o)<0&&(n[o]=t[o]);if(t!=null&&me)for(var o of me(t))e.indexOf(o)<0&&pt.call(t,o)&&(n[o]=t[o]);return n};function Rl(t,e,n={}){const o=n,{debounce:s=0,maxWait:r=void 0}=o,c=un(o,["debounce","maxWait"]);return _t(t,e,cn(ln({},c),{eventFilter:Zt(s,{maxWait:r})}))}var dn=Object.defineProperty,_n=Object.defineProperties,vn=Object.getOwnPropertyDescriptors,ge=Object.getOwnPropertySymbols,ft=Object.prototype.hasOwnProperty,ht=Object.prototype.propertyIsEnumerable,Je=(t,e,n)=>e in t?dn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,pn=(t,e)=>{for(var n in e||(e={}))ft.call(e,n)&&Je(t,n,e[n]);if(ge)for(var n of ge(e))ht.call(e,n)&&Je(t,n,e[n]);return t},fn=(t,e)=>_n(t,vn(e)),hn=(t,e)=>{var n={};for(var o in t)ft.call(t,o)&&e.indexOf(o)<0&&(n[o]=t[o]);if(t!=null&&ge)for(var o of ge(t))e.indexOf(o)<0&&ht.call(t,o)&&(n[o]=t[o]);return n};function mn(t,e,n={}){const o=n,{eventFilter:s}=o,r=hn(o,["eventFilter"]),{eventFilter:c,pause:v,resume:u,isActive:h}=en(s);return{stop:_t(t,e,fn(pn({},r),{eventFilter:c})),pause:v,resume:u,isActive:h}}function Ul(t,e,n){let o;Et(n)?o={evaluating:n}:o=n||{};const{lazy:s=!1,evaluating:r=void 0,shallow:c=!0,onError:v=ae}=o,u=L(!s),h=c?le(e):L(e);let b=0;return ee(async k=>{if(!u.value)return;b++;const I=b;let V=!1;r&&Promise.resolve().then(()=>{r.value=!0});try{const $=await t(M=>{k(()=>{r&&(r.value=!1),V||M()})});I===b&&(h.value=$)}catch($){v($)}finally{r&&I===b&&(r.value=!1),V=!0}}),s?w(()=>(u.value=!0,h.value)):h}function gn(t){var e;const n=U(t);return(e=n==null?void 0:n.$el)!=null?e:n}const W=ct?window:void 0;function re(...t){let e,n,o,s;if(typeof t[0]=="string"||Array.isArray(t[0])?([n,o,s]=t,e=W):[e,n,o,s]=t,!e)return ae;Array.isArray(n)||(n=[n]),Array.isArray(o)||(o=[o]);const r=[],c=()=>{r.forEach(b=>b()),r.length=0},v=(b,k,I,V)=>(b.addEventListener(k,I,V),()=>b.removeEventListener(k,I,V)),u=K(()=>[gn(e),U(s)],([b,k])=>{c(),b&&r.push(...n.flatMap(I=>o.map(V=>v(b,I,V,k))))},{immediate:!0,flush:"post"}),h=()=>{u(),c()};return Be(h),h}function yn(t){return typeof t=="function"?t:typeof t=="string"?e=>e.key===t:Array.isArray(t)?e=>t.includes(e.key):()=>!0}function Xe(...t){let e,n,o={};t.length===3?(e=t[0],n=t[1],o=t[2]):t.length===2?typeof t[1]=="object"?(e=!0,n=t[0],o=t[1]):(e=t[0],n=t[1]):(e=!0,n=t[0]);const{target:s=W,eventName:r="keydown",passive:c=!1,dedupe:v=!1}=o,u=yn(e);return re(s,r,b=>{b.repeat&&U(v)||u(b)&&n(b)},c)}function bn(){const t=L(!1);return Ot()&&R(()=>{t.value=!0}),t}function $n(t){const e=bn();return w(()=>(e.value,!!t()))}function Se(t,e={}){const{window:n=W}=e,o=$n(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let s;const r=L(!1),c=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",v):s.removeListener(v))},v=()=>{o.value&&(c(),s=n.matchMedia(dt(t).value),r.value=!!(s!=null&&s.matches),s&&("addEventListener"in s?s.addEventListener("change",v):s.addListener(v)))};return ee(v),Be(()=>c()),r}const ve=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},pe="__vueuse_ssr_handlers__",kn=Pn();function Pn(){return pe in ve||(ve[pe]=ve[pe]||{}),ve[pe]}function wn(t,e){return kn[t]||e}function Vn(t){return t==null?"any":t instanceof Set?"set":t instanceof Map?"map":t instanceof Date?"date":typeof t=="boolean"?"boolean":typeof t=="string"?"string":typeof t=="object"?"object":Number.isNaN(t)?"any":"number"}var Sn=Object.defineProperty,Qe=Object.getOwnPropertySymbols,Ln=Object.prototype.hasOwnProperty,Mn=Object.prototype.propertyIsEnumerable,Ze=(t,e,n)=>e in t?Sn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,et=(t,e)=>{for(var n in e||(e={}))Ln.call(e,n)&&Ze(t,n,e[n]);if(Qe)for(var n of Qe(e))Mn.call(e,n)&&Ze(t,n,e[n]);return t};const In={boolean:{read:t=>t==="true",write:t=>String(t)},object:{read:t=>JSON.parse(t),write:t=>JSON.stringify(t)},number:{read:t=>Number.parseFloat(t),write:t=>String(t)},any:{read:t=>t,write:t=>String(t)},string:{read:t=>t,write:t=>String(t)},map:{read:t=>new Map(JSON.parse(t)),write:t=>JSON.stringify(Array.from(t.entries()))},set:{read:t=>new Set(JSON.parse(t)),write:t=>JSON.stringify(Array.from(t))},date:{read:t=>new Date(t),write:t=>t.toISOString()}},tt="vueuse-storage";function mt(t,e,n,o={}){var s;const{flush:r="pre",deep:c=!0,listenToStorageChanges:v=!0,writeDefaults:u=!0,mergeDefaults:h=!1,shallow:b,window:k=W,eventFilter:I,onError:V=B=>{console.error(B)}}=o,$=(b?le:L)(e);if(!n)try{n=wn("getDefaultStorage",()=>{var B;return(B=W)==null?void 0:B.localStorage})()}catch(B){V(B)}if(!n)return $;const M=U(e),S=Vn(M),x=(s=o.serializer)!=null?s:In[S],{pause:z,resume:D}=mn($,()=>de($.value),{flush:r,deep:c,eventFilter:I});return k&&v&&(re(k,"storage",we),re(k,tt,Nt)),we(),$;function de(B){try{if(B==null)n.removeItem(t);else{const H=x.write(B),Y=n.getItem(t);Y!==H&&(n.setItem(t,H),k&&k.dispatchEvent(new CustomEvent(tt,{detail:{key:t,oldValue:Y,newValue:H,storageArea:n}})))}}catch(H){V(H)}}function _e(B){const H=B?B.newValue:n.getItem(t);if(H==null)return u&&M!==null&&n.setItem(t,x.write(M)),M;if(!B&&h){const Y=x.read(H);return typeof h=="function"?h(Y,M):S==="object"&&!Array.isArray(Y)?et(et({},M),Y):Y}else return typeof H!="string"?H:x.read(H)}function Nt(B){we(B.detail)}function we(B){if(!(B&&B.storageArea!==n)){if(B&&B.key==null){$.value=M;return}if(!(B&&B.key!==t)){z();try{$.value=_e(B)}catch(H){V(H)}finally{B?at(D):D()}}}}}function Wl(t,e,n={}){const{window:o=W}=n;return mt(t,e,o==null?void 0:o.localStorage,n)}function gt(t){const e=window.getComputedStyle(t);if(e.overflowX==="scroll"||e.overflowY==="scroll"||e.overflowX==="auto"&&t.clientWidth1?!0:(e.preventDefault&&e.preventDefault(),!1)}function Kl(t,e=!1){const n=L(e);let o=null,s;K(dt(t),v=>{if(v){const u=v;s=u.style.overflow,n.value&&(u.style.overflow="hidden")}},{immediate:!0});const r=()=>{const v=U(t);!v||n.value||(Ke&&(o=re(v,"touchmove",u=>{Nn(u)},{passive:!1})),v.style.overflow="hidden",n.value=!0)},c=()=>{const v=U(t);!v||!n.value||(Ke&&(o==null||o()),v.style.overflow=s,n.value=!1)};return Be(c),w({get(){return n.value},set(v){v?r():c()}})}function ql(t,e,n={}){const{window:o=W}=n;return mt(t,e,o==null?void 0:o.sessionStorage,n)}function yt({window:t=W}={}){if(!t)return{x:L(0),y:L(0)};const e=L(t.scrollX),n=L(t.scrollY);return re(t,"scroll",()=>{e.value=t.scrollX,n.value=t.scrollY},{capture:!1,passive:!0}),{x:e,y:n}}function Cn(t,e){let n,o=!1;return()=>{n&&clearTimeout(n),o?n=setTimeout(t,e):(t(),o=!0,setTimeout(()=>{o=!1},e))}}function Le(t){return/^\//.test(t)?t:`/${t}`}function ie(t){if(Ht(t))return t.replace(Dt,"");const{site:e}=N(),{pathname:n,search:o,hash:s}=new URL(t,"http://example.com"),r=n.endsWith("/")||n.endsWith(".html")?t:t.replace(/(?:(^\.+)\/)?.*$/,`$1${n.replace(/(\.md)?$/,e.value.cleanUrls?"":".html")}${o}${s}`);return Ne(r)}function bt(t,e){if(Array.isArray(t))return t;if(t==null)return[];e=Le(e);const n=Object.keys(t).sort((o,s)=>s.split("/").length-o.split("/").length).find(o=>e.startsWith(Le(o)));return n?t[n]:[]}function An(t){const e=[];let n=0;for(const o in t){const s=t[o];if(s.items){n=e.push(s);continue}e[n]||e.push({items:[]}),e[n].items.push(s)}return e}function Tn(t){const e=[];function n(o){for(const s of o)s.text&&s.link&&e.push({text:s.text,link:s.link}),s.items&&n(s.items)}return n(t),e}function Me(t,e){return Array.isArray(e)?e.some(n=>Me(t,n)):te(t,e.link)?!0:e.items?Me(t,e.items):!1}function G(){const t=ce(),{theme:e,frontmatter:n}=N(),o=Se("(min-width: 960px)"),s=L(!1),r=w(()=>{const $=e.value.sidebar,M=t.data.relativePath;return $?bt($,M):[]}),c=w(()=>n.value.sidebar!==!1&&r.value.length>0&&n.value.layout!=="home"),v=w(()=>u?n.value.aside==null?e.value.aside==="left":n.value.aside==="left":!1),u=w(()=>n.value.layout==="home"?!1:n.value.aside!=null?!!n.value.aside:e.value.aside!==!1),h=w(()=>c.value&&o.value),b=w(()=>c.value?An(r.value):[]);function k(){s.value=!0}function I(){s.value=!1}function V(){s.value?I():k()}return{isOpen:s,sidebar:r,sidebarGroups:b,hasSidebar:c,hasAside:u,leftAside:v,isSidebarEnabled:h,open:k,close:I,toggle:V}}function Bn(t,e){let n;ee(()=>{n=t.value?document.activeElement:void 0}),R(()=>{window.addEventListener("keyup",o)}),Ce(()=>{window.removeEventListener("keyup",o)});function o(s){s.key==="Escape"&&t.value&&(e(),n==null||n.focus())}}function xn(t){const{page:e}=N(),n=L(!1),o=w(()=>t.value.collapsed!=null),s=w(()=>!!t.value.link),r=w(()=>te(e.value.relativePath,t.value.link)),c=w(()=>r.value?!0:t.value.items?Me(e.value.relativePath,t.value.items):!1),v=w(()=>!!(t.value.items&&t.value.items.length));ee(()=>{n.value=!!(o.value&&t.value.collapsed)}),ee(()=>{(r.value||c.value)&&(n.value=!1)});function u(){o.value&&(n.value=!n.value)}return{collapsed:n,collapsible:o,isLink:s,isActiveLink:r,hasActiveLink:c,hasChildren:v,toggle:u}}const On=y({__name:"VPSkipLink",setup(t){const e=ce(),n=L();K(()=>e.path,()=>n.value.focus());function o({target:s}){const r=document.querySelector(decodeURIComponent(s.hash));if(r){const c=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",c)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",c),r.focus(),window.scrollTo(0,0)}}return(s,r)=>(a(),l(A,null,[_("span",{ref_key:"backToTop",ref:n,tabindex:"-1"},null,512),_("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:o}," Skip to content ")],64))}});const En=g(On,[["__scopeId","data-v-b8b11faa"]]),Hn={key:0,class:"VPBackdrop"},Dn=y({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(t){return(e,n)=>(a(),P(Ae,{name:"fade"},{default:p(()=>[e.show?(a(),l("div",Hn)):m("",!0)]),_:1}))}});const zn=g(Dn,[["__scopeId","data-v-c79a1216"]]);function Fn(){const t=L(!1);function e(){t.value=!0,window.addEventListener("resize",s)}function n(){t.value=!1,window.removeEventListener("resize",s)}function o(){t.value?n():e()}function s(){window.outerWidth>=768&&n()}const r=ce();return K(()=>r.path,n),{isScreenOpen:t,openScreen:e,closeScreen:n,toggleScreen:o}}function ue({removeCurrent:t=!0,correspondingLink:e=!1}={}){const{site:n,localeIndex:o,page:s,theme:r}=N(),c=w(()=>{var u,h;return{label:(u=n.value.locales[o.value])==null?void 0:u.label,link:((h=n.value.locales[o.value])==null?void 0:h.link)||(o.value==="root"?"/":`/${o.value}/`)}});return{localeLinks:w(()=>Object.entries(n.value.locales).flatMap(([u,h])=>t&&c.value.label===h.label?[]:{text:h.label,link:jn(h.link||(u==="root"?"/":`/${u}/`),r.value.i18nRouting!==!1&&e,s.value.relativePath.slice(c.value.link.length-1),!n.value.cleanUrls)})),currentLang:c}}function jn(t,e,n,o){return e?t.replace(/\/$/,"")+Le(n.replace(/(^|\/)?index.md$/,"$1").replace(/\.md$/,o?".html":"")):t}const Gn=["src","alt"],Rn={inheritAttrs:!1},Un=y({...Rn,__name:"VPImage",props:{image:{},alt:{}},setup(t){return(e,n)=>{const o=X("VPImage",!0);return e.image?(a(),l(A,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),l("img",fe({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:i(Ne)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,Gn)):(a(),l(A,{key:1},[f(o,fe({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),f(o,fe({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):m("",!0)}}});const xe=g(Un,[["__scopeId","data-v-6db2186b"]]),Wn=["href"],Kn=y({__name:"VPNavBarTitle",setup(t){const{site:e,theme:n}=N(),{hasSidebar:o}=G(),{currentLang:s}=ue();return(r,c)=>(a(),l("div",{class:T(["VPNavBarTitle",{"has-sidebar":i(o)}])},[_("a",{class:"title",href:i(ie)(i(s).link)},[d(r.$slots,"nav-bar-title-before",{},void 0,!0),i(n).logo?(a(),P(xe,{key:0,class:"logo",image:i(n).logo},null,8,["image"])):m("",!0),i(n).siteTitle?(a(),l(A,{key:1},[O(C(i(n).siteTitle),1)],64)):i(n).siteTitle===void 0?(a(),l(A,{key:2},[O(C(i(e).title),1)],64)):m("",!0),d(r.$slots,"nav-bar-title-after",{},void 0,!0)],8,Wn)],2))}});const qn=g(Kn,[["__scopeId","data-v-4d981103"]]);const Yn={type:"button",class:"DocSearch DocSearch-Button","aria-label":"Search"},Jn={class:"DocSearch-Button-Container"},Xn=_("svg",{class:"DocSearch-Search-Icon",width:"20",height:"20",viewBox:"0 0 20 20","aria-label":"search icon"},[_("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none","fill-rule":"evenodd","stroke-linecap":"round","stroke-linejoin":"round"})],-1),Qn={class:"DocSearch-Button-Placeholder"},Zn=_("span",{class:"DocSearch-Button-Keys"},[_("kbd",{class:"DocSearch-Button-Key"}),_("kbd",{class:"DocSearch-Button-Key"},"K")],-1),nt=y({__name:"VPNavBarSearchButton",props:{placeholder:{}},setup(t){return(e,n)=>(a(),l("button",Yn,[_("span",Jn,[Xn,_("span",Qn,C(e.placeholder),1)]),Zn]))}});const eo={id:"local-search"},to={key:1,id:"docsearch"},no=y({__name:"VPNavBarSearch",setup(t){const e=zt(()=>Ft(()=>import("./VPLocalSearchBox.12a3dd91.js"),["assets/chunks/VPLocalSearchBox.12a3dd91.js","assets/chunks/framework.dc35932b.js"])),n=()=>null,{theme:o,localeIndex:s}=N(),r=L(!1),c=L(!1),v=w(()=>{var M,S,x,z,D,de,_e;const $=((M=o.value.search)==null?void 0:M.options)??o.value.algolia;return((D=(z=(x=(S=$==null?void 0:$.locales)==null?void 0:S[s.value])==null?void 0:x.translations)==null?void 0:z.button)==null?void 0:D.buttonText)||((_e=(de=$==null?void 0:$.translations)==null?void 0:de.button)==null?void 0:_e.buttonText)||"Search"});R(()=>{});function u(){r.value||(r.value=!0,setTimeout(h,16))}function h(){const $=new Event("keydown");$.key="k",$.metaKey=!0,window.dispatchEvent($),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||h()},16)}function b($){const M=$.target,S=M.tagName;return M.isContentEditable||S==="INPUT"||S==="SELECT"||S==="TEXTAREA"}const k=L(!1);Xe("k",$=>{($.ctrlKey||$.metaKey)&&($.preventDefault(),k.value=!0)}),Xe("/",$=>{b($)||($.preventDefault(),k.value=!0)});const I=L("'Meta'");R(()=>{I.value=/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?"'⌘'":"'Ctrl'"});const V="local";return($,M)=>{var S;return a(),l("div",{class:"VPNavBarSearch",style:rt({"--vp-meta-key":I.value})},[i(V)==="local"?(a(),l(A,{key:0},[k.value?(a(),P(i(e),{key:0,placeholder:v.value,onClose:M[0]||(M[0]=x=>k.value=!1)},null,8,["placeholder"])):m("",!0),_("div",eo,[f(nt,{placeholder:v.value,onClick:M[1]||(M[1]=x=>k.value=!0)},null,8,["placeholder"])])],64)):i(V)==="algolia"?(a(),l(A,{key:1},[r.value?(a(),P(i(n),{key:0,algolia:((S=i(o).search)==null?void 0:S.options)??i(o).algolia,onVnodeBeforeMount:M[2]||(M[2]=x=>c.value=!0)},null,8,["algolia"])):m("",!0),c.value?m("",!0):(a(),l("div",to,[f(nt,{placeholder:v.value,onClick:u},null,8,["placeholder"])]))],64)):m("",!0)],4)}}});const oo={},so={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",height:"24px",viewBox:"0 0 24 24",width:"24px"},ao=_("path",{d:"M0 0h24v24H0V0z",fill:"none"},null,-1),ro=_("path",{d:"M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"},null,-1),io=[ao,ro];function lo(t,e){return a(),l("svg",so,io)}const co=g(oo,[["render",lo]]),uo=y({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(t){const e=t,n=w(()=>e.tag??e.href?"a":"span"),o=w(()=>e.href&&it.test(e.href));return(s,r)=>(a(),P(Q(n.value),{class:T(["VPLink",{link:s.href}]),href:s.href?i(ie)(s.href):void 0,target:s.target||(o.value?"_blank":void 0),rel:s.rel||(o.value?"noreferrer":void 0)},{default:p(()=>[d(s.$slots,"default",{},void 0,!0),o.value&&!s.noIcon?(a(),P(co,{key:0,class:"icon"})):m("",!0)]),_:3},8,["class","href","target","rel"]))}});const q=g(uo,[["__scopeId","data-v-8f4dc553"]]),_o=y({__name:"VPNavBarMenuLink",props:{item:{}},setup(t){const{page:e}=N();return(n,o)=>(a(),P(q,{class:T({VPNavBarMenuLink:!0,active:i(te)(i(e).relativePath,n.item.activeMatch||n.item.link,!!n.item.activeMatch)}),href:n.item.link,target:n.item.target,rel:n.item.rel,tabindex:"0"},{default:p(()=>[O(C(n.item.text),1)]),_:1},8,["class","href","target","rel"]))}});const vo=g(_o,[["__scopeId","data-v-5e623618"]]),Oe=L();let $t=!1,Ve=0;function po(t){const e=L(!1);if(lt){!$t&&fo(),Ve++;const n=K(Oe,o=>{var s,r,c;o===t.el.value||(s=t.el.value)!=null&&s.contains(o)?(e.value=!0,(r=t.onFocus)==null||r.call(t)):(e.value=!1,(c=t.onBlur)==null||c.call(t))});Ce(()=>{n(),Ve--,Ve||ho()})}return Ie(e)}function fo(){document.addEventListener("focusin",kt),$t=!0,Oe.value=document.activeElement}function ho(){document.removeEventListener("focusin",kt)}function kt(){Oe.value=document.activeElement}const mo={},go={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},yo=_("path",{d:"M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"},null,-1),bo=[yo];function $o(t,e){return a(),l("svg",go,bo)}const Pt=g(mo,[["render",$o]]),ko={},Po={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},wo=_("circle",{cx:"12",cy:"12",r:"2"},null,-1),Vo=_("circle",{cx:"19",cy:"12",r:"2"},null,-1),So=_("circle",{cx:"5",cy:"12",r:"2"},null,-1),Lo=[wo,Vo,So];function Mo(t,e){return a(),l("svg",Po,Lo)}const Io=g(ko,[["render",Mo]]),No={class:"VPMenuLink"},Co=y({__name:"VPMenuLink",props:{item:{}},setup(t){const{page:e}=N();return(n,o)=>(a(),l("div",No,[f(q,{class:T({active:i(te)(i(e).relativePath,n.item.activeMatch||n.item.link,!!n.item.activeMatch)}),href:n.item.link,target:n.item.target,rel:n.item.rel},{default:p(()=>[O(C(n.item.text),1)]),_:1},8,["class","href","target","rel"])]))}});const ke=g(Co,[["__scopeId","data-v-2f2cfafc"]]),Ao={class:"VPMenuGroup"},To={key:0,class:"title"},Bo=y({__name:"VPMenuGroup",props:{text:{},items:{}},setup(t){return(e,n)=>(a(),l("div",Ao,[e.text?(a(),l("p",To,C(e.text),1)):m("",!0),(a(!0),l(A,null,E(e.items,o=>(a(),l(A,null,["link"in o?(a(),P(ke,{key:0,item:o},null,8,["item"])):m("",!0)],64))),256))]))}});const xo=g(Bo,[["__scopeId","data-v-69e747b5"]]),Oo={class:"VPMenu"},Eo={key:0,class:"items"},Ho=y({__name:"VPMenu",props:{items:{}},setup(t){return(e,n)=>(a(),l("div",Oo,[e.items?(a(),l("div",Eo,[(a(!0),l(A,null,E(e.items,o=>(a(),l(A,{key:o.text},["link"in o?(a(),P(ke,{key:0,item:o},null,8,["item"])):(a(),P(xo,{key:1,text:o.text,items:o.items},null,8,["text","items"]))],64))),128))])):m("",!0),d(e.$slots,"default",{},void 0,!0)]))}});const Do=g(Ho,[["__scopeId","data-v-e7ea1737"]]),zo=["aria-expanded","aria-label"],Fo={key:0,class:"text"},jo={class:"menu"},Go=y({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(t){const e=L(!1),n=L();po({el:n,onBlur:o});function o(){e.value=!1}return(s,r)=>(a(),l("div",{class:"VPFlyout",ref_key:"el",ref:n,onMouseenter:r[1]||(r[1]=c=>e.value=!0),onMouseleave:r[2]||(r[2]=c=>e.value=!1)},[_("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":s.label,onClick:r[0]||(r[0]=c=>e.value=!e.value)},[s.button||s.icon?(a(),l("span",Fo,[s.icon?(a(),P(Q(s.icon),{key:0,class:"option-icon"})):m("",!0),O(" "+C(s.button)+" ",1),f(Pt,{class:"text-icon"})])):(a(),P(Io,{key:1,class:"icon"}))],8,zo),_("div",jo,[f(Do,{items:s.items},{default:p(()=>[d(s.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}});const Ee=g(Go,[["__scopeId","data-v-764effdf"]]),Ro=y({__name:"VPNavBarMenuGroup",props:{item:{}},setup(t){const{page:e}=N();return(n,o)=>(a(),P(Ee,{class:T({VPNavBarMenuGroup:!0,active:i(te)(i(e).relativePath,n.item.activeMatch,!!n.item.activeMatch)}),button:n.item.text,items:n.item.items},null,8,["class","button","items"]))}}),Uo=t=>(F("data-v-7f418b0f"),t=t(),j(),t),Wo={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Ko=Uo(()=>_("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),qo=y({__name:"VPNavBarMenu",setup(t){const{theme:e}=N();return(n,o)=>i(e).nav?(a(),l("nav",Wo,[Ko,(a(!0),l(A,null,E(i(e).nav,s=>(a(),l(A,{key:s.text},["link"in s?(a(),P(vo,{key:0,item:s},null,8,["item"])):(a(),P(Ro,{key:1,item:s},null,8,["item"]))],64))),128))])):m("",!0)}});const Yo=g(qo,[["__scopeId","data-v-7f418b0f"]]),Jo={},Xo={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Qo=_("path",{d:"M0 0h24v24H0z",fill:"none"},null,-1),Zo=_("path",{d:" M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z ",class:"css-c4d79v"},null,-1),es=[Qo,Zo];function ts(t,e){return a(),l("svg",Xo,es)}const wt=g(Jo,[["render",ts]]),ns={class:"items"},os={class:"title"},ss=y({__name:"VPNavBarTranslations",setup(t){const{theme:e}=N(),{localeLinks:n,currentLang:o}=ue({correspondingLink:!0});return(s,r)=>i(n).length&&i(o).label?(a(),P(Ee,{key:0,class:"VPNavBarTranslations",icon:wt,label:i(e).langMenuLabel||"Change language"},{default:p(()=>[_("div",ns,[_("p",os,C(i(o).label),1),(a(!0),l(A,null,E(i(n),c=>(a(),P(ke,{key:c.link,item:c},null,8,["item"]))),128))])]),_:1},8,["label"])):m("",!0)}});const as=g(ss,[["__scopeId","data-v-74abcbb9"]]);const rs={},is={class:"VPSwitch",type:"button",role:"switch"},ls={class:"check"},cs={key:0,class:"icon"};function us(t,e){return a(),l("button",is,[_("span",ls,[t.$slots.default?(a(),l("span",cs,[d(t.$slots,"default",{},void 0,!0)])):m("",!0)])])}const ds=g(rs,[["render",us],["__scopeId","data-v-f3c41672"]]),_s={},vs={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},ps=jt('',9),fs=[ps];function hs(t,e){return a(),l("svg",vs,fs)}const ms=g(_s,[["render",hs]]),gs={},ys={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},bs=_("path",{d:"M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"},null,-1),$s=[bs];function ks(t,e){return a(),l("svg",ys,$s)}const Ps=g(gs,[["render",ks]]),ws=y({__name:"VPSwitchAppearance",setup(t){const{site:e,isDark:n}=N(),o=L(!1),s=lt?r():()=>{};R(()=>{o.value=document.documentElement.classList.contains("dark")});function r(){const c=window.matchMedia("(prefers-color-scheme: dark)"),v=document.documentElement.classList;let u=localStorage.getItem(We),h=e.value.appearance==="dark"&&u==null||(u==="auto"||u==null?c.matches:u==="dark");c.onchange=I=>{u==="auto"&&k(h=I.matches)};function b(){k(h=!h),u=h?c.matches?"auto":"dark":c.matches?"light":"auto",localStorage.setItem(We,u)}function k(I){const V=document.createElement("style");V.type="text/css",V.appendChild(document.createTextNode(`:not(.VPSwitchAppearance):not(.VPSwitchAppearance *) { + -webkit-transition: none !important; + -moz-transition: none !important; + -o-transition: none !important; + -ms-transition: none !important; + transition: none !important; +}`)),document.head.appendChild(V),o.value=I,v[I?"add":"remove"]("dark"),window.getComputedStyle(V).opacity,document.head.removeChild(V)}return b}return K(o,c=>{n.value=c}),(c,v)=>(a(),P(ds,{title:"toggle dark mode",class:"VPSwitchAppearance","aria-checked":o.value,onClick:i(s)},{default:p(()=>[f(ms,{class:"sun"}),f(Ps,{class:"moon"})]),_:1},8,["aria-checked","onClick"]))}});const He=g(ws,[["__scopeId","data-v-82b282f1"]]),Vs={key:0,class:"VPNavBarAppearance"},Ss=y({__name:"VPNavBarAppearance",setup(t){const{site:e}=N();return(n,o)=>i(e).appearance?(a(),l("div",Vs,[f(He)])):m("",!0)}});const Ls=g(Ss,[["__scopeId","data-v-f6a63727"]]),Ms={discord:'Discord',facebook:'Facebook',github:'GitHub',instagram:'Instagram',linkedin:'LinkedIn',mastodon:'Mastodon',slack:'Slack',twitter:'Twitter',youtube:'YouTube'},Is=["href","aria-label","innerHTML"],Ns=y({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(t){const e=t,n=w(()=>typeof e.icon=="object"?e.icon.svg:Ms[e.icon]);return(o,s)=>(a(),l("a",{class:"VPSocialLink",href:o.link,"aria-label":o.ariaLabel??(typeof o.icon=="string"?o.icon:""),target:"_blank",rel:"noopener",innerHTML:n.value},null,8,Is))}});const Cs=g(Ns,[["__scopeId","data-v-36371990"]]),As={class:"VPSocialLinks"},Ts=y({__name:"VPSocialLinks",props:{links:{}},setup(t){return(e,n)=>(a(),l("div",As,[(a(!0),l(A,null,E(e.links,({link:o,icon:s,ariaLabel:r})=>(a(),P(Cs,{key:o,icon:s,link:o,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}});const De=g(Ts,[["__scopeId","data-v-7bc22406"]]),Bs=y({__name:"VPNavBarSocialLinks",setup(t){const{theme:e}=N();return(n,o)=>i(e).socialLinks?(a(),P(De,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):m("",!0)}});const xs=g(Bs,[["__scopeId","data-v-0394ad82"]]),Os={key:0,class:"group translations"},Es={class:"trans-title"},Hs={key:1,class:"group"},Ds={class:"item appearance"},zs={class:"label"},Fs={class:"appearance-action"},js={key:2,class:"group"},Gs={class:"item social-links"},Rs=y({__name:"VPNavBarExtra",setup(t){const{site:e,theme:n}=N(),{localeLinks:o,currentLang:s}=ue({correspondingLink:!0}),r=w(()=>o.value.length&&s.value.label||e.value.appearance||n.value.socialLinks);return(c,v)=>r.value?(a(),P(Ee,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:p(()=>[i(o).length&&i(s).label?(a(),l("div",Os,[_("p",Es,C(i(s).label),1),(a(!0),l(A,null,E(i(o),u=>(a(),P(ke,{key:u.link,item:u},null,8,["item"]))),128))])):m("",!0),i(e).appearance?(a(),l("div",Hs,[_("div",Ds,[_("p",zs,C(i(n).darkModeSwitchLabel||"Appearance"),1),_("div",Fs,[f(He)])])])):m("",!0),i(n).socialLinks?(a(),l("div",js,[_("div",Gs,[f(De,{class:"social-links-list",links:i(n).socialLinks},null,8,["links"])])])):m("",!0)]),_:1})):m("",!0)}});const Us=g(Rs,[["__scopeId","data-v-40855f84"]]),Ws=t=>(F("data-v-e5dd9c1c"),t=t(),j(),t),Ks=["aria-expanded"],qs=Ws(()=>_("span",{class:"container"},[_("span",{class:"top"}),_("span",{class:"middle"}),_("span",{class:"bottom"})],-1)),Ys=[qs],Js=y({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(t){return(e,n)=>(a(),l("button",{type:"button",class:T(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:n[0]||(n[0]=o=>e.$emit("click"))},Ys,10,Ks))}});const Xs=g(Js,[["__scopeId","data-v-e5dd9c1c"]]),Qs=t=>(F("data-v-7683ced7"),t=t(),j(),t),Zs={class:"container"},ea={class:"title"},ta={class:"content"},na=Qs(()=>_("div",{class:"curtain"},null,-1)),oa={class:"content-body"},sa=y({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(t){const{y:e}=yt(),{hasSidebar:n}=G(),o=w(()=>({"has-sidebar":n.value,fill:e.value>0}));return(s,r)=>(a(),l("div",{class:T(["VPNavBar",o.value])},[_("div",Zs,[_("div",ea,[f(qn,null,{"nav-bar-title-before":p(()=>[d(s.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[d(s.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),_("div",ta,[na,_("div",oa,[d(s.$slots,"nav-bar-content-before",{},void 0,!0),f(no,{class:"search"}),f(Yo,{class:"menu"}),f(as,{class:"translations"}),f(Ls,{class:"appearance"}),f(xs,{class:"social-links"}),f(Us,{class:"extra"}),d(s.$slots,"nav-bar-content-after",{},void 0,!0),f(Xs,{class:"hamburger",active:s.isScreenOpen,onClick:r[0]||(r[0]=c=>s.$emit("toggle-screen"))},null,8,["active"])])])])],2))}});const aa=g(sa,[["__scopeId","data-v-7683ced7"]]);function ra(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e1),Z=[],be=!1,Fe=-1,ne=void 0,J=void 0,oe=void 0,Vt=function(e){return Z.some(function(n){return!!(n.options.allowTouchMove&&n.options.allowTouchMove(e))})},$e=function(e){var n=e||window.event;return Vt(n.target)||n.touches.length>1?!0:(n.preventDefault&&n.preventDefault(),!1)},ia=function(e){if(oe===void 0){var n=!!e&&e.reserveScrollBarGap===!0,o=window.innerWidth-document.documentElement.clientWidth;if(n&&o>0){var s=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right"),10);oe=document.body.style.paddingRight,document.body.style.paddingRight=s+o+"px"}}ne===void 0&&(ne=document.body.style.overflow,document.body.style.overflow="hidden")},la=function(){oe!==void 0&&(document.body.style.paddingRight=oe,oe=void 0),ne!==void 0&&(document.body.style.overflow=ne,ne=void 0)},ca=function(){return window.requestAnimationFrame(function(){if(J===void 0){J={position:document.body.style.position,top:document.body.style.top,left:document.body.style.left};var e=window,n=e.scrollY,o=e.scrollX,s=e.innerHeight;document.body.style.position="fixed",document.body.style.top=-n,document.body.style.left=-o,setTimeout(function(){return window.requestAnimationFrame(function(){var r=s-window.innerHeight;r&&n>=s&&(document.body.style.top=-(n+r))})},300)}})},ua=function(){if(J!==void 0){var e=-parseInt(document.body.style.top,10),n=-parseInt(document.body.style.left,10);document.body.style.position=J.position,document.body.style.top=J.top,document.body.style.left=J.left,window.scrollTo(n,e),J=void 0}},da=function(e){return e?e.scrollHeight-e.scrollTop<=e.clientHeight:!1},_a=function(e,n){var o=e.targetTouches[0].clientY-Fe;return Vt(e.target)?!1:n&&n.scrollTop===0&&o>0||da(n)&&o<0?$e(e):(e.stopPropagation(),!0)},St=function(e,n){if(!e){console.error("disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.");return}if(!Z.some(function(s){return s.targetElement===e})){var o={targetElement:e,options:n||{}};Z=[].concat(ra(Z),[o]),ye?ca():ia(n),ye&&(e.ontouchstart=function(s){s.targetTouches.length===1&&(Fe=s.targetTouches[0].clientY)},e.ontouchmove=function(s){s.targetTouches.length===1&&_a(s,e)},be||(document.addEventListener("touchmove",$e,ze?{passive:!1}:void 0),be=!0))}},Lt=function(){ye&&(Z.forEach(function(e){e.targetElement.ontouchstart=null,e.targetElement.ontouchmove=null}),be&&(document.removeEventListener("touchmove",$e,ze?{passive:!1}:void 0),be=!1),Fe=-1),ye?ua():la(),Z=[]};const va=y({__name:"VPNavScreenMenuLink",props:{item:{}},setup(t){const e=Te("close-screen");return(n,o)=>(a(),P(q,{class:"VPNavScreenMenuLink",href:n.item.link,target:n.item.target,rel:n.item.rel,onClick:i(e)},{default:p(()=>[O(C(n.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}});const pa=g(va,[["__scopeId","data-v-30be0acb"]]),fa={},ha={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},ma=_("path",{d:"M18.9,10.9h-6v-6c0-0.6-0.4-1-1-1s-1,0.4-1,1v6h-6c-0.6,0-1,0.4-1,1s0.4,1,1,1h6v6c0,0.6,0.4,1,1,1s1-0.4,1-1v-6h6c0.6,0,1-0.4,1-1S19.5,10.9,18.9,10.9z"},null,-1),ga=[ma];function ya(t,e){return a(),l("svg",ha,ga)}const ba=g(fa,[["render",ya]]),$a=y({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(t){const e=Te("close-screen");return(n,o)=>(a(),P(q,{class:"VPNavScreenMenuGroupLink",href:n.item.link,target:n.item.target,rel:n.item.rel,onClick:i(e)},{default:p(()=>[O(C(n.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}});const Mt=g($a,[["__scopeId","data-v-6656c42a"]]),ka={class:"VPNavScreenMenuGroupSection"},Pa={key:0,class:"title"},wa=y({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(t){return(e,n)=>(a(),l("div",ka,[e.text?(a(),l("p",Pa,C(e.text),1)):m("",!0),(a(!0),l(A,null,E(e.items,o=>(a(),P(Mt,{key:o.text,item:o},null,8,["item"]))),128))]))}});const Va=g(wa,[["__scopeId","data-v-8133b170"]]),Sa=["aria-controls","aria-expanded"],La={class:"button-text"},Ma=["id"],Ia={key:1,class:"group"},Na=y({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(t){const e=t,n=L(!1),o=w(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function s(){n.value=!n.value}return(r,c)=>(a(),l("div",{class:T(["VPNavScreenMenuGroup",{open:n.value}])},[_("button",{class:"button","aria-controls":o.value,"aria-expanded":n.value,onClick:s},[_("span",La,C(r.text),1),f(ba,{class:"button-icon"})],8,Sa),_("div",{id:o.value,class:"items"},[(a(!0),l(A,null,E(r.items,v=>(a(),l(A,{key:v.text},["link"in v?(a(),l("div",{key:v.text,class:"item"},[f(Mt,{item:v},null,8,["item"])])):(a(),l("div",Ia,[f(Va,{text:v.text,items:v.items},null,8,["text","items"])]))],64))),128))],8,Ma)],2))}});const Ca=g(Na,[["__scopeId","data-v-338a1689"]]),Aa={key:0,class:"VPNavScreenMenu"},Ta=y({__name:"VPNavScreenMenu",setup(t){const{theme:e}=N();return(n,o)=>i(e).nav?(a(),l("nav",Aa,[(a(!0),l(A,null,E(i(e).nav,s=>(a(),l(A,{key:s.text},["link"in s?(a(),P(pa,{key:0,item:s},null,8,["item"])):(a(),P(Ca,{key:1,text:s.text||"",items:s.items},null,8,["text","items"]))],64))),128))])):m("",!0)}}),Ba={key:0,class:"VPNavScreenAppearance"},xa={class:"text"},Oa=y({__name:"VPNavScreenAppearance",setup(t){const{site:e,theme:n}=N();return(o,s)=>i(e).appearance?(a(),l("div",Ba,[_("p",xa,C(i(n).darkModeSwitchLabel||"Appearance"),1),f(He)])):m("",!0)}});const Ea=g(Oa,[["__scopeId","data-v-add8f686"]]),Ha={class:"list"},Da=y({__name:"VPNavScreenTranslations",setup(t){const{localeLinks:e,currentLang:n}=ue({correspondingLink:!0}),o=L(!1);function s(){o.value=!o.value}return(r,c)=>i(e).length&&i(n).label?(a(),l("div",{key:0,class:T(["VPNavScreenTranslations",{open:o.value}])},[_("button",{class:"title",onClick:s},[f(wt,{class:"icon lang"}),O(" "+C(i(n).label)+" ",1),f(Pt,{class:"icon chevron"})]),_("ul",Ha,[(a(!0),l(A,null,E(i(e),v=>(a(),l("li",{key:v.link,class:"item"},[f(q,{class:"link",href:v.link},{default:p(()=>[O(C(v.text),1)]),_:2},1032,["href"])]))),128))])],2)):m("",!0)}});const za=g(Da,[["__scopeId","data-v-d72aa483"]]),Fa=y({__name:"VPNavScreenSocialLinks",setup(t){const{theme:e}=N();return(n,o)=>i(e).socialLinks?(a(),P(De,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):m("",!0)}}),ja={class:"container"},Ga=y({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(t){const e=L(null);function n(){St(e.value,{reserveScrollBarGap:!0})}function o(){Lt()}return(s,r)=>(a(),P(Ae,{name:"fade",onEnter:n,onAfterLeave:o},{default:p(()=>[s.open?(a(),l("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e},[_("div",ja,[d(s.$slots,"nav-screen-content-before",{},void 0,!0),f(Ta,{class:"menu"}),f(za,{class:"translations"}),f(Ea,{class:"appearance"}),f(Fa,{class:"social-links"}),d(s.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):m("",!0)]),_:3}))}});const Ra=g(Ga,[["__scopeId","data-v-724636ae"]]),Ua={class:"VPNav"},Wa=y({__name:"VPNav",setup(t){const{isScreenOpen:e,closeScreen:n,toggleScreen:o}=Fn();return he("close-screen",n),(s,r)=>(a(),l("header",Ua,[f(aa,{"is-screen-open":i(e),onToggleScreen:i(o)},{"nav-bar-title-before":p(()=>[d(s.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[d(s.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":p(()=>[d(s.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":p(()=>[d(s.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),f(Ra,{open:i(e)},{"nav-screen-content-before":p(()=>[d(s.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":p(()=>[d(s.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])]))}});const Ka=g(Wa,[["__scopeId","data-v-7e5bc4a5"]]);function qa(){const{hasSidebar:t}=G(),e=Se("(min-width: 960px)"),n=Se("(min-width: 1280px)");return{isAsideEnabled:w(()=>!n.value&&!e.value?!1:t.value?n.value:e.value)}}const Ya=71;function je(t){return typeof t.outline=="object"&&!Array.isArray(t.outline)&&t.outline.label||t.outlineTitle||"On this page"}function Ge(t){const e=[...document.querySelectorAll(".VPDoc h2,h3,h4,h5,h6")].filter(n=>n.id&&n.hasChildNodes()).map(n=>{const o=Number(n.tagName[1]);return{title:Ja(n),link:"#"+n.id,level:o}});return Xa(e,t)}function Ja(t){let e="";for(const n of t.childNodes)if(n.nodeType===1){if(n.classList.contains("VPBadge")||n.classList.contains("header-anchor"))continue;e+=n.textContent}else n.nodeType===3&&(e+=n.textContent);return e.trim()}function Xa(t,e){if(e===!1)return[];const n=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[o,s]=typeof n=="number"?[n,n]:n==="deep"?[2,6]:n;t=t.filter(c=>c.level>=o&&c.level<=s);const r=[];e:for(let c=0;c=0;u--){const h=t[u];if(h.level{requestAnimationFrame(r),window.addEventListener("scroll",o)}),Gt(()=>{c(location.hash)}),Ce(()=>{window.removeEventListener("scroll",o)});function r(){if(!n.value)return;const v=[].slice.call(t.value.querySelectorAll(".outline-link")),u=[].slice.call(document.querySelectorAll(".content .header-anchor")).filter(V=>v.some($=>$.hash===V.hash&&V.offsetParent!==null)),h=window.scrollY,b=window.innerHeight,k=document.body.offsetHeight,I=Math.abs(h+b-k)<1;if(u.length&&I){c(u[u.length-1].hash);return}for(let V=0;V{const s=X("VPDocOutlineItem",!0);return a(),l("ul",{class:T(n.root?"root":"nested")},[(a(!0),l(A,null,E(n.headers,({children:r,link:c,title:v})=>(a(),l("li",null,[_("a",{class:"outline-link",href:c,onClick:e,title:v},C(v),9,er),r!=null&&r.length?(a(),P(s,{key:0,headers:r},null,8,["headers"])):m("",!0)]))),256))],2)}}});const Re=g(tr,[["__scopeId","data-v-9a431c33"]]),nr={},or={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},sr=_("path",{d:"M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"},null,-1),ar=[sr];function rr(t,e){return a(),l("svg",or,ar)}const Ue=g(nr,[["render",rr]]),ir=y({__name:"VPLocalNavOutlineDropdown",props:{headers:{}},setup(t){const{theme:e}=N(),n=L(!1),o=L(0),s=L();se(()=>{n.value=!1});function r(){n.value=!n.value,o.value=window.innerHeight+Math.min(window.scrollY-64,0)}function c(u){u.target.classList.contains("outline-link")&&(s.value&&(s.value.style.transition="none"),at(()=>{n.value=!1}))}function v(){n.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(u,h)=>(a(),l("div",{class:"VPLocalNavOutlineDropdown",style:rt({"--vp-vh":o.value+"px"})},[u.headers.length>0?(a(),l("button",{key:0,onClick:r,class:T({open:n.value})},[O(C(i(je)(i(e)))+" ",1),f(Ue,{class:"icon"})],2)):(a(),l("button",{key:1,onClick:v},C(i(e).returnToTopLabel||"Return to top"),1)),f(Ae,{name:"flyout"},{default:p(()=>[n.value?(a(),l("div",{key:0,ref_key:"items",ref:s,class:"items",onClick:c},[_("a",{class:"top-link",href:"#",onClick:v},C(i(e).returnToTopLabel||"Return to top"),1),f(Re,{headers:u.headers},null,8,["headers"])],512)):m("",!0)]),_:1})],4))}});const lr=g(ir,[["__scopeId","data-v-687955bc"]]),cr={},ur={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},dr=_("path",{d:"M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"},null,-1),_r=_("path",{d:"M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"},null,-1),vr=_("path",{d:"M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"},null,-1),pr=_("path",{d:"M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"},null,-1),fr=[dr,_r,vr,pr];function hr(t,e){return a(),l("svg",ur,fr)}const mr=g(cr,[["render",hr]]),gr=["aria-expanded"],yr={class:"menu-text"},br=y({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(t){const{theme:e,frontmatter:n}=N(),{hasSidebar:o}=G(),{y:s}=yt(),r=le([]);se(()=>{r.value=Ge(n.value.outline??e.value.outline)});const c=w(()=>r.value.length===0&&!o.value),v=w(()=>({VPLocalNav:!0,fixed:c.value,"reached-top":s.value>=64}));return(u,h)=>i(n).layout!=="home"&&(!c.value||i(s)>=64)?(a(),l("div",{key:0,class:T(v.value)},[i(o)?(a(),l("button",{key:0,class:"menu","aria-expanded":u.open,"aria-controls":"VPSidebarNav",onClick:h[0]||(h[0]=b=>u.$emit("open-menu"))},[f(mr,{class:"menu-icon"}),_("span",yr,C(i(e).sidebarMenuLabel||"Menu"),1)],8,gr)):m("",!0),f(lr,{headers:r.value},null,8,["headers"])],2)):m("",!0)}});const $r=g(br,[["__scopeId","data-v-9074c407"]]),kr=t=>(F("data-v-c4656e6d"),t=t(),j(),t),Pr=["role","tabindex"],wr=kr(()=>_("div",{class:"indicator"},null,-1)),Vr=["onKeydown"],Sr={key:1,class:"items"},Lr=y({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(t){const e=t,{collapsed:n,collapsible:o,isLink:s,isActiveLink:r,hasActiveLink:c,hasChildren:v,toggle:u}=xn(w(()=>e.item)),h=w(()=>v.value?"section":"div"),b=w(()=>s.value?"a":"div"),k=w(()=>v.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),I=w(()=>s.value?void 0:"button"),V=w(()=>[[`level-${e.depth}`],{collapsible:o.value},{collapsed:n.value},{"is-link":s.value},{"is-active":r.value},{"has-active":c.value}]);function $(S){"key"in S&&S.key!=="Enter"||!e.item.link&&u()}function M(){e.item.link&&u()}return(S,x)=>{const z=X("VPSidebarItem",!0);return a(),P(Q(h.value),{class:T(["VPSidebarItem",V.value])},{default:p(()=>[S.item.text?(a(),l("div",fe({key:0,class:"item",role:I.value},Rt(S.item.items?{click:$,keydown:$}:{},!0),{tabindex:S.item.items&&0}),[wr,S.item.link?(a(),P(q,{key:0,tag:b.value,class:"link",href:S.item.link},{default:p(()=>[(a(),P(Q(k.value),{class:"text",innerHTML:S.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href"])):(a(),P(Q(k.value),{key:1,class:"text",innerHTML:S.item.text},null,8,["innerHTML"])),S.item.collapsed!=null?(a(),l("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:M,onKeydown:Ut(M,["enter"]),tabindex:"0"},[f(Ue,{class:"caret-icon"})],40,Vr)):m("",!0)],16,Pr)):m("",!0),S.item.items&&S.item.items.length?(a(),l("div",Sr,[S.depth<5?(a(!0),l(A,{key:0},E(S.item.items,D=>(a(),P(z,{key:D.text,item:D,depth:S.depth+1},null,8,["item","depth"]))),128)):m("",!0)])):m("",!0)]),_:1},8,["class"])}}});const Mr=g(Lr,[["__scopeId","data-v-c4656e6d"]]),It=t=>(F("data-v-af16598e"),t=t(),j(),t),Ir=It(()=>_("div",{class:"curtain"},null,-1)),Nr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Cr=It(()=>_("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),Ar=y({__name:"VPSidebar",props:{open:{type:Boolean}},setup(t){const e=t,{sidebarGroups:n,hasSidebar:o}=G();let s=L(null);function r(){St(s.value,{reserveScrollBarGap:!0})}function c(){Lt()}return Wt(async()=>{var v;e.open?(r(),(v=s.value)==null||v.focus()):c()}),(v,u)=>i(o)?(a(),l("aside",{key:0,class:T(["VPSidebar",{open:v.open}]),ref_key:"navEl",ref:s,onClick:u[0]||(u[0]=Kt(()=>{},["stop"]))},[Ir,_("nav",Nr,[Cr,d(v.$slots,"sidebar-nav-before",{},void 0,!0),(a(!0),l(A,null,E(i(n),h=>(a(),l("div",{key:h.text,class:"group"},[f(Mr,{item:h,depth:0},null,8,["item"])]))),128)),d(v.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):m("",!0)}});const Tr=g(Ar,[["__scopeId","data-v-af16598e"]]),Br={},xr={class:"VPPage"};function Or(t,e){const n=X("Content");return a(),l("div",xr,[d(t.$slots,"page-top"),f(n),d(t.$slots,"page-bottom")])}const Er=g(Br,[["render",Or]]),Hr=y({__name:"VPButton",props:{tag:{},size:{},theme:{},text:{},href:{}},setup(t){const e=t,n=w(()=>[e.size??"medium",e.theme??"brand"]),o=w(()=>e.href&&it.test(e.href)),s=w(()=>e.tag?e.tag:e.href?"a":"button");return(r,c)=>(a(),P(Q(s.value),{class:T(["VPButton",n.value]),href:r.href?i(ie)(r.href):void 0,target:o.value?"_blank":void 0,rel:o.value?"noreferrer":void 0},{default:p(()=>[O(C(r.text),1)]),_:1},8,["class","href","target","rel"]))}});const Dr=g(Hr,[["__scopeId","data-v-567ba664"]]),zr=t=>(F("data-v-fd2650d5"),t=t(),j(),t),Fr={class:"container"},jr={class:"main"},Gr={key:0,class:"name"},Rr={class:"clip"},Ur={key:1,class:"text"},Wr={key:2,class:"tagline"},Kr={key:0,class:"actions"},qr={key:0,class:"image"},Yr={class:"image-container"},Jr=zr(()=>_("div",{class:"image-bg"},null,-1)),Xr=y({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(t){const e=Te("hero-image-slot-exists");return(n,o)=>(a(),l("div",{class:T(["VPHero",{"has-image":n.image||i(e)}])},[_("div",Fr,[_("div",jr,[d(n.$slots,"home-hero-info",{},()=>[n.name?(a(),l("h1",Gr,[_("span",Rr,C(n.name),1)])):m("",!0),n.text?(a(),l("p",Ur,C(n.text),1)):m("",!0),n.tagline?(a(),l("p",Wr,C(n.tagline),1)):m("",!0)],!0),n.actions?(a(),l("div",Kr,[(a(!0),l(A,null,E(n.actions,s=>(a(),l("div",{key:s.link,class:"action"},[f(Dr,{tag:"a",size:"medium",theme:s.theme,text:s.text,href:s.link},null,8,["theme","text","href"])]))),128))])):m("",!0)]),n.image||i(e)?(a(),l("div",qr,[_("div",Yr,[Jr,d(n.$slots,"home-hero-image",{},()=>[n.image?(a(),P(xe,{key:0,class:"image-src",image:n.image},null,8,["image"])):m("",!0)],!0)])])):m("",!0)])],2))}});const Qr=g(Xr,[["__scopeId","data-v-fd2650d5"]]),Zr=y({__name:"VPHomeHero",setup(t){const{frontmatter:e}=N();return(n,o)=>i(e).hero?(a(),P(Qr,{key:0,class:"VPHomeHero",name:i(e).hero.name,text:i(e).hero.text,tagline:i(e).hero.tagline,image:i(e).hero.image,actions:i(e).hero.actions},{"home-hero-info":p(()=>[d(n.$slots,"home-hero-info")]),"home-hero-image":p(()=>[d(n.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):m("",!0)}}),ei={},ti={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},ni=_("path",{d:"M19.9,12.4c0.1-0.2,0.1-0.5,0-0.8c-0.1-0.1-0.1-0.2-0.2-0.3l-7-7c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4l5.3,5.3H5c-0.6,0-1,0.4-1,1s0.4,1,1,1h11.6l-5.3,5.3c-0.4,0.4-0.4,1,0,1.4c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3l7-7C19.8,12.6,19.9,12.5,19.9,12.4z"},null,-1),oi=[ni];function si(t,e){return a(),l("svg",ti,oi)}const ai=g(ei,[["render",si]]),ri={class:"box"},ii=["innerHTML"],li=["innerHTML"],ci=["innerHTML"],ui={key:3,class:"link-text"},di={class:"link-text-value"},_i=y({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{}},setup(t){return(e,n)=>(a(),P(q,{class:"VPFeature",href:e.link,"no-icon":!0},{default:p(()=>[_("article",ri,[typeof e.icon=="object"?(a(),P(xe,{key:0,image:e.icon,alt:e.icon.alt,height:e.icon.height,width:e.icon.width},null,8,["image","alt","height","width"])):e.icon?(a(),l("div",{key:1,class:"icon",innerHTML:e.icon},null,8,ii)):m("",!0),_("h2",{class:"title",innerHTML:e.title},null,8,li),e.details?(a(),l("p",{key:2,class:"details",innerHTML:e.details},null,8,ci)):m("",!0),e.linkText?(a(),l("div",ui,[_("p",di,[O(C(e.linkText)+" ",1),f(ai,{class:"link-text-icon"})])])):m("",!0)])]),_:1},8,["href"]))}});const vi=g(_i,[["__scopeId","data-v-837f6cca"]]),pi={key:0,class:"VPFeatures"},fi={class:"container"},hi={class:"items"},mi=y({__name:"VPFeatures",props:{features:{}},setup(t){const e=t,n=w(()=>{const o=e.features.length;if(o){if(o===2)return"grid-2";if(o===3)return"grid-3";if(o%3===0)return"grid-6";if(o>3)return"grid-4"}else return});return(o,s)=>o.features?(a(),l("div",pi,[_("div",fi,[_("div",hi,[(a(!0),l(A,null,E(o.features,r=>(a(),l("div",{key:r.title,class:T(["item",[n.value]])},[f(vi,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText},null,8,["icon","title","details","link","link-text"])],2))),128))])])])):m("",!0)}});const gi=g(mi,[["__scopeId","data-v-ba861f23"]]),yi=y({__name:"VPHomeFeatures",setup(t){const{frontmatter:e}=N();return(n,o)=>i(e).features?(a(),P(gi,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):m("",!0)}}),bi={class:"VPHome"},$i=y({__name:"VPHome",setup(t){return(e,n)=>{const o=X("Content");return a(),l("div",bi,[d(e.$slots,"home-hero-before",{},void 0,!0),f(Zr,null,{"home-hero-info":p(()=>[d(e.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":p(()=>[d(e.$slots,"home-hero-image",{},void 0,!0)]),_:3}),d(e.$slots,"home-hero-after",{},void 0,!0),d(e.$slots,"home-features-before",{},void 0,!0),f(yi),d(e.$slots,"home-features-after",{},void 0,!0),f(o)])}}});const ki=g($i,[["__scopeId","data-v-d82743a8"]]),Pi=t=>(F("data-v-ff0f39c8"),t=t(),j(),t),wi={class:"content"},Vi={class:"outline-title"},Si={"aria-labelledby":"doc-outline-aria-label"},Li=Pi(()=>_("span",{class:"visually-hidden",id:"doc-outline-aria-label"}," Table of Contents for current page ",-1)),Mi=y({__name:"VPDocAsideOutline",setup(t){const{frontmatter:e,theme:n}=N(),o=le([]);se(()=>{o.value=Ge(e.value.outline??n.value.outline)});const s=L(),r=L();return Qa(s,r),(c,v)=>(a(),l("div",{class:T(["VPDocAsideOutline",{"has-outline":o.value.length>0}]),ref_key:"container",ref:s},[_("div",wi,[_("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),_("div",Vi,C(i(je)(i(n))),1),_("nav",Si,[Li,f(Re,{headers:o.value,root:!0},null,8,["headers"])])])],2))}});const Ii=g(Mi,[["__scopeId","data-v-ff0f39c8"]]),Ni={class:"VPDocAsideCarbonAds"},Ci=y({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(t){const e=()=>null;return(n,o)=>(a(),l("div",Ni,[f(i(e),{"carbon-ads":n.carbonAds},null,8,["carbon-ads"])]))}}),Ai=t=>(F("data-v-3f215769"),t=t(),j(),t),Ti={class:"VPDocAside"},Bi=Ai(()=>_("div",{class:"spacer"},null,-1)),xi=y({__name:"VPDocAside",setup(t){const{theme:e}=N();return(n,o)=>(a(),l("div",Ti,[d(n.$slots,"aside-top",{},void 0,!0),d(n.$slots,"aside-outline-before",{},void 0,!0),f(Ii),d(n.$slots,"aside-outline-after",{},void 0,!0),Bi,d(n.$slots,"aside-ads-before",{},void 0,!0),i(e).carbonAds?(a(),P(Ci,{key:0,"carbon-ads":i(e).carbonAds},null,8,["carbon-ads"])):m("",!0),d(n.$slots,"aside-ads-after",{},void 0,!0),d(n.$slots,"aside-bottom",{},void 0,!0)]))}});const Oi=g(xi,[["__scopeId","data-v-3f215769"]]);function Ei(){const{theme:t,page:e}=N();return w(()=>{const{text:n="Edit this page",pattern:o=""}=t.value.editLink||{};let s;return typeof o=="function"?s=o(e.value):s=o.replace(/:path/g,e.value.filePath),{url:s,text:n}})}function Hi(){const{page:t,theme:e,frontmatter:n}=N();return w(()=>{var u,h,b,k,I,V;const o=bt(e.value.sidebar,t.value.relativePath),s=Tn(o),r=s.findIndex($=>te(t.value.relativePath,$.link)),c=((u=e.value.docFooter)==null?void 0:u.prev)===!1&&!n.value.prev||n.value.prev===!1,v=((h=e.value.docFooter)==null?void 0:h.next)===!1&&!n.value.next||n.value.next===!1;return{prev:c?void 0:{text:(typeof n.value.prev=="string"?n.value.prev:typeof n.value.prev=="object"?n.value.prev.text:void 0)??((b=s[r-1])==null?void 0:b.text),link:(typeof n.value.prev=="object"?n.value.prev.link:void 0)??((k=s[r-1])==null?void 0:k.link)},next:v?void 0:{text:(typeof n.value.next=="string"?n.value.next:typeof n.value.next=="object"?n.value.next.text:void 0)??((I=s[r+1])==null?void 0:I.text),link:(typeof n.value.next=="object"?n.value.next.link:void 0)??((V=s[r+1])==null?void 0:V.link)}}})}const Di={},zi={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Fi=_("path",{d:"M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"},null,-1),ji=_("path",{d:"M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"},null,-1),Gi=[Fi,ji];function Ri(t,e){return a(),l("svg",zi,Gi)}const Ui=g(Di,[["render",Ri]]),Wi={class:"VPLastUpdated"},Ki=["datetime"],qi=y({__name:"VPDocFooterLastUpdated",setup(t){const{theme:e,page:n,lang:o}=N(),s=w(()=>new Date(n.value.lastUpdated)),r=w(()=>s.value.toISOString()),c=L("");return R(()=>{ee(()=>{c.value=s.value.toLocaleString(o.value)})}),(v,u)=>(a(),l("p",Wi,[O(C(i(e).lastUpdatedText||"Last updated")+": ",1),_("time",{datetime:r.value},C(c.value),9,Ki)]))}});const Yi=g(qi,[["__scopeId","data-v-7b3ebfe1"]]),Ji={key:0,class:"VPDocFooter"},Xi={key:0,class:"edit-info"},Qi={key:0,class:"edit-link"},Zi={key:1,class:"last-updated"},el={key:1,class:"prev-next"},tl={class:"pager"},nl=["href"],ol=["innerHTML"],sl=["innerHTML"],al=["href"],rl=["innerHTML"],il=["innerHTML"],ll=y({__name:"VPDocFooter",setup(t){const{theme:e,page:n,frontmatter:o}=N(),s=Ei(),r=Hi(),c=w(()=>e.value.editLink&&o.value.editLink!==!1),v=w(()=>n.value.lastUpdated&&o.value.lastUpdated!==!1),u=w(()=>c.value||v.value||r.value.prev||r.value.next);return(h,b)=>{var k,I,V,$,M,S,x;return u.value?(a(),l("footer",Ji,[d(h.$slots,"doc-footer-before",{},void 0,!0),c.value||v.value?(a(),l("div",Xi,[c.value?(a(),l("div",Qi,[f(q,{class:"edit-link-button",href:i(s).url,"no-icon":!0},{default:p(()=>[f(Ui,{class:"edit-link-icon","aria-label":"edit icon"}),O(" "+C(i(s).text),1)]),_:1},8,["href"])])):m("",!0),v.value?(a(),l("div",Zi,[f(Yi)])):m("",!0)])):m("",!0),(k=i(r).prev)!=null&&k.link||(I=i(r).next)!=null&&I.link?(a(),l("div",el,[_("div",tl,[(V=i(r).prev)!=null&&V.link?(a(),l("a",{key:0,class:"pager-link prev",href:i(ie)(i(r).prev.link)},[_("span",{class:"desc",innerHTML:(($=i(e).docFooter)==null?void 0:$.prev)||"Previous page"},null,8,ol),_("span",{class:"title",innerHTML:i(r).prev.text},null,8,sl)],8,nl)):m("",!0)]),_("div",{class:T(["pager",{"has-prev":(M=i(r).prev)==null?void 0:M.link}])},[(S=i(r).next)!=null&&S.link?(a(),l("a",{key:0,class:"pager-link next",href:i(ie)(i(r).next.link)},[_("span",{class:"desc",innerHTML:((x=i(e).docFooter)==null?void 0:x.next)||"Next page"},null,8,rl),_("span",{class:"title",innerHTML:i(r).next.text},null,8,il)],8,al)):m("",!0)],2)])):m("",!0)])):m("",!0)}}});const cl=g(ll,[["__scopeId","data-v-face870a"]]),ul={key:0,class:"VPDocOutlineDropdown"},dl={key:0,class:"items"},_l=y({__name:"VPDocOutlineDropdown",setup(t){const{frontmatter:e,theme:n}=N(),o=L(!1);se(()=>{o.value=!1});const s=le([]);return se(()=>{s.value=Ge(e.value.outline??n.value.outline)}),(r,c)=>s.value.length>0?(a(),l("div",ul,[_("button",{onClick:c[0]||(c[0]=v=>o.value=!o.value),class:T({open:o.value})},[O(C(i(je)(i(n)))+" ",1),f(Ue,{class:"icon"})],2),o.value?(a(),l("div",dl,[f(Re,{headers:s.value},null,8,["headers"])])):m("",!0)])):m("",!0)}});const vl=g(_l,[["__scopeId","data-v-2edece88"]]),pl=t=>(F("data-v-c4b0d3cf"),t=t(),j(),t),fl={class:"container"},hl=pl(()=>_("div",{class:"aside-curtain"},null,-1)),ml={class:"aside-container"},gl={class:"aside-content"},yl={class:"content"},bl={class:"content-container"},$l={class:"main"},kl=y({__name:"VPDoc",setup(t){const e=ce(),{hasSidebar:n,hasAside:o,leftAside:s}=G(),r=w(()=>e.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(c,v)=>{const u=X("Content");return a(),l("div",{class:T(["VPDoc",{"has-sidebar":i(n),"has-aside":i(o)}])},[d(c.$slots,"doc-top",{},void 0,!0),_("div",fl,[i(o)?(a(),l("div",{key:0,class:T(["aside",{"left-aside":i(s)}])},[hl,_("div",ml,[_("div",gl,[f(Oi,null,{"aside-top":p(()=>[d(c.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":p(()=>[d(c.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":p(()=>[d(c.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[d(c.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[d(c.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[d(c.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):m("",!0),_("div",yl,[_("div",bl,[d(c.$slots,"doc-before",{},void 0,!0),f(vl),_("main",$l,[f(u,{class:T(["vp-doc",r.value])},null,8,["class"])]),f(cl,null,{"doc-footer-before":p(()=>[d(c.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),d(c.$slots,"doc-after",{},void 0,!0)])])]),d(c.$slots,"doc-bottom",{},void 0,!0)],2)}}});const Pl=g(kl,[["__scopeId","data-v-c4b0d3cf"]]),Pe=t=>(F("data-v-c70503b8"),t=t(),j(),t),wl={class:"NotFound"},Vl=Pe(()=>_("p",{class:"code"},"404",-1)),Sl=Pe(()=>_("h1",{class:"title"},"PAGE NOT FOUND",-1)),Ll=Pe(()=>_("div",{class:"divider"},null,-1)),Ml=Pe(()=>_("blockquote",{class:"quote"}," But if you don't change your direction, and if you keep looking, you may end up where you are heading. ",-1)),Il={class:"action"},Nl=["href"],Cl=y({__name:"NotFound",setup(t){const{site:e}=N(),{localeLinks:n}=ue({removeCurrent:!1}),o=L("/");return R(()=>{var r;const s=window.location.pathname.replace(e.value.base,"").replace(/(^.*?\/).*$/,"/$1");n.value.length&&(o.value=((r=n.value.find(({link:c})=>c.startsWith(s)))==null?void 0:r.link)||n.value[0].link)}),(s,r)=>(a(),l("div",wl,[Vl,Sl,Ll,Ml,_("div",Il,[_("a",{class:"link",href:i(Ne)(o.value),"aria-label":"go to home"}," Take me home ",8,Nl)])]))}});const Al=g(Cl,[["__scopeId","data-v-c70503b8"]]),Tl=y({__name:"VPContent",setup(t){const{page:e,frontmatter:n}=N(),{hasSidebar:o}=G();return(s,r)=>(a(),l("div",{class:T(["VPContent",{"has-sidebar":i(o),"is-home":i(n).layout==="home"}]),id:"VPContent"},[i(e).isNotFound?d(s.$slots,"not-found",{key:0},()=>[f(Al)],!0):i(n).layout==="page"?(a(),P(Er,{key:1},{"page-top":p(()=>[d(s.$slots,"page-top",{},void 0,!0)]),"page-bottom":p(()=>[d(s.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(n).layout==="home"?(a(),P(ki,{key:2},{"home-hero-before":p(()=>[d(s.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info":p(()=>[d(s.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":p(()=>[d(s.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":p(()=>[d(s.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":p(()=>[d(s.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":p(()=>[d(s.$slots,"home-features-after",{},void 0,!0)]),_:3})):(a(),P(Pl,{key:3},{"doc-top":p(()=>[d(s.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":p(()=>[d(s.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":p(()=>[d(s.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":p(()=>[d(s.$slots,"doc-before",{},void 0,!0)]),"doc-after":p(()=>[d(s.$slots,"doc-after",{},void 0,!0)]),"aside-top":p(()=>[d(s.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":p(()=>[d(s.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[d(s.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[d(s.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[d(s.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":p(()=>[d(s.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}});const Bl=g(Tl,[["__scopeId","data-v-a494bd1d"]]),xl={class:"container"},Ol=["innerHTML"],El=["innerHTML"],Hl=y({__name:"VPFooter",setup(t){const{theme:e}=N(),{hasSidebar:n}=G();return(o,s)=>i(e).footer?(a(),l("footer",{key:0,class:T(["VPFooter",{"has-sidebar":i(n)}])},[_("div",xl,[i(e).footer.message?(a(),l("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,Ol)):m("",!0),i(e).footer.copyright?(a(),l("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,El)):m("",!0)])],2)):m("",!0)}});const Dl=g(Hl,[["__scopeId","data-v-f7fc41f4"]]),zl={key:0,class:"Layout"},Fl=y({__name:"Layout",setup(t){const{isOpen:e,open:n,close:o}=G(),s=ce();K(()=>s.path,o),Bn(e,o),he("close-sidebar",o),he("is-sidebar-open",e);const{frontmatter:r}=N(),c=qt(),v=w(()=>!!c["home-hero-image"]);return he("hero-image-slot-exists",v),(u,h)=>{const b=X("Content");return i(r).layout!==!1?(a(),l("div",zl,[d(u.$slots,"layout-top",{},void 0,!0),f(En),f(zn,{class:"backdrop",show:i(e),onClick:i(o)},null,8,["show","onClick"]),f(Ka,null,{"nav-bar-title-before":p(()=>[d(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[d(u.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":p(()=>[d(u.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":p(()=>[d(u.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":p(()=>[d(u.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":p(()=>[d(u.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),f($r,{open:i(e),onOpenMenu:i(n)},null,8,["open","onOpenMenu"]),f(Tr,{open:i(e)},{"sidebar-nav-before":p(()=>[d(u.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":p(()=>[d(u.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),f(Bl,null,{"page-top":p(()=>[d(u.$slots,"page-top",{},void 0,!0)]),"page-bottom":p(()=>[d(u.$slots,"page-bottom",{},void 0,!0)]),"not-found":p(()=>[d(u.$slots,"not-found",{},void 0,!0)]),"home-hero-before":p(()=>[d(u.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info":p(()=>[d(u.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":p(()=>[d(u.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":p(()=>[d(u.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":p(()=>[d(u.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":p(()=>[d(u.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":p(()=>[d(u.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":p(()=>[d(u.$slots,"doc-before",{},void 0,!0)]),"doc-after":p(()=>[d(u.$slots,"doc-after",{},void 0,!0)]),"doc-top":p(()=>[d(u.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":p(()=>[d(u.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":p(()=>[d(u.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":p(()=>[d(u.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":p(()=>[d(u.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[d(u.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[d(u.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[d(u.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),f(Dl),d(u.$slots,"layout-bottom",{},void 0,!0)])):(a(),P(b,{key:1}))}}});const jl=g(Fl,[["__scopeId","data-v-b2cf3e0b"]]);const Yl={Layout:jl,enhanceApp:({app:t})=>{t.component("Badge",Jt)}};function Jl(t,e){const{localeIndex:n}=N();function o(s){var V,$;const r=s.split("."),c=t&&typeof t=="object",v=c&&(($=(V=t.locales)==null?void 0:V[n.value])==null?void 0:$.translations)||null,u=c&&t.translations||null;let h=v,b=u,k=e;const I=r.pop();for(const M of r){let S=null;const x=k==null?void 0:k[M];x&&(S=k=x);const z=b==null?void 0:b[M];z&&(S=b=z);const D=h==null?void 0:h[M];D&&(S=h=D),x||(k=S),z||(b=S),D||(h=S)}return(h==null?void 0:h[I])??(b==null?void 0:b[I])??(k==null?void 0:k[I])??""}return o}export{Be as a,N as b,Ul as c,ql as d,Wl as e,Jl as f,re as g,Kl as h,Xe as o,Yl as t,gn as u,Rl as w}; diff --git a/docs/.vitepress/dist/assets/guide_components_breadcrumb.md.56a47eca.js b/docs/.vitepress/dist/assets/guide_components_breadcrumb.md.56a47eca.js new file mode 100644 index 0000000..b905fe8 --- /dev/null +++ b/docs/.vitepress/dist/assets/guide_components_breadcrumb.md.56a47eca.js @@ -0,0 +1,77 @@ +import{d as p,H as o,c as t,J as l,V as s,o as e}from"./chunks/framework.dc35932b.js";const c=s('

面包屑 QBreadcrumb


显示当前页面在系统层级结构中的位置,并能向上返回

何时使用

  • 当系统拥有超过两级以上的层级结构时
  • 当需要告知用户『你在哪里』时
  • 当需要向上导航的功能时

基本使用

',6),r=s(`
Show Code
vue
<script setup lang="ts">
+const routes = [
+  {
+    path: "/first", // 路由地址
+    query: { id: 1, tab: 2 }, // 路由参数
+    name: "一级路由", // 路由名称
+  },
+  {
+    path: "/second",
+    name: "二级路由",
+  },
+  {
+    path: "/third",
+    name: "三级路由三级路由三级路由三级路由",
+  },
+]
+</script>
+<template>
+  <QBreadcrumb :routes="routes" />
+</template>

自定义分隔符

`,2),D=s(`
Show Code
vue
<script setup lang="ts">
+const routes = [
+  {
+    path: "/first", // 路由地址
+    query: { id: 1, tab: 2 }, // 路由参数
+    name: "一级路由", // 路由名称
+  },
+  {
+    path: "/second",
+    name: "二级路由",
+  },
+  {
+    path: "/third",
+    name: "三级路由三级路由三级路由三级路由",
+  },
+]
+</script>
+<template>
+  <QBreadcrumb :routes="routes" separator="/" />
+</template>

自定义样式

`,2),y=s(`
Show Code
vue
<script setup lang="ts">
+const routes = [
+  {
+    path: "/first", // 路由地址
+    query: { id: 1, tab: 2 }, // 路由参数
+    name: "一级路由", // 路由名称
+  },
+  {
+    path: "/second",
+    name: "二级路由",
+  },
+  {
+    path: "/third",
+    name: "三级路由三级路由三级路由三级路由三级路由",
+  },
+]
+</script>
+<template>
+  <QBreadcrumb :routes="routes" :font-size="16" />
+</template>

新页面打开目标链接

`,2),F=s(`
Show Code
vue
<script setup lang="ts">
+const routes = [
+  {
+    path: "/first", // 路由地址
+    query: { id: 1, tab: 2 }, // 路由参数
+    name: "一级路由", // 路由名称
+  },
+  {
+    path: "/second",
+    name: "二级路由",
+  },
+  {
+    path: "/third",
+    name: "三级路由三级路由三级路由三级路由",
+  },
+]
+</script>
+<template>
+  <QBreadcrumb :routes="routes" target="_blank" />
+</template>

APIs

参数说明类型默认值必传
routes路由数组Route[][]true
fontSize字体大小,单位 pxnumber14false
height面包屑高度number36false
maxWidth文本最大显示宽度,超出后显示省略号,单位 px180false
separator分隔符,默认''时为箭头string''false
target如何打开目标 URL'_self' | '_blank''_self'false

Route Type

名称说明类型必传
path路由地址stringtrue
query路由查询参数[propName: string]: anyfalse
name路由名称stringtrue
`,5),h=JSON.parse('{"title":"面包屑 QBreadcrumb","description":"","frontmatter":{},"headers":[],"relativePath":"guide/components/breadcrumb.md","filePath":"guide/components/breadcrumb.md"}'),C={name:"guide/components/breadcrumb.md"},m=p({...C,setup(A){const a=[{path:"/first",query:{id:1,tab:2},name:"一级路由"},{path:"/second",name:"二级路由"},{path:"/third",name:"三级路由三级路由三级路由三级路由"}];return(i,d)=>{const n=o("QBreadcrumb");return e(),t("div",null,[c,l(n,{routes:a}),r,l(n,{routes:a,separator:"/"}),D,l(n,{routes:a,"font-size":16}),y,l(n,{routes:a,target:"_blank"}),F])}}});export{h as __pageData,m as default}; diff --git a/docs/.vitepress/dist/assets/guide_components_breadcrumb.md.56a47eca.lean.js b/docs/.vitepress/dist/assets/guide_components_breadcrumb.md.56a47eca.lean.js new file mode 100644 index 0000000..b905fe8 --- /dev/null +++ b/docs/.vitepress/dist/assets/guide_components_breadcrumb.md.56a47eca.lean.js @@ -0,0 +1,77 @@ +import{d as p,H as o,c as t,J as l,V as s,o as e}from"./chunks/framework.dc35932b.js";const c=s('

面包屑 QBreadcrumb


显示当前页面在系统层级结构中的位置,并能向上返回

何时使用

  • 当系统拥有超过两级以上的层级结构时
  • 当需要告知用户『你在哪里』时
  • 当需要向上导航的功能时

基本使用

',6),r=s(`
Show Code
vue
<script setup lang="ts">
+const routes = [
+  {
+    path: "/first", // 路由地址
+    query: { id: 1, tab: 2 }, // 路由参数
+    name: "一级路由", // 路由名称
+  },
+  {
+    path: "/second",
+    name: "二级路由",
+  },
+  {
+    path: "/third",
+    name: "三级路由三级路由三级路由三级路由",
+  },
+]
+</script>
+<template>
+  <QBreadcrumb :routes="routes" />
+</template>

自定义分隔符

`,2),D=s(`
Show Code
vue
<script setup lang="ts">
+const routes = [
+  {
+    path: "/first", // 路由地址
+    query: { id: 1, tab: 2 }, // 路由参数
+    name: "一级路由", // 路由名称
+  },
+  {
+    path: "/second",
+    name: "二级路由",
+  },
+  {
+    path: "/third",
+    name: "三级路由三级路由三级路由三级路由",
+  },
+]
+</script>
+<template>
+  <QBreadcrumb :routes="routes" separator="/" />
+</template>

自定义样式

`,2),y=s(`
Show Code
vue
<script setup lang="ts">
+const routes = [
+  {
+    path: "/first", // 路由地址
+    query: { id: 1, tab: 2 }, // 路由参数
+    name: "一级路由", // 路由名称
+  },
+  {
+    path: "/second",
+    name: "二级路由",
+  },
+  {
+    path: "/third",
+    name: "三级路由三级路由三级路由三级路由三级路由",
+  },
+]
+</script>
+<template>
+  <QBreadcrumb :routes="routes" :font-size="16" />
+</template>

新页面打开目标链接

`,2),F=s(`
Show Code
vue
<script setup lang="ts">
+const routes = [
+  {
+    path: "/first", // 路由地址
+    query: { id: 1, tab: 2 }, // 路由参数
+    name: "一级路由", // 路由名称
+  },
+  {
+    path: "/second",
+    name: "二级路由",
+  },
+  {
+    path: "/third",
+    name: "三级路由三级路由三级路由三级路由",
+  },
+]
+</script>
+<template>
+  <QBreadcrumb :routes="routes" target="_blank" />
+</template>

APIs

参数说明类型默认值必传
routes路由数组Route[][]true
fontSize字体大小,单位 pxnumber14false
height面包屑高度number36false
maxWidth文本最大显示宽度,超出后显示省略号,单位 px180false
separator分隔符,默认''时为箭头string''false
target如何打开目标 URL'_self' | '_blank''_self'false

Route Type

名称说明类型必传
path路由地址stringtrue
query路由查询参数[propName: string]: anyfalse
name路由名称stringtrue
`,5),h=JSON.parse('{"title":"面包屑 QBreadcrumb","description":"","frontmatter":{},"headers":[],"relativePath":"guide/components/breadcrumb.md","filePath":"guide/components/breadcrumb.md"}'),C={name:"guide/components/breadcrumb.md"},m=p({...C,setup(A){const a=[{path:"/first",query:{id:1,tab:2},name:"一级路由"},{path:"/second",name:"二级路由"},{path:"/third",name:"三级路由三级路由三级路由三级路由"}];return(i,d)=>{const n=o("QBreadcrumb");return e(),t("div",null,[c,l(n,{routes:a}),r,l(n,{routes:a,separator:"/"}),D,l(n,{routes:a,"font-size":16}),y,l(n,{routes:a,target:"_blank"}),F])}}});export{h as __pageData,m as default}; diff --git a/docs/.vitepress/dist/assets/guide_components_button.md.881ed501.js b/docs/.vitepress/dist/assets/guide_components_button.md.881ed501.js new file mode 100644 index 0000000..c9197ef --- /dev/null +++ b/docs/.vitepress/dist/assets/guide_components_button.md.881ed501.js @@ -0,0 +1,42 @@ +import{d as i,h as C,H as F,c as u,C as p,J as s,E as n,n as c,V as r,o as A,a as o,_ as g}from"./chunks/framework.dc35932b.js";const q=r('

按钮

何时使用

  • 当需要添加一个操作按钮时

基本使用

',4),h=r(`
Show Code
vue
<script setup lang="ts">
+function onClick(e: Event) {
+  console.log("click")
+}
+</script>
+<template>
+  <q-button @click="onClick">Default</q-button>
+  <q-button effect="reverse" @click="onClick">Reverse</q-button>
+  <q-button type="primary" @click="onClick">Primary</q-button>
+  <q-button type="danger" @click="onClick">Danger</q-button>
+  <q-button disabled @click="onClick">Disabled</q-button>
+</template>

大、中、小三种尺寸

`,2),m=r(`
Show Code
vue
<script setup lang="ts">
+function onClick(e: Event) {
+  console.log("click")
+}
+</script>
+<template>
+  <q-button size="small" @click="onClick">Small</q-button>
+  <q-button @click="onClick">Default</q-button>
+  <q-button size="large" @click="onClick">Large</q-button>
+</template>

自定义样式

`,2),E=p("p",{style:{"font-size":"18px"}},"自定义样式",-1),f=r(`
Show Code
vue
<script setup lang="ts">
+function onClick(e: Event) {
+  console.log("click")
+}
+</script>
+<template>
+  <q-button :width="120" :height="40" :border-radius="8" size="large" @click="onClick">
+    <p style="font-size: 18px;">自定义样式</p>
+  </q-button>
+</template>

加载中状态

`,2),b=r(`
Show Code
vue
<script setup lang="ts">
+import { ref } from "vue"
+const loading = ref(true)
+function onClick(e: Event) {
+  console.log("click")
+}
+</script>
+<template>
+  <q-button :loading="loading" @click="onClick">Default</q-button>
+  <q-button :loading="loading" type="primary" @click="onClick">Primary</q-button>
+  <q-button :loading="loading" type="danger" @click="onClick">Danger</q-button>
+  <h3>Loading state: <Switch v-model:checked="loading" /></h3>
+</template>

APIs

参数说明类型默认值必传
name默认文本string | slot'按钮'false
type类型'default' | 'primary' | 'danger''default'false
effect悬浮变化效果,只有 type 为 default 时,effect 才生效'fade' | 'reverse'''
size尺寸'small' | 'middle' | 'large''_self'false
width宽度,优先级高于 size 属性,为 0 时自适应内容的宽度number0false
height高度,优先级高于 size 属性number0false
borderRadius圆角number5false
route跳转目标 URL 地址{path?: string, query?: object}{}false
target如何打开目标 URL,设置 route 时生效'_self' | '_blank''_self'false
disabled是否禁用booleanfalsefalse
loading是否加载中booleanfalsefalse
center是否将按钮设置为块级元素并居中展示booleanfalsefalse

Events

事件名称说明参数
click点击按钮时的回调,未设置 route 时生效(e: Event) => void
`,5),w=JSON.parse('{"title":"按钮","description":"","frontmatter":{},"headers":[],"relativePath":"guide/components/button.md","filePath":"guide/components/button.md"}'),k={name:"guide/components/button.md"},_=i({...k,setup(P){const e=C(!0);function a(t){console.log("click")}return(t,D)=>{const l=F("q-button"),y=F("Switch");return A(),u("div",null,[q,p("div",{class:c(t.$style["m-flex"])},[s(l,{onClick:a},{default:n(()=>[o("Default")]),_:1}),s(l,{effect:"reverse",onClick:a},{default:n(()=>[o("Reverse")]),_:1}),s(l,{type:"primary",onClick:a},{default:n(()=>[o("Primary")]),_:1}),s(l,{type:"danger",onClick:a},{default:n(()=>[o("Danger")]),_:1}),s(l,{disabled:"",onClick:a},{default:n(()=>[o("Disabled")]),_:1})],2),h,p("div",{class:c(t.$style["m-flex"])},[s(l,{size:"small",onClick:a},{default:n(()=>[o("Small")]),_:1}),s(l,{onClick:a},{default:n(()=>[o("Default")]),_:1}),s(l,{size:"large",onClick:a},{default:n(()=>[o("Large")]),_:1})],2),m,s(l,{width:120,height:40,"border-radius":8,size:"large",onClick:a},{default:n(()=>[E]),_:1}),f,p("div",{class:c(t.$style["m-flex"])},[s(l,{loading:e.value,onClick:a},{default:n(()=>[o("Default")]),_:1},8,["loading"]),s(l,{loading:e.value,type:"primary",onClick:a},{default:n(()=>[o("Primary")]),_:1},8,["loading"]),s(l,{loading:e.value,type:"danger",onClick:a},{default:n(()=>[o("Danger")]),_:1},8,["loading"])],2),p("div",{class:c(t.$style["m-flex"]),style:{"margin-top":"30px"}},[p("h3",{class:c(t.$style["u-h3"])},"Loading state: ",2),s(y,{checked:e.value,"onUpdate:checked":D[0]||(D[0]=d=>e.value=d)},null,8,["checked"])],2),b])}}}),v={"m-flex":"_m-flex_xogkl_2","u-h3":"_u-h3_xogkl_8"},x={$style:v},B=g(_,[["__cssModules",x]]);export{w as __pageData,B as default}; diff --git a/docs/.vitepress/dist/assets/guide_components_button.md.881ed501.lean.js b/docs/.vitepress/dist/assets/guide_components_button.md.881ed501.lean.js new file mode 100644 index 0000000..c9197ef --- /dev/null +++ b/docs/.vitepress/dist/assets/guide_components_button.md.881ed501.lean.js @@ -0,0 +1,42 @@ +import{d as i,h as C,H as F,c as u,C as p,J as s,E as n,n as c,V as r,o as A,a as o,_ as g}from"./chunks/framework.dc35932b.js";const q=r('

按钮

何时使用

  • 当需要添加一个操作按钮时

基本使用

',4),h=r(`
Show Code
vue
<script setup lang="ts">
+function onClick(e: Event) {
+  console.log("click")
+}
+</script>
+<template>
+  <q-button @click="onClick">Default</q-button>
+  <q-button effect="reverse" @click="onClick">Reverse</q-button>
+  <q-button type="primary" @click="onClick">Primary</q-button>
+  <q-button type="danger" @click="onClick">Danger</q-button>
+  <q-button disabled @click="onClick">Disabled</q-button>
+</template>

大、中、小三种尺寸

`,2),m=r(`
Show Code
vue
<script setup lang="ts">
+function onClick(e: Event) {
+  console.log("click")
+}
+</script>
+<template>
+  <q-button size="small" @click="onClick">Small</q-button>
+  <q-button @click="onClick">Default</q-button>
+  <q-button size="large" @click="onClick">Large</q-button>
+</template>

自定义样式

`,2),E=p("p",{style:{"font-size":"18px"}},"自定义样式",-1),f=r(`
Show Code
vue
<script setup lang="ts">
+function onClick(e: Event) {
+  console.log("click")
+}
+</script>
+<template>
+  <q-button :width="120" :height="40" :border-radius="8" size="large" @click="onClick">
+    <p style="font-size: 18px;">自定义样式</p>
+  </q-button>
+</template>

加载中状态

`,2),b=r(`
Show Code
vue
<script setup lang="ts">
+import { ref } from "vue"
+const loading = ref(true)
+function onClick(e: Event) {
+  console.log("click")
+}
+</script>
+<template>
+  <q-button :loading="loading" @click="onClick">Default</q-button>
+  <q-button :loading="loading" type="primary" @click="onClick">Primary</q-button>
+  <q-button :loading="loading" type="danger" @click="onClick">Danger</q-button>
+  <h3>Loading state: <Switch v-model:checked="loading" /></h3>
+</template>

APIs

参数说明类型默认值必传
name默认文本string | slot'按钮'false
type类型'default' | 'primary' | 'danger''default'false
effect悬浮变化效果,只有 type 为 default 时,effect 才生效'fade' | 'reverse'''
size尺寸'small' | 'middle' | 'large''_self'false
width宽度,优先级高于 size 属性,为 0 时自适应内容的宽度number0false
height高度,优先级高于 size 属性number0false
borderRadius圆角number5false
route跳转目标 URL 地址{path?: string, query?: object}{}false
target如何打开目标 URL,设置 route 时生效'_self' | '_blank''_self'false
disabled是否禁用booleanfalsefalse
loading是否加载中booleanfalsefalse
center是否将按钮设置为块级元素并居中展示booleanfalsefalse

Events

事件名称说明参数
click点击按钮时的回调,未设置 route 时生效(e: Event) => void
`,5),w=JSON.parse('{"title":"按钮","description":"","frontmatter":{},"headers":[],"relativePath":"guide/components/button.md","filePath":"guide/components/button.md"}'),k={name:"guide/components/button.md"},_=i({...k,setup(P){const e=C(!0);function a(t){console.log("click")}return(t,D)=>{const l=F("q-button"),y=F("Switch");return A(),u("div",null,[q,p("div",{class:c(t.$style["m-flex"])},[s(l,{onClick:a},{default:n(()=>[o("Default")]),_:1}),s(l,{effect:"reverse",onClick:a},{default:n(()=>[o("Reverse")]),_:1}),s(l,{type:"primary",onClick:a},{default:n(()=>[o("Primary")]),_:1}),s(l,{type:"danger",onClick:a},{default:n(()=>[o("Danger")]),_:1}),s(l,{disabled:"",onClick:a},{default:n(()=>[o("Disabled")]),_:1})],2),h,p("div",{class:c(t.$style["m-flex"])},[s(l,{size:"small",onClick:a},{default:n(()=>[o("Small")]),_:1}),s(l,{onClick:a},{default:n(()=>[o("Default")]),_:1}),s(l,{size:"large",onClick:a},{default:n(()=>[o("Large")]),_:1})],2),m,s(l,{width:120,height:40,"border-radius":8,size:"large",onClick:a},{default:n(()=>[E]),_:1}),f,p("div",{class:c(t.$style["m-flex"])},[s(l,{loading:e.value,onClick:a},{default:n(()=>[o("Default")]),_:1},8,["loading"]),s(l,{loading:e.value,type:"primary",onClick:a},{default:n(()=>[o("Primary")]),_:1},8,["loading"]),s(l,{loading:e.value,type:"danger",onClick:a},{default:n(()=>[o("Danger")]),_:1},8,["loading"])],2),p("div",{class:c(t.$style["m-flex"]),style:{"margin-top":"30px"}},[p("h3",{class:c(t.$style["u-h3"])},"Loading state: ",2),s(y,{checked:e.value,"onUpdate:checked":D[0]||(D[0]=d=>e.value=d)},null,8,["checked"])],2),b])}}}),v={"m-flex":"_m-flex_xogkl_2","u-h3":"_u-h3_xogkl_8"},x={$style:v},B=g(_,[["__cssModules",x]]);export{w as __pageData,B as default}; diff --git a/docs/.vitepress/dist/assets/guide_components_select.md.880efa1b.js b/docs/.vitepress/dist/assets/guide_components_select.md.880efa1b.js new file mode 100644 index 0000000..c4ebac3 --- /dev/null +++ b/docs/.vitepress/dist/assets/guide_components_select.md.880efa1b.js @@ -0,0 +1,317 @@ +import{d as y,h as c,k as C,H as A,c as i,J as o,V as p,o as u}from"./chunks/framework.dc35932b.js";const d=p('

选择器 QSelect

何时使用

  • 弹出一个下拉菜单给用户选择操作,用于代替原生的选择器,或者需要一个更优雅的多选器时
  • 当选项少时(少于 5 项),建议直接将选项平铺,使用 Radio 是更好的选择

基本使用

',4),q=p(`
Show Code
vue
<script setup lang="ts">
+import { ref, watchEffect } from "vue"
+const options = ref([
+  {
+    label: "北京市",
+    value: 1,
+  },
+  {
+    label: "上海市",
+    value: 2,
+  },
+  {
+    label: "纽约市",
+    value: 3,
+  },
+  {
+    label: "旧金山",
+    value: 4,
+  },
+  {
+    label: "布宜诺斯艾利斯",
+    value: 5,
+  },
+  {
+    label: "伊斯坦布尔",
+    value: 6,
+  },
+  {
+    label: "拜占庭",
+    value: 7,
+  },
+  {
+    label: "君士坦丁堡",
+    value: 8,
+  },
+])
+const QSelectedValue = ref(1)
+watchEffect(() => {
+  console.log("QSelectedValue:", QSelectedValue.value)
+})
+</script>
+<template>
+  <QSelect :options="options" v-model="QSelectedValue" />
+</template>

禁用

`,2),E=p(`
Show Code
vue
<script setup lang="ts">
+import { ref } from "vue"
+const options = ref([
+  {
+    label: "北京市",
+    value: 1,
+  },
+  {
+    label: "上海市",
+    value: 2,
+  },
+  {
+    label: "纽约市",
+    value: 3,
+  },
+  {
+    label: "旧金山",
+    value: 4,
+  },
+  {
+    label: "布宜诺斯艾利斯",
+    value: 5,
+  },
+  {
+    label: "伊斯坦布尔",
+    value: 6,
+  },
+  {
+    label: "拜占庭",
+    value: 7,
+  },
+  {
+    label: "君士坦丁堡",
+    value: 8,
+  },
+])
+const QSelectedValue = ref(1)
+</script>
+<template>
+  <QSelect :options="options" v-model="QSelectedValue" disabled />
+</template>

禁用选项

`,2),m=p(`
Show Code
vue
<script setup lang="ts">
+import { ref } from "vue"
+const optionsDisabled = ref([
+  {
+    label: "北京市",
+    value: 1,
+  },
+  {
+    label: "上海市",
+    value: 2,
+    disabled: true,
+  },
+  {
+    label: "纽约市",
+    value: 3,
+  },
+  {
+    label: "旧金山",
+    value: 4,
+  },
+  {
+    label: "布宜诺斯艾利斯",
+    value: 5,
+  },
+  {
+    label: "伊斯坦布尔",
+    value: 6,
+  },
+  {
+    label: "拜占庭",
+    value: 7,
+  },
+  {
+    label: "君士坦丁堡",
+    value: 8,
+  },
+])
+const QSelectedValue = ref(1)
+</script>
+<template>
+  <QSelect :options="optionsDisabled" v-model="QSelectedValue" />
+</template>

支持清除

`,2),b=p(`
Show Code
vue
<script setup lang="ts">
+import { ref, watchEffect } from "vue"
+const options = ref([
+  {
+    label: "北京市",
+    value: 1,
+  },
+  {
+    label: "上海市",
+    value: 2,
+  },
+  {
+    label: "纽约市",
+    value: 3,
+  },
+  {
+    label: "旧金山",
+    value: 4,
+  },
+  {
+    label: "布宜诺斯艾利斯",
+    value: 5,
+  },
+  {
+    label: "伊斯坦布尔",
+    value: 6,
+  },
+  {
+    label: "拜占庭",
+    value: 7,
+  },
+  {
+    label: "君士坦丁堡",
+    value: 8,
+  },
+])
+const QSelectedValue = ref(1)
+watchEffect(() => {
+  console.log("QSelectedValue:", QSelectedValue.value)
+})
+function onChange(value: string | number, label: string, index: number) {
+  console.log("value:", value)
+  console.log("label:", label)
+  console.log("index:", index)
+}
+</script>
+<template>
+  <QSelect :options="options" allow-clear v-model="QSelectedValue" @change="onChange" />
+</template>

自定义样式

`,2),v=p(`
Show Code
vue
<script setup lang="ts">
+import { ref, watchEffect } from "vue"
+const options = ref([
+  {
+    label: "北京市",
+    value: 1,
+  },
+  {
+    label: "上海市",
+    value: 2,
+  },
+  {
+    label: "纽约市",
+    value: 3,
+  },
+  {
+    label: "旧金山",
+    value: 4,
+  },
+  {
+    label: "布宜诺斯艾利斯",
+    value: 5,
+  },
+  {
+    label: "伊斯坦布尔",
+    value: 6,
+  },
+  {
+    label: "拜占庭",
+    value: 7,
+  },
+  {
+    label: "君士坦丁堡",
+    value: 8,
+  },
+])
+const QSelectedValue = ref(1)
+watchEffect(() => {
+  console.log("QSelectedValue:", QSelectedValue.value)
+})
+function onChange(value: string | number, label: string, index: number) {
+  console.log("value:", value)
+  console.log("label:", label)
+  console.log("index:", index)
+}
+</script>
+<template>
+  <QSelect :width="160" :height="36" :options="options" v-model="QSelectedValue" @change="onChange" />
+</template>

自定义字段名

`,2),h=p(`
Show Code
vue
<script setup lang="ts">
+import { ref, watchEffect } from "vue"
+const optionsCustom = ref([
+  {
+    name: "北京市",
+    id: 1,
+  },
+  {
+    name: "上海市",
+    id: 2,
+  },
+  {
+    name: "纽约市",
+    id: 3,
+  },
+  {
+    name: "旧金山",
+    id: 4,
+  },
+  {
+    name: "布宜诺斯艾利斯",
+    id: 5,
+  },
+  {
+    name: "伊斯坦布尔",
+    id: 6,
+  },
+  {
+    name: "拜占庭",
+    id: 7,
+  },
+  {
+    name: "君士坦丁堡",
+    id: 8,
+  },
+])
+const QSelectedValue = ref(1)
+watchEffect(() => {
+  console.log("QSelectedValue:", QSelectedValue.value)
+})
+function onChange(id: string | number, name: string, index: number) {
+  console.log("id:", id)
+  console.log("name:", label)
+  console.log("index:", index)
+}
+</script>
+<template>
+  <QSelect :options="optionsCustom" label="name" value="id" v-model="QSelectedValue" @change="onChange" />
+</template>

自定义下拉面板展示数

`,2),g=p(`
Show Code
vue
<script setup lang="ts">
+import { ref, watchEffect } from "vue"
+const options = ref([
+  {
+    label: "北京市",
+    value: 1,
+  },
+  {
+    label: "上海市",
+    value: 2,
+  },
+  {
+    label: "纽约市",
+    value: 3,
+  },
+  {
+    label: "旧金山",
+    value: 4,
+  },
+  {
+    label: "布宜诺斯艾利斯",
+    value: 5,
+  },
+  {
+    label: "伊斯坦布尔",
+    value: 6,
+  },
+  {
+    label: "拜占庭",
+    value: 7,
+  },
+  {
+    label: "君士坦丁堡",
+    value: 8,
+  },
+])
+const QSelectedValue = ref(1)
+watchEffect(() => {
+  console.log("QSelectedValue:", QSelectedValue.value)
+})
+function onChange(value: string | number, label: string, index: number) {
+  console.log("value:", value)
+  console.log("label:", label)
+  console.log("index:", index)
+}
+</script>
+<template>
+  <QSelect :options="options" :max-display="8" v-model="QSelectedValue" @change="onChange" />
+</template>

APIs

参数说明类型默认值必传
options选项数据Option[][]false
label字典项的文本字段名string'label'false
value字典项的值字段名string'value'false
placeholder默认文字string'请选择'false
disabled是否禁用booleanfalsefalse
allowClear是否支持清除booleanfalsefalse
width宽度number120false
height高度number32false
maxDisplay下拉面板最多能展示的下拉项数,超过后滚动显示number6false
modelValue(v-model)当前选中的 option 条目number | string | nullnullfalse

Option Type

名称说明类型必传
label选项名stringfalse
value选项值string | numberfalse
disabled是否禁用选项booleanfalse
[propName: string]添加一个字符串索引签名,用于包含带有任意数量的其他属性any-

Events

事件名称说明参数
change选项值改变后的回调(value: string | number, label: string, index: number) => void
`,7),Q=JSON.parse('{"title":"选择器 QSelect","description":"","frontmatter":{},"headers":[],"relativePath":"guide/components/select.md","filePath":"guide/components/select.md"}'),f={name:"guide/components/select.md"},B=y({...f,setup(V){const e=c([{label:"北京市",value:1},{label:"上海市",value:2},{label:"纽约市",value:3},{label:"旧金山",value:4},{label:"布宜诺斯艾利斯",value:5},{label:"伊斯坦布尔",value:6},{label:"拜占庭",value:7},{label:"君士坦丁堡",value:8}]),r=c([{label:"北京市",value:1},{label:"上海市",value:2,disabled:!0},{label:"纽约市",value:3},{label:"旧金山",value:4},{label:"布宜诺斯艾利斯",value:5},{label:"伊斯坦布尔",value:6},{label:"拜占庭",value:7},{label:"君士坦丁堡",value:8}]),F=c([{name:"北京市",id:1},{name:"上海市",id:2},{name:"纽约市",id:3},{name:"旧金山",id:4},{name:"布宜诺斯艾利斯",id:5},{name:"伊斯坦布尔",id:6},{name:"拜占庭",id:7},{name:"君士坦丁堡",id:8}]),n=c(1);C(()=>{console.log("QSelectedValue:",n.value)});function t(D,s,l){console.log("value:",D),console.log("label:",s),console.log("index:",l)}return(D,s)=>{const l=A("QSelect");return u(),i("div",null,[d,o(l,{options:e.value,modelValue:n.value,"onUpdate:modelValue":s[0]||(s[0]=a=>n.value=a)},null,8,["options","modelValue"]),q,o(l,{options:e.value,modelValue:n.value,"onUpdate:modelValue":s[1]||(s[1]=a=>n.value=a),disabled:""},null,8,["options","modelValue"]),E,o(l,{options:r.value,modelValue:n.value,"onUpdate:modelValue":s[2]||(s[2]=a=>n.value=a)},null,8,["options","modelValue"]),m,o(l,{options:e.value,"allow-clear":"",modelValue:n.value,"onUpdate:modelValue":s[3]||(s[3]=a=>n.value=a),onChange:t},null,8,["options","modelValue"]),b,o(l,{width:160,height:36,options:e.value,modelValue:n.value,"onUpdate:modelValue":s[4]||(s[4]=a=>n.value=a),onChange:t},null,8,["options","modelValue"]),v,o(l,{options:F.value,label:"name",value:"id",modelValue:n.value,"onUpdate:modelValue":s[5]||(s[5]=a=>n.value=a),onChange:t},null,8,["options","modelValue"]),h,o(l,{options:e.value,"max-display":8,modelValue:n.value,"onUpdate:modelValue":s[6]||(s[6]=a=>n.value=a),onChange:t},null,8,["options","modelValue"]),g])}}});export{Q as __pageData,B as default}; diff --git a/docs/.vitepress/dist/assets/guide_components_select.md.880efa1b.lean.js b/docs/.vitepress/dist/assets/guide_components_select.md.880efa1b.lean.js new file mode 100644 index 0000000..c4ebac3 --- /dev/null +++ b/docs/.vitepress/dist/assets/guide_components_select.md.880efa1b.lean.js @@ -0,0 +1,317 @@ +import{d as y,h as c,k as C,H as A,c as i,J as o,V as p,o as u}from"./chunks/framework.dc35932b.js";const d=p('

选择器 QSelect

何时使用

  • 弹出一个下拉菜单给用户选择操作,用于代替原生的选择器,或者需要一个更优雅的多选器时
  • 当选项少时(少于 5 项),建议直接将选项平铺,使用 Radio 是更好的选择

基本使用

',4),q=p(`
Show Code
vue
<script setup lang="ts">
+import { ref, watchEffect } from "vue"
+const options = ref([
+  {
+    label: "北京市",
+    value: 1,
+  },
+  {
+    label: "上海市",
+    value: 2,
+  },
+  {
+    label: "纽约市",
+    value: 3,
+  },
+  {
+    label: "旧金山",
+    value: 4,
+  },
+  {
+    label: "布宜诺斯艾利斯",
+    value: 5,
+  },
+  {
+    label: "伊斯坦布尔",
+    value: 6,
+  },
+  {
+    label: "拜占庭",
+    value: 7,
+  },
+  {
+    label: "君士坦丁堡",
+    value: 8,
+  },
+])
+const QSelectedValue = ref(1)
+watchEffect(() => {
+  console.log("QSelectedValue:", QSelectedValue.value)
+})
+</script>
+<template>
+  <QSelect :options="options" v-model="QSelectedValue" />
+</template>

禁用

`,2),E=p(`
Show Code
vue
<script setup lang="ts">
+import { ref } from "vue"
+const options = ref([
+  {
+    label: "北京市",
+    value: 1,
+  },
+  {
+    label: "上海市",
+    value: 2,
+  },
+  {
+    label: "纽约市",
+    value: 3,
+  },
+  {
+    label: "旧金山",
+    value: 4,
+  },
+  {
+    label: "布宜诺斯艾利斯",
+    value: 5,
+  },
+  {
+    label: "伊斯坦布尔",
+    value: 6,
+  },
+  {
+    label: "拜占庭",
+    value: 7,
+  },
+  {
+    label: "君士坦丁堡",
+    value: 8,
+  },
+])
+const QSelectedValue = ref(1)
+</script>
+<template>
+  <QSelect :options="options" v-model="QSelectedValue" disabled />
+</template>

禁用选项

`,2),m=p(`
Show Code
vue
<script setup lang="ts">
+import { ref } from "vue"
+const optionsDisabled = ref([
+  {
+    label: "北京市",
+    value: 1,
+  },
+  {
+    label: "上海市",
+    value: 2,
+    disabled: true,
+  },
+  {
+    label: "纽约市",
+    value: 3,
+  },
+  {
+    label: "旧金山",
+    value: 4,
+  },
+  {
+    label: "布宜诺斯艾利斯",
+    value: 5,
+  },
+  {
+    label: "伊斯坦布尔",
+    value: 6,
+  },
+  {
+    label: "拜占庭",
+    value: 7,
+  },
+  {
+    label: "君士坦丁堡",
+    value: 8,
+  },
+])
+const QSelectedValue = ref(1)
+</script>
+<template>
+  <QSelect :options="optionsDisabled" v-model="QSelectedValue" />
+</template>

支持清除

`,2),b=p(`
Show Code
vue
<script setup lang="ts">
+import { ref, watchEffect } from "vue"
+const options = ref([
+  {
+    label: "北京市",
+    value: 1,
+  },
+  {
+    label: "上海市",
+    value: 2,
+  },
+  {
+    label: "纽约市",
+    value: 3,
+  },
+  {
+    label: "旧金山",
+    value: 4,
+  },
+  {
+    label: "布宜诺斯艾利斯",
+    value: 5,
+  },
+  {
+    label: "伊斯坦布尔",
+    value: 6,
+  },
+  {
+    label: "拜占庭",
+    value: 7,
+  },
+  {
+    label: "君士坦丁堡",
+    value: 8,
+  },
+])
+const QSelectedValue = ref(1)
+watchEffect(() => {
+  console.log("QSelectedValue:", QSelectedValue.value)
+})
+function onChange(value: string | number, label: string, index: number) {
+  console.log("value:", value)
+  console.log("label:", label)
+  console.log("index:", index)
+}
+</script>
+<template>
+  <QSelect :options="options" allow-clear v-model="QSelectedValue" @change="onChange" />
+</template>

自定义样式

`,2),v=p(`
Show Code
vue
<script setup lang="ts">
+import { ref, watchEffect } from "vue"
+const options = ref([
+  {
+    label: "北京市",
+    value: 1,
+  },
+  {
+    label: "上海市",
+    value: 2,
+  },
+  {
+    label: "纽约市",
+    value: 3,
+  },
+  {
+    label: "旧金山",
+    value: 4,
+  },
+  {
+    label: "布宜诺斯艾利斯",
+    value: 5,
+  },
+  {
+    label: "伊斯坦布尔",
+    value: 6,
+  },
+  {
+    label: "拜占庭",
+    value: 7,
+  },
+  {
+    label: "君士坦丁堡",
+    value: 8,
+  },
+])
+const QSelectedValue = ref(1)
+watchEffect(() => {
+  console.log("QSelectedValue:", QSelectedValue.value)
+})
+function onChange(value: string | number, label: string, index: number) {
+  console.log("value:", value)
+  console.log("label:", label)
+  console.log("index:", index)
+}
+</script>
+<template>
+  <QSelect :width="160" :height="36" :options="options" v-model="QSelectedValue" @change="onChange" />
+</template>

自定义字段名

`,2),h=p(`
Show Code
vue
<script setup lang="ts">
+import { ref, watchEffect } from "vue"
+const optionsCustom = ref([
+  {
+    name: "北京市",
+    id: 1,
+  },
+  {
+    name: "上海市",
+    id: 2,
+  },
+  {
+    name: "纽约市",
+    id: 3,
+  },
+  {
+    name: "旧金山",
+    id: 4,
+  },
+  {
+    name: "布宜诺斯艾利斯",
+    id: 5,
+  },
+  {
+    name: "伊斯坦布尔",
+    id: 6,
+  },
+  {
+    name: "拜占庭",
+    id: 7,
+  },
+  {
+    name: "君士坦丁堡",
+    id: 8,
+  },
+])
+const QSelectedValue = ref(1)
+watchEffect(() => {
+  console.log("QSelectedValue:", QSelectedValue.value)
+})
+function onChange(id: string | number, name: string, index: number) {
+  console.log("id:", id)
+  console.log("name:", label)
+  console.log("index:", index)
+}
+</script>
+<template>
+  <QSelect :options="optionsCustom" label="name" value="id" v-model="QSelectedValue" @change="onChange" />
+</template>

自定义下拉面板展示数

`,2),g=p(`
Show Code
vue
<script setup lang="ts">
+import { ref, watchEffect } from "vue"
+const options = ref([
+  {
+    label: "北京市",
+    value: 1,
+  },
+  {
+    label: "上海市",
+    value: 2,
+  },
+  {
+    label: "纽约市",
+    value: 3,
+  },
+  {
+    label: "旧金山",
+    value: 4,
+  },
+  {
+    label: "布宜诺斯艾利斯",
+    value: 5,
+  },
+  {
+    label: "伊斯坦布尔",
+    value: 6,
+  },
+  {
+    label: "拜占庭",
+    value: 7,
+  },
+  {
+    label: "君士坦丁堡",
+    value: 8,
+  },
+])
+const QSelectedValue = ref(1)
+watchEffect(() => {
+  console.log("QSelectedValue:", QSelectedValue.value)
+})
+function onChange(value: string | number, label: string, index: number) {
+  console.log("value:", value)
+  console.log("label:", label)
+  console.log("index:", index)
+}
+</script>
+<template>
+  <QSelect :options="options" :max-display="8" v-model="QSelectedValue" @change="onChange" />
+</template>

APIs

参数说明类型默认值必传
options选项数据Option[][]false
label字典项的文本字段名string'label'false
value字典项的值字段名string'value'false
placeholder默认文字string'请选择'false
disabled是否禁用booleanfalsefalse
allowClear是否支持清除booleanfalsefalse
width宽度number120false
height高度number32false
maxDisplay下拉面板最多能展示的下拉项数,超过后滚动显示number6false
modelValue(v-model)当前选中的 option 条目number | string | nullnullfalse

Option Type

名称说明类型必传
label选项名stringfalse
value选项值string | numberfalse
disabled是否禁用选项booleanfalse
[propName: string]添加一个字符串索引签名,用于包含带有任意数量的其他属性any-

Events

事件名称说明参数
change选项值改变后的回调(value: string | number, label: string, index: number) => void
`,7),Q=JSON.parse('{"title":"选择器 QSelect","description":"","frontmatter":{},"headers":[],"relativePath":"guide/components/select.md","filePath":"guide/components/select.md"}'),f={name:"guide/components/select.md"},B=y({...f,setup(V){const e=c([{label:"北京市",value:1},{label:"上海市",value:2},{label:"纽约市",value:3},{label:"旧金山",value:4},{label:"布宜诺斯艾利斯",value:5},{label:"伊斯坦布尔",value:6},{label:"拜占庭",value:7},{label:"君士坦丁堡",value:8}]),r=c([{label:"北京市",value:1},{label:"上海市",value:2,disabled:!0},{label:"纽约市",value:3},{label:"旧金山",value:4},{label:"布宜诺斯艾利斯",value:5},{label:"伊斯坦布尔",value:6},{label:"拜占庭",value:7},{label:"君士坦丁堡",value:8}]),F=c([{name:"北京市",id:1},{name:"上海市",id:2},{name:"纽约市",id:3},{name:"旧金山",id:4},{name:"布宜诺斯艾利斯",id:5},{name:"伊斯坦布尔",id:6},{name:"拜占庭",id:7},{name:"君士坦丁堡",id:8}]),n=c(1);C(()=>{console.log("QSelectedValue:",n.value)});function t(D,s,l){console.log("value:",D),console.log("label:",s),console.log("index:",l)}return(D,s)=>{const l=A("QSelect");return u(),i("div",null,[d,o(l,{options:e.value,modelValue:n.value,"onUpdate:modelValue":s[0]||(s[0]=a=>n.value=a)},null,8,["options","modelValue"]),q,o(l,{options:e.value,modelValue:n.value,"onUpdate:modelValue":s[1]||(s[1]=a=>n.value=a),disabled:""},null,8,["options","modelValue"]),E,o(l,{options:r.value,modelValue:n.value,"onUpdate:modelValue":s[2]||(s[2]=a=>n.value=a)},null,8,["options","modelValue"]),m,o(l,{options:e.value,"allow-clear":"",modelValue:n.value,"onUpdate:modelValue":s[3]||(s[3]=a=>n.value=a),onChange:t},null,8,["options","modelValue"]),b,o(l,{width:160,height:36,options:e.value,modelValue:n.value,"onUpdate:modelValue":s[4]||(s[4]=a=>n.value=a),onChange:t},null,8,["options","modelValue"]),v,o(l,{options:F.value,label:"name",value:"id",modelValue:n.value,"onUpdate:modelValue":s[5]||(s[5]=a=>n.value=a),onChange:t},null,8,["options","modelValue"]),h,o(l,{options:e.value,"max-display":8,modelValue:n.value,"onUpdate:modelValue":s[6]||(s[6]=a=>n.value=a),onChange:t},null,8,["options","modelValue"]),g])}}});export{Q as __pageData,B as default}; diff --git a/docs/.vitepress/dist/assets/guide_features.md.009e63d0.js b/docs/.vitepress/dist/assets/guide_features.md.009e63d0.js new file mode 100644 index 0000000..acc0a4a --- /dev/null +++ b/docs/.vitepress/dist/assets/guide_features.md.009e63d0.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,V as r}from"./chunks/framework.dc35932b.js";const p=JSON.parse('{"title":"特性","description":"","frontmatter":{},"headers":[],"relativePath":"guide/features.md","filePath":"guide/features.md"}'),i={name:"guide/features.md"},o=r('

特性

介绍

该组件库采用 Vite3 + Vue3 + TS + Scss 实现!

三种使用方式

  • 全局引入所有组件
  • 按需引入部分组件
  • git clone q-ui 到本地后,从 packages 下单独拷贝单文件组件 (SFC) 到项目内使用
',5),s=[o];function l(n,c,_,d,h,u){return t(),a("div",null,s)}const m=e(i,[["render",l]]);export{p as __pageData,m as default}; diff --git a/docs/.vitepress/dist/assets/guide_features.md.009e63d0.lean.js b/docs/.vitepress/dist/assets/guide_features.md.009e63d0.lean.js new file mode 100644 index 0000000..90d4393 --- /dev/null +++ b/docs/.vitepress/dist/assets/guide_features.md.009e63d0.lean.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,V as r}from"./chunks/framework.dc35932b.js";const p=JSON.parse('{"title":"特性","description":"","frontmatter":{},"headers":[],"relativePath":"guide/features.md","filePath":"guide/features.md"}'),i={name:"guide/features.md"},o=r("",5),s=[o];function l(n,c,_,d,h,u){return t(),a("div",null,s)}const m=e(i,[["render",l]]);export{p as __pageData,m as default}; diff --git a/docs/.vitepress/dist/assets/guide_started.md.0f3c8d50.js b/docs/.vitepress/dist/assets/guide_started.md.0f3c8d50.js new file mode 100644 index 0000000..adb6bbe --- /dev/null +++ b/docs/.vitepress/dist/assets/guide_started.md.0f3c8d50.js @@ -0,0 +1,11 @@ +import{_ as s,c as a,o as n,V as o}from"./chunks/framework.dc35932b.js";const A=JSON.parse('{"title":"快速上手","description":"","frontmatter":{},"headers":[],"relativePath":"guide/started.md","filePath":"guide/started.md"}'),l={name:"guide/started.md"},p=o(`

快速上手

安装

With Yarn

bash
$ yarn add @jqw755/q-ui

With NPM

bash
$ npm i @jqw755/q-ui

使用

全局

ts
import { createApp } from "vue"
+import App from "./App.vue"
+
+import QUI from "@jqw755/q-ui"
+import "@jqw755/q-ui/css"
+
+const app = createApp(App)
+app.use(QUI)
+
+app.mount("#app")

单文件

ts
import { QButton } from "@jqw755/q-ui"
+import "@jqw755/q-ui/css"
`,11),t=[p];function e(c,r,i,D,y,C){return n(),a("div",null,t)}const d=s(l,[["render",e]]);export{A as __pageData,d as default}; diff --git a/docs/.vitepress/dist/assets/guide_started.md.0f3c8d50.lean.js b/docs/.vitepress/dist/assets/guide_started.md.0f3c8d50.lean.js new file mode 100644 index 0000000..f961f92 --- /dev/null +++ b/docs/.vitepress/dist/assets/guide_started.md.0f3c8d50.lean.js @@ -0,0 +1 @@ +import{_ as s,c as a,o as n,V as o}from"./chunks/framework.dc35932b.js";const A=JSON.parse('{"title":"快速上手","description":"","frontmatter":{},"headers":[],"relativePath":"guide/started.md","filePath":"guide/started.md"}'),l={name:"guide/started.md"},p=o("",11),t=[p];function e(c,r,i,D,y,C){return n(),a("div",null,t)}const d=s(l,[["render",e]]);export{A as __pageData,d as default}; diff --git a/docs/.vitepress/dist/assets/index.md.eac6bc54.js b/docs/.vitepress/dist/assets/index.md.eac6bc54.js new file mode 100644 index 0000000..3c61191 --- /dev/null +++ b/docs/.vitepress/dist/assets/index.md.eac6bc54.js @@ -0,0 +1 @@ +import{d as a,p as i,c as o,o as s}from"./chunks/framework.dc35932b.js";function r(){return fetch("https://raw.githubusercontent.com/jqw755/q-ui/master/package.json").then(e=>e.json()).then(e=>e.version??"").then(e=>{if(!e)return;const t=document.querySelector("div.VPHero.has-image.VPHomeHero > div > div.main > p.tagline"),n=document.createElement("samp");n.classList.add("version-tag"),n.innerText=e,t==null||t.appendChild(n)})}const l=JSON.parse('{"title":"QUI","titleTemplate":"组件库文档","description":"","frontmatter":{"layout":"home","title":"QUI","titleTemplate":"组件库文档","hero":{"name":"QUI","text":"组件库","tagline":"基于 Vite3 + Vue3 + TS 开发","image":{"src":"/logo.png","alt":"QUI"},"actions":[{"theme":"brand","text":"开始","link":"/guide/features"},{"theme":"alt","text":"在GitHub上查看","link":"https://github.com/jqw755/q-ui"},{"theme":"alt","text":"在NPM上查看","link":"https://www.npmjs.com/package/@jqw755/q-ui"}]}},"headers":[],"relativePath":"index.md","filePath":"index.md"}'),c={name:"index.md"},d=a({...c,setup(e){return i(()=>{r()}),(t,n)=>(s(),o("div"))}});export{l as __pageData,d as default}; diff --git a/docs/.vitepress/dist/assets/index.md.eac6bc54.lean.js b/docs/.vitepress/dist/assets/index.md.eac6bc54.lean.js new file mode 100644 index 0000000..3c61191 --- /dev/null +++ b/docs/.vitepress/dist/assets/index.md.eac6bc54.lean.js @@ -0,0 +1 @@ +import{d as a,p as i,c as o,o as s}from"./chunks/framework.dc35932b.js";function r(){return fetch("https://raw.githubusercontent.com/jqw755/q-ui/master/package.json").then(e=>e.json()).then(e=>e.version??"").then(e=>{if(!e)return;const t=document.querySelector("div.VPHero.has-image.VPHomeHero > div > div.main > p.tagline"),n=document.createElement("samp");n.classList.add("version-tag"),n.innerText=e,t==null||t.appendChild(n)})}const l=JSON.parse('{"title":"QUI","titleTemplate":"组件库文档","description":"","frontmatter":{"layout":"home","title":"QUI","titleTemplate":"组件库文档","hero":{"name":"QUI","text":"组件库","tagline":"基于 Vite3 + Vue3 + TS 开发","image":{"src":"/logo.png","alt":"QUI"},"actions":[{"theme":"brand","text":"开始","link":"/guide/features"},{"theme":"alt","text":"在GitHub上查看","link":"https://github.com/jqw755/q-ui"},{"theme":"alt","text":"在NPM上查看","link":"https://www.npmjs.com/package/@jqw755/q-ui"}]}},"headers":[],"relativePath":"index.md","filePath":"index.md"}'),c={name:"index.md"},d=a({...c,setup(e){return i(()=>{r()}),(t,n)=>(s(),o("div"))}});export{l as __pageData,d as default}; diff --git a/docs/.vitepress/dist/assets/inter-italic-cyrillic-ext.33bd5a8e.woff2 b/docs/.vitepress/dist/assets/inter-italic-cyrillic-ext.33bd5a8e.woff2 new file mode 100644 index 0000000..2a68729 Binary files /dev/null and b/docs/.vitepress/dist/assets/inter-italic-cyrillic-ext.33bd5a8e.woff2 differ diff --git a/docs/.vitepress/dist/assets/inter-italic-cyrillic.ea42a392.woff2 b/docs/.vitepress/dist/assets/inter-italic-cyrillic.ea42a392.woff2 new file mode 100644 index 0000000..f640351 Binary files /dev/null and b/docs/.vitepress/dist/assets/inter-italic-cyrillic.ea42a392.woff2 differ diff --git a/docs/.vitepress/dist/assets/inter-italic-greek-ext.4fbe9427.woff2 b/docs/.vitepress/dist/assets/inter-italic-greek-ext.4fbe9427.woff2 new file mode 100644 index 0000000..0021896 Binary files /dev/null and b/docs/.vitepress/dist/assets/inter-italic-greek-ext.4fbe9427.woff2 differ diff --git a/docs/.vitepress/dist/assets/inter-italic-greek.8f4463c4.woff2 b/docs/.vitepress/dist/assets/inter-italic-greek.8f4463c4.woff2 new file mode 100644 index 0000000..71c265f Binary files /dev/null and b/docs/.vitepress/dist/assets/inter-italic-greek.8f4463c4.woff2 differ diff --git a/docs/.vitepress/dist/assets/inter-italic-latin-ext.bd8920cc.woff2 b/docs/.vitepress/dist/assets/inter-italic-latin-ext.bd8920cc.woff2 new file mode 100644 index 0000000..9c1b944 Binary files /dev/null and b/docs/.vitepress/dist/assets/inter-italic-latin-ext.bd8920cc.woff2 differ diff --git a/docs/.vitepress/dist/assets/inter-italic-latin.bd3b6f56.woff2 b/docs/.vitepress/dist/assets/inter-italic-latin.bd3b6f56.woff2 new file mode 100644 index 0000000..01fcf20 Binary files /dev/null and b/docs/.vitepress/dist/assets/inter-italic-latin.bd3b6f56.woff2 differ diff --git a/docs/.vitepress/dist/assets/inter-italic-vietnamese.6ce511fb.woff2 b/docs/.vitepress/dist/assets/inter-italic-vietnamese.6ce511fb.woff2 new file mode 100644 index 0000000..e4f788e Binary files /dev/null and b/docs/.vitepress/dist/assets/inter-italic-vietnamese.6ce511fb.woff2 differ diff --git a/docs/.vitepress/dist/assets/inter-roman-cyrillic-ext.e75737ce.woff2 b/docs/.vitepress/dist/assets/inter-roman-cyrillic-ext.e75737ce.woff2 new file mode 100644 index 0000000..28593cc Binary files /dev/null and b/docs/.vitepress/dist/assets/inter-roman-cyrillic-ext.e75737ce.woff2 differ diff --git a/docs/.vitepress/dist/assets/inter-roman-cyrillic.5f2c6c8c.woff2 b/docs/.vitepress/dist/assets/inter-roman-cyrillic.5f2c6c8c.woff2 new file mode 100644 index 0000000..a20adc1 Binary files /dev/null and b/docs/.vitepress/dist/assets/inter-roman-cyrillic.5f2c6c8c.woff2 differ diff --git a/docs/.vitepress/dist/assets/inter-roman-greek-ext.ab0619bc.woff2 b/docs/.vitepress/dist/assets/inter-roman-greek-ext.ab0619bc.woff2 new file mode 100644 index 0000000..e3b0be7 Binary files /dev/null and b/docs/.vitepress/dist/assets/inter-roman-greek-ext.ab0619bc.woff2 differ diff --git a/docs/.vitepress/dist/assets/inter-roman-greek.d5a6d92a.woff2 b/docs/.vitepress/dist/assets/inter-roman-greek.d5a6d92a.woff2 new file mode 100644 index 0000000..f790e04 Binary files /dev/null and b/docs/.vitepress/dist/assets/inter-roman-greek.d5a6d92a.woff2 differ diff --git a/docs/.vitepress/dist/assets/inter-roman-latin-ext.0030eebd.woff2 b/docs/.vitepress/dist/assets/inter-roman-latin-ext.0030eebd.woff2 new file mode 100644 index 0000000..715bd90 Binary files /dev/null and b/docs/.vitepress/dist/assets/inter-roman-latin-ext.0030eebd.woff2 differ diff --git a/docs/.vitepress/dist/assets/inter-roman-latin.2ed14f66.woff2 b/docs/.vitepress/dist/assets/inter-roman-latin.2ed14f66.woff2 new file mode 100644 index 0000000..a540b7a Binary files /dev/null and b/docs/.vitepress/dist/assets/inter-roman-latin.2ed14f66.woff2 differ diff --git a/docs/.vitepress/dist/assets/inter-roman-vietnamese.14ce25a6.woff2 b/docs/.vitepress/dist/assets/inter-roman-vietnamese.14ce25a6.woff2 new file mode 100644 index 0000000..5a9f9cb Binary files /dev/null and b/docs/.vitepress/dist/assets/inter-roman-vietnamese.14ce25a6.woff2 differ diff --git a/docs/.vitepress/dist/assets/style.081ce8a1.css b/docs/.vitepress/dist/assets/style.081ce8a1.css new file mode 100644 index 0000000..78bd573 --- /dev/null +++ b/docs/.vitepress/dist/assets/style.081ce8a1.css @@ -0,0 +1 @@ +@charset "UTF-8";@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/q-ui/assets/inter-roman-cyrillic.5f2c6c8c.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/q-ui/assets/inter-roman-cyrillic-ext.e75737ce.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/q-ui/assets/inter-roman-greek.d5a6d92a.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/q-ui/assets/inter-roman-greek-ext.ab0619bc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/q-ui/assets/inter-roman-latin.2ed14f66.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/q-ui/assets/inter-roman-latin-ext.0030eebd.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/q-ui/assets/inter-roman-vietnamese.14ce25a6.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/q-ui/assets/inter-italic-cyrillic.ea42a392.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/q-ui/assets/inter-italic-cyrillic-ext.33bd5a8e.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/q-ui/assets/inter-italic-greek.8f4463c4.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/q-ui/assets/inter-italic-greek-ext.4fbe9427.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/q-ui/assets/inter-italic-latin.bd3b6f56.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/q-ui/assets/inter-italic-latin-ext.bd8920cc.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/q-ui/assets/inter-italic-vietnamese.6ce511fb.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Chinese Quotes;src:local("PingFang SC Regular"),local("PingFang SC"),local("SimHei"),local("Source Han Sans SC");unicode-range:U+2018,U+2019,U+201C,U+201D}:root{--vp-c-white: #ffffff;--vp-c-black: #000000;--vp-c-gray: #8e8e93;--vp-c-text-light-1: rgba(60, 60, 67);--vp-c-text-light-2: rgba(60, 60, 67, .75);--vp-c-text-light-3: rgba(60, 60, 67, .33);--vp-c-text-dark-1: rgba(255, 255, 245, .86);--vp-c-text-dark-2: rgba(235, 235, 245, .6);--vp-c-text-dark-3: rgba(235, 235, 245, .38);--vp-c-green: #10b981;--vp-c-green-light: #34d399;--vp-c-green-lighter: #6ee7b7;--vp-c-green-dark: #059669;--vp-c-green-darker: #047857;--vp-c-green-dimm-1: rgba(16, 185, 129, .05);--vp-c-green-dimm-2: rgba(16, 185, 129, .2);--vp-c-green-dimm-3: rgba(16, 185, 129, .5);--vp-c-yellow: #d97706;--vp-c-yellow-light: #f59e0b;--vp-c-yellow-lighter: #fbbf24;--vp-c-yellow-dark: #b45309;--vp-c-yellow-darker: #92400e;--vp-c-yellow-dimm-1: rgba(234, 179, 8, .05);--vp-c-yellow-dimm-2: rgba(234, 179, 8, .2);--vp-c-yellow-dimm-3: rgba(234, 179, 8, .5);--vp-c-red: #f43f5e;--vp-c-red-light: #fb7185;--vp-c-red-lighter: #fda4af;--vp-c-red-dark: #e11d48;--vp-c-red-darker: #be123c;--vp-c-red-dimm-1: rgba(244, 63, 94, .05);--vp-c-red-dimm-2: rgba(244, 63, 94, .2);--vp-c-red-dimm-3: rgba(244, 63, 94, .5);--vp-c-sponsor: #db2777}:root{--vp-c-bg: #ffffff;--vp-c-bg-elv: #ffffff;--vp-c-bg-elv-up: #ffffff;--vp-c-bg-elv-down: #f6f6f7;--vp-c-bg-elv-mute: #f6f6f7;--vp-c-bg-soft: #f6f6f7;--vp-c-bg-soft-up: #f9f9fa;--vp-c-bg-soft-down: #e3e3e5;--vp-c-bg-soft-mute: #e3e3e5;--vp-c-bg-alt: #f6f6f7;--vp-c-border: rgba(60, 60, 67, .29);--vp-c-divider: rgba(60, 60, 67, .12);--vp-c-gutter: rgba(60, 60, 67, .12);--vp-c-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white);--vp-c-text-1: var(--vp-c-text-light-1);--vp-c-text-2: var(--vp-c-text-light-2);--vp-c-text-3: var(--vp-c-text-light-3);--vp-c-text-inverse-1: var(--vp-c-text-dark-1);--vp-c-text-inverse-2: var(--vp-c-text-dark-2);--vp-c-text-inverse-3: var(--vp-c-text-dark-3);--vp-c-text-code: #476582;--vp-c-brand: var(--vp-c-green);--vp-c-brand-light: var(--vp-c-green-light);--vp-c-brand-lighter: var(--vp-c-green-lighter);--vp-c-brand-dark: var(--vp-c-green-dark);--vp-c-brand-darker: var(--vp-c-green-darker);--vp-c-mute: #f6f6f7;--vp-c-mute-light: #f9f9fc;--vp-c-mute-lighter: #ffffff;--vp-c-mute-dark: #e3e3e5;--vp-c-mute-darker: #d7d7d9}.dark{--vp-c-bg: #1e1e20;--vp-c-bg-elv: #252529;--vp-c-bg-elv-up: #313136;--vp-c-bg-elv-down: #1e1e20;--vp-c-bg-elv-mute: #313136;--vp-c-bg-soft: #252529;--vp-c-bg-soft-up: #313136;--vp-c-bg-soft-down: #1e1e20;--vp-c-bg-soft-mute: #313136;--vp-c-bg-alt: #161618;--vp-c-border: rgba(82, 82, 89, .68);--vp-c-divider: rgba(82, 82, 89, .32);--vp-c-gutter: #000000;--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black);--vp-c-text-1: var(--vp-c-text-dark-1);--vp-c-text-2: var(--vp-c-text-dark-2);--vp-c-text-3: var(--vp-c-text-dark-3);--vp-c-text-inverse-1: var(--vp-c-text-light-1);--vp-c-text-inverse-2: var(--vp-c-text-light-2);--vp-c-text-inverse-3: var(--vp-c-text-light-3);--vp-c-text-code: #c9def1;--vp-c-mute: #313136;--vp-c-mute-light: #3a3a3c;--vp-c-mute-lighter: #505053;--vp-c-mute-dark: #2c2c30;--vp-c-mute-darker: #252529}:root{--vp-font-family-base: "Chinese Quotes", "Inter var", "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-local-nav: 10;--vp-z-index-nav: 20;--vp-z-index-layout-top: 30;--vp-z-index-backdrop: 40;--vp-z-index-sidebar: 50;--vp-z-index-footer: 60}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2m-6 9 2 2 4-4'/%3E%3C/svg%3E")}:root{--vp-layout-max-width: 1440px}:root{--vp-header-anchor-symbol: "#"}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-c-code-dimm: var(--vp-c-text-dark-3);--vp-code-block-color: var(--vp-c-text-dark-1);--vp-code-block-bg: #292b30;--vp-code-block-bg-light: #1e1e20;--vp-code-block-divider-color: #000000;--vp-code-line-highlight-color: rgba(0, 0, 0, .5);--vp-code-line-number-color: var(--vp-c-code-dimm);--vp-code-line-diff-add-color: var(--vp-c-green-dimm-2);--vp-code-line-diff-add-symbol-color: var(--vp-c-green);--vp-code-line-diff-remove-color: var(--vp-c-red-dimm-2);--vp-code-line-diff-remove-symbol-color: var(--vp-c-red);--vp-code-line-warning-color: var(--vp-c-yellow-dimm-2);--vp-code-line-error-color: var(--vp-c-red-dimm-2);--vp-code-copy-code-border-color: transparent;--vp-code-copy-code-bg: var(--vp-code-block-bg-light);--vp-code-copy-code-hover-border-color: var(--vp-c-divider);--vp-code-copy-code-hover-bg: var(--vp-code-block-bg-light);--vp-code-copy-code-active-text: var(--vp-c-text-dark-2);--vp-code-tab-divider: var(--vp-code-block-divider-color);--vp-code-tab-text-color: var(--vp-c-text-dark-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-dark-1);--vp-code-tab-active-text-color: var(--vp-c-text-dark-1);--vp-code-tab-active-bar-color: var(--vp-c-brand)}.dark{--vp-code-block-bg: #161618}:root:not(.dark) .vp-adaptive-theme{--vp-c-code-dimm: var(--vp-c-text-2);--vp-code-block-color: var(--vp-c-text-1);--vp-code-block-bg: #f8f8f8;--vp-code-block-divider-color: var(--vp-c-divider);--vp-code-line-highlight-color: #ececec;--vp-code-line-number-color: var(--vp-c-code-dimm);--vp-code-copy-code-bg: #e2e2e2;--vp-code-copy-code-hover-bg: #dcdcdc;--vp-code-copy-code-active-text: var(--vp-c-text-2);--vp-code-tab-divider: var(--vp-c-divider);--vp-code-tab-text-color: var(--vp-c-text-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-1);--vp-code-tab-active-text-color: var(--vp-c-text-1)}:root{--vp-button-brand-border: var(--vp-c-brand-lighter);--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand);--vp-button-brand-hover-border: var(--vp-c-brand-lighter);--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-dark);--vp-button-brand-active-border: var(--vp-c-brand-lighter);--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-darker);--vp-button-alt-border: var(--vp-c-border);--vp-button-alt-text: var(--vp-c-neutral);--vp-button-alt-bg: var(--vp-c-mute);--vp-button-alt-hover-border: var(--vp-c-border);--vp-button-alt-hover-text: var(--vp-c-neutral);--vp-button-alt-hover-bg: var(--vp-c-mute-dark);--vp-button-alt-active-border: var(--vp-c-border);--vp-button-alt-active-text: var(--vp-c-neutral);--vp-button-alt-active-bg: var(--vp-c-mute-darker);--vp-button-sponsor-border: var(--vp-c-gray-light-3);--vp-button-sponsor-text: var(--vp-c-text-light-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}.dark{--vp-button-sponsor-border: var(--vp-c-gray-dark-1);--vp-button-sponsor-text: var(--vp-c-text-dark-2)}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: var(--vp-c-border);--vp-custom-block-info-text: var(--vp-c-text-2);--vp-custom-block-info-bg: var(--vp-c-bg-soft-up);--vp-custom-block-info-code-bg: var(--vp-c-bg-soft);--vp-custom-block-tip-border: var(--vp-c-green);--vp-custom-block-tip-text: var(--vp-c-green-dark);--vp-custom-block-tip-bg: var(--vp-c-bg-soft-up);--vp-custom-block-tip-code-bg: var(--vp-c-bg-soft);--vp-custom-block-warning-border: var(--vp-c-yellow);--vp-custom-block-warning-text: var(--vp-c-yellow);--vp-custom-block-warning-bg: var(--vp-c-bg-soft-up);--vp-custom-block-warning-code-bg: var(--vp-c-bg-soft);--vp-custom-block-danger-border: var(--vp-c-red);--vp-custom-block-danger-text: var(--vp-c-red);--vp-custom-block-danger-bg: var(--vp-c-bg-soft-up);--vp-custom-block-danger-code-bg: var(--vp-c-bg-soft);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-details-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-hover-border-color: var(--vp-c-gray);--vp-input-switch-bg-color: var(--vp-c-mute)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg)}:root{--vp-local-nav-bg-color: var(--vp-c-bg)}:root{--vp-sidebar-width: 272px;--vp-sidebar-bg-color: var(--vp-c-bg-alt)}:root{--vp-backdrop-bg-color: rgba(0, 0, 0, .6)}:root{--vp-home-hero-name-color: var(--vp-c-brand);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: var(--vp-c-border);--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-bg-soft-up);--vp-badge-tip-border: var(--vp-c-green-dark);--vp-badge-tip-text: var(--vp-c-green);--vp-badge-tip-bg: var(--vp-c-green-dimm-1);--vp-badge-warning-border: var(--vp-c-yellow-dark);--vp-badge-warning-text: var(--vp-c-yellow);--vp-badge-warning-bg: var(--vp-c-yellow-dimm-1);--vp-badge-danger-border: var(--vp-c-red-dark);--vp-badge-danger-text: var(--vp-c-red);--vp-badge-danger-bg: var(--vp-c-red-dimm-1)}:root{--vp-carbon-ads-text-color: var(--vp-c-text-1);--vp-carbon-ads-poweredby-color: var(--vp-c-text-2);--vp-carbon-ads-bg-color: var(--vp-c-bg-soft);--vp-carbon-ads-hover-text-color: var(--vp-c-brand);--vp-carbon-ads-hover-poweredby-color: var(--vp-c-text-1)}:root{--vp-local-search-bg: var(--vp-c-bg);--vp-local-search-result-bg: var(--vp-c-bg);--vp-local-search-result-border: var(--vp-c-divider);--vp-local-search-result-selected-bg: var(--vp-c-bg);--vp-local-search-result-selected-border: var(--vp-c-brand);--vp-local-search-highlight-bg: var(--vp-c-green-lighter);--vp-local-search-highlight-text: var(--vp-c-black)}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);direction:ltr;font-synthesis:style;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button:enabled,[role=button]:enabled{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}h1,h2,h3,h4,h5,h6,li,p{overflow-wrap:break-word}vite-error-overlay{z-index:9999}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:var(--vp-custom-block-font-size);color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.custom-block th,.custom-block.custom-block blockquote>p{font-size:var(--vp-custom-block-font-size);color:inherit}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:600}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700;cursor:pointer}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600}.custom-block a:hover{text-decoration:underline}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.dark .vp-code-light{display:none}html:not(.dark) .vp-code-dark{display:none}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;background-color:var(--vp-code-tab-bg);overflow-x:auto;overflow-y:hidden}.vp-code-group .tabs:after{position:absolute;right:0;bottom:0;left:0;height:1px;background-color:var(--vp-code-tab-divider);content:""}@media (min-width: 640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:absolute;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-code-tab-text-color);white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:1;height:1px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:var(--vp-code-tab-hover-text-color)}.vp-code-group input:checked+label{color:var(--vp-code-tab-active-text-color)}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-]{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-].active{display:block}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc .header-anchor{float:left;margin-left:-.87em;padding-right:.23em;font-weight:500;user-select:none;opacity:0;transition:color .25s,opacity .25s}.vp-doc .header-anchor:before{content:var(--vp-header-anchor-symbol)}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media (min-width: 768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s}.vp-doc blockquote>p{margin:0;font-size:16px;color:var(--vp-c-text-2);transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand);text-decoration-style:dotted;transition:color .25s}.vp-doc a:hover{text-decoration:underline}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:8px 16px}.vp-doc th{text-align:left;font-size:14px;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-doc td{font-size:14px}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block a{color:inherit;font-weight:600}.vp-doc .custom-block a:hover{text-decoration:underline}.vp-doc .custom-block code{font-size:var(--vp-custom-block-code-font-size);font-weight:700;color:inherit}.vp-doc .custom-block div[class*=language-]{margin:8px 0}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;color:var(--vp-c-text-code);background-color:var(--vp-c-mute);transition:color .5s,background-color .5s}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code{font-size:.9em}.vp-doc a>code{color:var(--vp-c-brand);transition:color .25s}.vp-doc a:hover>code{color:var(--vp-c-brand-dark)}.vp-doc div[class*=language-]{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media (min-width: 640px){.vp-doc div[class*=language-]{border-radius:8px;margin:16px 0}}@media (max-width: 639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:20px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;min-width:100%;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc [class*=language-] code .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .highlighted.error{background-color:var(--vp-code-line-error-color)}.vp-doc [class*=language-] code .highlighted.warning{background-color:var(--vp-code-line-warning-color)}.vp-doc [class*=language-] code .diff{transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .diff:before{position:absolute;left:10px}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){filter:blur(.095rem);opacity:.4;transition:filter .35s,opacity .35s}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;transition:filter .35s,opacity .35s}.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus){filter:blur(0);opacity:1}.vp-doc [class*=language-] code .diff.remove{background-color:var(--vp-code-line-diff-remove-color);opacity:.7}.vp-doc [class*=language-] code .diff.remove:before{content:"-";color:var(--vp-code-line-diff-remove-symbol-color)}.vp-doc [class*=language-] code .diff.add{background-color:var(--vp-code-line-diff-add-color)}.vp-doc [class*=language-] code .diff.add:before{content:"+";color:var(--vp-code-line-diff-add-symbol-color)}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-code-block-divider-color);padding-top:20px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>button.copy{direction:ltr;position:absolute;top:12px;right:12px;z-index:3;border:1px solid var(--vp-code-copy-code-border-color);border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-copy-code-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:border-color .25s,background-color .25s,opacity .25s}.vp-doc [class*=language-]:hover>button.copy,.vp-doc [class*=language-]>button.copy:focus{opacity:1}.vp-doc [class*=language-]>button.copy:hover,.vp-doc [class*=language-]>button.copy.copied{border-color:var(--vp-code-copy-code-hover-border-color);background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>button.copy.copied,.vp-doc [class*=language-]>button.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>button.copy.copied:before,.vp-doc [class*=language-]>button.copy:hover.copied:before{position:relative;top:-1px;left:-65px;display:flex;justify-content:center;align-items:center;border:1px solid var(--vp-code-copy-code-hover-border-color);border-right:0;border-radius:4px 0 0 4px;width:64px;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:"Copied"}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;color:var(--vp-c-code-dimm);transition:color .4s,opacity .4s}.vp-doc [class*=language-]:hover>button.copy+span.lang,.vp-doc [class*=language-]>button.copy:focus+span.lang{opacity:0}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin-bottom:4px;text-align:center;letter-spacing:1px;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-bg-soft-down)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPBadge[data-v-350d3852]{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:10px;padding:0 8px;line-height:18px;font-size:12px;font-weight:600;transform:translateY(-2px)}h1 .VPBadge[data-v-350d3852],h2 .VPBadge[data-v-350d3852],h3 .VPBadge[data-v-350d3852],h4 .VPBadge[data-v-350d3852],h5 .VPBadge[data-v-350d3852],h6 .VPBadge[data-v-350d3852]{vertical-align:top}h2 .VPBadge[data-v-350d3852]{border-radius:11px;line-height:20px}.VPBadge.info[data-v-350d3852]{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip[data-v-350d3852]{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning[data-v-350d3852]{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger[data-v-350d3852]{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPSkipLink[data-v-b8b11faa]{top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-b8b11faa]:focus{height:auto;width:auto;clip:auto;clip-path:none}@media (min-width: 1280px){.VPSkipLink[data-v-b8b11faa]{top:14px;left:16px}}.VPBackdrop[data-v-c79a1216]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vp-z-index-backdrop);background:var(--vp-backdrop-bg-color);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-c79a1216],.VPBackdrop.fade-leave-to[data-v-c79a1216]{opacity:0}.VPBackdrop.fade-leave-active[data-v-c79a1216]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-c79a1216]{display:none}}html:not(.dark) .VPImage.dark[data-v-6db2186b]{display:none}.dark .VPImage.light[data-v-6db2186b]{display:none}.title[data-v-4d981103]{display:flex;align-items:center;border-bottom:1px solid transparent;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}@media (min-width: 960px){.title[data-v-4d981103]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-4d981103]{border-bottom-color:var(--vp-c-divider)}}[data-v-4d981103] .logo{margin-right:8px;height:24px}/*! @docsearch/css 3.5.1 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;position:relative;padding:0 0 2px;border:0;top:-1px;width:20px}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:2px;box-shadow:var(--docsearch-key-shadow);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;color:var(--docsearch-muted-color);border:0;width:20px}@media (max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.DocSearch{--docsearch-primary-color: var(--vp-c-brand);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-text-color: var(--vp-c-text-1);--docsearch-muted-color: var(--vp-c-text-2);--docsearch-searchbox-shadow: none;--docsearch-searchbox-focus-background: transparent;--docsearch-key-gradient: transparent;--docsearch-key-shadow: none;--docsearch-modal-background: var(--vp-c-bg-soft);--docsearch-footer-background: var(--vp-c-bg)}.dark .DocSearch{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: var(--vp-c-text-2);--docsearch-hit-background: var(--vp-c-bg-soft-mute);--docsearch-hit-color: var(--vp-c-text-2);--docsearch-hit-shadow: none}.DocSearch-Button{display:flex;justify-content:center;align-items:center;margin:0;padding:0;width:48px;height:55px;background:transparent;transition:border-color .25s}.DocSearch-Button:hover{background:transparent}.DocSearch-Button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.DocSearch-Button:focus:not(:focus-visible){outline:none!important}@media (min-width: 768px){.DocSearch-Button{justify-content:flex-start;border:1px solid transparent;border-radius:8px;padding:0 10px 0 12px;width:100%;height:40px;background-color:var(--vp-c-bg-alt)}.DocSearch-Button:hover{border-color:var(--vp-c-brand);background:var(--vp-c-bg-alt)}}.DocSearch-Button .DocSearch-Button-Container{display:flex;align-items:center}.DocSearch-Button .DocSearch-Search-Icon{position:relative;width:16px;height:16px;color:var(--vp-c-text-1);fill:currentColor;transition:color .5s}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Search-Icon{top:1px;margin-right:8px;width:14px;height:14px;color:var(--vp-c-text-2)}}.DocSearch-Button .DocSearch-Button-Placeholder{display:none;margin-top:2px;padding:0 16px 0 0;font-size:13px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Placeholder{display:inline-block}}.DocSearch-Button .DocSearch-Button-Keys{direction:ltr;display:none;min-width:auto}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Keys{display:flex;align-items:center}}.DocSearch-Button .DocSearch-Button-Key{display:block;margin:2px 0 0;border:1px solid var(--vp-c-divider);border-right:none;border-radius:4px 0 0 4px;padding-left:6px;min-width:0;width:auto;height:22px;line-height:22px;font-family:var(--vp-font-family-base);font-size:12px;font-weight:500;transition:color .5s,border-color .5s}.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key{border-right:1px solid var(--vp-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.DocSearch-Button .DocSearch-Button-Key:first-child{font-size:1px;letter-spacing:-12px;color:transparent}.DocSearch-Button .DocSearch-Button-Key:first-child:after{content:var(--vp-meta-key);font-size:12px;letter-spacing:normal;color:var(--docsearch-muted-color)}.DocSearch-Button .DocSearch-Button-Key:first-child>*{display:none}.VPNavBarSearch{display:flex;align-items:center}@media (min-width: 768px){.VPNavBarSearch{flex-grow:1;padding-left:24px}}@media (min-width: 960px){.VPNavBarSearch{padding-left:32px}}.dark .DocSearch-Footer{border-top:1px solid var(--vp-c-divider)}.DocSearch-Form{border:1px solid var(--vp-c-brand);background-color:var(--vp-c-white)}.dark .DocSearch-Form{background-color:var(--vp-c-bg-soft-mute)}.DocSearch-Screen-Icon>svg{margin:auto}.icon[data-v-8f4dc553]{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;fill:var(--vp-c-text-3);transition:fill .25s;flex-shrink:0}.VPNavBarMenuLink[data-v-5e623618]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-5e623618],.VPNavBarMenuLink[data-v-5e623618]:hover{color:var(--vp-c-brand)}.VPMenuGroup+.VPMenuLink[data-v-2f2cfafc]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-2f2cfafc]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-2f2cfafc]:hover{color:var(--vp-c-brand);background-color:var(--vp-c-bg-elv-mute)}.link.active[data-v-2f2cfafc]{color:var(--vp-c-brand)}.VPMenuGroup[data-v-69e747b5]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-69e747b5]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-69e747b5]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-69e747b5]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);white-space:nowrap;transition:color .25s}.VPMenu[data-v-e7ea1737]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-elv);box-shadow:var(--vp-shadow-3);transition:background-color .5s;max-height:calc(100vh - var(--vp-nav-height));overflow-y:auto}.VPMenu[data-v-e7ea1737] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-e7ea1737] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-e7ea1737] .group:last-child{padding-bottom:0}.VPMenu[data-v-e7ea1737] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-e7ea1737] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-e7ea1737] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-e7ea1737] .action{padding-left:24px}.VPFlyout[data-v-764effdf]{position:relative}.VPFlyout[data-v-764effdf]:hover{color:var(--vp-c-brand);transition:color .25s}.VPFlyout:hover .text[data-v-764effdf]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-764effdf]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-764effdf]{color:var(--vp-c-brand)}.VPFlyout.active:hover .text[data-v-764effdf]{color:var(--vp-c-brand-dark)}.VPFlyout:hover .menu[data-v-764effdf],.button[aria-expanded=true]+.menu[data-v-764effdf]{opacity:1;visibility:visible;transform:translateY(0)}.button[data-v-764effdf]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height);color:var(--vp-c-text-1);transition:color .5s}.text[data-v-764effdf]{display:flex;align-items:center;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.option-icon[data-v-764effdf]{margin-right:0;width:16px;height:16px;fill:currentColor}.text-icon[data-v-764effdf]{margin-left:4px;width:14px;height:14px;fill:currentColor}.icon[data-v-764effdf]{width:20px;height:20px;fill:currentColor;transition:fill .25s}.menu[data-v-764effdf]{position:absolute;top:calc(var(--vp-nav-height) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}.VPNavBarMenu[data-v-7f418b0f]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-7f418b0f]{display:flex}}.VPNavBarTranslations[data-v-74abcbb9]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-74abcbb9]{display:flex;align-items:center}}.title[data-v-74abcbb9]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPSwitch[data-v-f3c41672]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-input-border-color);background-color:var(--vp-input-switch-bg-color);transition:border-color .25s}.VPSwitch[data-v-f3c41672]:hover{border-color:var(--vp-input-hover-border-color)}.check[data-v-f3c41672]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-neutral-inverse);box-shadow:var(--vp-shadow-1);transition:transform .25s}.icon[data-v-f3c41672]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-f3c41672] svg{position:absolute;top:3px;left:3px;width:12px;height:12px;fill:var(--vp-c-text-2)}.dark .icon[data-v-f3c41672] svg{fill:var(--vp-c-text-1);transition:opacity .25s}.sun[data-v-82b282f1]{opacity:1}.moon[data-v-82b282f1],.dark .sun[data-v-82b282f1]{opacity:0}.dark .moon[data-v-82b282f1]{opacity:1}.dark .VPSwitchAppearance[data-v-82b282f1] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-f6a63727]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-f6a63727]{display:flex;align-items:center}}.VPSocialLink[data-v-36371990]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-36371990]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-36371990]>svg{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-7bc22406]{display:flex;justify-content:center}.VPNavBarSocialLinks[data-v-0394ad82]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-0394ad82]{display:flex;align-items:center}}.VPNavBarExtra[data-v-40855f84]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-40855f84]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-40855f84]{display:none}}.trans-title[data-v-40855f84]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-40855f84],.item.social-links[data-v-40855f84]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-40855f84]{min-width:176px}.appearance-action[data-v-40855f84]{margin-right:-2px}.social-links-list[data-v-40855f84]{margin:-4px -8px}.VPNavBarHamburger[data-v-e5dd9c1c]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-e5dd9c1c]{display:none}}.container[data-v-e5dd9c1c]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-e5dd9c1c]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-e5dd9c1c]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-e5dd9c1c]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-e5dd9c1c]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-e5dd9c1c]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-e5dd9c1c]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-e5dd9c1c],.VPNavBarHamburger.active:hover .middle[data-v-e5dd9c1c],.VPNavBarHamburger.active:hover .bottom[data-v-e5dd9c1c]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-e5dd9c1c],.middle[data-v-e5dd9c1c],.bottom[data-v-e5dd9c1c]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-e5dd9c1c]{top:0;left:0;transform:translate(0)}.middle[data-v-e5dd9c1c]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-e5dd9c1c]{top:12px;left:0;transform:translate(4px)}.VPNavBar[data-v-7683ced7]{position:relative;border-bottom:1px solid transparent;padding:0 8px 0 24px;height:var(--vp-nav-height);pointer-events:none;white-space:nowrap}@media (min-width: 768px){.VPNavBar[data-v-7683ced7]{padding:0 32px}}@media (min-width: 960px){.VPNavBar.has-sidebar[data-v-7683ced7]{padding:0}.VPNavBar.fill[data-v-7683ced7]:not(.has-sidebar){border-bottom-color:var(--vp-c-gutter);background-color:var(--vp-nav-bg-color)}}.container[data-v-7683ced7]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px);height:var(--vp-nav-height);pointer-events:none}.container>.title[data-v-7683ced7],.container>.content[data-v-7683ced7]{pointer-events:none}.container[data-v-7683ced7] *{pointer-events:auto}@media (min-width: 960px){.VPNavBar.has-sidebar .container[data-v-7683ced7]{max-width:100%}}.title[data-v-7683ced7]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .title[data-v-7683ced7]{position:absolute;top:0;left:0;z-index:2;padding:0 32px;width:var(--vp-sidebar-width);height:var(--vp-nav-height);background-color:transparent}}@media (min-width: 1440px){.VPNavBar.has-sidebar .title[data-v-7683ced7]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.content[data-v-7683ced7]{flex-grow:1}@media (min-width: 960px){.VPNavBar.has-sidebar .content[data-v-7683ced7]{position:relative;z-index:1;padding-right:32px;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .content[data-v-7683ced7]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2 + 32px);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.content-body[data-v-7683ced7]{display:flex;justify-content:flex-end;align-items:center;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .content-body[data-v-7683ced7],.VPNavBar.fill .content-body[data-v-7683ced7]{position:relative;background-color:var(--vp-nav-bg-color)}}@media (max-width: 768px){.content-body[data-v-7683ced7]{column-gap:.5rem}}.menu+.translations[data-v-7683ced7]:before,.menu+.appearance[data-v-7683ced7]:before,.menu+.social-links[data-v-7683ced7]:before,.translations+.appearance[data-v-7683ced7]:before,.appearance+.social-links[data-v-7683ced7]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-7683ced7]:before,.translations+.appearance[data-v-7683ced7]:before{margin-right:16px}.appearance+.social-links[data-v-7683ced7]:before{margin-left:16px}.social-links[data-v-7683ced7]{margin-right:-8px}@media (min-width: 960px){.VPNavBar.has-sidebar .curtain[data-v-7683ced7]{position:absolute;right:0;bottom:-31px;width:calc(100% - var(--vp-sidebar-width));height:32px}.VPNavBar.has-sidebar .curtain[data-v-7683ced7]:before{display:block;width:100%;height:32px;background:linear-gradient(var(--vp-c-bg),transparent 70%);content:""}}@media (min-width: 1440px){.VPNavBar.has-sidebar .curtain[data-v-7683ced7]{width:calc(100% - ((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width)))}}.VPNavScreenMenuLink[data-v-30be0acb]{display:block;border-bottom:1px solid var(--vp-c-divider);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .25s,color .25s}.VPNavScreenMenuLink[data-v-30be0acb]:hover{color:var(--vp-c-brand)}.VPNavScreenMenuGroupLink[data-v-6656c42a]{display:block;margin-left:12px;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s}.VPNavScreenMenuGroupLink[data-v-6656c42a]:hover{color:var(--vp-c-brand)}.VPNavScreenMenuGroupSection[data-v-8133b170]{display:block}.title[data-v-8133b170]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-338a1689]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-338a1689]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-338a1689]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-338a1689]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-338a1689]{padding-bottom:6px;color:var(--vp-c-brand)}.VPNavScreenMenuGroup.open .button-icon[data-v-338a1689]{transform:rotate(45deg)}.button[data-v-338a1689]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-338a1689]:hover{color:var(--vp-c-brand)}.button-icon[data-v-338a1689]{width:14px;height:14px;fill:var(--vp-c-text-2);transition:fill .5s,transform .25s}.group[data-v-338a1689]:first-child{padding-top:0}.group+.group[data-v-338a1689],.group+.item[data-v-338a1689]{padding-top:4px}.VPNavScreenAppearance[data-v-add8f686]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft)}.text[data-v-add8f686]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenTranslations[data-v-d72aa483]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-d72aa483]{height:auto}.title[data-v-d72aa483]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-d72aa483]{width:16px;height:16px;fill:currentColor}.icon.lang[data-v-d72aa483]{margin-right:8px}.icon.chevron[data-v-d72aa483]{margin-left:4px}.list[data-v-d72aa483]{padding:4px 0 0 24px}.link[data-v-d72aa483]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-724636ae]{position:fixed;top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 1px);right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-nav-screen-bg-color);overflow-y:auto;transition:background-color .5s;pointer-events:auto}.VPNavScreen.fade-enter-active[data-v-724636ae],.VPNavScreen.fade-leave-active[data-v-724636ae]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-724636ae],.VPNavScreen.fade-leave-active .container[data-v-724636ae]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-724636ae],.VPNavScreen.fade-leave-to[data-v-724636ae]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-724636ae],.VPNavScreen.fade-leave-to .container[data-v-724636ae]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-724636ae]{display:none}}.container[data-v-724636ae]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-724636ae],.menu+.appearance[data-v-724636ae],.translations+.appearance[data-v-724636ae]{margin-top:24px}.menu+.social-links[data-v-724636ae]{margin-top:16px}.appearance+.social-links[data-v-724636ae]{margin-top:16px}.VPNav[data-v-7e5bc4a5]{position:relative;top:var(--vp-layout-top-height, 0px);left:0;z-index:var(--vp-z-index-nav);width:100%;pointer-events:none;transition:background-color .5s}@media (min-width: 960px){.VPNav[data-v-7e5bc4a5]{position:fixed}}.root[data-v-9a431c33]{position:relative;z-index:1}.nested[data-v-9a431c33]{padding-left:13px}.outline-link[data-v-9a431c33]{display:block;line-height:28px;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s;font-weight:500}.outline-link[data-v-9a431c33]:hover,.outline-link.active[data-v-9a431c33]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-9a431c33]{padding-left:13px}.VPLocalNavOutlineDropdown[data-v-687955bc]{padding:12px 20px 11px}.VPLocalNavOutlineDropdown button[data-v-687955bc]{display:block;font-size:12px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;position:relative}.VPLocalNavOutlineDropdown button[data-v-687955bc]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPLocalNavOutlineDropdown button.open[data-v-687955bc]{color:var(--vp-c-text-1)}.icon[data-v-687955bc]{display:inline-block;vertical-align:middle;margin-left:2px;width:14px;height:14px;fill:currentColor}[data-v-687955bc] .outline-link{font-size:14px;padding:2px 0}.open>.icon[data-v-687955bc]{transform:rotate(90deg)}.items[data-v-687955bc]{position:absolute;left:20px;right:20px;top:64px;background-color:var(--vp-local-nav-bg-color);padding:4px 10px 16px;border:1px solid var(--vp-c-divider);border-radius:8px;max-height:calc(var(--vp-vh, 100vh) - 86px);overflow:hidden auto;box-shadow:var(--vp-shadow-3)}.top-link[data-v-687955bc]{display:block;color:var(--vp-c-brand);font-size:13px;font-weight:500;padding:6px 0;margin:0 13px 10px;border-bottom:1px solid var(--vp-c-divider)}.flyout-enter-active[data-v-687955bc]{transition:all .2s ease-out}.flyout-leave-active[data-v-687955bc]{transition:all .15s ease-in}.flyout-enter-from[data-v-687955bc],.flyout-leave-to[data-v-687955bc]{opacity:0;transform:translateY(-16px)}.VPLocalNav[data-v-9074c407]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--vp-c-gutter);border-bottom:1px solid var(--vp-c-gutter);padding-top:var(--vp-layout-top-height, 0px);width:100%;background-color:var(--vp-local-nav-bg-color)}.VPLocalNav.fixed[data-v-9074c407]{position:fixed}.VPLocalNav.reached-top[data-v-9074c407]{border-top-color:transparent}@media (min-width: 960px){.VPLocalNav[data-v-9074c407]{display:none}}.menu[data-v-9074c407]{display:flex;align-items:center;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-9074c407]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-9074c407]{padding:0 32px}}.menu-icon[data-v-9074c407]{margin-right:8px;width:16px;height:16px;fill:currentColor}.VPOutlineDropdown[data-v-9074c407]{padding:12px 24px 11px}@media (min-width: 768px){.VPOutlineDropdown[data-v-9074c407]{padding:12px 32px 11px}}.VPSidebarItem.level-0[data-v-c4656e6d]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-c4656e6d]{padding-bottom:10px}.item[data-v-c4656e6d]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-c4656e6d]{cursor:pointer}.indicator[data-v-c4656e6d]{position:absolute;top:6px;bottom:6px;left:-17px;width:1px;transition:background-color .25s}.VPSidebarItem.level-2.is-active>.item>.indicator[data-v-c4656e6d],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-c4656e6d],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-c4656e6d],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-c4656e6d]{background-color:var(--vp-c-brand)}.link[data-v-c4656e6d]{display:flex;align-items:center;flex-grow:1}.text[data-v-c4656e6d]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-c4656e6d]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-c4656e6d],.VPSidebarItem.level-2 .text[data-v-c4656e6d],.VPSidebarItem.level-3 .text[data-v-c4656e6d],.VPSidebarItem.level-4 .text[data-v-c4656e6d],.VPSidebarItem.level-5 .text[data-v-c4656e6d]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-c4656e6d],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-c4656e6d],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-c4656e6d],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-c4656e6d],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-c4656e6d],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-c4656e6d]{color:var(--vp-c-brand)}.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-c4656e6d],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-c4656e6d],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-c4656e6d],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-c4656e6d],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-c4656e6d],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-c4656e6d]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-c4656e6d],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-c4656e6d],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-c4656e6d],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-c4656e6d],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-c4656e6d],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-c4656e6d]{color:var(--vp-c-brand)}.caret[data-v-c4656e6d]{display:flex;justify-content:center;align-items:center;margin-right:-7px;width:32px;height:32px;color:var(--vp-c-text-3);cursor:pointer;transition:color .25s}.item:hover .caret[data-v-c4656e6d]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-c4656e6d]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-c4656e6d]{width:18px;height:18px;fill:currentColor;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-c4656e6d]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-c4656e6d],.VPSidebarItem.level-2 .items[data-v-c4656e6d],.VPSidebarItem.level-3 .items[data-v-c4656e6d],.VPSidebarItem.level-4 .items[data-v-c4656e6d],.VPSidebarItem.level-5 .items[data-v-c4656e6d]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-c4656e6d]{display:none}.VPSidebar[data-v-af16598e]{position:fixed;top:var(--vp-layout-top-height, 0px);bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-sidebar-bg-color);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease;overscroll-behavior:contain}.VPSidebar.open[data-v-af16598e]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-af16598e]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-af16598e]{z-index:1;padding-top:var(--vp-nav-height);padding-bottom:128px;width:var(--vp-sidebar-width);max-width:100%;background-color:var(--vp-sidebar-bg-color);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media (min-width: 1440px){.VPSidebar[data-v-af16598e]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}@media (min-width: 960px){.curtain[data-v-af16598e]{position:sticky;top:-64px;left:0;z-index:1;margin-top:calc(var(--vp-nav-height) * -1);margin-right:-32px;margin-left:-32px;height:var(--vp-nav-height);background-color:var(--vp-sidebar-bg-color)}}.nav[data-v-af16598e]{outline:0}.group+.group[data-v-af16598e]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media (min-width: 960px){.group[data-v-af16598e]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPButton[data-v-567ba664]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:600;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-567ba664]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-567ba664]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-567ba664]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-567ba664]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-567ba664]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-567ba664]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-567ba664]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-567ba664]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-567ba664]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-567ba664]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-567ba664]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-567ba664]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}.VPHero[data-v-fd2650d5]{margin-top:calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1);padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) 24px 48px}@media (min-width: 640px){.VPHero[data-v-fd2650d5]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-fd2650d5]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-fd2650d5]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-fd2650d5]{flex-direction:row}}.main[data-v-fd2650d5]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-fd2650d5]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-fd2650d5]{text-align:left}}@media (min-width: 960px){.main[data-v-fd2650d5]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-fd2650d5]{max-width:592px}}.name[data-v-fd2650d5],.text[data-v-fd2650d5]{max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-fd2650d5],.VPHero.has-image .text[data-v-fd2650d5]{margin:0 auto}.name[data-v-fd2650d5]{color:var(--vp-home-hero-name-color)}.clip[data-v-fd2650d5]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media (min-width: 640px){.name[data-v-fd2650d5],.text[data-v-fd2650d5]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-fd2650d5],.text[data-v-fd2650d5]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-fd2650d5],.VPHero.has-image .text[data-v-fd2650d5]{margin:0}}.tagline[data-v-fd2650d5]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-fd2650d5]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-fd2650d5]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-fd2650d5]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-fd2650d5]{margin:0}}.actions[data-v-fd2650d5]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-fd2650d5]{justify-content:center}@media (min-width: 640px){.actions[data-v-fd2650d5]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-fd2650d5]{justify-content:flex-start}}.action[data-v-fd2650d5]{flex-shrink:0;padding:6px}.image[data-v-fd2650d5]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-fd2650d5]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-fd2650d5]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-fd2650d5]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-fd2650d5]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-fd2650d5]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-fd2650d5]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media (min-width: 640px){.image-bg[data-v-fd2650d5]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-fd2650d5]{width:320px;height:320px}}[data-v-fd2650d5] .image-src{position:absolute;top:50%;left:50%;max-width:192px;max-height:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-fd2650d5] .image-src{max-width:256px;max-height:256px}}@media (min-width: 960px){[data-v-fd2650d5] .image-src{max-width:320px;max-height:320px}}.VPFeature[data-v-837f6cca]{display:block;border:1px solid var(--vp-c-bg-soft);border-radius:12px;height:100%;background-color:var(--vp-c-bg-soft);transition:border-color .25s,background-color .25s}.VPFeature.link[data-v-837f6cca]:hover{border-color:var(--vp-c-brand);background-color:var(--vp-c-bg-soft-up)}.box[data-v-837f6cca]{display:flex;flex-direction:column;padding:24px;height:100%}.VPFeature[data-v-837f6cca] .VPImage{width:48px;height:48px;margin-bottom:20px}.icon[data-v-837f6cca]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-bg-soft-down);width:48px;height:48px;font-size:24px;transition:background-color .25s}.title[data-v-837f6cca]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-837f6cca]{flex-grow:1;padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.link-text[data-v-837f6cca]{padding-top:8px}.link-text-value[data-v-837f6cca]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand)}.link-text-icon[data-v-837f6cca]{display:inline-block;margin-left:6px;width:14px;height:14px;fill:currentColor}.VPFeatures[data-v-ba861f23]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-ba861f23]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-ba861f23]{padding:0 64px}}.container[data-v-ba861f23]{margin:0 auto;max-width:1152px}.items[data-v-ba861f23]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-ba861f23]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-ba861f23],.item.grid-4[data-v-ba861f23],.item.grid-6[data-v-ba861f23]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-ba861f23],.item.grid-4[data-v-ba861f23]{width:50%}.item.grid-3[data-v-ba861f23],.item.grid-6[data-v-ba861f23]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-ba861f23]{width:25%}}.VPHome[data-v-d82743a8]{padding-bottom:96px}.VPHome[data-v-d82743a8] .VPHomeSponsors{margin-top:112px;margin-bottom:-128px}@media (min-width: 768px){.VPHome[data-v-d82743a8]{padding-bottom:128px}}.VPDocAsideOutline[data-v-ff0f39c8]{display:none}.VPDocAsideOutline.has-outline[data-v-ff0f39c8]{display:block}.content[data-v-ff0f39c8]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-ff0f39c8]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:1px;height:18px;background-color:var(--vp-c-brand);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-ff0f39c8]{letter-spacing:.4px;line-height:28px;font-size:13px;font-weight:600}.VPDocAside[data-v-3f215769]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-3f215769]{flex-grow:1}.VPDocAside[data-v-3f215769] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-3f215769] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-3f215769] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-7b3ebfe1]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-7b3ebfe1]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-face870a]{margin-top:64px}.edit-info[data-v-face870a]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-face870a]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-face870a]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:color .25s}.edit-link-button[data-v-face870a]:hover{color:var(--vp-c-brand-dark)}.edit-link-icon[data-v-face870a]{margin-right:8px;width:14px;height:14px;fill:currentColor}.prev-next[data-v-face870a]{border-top:1px solid var(--vp-c-divider);padding-top:24px}@media (min-width: 640px){.prev-next[data-v-face870a]{display:flex}}.pager.has-prev[data-v-face870a]{padding-top:8px}@media (min-width: 640px){.pager[data-v-face870a]{display:flex;flex-direction:column;flex-shrink:0;width:50%}.pager.has-prev[data-v-face870a]{padding-top:0;padding-left:16px}}.pager-link[data-v-face870a]{display:block;border:1px solid var(--vp-c-divider);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-face870a]:hover{border-color:var(--vp-c-brand)}.pager-link.next[data-v-face870a]{margin-left:auto;text-align:right}.desc[data-v-face870a]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-face870a]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:color .25s}.VPDocOutlineDropdown[data-v-2edece88]{margin-bottom:42px}.VPDocOutlineDropdown button[data-v-2edece88]{display:block;font-size:14px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;border:1px solid var(--vp-c-border);padding:4px 12px;border-radius:8px}.VPDocOutlineDropdown button[data-v-2edece88]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPDocOutlineDropdown button.open[data-v-2edece88]{color:var(--vp-c-text-1)}.icon[data-v-2edece88]{display:inline-block;vertical-align:middle;margin-left:2px;width:14px;height:14px;fill:currentColor}[data-v-2edece88] .outline-link{font-size:13px}.open>.icon[data-v-2edece88]{transform:rotate(90deg)}.items[data-v-2edece88]{margin-top:10px;border-left:1px solid var(--vp-c-divider)}.VPDoc[data-v-c4b0d3cf]{padding:32px 24px 96px;width:100%}.VPDoc .VPDocOutlineDropdown[data-v-c4b0d3cf]{display:none}@media (min-width: 960px) and (max-width: 1280px){.VPDoc .VPDocOutlineDropdown[data-v-c4b0d3cf]{display:block}}@media (min-width: 768px){.VPDoc[data-v-c4b0d3cf]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-c4b0d3cf]{padding:32px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-c4b0d3cf]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-c4b0d3cf]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-c4b0d3cf]{display:flex;justify-content:center}.VPDoc .aside[data-v-c4b0d3cf]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-c4b0d3cf]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-c4b0d3cf]{max-width:1104px}}.container[data-v-c4b0d3cf]{margin:0 auto;width:100%}.aside[data-v-c4b0d3cf]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.left-aside[data-v-c4b0d3cf]{order:1;padding-left:unset;padding-right:32px}.aside-container[data-v-c4b0d3cf]{position:fixed;top:0;padding-top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 32px);width:224px;height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-c4b0d3cf]::-webkit-scrollbar{display:none}.aside-curtain[data-v-c4b0d3cf]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-c4b0d3cf]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 32px));padding-bottom:32px}.content[data-v-c4b0d3cf]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-c4b0d3cf]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-c4b0d3cf]{order:1;margin:0;min-width:640px}}.content-container[data-v-c4b0d3cf]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-c4b0d3cf]{max-width:688px}.NotFound[data-v-c70503b8]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-c70503b8]{padding:96px 32px 168px}}.code[data-v-c70503b8]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-c70503b8]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-c70503b8]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-c70503b8]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-c70503b8]{padding-top:20px}.link[data-v-c70503b8]{display:inline-block;border:1px solid var(--vp-c-brand);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:border-color .25s,color .25s}.link[data-v-c70503b8]:hover{border-color:var(--vp-c-brand-dark);color:var(--vp-c-brand-dark)}.VPContent[data-v-a494bd1d]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-a494bd1d]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-a494bd1d]{margin:0}@media (min-width: 960px){.VPContent[data-v-a494bd1d]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-a494bd1d]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-a494bd1d]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-f7fc41f4]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-gutter);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-f7fc41f4]{display:none}@media (min-width: 768px){.VPFooter[data-v-f7fc41f4]{padding:32px}}.container[data-v-f7fc41f4]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-f7fc41f4],.copyright[data-v-f7fc41f4]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.Layout[data-v-b2cf3e0b]{display:flex;flex-direction:column;min-height:100vh}.VPHomeSponsors[data-v-3c6e61c2]{border-top:1px solid var(--vp-c-gutter);padding:88px 24px 96px;background-color:var(--vp-c-bg)}.container[data-v-3c6e61c2]{margin:0 auto;max-width:1152px}.love[data-v-3c6e61c2]{margin:0 auto;width:28px;height:28px;color:var(--vp-c-text-3)}.icon[data-v-3c6e61c2]{width:28px;height:28px;fill:currentColor}.message[data-v-3c6e61c2]{margin:0 auto;padding-top:10px;max-width:320px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.sponsors[data-v-3c6e61c2]{padding-top:32px}.action[data-v-3c6e61c2]{padding-top:40px;text-align:center}.VPTeamPage[data-v-10b00018]{padding-bottom:96px}@media (min-width: 768px){.VPTeamPage[data-v-10b00018]{padding-bottom:128px}}.VPTeamPageSection+.VPTeamPageSection[data-v-10b00018-s],.VPTeamMembers+.VPTeamPageSection[data-v-10b00018-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-10b00018-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-10b00018-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-10b00018-s],.VPTeamMembers+.VPTeamPageSection[data-v-10b00018-s]{margin-top:96px}}.VPTeamMembers[data-v-10b00018-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-10b00018-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-10b00018-s]{padding:0 64px}}.VPTeamPageTitle[data-v-bf2cbdac]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-bf2cbdac]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-bf2cbdac]{padding:80px 64px 48px}}.title[data-v-bf2cbdac]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-bf2cbdac]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-bf2cbdac]{margin:0 auto;max-width:512px;padding-top:12px;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 768px){.lead[data-v-bf2cbdac]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}.VPTeamPageSection[data-v-b1a88750]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-b1a88750]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-b1a88750]{padding:0 64px}}.title[data-v-b1a88750]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-b1a88750]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider)}.title-text[data-v-b1a88750]{position:relative;display:inline-block;padding:0 24px;letter-spacing:0;line-height:32px;font-size:20px;font-weight:500;background-color:var(--vp-c-bg)}.lead[data-v-b1a88750]{margin:0 auto;max-width:480px;padding-top:12px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.members[data-v-b1a88750]{padding-top:40px}.VPTeamMembersItem[data-v-a3462077]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-a3462077]{padding:32px}.VPTeamMembersItem.small .data[data-v-a3462077]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-a3462077]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-a3462077]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-a3462077]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-a3462077]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-a3462077]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-a3462077]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-a3462077]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-a3462077]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-a3462077]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-a3462077]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-a3462077]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-a3462077]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-a3462077]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-a3462077]{text-align:center}.avatar[data-v-a3462077]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-a3462077]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-a3462077]{margin:0;font-weight:600}.affiliation[data-v-a3462077]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-a3462077]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-a3462077]:hover{color:var(--vp-c-brand)}.desc[data-v-a3462077]{margin:0 auto}.desc[data-v-a3462077] a{font-weight:500;color:var(--vp-c-brand);text-decoration-style:dotted;transition:color .25s}.links[data-v-a3462077]{display:flex;justify-content:center;height:56px}.sp-link[data-v-a3462077]{display:flex;justify-content:center;align-items:center;text-align:center;padding:16px;font-size:14px;font-weight:500;color:var(--vp-c-sponsor);background-color:var(--vp-c-bg-soft);transition:color .25s,background-color .25s}.sp .sp-link.link[data-v-a3462077]:hover,.sp .sp-link.link[data-v-a3462077]:focus{outline:none;color:var(--vp-c-white);background-color:var(--vp-c-sponsor)}.sp-icon[data-v-a3462077]{margin-right:8px;width:16px;height:16px;fill:currentColor}.VPTeamMembers.small .container[data-v-04685dce]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-04685dce]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-04685dce]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-04685dce]{max-width:876px}.VPTeamMembers.medium .container[data-v-04685dce]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-04685dce]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-04685dce]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-04685dce]{max-width:760px}.container[data-v-04685dce]{display:grid;gap:24px;margin:0 auto;max-width:1152px}._m-flex_xogkl_2{display:flex;flex-wrap:wrap;gap:12px;align-items:center}._u-h3_xogkl_8{margin-top:0!important}.version-tag{font-size:14px;line-height:1.571;font-weight:700;padding:4px 6px;margin-left:6px;background:#bd34fe;color:#fff;border-radius:10px;display:inline-block;vertical-align:top;margin-top:4px}.container .image .image-container .image-bg{height:180px;transform:translate(-50%,30%);background-image:linear-gradient(-45deg,#10b981 50%,#47caff 50%);filter:blur(72px)}.w5{width:5%}.w10{width:10%}.w15{width:15%}.w20{width:20%}.w25{width:25%}.w30{width:30%}.w40{width:40%}.w50{width:50%}.w60{width:60%}.w100{width:100%}.ml-0{margin-left:0}.mr-0{margin-right:0}.mt-0{margin-top:0}.mb-0{margin-bottom:0}.pl-0{padding-left:0}.pr-0{padding-right:0}.pt-0{padding-top:0}.pb-0{padding-bottom:0}.ml-2{margin-left:2px}.mr-2{margin-right:2px}.mt-2{margin-top:2px}.mb-2{margin-bottom:2px}.pl-2{padding-left:2px}.pr-2{padding-right:2px}.pt-2{padding-top:2px}.pb-2{padding-bottom:2px}.ml-5{margin-left:5px}.mr-5{margin-right:5px}.mt-5{margin-top:5px}.mb-5{margin-bottom:5px}.pl-5{padding-left:5px}.pr-5{padding-right:5px}.pt-5{padding-top:5px}.pb-5{padding-bottom:5px}.ml-8{margin-left:8px}.mr-8{margin-right:8px}.mt-8{margin-top:8px}.mb-8{margin-bottom:8px}.pl-8{padding-left:8px}.pr-8{padding-right:8px}.pt-8{padding-top:8px}.pb-8{padding-bottom:8px}.ml-10{margin-left:10px}.mr-10{margin-right:10px}.mt-10{margin-top:10px}.mb-10{margin-bottom:10px}.pl-10{padding-left:10px}.pr-10{padding-right:10px}.pt-10{padding-top:10px}.pb-10{padding-bottom:10px}.ml-12{margin-left:12px}.mr-12{margin-right:12px}.mt-12{margin-top:12px}.mb-12{margin-bottom:12px}.pl-12{padding-left:12px}.pr-12{padding-right:12px}.pt-12{padding-top:12px}.pb-12{padding-bottom:12px}.ml-14{margin-left:14px}.mr-14{margin-right:14px}.mt-14{margin-top:14px}.mb-14{margin-bottom:14px}.pl-14{padding-left:14px}.pr-14{padding-right:14px}.pt-14{padding-top:14px}.pb-14{padding-bottom:14px}.ml-15{margin-left:15px}.mr-15{margin-right:15px}.mt-15{margin-top:15px}.mb-15{margin-bottom:15px}.pl-15{padding-left:15px}.pr-15{padding-right:15px}.pt-15{padding-top:15px}.pb-15{padding-bottom:15px}.ml-16{margin-left:16px}.mr-16{margin-right:16px}.mt-16{margin-top:16px}.mb-16{margin-bottom:16px}.pl-16{padding-left:16px}.pr-16{padding-right:16px}.pt-16{padding-top:16px}.pb-16{padding-bottom:16px}.ml-18{margin-left:18px}.mr-18{margin-right:18px}.mt-18{margin-top:18px}.mb-18{margin-bottom:18px}.pl-18{padding-left:18px}.pr-18{padding-right:18px}.pt-18{padding-top:18px}.pb-18{padding-bottom:18px}.ml-20{margin-left:20px}.mr-20{margin-right:20px}.mt-20{margin-top:20px}.mb-20{margin-bottom:20px}.pl-20{padding-left:20px}.pr-20{padding-right:20px}.pt-20{padding-top:20px}.pb-20{padding-bottom:20px}.ml-24{margin-left:24px}.mr-24{margin-right:24px}.mt-24{margin-top:24px}.mb-24{margin-bottom:24px}.pl-24{padding-left:24px}.pr-24{padding-right:24px}.pt-24{padding-top:24px}.pb-24{padding-bottom:24px}.ml-25{margin-left:25px}.mr-25{margin-right:25px}.mt-25{margin-top:25px}.mb-25{margin-bottom:25px}.pl-25{padding-left:25px}.pr-25{padding-right:25px}.pt-25{padding-top:25px}.pb-25{padding-bottom:25px}.ml-30{margin-left:30px}.mr-30{margin-right:30px}.mt-30{margin-top:30px}.mb-30{margin-bottom:30px}.pl-30{padding-left:30px}.pr-30{padding-right:30px}.pt-30{padding-top:30px}.pb-30{padding-bottom:30px}.ml-36{margin-left:36px}.mr-36{margin-right:36px}.mt-36{margin-top:36px}.mb-36{margin-bottom:36px}.pl-36{padding-left:36px}.pr-36{padding-right:36px}.pt-36{padding-top:36px}.pb-36{padding-bottom:36px}.ml-40{margin-left:40px}.mr-40{margin-right:40px}.mt-40{margin-top:40px}.mb-40{margin-bottom:40px}.pl-40{padding-left:40px}.pr-40{padding-right:40px}.pt-40{padding-top:40px}.pb-40{padding-bottom:40px}.ml-50{margin-left:50px}.mr-50{margin-right:50px}.mt-50{margin-top:50px}.mb-50{margin-bottom:50px}.pl-50{padding-left:50px}.pr-50{padding-right:50px}.pt-50{padding-top:50px}.pb-50{padding-bottom:50px}.ml-100{margin-left:100px}.mr-100{margin-right:100px}.mt-100{margin-top:100px}.mb-100{margin-bottom:100px}.pl-100{padding-left:100px}.pr-100{padding-right:100px}.pt-100{padding-top:100px}.pb-100{padding-bottom:100px}.w5[data-v-4eae179c]{width:5%}.w10[data-v-4eae179c]{width:10%}.w15[data-v-4eae179c]{width:15%}.w20[data-v-4eae179c]{width:20%}.w25[data-v-4eae179c]{width:25%}.w30[data-v-4eae179c]{width:30%}.w40[data-v-4eae179c]{width:40%}.w50[data-v-4eae179c]{width:50%}.w60[data-v-4eae179c]{width:60%}.w100[data-v-4eae179c]{width:100%}.ml-0[data-v-4eae179c]{margin-left:0}.mr-0[data-v-4eae179c]{margin-right:0}.mt-0[data-v-4eae179c]{margin-top:0}.mb-0[data-v-4eae179c]{margin-bottom:0}.pl-0[data-v-4eae179c]{padding-left:0}.pr-0[data-v-4eae179c]{padding-right:0}.pt-0[data-v-4eae179c]{padding-top:0}.pb-0[data-v-4eae179c]{padding-bottom:0}.ml-2[data-v-4eae179c]{margin-left:2px}.mr-2[data-v-4eae179c]{margin-right:2px}.mt-2[data-v-4eae179c]{margin-top:2px}.mb-2[data-v-4eae179c]{margin-bottom:2px}.pl-2[data-v-4eae179c]{padding-left:2px}.pr-2[data-v-4eae179c]{padding-right:2px}.pt-2[data-v-4eae179c]{padding-top:2px}.pb-2[data-v-4eae179c]{padding-bottom:2px}.ml-5[data-v-4eae179c]{margin-left:5px}.mr-5[data-v-4eae179c]{margin-right:5px}.mt-5[data-v-4eae179c]{margin-top:5px}.mb-5[data-v-4eae179c]{margin-bottom:5px}.pl-5[data-v-4eae179c]{padding-left:5px}.pr-5[data-v-4eae179c]{padding-right:5px}.pt-5[data-v-4eae179c]{padding-top:5px}.pb-5[data-v-4eae179c]{padding-bottom:5px}.ml-8[data-v-4eae179c]{margin-left:8px}.mr-8[data-v-4eae179c]{margin-right:8px}.mt-8[data-v-4eae179c]{margin-top:8px}.mb-8[data-v-4eae179c]{margin-bottom:8px}.pl-8[data-v-4eae179c]{padding-left:8px}.pr-8[data-v-4eae179c]{padding-right:8px}.pt-8[data-v-4eae179c]{padding-top:8px}.pb-8[data-v-4eae179c]{padding-bottom:8px}.ml-10[data-v-4eae179c]{margin-left:10px}.mr-10[data-v-4eae179c]{margin-right:10px}.mt-10[data-v-4eae179c]{margin-top:10px}.mb-10[data-v-4eae179c]{margin-bottom:10px}.pl-10[data-v-4eae179c]{padding-left:10px}.pr-10[data-v-4eae179c]{padding-right:10px}.pt-10[data-v-4eae179c]{padding-top:10px}.pb-10[data-v-4eae179c]{padding-bottom:10px}.ml-12[data-v-4eae179c]{margin-left:12px}.mr-12[data-v-4eae179c]{margin-right:12px}.mt-12[data-v-4eae179c]{margin-top:12px}.mb-12[data-v-4eae179c]{margin-bottom:12px}.pl-12[data-v-4eae179c]{padding-left:12px}.pr-12[data-v-4eae179c]{padding-right:12px}.pt-12[data-v-4eae179c]{padding-top:12px}.pb-12[data-v-4eae179c]{padding-bottom:12px}.ml-14[data-v-4eae179c]{margin-left:14px}.mr-14[data-v-4eae179c]{margin-right:14px}.mt-14[data-v-4eae179c]{margin-top:14px}.mb-14[data-v-4eae179c]{margin-bottom:14px}.pl-14[data-v-4eae179c]{padding-left:14px}.pr-14[data-v-4eae179c]{padding-right:14px}.pt-14[data-v-4eae179c]{padding-top:14px}.pb-14[data-v-4eae179c]{padding-bottom:14px}.ml-15[data-v-4eae179c]{margin-left:15px}.mr-15[data-v-4eae179c]{margin-right:15px}.mt-15[data-v-4eae179c]{margin-top:15px}.mb-15[data-v-4eae179c]{margin-bottom:15px}.pl-15[data-v-4eae179c]{padding-left:15px}.pr-15[data-v-4eae179c]{padding-right:15px}.pt-15[data-v-4eae179c]{padding-top:15px}.pb-15[data-v-4eae179c]{padding-bottom:15px}.ml-16[data-v-4eae179c]{margin-left:16px}.mr-16[data-v-4eae179c]{margin-right:16px}.mt-16[data-v-4eae179c]{margin-top:16px}.mb-16[data-v-4eae179c]{margin-bottom:16px}.pl-16[data-v-4eae179c]{padding-left:16px}.pr-16[data-v-4eae179c]{padding-right:16px}.pt-16[data-v-4eae179c]{padding-top:16px}.pb-16[data-v-4eae179c]{padding-bottom:16px}.ml-18[data-v-4eae179c]{margin-left:18px}.mr-18[data-v-4eae179c]{margin-right:18px}.mt-18[data-v-4eae179c]{margin-top:18px}.mb-18[data-v-4eae179c]{margin-bottom:18px}.pl-18[data-v-4eae179c]{padding-left:18px}.pr-18[data-v-4eae179c]{padding-right:18px}.pt-18[data-v-4eae179c]{padding-top:18px}.pb-18[data-v-4eae179c]{padding-bottom:18px}.ml-20[data-v-4eae179c]{margin-left:20px}.mr-20[data-v-4eae179c]{margin-right:20px}.mt-20[data-v-4eae179c]{margin-top:20px}.mb-20[data-v-4eae179c]{margin-bottom:20px}.pl-20[data-v-4eae179c]{padding-left:20px}.pr-20[data-v-4eae179c]{padding-right:20px}.pt-20[data-v-4eae179c]{padding-top:20px}.pb-20[data-v-4eae179c]{padding-bottom:20px}.ml-24[data-v-4eae179c]{margin-left:24px}.mr-24[data-v-4eae179c]{margin-right:24px}.mt-24[data-v-4eae179c]{margin-top:24px}.mb-24[data-v-4eae179c]{margin-bottom:24px}.pl-24[data-v-4eae179c]{padding-left:24px}.pr-24[data-v-4eae179c]{padding-right:24px}.pt-24[data-v-4eae179c]{padding-top:24px}.pb-24[data-v-4eae179c]{padding-bottom:24px}.ml-25[data-v-4eae179c]{margin-left:25px}.mr-25[data-v-4eae179c]{margin-right:25px}.mt-25[data-v-4eae179c]{margin-top:25px}.mb-25[data-v-4eae179c]{margin-bottom:25px}.pl-25[data-v-4eae179c]{padding-left:25px}.pr-25[data-v-4eae179c]{padding-right:25px}.pt-25[data-v-4eae179c]{padding-top:25px}.pb-25[data-v-4eae179c]{padding-bottom:25px}.ml-30[data-v-4eae179c]{margin-left:30px}.mr-30[data-v-4eae179c]{margin-right:30px}.mt-30[data-v-4eae179c]{margin-top:30px}.mb-30[data-v-4eae179c]{margin-bottom:30px}.pl-30[data-v-4eae179c]{padding-left:30px}.pr-30[data-v-4eae179c]{padding-right:30px}.pt-30[data-v-4eae179c]{padding-top:30px}.pb-30[data-v-4eae179c]{padding-bottom:30px}.ml-36[data-v-4eae179c]{margin-left:36px}.mr-36[data-v-4eae179c]{margin-right:36px}.mt-36[data-v-4eae179c]{margin-top:36px}.mb-36[data-v-4eae179c]{margin-bottom:36px}.pl-36[data-v-4eae179c]{padding-left:36px}.pr-36[data-v-4eae179c]{padding-right:36px}.pt-36[data-v-4eae179c]{padding-top:36px}.pb-36[data-v-4eae179c]{padding-bottom:36px}.ml-40[data-v-4eae179c]{margin-left:40px}.mr-40[data-v-4eae179c]{margin-right:40px}.mt-40[data-v-4eae179c]{margin-top:40px}.mb-40[data-v-4eae179c]{margin-bottom:40px}.pl-40[data-v-4eae179c]{padding-left:40px}.pr-40[data-v-4eae179c]{padding-right:40px}.pt-40[data-v-4eae179c]{padding-top:40px}.pb-40[data-v-4eae179c]{padding-bottom:40px}.ml-50[data-v-4eae179c]{margin-left:50px}.mr-50[data-v-4eae179c]{margin-right:50px}.mt-50[data-v-4eae179c]{margin-top:50px}.mb-50[data-v-4eae179c]{margin-bottom:50px}.pl-50[data-v-4eae179c]{padding-left:50px}.pr-50[data-v-4eae179c]{padding-right:50px}.pt-50[data-v-4eae179c]{padding-top:50px}.pb-50[data-v-4eae179c]{padding-bottom:50px}.ml-100[data-v-4eae179c]{margin-left:100px}.mr-100[data-v-4eae179c]{margin-right:100px}.mt-100[data-v-4eae179c]{margin-top:100px}.mb-100[data-v-4eae179c]{margin-bottom:100px}.pl-100[data-v-4eae179c]{padding-left:100px}.pr-100[data-v-4eae179c]{padding-right:100px}.pt-100[data-v-4eae179c]{padding-top:100px}.pb-100[data-v-4eae179c]{padding-bottom:100px}.q-button[data-v-4eae179c]{box-sizing:border-box;height:32px;background-color:#fff;padding:0 12px;cursor:pointer;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;border-radius:3px;box-shadow:0 1px #0000000d;transition:all .25s;color:#333;border:1px solid #d9d9d9;user-select:none}.q-button[data-v-4eae179c]:focus{outline:none}.q-button[data-v-4eae179c]::-moz-focus-inner{border:0}.q-button.q-size-large[data-v-4eae179c]{font-size:24px;height:48px;padding:0 16px}.q-button.q-size-small[data-v-4eae179c]{font-size:12px;height:20px;padding:0 8px}.q-button.is-round.q-size-default[data-v-4eae179c]{border-radius:16px}.q-button.is-round.q-size-large[data-v-4eae179c]{border-radius:24px}.q-button.is-round.q-size-small[data-v-4eae179c]{border-radius:10px}.q-button.q-type-default[data-v-4eae179c]:hover{color:#1bb760;border-color:#1bb760}.q-button.q-type-default.is-disabled[data-v-4eae179c]{cursor:not-allowed;background:#fff;border-color:#e4e7ed}.q-button.q-type-default.is-disabled[data-v-4eae179c]:hover{color:#333;background:#fff;border-color:#e4e7ed}.q-button.q-type-default[data-v-4eae179c]:active{color:#0e5e31;border-color:#0e5e31}.q-button.q-type-default.q-type-dashed[data-v-4eae179c]{border-style:dashed}.q-button.q-type-default>.q-loadingIndicator[data-v-4eae179c]{border-color:#333 #333 #333 transparent}.q-button.q-type-primary[data-v-4eae179c]{background-color:#1bb760;border-color:#1bb760;color:#fff}.q-button.q-type-primary[data-v-4eae179c]:hover{background:#52e694;border-color:#52e694}.q-button.q-type-primary[data-v-4eae179c]:active{background-color:#0e5e31;border-color:#0e5e31}.q-button.q-type-primary.is-disabled[data-v-4eae179c]{cursor:not-allowed;background:#52e694;border-color:#52e694}.q-button.q-type-primary.is-disabled[data-v-4eae179c]:hover{background:#52e694;border-color:#52e694}.q-button.q-type-primary.q-type-dashed[data-v-4eae179c]{border-style:dashed;background-color:#fff!important;color:#1bb760}.q-button.q-type-info[data-v-4eae179c]{background-color:#909399;border-color:#909399;color:#fff}.q-button.q-type-info[data-v-4eae179c]:hover{background:#c5c7ca;border-color:#c5c7ca}.q-button.q-type-info[data-v-4eae179c]:active{background-color:#5d6066;border-color:#5d6066}.q-button.q-type-info.is-disabled[data-v-4eae179c]{cursor:not-allowed;background:#c5c7ca;border-color:#c5c7ca}.q-button.q-type-info.is-disabled[data-v-4eae179c]:hover{background:#c5c7ca;border-color:#c5c7ca}.q-button.q-type-info.q-type-dashed[data-v-4eae179c]{border-style:dashed;background-color:#fff!important;color:#909399}.q-button.q-type-success[data-v-4eae179c]{background-color:#85ce61;border-color:#85ce61;color:#fff}.q-button.q-type-success[data-v-4eae179c]:hover{background:#c1e6af;border-color:#c1e6af}.q-button.q-type-success[data-v-4eae179c]:active{background-color:#539930;border-color:#539930}.q-button.q-type-success.is-disabled[data-v-4eae179c]{cursor:not-allowed;background:#c1e6af;border-color:#c1e6af}.q-button.q-type-success.is-disabled[data-v-4eae179c]:hover{background:#c1e6af;border-color:#c1e6af}.q-button.q-type-success.q-type-dashed[data-v-4eae179c]{border-style:dashed;background-color:#fff!important;color:#85ce61}.q-button.q-type-warning[data-v-4eae179c]{background-color:#f0a020;border-color:#f0a020;color:#fff}.q-button.q-type-warning[data-v-4eae179c]:hover{background:#f6c980;border-color:#f6c980}.q-button.q-type-warning[data-v-4eae179c]:active{background-color:#9f660b;border-color:#9f660b}.q-button.q-type-warning.is-disabled[data-v-4eae179c]{cursor:not-allowed;background:#f6c980;border-color:#f6c980}.q-button.q-type-warning.is-disabled[data-v-4eae179c]:hover{background:#f6c980;border-color:#f6c980}.q-button.q-type-warning.q-type-dashed[data-v-4eae179c]{border-style:dashed;background-color:#fff!important;color:#f0a020}.q-button.q-type-error[data-v-4eae179c]{background-color:#d03050;border-color:#d03050;color:#fff}.q-button.q-type-error[data-v-4eae179c]:hover{background:#e38396;border-color:#e38396}.q-button.q-type-error[data-v-4eae179c]:active{background-color:#7e1c30;border-color:#7e1c30}.q-button.q-type-error.is-disabled[data-v-4eae179c]{cursor:not-allowed;background:#e38396;border-color:#e38396}.q-button.q-type-error.is-disabled[data-v-4eae179c]:hover{background:#e38396;border-color:#e38396}.q-button.q-type-error.q-type-dashed[data-v-4eae179c]{border-style:dashed;background-color:#fff!important;color:#d03050}.q-button>.q-loadingIndicator[data-v-4eae179c]{width:14px;height:14px;display:inline-block;margin-right:5px;border-radius:50%;border-color:#fff #fff #fff transparent;border-style:solid;border-width:2px;animation:q-spin-4eae179c 1s infinite linear}.q-button.is-loading[data-v-4eae179c]{pointer-events:none!important}@keyframes q-spin-4eae179c{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.w5[data-v-3b126f0b]{width:5%}.w10[data-v-3b126f0b]{width:10%}.w15[data-v-3b126f0b]{width:15%}.w20[data-v-3b126f0b]{width:20%}.w25[data-v-3b126f0b]{width:25%}.w30[data-v-3b126f0b]{width:30%}.w40[data-v-3b126f0b]{width:40%}.w50[data-v-3b126f0b]{width:50%}.w60[data-v-3b126f0b]{width:60%}.w100[data-v-3b126f0b]{width:100%}.ml-0[data-v-3b126f0b]{margin-left:0}.mr-0[data-v-3b126f0b]{margin-right:0}.mt-0[data-v-3b126f0b]{margin-top:0}.mb-0[data-v-3b126f0b]{margin-bottom:0}.pl-0[data-v-3b126f0b]{padding-left:0}.pr-0[data-v-3b126f0b]{padding-right:0}.pt-0[data-v-3b126f0b]{padding-top:0}.pb-0[data-v-3b126f0b]{padding-bottom:0}.ml-2[data-v-3b126f0b]{margin-left:2px}.mr-2[data-v-3b126f0b]{margin-right:2px}.mt-2[data-v-3b126f0b]{margin-top:2px}.mb-2[data-v-3b126f0b]{margin-bottom:2px}.pl-2[data-v-3b126f0b]{padding-left:2px}.pr-2[data-v-3b126f0b]{padding-right:2px}.pt-2[data-v-3b126f0b]{padding-top:2px}.pb-2[data-v-3b126f0b]{padding-bottom:2px}.ml-5[data-v-3b126f0b]{margin-left:5px}.mr-5[data-v-3b126f0b]{margin-right:5px}.mt-5[data-v-3b126f0b]{margin-top:5px}.mb-5[data-v-3b126f0b]{margin-bottom:5px}.pl-5[data-v-3b126f0b]{padding-left:5px}.pr-5[data-v-3b126f0b]{padding-right:5px}.pt-5[data-v-3b126f0b]{padding-top:5px}.pb-5[data-v-3b126f0b]{padding-bottom:5px}.ml-8[data-v-3b126f0b]{margin-left:8px}.mr-8[data-v-3b126f0b]{margin-right:8px}.mt-8[data-v-3b126f0b]{margin-top:8px}.mb-8[data-v-3b126f0b]{margin-bottom:8px}.pl-8[data-v-3b126f0b]{padding-left:8px}.pr-8[data-v-3b126f0b]{padding-right:8px}.pt-8[data-v-3b126f0b]{padding-top:8px}.pb-8[data-v-3b126f0b]{padding-bottom:8px}.ml-10[data-v-3b126f0b]{margin-left:10px}.mr-10[data-v-3b126f0b]{margin-right:10px}.mt-10[data-v-3b126f0b]{margin-top:10px}.mb-10[data-v-3b126f0b]{margin-bottom:10px}.pl-10[data-v-3b126f0b]{padding-left:10px}.pr-10[data-v-3b126f0b]{padding-right:10px}.pt-10[data-v-3b126f0b]{padding-top:10px}.pb-10[data-v-3b126f0b]{padding-bottom:10px}.ml-12[data-v-3b126f0b]{margin-left:12px}.mr-12[data-v-3b126f0b]{margin-right:12px}.mt-12[data-v-3b126f0b]{margin-top:12px}.mb-12[data-v-3b126f0b]{margin-bottom:12px}.pl-12[data-v-3b126f0b]{padding-left:12px}.pr-12[data-v-3b126f0b]{padding-right:12px}.pt-12[data-v-3b126f0b]{padding-top:12px}.pb-12[data-v-3b126f0b]{padding-bottom:12px}.ml-14[data-v-3b126f0b]{margin-left:14px}.mr-14[data-v-3b126f0b]{margin-right:14px}.mt-14[data-v-3b126f0b]{margin-top:14px}.mb-14[data-v-3b126f0b]{margin-bottom:14px}.pl-14[data-v-3b126f0b]{padding-left:14px}.pr-14[data-v-3b126f0b]{padding-right:14px}.pt-14[data-v-3b126f0b]{padding-top:14px}.pb-14[data-v-3b126f0b]{padding-bottom:14px}.ml-15[data-v-3b126f0b]{margin-left:15px}.mr-15[data-v-3b126f0b]{margin-right:15px}.mt-15[data-v-3b126f0b]{margin-top:15px}.mb-15[data-v-3b126f0b]{margin-bottom:15px}.pl-15[data-v-3b126f0b]{padding-left:15px}.pr-15[data-v-3b126f0b]{padding-right:15px}.pt-15[data-v-3b126f0b]{padding-top:15px}.pb-15[data-v-3b126f0b]{padding-bottom:15px}.ml-16[data-v-3b126f0b]{margin-left:16px}.mr-16[data-v-3b126f0b]{margin-right:16px}.mt-16[data-v-3b126f0b]{margin-top:16px}.mb-16[data-v-3b126f0b]{margin-bottom:16px}.pl-16[data-v-3b126f0b]{padding-left:16px}.pr-16[data-v-3b126f0b]{padding-right:16px}.pt-16[data-v-3b126f0b]{padding-top:16px}.pb-16[data-v-3b126f0b]{padding-bottom:16px}.ml-18[data-v-3b126f0b]{margin-left:18px}.mr-18[data-v-3b126f0b]{margin-right:18px}.mt-18[data-v-3b126f0b]{margin-top:18px}.mb-18[data-v-3b126f0b]{margin-bottom:18px}.pl-18[data-v-3b126f0b]{padding-left:18px}.pr-18[data-v-3b126f0b]{padding-right:18px}.pt-18[data-v-3b126f0b]{padding-top:18px}.pb-18[data-v-3b126f0b]{padding-bottom:18px}.ml-20[data-v-3b126f0b]{margin-left:20px}.mr-20[data-v-3b126f0b]{margin-right:20px}.mt-20[data-v-3b126f0b]{margin-top:20px}.mb-20[data-v-3b126f0b]{margin-bottom:20px}.pl-20[data-v-3b126f0b]{padding-left:20px}.pr-20[data-v-3b126f0b]{padding-right:20px}.pt-20[data-v-3b126f0b]{padding-top:20px}.pb-20[data-v-3b126f0b]{padding-bottom:20px}.ml-24[data-v-3b126f0b]{margin-left:24px}.mr-24[data-v-3b126f0b]{margin-right:24px}.mt-24[data-v-3b126f0b]{margin-top:24px}.mb-24[data-v-3b126f0b]{margin-bottom:24px}.pl-24[data-v-3b126f0b]{padding-left:24px}.pr-24[data-v-3b126f0b]{padding-right:24px}.pt-24[data-v-3b126f0b]{padding-top:24px}.pb-24[data-v-3b126f0b]{padding-bottom:24px}.ml-25[data-v-3b126f0b]{margin-left:25px}.mr-25[data-v-3b126f0b]{margin-right:25px}.mt-25[data-v-3b126f0b]{margin-top:25px}.mb-25[data-v-3b126f0b]{margin-bottom:25px}.pl-25[data-v-3b126f0b]{padding-left:25px}.pr-25[data-v-3b126f0b]{padding-right:25px}.pt-25[data-v-3b126f0b]{padding-top:25px}.pb-25[data-v-3b126f0b]{padding-bottom:25px}.ml-30[data-v-3b126f0b]{margin-left:30px}.mr-30[data-v-3b126f0b]{margin-right:30px}.mt-30[data-v-3b126f0b]{margin-top:30px}.mb-30[data-v-3b126f0b]{margin-bottom:30px}.pl-30[data-v-3b126f0b]{padding-left:30px}.pr-30[data-v-3b126f0b]{padding-right:30px}.pt-30[data-v-3b126f0b]{padding-top:30px}.pb-30[data-v-3b126f0b]{padding-bottom:30px}.ml-36[data-v-3b126f0b]{margin-left:36px}.mr-36[data-v-3b126f0b]{margin-right:36px}.mt-36[data-v-3b126f0b]{margin-top:36px}.mb-36[data-v-3b126f0b]{margin-bottom:36px}.pl-36[data-v-3b126f0b]{padding-left:36px}.pr-36[data-v-3b126f0b]{padding-right:36px}.pt-36[data-v-3b126f0b]{padding-top:36px}.pb-36[data-v-3b126f0b]{padding-bottom:36px}.ml-40[data-v-3b126f0b]{margin-left:40px}.mr-40[data-v-3b126f0b]{margin-right:40px}.mt-40[data-v-3b126f0b]{margin-top:40px}.mb-40[data-v-3b126f0b]{margin-bottom:40px}.pl-40[data-v-3b126f0b]{padding-left:40px}.pr-40[data-v-3b126f0b]{padding-right:40px}.pt-40[data-v-3b126f0b]{padding-top:40px}.pb-40[data-v-3b126f0b]{padding-bottom:40px}.ml-50[data-v-3b126f0b]{margin-left:50px}.mr-50[data-v-3b126f0b]{margin-right:50px}.mt-50[data-v-3b126f0b]{margin-top:50px}.mb-50[data-v-3b126f0b]{margin-bottom:50px}.pl-50[data-v-3b126f0b]{padding-left:50px}.pr-50[data-v-3b126f0b]{padding-right:50px}.pt-50[data-v-3b126f0b]{padding-top:50px}.pb-50[data-v-3b126f0b]{padding-bottom:50px}.ml-100[data-v-3b126f0b]{margin-left:100px}.mr-100[data-v-3b126f0b]{margin-right:100px}.mt-100[data-v-3b126f0b]{margin-top:100px}.mb-100[data-v-3b126f0b]{margin-bottom:100px}.pl-100[data-v-3b126f0b]{padding-left:100px}.pr-100[data-v-3b126f0b]{padding-right:100px}.pt-100[data-v-3b126f0b]{padding-top:100px}.pb-100[data-v-3b126f0b]{padding-bottom:100px}.m-select[data-v-3b126f0b]{position:relative;display:inline-block;font-size:14px;font-weight:400;color:#000000a6}.fade-enter-active[data-v-3b126f0b],.fade-leave-active[data-v-3b126f0b]{transform:scaleY(1);transform-origin:0% 0%;opacity:1;transition:all .3s}.fade-enter-from[data-v-3b126f0b]{transform:scaleY(.8);transform-origin:0% 0%;opacity:0}.fade-leave-to[data-v-3b126f0b]{transform:scaleY(1);opacity:0}.m-select-wrap[data-v-3b126f0b]{position:relative;z-index:8;display:inline-block;border:1px solid #d9d9d9;border-radius:4px;background-color:#fff;cursor:pointer;transition:all .3s cubic-bezier(.645,.045,.355,1)}.m-select-wrap .u-select-input[data-v-3b126f0b]{display:block;text-align:left;margin-left:11px;margin-right:27px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-select-wrap .placeholder[data-v-3b126f0b]{color:#bfbfbf}.m-select-wrap .triangle[data-v-3b126f0b]{position:absolute;top:0;bottom:0;margin:auto 0;right:11px;width:12px;height:12px;fill:#00000040;opacity:0;pointer-events:none;transition:all .3s ease-in-out}.m-select-wrap .rotate[data-v-3b126f0b]{transform:rotate(180deg);-webkit-transform:rotate(180deg)}.m-select-wrap .close[data-v-3b126f0b]{position:absolute;top:0;bottom:0;margin:auto 0;right:11px;width:12px;height:12px;fill:#8c8c8c99;opacity:0;pointer-events:none;transition:all .3s ease-in-out}.m-select-wrap .close[data-v-3b126f0b]:hover{fill:#646464cc}.m-select-wrap .show[data-v-3b126f0b]{opacity:1;pointer-events:auto}.hover[data-v-3b126f0b]:hover{border-color:#1bb760}.focus[data-v-3b126f0b]{border-color:#1bb760;box-shadow:0 0 0 2px fade(#1bb760,20%)}.disabled[data-v-3b126f0b]{color:#00000040;background:#f5f5f5;user-select:none;cursor:not-allowed}.m-options-panel[data-v-3b126f0b]{position:absolute;z-index:9;overflow:auto;background:#fff;padding:4px 0;border-radius:4px;box-shadow:0 2px 8px #00000026}.m-options-panel .u-option[data-v-3b126f0b]{text-align:left;position:relative;display:block;padding:5px 12px;font-weight:400;line-height:inherit;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;transition:background .3s ease}.m-options-panel .option-selected[data-v-3b126f0b]{font-weight:600;background:#fafafa}.m-options-panel .option-hover[data-v-3b126f0b]{background:#e6f7ff}.m-options-panel .option-disabled[data-v-3b126f0b]{color:#00000040;user-select:none;cursor:not-allowed}.w5[data-v-8c81a90d]{width:5%}.w10[data-v-8c81a90d]{width:10%}.w15[data-v-8c81a90d]{width:15%}.w20[data-v-8c81a90d]{width:20%}.w25[data-v-8c81a90d]{width:25%}.w30[data-v-8c81a90d]{width:30%}.w40[data-v-8c81a90d]{width:40%}.w50[data-v-8c81a90d]{width:50%}.w60[data-v-8c81a90d]{width:60%}.w100[data-v-8c81a90d]{width:100%}.ml-0[data-v-8c81a90d]{margin-left:0}.mr-0[data-v-8c81a90d]{margin-right:0}.mt-0[data-v-8c81a90d]{margin-top:0}.mb-0[data-v-8c81a90d]{margin-bottom:0}.pl-0[data-v-8c81a90d]{padding-left:0}.pr-0[data-v-8c81a90d]{padding-right:0}.pt-0[data-v-8c81a90d]{padding-top:0}.pb-0[data-v-8c81a90d]{padding-bottom:0}.ml-2[data-v-8c81a90d]{margin-left:2px}.mr-2[data-v-8c81a90d]{margin-right:2px}.mt-2[data-v-8c81a90d]{margin-top:2px}.mb-2[data-v-8c81a90d]{margin-bottom:2px}.pl-2[data-v-8c81a90d]{padding-left:2px}.pr-2[data-v-8c81a90d]{padding-right:2px}.pt-2[data-v-8c81a90d]{padding-top:2px}.pb-2[data-v-8c81a90d]{padding-bottom:2px}.ml-5[data-v-8c81a90d]{margin-left:5px}.mr-5[data-v-8c81a90d]{margin-right:5px}.mt-5[data-v-8c81a90d]{margin-top:5px}.mb-5[data-v-8c81a90d]{margin-bottom:5px}.pl-5[data-v-8c81a90d]{padding-left:5px}.pr-5[data-v-8c81a90d]{padding-right:5px}.pt-5[data-v-8c81a90d]{padding-top:5px}.pb-5[data-v-8c81a90d]{padding-bottom:5px}.ml-8[data-v-8c81a90d]{margin-left:8px}.mr-8[data-v-8c81a90d]{margin-right:8px}.mt-8[data-v-8c81a90d]{margin-top:8px}.mb-8[data-v-8c81a90d]{margin-bottom:8px}.pl-8[data-v-8c81a90d]{padding-left:8px}.pr-8[data-v-8c81a90d]{padding-right:8px}.pt-8[data-v-8c81a90d]{padding-top:8px}.pb-8[data-v-8c81a90d]{padding-bottom:8px}.ml-10[data-v-8c81a90d]{margin-left:10px}.mr-10[data-v-8c81a90d]{margin-right:10px}.mt-10[data-v-8c81a90d]{margin-top:10px}.mb-10[data-v-8c81a90d]{margin-bottom:10px}.pl-10[data-v-8c81a90d]{padding-left:10px}.pr-10[data-v-8c81a90d]{padding-right:10px}.pt-10[data-v-8c81a90d]{padding-top:10px}.pb-10[data-v-8c81a90d]{padding-bottom:10px}.ml-12[data-v-8c81a90d]{margin-left:12px}.mr-12[data-v-8c81a90d]{margin-right:12px}.mt-12[data-v-8c81a90d]{margin-top:12px}.mb-12[data-v-8c81a90d]{margin-bottom:12px}.pl-12[data-v-8c81a90d]{padding-left:12px}.pr-12[data-v-8c81a90d]{padding-right:12px}.pt-12[data-v-8c81a90d]{padding-top:12px}.pb-12[data-v-8c81a90d]{padding-bottom:12px}.ml-14[data-v-8c81a90d]{margin-left:14px}.mr-14[data-v-8c81a90d]{margin-right:14px}.mt-14[data-v-8c81a90d]{margin-top:14px}.mb-14[data-v-8c81a90d]{margin-bottom:14px}.pl-14[data-v-8c81a90d]{padding-left:14px}.pr-14[data-v-8c81a90d]{padding-right:14px}.pt-14[data-v-8c81a90d]{padding-top:14px}.pb-14[data-v-8c81a90d]{padding-bottom:14px}.ml-15[data-v-8c81a90d]{margin-left:15px}.mr-15[data-v-8c81a90d]{margin-right:15px}.mt-15[data-v-8c81a90d]{margin-top:15px}.mb-15[data-v-8c81a90d]{margin-bottom:15px}.pl-15[data-v-8c81a90d]{padding-left:15px}.pr-15[data-v-8c81a90d]{padding-right:15px}.pt-15[data-v-8c81a90d]{padding-top:15px}.pb-15[data-v-8c81a90d]{padding-bottom:15px}.ml-16[data-v-8c81a90d]{margin-left:16px}.mr-16[data-v-8c81a90d]{margin-right:16px}.mt-16[data-v-8c81a90d]{margin-top:16px}.mb-16[data-v-8c81a90d]{margin-bottom:16px}.pl-16[data-v-8c81a90d]{padding-left:16px}.pr-16[data-v-8c81a90d]{padding-right:16px}.pt-16[data-v-8c81a90d]{padding-top:16px}.pb-16[data-v-8c81a90d]{padding-bottom:16px}.ml-18[data-v-8c81a90d]{margin-left:18px}.mr-18[data-v-8c81a90d]{margin-right:18px}.mt-18[data-v-8c81a90d]{margin-top:18px}.mb-18[data-v-8c81a90d]{margin-bottom:18px}.pl-18[data-v-8c81a90d]{padding-left:18px}.pr-18[data-v-8c81a90d]{padding-right:18px}.pt-18[data-v-8c81a90d]{padding-top:18px}.pb-18[data-v-8c81a90d]{padding-bottom:18px}.ml-20[data-v-8c81a90d]{margin-left:20px}.mr-20[data-v-8c81a90d]{margin-right:20px}.mt-20[data-v-8c81a90d]{margin-top:20px}.mb-20[data-v-8c81a90d]{margin-bottom:20px}.pl-20[data-v-8c81a90d]{padding-left:20px}.pr-20[data-v-8c81a90d]{padding-right:20px}.pt-20[data-v-8c81a90d]{padding-top:20px}.pb-20[data-v-8c81a90d]{padding-bottom:20px}.ml-24[data-v-8c81a90d]{margin-left:24px}.mr-24[data-v-8c81a90d]{margin-right:24px}.mt-24[data-v-8c81a90d]{margin-top:24px}.mb-24[data-v-8c81a90d]{margin-bottom:24px}.pl-24[data-v-8c81a90d]{padding-left:24px}.pr-24[data-v-8c81a90d]{padding-right:24px}.pt-24[data-v-8c81a90d]{padding-top:24px}.pb-24[data-v-8c81a90d]{padding-bottom:24px}.ml-25[data-v-8c81a90d]{margin-left:25px}.mr-25[data-v-8c81a90d]{margin-right:25px}.mt-25[data-v-8c81a90d]{margin-top:25px}.mb-25[data-v-8c81a90d]{margin-bottom:25px}.pl-25[data-v-8c81a90d]{padding-left:25px}.pr-25[data-v-8c81a90d]{padding-right:25px}.pt-25[data-v-8c81a90d]{padding-top:25px}.pb-25[data-v-8c81a90d]{padding-bottom:25px}.ml-30[data-v-8c81a90d]{margin-left:30px}.mr-30[data-v-8c81a90d]{margin-right:30px}.mt-30[data-v-8c81a90d]{margin-top:30px}.mb-30[data-v-8c81a90d]{margin-bottom:30px}.pl-30[data-v-8c81a90d]{padding-left:30px}.pr-30[data-v-8c81a90d]{padding-right:30px}.pt-30[data-v-8c81a90d]{padding-top:30px}.pb-30[data-v-8c81a90d]{padding-bottom:30px}.ml-36[data-v-8c81a90d]{margin-left:36px}.mr-36[data-v-8c81a90d]{margin-right:36px}.mt-36[data-v-8c81a90d]{margin-top:36px}.mb-36[data-v-8c81a90d]{margin-bottom:36px}.pl-36[data-v-8c81a90d]{padding-left:36px}.pr-36[data-v-8c81a90d]{padding-right:36px}.pt-36[data-v-8c81a90d]{padding-top:36px}.pb-36[data-v-8c81a90d]{padding-bottom:36px}.ml-40[data-v-8c81a90d]{margin-left:40px}.mr-40[data-v-8c81a90d]{margin-right:40px}.mt-40[data-v-8c81a90d]{margin-top:40px}.mb-40[data-v-8c81a90d]{margin-bottom:40px}.pl-40[data-v-8c81a90d]{padding-left:40px}.pr-40[data-v-8c81a90d]{padding-right:40px}.pt-40[data-v-8c81a90d]{padding-top:40px}.pb-40[data-v-8c81a90d]{padding-bottom:40px}.ml-50[data-v-8c81a90d]{margin-left:50px}.mr-50[data-v-8c81a90d]{margin-right:50px}.mt-50[data-v-8c81a90d]{margin-top:50px}.mb-50[data-v-8c81a90d]{margin-bottom:50px}.pl-50[data-v-8c81a90d]{padding-left:50px}.pr-50[data-v-8c81a90d]{padding-right:50px}.pt-50[data-v-8c81a90d]{padding-top:50px}.pb-50[data-v-8c81a90d]{padding-bottom:50px}.ml-100[data-v-8c81a90d]{margin-left:100px}.mr-100[data-v-8c81a90d]{margin-right:100px}.mt-100[data-v-8c81a90d]{margin-top:100px}.mb-100[data-v-8c81a90d]{margin-bottom:100px}.pl-100[data-v-8c81a90d]{padding-left:100px}.pr-100[data-v-8c81a90d]{padding-right:100px}.pt-100[data-v-8c81a90d]{padding-top:100px}.pb-100[data-v-8c81a90d]{padding-bottom:100px}.m-breadcrumb[data-v-8c81a90d]{display:flex;align-items:center}.m-breadcrumb .m-bread[data-v-8c81a90d]{display:inline-flex;align-items:center;line-height:1.5}.m-breadcrumb .m-bread .u-route[data-v-8c81a90d]{color:#00000073;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;padding:0 4px;border-radius:4px;transition:color .2s,background-color .2s}.m-breadcrumb .m-bread .u-route[data-v-8c81a90d]:hover{background-color:#0000000d;color:#000000e0}.m-breadcrumb .m-bread .active[data-v-8c81a90d]{color:#000000e0;cursor:default}.m-breadcrumb .m-bread .active[data-v-8c81a90d]:hover{background-color:transparent}.m-breadcrumb .m-bread .u-separator[data-v-8c81a90d]{margin:0 4px;color:#00000073}.m-breadcrumb .m-bread .u-arrow[data-v-8c81a90d]{width:12px;height:12px;fill:#00000073}.m-breadcrumb .assist[data-v-8c81a90d]{height:100%;width:0;display:inline-block;vertical-align:middle}.VPLocalSearchBox[data-v-b030f574]{position:fixed;z-index:100;inset:0;display:flex}.backdrop[data-v-b030f574]{position:absolute;inset:0;background:var(--vp-backdrop-bg-color);transition:opacity .5s}.shell[data-v-b030f574]{position:relative;padding:12px;margin:64px auto;display:flex;flex-direction:column;gap:16px;background:var(--vp-local-search-bg);width:min(100vw - 60px,900px);height:min-content;max-height:min(100vh - 128px,900px);border-radius:6px}@media (max-width: 768px){.shell[data-v-b030f574]{margin:0;width:100vw;height:100vh;max-height:none;border-radius:0}}.search-bar[data-v-b030f574]{border:1px solid var(--vp-c-divider);border-radius:4px;display:flex;align-items:center;padding:0 12px;cursor:text}@media (max-width: 768px){.search-bar[data-v-b030f574]{padding:0 8px}}.search-bar[data-v-b030f574]:focus-within{border-color:var(--vp-c-brand)}.search-icon[data-v-b030f574]{margin:8px}@media (max-width: 768px){.search-icon[data-v-b030f574]{display:none}}.search-input[data-v-b030f574]{padding:6px 12px;font-size:inherit;width:100%}@media (max-width: 768px){.search-input[data-v-b030f574]{padding:6px 4px}}.search-actions[data-v-b030f574]{display:flex;gap:4px}@media (any-pointer: coarse){.search-actions[data-v-b030f574]{gap:8px}}@media (min-width: 769px){.search-actions.before[data-v-b030f574]{display:none}}.search-actions button[data-v-b030f574]{padding:8px}.search-actions button[data-v-b030f574]:not([disabled]):hover,.toggle-layout-button.detailed-list[data-v-b030f574]{color:var(--vp-c-brand)}.search-actions button.clear-button[data-v-b030f574]:disabled{opacity:.37}.search-keyboard-shortcuts[data-v-b030f574]{font-size:.8rem;opacity:75%;display:flex;flex-wrap:wrap;gap:16px;line-height:14px}.search-keyboard-shortcuts span[data-v-b030f574]{display:flex;align-items:center;gap:4px}@media (max-width: 768px){.search-keyboard-shortcuts[data-v-b030f574]{display:none}}.search-keyboard-shortcuts kbd[data-v-b030f574]{background:rgba(128,128,128,.1);border-radius:4px;padding:3px 6px;min-width:24px;display:inline-block;text-align:center;vertical-align:middle;border:1px solid rgba(128,128,128,.15);box-shadow:0 2px 2px #0000001a}.results[data-v-b030f574]{display:flex;flex-direction:column;gap:6px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.result[data-v-b030f574]{display:flex;align-items:center;gap:8px;border-radius:4px;transition:none;line-height:1rem;border:solid 2px var(--vp-local-search-result-border);outline:none}.result>div[data-v-b030f574]{margin:12px;width:100%;overflow:hidden}@media (max-width: 768px){.result>div[data-v-b030f574]{margin:8px}}.titles[data-v-b030f574]{display:flex;flex-wrap:wrap;gap:4px;position:relative;z-index:1001;padding:2px 0}.title[data-v-b030f574]{display:flex;align-items:center;gap:4px}.title.main[data-v-b030f574]{font-weight:500}.title-icon[data-v-b030f574]{opacity:.5;font-weight:500;color:var(--vp-c-brand)}.title svg[data-v-b030f574]{opacity:.5}.result.selected[data-v-b030f574]{--vp-local-search-result-bg: var(--vp-local-search-result-selected-bg);border-color:var(--vp-local-search-result-selected-border)}.excerpt-wrapper[data-v-b030f574]{position:relative}.excerpt[data-v-b030f574]{opacity:75%;pointer-events:none;max-height:140px;overflow:hidden;position:relative;opacity:.5;margin-top:4px}.result.selected .excerpt[data-v-b030f574]{opacity:1}.excerpt[data-v-b030f574] *{font-size:.8rem!important;line-height:130%!important}.titles[data-v-b030f574] mark,.excerpt[data-v-b030f574] mark{background-color:var(--vp-local-search-highlight-bg);color:var(--vp-local-search-highlight-text);border-radius:2px;padding:0 2px}.excerpt[data-v-b030f574] .vp-code-group .tabs{display:none}.excerpt[data-v-b030f574] .vp-code-group div[class*=language-]{border-radius:8px!important}.excerpt-gradient-bottom[data-v-b030f574]{position:absolute;bottom:-1px;left:0;width:100%;height:8px;background:linear-gradient(transparent,var(--vp-local-search-result-bg));z-index:1000}.excerpt-gradient-top[data-v-b030f574]{position:absolute;top:-1px;left:0;width:100%;height:8px;background:linear-gradient(var(--vp-local-search-result-bg),transparent);z-index:1000}.result.selected .titles[data-v-b030f574],.result.selected .title-icon[data-v-b030f574]{color:var(--vp-c-brand)!important}.no-results[data-v-b030f574]{font-size:.9rem;text-align:center;padding:12px}svg[data-v-b030f574]{flex:none} diff --git a/docs/.vitepress/dist/assets/utils_date-format.md.e268d2ac.js b/docs/.vitepress/dist/assets/utils_date-format.md.e268d2ac.js new file mode 100644 index 0000000..14598c1 --- /dev/null +++ b/docs/.vitepress/dist/assets/utils_date-format.md.e268d2ac.js @@ -0,0 +1,54 @@ +import{_ as s,c as a,o as n,V as l}from"./chunks/framework.dc35932b.js";const i=JSON.parse('{"title":"日期格式化","description":"","frontmatter":{},"headers":[],"relativePath":"utils/date-format.md","filePath":"utils/date-format.md"}'),o={name:"utils/date-format.md"},p=l(`

日期格式化

Show Source Code
ts
function dateFormat(value: number | string | Date = Date.now(), format = "YYYY-MM-DD HH:mm:ss"): string {
+  if (typeof value === "number" || typeof value === "string") {
+    var date = new Date(value)
+  } else {
+    var date = value
+  }
+  function fixedTwo(value: number): string {
+    return value < 10 ? "0" + value : String(value)
+  }
+  var showTime = format
+  if (showTime.includes("SSS")) {
+    const S = date.getMilliseconds()
+    showTime = showTime.replace("SSS", "0".repeat(3 - String(S).length) + S)
+  }
+  if (showTime.includes("YY")) {
+    const Y = date.getFullYear()
+    showTime = showTime.includes("YYYY")
+      ? showTime.replace("YYYY", String(Y))
+      : showTime.replace("YY", String(Y).slice(2, 4))
+  }
+  if (showTime.includes("M")) {
+    const M = date.getMonth() + 1
+    showTime = showTime.includes("MM") ? showTime.replace("MM", fixedTwo(M)) : showTime.replace("M", String(M))
+  }
+  if (showTime.includes("D")) {
+    const D = date.getDate()
+    showTime = showTime.includes("DD") ? showTime.replace("DD", fixedTwo(D)) : showTime.replace("D", String(D))
+  }
+  if (showTime.includes("H")) {
+    const H = date.getHours()
+    showTime = showTime.includes("HH") ? showTime.replace("HH", fixedTwo(H)) : showTime.replace("H", String(H))
+  }
+  if (showTime.includes("m")) {
+    var m = date.getMinutes()
+    showTime = showTime.includes("mm") ? showTime.replace("mm", fixedTwo(m)) : showTime.replace("m", String(m))
+  }
+  if (showTime.includes("s")) {
+    var s = date.getSeconds()
+    showTime = showTime.includes("ss") ? showTime.replace("ss", fixedTwo(s)) : showTime.replace("s", String(s))
+  }
+  return showTime
+}

何时使用

  • 格式化日期时

基本使用

格式化时间戳


2023-05-31 14:20:45

vue
<script setup lang="ts">
+import { dateFormat } from "@jqw755/q-ui"
+
+dateFormat(1685514045679) // 2023-05-31 14:20:45
+</script>

格式化字符串


05/31/2023

vue
<script setup lang="ts">
+import { dateFormat } from "@jqw755/q-ui"
+
+dateFormat("2023-05-31", "MM/DD/YYYY") // 05/31/2023
+</script>

展示毫秒值


2023-05-31 14:20:45:679

vue
<script setup lang="ts">
+import { dateFormat } from "@jqw755/q-ui"
+
+dateFormat(1685514045679, "YYYY-MM-DD HH:mm:ss:SSS") // 2023-05-31 14:20:45:679
+</script>

Params

参数说明类型默认值必传
value13 位时间戳;或者可以转化为 Date 类型的字符串日期;或者 Date 对象number | string | DateDate.now()false
format格式化目标形式string'YYYY-MM-DD HH:mm:ss'false

format 支持的格式化占位符列表

标识示例描述
YY23年,两位数
YYYY2023年,四位数
M1-12月,从 1 开始
MM01-12月,两位数
D1-31
DD01-31日,两位数
H0-23小时
HH00-23小时,两位数
m0-59分钟
mm00-59分钟,两位数
s0-59
ss00-59秒,两位数
SSS000-999毫秒,三位数
`,21),t=[p];function e(r,c,F,y,D,A){return n(),a("div",null,t)}const d=s(o,[["render",e]]);export{i as __pageData,d as default}; diff --git a/docs/.vitepress/dist/assets/utils_date-format.md.e268d2ac.lean.js b/docs/.vitepress/dist/assets/utils_date-format.md.e268d2ac.lean.js new file mode 100644 index 0000000..f70548f --- /dev/null +++ b/docs/.vitepress/dist/assets/utils_date-format.md.e268d2ac.lean.js @@ -0,0 +1 @@ +import{_ as s,c as a,o as n,V as l}from"./chunks/framework.dc35932b.js";const i=JSON.parse('{"title":"日期格式化","description":"","frontmatter":{},"headers":[],"relativePath":"utils/date-format.md","filePath":"utils/date-format.md"}'),o={name:"utils/date-format.md"},p=l("",21),t=[p];function e(r,c,F,y,D,A){return n(),a("div",null,t)}const d=s(o,[["render",e]]);export{i as __pageData,d as default}; diff --git a/docs/.vitepress/dist/assets/utils_debounce.md.8acddf5b.js b/docs/.vitepress/dist/assets/utils_debounce.md.8acddf5b.js new file mode 100644 index 0000000..30e332e --- /dev/null +++ b/docs/.vitepress/dist/assets/utils_debounce.md.8acddf5b.js @@ -0,0 +1,24 @@ +import{d as a}from"./chunks/q-ui.bc6b1064.js";import{d as l,p as o,B as p,c as t,o as e,V as c}from"./chunks/framework.dc35932b.js";const r=c(`

防抖


对于短时间内连续触发的事件,防抖就是让某个时间(delay)期限内,事件处理函数只执行一次

Show Source Code
ts
function debounce(fn: Function, delay = 300): any {
+  let timer: any = null //借助闭包
+  return function () {
+    if (timer) {
+      cancelRaf(timer)
+    }
+    timer = rafTimeout(fn, delay)
+  }
+}

何时使用

  • 对于短时间内连续触发的事件,在 delay ms 内函数只执行最后一次

基本使用

打开控制台查看输出

vue
<script setup lang="ts">
+import { onMounted, onUnmounted } from "vue"
+import { debounce } from "@jqw755/q-ui"
+
+onMounted(() => {
+  document.onscroll = debounce(showPosition, 1000)
+})
+onUnmounted(() => {
+  // 移除键盘切换事件
+  document.onscroll = null
+})
+function showPosition() {
+  const scrollTop = document.body.scrollTop || document.documentElement.scrollTop
+  console.log("滚动条位置:" + scrollTop)
+}
+</script>

Params

参数说明类型默认值必传
fn要执行的函数Function-true
delay防抖时间期限,单位 msnumber300false
`,11),y=[r],d=JSON.parse('{"title":"防抖","description":"","frontmatter":{},"headers":[],"relativePath":"utils/debounce.md","filePath":"utils/debounce.md"}'),F={name:"utils/debounce.md"},u=l({...F,setup(D){o(()=>{document.onscroll=a(n,1e3)}),p(()=>{document.onscroll=null});function n(){const s=document.body.scrollTop||document.documentElement.scrollTop;console.log("滚动条位置:"+s)}return(s,A)=>(e(),t("div",null,y))}});export{d as __pageData,u as default}; diff --git a/docs/.vitepress/dist/assets/utils_debounce.md.8acddf5b.lean.js b/docs/.vitepress/dist/assets/utils_debounce.md.8acddf5b.lean.js new file mode 100644 index 0000000..30e332e --- /dev/null +++ b/docs/.vitepress/dist/assets/utils_debounce.md.8acddf5b.lean.js @@ -0,0 +1,24 @@ +import{d as a}from"./chunks/q-ui.bc6b1064.js";import{d as l,p as o,B as p,c as t,o as e,V as c}from"./chunks/framework.dc35932b.js";const r=c(`

防抖


对于短时间内连续触发的事件,防抖就是让某个时间(delay)期限内,事件处理函数只执行一次

Show Source Code
ts
function debounce(fn: Function, delay = 300): any {
+  let timer: any = null //借助闭包
+  return function () {
+    if (timer) {
+      cancelRaf(timer)
+    }
+    timer = rafTimeout(fn, delay)
+  }
+}

何时使用

  • 对于短时间内连续触发的事件,在 delay ms 内函数只执行最后一次

基本使用

打开控制台查看输出

vue
<script setup lang="ts">
+import { onMounted, onUnmounted } from "vue"
+import { debounce } from "@jqw755/q-ui"
+
+onMounted(() => {
+  document.onscroll = debounce(showPosition, 1000)
+})
+onUnmounted(() => {
+  // 移除键盘切换事件
+  document.onscroll = null
+})
+function showPosition() {
+  const scrollTop = document.body.scrollTop || document.documentElement.scrollTop
+  console.log("滚动条位置:" + scrollTop)
+}
+</script>

Params

参数说明类型默认值必传
fn要执行的函数Function-true
delay防抖时间期限,单位 msnumber300false
`,11),y=[r],d=JSON.parse('{"title":"防抖","description":"","frontmatter":{},"headers":[],"relativePath":"utils/debounce.md","filePath":"utils/debounce.md"}'),F={name:"utils/debounce.md"},u=l({...F,setup(D){o(()=>{document.onscroll=a(n,1e3)}),p(()=>{document.onscroll=null});function n(){const s=document.body.scrollTop||document.documentElement.scrollTop;console.log("滚动条位置:"+s)}return(s,A)=>(e(),t("div",null,y))}});export{d as __pageData,u as default}; diff --git a/docs/.vitepress/dist/assets/utils_download-file.md.45802505.js b/docs/.vitepress/dist/assets/utils_download-file.md.45802505.js new file mode 100644 index 0000000..35a96ec --- /dev/null +++ b/docs/.vitepress/dist/assets/utils_download-file.md.45802505.js @@ -0,0 +1,31 @@ +import{_ as s,c as a,o as n,V as l}from"./chunks/framework.dc35932b.js";const i=JSON.parse('{"title":"下载文件","description":"","frontmatter":{},"headers":[],"relativePath":"utils/download-file.md","filePath":"utils/download-file.md"}'),o={name:"utils/download-file.md"},p=l(`

下载文件

Show Source Code
ts
function downloadFile(url: string, name: string) {
+  var fileName = ""
+  if (name) {
+    fileName = name
+  } else {
+    const res = url.split("?")[0].split("/")
+    fileName = res[res.length - 1]
+  }
+  var xhr = new XMLHttpRequest()
+  xhr.open("GET", url, true)
+  xhr.responseType = "blob"
+  xhr.onload = function () {
+    if (xhr.status === 200) {
+      const blob = xhr.response
+      const link = document.createElement("a")
+      const body = document.querySelector("body")
+      link.href = window.URL.createObjectURL(blob)
+      link.download = fileName
+      link.style.display = "none"
+      body?.appendChild(link)
+      link.click()
+      body?.removeChild(link)
+      window.URL.revokeObjectURL(link.href)
+    }
+  }
+  xhr.send()
+}

何时使用

  • 下载文件并自定义文件名时

基本使用

vue
<script setup lang="ts">
+import { downloadFile } from "@jqw755/q-ui"
+
+donwloadFile("https://cdn.jsdelivr.net/gh/themusecatcher/resources@0.0.3/Markdown.pdf", "Markdown")
+</script>

Params

参数说明类型默认值必传
url文件地址string-true
name自定义文件名,未传时,从文件地址中自动获取文件名称string-false
`,8),t=[p];function e(c,r,F,y,D,A){return n(),a("div",null,t)}const d=s(o,[["render",e]]);export{i as __pageData,d as default}; diff --git a/docs/.vitepress/dist/assets/utils_download-file.md.45802505.lean.js b/docs/.vitepress/dist/assets/utils_download-file.md.45802505.lean.js new file mode 100644 index 0000000..d7ce6b6 --- /dev/null +++ b/docs/.vitepress/dist/assets/utils_download-file.md.45802505.lean.js @@ -0,0 +1 @@ +import{_ as s,c as a,o as n,V as l}from"./chunks/framework.dc35932b.js";const i=JSON.parse('{"title":"下载文件","description":"","frontmatter":{},"headers":[],"relativePath":"utils/download-file.md","filePath":"utils/download-file.md"}'),o={name:"utils/download-file.md"},p=l("",8),t=[p];function e(c,r,F,y,D,A){return n(),a("div",null,t)}const d=s(o,[["render",e]]);export{i as __pageData,d as default}; diff --git a/docs/.vitepress/dist/assets/utils_started.md.23925c67.js b/docs/.vitepress/dist/assets/utils_started.md.23925c67.js new file mode 100644 index 0000000..2d82ed2 --- /dev/null +++ b/docs/.vitepress/dist/assets/utils_started.md.23925c67.js @@ -0,0 +1,3 @@ +import{_ as t,c as e,o as a,V as s}from"./chunks/framework.dc35932b.js";const D=JSON.parse('{"title":"快速上手","description":"","frontmatter":{},"headers":[],"relativePath":"utils/started.md","filePath":"utils/started.md"}'),l={name:"utils/started.md"},n=s(`

快速上手

简要介绍

开箱即用!

使用方式

vue
<script setup lang="ts">
+import { dateFormat, throttle, debounce, downloadFile } from "@jqw755/q-ui"
+</script>

一共 9 个常用工具函数

Function nameDescriptionsArguments
dateFormat简单易用的日期格式化函数!(timestamp: number|string|Date, format = 'YYYY-MM-DD HH:mm:ss') => string
requestAnimationFrame针对不同浏览器进行兼容处理!使用方式不变
cancelAnimationFrame针对不同浏览器进行兼容处理!使用方式不变
rafTimeout使用 requestAnimationFrame 实现的定时器函数,等效替代 (setTimeout 和 setInterval)!(func: Function, delay = 0, interval = false) => object
cancelRaf用于取消 rafTimeout 函数!(raf: { id: number }) => void
throttle使用 rafTimeout 实现的节流函数!(fn: Function, delay = 300) => any
debounce使用 rafTimeout 实现的防抖函数!(fn: Function, delay = 300) => any
add消除 js 加减精度问题的加法函数!(num1: number, num2: number) => number
downloadFile下载文件并自定义文件名,未传 name 时,从文件地址中自动获取文件名称(url: string, name: string) => void
`,7),o=[n];function r(d,p,i,c,y,u){return a(),e("div",null,o)}const f=t(l,[["render",r]]);export{D as __pageData,f as default}; diff --git a/docs/.vitepress/dist/assets/utils_started.md.23925c67.lean.js b/docs/.vitepress/dist/assets/utils_started.md.23925c67.lean.js new file mode 100644 index 0000000..1eb8f41 --- /dev/null +++ b/docs/.vitepress/dist/assets/utils_started.md.23925c67.lean.js @@ -0,0 +1 @@ +import{_ as t,c as e,o as a,V as s}from"./chunks/framework.dc35932b.js";const D=JSON.parse('{"title":"快速上手","description":"","frontmatter":{},"headers":[],"relativePath":"utils/started.md","filePath":"utils/started.md"}'),l={name:"utils/started.md"},n=s("",7),o=[n];function r(d,p,i,c,y,u){return a(),e("div",null,o)}const f=t(l,[["render",r]]);export{D as __pageData,f as default}; diff --git a/docs/.vitepress/dist/assets/utils_throttle.md.acac61bf.js b/docs/.vitepress/dist/assets/utils_throttle.md.acac61bf.js new file mode 100644 index 0000000..0d8f50b --- /dev/null +++ b/docs/.vitepress/dist/assets/utils_throttle.md.acac61bf.js @@ -0,0 +1,28 @@ +import{t as a}from"./chunks/q-ui.bc6b1064.js";import{d as l,p as o,B as p,c as t,o as e,V as c}from"./chunks/framework.dc35932b.js";const r=c(`

节流


如果短时间内大量触发同一事件,那么在函数执行一次之后,该函数在指定的时间(delay)期限内不再工作,直至过了这段时间才重新生效

Show Source Code
ts
function throttle(fn: Function, delay = 300): any {
+  var valid = true
+  return function () {
+    if (valid) {
+      valid = false // 将函数置为无效
+      rafTimeout(() => {
+        fn()
+        valid = true
+      }, delay)
+    }
+    return false // valid为false时,函数不执行
+  }
+}

何时使用

  • 短时间内大量触发同一事件时,每 delay ms 内函数只执行一次

基本使用

打开控制台查看输出

vue
<script setup lang="ts">
+import { onMounted, onUnmounted } from "vue"
+import { throttle } from "@jqw755/q-ui"
+
+onMounted(() => {
+  document.onscroll = throttle(showPosition, 1000)
+})
+onUnmounted(() => {
+  // 移除键盘切换事件
+  document.onscroll = null
+})
+function showPosition() {
+  const scrollTop = document.body.scrollTop || document.documentElement.scrollTop
+  console.log("滚动条位置:" + scrollTop)
+}
+</script>

Params

参数说明类型默认值必传
fn要执行的函数Function-true
delay函数失效时长,单位 msnumber300false
`,11),y=[r],d=JSON.parse('{"title":"节流","description":"","frontmatter":{},"headers":[],"relativePath":"utils/throttle.md","filePath":"utils/throttle.md"}'),F={name:"utils/throttle.md"},u=l({...F,setup(D){o(()=>{document.onscroll=a(n,1e3)}),p(()=>{document.onscroll=null});function n(){const s=document.body.scrollTop||document.documentElement.scrollTop;console.log("滚动条位置:"+s)}return(s,C)=>(e(),t("div",null,y))}});export{d as __pageData,u as default}; diff --git a/docs/.vitepress/dist/assets/utils_throttle.md.acac61bf.lean.js b/docs/.vitepress/dist/assets/utils_throttle.md.acac61bf.lean.js new file mode 100644 index 0000000..0d8f50b --- /dev/null +++ b/docs/.vitepress/dist/assets/utils_throttle.md.acac61bf.lean.js @@ -0,0 +1,28 @@ +import{t as a}from"./chunks/q-ui.bc6b1064.js";import{d as l,p as o,B as p,c as t,o as e,V as c}from"./chunks/framework.dc35932b.js";const r=c(`

节流


如果短时间内大量触发同一事件,那么在函数执行一次之后,该函数在指定的时间(delay)期限内不再工作,直至过了这段时间才重新生效

Show Source Code
ts
function throttle(fn: Function, delay = 300): any {
+  var valid = true
+  return function () {
+    if (valid) {
+      valid = false // 将函数置为无效
+      rafTimeout(() => {
+        fn()
+        valid = true
+      }, delay)
+    }
+    return false // valid为false时,函数不执行
+  }
+}

何时使用

  • 短时间内大量触发同一事件时,每 delay ms 内函数只执行一次

基本使用

打开控制台查看输出

vue
<script setup lang="ts">
+import { onMounted, onUnmounted } from "vue"
+import { throttle } from "@jqw755/q-ui"
+
+onMounted(() => {
+  document.onscroll = throttle(showPosition, 1000)
+})
+onUnmounted(() => {
+  // 移除键盘切换事件
+  document.onscroll = null
+})
+function showPosition() {
+  const scrollTop = document.body.scrollTop || document.documentElement.scrollTop
+  console.log("滚动条位置:" + scrollTop)
+}
+</script>

Params

参数说明类型默认值必传
fn要执行的函数Function-true
delay函数失效时长,单位 msnumber300false
`,11),y=[r],d=JSON.parse('{"title":"节流","description":"","frontmatter":{},"headers":[],"relativePath":"utils/throttle.md","filePath":"utils/throttle.md"}'),F={name:"utils/throttle.md"},u=l({...F,setup(D){o(()=>{document.onscroll=a(n,1e3)}),p(()=>{document.onscroll=null});function n(){const s=document.body.scrollTop||document.documentElement.scrollTop;console.log("滚动条位置:"+s)}return(s,C)=>(e(),t("div",null,y))}});export{d as __pageData,u as default}; diff --git a/docs/.vitepress/dist/guide/components/breadcrumb.html b/docs/.vitepress/dist/guide/components/breadcrumb.html new file mode 100644 index 0000000..fdab769 --- /dev/null +++ b/docs/.vitepress/dist/guide/components/breadcrumb.html @@ -0,0 +1,99 @@ + + + + + + 面包屑 QBreadcrumb | QUI + + + + + + + + + + + +
Skip to content
On this page

面包屑 QBreadcrumb


显示当前页面在系统层级结构中的位置,并能向上返回

何时使用

  • 当系统拥有超过两级以上的层级结构时
  • 当需要告知用户『你在哪里』时
  • 当需要向上导航的功能时

基本使用

Show Code
vue
<script setup lang="ts">
+const routes = [
+  {
+    path: "/first", // 路由地址
+    query: { id: 1, tab: 2 }, // 路由参数
+    name: "一级路由", // 路由名称
+  },
+  {
+    path: "/second",
+    name: "二级路由",
+  },
+  {
+    path: "/third",
+    name: "三级路由三级路由三级路由三级路由",
+  },
+]
+</script>
+<template>
+  <QBreadcrumb :routes="routes" />
+</template>

自定义分隔符

Show Code
vue
<script setup lang="ts">
+const routes = [
+  {
+    path: "/first", // 路由地址
+    query: { id: 1, tab: 2 }, // 路由参数
+    name: "一级路由", // 路由名称
+  },
+  {
+    path: "/second",
+    name: "二级路由",
+  },
+  {
+    path: "/third",
+    name: "三级路由三级路由三级路由三级路由",
+  },
+]
+</script>
+<template>
+  <QBreadcrumb :routes="routes" separator="/" />
+</template>

自定义样式

Show Code
vue
<script setup lang="ts">
+const routes = [
+  {
+    path: "/first", // 路由地址
+    query: { id: 1, tab: 2 }, // 路由参数
+    name: "一级路由", // 路由名称
+  },
+  {
+    path: "/second",
+    name: "二级路由",
+  },
+  {
+    path: "/third",
+    name: "三级路由三级路由三级路由三级路由三级路由",
+  },
+]
+</script>
+<template>
+  <QBreadcrumb :routes="routes" :font-size="16" />
+</template>

新页面打开目标链接

Show Code
vue
<script setup lang="ts">
+const routes = [
+  {
+    path: "/first", // 路由地址
+    query: { id: 1, tab: 2 }, // 路由参数
+    name: "一级路由", // 路由名称
+  },
+  {
+    path: "/second",
+    name: "二级路由",
+  },
+  {
+    path: "/third",
+    name: "三级路由三级路由三级路由三级路由",
+  },
+]
+</script>
+<template>
+  <QBreadcrumb :routes="routes" target="_blank" />
+</template>

APIs

参数说明类型默认值必传
routes路由数组Route[][]true
fontSize字体大小,单位 pxnumber14false
height面包屑高度number36false
maxWidth文本最大显示宽度,超出后显示省略号,单位 px180false
separator分隔符,默认''时为箭头string''false
target如何打开目标 URL'_self' | '_blank''_self'false

Route Type

名称说明类型必传
path路由地址stringtrue
query路由查询参数[propName: string]: anyfalse
name路由名称stringtrue

License

+ + + + \ No newline at end of file diff --git a/docs/.vitepress/dist/guide/components/button.html b/docs/.vitepress/dist/guide/components/button.html new file mode 100644 index 0000000..9c70446 --- /dev/null +++ b/docs/.vitepress/dist/guide/components/button.html @@ -0,0 +1,64 @@ + + + + + + 按钮 | QUI + + + + + + + + + + + +
Skip to content
On this page

按钮

何时使用

  • 当需要添加一个操作按钮时

基本使用

Show Code
vue
<script setup lang="ts">
+function onClick(e: Event) {
+  console.log("click")
+}
+</script>
+<template>
+  <q-button @click="onClick">Default</q-button>
+  <q-button effect="reverse" @click="onClick">Reverse</q-button>
+  <q-button type="primary" @click="onClick">Primary</q-button>
+  <q-button type="danger" @click="onClick">Danger</q-button>
+  <q-button disabled @click="onClick">Disabled</q-button>
+</template>

大、中、小三种尺寸

Show Code
vue
<script setup lang="ts">
+function onClick(e: Event) {
+  console.log("click")
+}
+</script>
+<template>
+  <q-button size="small" @click="onClick">Small</q-button>
+  <q-button @click="onClick">Default</q-button>
+  <q-button size="large" @click="onClick">Large</q-button>
+</template>

自定义样式

Show Code
vue
<script setup lang="ts">
+function onClick(e: Event) {
+  console.log("click")
+}
+</script>
+<template>
+  <q-button :width="120" :height="40" :border-radius="8" size="large" @click="onClick">
+    <p style="font-size: 18px;">自定义样式</p>
+  </q-button>
+</template>

加载中状态

Loading state:

Show Code
vue
<script setup lang="ts">
+import { ref } from "vue"
+const loading = ref(true)
+function onClick(e: Event) {
+  console.log("click")
+}
+</script>
+<template>
+  <q-button :loading="loading" @click="onClick">Default</q-button>
+  <q-button :loading="loading" type="primary" @click="onClick">Primary</q-button>
+  <q-button :loading="loading" type="danger" @click="onClick">Danger</q-button>
+  <h3>Loading state: <Switch v-model:checked="loading" /></h3>
+</template>

APIs

参数说明类型默认值必传
name默认文本string | slot'按钮'false
type类型'default' | 'primary' | 'danger''default'false
effect悬浮变化效果,只有 type 为 default 时,effect 才生效'fade' | 'reverse'''
size尺寸'small' | 'middle' | 'large''_self'false
width宽度,优先级高于 size 属性,为 0 时自适应内容的宽度number0false
height高度,优先级高于 size 属性number0false
borderRadius圆角number5false
route跳转目标 URL 地址{path?: string, query?: object}{}false
target如何打开目标 URL,设置 route 时生效'_self' | '_blank''_self'false
disabled是否禁用booleanfalsefalse
loading是否加载中booleanfalsefalse
center是否将按钮设置为块级元素并居中展示booleanfalsefalse

Events

事件名称说明参数
click点击按钮时的回调,未设置 route 时生效(e: Event) => void

License

+ + + + \ No newline at end of file diff --git a/docs/.vitepress/dist/guide/components/select.html b/docs/.vitepress/dist/guide/components/select.html new file mode 100644 index 0000000..77fb7dc --- /dev/null +++ b/docs/.vitepress/dist/guide/components/select.html @@ -0,0 +1,339 @@ + + + + + + 选择器 QSelect | QUI + + + + + + + + + + + +
Skip to content
On this page

选择器 QSelect

何时使用

  • 弹出一个下拉菜单给用户选择操作,用于代替原生的选择器,或者需要一个更优雅的多选器时
  • 当选项少时(少于 5 项),建议直接将选项平铺,使用 Radio 是更好的选择

基本使用

北京市
Show Code
vue
<script setup lang="ts">
+import { ref, watchEffect } from "vue"
+const options = ref([
+  {
+    label: "北京市",
+    value: 1,
+  },
+  {
+    label: "上海市",
+    value: 2,
+  },
+  {
+    label: "纽约市",
+    value: 3,
+  },
+  {
+    label: "旧金山",
+    value: 4,
+  },
+  {
+    label: "布宜诺斯艾利斯",
+    value: 5,
+  },
+  {
+    label: "伊斯坦布尔",
+    value: 6,
+  },
+  {
+    label: "拜占庭",
+    value: 7,
+  },
+  {
+    label: "君士坦丁堡",
+    value: 8,
+  },
+])
+const QSelectedValue = ref(1)
+watchEffect(() => {
+  console.log("QSelectedValue:", QSelectedValue.value)
+})
+</script>
+<template>
+  <QSelect :options="options" v-model="QSelectedValue" />
+</template>

禁用

北京市
Show Code
vue
<script setup lang="ts">
+import { ref } from "vue"
+const options = ref([
+  {
+    label: "北京市",
+    value: 1,
+  },
+  {
+    label: "上海市",
+    value: 2,
+  },
+  {
+    label: "纽约市",
+    value: 3,
+  },
+  {
+    label: "旧金山",
+    value: 4,
+  },
+  {
+    label: "布宜诺斯艾利斯",
+    value: 5,
+  },
+  {
+    label: "伊斯坦布尔",
+    value: 6,
+  },
+  {
+    label: "拜占庭",
+    value: 7,
+  },
+  {
+    label: "君士坦丁堡",
+    value: 8,
+  },
+])
+const QSelectedValue = ref(1)
+</script>
+<template>
+  <QSelect :options="options" v-model="QSelectedValue" disabled />
+</template>

禁用选项

北京市
Show Code
vue
<script setup lang="ts">
+import { ref } from "vue"
+const optionsDisabled = ref([
+  {
+    label: "北京市",
+    value: 1,
+  },
+  {
+    label: "上海市",
+    value: 2,
+    disabled: true,
+  },
+  {
+    label: "纽约市",
+    value: 3,
+  },
+  {
+    label: "旧金山",
+    value: 4,
+  },
+  {
+    label: "布宜诺斯艾利斯",
+    value: 5,
+  },
+  {
+    label: "伊斯坦布尔",
+    value: 6,
+  },
+  {
+    label: "拜占庭",
+    value: 7,
+  },
+  {
+    label: "君士坦丁堡",
+    value: 8,
+  },
+])
+const QSelectedValue = ref(1)
+</script>
+<template>
+  <QSelect :options="optionsDisabled" v-model="QSelectedValue" />
+</template>

支持清除

北京市
Show Code
vue
<script setup lang="ts">
+import { ref, watchEffect } from "vue"
+const options = ref([
+  {
+    label: "北京市",
+    value: 1,
+  },
+  {
+    label: "上海市",
+    value: 2,
+  },
+  {
+    label: "纽约市",
+    value: 3,
+  },
+  {
+    label: "旧金山",
+    value: 4,
+  },
+  {
+    label: "布宜诺斯艾利斯",
+    value: 5,
+  },
+  {
+    label: "伊斯坦布尔",
+    value: 6,
+  },
+  {
+    label: "拜占庭",
+    value: 7,
+  },
+  {
+    label: "君士坦丁堡",
+    value: 8,
+  },
+])
+const QSelectedValue = ref(1)
+watchEffect(() => {
+  console.log("QSelectedValue:", QSelectedValue.value)
+})
+function onChange(value: string | number, label: string, index: number) {
+  console.log("value:", value)
+  console.log("label:", label)
+  console.log("index:", index)
+}
+</script>
+<template>
+  <QSelect :options="options" allow-clear v-model="QSelectedValue" @change="onChange" />
+</template>

自定义样式

北京市
Show Code
vue
<script setup lang="ts">
+import { ref, watchEffect } from "vue"
+const options = ref([
+  {
+    label: "北京市",
+    value: 1,
+  },
+  {
+    label: "上海市",
+    value: 2,
+  },
+  {
+    label: "纽约市",
+    value: 3,
+  },
+  {
+    label: "旧金山",
+    value: 4,
+  },
+  {
+    label: "布宜诺斯艾利斯",
+    value: 5,
+  },
+  {
+    label: "伊斯坦布尔",
+    value: 6,
+  },
+  {
+    label: "拜占庭",
+    value: 7,
+  },
+  {
+    label: "君士坦丁堡",
+    value: 8,
+  },
+])
+const QSelectedValue = ref(1)
+watchEffect(() => {
+  console.log("QSelectedValue:", QSelectedValue.value)
+})
+function onChange(value: string | number, label: string, index: number) {
+  console.log("value:", value)
+  console.log("label:", label)
+  console.log("index:", index)
+}
+</script>
+<template>
+  <QSelect :width="160" :height="36" :options="options" v-model="QSelectedValue" @change="onChange" />
+</template>

自定义字段名

北京市
Show Code
vue
<script setup lang="ts">
+import { ref, watchEffect } from "vue"
+const optionsCustom = ref([
+  {
+    name: "北京市",
+    id: 1,
+  },
+  {
+    name: "上海市",
+    id: 2,
+  },
+  {
+    name: "纽约市",
+    id: 3,
+  },
+  {
+    name: "旧金山",
+    id: 4,
+  },
+  {
+    name: "布宜诺斯艾利斯",
+    id: 5,
+  },
+  {
+    name: "伊斯坦布尔",
+    id: 6,
+  },
+  {
+    name: "拜占庭",
+    id: 7,
+  },
+  {
+    name: "君士坦丁堡",
+    id: 8,
+  },
+])
+const QSelectedValue = ref(1)
+watchEffect(() => {
+  console.log("QSelectedValue:", QSelectedValue.value)
+})
+function onChange(id: string | number, name: string, index: number) {
+  console.log("id:", id)
+  console.log("name:", label)
+  console.log("index:", index)
+}
+</script>
+<template>
+  <QSelect :options="optionsCustom" label="name" value="id" v-model="QSelectedValue" @change="onChange" />
+</template>

自定义下拉面板展示数

北京市
Show Code
vue
<script setup lang="ts">
+import { ref, watchEffect } from "vue"
+const options = ref([
+  {
+    label: "北京市",
+    value: 1,
+  },
+  {
+    label: "上海市",
+    value: 2,
+  },
+  {
+    label: "纽约市",
+    value: 3,
+  },
+  {
+    label: "旧金山",
+    value: 4,
+  },
+  {
+    label: "布宜诺斯艾利斯",
+    value: 5,
+  },
+  {
+    label: "伊斯坦布尔",
+    value: 6,
+  },
+  {
+    label: "拜占庭",
+    value: 7,
+  },
+  {
+    label: "君士坦丁堡",
+    value: 8,
+  },
+])
+const QSelectedValue = ref(1)
+watchEffect(() => {
+  console.log("QSelectedValue:", QSelectedValue.value)
+})
+function onChange(value: string | number, label: string, index: number) {
+  console.log("value:", value)
+  console.log("label:", label)
+  console.log("index:", index)
+}
+</script>
+<template>
+  <QSelect :options="options" :max-display="8" v-model="QSelectedValue" @change="onChange" />
+</template>

APIs

参数说明类型默认值必传
options选项数据Option[][]false
label字典项的文本字段名string'label'false
value字典项的值字段名string'value'false
placeholder默认文字string'请选择'false
disabled是否禁用booleanfalsefalse
allowClear是否支持清除booleanfalsefalse
width宽度number120false
height高度number32false
maxDisplay下拉面板最多能展示的下拉项数,超过后滚动显示number6false
modelValue(v-model)当前选中的 option 条目number | string | nullnullfalse

Option Type

名称说明类型必传
label选项名stringfalse
value选项值string | numberfalse
disabled是否禁用选项booleanfalse
[propName: string]添加一个字符串索引签名,用于包含带有任意数量的其他属性any-

Events

事件名称说明参数
change选项值改变后的回调(value: string | number, label: string, index: number) => void

License

+ + + + \ No newline at end of file diff --git a/docs/.vitepress/dist/guide/features.html b/docs/.vitepress/dist/guide/features.html new file mode 100644 index 0000000..2034832 --- /dev/null +++ b/docs/.vitepress/dist/guide/features.html @@ -0,0 +1,23 @@ + + + + + + 特性 | QUI + + + + + + + + + + + +
Skip to content
On this page

特性

介绍

该组件库采用 Vite3 + Vue3 + TS + Scss 实现!

三种使用方式

  • 全局引入所有组件
  • 按需引入部分组件
  • git clone q-ui 到本地后,从 packages 下单独拷贝单文件组件 (SFC) 到项目内使用

License

+ + + + \ No newline at end of file diff --git a/docs/.vitepress/dist/guide/started.html b/docs/.vitepress/dist/guide/started.html new file mode 100644 index 0000000..be29c99 --- /dev/null +++ b/docs/.vitepress/dist/guide/started.html @@ -0,0 +1,33 @@ + + + + + + 快速上手 | QUI + + + + + + + + + + + +
Skip to content
On this page

快速上手

安装

With Yarn

bash
$ yarn add @jqw755/q-ui

With NPM

bash
$ npm i @jqw755/q-ui

使用

全局

ts
import { createApp } from "vue"
+import App from "./App.vue"
+
+import QUI from "@jqw755/q-ui"
+import "@jqw755/q-ui/css"
+
+const app = createApp(App)
+app.use(QUI)
+
+app.mount("#app")

单文件

ts
import { QButton } from "@jqw755/q-ui"
+import "@jqw755/q-ui/css"

License

+ + + + \ No newline at end of file diff --git a/docs/.vitepress/dist/hashmap.json b/docs/.vitepress/dist/hashmap.json new file mode 100644 index 0000000..3f99ec6 --- /dev/null +++ b/docs/.vitepress/dist/hashmap.json @@ -0,0 +1 @@ +{"guide_features.md":"009e63d0","utils_started.md":"23925c67","index.md":"eac6bc54","guide_started.md":"0f3c8d50","utils_throttle.md":"acac61bf","utils_debounce.md":"8acddf5b","utils_download-file.md":"45802505","guide_components_button.md":"881ed501","guide_components_breadcrumb.md":"56a47eca","utils_date-format.md":"e268d2ac","guide_components_select.md":"880efa1b"} diff --git a/docs/.vitepress/dist/index.html b/docs/.vitepress/dist/index.html new file mode 100644 index 0000000..7921384 --- /dev/null +++ b/docs/.vitepress/dist/index.html @@ -0,0 +1,23 @@ + + + + + + QUI | 组件库文档 + + + + + + + + + + + +
Skip to content

QUI

组件库

基于 Vite3 + Vue3 + TS 开发

QUI

License

+ + + + \ No newline at end of file diff --git a/docs/.vitepress/dist/logo.png b/docs/.vitepress/dist/logo.png new file mode 100644 index 0000000..cc5336b Binary files /dev/null and b/docs/.vitepress/dist/logo.png differ diff --git a/docs/.vitepress/dist/utils/date-format.html b/docs/.vitepress/dist/utils/date-format.html new file mode 100644 index 0000000..c821ce8 --- /dev/null +++ b/docs/.vitepress/dist/utils/date-format.html @@ -0,0 +1,76 @@ + + + + + + 日期格式化 | QUI + + + + + + + + + + + +
Skip to content
On this page

日期格式化

Show Source Code
ts
function dateFormat(value: number | string | Date = Date.now(), format = "YYYY-MM-DD HH:mm:ss"): string {
+  if (typeof value === "number" || typeof value === "string") {
+    var date = new Date(value)
+  } else {
+    var date = value
+  }
+  function fixedTwo(value: number): string {
+    return value < 10 ? "0" + value : String(value)
+  }
+  var showTime = format
+  if (showTime.includes("SSS")) {
+    const S = date.getMilliseconds()
+    showTime = showTime.replace("SSS", "0".repeat(3 - String(S).length) + S)
+  }
+  if (showTime.includes("YY")) {
+    const Y = date.getFullYear()
+    showTime = showTime.includes("YYYY")
+      ? showTime.replace("YYYY", String(Y))
+      : showTime.replace("YY", String(Y).slice(2, 4))
+  }
+  if (showTime.includes("M")) {
+    const M = date.getMonth() + 1
+    showTime = showTime.includes("MM") ? showTime.replace("MM", fixedTwo(M)) : showTime.replace("M", String(M))
+  }
+  if (showTime.includes("D")) {
+    const D = date.getDate()
+    showTime = showTime.includes("DD") ? showTime.replace("DD", fixedTwo(D)) : showTime.replace("D", String(D))
+  }
+  if (showTime.includes("H")) {
+    const H = date.getHours()
+    showTime = showTime.includes("HH") ? showTime.replace("HH", fixedTwo(H)) : showTime.replace("H", String(H))
+  }
+  if (showTime.includes("m")) {
+    var m = date.getMinutes()
+    showTime = showTime.includes("mm") ? showTime.replace("mm", fixedTwo(m)) : showTime.replace("m", String(m))
+  }
+  if (showTime.includes("s")) {
+    var s = date.getSeconds()
+    showTime = showTime.includes("ss") ? showTime.replace("ss", fixedTwo(s)) : showTime.replace("s", String(s))
+  }
+  return showTime
+}

何时使用

  • 格式化日期时

基本使用

格式化时间戳


2023-05-31 14:20:45

vue
<script setup lang="ts">
+import { dateFormat } from "@jqw755/q-ui"
+
+dateFormat(1685514045679) // 2023-05-31 14:20:45
+</script>

格式化字符串


05/31/2023

vue
<script setup lang="ts">
+import { dateFormat } from "@jqw755/q-ui"
+
+dateFormat("2023-05-31", "MM/DD/YYYY") // 05/31/2023
+</script>

展示毫秒值


2023-05-31 14:20:45:679

vue
<script setup lang="ts">
+import { dateFormat } from "@jqw755/q-ui"
+
+dateFormat(1685514045679, "YYYY-MM-DD HH:mm:ss:SSS") // 2023-05-31 14:20:45:679
+</script>

Params

参数说明类型默认值必传
value13 位时间戳;或者可以转化为 Date 类型的字符串日期;或者 Date 对象number | string | DateDate.now()false
format格式化目标形式string'YYYY-MM-DD HH:mm:ss'false

format 支持的格式化占位符列表

标识示例描述
YY23年,两位数
YYYY2023年,四位数
M1-12月,从 1 开始
MM01-12月,两位数
D1-31
DD01-31日,两位数
H0-23小时
HH00-23小时,两位数
m0-59分钟
mm00-59分钟,两位数
s0-59
ss00-59秒,两位数
SSS000-999毫秒,三位数

License

+ + + + \ No newline at end of file diff --git a/docs/.vitepress/dist/utils/debounce.html b/docs/.vitepress/dist/utils/debounce.html new file mode 100644 index 0000000..afc5f9e --- /dev/null +++ b/docs/.vitepress/dist/utils/debounce.html @@ -0,0 +1,47 @@ + + + + + + 防抖 | QUI + + + + + + + + + + + + +
Skip to content
On this page

防抖


对于短时间内连续触发的事件,防抖就是让某个时间(delay)期限内,事件处理函数只执行一次

Show Source Code
ts
function debounce(fn: Function, delay = 300): any {
+  let timer: any = null //借助闭包
+  return function () {
+    if (timer) {
+      cancelRaf(timer)
+    }
+    timer = rafTimeout(fn, delay)
+  }
+}

何时使用

  • 对于短时间内连续触发的事件,在 delay ms 内函数只执行最后一次

基本使用

打开控制台查看输出

vue
<script setup lang="ts">
+import { onMounted, onUnmounted } from "vue"
+import { debounce } from "@jqw755/q-ui"
+
+onMounted(() => {
+  document.onscroll = debounce(showPosition, 1000)
+})
+onUnmounted(() => {
+  // 移除键盘切换事件
+  document.onscroll = null
+})
+function showPosition() {
+  const scrollTop = document.body.scrollTop || document.documentElement.scrollTop
+  console.log("滚动条位置:" + scrollTop)
+}
+</script>

Params

参数说明类型默认值必传
fn要执行的函数Function-true
delay防抖时间期限,单位 msnumber300false

License

+ + + + \ No newline at end of file diff --git a/docs/.vitepress/dist/utils/download-file.html b/docs/.vitepress/dist/utils/download-file.html new file mode 100644 index 0000000..5abcaf4 --- /dev/null +++ b/docs/.vitepress/dist/utils/download-file.html @@ -0,0 +1,53 @@ + + + + + + 下载文件 | QUI + + + + + + + + + + + +
Skip to content
On this page

下载文件

Show Source Code
ts
function downloadFile(url: string, name: string) {
+  var fileName = ""
+  if (name) {
+    fileName = name
+  } else {
+    const res = url.split("?")[0].split("/")
+    fileName = res[res.length - 1]
+  }
+  var xhr = new XMLHttpRequest()
+  xhr.open("GET", url, true)
+  xhr.responseType = "blob"
+  xhr.onload = function () {
+    if (xhr.status === 200) {
+      const blob = xhr.response
+      const link = document.createElement("a")
+      const body = document.querySelector("body")
+      link.href = window.URL.createObjectURL(blob)
+      link.download = fileName
+      link.style.display = "none"
+      body?.appendChild(link)
+      link.click()
+      body?.removeChild(link)
+      window.URL.revokeObjectURL(link.href)
+    }
+  }
+  xhr.send()
+}

何时使用

  • 下载文件并自定义文件名时

基本使用

vue
<script setup lang="ts">
+import { downloadFile } from "@jqw755/q-ui"
+
+donwloadFile("https://cdn.jsdelivr.net/gh/themusecatcher/resources@0.0.3/Markdown.pdf", "Markdown")
+</script>

Params

参数说明类型默认值必传
url文件地址string-true
name自定义文件名,未传时,从文件地址中自动获取文件名称string-false

License

+ + + + \ No newline at end of file diff --git a/docs/.vitepress/dist/utils/started.html b/docs/.vitepress/dist/utils/started.html new file mode 100644 index 0000000..b9342af --- /dev/null +++ b/docs/.vitepress/dist/utils/started.html @@ -0,0 +1,25 @@ + + + + + + 快速上手 | QUI + + + + + + + + + + + +
Skip to content
On this page

快速上手

简要介绍

开箱即用!

使用方式

vue
<script setup lang="ts">
+import { dateFormat, throttle, debounce, downloadFile } from "@jqw755/q-ui"
+</script>

一共 9 个常用工具函数

Function nameDescriptionsArguments
dateFormat简单易用的日期格式化函数!(timestamp: number|string|Date, format = 'YYYY-MM-DD HH:mm:ss') => string
requestAnimationFrame针对不同浏览器进行兼容处理!使用方式不变
cancelAnimationFrame针对不同浏览器进行兼容处理!使用方式不变
rafTimeout使用 requestAnimationFrame 实现的定时器函数,等效替代 (setTimeout 和 setInterval)!(func: Function, delay = 0, interval = false) => object
cancelRaf用于取消 rafTimeout 函数!(raf: { id: number }) => void
throttle使用 rafTimeout 实现的节流函数!(fn: Function, delay = 300) => any
debounce使用 rafTimeout 实现的防抖函数!(fn: Function, delay = 300) => any
add消除 js 加减精度问题的加法函数!(num1: number, num2: number) => number
downloadFile下载文件并自定义文件名,未传 name 时,从文件地址中自动获取文件名称(url: string, name: string) => void

License

+ + + + \ No newline at end of file diff --git a/docs/.vitepress/dist/utils/throttle.html b/docs/.vitepress/dist/utils/throttle.html new file mode 100644 index 0000000..426d551 --- /dev/null +++ b/docs/.vitepress/dist/utils/throttle.html @@ -0,0 +1,51 @@ + + + + + + 节流 | QUI + + + + + + + + + + + + +
Skip to content
On this page

节流


如果短时间内大量触发同一事件,那么在函数执行一次之后,该函数在指定的时间(delay)期限内不再工作,直至过了这段时间才重新生效

Show Source Code
ts
function throttle(fn: Function, delay = 300): any {
+  var valid = true
+  return function () {
+    if (valid) {
+      valid = false // 将函数置为无效
+      rafTimeout(() => {
+        fn()
+        valid = true
+      }, delay)
+    }
+    return false // valid为false时,函数不执行
+  }
+}

何时使用

  • 短时间内大量触发同一事件时,每 delay ms 内函数只执行一次

基本使用

打开控制台查看输出

vue
<script setup lang="ts">
+import { onMounted, onUnmounted } from "vue"
+import { throttle } from "@jqw755/q-ui"
+
+onMounted(() => {
+  document.onscroll = throttle(showPosition, 1000)
+})
+onUnmounted(() => {
+  // 移除键盘切换事件
+  document.onscroll = null
+})
+function showPosition() {
+  const scrollTop = document.body.scrollTop || document.documentElement.scrollTop
+  console.log("滚动条位置:" + scrollTop)
+}
+</script>

Params

参数说明类型默认值必传
fn要执行的函数Function-true
delay函数失效时长,单位 msnumber300false

License

+ + + + \ No newline at end of file diff --git a/docs/.vitepress/theme/env.d.ts b/docs/.vitepress/theme/env.d.ts new file mode 100644 index 0000000..488d59b --- /dev/null +++ b/docs/.vitepress/theme/env.d.ts @@ -0,0 +1,6 @@ +/// +declare module '*.vue' { + import type { DefineComponent } from 'vue' + const vueComponent: DefineComponent<{}, {}, any> + export default vueComponent +} \ No newline at end of file diff --git a/docs/.vitepress/theme/global.scss b/docs/.vitepress/theme/global.scss new file mode 100644 index 0000000..e2ae8af --- /dev/null +++ b/docs/.vitepress/theme/global.scss @@ -0,0 +1,149 @@ +/** + * Colors 在 theme/global.scss 中写入样式,以下样式皆源自 vite 官网项目中使用的全局样式,并稍加修改 + * -------------------------------------------------------------------------- */ + +// :root { +// --vp-c-brand: #646cff; +// --vp-c-brand-light: #747bff; +// --vp-c-brand-lighter: #9499ff; +// --vp-c-brand-lightest: #bcc0ff; +// --vp-c-brand-dark: #535bf2; +// --vp-c-brand-darker: #454ce1; +// --vp-c-brand-dimm: rgba(100, 108, 255, 0.08); +// --c-brand: #646cff; +// --c-brand-light: #747bff; +// } + +/** + * Component: Button + * -------------------------------------------------------------------------- */ + +// :root { +// --vp-button-brand-border: var(--vp-c-brand-light); +// --vp-button-brand-text: var(--vp-c-white); +// --vp-button-brand-bg: var(--vp-c-brand); +// --vp-button-brand-hover-border: var(--vp-c-brand-light); +// --vp-button-brand-hover-text: var(--vp-c-white); +// --vp-button-brand-hover-bg: var(--vp-c-brand-light); +// --vp-button-brand-active-border: var(--vp-c-brand-light); +// --vp-button-brand-active-text: var(--vp-c-white); +// --vp-button-brand-active-bg: var(--vp-button-brand-bg); +// } + +/** + * Component: Home + * -------------------------------------------------------------------------- */ + +// :root { +// --vp-home-hero-name-color: transparent; +// --vp-home-hero-name-background: -webkit-linear-gradient(120deg, #bd34fe 30%, #41d1ff); + +// --vp-home-hero-image-background-image: linear-gradient(-45deg, #bd34fe 50%, #47caff 50%); +// --vp-home-hero-image-filter: blur(40px); +// } + +// @media (min-width: 640px) { +// :root { +// --vp-home-hero-image-filter: blur(56px); +// } +// } + +// @media (min-width: 960px) { +// :root { +// --vp-home-hero-image-filter: blur(72px); +// } +// } + +// /** +// * Component: Custom Block +// * -------------------------------------------------------------------------- */ + +// :root { +// --vp-custom-block-tip-border: var(--vp-c-brand); +// --vp-custom-block-tip-text: var(--vp-c-brand-darker); +// --vp-custom-block-tip-bg: var(--vp-c-brand-dimm); +// } + +// .dark { +// --vp-custom-block-tip-border: var(--vp-c-brand); +// --vp-custom-block-tip-text: var(--vp-c-brand-lightest); +// --vp-custom-block-tip-bg: var(--vp-c-brand-dimm); +// } + +/** + * VitePress: Custom fix + * -------------------------------------------------------------------------- */ + +/* + Use lighter colors for links in dark mode for a11y. + + Also specify some classes twice to have higher specificity + over scoped class data attribute. + +*/ + +// .dark .vp-doc a, +// .dark .vp-doc a > code, +// .dark .VPNavBarMenuLink.VPNavBarMenuLink:hover, +// .dark .VPNavBarMenuLink.VPNavBarMenuLink.active, +// .dark .link.link:hover, +// .dark .link.link.active, +// .dark .edit-link-button.edit-link-button, +// .dark .pager-link .title { +// color: var(--vp-c-brand-lighter); +// } + +// .dark .vp-doc a:hover, +// .dark .vp-doc a > code:hover { +// color: var(--vp-c-brand-lightest); +// opacity: 1; +// } +// .vp-doc a { +// font-weight: normal; +// } +// .vp-doc p { +// margin: 0; +// } +/* Transition by color instead of opacity */ +// .dark .vp-doc .custom-block a { +// transition: color 0.25s; +// } +// a:hover { +// text-decoration: none !important; +// } +// summary { +// font-weight: 600; +// &:hover { +// cursor: pointer; +// color: var(--vp-c-brand-lighter); +// } +// } +// svg { +// fill: var(--vp-c-text-1); +// } +// .VPNavBarTitle .title { +// transition: all 0.25s; +// &:hover { +// color: var(--vp-c-brand); +// } +// } +.version-tag { + font-size: 14px; + line-height: 1.571; + font-weight: bold; + padding: 4px 6px; + margin-left: 6px; + background: #bd34fe; + color: #fff; + border-radius: 10px; + display: inline-block; + vertical-align: top; + margin-top: 4px; +} + +.container .image .image-container .image-bg { + height: 180px; + transform: translate(-50%, 30%); + background-image: linear-gradient(-45deg, #10b981 50%, #47caff 50%); + filter: blur(72px); +} diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts new file mode 100644 index 0000000..a8bbbfd --- /dev/null +++ b/docs/.vitepress/theme/index.ts @@ -0,0 +1,11 @@ +import DefaultTheme from "vitepress/theme" +import "./global.scss" +import QUI from "../../../dist/q-ui" +import "../../../dist/style.css" + +export default { + extends: DefaultTheme, // or ...DefaultTheme + enhanceApp({ app }) { + app.use(QUI) + }, +} diff --git a/docs/.vitepress/utils/fetchVersion.ts b/docs/.vitepress/utils/fetchVersion.ts new file mode 100644 index 0000000..8933308 --- /dev/null +++ b/docs/.vitepress/utils/fetchVersion.ts @@ -0,0 +1,26 @@ +// 远程读取 github 仓库中 package.json 文件中的 version 版本号 +// 方式一: +// 读取规则:https://api.github.com/repos///contents/?ref= +// return fetch('https://api.github.com/repos/themusecatcher/q-ui/contents/package.json?ref=master', { +// headers: { +// // See https://docs.github.com/en/rest/overview/media-types +// Accept: 'application/vnd.github.v3.raw', +// // See https://docs.github.com/en/rest/guides/getting-started-with-the-rest-api#authentication +// // Authorization: 'token ${GITHUB_TOKEN}', +// } +// }) +// 方式二: +// 读取规则:https://raw.githubusercontent.com//// +export function fetchVersion() { + return fetch("https://raw.githubusercontent.com/jqw755/q-ui/master/package.json") + .then((res) => res.json()) + .then((json) => json.version ?? "") + .then((version) => { + if (!version) return + const tagLineParagragh = document.querySelector("div.VPHero.has-image.VPHomeHero > div > div.main > p.tagline") + const docsVersionSpan = document.createElement("samp") + docsVersionSpan.classList.add("version-tag") + docsVersionSpan.innerText = version + tagLineParagragh?.appendChild(docsVersionSpan) + }) +} diff --git a/docs/guide/components/breadcrumb.md b/docs/guide/components/breadcrumb.md new file mode 100644 index 0000000..baafd1c --- /dev/null +++ b/docs/guide/components/breadcrumb.md @@ -0,0 +1,172 @@ +# 面包屑 QBreadcrumb + +
+ +_显示当前页面在系统层级结构中的位置,并能向上返回_ + +## 何时使用 + +- 当系统拥有超过两级以上的层级结构时 +- 当需要告知用户『你在哪里』时 +- 当需要向上导航的功能时 + + + +## 基本使用 + + + +::: details Show Code + +```vue + + +``` + +::: + +## 自定义分隔符 + + + +::: details Show Code + +```vue + + +``` + +::: + +## 自定义样式 + + + +::: details Show Code + +```vue + + +``` + +::: + +## 新页面打开目标链接 + + + +::: details Show Code + +```vue + + +``` + +::: + +## APIs + +| 参数 | 说明 | 类型 | 默认值 | 必传 | +| --------- | ------------------------------------------- | ------------------------- | -------- | ----- | +| routes | 路由数组 | Route[] | [] | true | +| fontSize | 字体大小,单位 px | number | 14 | false | +| height | 面包屑高度 | number | 36 | false | +| maxWidth | 文本最大显示宽度,超出后显示省略号,单位 px | 180 | false | +| separator | 分隔符,默认''时为箭头 | string | '' | false | +| target | 如何打开目标 URL | '\_self' | '\_blank' | '\_self' | false | + +## Route Type + +| 名称 | 说明 | 类型 | 必传 | +| ----- | ------------ | ----------------------- | ----- | +| path | 路由地址 | string | true | +| query | 路由查询参数 | [propName: string]: any | false | +| name | 路由名称 | string | true | diff --git a/docs/guide/components/button.md b/docs/guide/components/button.md new file mode 100644 index 0000000..8bceb4a --- /dev/null +++ b/docs/guide/components/button.md @@ -0,0 +1,158 @@ +# 按钮 + +## 何时使用 + +- 当需要添加一个操作按钮时 + + + +## 基本使用 + +
+ Default + Reverse + Primary + Danger + Disabled +
+ +::: details Show Code + +```vue + + +``` + +::: + +## 大、中、小三种尺寸 + +
+ Small + Default + Large +
+ +::: details Show Code + +```vue + + +``` + +::: + +## 自定义样式 + + + +

自定义样式

+
+ +::: details Show Code + +```vue + + +``` + +::: + +## 加载中状态 + +
+ Default + Primary + Danger +
+
+

Loading state:

+ +
+ +::: details Show Code + +```vue + + +``` + +::: + + + +## APIs + +| 参数 | 说明 | 类型 | 默认值 | 必传 | +| ------------ | ---------------------------------------------------- | ------------------------------------------ | --------- | ----- | +| name | 默认文本 | string | slot | '按钮' | false | +| type | 类型 | 'default' | 'primary' | 'danger' | 'default' | false | +| effect | 悬浮变化效果,只有 type 为 default 时,effect 才生效 | 'fade' | 'reverse' | '' | +| size | 尺寸 | 'small' | 'middle' | 'large' | '\_self' | false | +| width | 宽度,优先级高于 size 属性,为 0 时自适应内容的宽度 | number | 0 | false | +| height | 高度,优先级高于 size 属性 | number | 0 | false | +| borderRadius | 圆角 | number | 5 | false | +| route | 跳转目标 URL 地址 | {path?: string, query?: object} | {} | false | +| target | 如何打开目标 URL,设置 route 时生效 | '\_self' | '\_blank' | '\_self' | false | +| disabled | 是否禁用 | boolean | false | false | +| loading | 是否加载中 | boolean | false | false | +| center | 是否将按钮设置为块级元素并居中展示 | boolean | false | false | + +## Events + +| 事件名称 | 说明 | 参数 | +| -------- | ------------------------------------- | ------------------ | +| click | 点击按钮时的回调,未设置 route 时生效 | (e: Event) => void | diff --git a/docs/guide/components/select.md b/docs/guide/components/select.md new file mode 100644 index 0000000..785897d --- /dev/null +++ b/docs/guide/components/select.md @@ -0,0 +1,572 @@ +# 选择器 QSelect + +## 何时使用 + +- 弹出一个下拉菜单给用户选择操作,用于代替原生的选择器,或者需要一个更优雅的多选器时 +- 当选项少时(少于 5 项),建议直接将选项平铺,使用 Radio 是更好的选择 + + + +## 基本使用 + + + +::: details Show Code + +```vue + + +``` + +::: + +## 禁用 + + + +::: details Show Code + +```vue + + +``` + +::: + +## 禁用选项 + + + +::: details Show Code + +```vue + + +``` + +::: + +## 支持清除 + + + +::: details Show Code + +```vue + + +``` + +::: + +## 自定义样式 + + + +::: details Show Code + +```vue + + +``` + +::: + +## 自定义字段名 + + + +::: details Show Code + +```vue + + +``` + +::: + +## 自定义下拉面板展示数 + + + +::: details Show Code + +```vue + + +``` + +::: + +## APIs + +| 参数 | 说明 | 类型 | 默认值 | 必传 | +| ------------------- | -------------------------------------------- | -------------------------------- | -------- | ----- | +| options | 选项数据 | Option[] | [] | false | +| label | 字典项的文本字段名 | string | 'label' | false | +| value | 字典项的值字段名 | string | 'value' | false | +| placeholder | 默认文字 | string | '请选择' | false | +| disabled | 是否禁用 | boolean | false | false | +| allowClear | 是否支持清除 | boolean | false | false | +| width | 宽度 | number | 120 | false | +| height | 高度 | number | 32 | false | +| maxDisplay | 下拉面板最多能展示的下拉项数,超过后滚动显示 | number | 6 | false | +| modelValue(v-model) | 当前选中的 option 条目 | number | string | null | null | false | + +## Option Type + +| 名称 | 说明 | 类型 | 必传 | +| ------------------ | ------------------------------------------------------ | -------------------- | ----- | +| label | 选项名 | string | false | +| value | 选项值 | string | number | false | +| disabled | 是否禁用选项 | boolean | false | +| [propName: string] | 添加一个字符串索引签名,用于包含带有任意数量的其他属性 | any | - | + +## Events + +| 事件名称 | 说明 | 参数 | +| -------- | ------------------ | ------------------------------------------------------------------- | +| change | 选项值改变后的回调 | (value: string | number, label: string, index: number) => void | diff --git a/docs/guide/features.md b/docs/guide/features.md new file mode 100644 index 0000000..3e1628e --- /dev/null +++ b/docs/guide/features.md @@ -0,0 +1,11 @@ +# 特性 + +## 介绍 + +该组件库采用 Vite3 + Vue3 + TS + Scss 实现! + +## 三种使用方式 + +- 全局引入所有组件 +- 按需引入部分组件 +- git clone [q-ui](https://github.com/jqw755/q-ui) 到本地后,从 packages 下单独拷贝单文件组件 (SFC) 到项目内使用 diff --git a/docs/guide/started.md b/docs/guide/started.md new file mode 100644 index 0000000..a5ede22 --- /dev/null +++ b/docs/guide/started.md @@ -0,0 +1,39 @@ +# 快速上手 + +## 安装 + +**With Yarn** + +```bash +$ yarn add @jqw755/q-ui +``` + +**With NPM** + +```bash +$ npm i @jqw755/q-ui +``` + +## 使用 + +**全局** + +```ts +import { createApp } from "vue" +import App from "./App.vue" + +import QUI from "@jqw755/q-ui" +import "@jqw755/q-ui/css" + +const app = createApp(App) +app.use(QUI) + +app.mount("#app") +``` + +**单文件** + +```ts +import { QButton } from "@jqw755/q-ui" +import "@jqw755/q-ui/css" +``` diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..248222b --- /dev/null +++ b/docs/index.md @@ -0,0 +1,34 @@ +--- +layout: home + +title: QUI +titleTemplate: 组件库文档 + +hero: + name: QUI + text: 组件库 + tagline: 基于 Vite3 + Vue3 + TS 开发 + image: + src: /logo.png + alt: QUI + actions: + - theme: brand + text: 开始 + link: /guide/features + - theme: alt + text: 在GitHub上查看 + link: https://github.com/jqw755/q-ui + - theme: alt + text: 在NPM上查看 + link: https://www.npmjs.com/package/@jqw755/q-ui +--- + + diff --git a/docs/public/logo.png b/docs/public/logo.png new file mode 100644 index 0000000..cc5336b Binary files /dev/null and b/docs/public/logo.png differ diff --git a/docs/utils/date-format.md b/docs/utils/date-format.md new file mode 100644 index 0000000..8e8b5ab --- /dev/null +++ b/docs/utils/date-format.md @@ -0,0 +1,123 @@ +# 日期格式化 + +::: details Show Source Code + +```ts +function dateFormat(value: number | string | Date = Date.now(), format = "YYYY-MM-DD HH:mm:ss"): string { + if (typeof value === "number" || typeof value === "string") { + var date = new Date(value) + } else { + var date = value + } + function fixedTwo(value: number): string { + return value < 10 ? "0" + value : String(value) + } + var showTime = format + if (showTime.includes("SSS")) { + const S = date.getMilliseconds() + showTime = showTime.replace("SSS", "0".repeat(3 - String(S).length) + S) + } + if (showTime.includes("YY")) { + const Y = date.getFullYear() + showTime = showTime.includes("YYYY") + ? showTime.replace("YYYY", String(Y)) + : showTime.replace("YY", String(Y).slice(2, 4)) + } + if (showTime.includes("M")) { + const M = date.getMonth() + 1 + showTime = showTime.includes("MM") ? showTime.replace("MM", fixedTwo(M)) : showTime.replace("M", String(M)) + } + if (showTime.includes("D")) { + const D = date.getDate() + showTime = showTime.includes("DD") ? showTime.replace("DD", fixedTwo(D)) : showTime.replace("D", String(D)) + } + if (showTime.includes("H")) { + const H = date.getHours() + showTime = showTime.includes("HH") ? showTime.replace("HH", fixedTwo(H)) : showTime.replace("H", String(H)) + } + if (showTime.includes("m")) { + var m = date.getMinutes() + showTime = showTime.includes("mm") ? showTime.replace("mm", fixedTwo(m)) : showTime.replace("m", String(m)) + } + if (showTime.includes("s")) { + var s = date.getSeconds() + showTime = showTime.includes("ss") ? showTime.replace("ss", fixedTwo(s)) : showTime.replace("s", String(s)) + } + return showTime +} +``` + +::: + +## 何时使用 + +- 格式化日期时 + +## 基本使用 + +_格式化时间戳_ + +
+ +**2023-05-31 14:20:45** + +```vue + +``` + +## 格式化字符串 + +
+ +**05/31/2023** + +```vue + +``` + +## 展示毫秒值 + +
+ +**2023-05-31 14:20:45:679** + +```vue + +``` + +## Params + +| 参数 | 说明 | 类型 | 默认值 | 必传 | +| ------ | ----------------------------------------------------------------- | -------------------------------- | --------------------- | ----- | +| value | 13 位时间戳;或者可以转化为 Date 类型的字符串日期;或者 Date 对象 | number | string | Date | Date.now() | false | +| format | 格式化目标形式 | string | 'YYYY-MM-DD HH:mm:ss' | false | + +## format 支持的格式化占位符列表 + +| 标识 | 示例 | 描述 | +| ---- | ------- | ------------- | +| YY | 23 | 年,两位数 | +| YYYY | 2023 | 年,四位数 | +| M | 1-12 | 月,从 1 开始 | +| MM | 01-12 | 月,两位数 | +| D | 1-31 | 日 | +| DD | 01-31 | 日,两位数 | +| H | 0-23 | 小时 | +| HH | 00-23 | 小时,两位数 | +| m | 0-59 | 分钟 | +| mm | 00-59 | 分钟,两位数 | +| s | 0-59 | 秒 | +| ss | 00-59 | 秒,两位数 | +| SSS | 000-999 | 毫秒,三位数 | diff --git a/docs/utils/debounce.md b/docs/utils/debounce.md new file mode 100644 index 0000000..e3463d1 --- /dev/null +++ b/docs/utils/debounce.md @@ -0,0 +1,72 @@ +# 防抖 + +
+ +_对于短时间内连续触发的事件,防抖就是让某个时间(delay)期限内,事件处理函数只执行一次_ + +::: details Show Source Code + +```ts +function debounce(fn: Function, delay = 300): any { + let timer: any = null //借助闭包 + return function () { + if (timer) { + cancelRaf(timer) + } + timer = rafTimeout(fn, delay) + } +} +``` + +::: + +## 何时使用 + +- 对于短时间内连续触发的事件,在 delay ms 内函数只执行最后一次 + + + +## 基本使用 + +_打开控制台查看输出_ + +```vue + +``` + +## Params + +| 参数 | 说明 | 类型 | 默认值 | 必传 | +| ----- | --------------------- | -------- | ------ | ----- | +| fn | 要执行的函数 | Function | - | true | +| delay | 防抖时间期限,单位 ms | number | 300 | false | diff --git a/docs/utils/download-file.md b/docs/utils/download-file.md new file mode 100644 index 0000000..d17ec3e --- /dev/null +++ b/docs/utils/download-file.md @@ -0,0 +1,56 @@ +# 下载文件 + +::: details Show Source Code + +```ts +function downloadFile(url: string, name: string) { + var fileName = "" + if (name) { + fileName = name + } else { + const res = url.split("?")[0].split("/") + fileName = res[res.length - 1] + } + var xhr = new XMLHttpRequest() + xhr.open("GET", url, true) + xhr.responseType = "blob" + xhr.onload = function () { + if (xhr.status === 200) { + const blob = xhr.response + const link = document.createElement("a") + const body = document.querySelector("body") + link.href = window.URL.createObjectURL(blob) + link.download = fileName + link.style.display = "none" + body?.appendChild(link) + link.click() + body?.removeChild(link) + window.URL.revokeObjectURL(link.href) + } + } + xhr.send() +} +``` + +::: + +## 何时使用 + +- 下载文件并自定义文件名时 + +## 基本使用 + +```vue + +``` + +## Params + +| 参数 | 说明 | 类型 | 默认值 | 必传 | +| ---- | -------------------------------------------------- | ------ | ------ | ----- | +| url | 文件地址 | string | - | true | +| name | 自定义文件名,未传时,从文件地址中自动获取文件名称 | string | - | false | diff --git a/docs/utils/started.md b/docs/utils/started.md new file mode 100644 index 0000000..3732784 --- /dev/null +++ b/docs/utils/started.md @@ -0,0 +1,27 @@ +# 快速上手 + +## 简要介绍 + +开箱即用! + +## 使用方式 + +```vue + +``` + +## 一共 9 个常用工具函数 + +| Function name | Descriptions | Arguments | +| --------------------- | :---------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------- | +| dateFormat | 简单易用的日期格式化函数! | (timestamp: number|string|Date, format = 'YYYY-MM-DD HH:mm:ss') => string | +| requestAnimationFrame | 针对不同浏览器进行兼容处理! | 使用方式不变 | +| cancelAnimationFrame | 针对不同浏览器进行兼容处理! | 使用方式不变 | +| rafTimeout | 使用 requestAnimationFrame 实现的定时器函数,等效替代 (setTimeout 和 setInterval)! | (func: Function, delay = 0, interval = false) => object | +| cancelRaf | 用于取消 rafTimeout 函数! | (raf: { id: number }) => void | +| throttle | 使用 rafTimeout 实现的节流函数! | (fn: Function, delay = 300) => any | +| debounce | 使用 rafTimeout 实现的防抖函数! | (fn: Function, delay = 300) => any | +| add | 消除 js 加减精度问题的加法函数! | (num1: number, num2: number) => number | +| downloadFile | 下载文件并自定义文件名,未传 name 时,从文件地址中自动获取文件名称 | (url: string, name: string) => void | diff --git a/docs/utils/throttle.md b/docs/utils/throttle.md new file mode 100644 index 0000000..d9a3a25 --- /dev/null +++ b/docs/utils/throttle.md @@ -0,0 +1,76 @@ +# 节流 + +
+ +_如果短时间内大量触发同一事件,那么在函数执行一次之后,该函数在指定的时间(delay)期限内不再工作,直至过了这段时间才重新生效_ + +::: details Show Source Code + +```ts +function throttle(fn: Function, delay = 300): any { + var valid = true + return function () { + if (valid) { + valid = false // 将函数置为无效 + rafTimeout(() => { + fn() + valid = true + }, delay) + } + return false // valid为false时,函数不执行 + } +} +``` + +::: + +## 何时使用 + +- 短时间内大量触发同一事件时,每 delay ms 内函数只执行一次 + + + +## 基本使用 + +_打开控制台查看输出_ + +```vue + +``` + +## Params + +| 参数 | 说明 | 类型 | 默认值 | 必传 | +| ----- | --------------------- | -------- | ------ | ----- | +| fn | 要执行的函数 | Function | - | true | +| delay | 函数失效时长,单位 ms | number | 300 | false | diff --git a/env.d.ts b/env.d.ts new file mode 100644 index 0000000..501a497 --- /dev/null +++ b/env.d.ts @@ -0,0 +1,8 @@ +/// +declare module "*.vue" { + import type { DefineComponent } from "vue" + + const vueComponent: DefineComponent<{}, {}, any> + + export default vueComponent +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..a888544 --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite App + + +
+ + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..0ebc0d3 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6073 @@ +{ + "name": "@jqw755/q-ui", + "version": "0.0.3", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "@jqw755/q-ui", + "version": "0.0.3", + "license": "ISC", + "dependencies": { + "@jqw755/q-ui": "^0.0.3", + "sass": "^1.63.3", + "vue": "^3.3.4", + "vue-router": "^4.2.2" + }, + "devDependencies": { + "@tsconfig/node18": "^2.0.1", + "@types/node": "^18.16.17", + "@vitejs/plugin-vue": "^4.2.3", + "@vitejs/plugin-vue-jsx": "^3.0.1", + "@vue/tsconfig": "^0.4.0", + "npm-run-all": "^4.1.5", + "terser": "^5.18.0", + "typescript": "~5.0.4", + "vite": "^4.3.9", + "vitepress": "^1.0.0-beta.2", + "vue-tsc": "^1.6.5" + } + }, + "node_modules/@algolia/autocomplete-core": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz", + "integrity": "sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==", + "dependencies": { + "@algolia/autocomplete-plugin-algolia-insights": "1.9.3", + "@algolia/autocomplete-shared": "1.9.3" + } + }, + "node_modules/@algolia/autocomplete-plugin-algolia-insights": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz", + "integrity": "sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==", + "dependencies": { + "@algolia/autocomplete-shared": "1.9.3" + }, + "peerDependencies": { + "search-insights": ">= 1 < 3" + } + }, + "node_modules/@algolia/autocomplete-preset-algolia": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz", + "integrity": "sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==", + "dependencies": { + "@algolia/autocomplete-shared": "1.9.3" + }, + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/autocomplete-shared": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz", + "integrity": "sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==", + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/cache-browser-local-storage": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.17.2.tgz", + "integrity": "sha512-ZkVN7K/JE+qMQbpR6h3gQOGR6yCJpmucSBCmH5YDxnrYbp2CbrVCu0Nr+FGVoWzMJNznj1waShkfQ9awERulLw==", + "dependencies": { + "@algolia/cache-common": "4.17.2" + } + }, + "node_modules/@algolia/cache-common": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.17.2.tgz", + "integrity": "sha512-fojbhYIS8ovfYs6hwZpy1O4mBfVRxNgAaZRqsdVQd54hU4MxYDYFCxagYX28lOBz7btcDHld6BMoWXvjzkx6iQ==" + }, + "node_modules/@algolia/cache-in-memory": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.17.2.tgz", + "integrity": "sha512-UYQcMzPurNi+cPYkuPemTZkjKAjdgAS1hagC5irujKbrYnN4yscK4TkOI5tX+O8/KegtJt3kOK07OIrJ2QDAAw==", + "dependencies": { + "@algolia/cache-common": "4.17.2" + } + }, + "node_modules/@algolia/client-account": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.17.2.tgz", + "integrity": "sha512-doSk89pBPDpDyKJSHFADIGa2XSGrBCj3QwPvqtRJXDADpN+OjW+eTR8r4hEs/7X4GGfjfAOAES8JgDx+fZntYw==", + "dependencies": { + "@algolia/client-common": "4.17.2", + "@algolia/client-search": "4.17.2", + "@algolia/transporter": "4.17.2" + } + }, + "node_modules/@algolia/client-analytics": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.17.2.tgz", + "integrity": "sha512-V+DcXbOtD/hKwAR3qGQrtlrJ3q2f9OKfx843q744o4m3xHv5ueCAvGXB1znPsdaUrVDNAImcgEgqwI9x7EJbDw==", + "dependencies": { + "@algolia/client-common": "4.17.2", + "@algolia/client-search": "4.17.2", + "@algolia/requester-common": "4.17.2", + "@algolia/transporter": "4.17.2" + } + }, + "node_modules/@algolia/client-common": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.17.2.tgz", + "integrity": "sha512-gKBUnjxi0ukJYIJxVREYGt1Dmj1B3RBYbfGWi0dIPp1BC1VvQm+BOuNwsIwmq/x3MPO+sGuK978eKiP3tZDvag==", + "dependencies": { + "@algolia/requester-common": "4.17.2", + "@algolia/transporter": "4.17.2" + } + }, + "node_modules/@algolia/client-personalization": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.17.2.tgz", + "integrity": "sha512-wc4UgOWxSYWz5wpuelNmlt895jA9twjZWM2ms17Ws8qCvBHF7OVGdMGgbysPB8790YnfvvDnSsWOv3CEj26Eow==", + "dependencies": { + "@algolia/client-common": "4.17.2", + "@algolia/requester-common": "4.17.2", + "@algolia/transporter": "4.17.2" + } + }, + "node_modules/@algolia/client-search": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.17.2.tgz", + "integrity": "sha512-FUjIs+gRe0upJC++uVs4sdxMw15JxfkT86Gr/kqVwi9kcqaZhXntSbW/Fw959bIYXczjmeVQsilYvBWW4YvSZA==", + "dependencies": { + "@algolia/client-common": "4.17.2", + "@algolia/requester-common": "4.17.2", + "@algolia/transporter": "4.17.2" + } + }, + "node_modules/@algolia/logger-common": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.17.2.tgz", + "integrity": "sha512-EfXuweUE+1HiSMsQidaDWA5Lv4NnStYIlh7PO5pLkI+sdhbMX0e5AO5nUAMIFM1VkEANes70RA8fzhP6OqCqQQ==" + }, + "node_modules/@algolia/logger-console": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.17.2.tgz", + "integrity": "sha512-JuG8HGVlJ+l/UEDK4h2Y8q/IEmRjQz1J0aS9tf6GPNbGYiSvMr1DDdZ+hqV3bb1XE6wU8Ypex56HisWMSpnG0A==", + "dependencies": { + "@algolia/logger-common": "4.17.2" + } + }, + "node_modules/@algolia/requester-browser-xhr": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.17.2.tgz", + "integrity": "sha512-FKI2lYWwksALfRt2OETFmGb5+P7WVc4py2Ai3H7k8FSfTLwVvs9WVVmtlx6oANQ8RFEK4B85h8DQJTJ29TDfmA==", + "dependencies": { + "@algolia/requester-common": "4.17.2" + } + }, + "node_modules/@algolia/requester-common": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.17.2.tgz", + "integrity": "sha512-Rfim23ztAhYpE9qm+KCfCRo+YLJCjiiTG+IpDdzUjMpYPhUtirQT0A35YEd/gKn86YNyydxS9w8iRSjwKh+L0A==" + }, + "node_modules/@algolia/requester-node-http": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.17.2.tgz", + "integrity": "sha512-E0b0kyCDMvUIhQmDNd/mH4fsKJdEEX6PkMKrYJjzm6moo+rP22tqpq4Rfe7DZD8OB6/LsDD3zs3Kvd+L+M5wwQ==", + "dependencies": { + "@algolia/requester-common": "4.17.2" + } + }, + "node_modules/@algolia/transporter": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.17.2.tgz", + "integrity": "sha512-m8pXlz5OnNzjD1rcw+duCN4jG4yEzkJBsvKYMoN22Oq6rQwy1AY5muZ+IQUs4dL+A364CYkRMLRWhvXpCZ1x+g==", + "dependencies": { + "@algolia/cache-common": "4.17.2", + "@algolia/logger-common": "4.17.2", + "@algolia/requester-common": "4.17.2" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", + "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.5.tgz", + "integrity": "sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz", + "integrity": "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helpers": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz", + "integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz", + "integrity": "sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz", + "integrity": "sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", + "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", + "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz", + "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.5.tgz", + "integrity": "sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz", + "integrity": "sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", + "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.5.tgz", + "integrity": "sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", + "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", + "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", + "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.5.tgz", + "integrity": "sha512-SMubA9S7Cb5sGSFFUlqxyClTA9zWJ8qGQrppNUm05LtFuN1ELRFNndkix4zUJrC9F+YivWwa1dHMSyo0e0N9dA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-typescript": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", + "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.5.tgz", + "integrity": "sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", + "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@docsearch/css": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.5.1.tgz", + "integrity": "sha512-2Pu9HDg/uP/IT10rbQ+4OrTQuxIWdKVUEdcw9/w7kZJv9NeHS6skJx1xuRiFyoGKwAzcHXnLp7csE99sj+O1YA==" + }, + "node_modules/@docsearch/js": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.5.1.tgz", + "integrity": "sha512-EXi8de5njxgP6TV3N9ytnGRLG9zmBNTEZjR4VzwPcpPLbZxxTLG2gaFyJyKiFVQxHW/DPlMrDJA3qoRRGEkgZw==", + "dependencies": { + "@docsearch/react": "3.5.1", + "preact": "^10.0.0" + } + }, + "node_modules/@docsearch/react": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.5.1.tgz", + "integrity": "sha512-t5mEODdLzZq4PTFAm/dvqcvZFdPDMdfPE5rJS5SC8OUq9mPzxEy6b+9THIqNM9P0ocCb4UC5jqBrxKclnuIbzQ==", + "dependencies": { + "@algolia/autocomplete-core": "1.9.3", + "@algolia/autocomplete-preset-algolia": "1.9.3", + "@docsearch/css": "3.5.1", + "algoliasearch": "^4.0.0" + }, + "peerDependencies": { + "@types/react": ">= 16.8.0 < 19.0.0", + "react": ">= 16.8.0 < 19.0.0", + "react-dom": ">= 16.8.0 < 19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@jqw755/q-ui": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@jqw755/q-ui/-/q-ui-0.0.3.tgz", + "integrity": "sha512-bhoIFh9e5Wm6wD4AFjwq7S4ml1KpEB+wBXSUEp0l/AoI41F2T6mbIkW6RvVq9Rm3pZ9jZoEq1P+5F/zolX1MJw==", + "dependencies": { + "@jqw755/q-ui": "0.0.2", + "sass": "^1.63.3", + "vue": "^3.3.4", + "vue-router": "^4.2.2" + } + }, + "node_modules/@jqw755/q-ui/node_modules/@jqw755/q-ui": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@jqw755/q-ui/-/q-ui-0.0.2.tgz", + "integrity": "sha512-MG8U5aWoO6mFtAhnjUWx30KWJm0OI8HRDZeGFHV3HoZmq3aFTWYwQpp/8CzFmPXioyAC5WNY0gvR4a3TUCJrVA==", + "dependencies": { + "sass": "^1.63.3", + "terser": "^5.18.0", + "vitepress": "^1.0.0-beta.2", + "vue": "^3.3.4", + "vue-router": "^4.2.2" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", + "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + }, + "node_modules/@tsconfig/node18": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node18/-/node18-2.0.1.tgz", + "integrity": "sha512-UqdfvuJK0SArA2CxhKWwwAWfnVSXiYe63bVpMutc27vpngCntGUZQETO24pEJ46zU6XM+7SpqYoMgcO3bM11Ew==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.16.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.18.tgz", + "integrity": "sha512-/aNaQZD0+iSBAGnvvN2Cx92HqE5sZCPZtx2TsK+4nvV23fFe09jVDvpArXr2j9DnYlzuU9WuoykDDc6wqvpNcw==", + "devOptional": true + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.17", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.17.tgz", + "integrity": "sha512-4p9vcSmxAayx72yn70joFoL44c9MO/0+iVEBIQXe3v2h2SiAsEIo/G5v6ObFWvNKRFjbrVadNf9LqEEZeQPzdA==" + }, + "node_modules/@vitejs/plugin-vue": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.2.3.tgz", + "integrity": "sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==", + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vitejs/plugin-vue-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.0.1.tgz", + "integrity": "sha512-+Jb7ggL48FSPS1uhPnJbJwWa9Sr90vQ+d0InW+AhBM22n+cfuYqJZDckBc+W3QSHe1WDvewMZfa4wZOtk5pRgw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.20.7", + "@babel/plugin-transform-typescript": "^7.20.7", + "@vue/babel-plugin-jsx": "^1.1.1" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0", + "vue": "^3.0.0" + } + }, + "node_modules/@volar/language-core": { + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.7.8.tgz", + "integrity": "sha512-TPklg4c2e/f1xB/MGZEiQc3AWG+dH64ZfBlYjFB8nNaWJt4Z4k+IHBhmaP52APG+5PHFerwiWI9oF002RrRTPA==", + "dev": true, + "dependencies": { + "@volar/source-map": "1.7.8" + } + }, + "node_modules/@volar/source-map": { + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.7.8.tgz", + "integrity": "sha512-g2dtC2kOghvfzMDWeODIo4HO1Ml4hxzPTZyAFDz+YhRF9HjZYJSCaWaVuPZ+z0kY+T2daOHYA10GdrWQ5q0teA==", + "dev": true, + "dependencies": { + "muggle-string": "^0.3.1" + } + }, + "node_modules/@volar/typescript": { + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.7.8.tgz", + "integrity": "sha512-NDcI5ZQcdr8kgxzMQrhSSWIM8Tl0MbMFrkvJPTjfm2rdAQZPFT8zv3LrEW9Fqh0e9z2YbCry7jr4a/GShBqeDA==", + "dev": true, + "dependencies": { + "@volar/language-core": "1.7.8" + } + }, + "node_modules/@vue/babel-helper-vue-transform-on": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz", + "integrity": "sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==", + "dev": true + }, + "node_modules/@vue/babel-plugin-jsx": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz", + "integrity": "sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "@vue/babel-helper-vue-transform-on": "^1.0.2", + "camelcase": "^6.0.0", + "html-tags": "^3.1.0", + "svg-tags": "^1.0.0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz", + "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==", + "dependencies": { + "@babel/parser": "^7.21.3", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz", + "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==", + "dependencies": { + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz", + "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==", + "dependencies": { + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-ssr": "3.3.4", + "@vue/reactivity-transform": "3.3.4", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.0", + "postcss": "^8.1.10", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz", + "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==", + "dependencies": { + "@vue/compiler-dom": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz", + "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" + }, + "node_modules/@vue/language-core": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.1.tgz", + "integrity": "sha512-pumv3k4J7P58hVh4YGRM9Qz3HaAr4TlFWM9bnVOkZ/2K9o2CK1lAP2y9Jw+Z0+mNL4F2uWQqnAPzj3seLyfpDA==", + "dev": true, + "dependencies": { + "@volar/language-core": "1.7.8", + "@volar/source-map": "1.7.8", + "@vue/compiler-dom": "^3.3.0", + "@vue/reactivity": "^3.3.0", + "@vue/shared": "^3.3.0", + "minimatch": "^9.0.0", + "muggle-string": "^0.3.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/language-core/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@vue/language-core/node_modules/minimatch": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", + "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz", + "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==", + "dependencies": { + "@vue/shared": "3.3.4" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz", + "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==", + "dependencies": { + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.0" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz", + "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==", + "dependencies": { + "@vue/reactivity": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz", + "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==", + "dependencies": { + "@vue/runtime-core": "3.3.4", + "@vue/shared": "3.3.4", + "csstype": "^3.1.1" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz", + "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==", + "dependencies": { + "@vue/compiler-ssr": "3.3.4", + "@vue/shared": "3.3.4" + }, + "peerDependencies": { + "vue": "3.3.4" + } + }, + "node_modules/@vue/shared": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz", + "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" + }, + "node_modules/@vue/tsconfig": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.4.0.tgz", + "integrity": "sha512-CPuIReonid9+zOG/CGTT05FXrPYATEqoDGNrEaqS4hwcw5BUNM2FguC0mOwJD4Jr16UpRVl9N0pY3P+srIbqmg==", + "dev": true + }, + "node_modules/@vue/typescript": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@vue/typescript/-/typescript-1.8.1.tgz", + "integrity": "sha512-nQpo55j/roie8heCfqyXHnyayqD5+p4/0fzfxH4ZuHf7NSBQS791PNv7ztp2CCOjnGAiaiCMdtC9rc6oriyPUg==", + "dev": true, + "dependencies": { + "@volar/typescript": "1.7.8", + "@vue/language-core": "1.8.1" + } + }, + "node_modules/@vueuse/core": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.2.0.tgz", + "integrity": "sha512-aHBnoCteIS3hFu7ZZkVB93SanVDY6t4TIb7XDLxJT/HQdAZz+2RdIEJ8rj5LUoEJr7Damb5+sJmtpCwGez5ozQ==", + "dependencies": { + "@types/web-bluetooth": "^0.0.17", + "@vueuse/metadata": "10.2.0", + "@vueuse/shared": "10.2.0", + "vue-demi": ">=0.14.5" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/core/node_modules/vue-demi": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.5.tgz", + "integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vueuse/integrations": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-10.2.0.tgz", + "integrity": "sha512-e+MIRMi2Zo8DZKXszut8iVoZGlf07XXoaDt27W0DRJVYPdods50MV8Bnla5Tnuil0gHY/W5mMcqiQre9Xb246Q==", + "dependencies": { + "@vueuse/core": "10.2.0", + "@vueuse/shared": "10.2.0", + "vue-demi": ">=0.14.5" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "async-validator": "*", + "axios": "*", + "change-case": "*", + "drauu": "*", + "focus-trap": "*", + "fuse.js": "*", + "idb-keyval": "*", + "jwt-decode": "*", + "nprogress": "*", + "qrcode": "*", + "sortablejs": "*", + "universal-cookie": "*" + }, + "peerDependenciesMeta": { + "async-validator": { + "optional": true + }, + "axios": { + "optional": true + }, + "change-case": { + "optional": true + }, + "drauu": { + "optional": true + }, + "focus-trap": { + "optional": true + }, + "fuse.js": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "jwt-decode": { + "optional": true + }, + "nprogress": { + "optional": true + }, + "qrcode": { + "optional": true + }, + "sortablejs": { + "optional": true + }, + "universal-cookie": { + "optional": true + } + } + }, + "node_modules/@vueuse/integrations/node_modules/vue-demi": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.5.tgz", + "integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vueuse/metadata": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.2.0.tgz", + "integrity": "sha512-IR7Mkq6QSgZ38q/2ZzOt+Zz1OpcEsnwE64WBumDQ+RGKrosFCtUA2zgRrOqDEzPBXrVB+4HhFkwDjQMu0fDBKw==", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.2.0.tgz", + "integrity": "sha512-dIeA8+g9Av3H5iF4NXR/sft4V6vys76CpZ6hxwj8eMXybXk2WRl3scSsOVi+kQ9SX38COR7AH7WwY83UcuxbSg==", + "dependencies": { + "vue-demi": ">=0.14.5" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared/node_modules/vue-demi": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.5.tgz", + "integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/acorn": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz", + "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/algoliasearch": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.17.2.tgz", + "integrity": "sha512-VFu43JJNYIW74awp7oeQcQsPcxOhd8psqBDTfyNO2Zt6L1NqnNMTVnaIdQ+8dtKqUDBqQZp0szPxECvX8CK2Fg==", + "dependencies": { + "@algolia/cache-browser-local-storage": "4.17.2", + "@algolia/cache-common": "4.17.2", + "@algolia/cache-in-memory": "4.17.2", + "@algolia/client-account": "4.17.2", + "@algolia/client-analytics": "4.17.2", + "@algolia/client-common": "4.17.2", + "@algolia/client-personalization": "4.17.2", + "@algolia/client-search": "4.17.2", + "@algolia/logger-common": "4.17.2", + "@algolia/logger-console": "4.17.2", + "@algolia/requester-browser-xhr": "4.17.2", + "@algolia/requester-common": "4.17.2", + "@algolia/requester-node-http": "4.17.2", + "@algolia/transporter": "4.17.2" + } + }, + "node_modules/ansi-sequence-parser": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz", + "integrity": "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==" + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/body-scroll-lock": { + "version": "4.0.0-beta.0", + "resolved": "https://registry.npmjs.org/body-scroll-lock/-/body-scroll-lock-4.0.0-beta.0.tgz", + "integrity": "sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.9", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", + "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001505", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001505.tgz", + "integrity": "sha512-jaAOR5zVtxHfL0NjZyflVTtXm3D3J9P15zSJ7HmQF8dSKGA6tqzQq+0ZI3xkjyQj46I4/M0K2GbMpcAFOcbr3A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/cross-spawn/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.435", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.435.tgz", + "integrity": "sha512-B0CBWVFhvoQCW/XtjRzgrmqcgVWg6RXOEM/dK59+wFV93BFGR6AeNKc4OyhM+T3IhJaOOG8o/V+33Y2mwJWtzw==", + "dev": true + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.21.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", + "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/focus-trap": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.4.3.tgz", + "integrity": "sha512-BgSSbK4GPnS2VbtZ50VtOv1Sti6DIkj3+LkVjiWMNjLeAp1SH1UlLx3ULu/DCu4vq5R4/uvTm+zrvsMsuYmGLg==", + "dependencies": { + "tabbable": "^6.1.2" + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/immutable": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", + "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==" + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==" + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", + "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mark.js": { + "version": "8.11.1", + "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", + "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==" + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minisearch": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/minisearch/-/minisearch-6.1.0.tgz", + "integrity": "sha512-PNxA/X8pWk+TiqPbsoIYH0GQ5Di7m6326/lwU/S4mlo4wGQddIcf/V//1f9TB0V4j59b57b+HZxt8h3iMROGvg==" + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/muggle-string": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.3.1.tgz", + "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz", + "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss": { + "version": "8.4.24", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", + "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/preact": { + "version": "10.15.1", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.15.1.tgz", + "integrity": "sha512-qs2ansoQEwzNiV5eAcRT1p1EC/dmEzaATVDJNiB3g2sRDWdA7b7MurXdJjB2+/WQktGWZwxvDrnuRFbWuIr64g==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/rollup": { + "version": "3.25.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.25.1.tgz", + "integrity": "sha512-tywOR+rwIt5m2ZAWSe5AIJcTat8vGlnPFAv15ycCrw33t6iFsXZ6mzHVFh2psSjxQPmI+xgzMZZizUAukBI4aQ==", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sass": { + "version": "1.63.5", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.63.5.tgz", + "integrity": "sha512-Q6c5gs482oezdAp+0fWF9cRisvpy7yfYb64knID0OE8AnMgtkluRPfpGMFjeD4/+M4+6QpJZCU6JRSxbjiktkg==", + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/search-insights": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.6.0.tgz", + "integrity": "sha512-vU2/fJ+h/Mkm/DJOe+EaM5cafJv/1rRTZpGJTuFPf/Q5LjzgMDsqPdSaZsAe+GAWHHsfsu+rQSAn6c8IGtBEVw==", + "peer": true, + "engines": { + "node": ">=8.16.0" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/shiki": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.2.tgz", + "integrity": "sha512-ltSZlSLOuSY0M0Y75KA+ieRaZ0Trf5Wl3gutE7jzLuIcWxLp5i/uEnLoQWNvgKXQ5OMpGkJnVMRLAuzjc0LJ2A==", + "dependencies": { + "ansi-sequence-parser": "^1.1.0", + "jsonc-parser": "^3.2.0", + "vscode-oniguruma": "^1.7.0", + "vscode-textmate": "^8.0.0" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "dev": true + }, + "node_modules/string.prototype.padend": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz", + "integrity": "sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "node_modules/tabbable": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.1.2.tgz", + "integrity": "sha512-qCN98uP7i9z0fIS4amQ5zbGBOq+OSigYeGvPy7NDk8Y9yncqDZ9pRPgfsc2PJIVM9RrJj7GIfuRgmjoUU9zTHQ==" + }, + "node_modules/terser": { + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.18.1.tgz", + "integrity": "sha512-j1n0Ao919h/Ai5r43VAnfV/7azUYW43GPxK7qSATzrsERfW7+y2QW9Cp9ufnRF5CQUWbnLSo7UJokSWCqg4tsQ==", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vite": { + "version": "4.3.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz", + "integrity": "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==", + "dependencies": { + "esbuild": "^0.17.5", + "postcss": "^8.4.23", + "rollup": "^3.21.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vitepress": { + "version": "1.0.0-beta.3", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.0.0-beta.3.tgz", + "integrity": "sha512-GR5Pvr/o343NN1M4Na1shhDYZRrQbjmLq7WE0lla0H8iDPAsHE8agTHLWfu3FWx+3q2KA29sv16+0O9RQKGjlA==", + "dependencies": { + "@docsearch/css": "^3.5.0", + "@docsearch/js": "^3.5.0", + "@vitejs/plugin-vue": "^4.2.3", + "@vue/devtools-api": "^6.5.0", + "@vueuse/core": "^10.1.2", + "@vueuse/integrations": "^10.1.2", + "body-scroll-lock": "4.0.0-beta.0", + "focus-trap": "^7.4.3", + "mark.js": "8.11.1", + "minisearch": "^6.1.0", + "shiki": "^0.14.2", + "vite": "^4.3.9", + "vue": "^3.3.4" + }, + "bin": { + "vitepress": "bin/vitepress.js" + } + }, + "node_modules/vscode-oniguruma": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==" + }, + "node_modules/vscode-textmate": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", + "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==" + }, + "node_modules/vue": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz", + "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==", + "dependencies": { + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-sfc": "3.3.4", + "@vue/runtime-dom": "3.3.4", + "@vue/server-renderer": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "node_modules/vue-router": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.2.tgz", + "integrity": "sha512-cChBPPmAflgBGmy3tBsjeoe3f3VOSG6naKyY5pjtrqLGbNEXdzCigFUHgBvp9e3ysAtFtEx7OLqcSDh/1Cq2TQ==", + "dependencies": { + "@vue/devtools-api": "^6.5.0" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.14", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz", + "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/vue-tsc": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.1.tgz", + "integrity": "sha512-GxBQrcb0Qvyrj1uZqnTXQyWbXdNDRY2MTa+r7ESgjhf+WzBSdxZfkS3KD/C3WhKYG+aN8hf44Hp5Gqzb6PehAA==", + "dev": true, + "dependencies": { + "@vue/language-core": "1.8.1", + "@vue/typescript": "1.8.1", + "semver": "^7.3.8" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": "*" + } + }, + "node_modules/vue-tsc/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vue-tsc/node_modules/semver": { + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz", + "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vue-tsc/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + }, + "dependencies": { + "@algolia/autocomplete-core": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz", + "integrity": "sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==", + "requires": { + "@algolia/autocomplete-plugin-algolia-insights": "1.9.3", + "@algolia/autocomplete-shared": "1.9.3" + } + }, + "@algolia/autocomplete-plugin-algolia-insights": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz", + "integrity": "sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==", + "requires": { + "@algolia/autocomplete-shared": "1.9.3" + } + }, + "@algolia/autocomplete-preset-algolia": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz", + "integrity": "sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==", + "requires": { + "@algolia/autocomplete-shared": "1.9.3" + } + }, + "@algolia/autocomplete-shared": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz", + "integrity": "sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==", + "requires": {} + }, + "@algolia/cache-browser-local-storage": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.17.2.tgz", + "integrity": "sha512-ZkVN7K/JE+qMQbpR6h3gQOGR6yCJpmucSBCmH5YDxnrYbp2CbrVCu0Nr+FGVoWzMJNznj1waShkfQ9awERulLw==", + "requires": { + "@algolia/cache-common": "4.17.2" + } + }, + "@algolia/cache-common": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.17.2.tgz", + "integrity": "sha512-fojbhYIS8ovfYs6hwZpy1O4mBfVRxNgAaZRqsdVQd54hU4MxYDYFCxagYX28lOBz7btcDHld6BMoWXvjzkx6iQ==" + }, + "@algolia/cache-in-memory": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.17.2.tgz", + "integrity": "sha512-UYQcMzPurNi+cPYkuPemTZkjKAjdgAS1hagC5irujKbrYnN4yscK4TkOI5tX+O8/KegtJt3kOK07OIrJ2QDAAw==", + "requires": { + "@algolia/cache-common": "4.17.2" + } + }, + "@algolia/client-account": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.17.2.tgz", + "integrity": "sha512-doSk89pBPDpDyKJSHFADIGa2XSGrBCj3QwPvqtRJXDADpN+OjW+eTR8r4hEs/7X4GGfjfAOAES8JgDx+fZntYw==", + "requires": { + "@algolia/client-common": "4.17.2", + "@algolia/client-search": "4.17.2", + "@algolia/transporter": "4.17.2" + } + }, + "@algolia/client-analytics": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.17.2.tgz", + "integrity": "sha512-V+DcXbOtD/hKwAR3qGQrtlrJ3q2f9OKfx843q744o4m3xHv5ueCAvGXB1znPsdaUrVDNAImcgEgqwI9x7EJbDw==", + "requires": { + "@algolia/client-common": "4.17.2", + "@algolia/client-search": "4.17.2", + "@algolia/requester-common": "4.17.2", + "@algolia/transporter": "4.17.2" + } + }, + "@algolia/client-common": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.17.2.tgz", + "integrity": "sha512-gKBUnjxi0ukJYIJxVREYGt1Dmj1B3RBYbfGWi0dIPp1BC1VvQm+BOuNwsIwmq/x3MPO+sGuK978eKiP3tZDvag==", + "requires": { + "@algolia/requester-common": "4.17.2", + "@algolia/transporter": "4.17.2" + } + }, + "@algolia/client-personalization": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.17.2.tgz", + "integrity": "sha512-wc4UgOWxSYWz5wpuelNmlt895jA9twjZWM2ms17Ws8qCvBHF7OVGdMGgbysPB8790YnfvvDnSsWOv3CEj26Eow==", + "requires": { + "@algolia/client-common": "4.17.2", + "@algolia/requester-common": "4.17.2", + "@algolia/transporter": "4.17.2" + } + }, + "@algolia/client-search": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.17.2.tgz", + "integrity": "sha512-FUjIs+gRe0upJC++uVs4sdxMw15JxfkT86Gr/kqVwi9kcqaZhXntSbW/Fw959bIYXczjmeVQsilYvBWW4YvSZA==", + "requires": { + "@algolia/client-common": "4.17.2", + "@algolia/requester-common": "4.17.2", + "@algolia/transporter": "4.17.2" + } + }, + "@algolia/logger-common": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.17.2.tgz", + "integrity": "sha512-EfXuweUE+1HiSMsQidaDWA5Lv4NnStYIlh7PO5pLkI+sdhbMX0e5AO5nUAMIFM1VkEANes70RA8fzhP6OqCqQQ==" + }, + "@algolia/logger-console": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.17.2.tgz", + "integrity": "sha512-JuG8HGVlJ+l/UEDK4h2Y8q/IEmRjQz1J0aS9tf6GPNbGYiSvMr1DDdZ+hqV3bb1XE6wU8Ypex56HisWMSpnG0A==", + "requires": { + "@algolia/logger-common": "4.17.2" + } + }, + "@algolia/requester-browser-xhr": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.17.2.tgz", + "integrity": "sha512-FKI2lYWwksALfRt2OETFmGb5+P7WVc4py2Ai3H7k8FSfTLwVvs9WVVmtlx6oANQ8RFEK4B85h8DQJTJ29TDfmA==", + "requires": { + "@algolia/requester-common": "4.17.2" + } + }, + "@algolia/requester-common": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.17.2.tgz", + "integrity": "sha512-Rfim23ztAhYpE9qm+KCfCRo+YLJCjiiTG+IpDdzUjMpYPhUtirQT0A35YEd/gKn86YNyydxS9w8iRSjwKh+L0A==" + }, + "@algolia/requester-node-http": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.17.2.tgz", + "integrity": "sha512-E0b0kyCDMvUIhQmDNd/mH4fsKJdEEX6PkMKrYJjzm6moo+rP22tqpq4Rfe7DZD8OB6/LsDD3zs3Kvd+L+M5wwQ==", + "requires": { + "@algolia/requester-common": "4.17.2" + } + }, + "@algolia/transporter": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.17.2.tgz", + "integrity": "sha512-m8pXlz5OnNzjD1rcw+duCN4jG4yEzkJBsvKYMoN22Oq6rQwy1AY5muZ+IQUs4dL+A364CYkRMLRWhvXpCZ1x+g==", + "requires": { + "@algolia/cache-common": "4.17.2", + "@algolia/logger-common": "4.17.2", + "@algolia/requester-common": "4.17.2" + } + }, + "@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", + "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "dev": true, + "requires": { + "@babel/highlight": "^7.22.5" + } + }, + "@babel/compat-data": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.5.tgz", + "integrity": "sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==", + "dev": true + }, + "@babel/core": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz", + "integrity": "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helpers": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + } + }, + "@babel/generator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz", + "integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz", + "integrity": "sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz", + "integrity": "sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", + "semver": "^6.3.0" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", + "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "dev": true, + "requires": { + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", + "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-module-imports": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-module-transforms": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz", + "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true + }, + "@babel/helper-replace-supers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.5.tgz", + "integrity": "sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz", + "integrity": "sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", + "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", + "dev": true + }, + "@babel/helpers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.5.tgz", + "integrity": "sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==", + "dev": true, + "requires": { + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" + } + }, + "@babel/highlight": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", + "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==" + }, + "@babel/plugin-syntax-jsx": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", + "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", + "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.5.tgz", + "integrity": "sha512-SMubA9S7Cb5sGSFFUlqxyClTA9zWJ8qGQrppNUm05LtFuN1ELRFNndkix4zUJrC9F+YivWwa1dHMSyo0e0N9dA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-typescript": "^7.22.5" + } + }, + "@babel/template": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", + "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" + } + }, + "@babel/traverse": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.5.tgz", + "integrity": "sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", + "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "to-fast-properties": "^2.0.0" + } + }, + "@docsearch/css": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.5.1.tgz", + "integrity": "sha512-2Pu9HDg/uP/IT10rbQ+4OrTQuxIWdKVUEdcw9/w7kZJv9NeHS6skJx1xuRiFyoGKwAzcHXnLp7csE99sj+O1YA==" + }, + "@docsearch/js": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.5.1.tgz", + "integrity": "sha512-EXi8de5njxgP6TV3N9ytnGRLG9zmBNTEZjR4VzwPcpPLbZxxTLG2gaFyJyKiFVQxHW/DPlMrDJA3qoRRGEkgZw==", + "requires": { + "@docsearch/react": "3.5.1", + "preact": "^10.0.0" + } + }, + "@docsearch/react": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.5.1.tgz", + "integrity": "sha512-t5mEODdLzZq4PTFAm/dvqcvZFdPDMdfPE5rJS5SC8OUq9mPzxEy6b+9THIqNM9P0ocCb4UC5jqBrxKclnuIbzQ==", + "requires": { + "@algolia/autocomplete-core": "1.9.3", + "@algolia/autocomplete-preset-algolia": "1.9.3", + "@docsearch/css": "3.5.1", + "algoliasearch": "^4.0.0" + } + }, + "@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "optional": true + }, + "@jqw755/q-ui": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@jqw755/q-ui/-/q-ui-0.0.3.tgz", + "integrity": "sha512-bhoIFh9e5Wm6wD4AFjwq7S4ml1KpEB+wBXSUEp0l/AoI41F2T6mbIkW6RvVq9Rm3pZ9jZoEq1P+5F/zolX1MJw==", + "requires": { + "@jqw755/q-ui": "0.0.2", + "sass": "^1.63.3", + "vue": "^3.3.4", + "vue-router": "^4.2.2" + }, + "dependencies": { + "@jqw755/q-ui": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@jqw755/q-ui/-/q-ui-0.0.2.tgz", + "integrity": "sha512-MG8U5aWoO6mFtAhnjUWx30KWJm0OI8HRDZeGFHV3HoZmq3aFTWYwQpp/8CzFmPXioyAC5WNY0gvR4a3TUCJrVA==", + "requires": { + "sass": "^1.63.3", + "terser": "^5.18.0", + "vitepress": "^1.0.0-beta.2", + "vue": "^3.3.4", + "vue-router": "^4.2.2" + } + } + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" + }, + "@jridgewell/source-map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", + "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + }, + "dependencies": { + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + } + } + }, + "@tsconfig/node18": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node18/-/node18-2.0.1.tgz", + "integrity": "sha512-UqdfvuJK0SArA2CxhKWwwAWfnVSXiYe63bVpMutc27vpngCntGUZQETO24pEJ46zU6XM+7SpqYoMgcO3bM11Ew==", + "dev": true + }, + "@types/node": { + "version": "18.16.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.18.tgz", + "integrity": "sha512-/aNaQZD0+iSBAGnvvN2Cx92HqE5sZCPZtx2TsK+4nvV23fFe09jVDvpArXr2j9DnYlzuU9WuoykDDc6wqvpNcw==", + "devOptional": true + }, + "@types/web-bluetooth": { + "version": "0.0.17", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.17.tgz", + "integrity": "sha512-4p9vcSmxAayx72yn70joFoL44c9MO/0+iVEBIQXe3v2h2SiAsEIo/G5v6ObFWvNKRFjbrVadNf9LqEEZeQPzdA==" + }, + "@vitejs/plugin-vue": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.2.3.tgz", + "integrity": "sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==", + "requires": {} + }, + "@vitejs/plugin-vue-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.0.1.tgz", + "integrity": "sha512-+Jb7ggL48FSPS1uhPnJbJwWa9Sr90vQ+d0InW+AhBM22n+cfuYqJZDckBc+W3QSHe1WDvewMZfa4wZOtk5pRgw==", + "dev": true, + "requires": { + "@babel/core": "^7.20.7", + "@babel/plugin-transform-typescript": "^7.20.7", + "@vue/babel-plugin-jsx": "^1.1.1" + } + }, + "@volar/language-core": { + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.7.8.tgz", + "integrity": "sha512-TPklg4c2e/f1xB/MGZEiQc3AWG+dH64ZfBlYjFB8nNaWJt4Z4k+IHBhmaP52APG+5PHFerwiWI9oF002RrRTPA==", + "dev": true, + "requires": { + "@volar/source-map": "1.7.8" + } + }, + "@volar/source-map": { + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.7.8.tgz", + "integrity": "sha512-g2dtC2kOghvfzMDWeODIo4HO1Ml4hxzPTZyAFDz+YhRF9HjZYJSCaWaVuPZ+z0kY+T2daOHYA10GdrWQ5q0teA==", + "dev": true, + "requires": { + "muggle-string": "^0.3.1" + } + }, + "@volar/typescript": { + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.7.8.tgz", + "integrity": "sha512-NDcI5ZQcdr8kgxzMQrhSSWIM8Tl0MbMFrkvJPTjfm2rdAQZPFT8zv3LrEW9Fqh0e9z2YbCry7jr4a/GShBqeDA==", + "dev": true, + "requires": { + "@volar/language-core": "1.7.8" + } + }, + "@vue/babel-helper-vue-transform-on": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz", + "integrity": "sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==", + "dev": true + }, + "@vue/babel-plugin-jsx": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz", + "integrity": "sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "@vue/babel-helper-vue-transform-on": "^1.0.2", + "camelcase": "^6.0.0", + "html-tags": "^3.1.0", + "svg-tags": "^1.0.0" + } + }, + "@vue/compiler-core": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz", + "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==", + "requires": { + "@babel/parser": "^7.21.3", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "@vue/compiler-dom": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz", + "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==", + "requires": { + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "@vue/compiler-sfc": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz", + "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==", + "requires": { + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-ssr": "3.3.4", + "@vue/reactivity-transform": "3.3.4", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.0", + "postcss": "^8.1.10", + "source-map-js": "^1.0.2" + } + }, + "@vue/compiler-ssr": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz", + "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==", + "requires": { + "@vue/compiler-dom": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "@vue/devtools-api": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz", + "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" + }, + "@vue/language-core": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.1.tgz", + "integrity": "sha512-pumv3k4J7P58hVh4YGRM9Qz3HaAr4TlFWM9bnVOkZ/2K9o2CK1lAP2y9Jw+Z0+mNL4F2uWQqnAPzj3seLyfpDA==", + "dev": true, + "requires": { + "@volar/language-core": "1.7.8", + "@volar/source-map": "1.7.8", + "@vue/compiler-dom": "^3.3.0", + "@vue/reactivity": "^3.3.0", + "@vue/shared": "^3.3.0", + "minimatch": "^9.0.0", + "muggle-string": "^0.3.1", + "vue-template-compiler": "^2.7.14" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", + "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "@vue/reactivity": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz", + "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==", + "requires": { + "@vue/shared": "3.3.4" + } + }, + "@vue/reactivity-transform": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz", + "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==", + "requires": { + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.0" + } + }, + "@vue/runtime-core": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz", + "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==", + "requires": { + "@vue/reactivity": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "@vue/runtime-dom": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz", + "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==", + "requires": { + "@vue/runtime-core": "3.3.4", + "@vue/shared": "3.3.4", + "csstype": "^3.1.1" + } + }, + "@vue/server-renderer": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz", + "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==", + "requires": { + "@vue/compiler-ssr": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "@vue/shared": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz", + "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" + }, + "@vue/tsconfig": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.4.0.tgz", + "integrity": "sha512-CPuIReonid9+zOG/CGTT05FXrPYATEqoDGNrEaqS4hwcw5BUNM2FguC0mOwJD4Jr16UpRVl9N0pY3P+srIbqmg==", + "dev": true + }, + "@vue/typescript": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@vue/typescript/-/typescript-1.8.1.tgz", + "integrity": "sha512-nQpo55j/roie8heCfqyXHnyayqD5+p4/0fzfxH4ZuHf7NSBQS791PNv7ztp2CCOjnGAiaiCMdtC9rc6oriyPUg==", + "dev": true, + "requires": { + "@volar/typescript": "1.7.8", + "@vue/language-core": "1.8.1" + } + }, + "@vueuse/core": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.2.0.tgz", + "integrity": "sha512-aHBnoCteIS3hFu7ZZkVB93SanVDY6t4TIb7XDLxJT/HQdAZz+2RdIEJ8rj5LUoEJr7Damb5+sJmtpCwGez5ozQ==", + "requires": { + "@types/web-bluetooth": "^0.0.17", + "@vueuse/metadata": "10.2.0", + "@vueuse/shared": "10.2.0", + "vue-demi": ">=0.14.5" + }, + "dependencies": { + "vue-demi": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.5.tgz", + "integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==", + "requires": {} + } + } + }, + "@vueuse/integrations": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-10.2.0.tgz", + "integrity": "sha512-e+MIRMi2Zo8DZKXszut8iVoZGlf07XXoaDt27W0DRJVYPdods50MV8Bnla5Tnuil0gHY/W5mMcqiQre9Xb246Q==", + "requires": { + "@vueuse/core": "10.2.0", + "@vueuse/shared": "10.2.0", + "vue-demi": ">=0.14.5" + }, + "dependencies": { + "vue-demi": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.5.tgz", + "integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==", + "requires": {} + } + } + }, + "@vueuse/metadata": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.2.0.tgz", + "integrity": "sha512-IR7Mkq6QSgZ38q/2ZzOt+Zz1OpcEsnwE64WBumDQ+RGKrosFCtUA2zgRrOqDEzPBXrVB+4HhFkwDjQMu0fDBKw==" + }, + "@vueuse/shared": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.2.0.tgz", + "integrity": "sha512-dIeA8+g9Av3H5iF4NXR/sft4V6vys76CpZ6hxwj8eMXybXk2WRl3scSsOVi+kQ9SX38COR7AH7WwY83UcuxbSg==", + "requires": { + "vue-demi": ">=0.14.5" + }, + "dependencies": { + "vue-demi": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.5.tgz", + "integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==", + "requires": {} + } + } + }, + "acorn": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz", + "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==" + }, + "algoliasearch": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.17.2.tgz", + "integrity": "sha512-VFu43JJNYIW74awp7oeQcQsPcxOhd8psqBDTfyNO2Zt6L1NqnNMTVnaIdQ+8dtKqUDBqQZp0szPxECvX8CK2Fg==", + "requires": { + "@algolia/cache-browser-local-storage": "4.17.2", + "@algolia/cache-common": "4.17.2", + "@algolia/cache-in-memory": "4.17.2", + "@algolia/client-account": "4.17.2", + "@algolia/client-analytics": "4.17.2", + "@algolia/client-common": "4.17.2", + "@algolia/client-personalization": "4.17.2", + "@algolia/client-search": "4.17.2", + "@algolia/logger-common": "4.17.2", + "@algolia/logger-console": "4.17.2", + "@algolia/requester-browser-xhr": "4.17.2", + "@algolia/requester-common": "4.17.2", + "@algolia/requester-node-http": "4.17.2", + "@algolia/transporter": "4.17.2" + } + }, + "ansi-sequence-parser": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz", + "integrity": "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "body-scroll-lock": { + "version": "4.0.0-beta.0", + "resolved": "https://registry.npmjs.org/body-scroll-lock/-/body-scroll-lock-4.0.0-beta.0.tgz", + "integrity": "sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.21.9", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", + "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001505", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001505.tgz", + "integrity": "sha512-jaAOR5zVtxHfL0NjZyflVTtXm3D3J9P15zSJ7HmQF8dSKGA6tqzQq+0ZI3xkjyQj46I4/M0K2GbMpcAFOcbr3A==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "electron-to-chromium": { + "version": "1.4.435", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.435.tgz", + "integrity": "sha512-B0CBWVFhvoQCW/XtjRzgrmqcgVWg6RXOEM/dK59+wFV93BFGR6AeNKc4OyhM+T3IhJaOOG8o/V+33Y2mwJWtzw==", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.21.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", + "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + } + }, + "es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "requires": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "focus-trap": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.4.3.tgz", + "integrity": "sha512-BgSSbK4GPnS2VbtZ50VtOv1Sti6DIkj3+LkVjiWMNjLeAp1SH1UlLx3ULu/DCu4vq5R4/uvTm+zrvsMsuYmGLg==", + "requires": { + "tabbable": "^6.1.2" + } + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "dev": true + }, + "immutable": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", + "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==" + }, + "internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, + "is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==" + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "magic-string": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", + "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.13" + } + }, + "mark.js": { + "version": "8.11.1", + "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", + "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==" + }, + "memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minisearch": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/minisearch/-/minisearch-6.1.0.tgz", + "integrity": "sha512-PNxA/X8pWk+TiqPbsoIYH0GQ5Di7m6326/lwU/S4mlo4wGQddIcf/V//1f9TB0V4j59b57b+HZxt8h3iMROGvg==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "muggle-string": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.3.1.tgz", + "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", + "dev": true + }, + "nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-releases": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz", + "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + } + }, + "object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + }, + "postcss": { + "version": "8.4.24", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", + "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==", + "requires": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "preact": { + "version": "10.15.1", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.15.1.tgz", + "integrity": "sha512-qs2ansoQEwzNiV5eAcRT1p1EC/dmEzaATVDJNiB3g2sRDWdA7b7MurXdJjB2+/WQktGWZwxvDrnuRFbWuIr64g==" + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + } + }, + "resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "requires": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "rollup": { + "version": "3.25.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.25.1.tgz", + "integrity": "sha512-tywOR+rwIt5m2ZAWSe5AIJcTat8vGlnPFAv15ycCrw33t6iFsXZ6mzHVFh2psSjxQPmI+xgzMZZizUAukBI4aQ==", + "requires": { + "fsevents": "~2.3.2" + } + }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "sass": { + "version": "1.63.5", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.63.5.tgz", + "integrity": "sha512-Q6c5gs482oezdAp+0fWF9cRisvpy7yfYb64knID0OE8AnMgtkluRPfpGMFjeD4/+M4+6QpJZCU6JRSxbjiktkg==", + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + } + }, + "search-insights": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.6.0.tgz", + "integrity": "sha512-vU2/fJ+h/Mkm/DJOe+EaM5cafJv/1rRTZpGJTuFPf/Q5LjzgMDsqPdSaZsAe+GAWHHsfsu+rQSAn6c8IGtBEVw==", + "peer": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true + }, + "shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true + }, + "shiki": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.2.tgz", + "integrity": "sha512-ltSZlSLOuSY0M0Y75KA+ieRaZ0Trf5Wl3gutE7jzLuIcWxLp5i/uEnLoQWNvgKXQ5OMpGkJnVMRLAuzjc0LJ2A==", + "requires": { + "ansi-sequence-parser": "^1.1.0", + "jsonc-parser": "^3.2.0", + "vscode-oniguruma": "^1.7.0", + "vscode-textmate": "^8.0.0" + } + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "dev": true + }, + "string.prototype.padend": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz", + "integrity": "sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "tabbable": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.1.2.tgz", + "integrity": "sha512-qCN98uP7i9z0fIS4amQ5zbGBOq+OSigYeGvPy7NDk8Y9yncqDZ9pRPgfsc2PJIVM9RrJj7GIfuRgmjoUU9zTHQ==" + }, + "terser": { + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.18.1.tgz", + "integrity": "sha512-j1n0Ao919h/Ai5r43VAnfV/7azUYW43GPxK7qSATzrsERfW7+y2QW9Cp9ufnRF5CQUWbnLSo7UJokSWCqg4tsQ==", + "requires": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + } + }, + "typescript": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vite": { + "version": "4.3.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz", + "integrity": "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==", + "requires": { + "esbuild": "^0.17.5", + "fsevents": "~2.3.2", + "postcss": "^8.4.23", + "rollup": "^3.21.0" + } + }, + "vitepress": { + "version": "1.0.0-beta.3", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.0.0-beta.3.tgz", + "integrity": "sha512-GR5Pvr/o343NN1M4Na1shhDYZRrQbjmLq7WE0lla0H8iDPAsHE8agTHLWfu3FWx+3q2KA29sv16+0O9RQKGjlA==", + "requires": { + "@docsearch/css": "^3.5.0", + "@docsearch/js": "^3.5.0", + "@vitejs/plugin-vue": "^4.2.3", + "@vue/devtools-api": "^6.5.0", + "@vueuse/core": "^10.1.2", + "@vueuse/integrations": "^10.1.2", + "body-scroll-lock": "4.0.0-beta.0", + "focus-trap": "^7.4.3", + "mark.js": "8.11.1", + "minisearch": "^6.1.0", + "shiki": "^0.14.2", + "vite": "^4.3.9", + "vue": "^3.3.4" + } + }, + "vscode-oniguruma": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==" + }, + "vscode-textmate": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", + "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==" + }, + "vue": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz", + "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==", + "requires": { + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-sfc": "3.3.4", + "@vue/runtime-dom": "3.3.4", + "@vue/server-renderer": "3.3.4", + "@vue/shared": "3.3.4" + } + }, + "vue-router": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.2.tgz", + "integrity": "sha512-cChBPPmAflgBGmy3tBsjeoe3f3VOSG6naKyY5pjtrqLGbNEXdzCigFUHgBvp9e3ysAtFtEx7OLqcSDh/1Cq2TQ==", + "requires": { + "@vue/devtools-api": "^6.5.0" + } + }, + "vue-template-compiler": { + "version": "2.7.14", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz", + "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==", + "dev": true, + "requires": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "vue-tsc": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.1.tgz", + "integrity": "sha512-GxBQrcb0Qvyrj1uZqnTXQyWbXdNDRY2MTa+r7ESgjhf+WzBSdxZfkS3KD/C3WhKYG+aN8hf44Hp5Gqzb6PehAA==", + "dev": true, + "requires": { + "@vue/language-core": "1.8.1", + "@vue/typescript": "1.8.1", + "semver": "^7.3.8" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz", + "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..6c44d8f --- /dev/null +++ b/package.json @@ -0,0 +1,64 @@ +{ + "name": "@jqw755/q-ui", + "version": "0.0.3", + "private": false, + "type": "module", + "files": [ + "dist" + ], + "main": "./dist/q-ui.umd.cjs", + "module": "./dist/q-ui.js", + "exports": { + "./dist/style.css": "./dist/style.css", + "./css": "./dist/style.css", + ".": { + "import": "./dist/q-ui.js", + "require": "./dist/q-ui.umd.cjs" + } + }, + "author": "jingqw", + "license": "ISC", + "keywords": [ + "Vue3", + "TS", + "Vite", + "Vue ui", + "UI" + ], + "homepage": "https://github.com/jqw755/q-ui#readme", + "description": "q-ui", + "scripts": { + "dev": "vite --port 9000 --open --force", + "docs:dev": "vitepress dev docs --port 8000 --open", + "docs:build": "vitepress build docs", + "docs:deploy": "sh script/deploy.sh", + "pub": "sh script/publish.sh", + "build": "run-p type-check build-only", + "preview": "vite preview", + "build-only": "vite build --mode prod", + "type-check": "vue-tsc --noEmit -p tsconfig.app.json --composite false" + }, + "dependencies": { + "@jqw755/q-ui": "^0.0.3", + "sass": "^1.63.3", + "vue": "^3.3.4", + "vue-router": "^4.2.2" + }, + "devDependencies": { + "@tsconfig/node18": "^2.0.1", + "@types/node": "^18.16.17", + "@vitejs/plugin-vue": "^4.2.3", + "@vitejs/plugin-vue-jsx": "^3.0.1", + "@vue/tsconfig": "^0.4.0", + "vitepress": "^1.0.0-beta.2", + "npm-run-all": "^4.1.5", + "terser": "^5.18.0", + "typescript": "~5.0.4", + "vite": "^4.3.9", + "vue-tsc": "^1.6.5" + }, + "repository": { + "type": "git", + "url": "https://github.com/jqw755/q-ui" + } +} diff --git a/packages/Breadcrumb/index.scss b/packages/Breadcrumb/index.scss new file mode 100644 index 0000000..e27117d --- /dev/null +++ b/packages/Breadcrumb/index.scss @@ -0,0 +1,45 @@ +.m-breadcrumb { + display: flex; + align-items: center; + .m-bread { + display: inline-flex; + align-items: center; + line-height: 1.5; + .u-route { + color: rgba(0, 0, 0, 0.45); + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + cursor: pointer; + padding: 0 4px; + border-radius: 4px; + transition: color 0.2s, background-color 0.2s; + &:hover { + background-color: rgba(0, 0, 0, 0.05); + color: rgba(0, 0, 0, 0.88); + } + } + .active { + color: rgba(0, 0, 0, 0.88); + cursor: default; + &:hover { + background-color: transparent; + } + } + .u-separator { + margin: 0 4px; + color: rgba(0, 0, 0, 0.45); + } + .u-arrow { + width: 12px; + height: 12px; + fill: rgba(0, 0, 0, 0.45); + } + } + .assist { + height: 100%; + width: 0; + display: inline-block; + vertical-align: middle; + } +} diff --git a/packages/Breadcrumb/index.ts b/packages/Breadcrumb/index.ts new file mode 100644 index 0000000..9cceba4 --- /dev/null +++ b/packages/Breadcrumb/index.ts @@ -0,0 +1,9 @@ +import type { App } from "vue" +import QBreadcrumb from "./index.vue" + +// 使用install方法,在app.use挂载 +QBreadcrumb.install = (app: App) => { + app.component(QBreadcrumb.name, QBreadcrumb) +} + +export default QBreadcrumb diff --git a/packages/Breadcrumb/index.vue b/packages/Breadcrumb/index.vue new file mode 100644 index 0000000..418c9c2 --- /dev/null +++ b/packages/Breadcrumb/index.vue @@ -0,0 +1,77 @@ + + + + + diff --git a/packages/Button/index.scss b/packages/Button/index.scss new file mode 100644 index 0000000..c3f5ead --- /dev/null +++ b/packages/Button/index.scss @@ -0,0 +1,260 @@ +$h-default: 32px; +$h-small: 20px; +$h-large: 48px; +$white: #fff; +$default-color: #333; +$info-color: #909399; +$success-color: #85ce61; +$warning-color: #f0a020; +$error-color: #d03050; +$default-border-color: #d9d9d9; +$radius: 3px; + +.q-button { + box-sizing: border-box; + height: $h-default; + background-color: #fff; + padding: 0 12px; + cursor: pointer; + display: inline-flex; + justify-content: center; + align-items: center; + white-space: nowrap; + border-radius: $radius; + box-shadow: 0 1px 0 fade-out(black, 0.95); + transition: all 250ms; + color: $default-color; + border: 1px solid $default-border-color; + user-select: none; + + &:focus { + outline: none; + } + + &::-moz-focus-inner { + border: 0; + } + + &.q-size-large { + font-size: 24px; + height: $h-large; + padding: 0 16px; + } + &.q-size-small { + font-size: 12px; + height: $h-small; + padding: 0 8px; + } + + &.is-round.q-size-default { + border-radius: calc($h-default / 2); + } + &.is-round.q-size-large { + border-radius: calc($h-large / 2); + } + &.is-round.q-size-small { + border-radius: calc($h-small / 2); + } + + &.q-type-default { + &:hover { + color: $primary-color; + border-color: $primary-color; + } + &.is-disabled { + cursor: not-allowed; + background: #fff; + border-color: #e4e7ed; + &:hover { + color: $default-color; + background: #fff; + border-color: #e4e7ed; + } + } + &:active { + color: darken($primary-color, 20%); + border-color: darken($primary-color, 20%); + } + &.q-type-dashed { + border-style: dashed; + } + > .q-loadingIndicator { + border-color: $default-color $default-color $default-color transparent; + } + } + &.q-type-primary { + background-color: $primary-color; + border-color: $primary-color; + color: $white; + + &:hover { + background: lighten($primary-color, 20%); + border-color: lighten($primary-color, 20%); + } + &:active { + background-color: darken($primary-color, 20%); + border-color: darken($primary-color, 20%); + } + + &.is-disabled { + cursor: not-allowed; + background: lighten($primary-color, 20%); + border-color: lighten($primary-color, 20%); + &:hover { + background: lighten($primary-color, 20%); + border-color: lighten($primary-color, 20%); + } + } + + &.q-type-dashed { + border-style: dashed; + background-color: $white !important; + color: $primary-color; + } + } + + &.q-type-info { + background-color: $info-color; + border-color: $info-color; + color: $white; + &:hover { + background: lighten($info-color, 20%); + border-color: lighten($info-color, 20%); + } + &:active { + background-color: darken($info-color, 20%); + border-color: darken($info-color, 20%); + } + + &.is-disabled { + cursor: not-allowed; + background: lighten($info-color, 20%); + border-color: lighten($info-color, 20%); + &:hover { + background: lighten($info-color, 20%); + border-color: lighten($info-color, 20%); + } + } + + &.q-type-dashed { + border-style: dashed; + background-color: $white !important; + color: $info-color; + } + } + + &.q-type-success { + background-color: $success-color; + border-color: $success-color; + color: $white; + &:hover { + background: lighten($success-color, 20%); + border-color: lighten($success-color, 20%); + } + &:active { + background-color: darken($success-color, 20%); + border-color: darken($success-color, 20%); + } + + &.is-disabled { + cursor: not-allowed; + background: lighten($success-color, 20%); + border-color: lighten($success-color, 20%); + &:hover { + background: lighten($success-color, 20%); + border-color: lighten($success-color, 20%); + } + } + + &.q-type-dashed { + border-style: dashed; + background-color: $white !important; + color: $success-color; + } + } + + &.q-type-warning { + background-color: $warning-color; + border-color: $warning-color; + color: $white; + &:hover { + background: lighten($warning-color, 20%); + border-color: lighten($warning-color, 20%); + } + &:active { + background-color: darken($warning-color, 20%); + border-color: darken($warning-color, 20%); + } + + &.is-disabled { + cursor: not-allowed; + background: lighten($warning-color, 20%); + border-color: lighten($warning-color, 20%); + &:hover { + background: lighten($warning-color, 20%); + border-color: lighten($warning-color, 20%); + } + } + + &.q-type-dashed { + border-style: dashed; + background-color: $white !important; + color: $warning-color; + } + } + + &.q-type-error { + background-color: $error-color; + border-color: $error-color; + color: $white; + &:hover { + background: lighten($error-color, 20%); + border-color: lighten($error-color, 20%); + } + &:active { + background-color: darken($error-color, 20%); + border-color: darken($error-color, 20%); + } + + &.is-disabled { + cursor: not-allowed; + background: lighten($error-color, 20%); + border-color: lighten($error-color, 20%); + &:hover { + background: lighten($error-color, 20%); + border-color: lighten($error-color, 20%); + } + } + + &.q-type-dashed { + border-style: dashed; + background-color: $white !important; + color: $error-color; + } + } + + > .q-loadingIndicator { + width: 14px; + height: 14px; + display: inline-block; + margin-right: 5px; + border-radius: 50%; + border-color: $white $white $white transparent; + border-style: solid; + border-width: 2px; + animation: q-spin 1s infinite linear; + } + + &.is-loading { + pointer-events: none !important; + } +} + +@keyframes q-spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} diff --git a/packages/Button/index.ts b/packages/Button/index.ts new file mode 100644 index 0000000..4c8076e --- /dev/null +++ b/packages/Button/index.ts @@ -0,0 +1,9 @@ +import type { App } from "vue" +import QButton from "./index.vue" + +// 使用install方法,在app.use挂载 +QButton.install = (app: App) => { + app.component(QButton.name, QButton) +} + +export default QButton diff --git a/packages/Button/index.vue b/packages/Button/index.vue new file mode 100644 index 0000000..581c262 --- /dev/null +++ b/packages/Button/index.vue @@ -0,0 +1,59 @@ + + + + + + diff --git a/packages/Select/index.scss b/packages/Select/index.scss new file mode 100644 index 0000000..ad266a6 --- /dev/null +++ b/packages/Select/index.scss @@ -0,0 +1,140 @@ +.m-select { + position: relative; + display: inline-block; + font-size: 14px; + font-weight: 400; + color: rgba(0, 0, 0, 0.65); +} +.fade-enter-active, +.fade-leave-active { + transform: scaleY(1); + transform-origin: 0% 0%; + opacity: 1; + transition: all 0.3s; +} +.fade-enter-from { + transform: scaleY(0.8); + transform-origin: 0% 0%; + opacity: 0; +} +.fade-leave-to { + transform: scaleY(1); + opacity: 0; +} +.m-select-wrap { + position: relative; + z-index: 8; + display: inline-block; + border: 1px solid #d9d9d9; + border-radius: 4px; + background-color: #fff; + cursor: pointer; + transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); + .u-select-input { + display: block; + text-align: left; + margin-left: 11px; + margin-right: 27px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + .placeholder { + color: #bfbfbf; + } + .triangle { + position: absolute; + top: 0; + bottom: 0; + margin: auto 0; + right: 11px; + width: 12px; + height: 12px; + fill: rgba(0, 0, 0, 0.25); + opacity: 0; + pointer-events: none; + transition: all 0.3s ease-in-out; + } + .rotate { + transform: rotate(180deg); + -webkit-transform: rotate(180deg); + } + .close { + position: absolute; + top: 0; + bottom: 0; + margin: auto 0; + right: 11px; + width: 12px; + height: 12px; + fill: rgba(140, 140, 140, 0.6); + opacity: 0; + pointer-events: none; + transition: all 0.3s ease-in-out; + &:hover { + fill: rgba(100, 100, 100, 0.8); + } + } + .show { + opacity: 1; + pointer-events: auto; + } +} +.hover { + // 悬浮时样式 + &:hover { + border-color: $primary-color; + } +} +.focus { + // 激活时样式 + border-color: $primary-color; + // fade()函数降低颜色变量透明度 + box-shadow: 0 0 0 2px fade($primary-color, 20%); +} +.disabled { + // 下拉禁用样式 + color: rgba(0, 0, 0, 0.25); + background: #f5f5f5; + user-select: none; + cursor: not-allowed; +} +.m-options-panel { + position: absolute; + z-index: 9; + overflow: auto; + background: #fff; + padding: 4px 0; + border-radius: 4px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 15%); + .u-option { + // 下拉项默认样式 + text-align: left; + position: relative; + display: block; + padding: 5px 12px; + font-weight: 400; + line-height: inherit; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + cursor: pointer; + transition: background 0.3s ease; + } + .option-selected { + // 被选中的下拉项样式 + font-weight: 600; + background: #fafafa; + } + .option-hover { + // 悬浮时的下拉项样式 + background: #e6f7ff; + // background: saturate(fade($primary-color, 12%), 30%); + } + .option-disabled { + // 禁用某个下拉选项时的样式 + color: rgba(0, 0, 0, 0.25); + user-select: none; + cursor: not-allowed; + } +} diff --git a/packages/Select/index.ts b/packages/Select/index.ts new file mode 100644 index 0000000..1d4d1d9 --- /dev/null +++ b/packages/Select/index.ts @@ -0,0 +1,9 @@ +import type { App } from "vue" +import QSelect from "./index.vue" + +// 使用install方法,在app.use挂载 +QSelect.install = (app: App) => { + app.component(QSelect.name, QSelect) +} + +export default QSelect diff --git a/packages/Select/index.vue b/packages/Select/index.vue new file mode 100644 index 0000000..e11f0d3 --- /dev/null +++ b/packages/Select/index.vue @@ -0,0 +1,193 @@ + + + + diff --git a/packages/index.ts b/packages/index.ts new file mode 100644 index 0000000..762fdf7 --- /dev/null +++ b/packages/index.ts @@ -0,0 +1,28 @@ +import type { App } from "vue" +import "./style/index.scss" +import { dateFormat, throttle, debounce, copyText, isArrayRepeat, downloadFile } from "./utils" +import QButton from "./Button" +import QSelect from "./Select" +import QBreadcrumb from "./Breadcrumb" + +const components = [QButton, QSelect, QBreadcrumb] + +// 定义 install 方法 +const install = (app: App): void => { + // 遍历注册所有组件 + /* + component.__name ts报错 + Argument of type 'string | undefined' is not assignable to parameter of type 'string'. + + Type 'undefined' is not assignable to type 'string'.ts(2345) + 解决方式一:使用// @ts-ignore + 解决方式二:使用类型断言 尖括号语法(component.__name) 或 as语法(component.__name as string) + */ + components.forEach((component) => app.component(component.name, component)) +} +export { dateFormat, throttle, debounce, copyText, isArrayRepeat, downloadFile } +export { QButton, QSelect, QBreadcrumb } +const QUI = { + install, +} +export default QUI diff --git a/packages/style/index.scss b/packages/style/index.scss new file mode 100644 index 0000000..ae7bd41 --- /dev/null +++ b/packages/style/index.scss @@ -0,0 +1,41 @@ +// 主题色 +$primary-color: #1bb760; +// 普通边框色 +$border-color: #dcdfe6; +$listWitdh: 5, 10, 15, 20, 25, 30, 40, 50, 60, 100; +$listMarginPadding: 0, 2, 5, 8, 10, 12, 14, 15, 16, 18, 20, 24, 25, 30, 36, 40, 50, 100; + +@each $item in $listWitdh { + .w#{$item} { + width: $item * 1%; + } +} + +@each $item in $listMarginPadding { + /* margin 外边距 */ + .ml-#{$item} { + margin-left: #{$item}px; + } + .mr-#{$item} { + margin-right: #{$item}px; + } + .mt-#{$item} { + margin-top: #{$item}px; + } + .mb-#{$item} { + margin-bottom: #{$item}px; + } + /* padding 内边距 */ + .pl-#{$item} { + padding-left: #{$item}px; + } + .pr-#{$item} { + padding-right: #{$item}px; + } + .pt-#{$item} { + padding-top: #{$item}px; + } + .pb-#{$item} { + padding-bottom: #{$item}px; + } +} diff --git a/packages/utils/index.ts b/packages/utils/index.ts new file mode 100644 index 0000000..2fc16af --- /dev/null +++ b/packages/utils/index.ts @@ -0,0 +1,111 @@ +/* + value: 13位时间戳 | new Date() | Date() + console.log(dateFormat(1680227496788, 'YYYY-MM-DD HH:mm:ss')) + format => YY:年,M:月,D:日,H:时,m:分钟,s:秒,SSS:毫秒 +*/ +export function dateFormat(time: number | string | Date = Date.now(), fmt = "yyyy-MM-dd hh:mm:ss"): string { + let date = new Date(time) + let o = { + "M+": date.getMonth() + 1, //月份 + "d+": date.getDate(), //日 + "h+": date.getHours(), //小时 + "m+": date.getMinutes(), //分 + "s+": date.getSeconds(), //秒 + "q+": Math.floor((date.getMonth() + 3) / 3), //季度 + S: date.getMilliseconds(), //毫秒 + } + if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length)) + for (let k in o) { + if (new RegExp("(" + k + ")").test(fmt)) { + fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)) + } + } + return fmt +} + +// 节流函数throttle +export function throttle(fn: Function, delay = 300): any { + let timer: number | null + return function () { + if (timer) { + return + } + timer = setTimeout(() => { + fn() + timer = null + }, delay) + } +} +// 防抖函数debounce +export function debounce(fn: Function, delay = 300): any { + // timer 是在闭包中的 + let timer: number | null + return function () { + if (timer) { + clearTimeout(timer) + } + timer = setTimeout(() => { + fn() + timer = null + }, delay) + } +} + +// 复制文本 +export function copyText(text: string): any { + return new Promise((resolve) => { + // 创建input框获取需要复制的文本内容 + const copyInput = document.createElement("input") + copyInput.value = text + document.body.appendChild(copyInput) + copyInput.select() + document.execCommand("copy") + copyInput.remove() + resolve(true) + }) +} + +// 判断数组中是否有重复项 +export function isArrayRepeat(arr: []): boolean { + var hash = {} + for (var i in arr) { + if (hash[arr[i]]) { + return true + } + hash[arr[i]] = true + } + return false +} + +/* + 下载文件并自定义文件名 + url: 文件地址 + name: 自定义文件名,未传时,从文件地址中自动获取文件名称 +*/ +export function downloadFile(url: string, name: string) { + var fileName = "" + if (name) { + fileName = name + } else { + const res = url.split("?")[0].split("/") + fileName = res[res.length - 1] + } + var xhr = new XMLHttpRequest() + xhr.open("GET", url, true) + xhr.responseType = "blob" + xhr.onload = function () { + if (xhr.status === 200) { + const blob = xhr.response + const link = document.createElement("a") + const body = document.querySelector("body") + link.href = window.URL.createObjectURL(blob) + link.download = fileName + link.style.display = "none" + body?.appendChild(link) + link.click() + body?.removeChild(link) + window.URL.revokeObjectURL(link.href) + } + } + xhr.send() +} diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..df36fcf Binary files /dev/null and b/public/favicon.ico differ diff --git a/script/deploy.sh b/script/deploy.sh new file mode 100644 index 0000000..39b19aa --- /dev/null +++ b/script/deploy.sh @@ -0,0 +1,28 @@ +# /bin/bash +#用于打包静态网站,并部署到 Github + +# 确保脚本抛出遇到的错误 +set -e + +# 重新打包组件库 + +npm build + +# 打包生成静态文件 +npm docs:build + +# 进入待发布的 dist/ 目录 +cd docs/.vitepress/dist + +git init +git add . +git commit -m 'deploy' + +# 部署到 https://.github.io/ +git push -f git@github.com:jqw755/q-ui.git master:github-pages + +# 提交所有代码到github +cd ../ +git add . +git cm -m 'update' +git push diff --git a/script/publish.sh b/script/publish.sh new file mode 100644 index 0000000..9d96589 --- /dev/null +++ b/script/publish.sh @@ -0,0 +1,29 @@ +# /bin/bash +# 需提前登录 npm 账户,否则无法直接发布 +# 用于打包升级组件库,并发布到npm,同时自动升级项目内组件库依赖版本到最新,只需新增version版本号之后执行:sh publish.sh + +# 确保脚本抛出遇到的错误 +set -e + +# 读取package.json中的version +# version=`jq -r .version package.json` + + # 打包构建 +npm build + + # 提交代码到github +git add . +git commit -m "update" +git push + + # 发布到npm,pnpm(高性能的npm) +npm publish + +# 升级 q-ui 依赖版本 +npm up q-ui + +# 提交版本更新代码到github +git add . +git cm -m "update" +git push + diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..18cabbf --- /dev/null +++ b/src/App.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/src/assets/base.css b/src/assets/base.css new file mode 100644 index 0000000..216996e --- /dev/null +++ b/src/assets/base.css @@ -0,0 +1,78 @@ +/* color palette from */ +:root { + --vt-c-white: #ffffff; + --vt-c-white-soft: #f8f8f8; + --vt-c-white-mute: #f2f2f2; + + --vt-c-black: #181818; + --vt-c-black-soft: #222222; + --vt-c-black-mute: #282828; + + --vt-c-indigo: #2c3e50; + + --vt-c-divider-light-1: rgba(60, 60, 60, 0.29); + --vt-c-divider-light-2: rgba(60, 60, 60, 0.12); + --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65); + --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48); + + --vt-c-text-light-1: var(--vt-c-indigo); + --vt-c-text-light-2: rgba(60, 60, 60, 0.66); + --vt-c-text-dark-1: var(--vt-c-white); + --vt-c-text-dark-2: rgba(235, 235, 235, 0.64); +} + +/* semantic color variables for this project */ +:root { + --color-background: var(--vt-c-white); + --color-background-soft: var(--vt-c-white-soft); + --color-background-mute: var(--vt-c-white-mute); + + --color-border: var(--vt-c-divider-light-2); + --color-border-hover: var(--vt-c-divider-light-1); + + --color-heading: var(--vt-c-text-light-1); + --color-text: var(--vt-c-text-light-1); + + --section-gap: 160px; +} + +@media (prefers-color-scheme: dark) { + :root { + --color-background: var(--vt-c-black); + --color-background-soft: var(--vt-c-black-soft); + --color-background-mute: var(--vt-c-black-mute); + + --color-border: var(--vt-c-divider-dark-2); + --color-border-hover: var(--vt-c-divider-dark-1); + + --color-heading: var(--vt-c-text-dark-1); + --color-text: var(--vt-c-text-dark-2); + } +} + +*, +*::before, +*::after { + box-sizing: border-box; + margin: 0; + font-weight: normal; +} + +body { + min-height: 100vh; + color: var(--color-text); + background: var(--color-background); + transition: color 0.5s, background-color 0.5s; + line-height: 1.6; + font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", + "Droid Sans", "Helvetica Neue", sans-serif; + font-size: 15px; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +#app { + width: 100%; + height: 100vh; +} diff --git a/src/assets/logo.svg b/src/assets/logo.svg new file mode 100644 index 0000000..7565660 --- /dev/null +++ b/src/assets/logo.svg @@ -0,0 +1 @@ + diff --git a/src/assets/main.scss b/src/assets/main.scss new file mode 100644 index 0000000..ae7bd41 --- /dev/null +++ b/src/assets/main.scss @@ -0,0 +1,41 @@ +// 主题色 +$primary-color: #1bb760; +// 普通边框色 +$border-color: #dcdfe6; +$listWitdh: 5, 10, 15, 20, 25, 30, 40, 50, 60, 100; +$listMarginPadding: 0, 2, 5, 8, 10, 12, 14, 15, 16, 18, 20, 24, 25, 30, 36, 40, 50, 100; + +@each $item in $listWitdh { + .w#{$item} { + width: $item * 1%; + } +} + +@each $item in $listMarginPadding { + /* margin 外边距 */ + .ml-#{$item} { + margin-left: #{$item}px; + } + .mr-#{$item} { + margin-right: #{$item}px; + } + .mt-#{$item} { + margin-top: #{$item}px; + } + .mb-#{$item} { + margin-bottom: #{$item}px; + } + /* padding 内边距 */ + .pl-#{$item} { + padding-left: #{$item}px; + } + .pr-#{$item} { + padding-right: #{$item}px; + } + .pt-#{$item} { + padding-top: #{$item}px; + } + .pb-#{$item} { + padding-bottom: #{$item}px; + } +} diff --git a/src/components/Markdown.vue b/src/components/Markdown.vue new file mode 100644 index 0000000..f000f49 --- /dev/null +++ b/src/components/Markdown.vue @@ -0,0 +1,13 @@ + + + diff --git a/src/components/Preview.vue b/src/components/Preview.vue new file mode 100644 index 0000000..2176c9e --- /dev/null +++ b/src/components/Preview.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/src/components/TopNav.vue b/src/components/TopNav.vue new file mode 100644 index 0000000..cd54e84 --- /dev/null +++ b/src/components/TopNav.vue @@ -0,0 +1,53 @@ + + + diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..3183da9 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,13 @@ +import { createApp } from "vue" +import "./assets/base.css" +import QUI from "../packages" + +import App from "./App.vue" +import router from "./router" + +const app = createApp(App) + +app.use(router) +app.use(QUI) + +app.mount("#app") diff --git a/src/markdown/getStarted.md b/src/markdown/getStarted.md new file mode 100644 index 0000000..e21ac5a --- /dev/null +++ b/src/markdown/getStarted.md @@ -0,0 +1,24 @@ +# 安装 + +``` +npm install @jqw755/q-ui +``` + +# 开始使用 + +安装成功后,在页面中写入下面的代码: + +``` + + + +``` diff --git a/src/markdown/intro.md b/src/markdown/intro.md new file mode 100644 index 0000000..476db79 --- /dev/null +++ b/src/markdown/intro.md @@ -0,0 +1,11 @@ +# Q UI + +Q UI 是一套基于 `Vue3` + `TypeScript` 开发的 UI 组件库。 + +总结前端 UI 组件库和介绍文档搭建的经验,同时封装一些项目中常用的组件,提高编码效率。 + +## 特性 + +本组件库的实现尽量不采用第三方库,主要提供 **按钮、** 等简洁易用的组件。 + +本组件库主要用于个人学习交流使用,不可用于生产环境。[源代码](https://github.com/jqw755/q-ui) 。 diff --git a/src/router/index.ts b/src/router/index.ts new file mode 100644 index 0000000..ebc6559 --- /dev/null +++ b/src/router/index.ts @@ -0,0 +1,11 @@ +import { h } from "vue" +import { createRouter, createWebHashHistory } from "vue-router" + +// import Button from "../views/doc/utton/index.vue" + +const router = createRouter({ + history: createWebHashHistory(), + routes: [], +}) + +export default router diff --git a/src/views/doc/QButton/QButton-basics.preview.vue b/src/views/doc/QButton/QButton-basics.preview.vue new file mode 100644 index 0000000..9cd9c2a --- /dev/null +++ b/src/views/doc/QButton/QButton-basics.preview.vue @@ -0,0 +1,9 @@ +基础用法 + diff --git a/src/views/doc/QButton/QButton-disabled.preview.vue b/src/views/doc/QButton/QButton-disabled.preview.vue new file mode 100644 index 0000000..9bc499d --- /dev/null +++ b/src/views/doc/QButton/QButton-disabled.preview.vue @@ -0,0 +1,9 @@ +禁用状态 + diff --git a/src/views/doc/QButton/QButton-loading.preview.vue b/src/views/doc/QButton/QButton-loading.preview.vue new file mode 100644 index 0000000..a28e2e8 --- /dev/null +++ b/src/views/doc/QButton/QButton-loading.preview.vue @@ -0,0 +1,9 @@ +加载状态 + diff --git a/src/views/doc/QButton/index.vue b/src/views/doc/QButton/index.vue new file mode 100644 index 0000000..03563a0 --- /dev/null +++ b/src/views/doc/QButton/index.vue @@ -0,0 +1,19 @@ + + + + + diff --git a/src/views/doc/QSelect/index.vue b/src/views/doc/QSelect/index.vue new file mode 100644 index 0000000..d64d2f5 --- /dev/null +++ b/src/views/doc/QSelect/index.vue @@ -0,0 +1,16 @@ + + + + + diff --git a/src/views/doc/index.vue b/src/views/doc/index.vue new file mode 100644 index 0000000..17813a1 --- /dev/null +++ b/src/views/doc/index.vue @@ -0,0 +1,38 @@ + + diff --git a/tsconfig.app.json b/tsconfig.app.json new file mode 100644 index 0000000..8058962 --- /dev/null +++ b/tsconfig.app.json @@ -0,0 +1,12 @@ +{ + "extends": "@vue/tsconfig/tsconfig.dom.json", + "include": ["env.d.ts", "src/**/*", "src/**/*.vue", "packages/**/*.ts", "packages/**/*.vue"], + "exclude": ["src/**/__tests__/*"], + "compilerOptions": { + "composite": true, + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + } + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..66b5e57 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,11 @@ +{ + "files": [], + "references": [ + { + "path": "./tsconfig.node.json" + }, + { + "path": "./tsconfig.app.json" + } + ] +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..3e50050 --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,9 @@ +{ + "extends": "@tsconfig/node18/tsconfig.json", + "include": ["vite.config.*", "vitest.config.*", "cypress.config.*", "nightwatch.conf.*", "playwright.config.*"], + "compilerOptions": { + "composite": true, + "module": "ESNext", + "types": ["node"] + } +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..0185aa1 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,68 @@ +import { fileURLToPath, URL } from "node:url" + +import { defineConfig } from "vite" +import vue from "@vitejs/plugin-vue" +import vueJsx from "@vitejs/plugin-vue-jsx" +import { resolve } from "path" + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [vue(), vueJsx()], + resolve: { + alias: { + "@": fileURLToPath(new URL("./src", import.meta.url)), + }, + }, + css: { + preprocessorOptions: { + scss: { + // 全局引入变量// 给导入的路径最后加上 ; + additionalData: `@import '@/assets/main.scss';`, + }, + }, + }, + // 构建为库 + build: { + lib: { + // 构建为库。如果指定了 build.lib,build.cssCodeSplit 会默认为 false。 + // __dirname的值是vite.config.ts文件所在目录 + entry: resolve(__dirname, "packages/index.ts"), // entry是必需的,因为库不能使用HTML作为入口。 + name: "QUI", // 暴露的全局变量 + // fileName: "@jqw755/q-ui", // 输出的包文件名,默认是package.json的name选项 + }, + rollupOptions: { + // 自定义底层的Rollup打包配置 + // https://rollupjs.org/configuration-options/ + // 确保外部化处理那些你不想打包进库的依赖 + external: ["vue" /*"swiper", "qrcode", "element-plus" */], + output: { + // format: 'es', // 默认es,可选 'amd' 'cjs' 'es' 'iife' 'umd' 'system' + exports: "named", // https://rollupjs.org/configuration-options/#output-exports + // 在 UMD 构建模式下为这些外部化的依赖提供一个全局变量 + globals: { + vue: "Vue", + // 'vue-router': 'VueRouter', // 引入vue-router全局变量,否则router.push将无法使用 + // swiper: "Swiper", + // qrcode: "qrcode", + // "element-plus": "ElementPlus", + }, + }, + }, + /** 设置为 false 可以禁用最小化混淆,或是用来指定使用哪种混淆器。 + 默认为 Esbuild,它比 terser 快 20-40 倍,压缩率只差 1%-2%。 + 注意,在 lib 模式下使用 'es' 时,build.minify 选项不会缩减空格,因为会移除掉 pure 标注,导致破坏 tree-shaking。 + 当设置为 'terser' 时必须先安装 Terser。(npm i terser -D) + */ + minify: "terser", // Vite 2.6.x 以上需要配置 minify: "terser", terserOptions 才能生效。vite中已内置移除console的设置,只需此处配置一下 + terserOptions: { + // 在打包代码时移除 console、debugger 和 注释 + compress: { + drop_console: true, // 生产环境时移除console + drop_debugger: true, + }, + format: { + comments: false, // 删除注释comments + }, + }, + }, +})