diff --git a/.vitepress/cache/deps/_metadata.json b/.vitepress/cache/deps/_metadata.json index 2fb90f2..1834103 100644 --- a/.vitepress/cache/deps/_metadata.json +++ b/.vitepress/cache/deps/_metadata.json @@ -1,19 +1,31 @@ { - "hash": "92263481", - "browserHash": "61214b4d", + "hash": "fcb7384d", + "configHash": "a1335e35", + "lockfileHash": "914ec5d4", + "browserHash": "cdc1b648", "optimized": { "vue": { - "src": "../../../node_modules/.pnpm/vue@3.3.11/node_modules/vue/dist/vue.runtime.esm-bundler.js", + "src": "../../../node_modules/.pnpm/vue@3.4.28/node_modules/vue/dist/vue.runtime.esm-bundler.js", "file": "vue.js", - "fileHash": "faa725aa", + "fileHash": "80f64fd8", "needsInterop": false }, "vitepress > @vue/devtools-api": { - "src": "../../../node_modules/.pnpm/@vue+devtools-api@6.5.1/node_modules/@vue/devtools-api/lib/esm/index.js", + "src": "../../../node_modules/.pnpm/@vue+devtools-api@7.2.1_vue@3.4.28/node_modules/@vue/devtools-api/dist/index.js", "file": "vitepress___@vue_devtools-api.js", - "fileHash": "e1aabb22", + "fileHash": "e1f30c18", + "needsInterop": false + }, + "vitepress > @vueuse/core": { + "src": "../../../node_modules/.pnpm/@vueuse+core@10.11.0_vue@3.4.28/node_modules/@vueuse/core/index.mjs", + "file": "vitepress___@vueuse_core.js", + "fileHash": "7ea4a0aa", "needsInterop": false } }, - "chunks": {} + "chunks": { + "chunk-PH7CRNPN": { + "file": "chunk-PH7CRNPN.js" + } + } } \ No newline at end of file diff --git a/.vitepress/cache/deps/chunk-OOO2W3XR.js.map b/.vitepress/cache/deps/chunk-OOO2W3XR.js.map deleted file mode 100644 index 7b32496..0000000 --- a/.vitepress/cache/deps/chunk-OOO2W3XR.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../node_modules/.pnpm/@vue+shared@3.4.21/node_modules/@vue/shared/dist/shared.esm-bundler.js", "../../../node_modules/.pnpm/@vue+reactivity@3.4.21/node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js", "../../../node_modules/.pnpm/@vue+runtime-core@3.4.21/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js", "../../../node_modules/.pnpm/@vue+runtime-dom@3.4.21/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js", "../../../node_modules/.pnpm/vue@3.4.21/node_modules/vue/dist/vue.runtime.esm-bundler.js"], - "sourcesContent": ["/**\n* @vue/shared v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nfunction makeMap(str, expectsLowerCase) {\n const set = new Set(str.split(\",\"));\n return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction((str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n});\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n};\nconst def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"HOISTED\": -1,\n \"-1\": \"HOISTED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `HOISTED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"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,Error\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n let ret = \"\";\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n if (isString(value) || typeof value === \"number\") {\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst 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\";\nconst 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\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `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`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `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,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>| looseEqual(item, val));\n}\n\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (val && val.__v_isRef) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v;\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, genPropsAccessExp, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n", "/**\n* @vue/reactivity v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { NOOP, extend, isArray, isSymbol, isMap, isIntegerKey, hasOwn, hasChanged, isObject, makeMap, capitalize, toRawType, def, isFunction } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this._active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n this._active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeEffect;\nclass ReactiveEffect {\n constructor(fn, trigger, scheduler, scope) {\n this.fn = fn;\n this.trigger = trigger;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n /**\n * @internal\n */\n this._dirtyLevel = 4;\n /**\n * @internal\n */\n this._trackId = 0;\n /**\n * @internal\n */\n this._runnings = 0;\n /**\n * @internal\n */\n this._shouldSchedule = false;\n /**\n * @internal\n */\n this._depsLength = 0;\n recordEffectScope(this, scope);\n }\n get dirty() {\n if (this._dirtyLevel === 2 || this._dirtyLevel === 3) {\n this._dirtyLevel = 1;\n pauseTracking();\n for (let i = 0; i < this._depsLength; i++) {\n const dep = this.deps[i];\n if (dep.computed) {\n triggerComputed(dep.computed);\n if (this._dirtyLevel >= 4) {\n break;\n }\n }\n }\n if (this._dirtyLevel === 1) {\n this._dirtyLevel = 0;\n }\n resetTracking();\n }\n return this._dirtyLevel >= 4;\n }\n set dirty(v) {\n this._dirtyLevel = v ? 4 : 0;\n }\n run() {\n this._dirtyLevel = 0;\n if (!this.active) {\n return this.fn();\n }\n let lastShouldTrack = shouldTrack;\n let lastEffect = activeEffect;\n try {\n shouldTrack = true;\n activeEffect = this;\n this._runnings++;\n preCleanupEffect(this);\n return this.fn();\n } finally {\n postCleanupEffect(this);\n this._runnings--;\n activeEffect = lastEffect;\n shouldTrack = lastShouldTrack;\n }\n }\n stop() {\n var _a;\n if (this.active) {\n preCleanupEffect(this);\n postCleanupEffect(this);\n (_a = this.onStop) == null ? void 0 : _a.call(this);\n this.active = false;\n }\n }\n}\nfunction triggerComputed(computed) {\n return computed.value;\n}\nfunction preCleanupEffect(effect2) {\n effect2._trackId++;\n effect2._depsLength = 0;\n}\nfunction postCleanupEffect(effect2) {\n if (effect2.deps.length > effect2._depsLength) {\n for (let i = effect2._depsLength; i < effect2.deps.length; i++) {\n cleanupDepEffect(effect2.deps[i], effect2);\n }\n effect2.deps.length = effect2._depsLength;\n }\n}\nfunction cleanupDepEffect(dep, effect2) {\n const trackId = dep.get(effect2);\n if (trackId !== void 0 && effect2._trackId !== trackId) {\n dep.delete(effect2);\n if (dep.size === 0) {\n dep.cleanup();\n }\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const _effect = new ReactiveEffect(fn, NOOP, () => {\n if (_effect.dirty) {\n _effect.run();\n }\n });\n if (options) {\n extend(_effect, options);\n if (options.scope)\n recordEffectScope(_effect, options.scope);\n }\n if (!options || !options.lazy) {\n _effect.run();\n }\n const runner = _effect.run.bind(_effect);\n runner.effect = _effect;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nlet pauseScheduleStack = 0;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction pauseScheduling() {\n pauseScheduleStack++;\n}\nfunction resetScheduling() {\n pauseScheduleStack--;\n while (!pauseScheduleStack && queueEffectSchedulers.length) {\n queueEffectSchedulers.shift()();\n }\n}\nfunction trackEffect(effect2, dep, debuggerEventExtraInfo) {\n var _a;\n if (dep.get(effect2) !== effect2._trackId) {\n dep.set(effect2, effect2._trackId);\n const oldDep = effect2.deps[effect2._depsLength];\n if (oldDep !== dep) {\n if (oldDep) {\n cleanupDepEffect(oldDep, effect2);\n }\n effect2.deps[effect2._depsLength++] = dep;\n } else {\n effect2._depsLength++;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n }\n}\nconst queueEffectSchedulers = [];\nfunction triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {\n var _a;\n pauseScheduling();\n for (const effect2 of dep.keys()) {\n let tracking;\n if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);\n effect2._dirtyLevel = dirtyLevel;\n }\n if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n effect2.trigger();\n if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) {\n effect2._shouldSchedule = false;\n if (effect2.scheduler) {\n queueEffectSchedulers.push(effect2.scheduler);\n }\n }\n }\n }\n resetScheduling();\n}\n\nconst createDep = (cleanup, computed) => {\n const dep = /* @__PURE__ */ new Map();\n dep.cleanup = cleanup;\n dep.computed = computed;\n return dep;\n};\n\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"iterate\" : \"\");\nconst MAP_KEY_ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"Map key iterate\" : \"\");\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = createDep(() => depsMap.delete(key)));\n }\n trackEffect(\n activeEffect,\n dep,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key\n } : void 0\n );\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n let deps = [];\n if (type === \"clear\") {\n deps = [...depsMap.values()];\n } else if (key === \"length\" && isArray(target)) {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || !isSymbol(key2) && key2 >= newLength) {\n deps.push(dep);\n }\n });\n } else {\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isIntegerKey(key)) {\n deps.push(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n pauseScheduling();\n for (const dep of deps) {\n if (dep) {\n triggerEffects(\n dep,\n 4,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n } : void 0\n );\n }\n }\n resetScheduling();\n}\nfunction getDepFromReactive(object, key) {\n var _a;\n return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key);\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nconst arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n pauseScheduling();\n const res = toRaw(this)[key].apply(this, args);\n resetScheduling();\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction hasOwnProperty(key) {\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the reciever is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n if (targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n return false;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(\n true\n);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get(target, key, isReadonly = false, isShallow = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has(key, isReadonly = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\"__v_raw\"];\n !isReadonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n}\nfunction set(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2 ? get2.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get(this, key);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\"keys\", \"values\", \"entries\", Symbol.iterator];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(\n method,\n false,\n false\n );\n readonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n false\n );\n shallowInstrumentations2[method] = createIterableMethod(\n method,\n false,\n true\n );\n shallowReadonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n true\n );\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nconst [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has2, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = toRawType(target);\n warn(\n `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.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nconst COMPUTED_SIDE_EFFECT_WARN = `Computed is still dirty after getter evaluation, likely because a computed is mutating its own dependency in its getter. State mutations in computed getters should be avoided. Check the docs for more details: https://vuejs.org/guide/essentials/computed.html#getters-should-be-side-effect-free`;\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this.getter = getter;\n this._setter = _setter;\n this.dep = void 0;\n this.__v_isRef = true;\n this[\"__v_isReadonly\"] = false;\n this.effect = new ReactiveEffect(\n () => getter(this._value),\n () => triggerRefValue(\n this,\n this.effect._dirtyLevel === 2 ? 2 : 3\n )\n );\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\"] = isReadonly;\n }\n get value() {\n const self = toRaw(this);\n if ((!self._cacheable || self.effect.dirty) && hasChanged(self._value, self._value = self.effect.run())) {\n triggerRefValue(self, 4);\n }\n trackRefValue(self);\n if (self.effect._dirtyLevel >= 2) {\n if (!!(process.env.NODE_ENV !== \"production\") && this._warnRecursive) {\n warn(COMPUTED_SIDE_EFFECT_WARN, `\n\ngetter: `, this.getter);\n }\n triggerRefValue(self, 2);\n }\n return self._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n // #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x\n get _dirty() {\n return this.effect.dirty;\n }\n set _dirty(v) {\n this.effect.dirty = v;\n }\n // #endregion\n}\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = !!(process.env.NODE_ENV !== \"production\") ? () => {\n warn(\"Write operation failed: computed value is readonly\");\n } : NOOP;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.effect.onTrack = debugOptions.onTrack;\n cRef.effect.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nfunction trackRefValue(ref2) {\n var _a;\n if (shouldTrack && activeEffect) {\n ref2 = toRaw(ref2);\n trackEffect(\n activeEffect,\n (_a = ref2.dep) != null ? _a : ref2.dep = createDep(\n () => ref2.dep = void 0,\n ref2 instanceof ComputedRefImpl ? ref2 : void 0\n ),\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"get\",\n key: \"value\"\n } : void 0\n );\n }\n}\nfunction triggerRefValue(ref2, dirtyLevel = 4, newVal) {\n ref2 = toRaw(ref2);\n const dep = ref2.dep;\n if (dep) {\n triggerEffects(\n dep,\n dirtyLevel,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: newVal\n } : void 0\n );\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, __v_isShallow) {\n this.__v_isShallow = __v_isShallow;\n this.dep = void 0;\n this.__v_isRef = true;\n this._rawValue = __v_isShallow ? value : toRaw(value);\n this._value = __v_isShallow ? value : toReactive(value);\n }\n get value() {\n trackRefValue(this);\n return this._value;\n }\n set value(newVal) {\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n newVal = useDirectValue ? newVal : toRaw(newVal);\n if (hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, 4, newVal);\n }\n }\n}\nfunction triggerRef(ref2) {\n triggerRefValue(ref2, 4, !!(process.env.NODE_ENV !== \"production\") ? ref2.value : void 0);\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this.dep = void 0;\n this.__v_isRef = true;\n const { get, set } = factory(\n () => trackRefValue(this),\n () => triggerRefValue(this)\n );\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this.__v_isRef = true;\n }\n get value() {\n const val = this._object[this._key];\n return val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this.__v_isRef = true;\n this.__v_isReadonly = true;\n }\n get value() {\n return this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nconst deferredComputed = computed;\n\nconst TrackOpTypes = {\n \"GET\": \"get\",\n \"HAS\": \"has\",\n \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n \"SET\": \"set\",\n \"ADD\": \"add\",\n \"DELETE\": \"delete\",\n \"CLEAR\": \"clear\"\n};\nconst ReactiveFlags = {\n \"SKIP\": \"__v_skip\",\n \"IS_REACTIVE\": \"__v_isReactive\",\n \"IS_READONLY\": \"__v_isReadonly\",\n \"IS_SHALLOW\": \"__v_isShallow\",\n \"RAW\": \"__v_raw\"\n};\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseScheduling, pauseTracking, proxyRefs, reactive, readonly, ref, resetScheduling, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, track, trigger, triggerRef, unref };\n", "/**\n* @vue/runtime-core v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, isShallow, isReactive, ReactiveEffect, getCurrentScope, ref, shallowReadonly, track, reactive, shallowReactive, trigger, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, customRef, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, looseToNumber, hyphenate, camelize, isObject, isOn, hasOwn, isModelListener, capitalize, toNumber, hasChanged, remove, isSet, isMap, isPlainObject, isBuiltInDirective, invokeArrayFns, isRegExp, isGloballyAllowed, NO, def, isReservedProp, EMPTY_ARR, toRawType, makeMap, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nfunction warn$1(msg, ...args) {\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\"))\n return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"WATCH_GETTER\": 2,\n \"2\": \"WATCH_GETTER\",\n \"WATCH_CALLBACK\": 3,\n \"3\": \"WATCH_CALLBACK\",\n \"WATCH_CLEANUP\": 4,\n \"4\": \"WATCH_CLEANUP\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core .\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(\n appErrorHandler,\n null,\n 10,\n [err, exposedInstance, errorInfo]\n );\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else {\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.pre) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!queue.length || !queue.includes(\n job,\n isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex\n )) {\n if (job.id == null) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs || !activePostFlushCbs.includes(\n cb,\n cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex\n )) {\n pendingPostFlushCbs.push(cb);\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\n continue;\n }\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n queue.sort(comparator);\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n callWithErrorHandling(job, null, 14);\n }\n }\n } finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs(seen);\n isFlushing = false;\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n } else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `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.`,\n null,\n 10\n );\n return true;\n } else {\n seen.set(fn, count + 1);\n }\n }\n}\n\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Set();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n instance.effect.dirty = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record)\n return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (const instance of instances) {\n const oldComp = normalizeClassComponent(instance.type);\n if (!hmrDirtyComponents.has(oldComp)) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.add(oldComp);\n }\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n hmrDirtyComponents.add(oldComp);\n instance.ceReload(newComp.styles);\n hmrDirtyComponents.delete(oldComp);\n } else if (instance.parent) {\n instance.parent.effect.dirty = true;\n queueJob(instance.parent.update);\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n }\n queuePostFlushCb(() => {\n for (const instance of instances) {\n hmrDirtyComponents.delete(\n normalizeClassComponent(instance.type)\n );\n }\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:added\" /* COMPONENT_ADDED */\n);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:start\" /* PERFORMANCE_START */\n);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:end\" /* PERFORMANCE_END */\n);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted)\n return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const {\n emitsOptions,\n propsOptions: [propsOptions]\n } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) && true) {\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n warn$1(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(event)}\" prop.`\n );\n }\n } else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn$1(\n `Invalid event arguments: event validation failed for event \"${event}\".`\n );\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith(\"update:\");\n const modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === \"modelValue\" ? \"model\" : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n }\n if (number) {\n args = rawArgs.map(looseToNumber);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn$1(\n `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n instance,\n instance.type\n )} 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(\n event\n )}\" instead of \"${event}\".`\n );\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n props[handlerName = toHandlerKey(camelize(event))];\n if (!handler && isModelListener) {\n handler = props[handlerName = toHandlerKey(hyphenate(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(\n handler,\n instance,\n 6,\n args\n );\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n } else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(\n onceHandler,\n instance,\n 6,\n args\n );\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx)\n return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const {\n type: Component,\n vnode,\n proxy,\n withProxy,\n props,\n propsOptions: [propsOptions],\n slots,\n attrs,\n emit,\n render,\n renderCache,\n data,\n setupState,\n ctx,\n inheritAttrs\n } = instance;\n let result;\n let fallthroughAttrs;\n const prev = setCurrentRenderingInstance(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4) {\n const proxyToUse = withProxy || proxy;\n const thisProxy = !!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup ? new Proxy(proxyToUse, {\n get(target, key, receiver) {\n warn$1(\n `Property '${String(\n key\n )}' was accessed via 'this'. Avoid using 'this' in templates.`\n );\n return Reflect.get(target, key, receiver);\n }\n }) : proxyToUse;\n result = normalizeVNode(\n render.call(\n thisProxy,\n proxyToUse,\n renderCache,\n props,\n setupState,\n data,\n ctx\n )\n );\n fallthroughAttrs = attrs;\n } else {\n const render2 = Component;\n if (!!(process.env.NODE_ENV !== \"production\") && attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(\n render2.length > 1 ? render2(\n props,\n !!(process.env.NODE_ENV !== \"production\") ? {\n get attrs() {\n markAttrsAccessed();\n return attrs;\n },\n slots,\n emit\n } : { attrs, slots, emit }\n ) : render2(\n props,\n null\n /* we know it doesn't need it */\n )\n );\n fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);\n }\n } catch (err) {\n blockStack.length = 0;\n handleError(err, instance, 1);\n result = createVNode(Comment);\n }\n let root = result;\n let setRoot = void 0;\n if (!!(process.env.NODE_ENV !== \"production\") && result.patchFlag > 0 && result.patchFlag & 2048) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 | 6)) {\n if (propsOptions && keys.some(isModelListener)) {\n fallthroughAttrs = filterModelListeners(\n fallthroughAttrs,\n propsOptions\n );\n }\n root = cloneVNode(root, fallthroughAttrs);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (isOn(key)) {\n if (!isModelListener(key)) {\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n } else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn$1(\n `Extraneous non-props attributes (${extraAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`\n );\n }\n if (eventAttrs.length) {\n warn$1(\n `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.`\n );\n }\n }\n }\n }\n if (vnode.dirs) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Runtime directive used on component with non-element root node. The directives will not function as intended.`\n );\n }\n root = cloneVNode(root);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n if (vnode.transition) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Component inside renders non-element root node that cannot be animated.`\n );\n }\n root.transition = vnode.transition;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && setRoot) {\n setRoot(root);\n } else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren, false);\n if (!childRoot) {\n return [vnode, void 0];\n } else if (!!(process.env.NODE_ENV !== \"production\") && childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) {\n return getChildRoot(childRoot);\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n } else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children, recurse = true) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n if (child.type !== Comment || child.children === \"v-if\") {\n if (singleRoot) {\n return;\n } else {\n singleRoot = child;\n if (!!(process.env.NODE_ENV !== \"production\") && recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) {\n return filterSingleRoot(singleRoot.children);\n }\n }\n }\n } else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === \"class\" || key === \"style\" || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return vnode.shapeFlag & (6 | 1) || vnode.type === Comment;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n if (!!(process.env.NODE_ENV !== \"production\") && (prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024) {\n return true;\n }\n if (patchFlag & 16) {\n if (!prevProps) {\n return !!nextProps;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n } else if (patchFlag & 8) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n } else {\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el) {\n while (parent) {\n const root = parent.subTree;\n if (root.suspense && root.suspense.activeBranch === vnode) {\n root.el = vnode.el;\n }\n if (root === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n } else {\n break;\n }\n }\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nconst isSuspense = (type) => type.__isSuspense;\nlet suspenseId = 0;\nconst SuspenseImpl = {\n name: \"Suspense\",\n // In order to make Suspense tree-shakable, we need to avoid importing it\n // directly in the renderer. The renderer checks for the __isSuspense flag\n // on a vnode's type and calls the `process` method, passing in renderer\n // internals.\n __isSuspense: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n if (n1 == null) {\n mountSuspense(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n } else {\n if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {\n n2.suspense = n1.suspense;\n n2.suspense.vnode = n2;\n n2.el = n1.el;\n return;\n }\n patchSuspense(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n }\n },\n hydrate: hydrateSuspense,\n create: createSuspenseBoundary,\n normalize: normalizeSuspenseChildren\n};\nconst Suspense = SuspenseImpl ;\nfunction triggerEvent(vnode, name) {\n const eventListener = vnode.props && vnode.props[name];\n if (isFunction(eventListener)) {\n eventListener();\n }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n const {\n p: patch,\n o: { createElement }\n } = rendererInternals;\n const hiddenContainer = createElement(\"div\");\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n container,\n hiddenContainer,\n anchor,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n patch(\n null,\n suspense.pendingBranch = vnode.ssContent,\n hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds\n );\n if (suspense.deps > 0) {\n triggerEvent(vnode, \"onPending\");\n triggerEvent(vnode, \"onFallback\");\n patch(\n null,\n vnode.ssFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds\n );\n setActiveBranch(suspense, vnode.ssFallback);\n } else {\n suspense.resolve(false, true);\n }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n const suspense = n2.suspense = n1.suspense;\n suspense.vnode = n2;\n n2.el = n1.el;\n const newBranch = n2.ssContent;\n const newFallback = n2.ssFallback;\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n if (pendingBranch) {\n suspense.pendingBranch = newBranch;\n if (isSameVNodeType(newBranch, pendingBranch)) {\n patch(\n pendingBranch,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else if (isInFallback) {\n if (!isHydrating) {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n }\n } else {\n suspense.pendingId = suspenseId++;\n if (isHydrating) {\n suspense.isHydrating = false;\n suspense.activeBranch = pendingBranch;\n } else {\n unmount(pendingBranch, parentComponent, suspense);\n }\n suspense.deps = 0;\n suspense.effects.length = 0;\n suspense.hiddenContainer = createElement(\"div\");\n if (isInFallback) {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n suspense.resolve(true);\n } else {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n }\n }\n } else {\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newBranch);\n } else {\n triggerEvent(n2, \"onPending\");\n suspense.pendingBranch = newBranch;\n if (newBranch.shapeFlag & 512) {\n suspense.pendingId = newBranch.component.suspenseId;\n } else {\n suspense.pendingId = suspenseId++;\n }\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n const { timeout, pendingId } = suspense;\n if (timeout > 0) {\n setTimeout(() => {\n if (suspense.pendingId === pendingId) {\n suspense.fallback(newFallback);\n }\n }, timeout);\n } else if (timeout === 0) {\n suspense.fallback(newFallback);\n }\n }\n }\n }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n if (!!(process.env.NODE_ENV !== \"production\") && true && !hasWarned) {\n hasWarned = true;\n console[console.info ? \"info\" : \"log\"](\n ` is an experimental feature and its API will likely change.`\n );\n }\n const {\n p: patch,\n m: move,\n um: unmount,\n n: next,\n o: { parentNode, remove }\n } = rendererInternals;\n let parentSuspenseId;\n const isSuspensible = isVNodeSuspensible(vnode);\n if (isSuspensible) {\n if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) {\n parentSuspenseId = parentSuspense.pendingId;\n parentSuspense.deps++;\n }\n }\n const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n assertNumber(timeout, `Suspense timeout`);\n }\n const initialAnchor = anchor;\n const suspense = {\n vnode,\n parent: parentSuspense,\n parentComponent,\n namespace,\n container,\n hiddenContainer,\n deps: 0,\n pendingId: suspenseId++,\n timeout: typeof timeout === \"number\" ? timeout : -1,\n activeBranch: null,\n pendingBranch: null,\n isInFallback: !isHydrating,\n isHydrating,\n isUnmounted: false,\n effects: [],\n resolve(resume = false, sync = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!resume && !suspense.pendingBranch) {\n throw new Error(\n `suspense.resolve() is called without a pending branch.`\n );\n }\n if (suspense.isUnmounted) {\n throw new Error(\n `suspense.resolve() is called on an already unmounted suspense boundary.`\n );\n }\n }\n const {\n vnode: vnode2,\n activeBranch,\n pendingBranch,\n pendingId,\n effects,\n parentComponent: parentComponent2,\n container: container2\n } = suspense;\n let delayEnter = false;\n if (suspense.isHydrating) {\n suspense.isHydrating = false;\n } else if (!resume) {\n delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = () => {\n if (pendingId === suspense.pendingId) {\n move(\n pendingBranch,\n container2,\n anchor === initialAnchor ? next(activeBranch) : anchor,\n 0\n );\n queuePostFlushCb(effects);\n }\n };\n }\n if (activeBranch) {\n if (parentNode(activeBranch.el) !== suspense.hiddenContainer) {\n anchor = next(activeBranch);\n }\n unmount(activeBranch, parentComponent2, suspense, true);\n }\n if (!delayEnter) {\n move(pendingBranch, container2, anchor, 0);\n }\n }\n setActiveBranch(suspense, pendingBranch);\n suspense.pendingBranch = null;\n suspense.isInFallback = false;\n let parent = suspense.parent;\n let hasUnresolvedAncestor = false;\n while (parent) {\n if (parent.pendingBranch) {\n parent.effects.push(...effects);\n hasUnresolvedAncestor = true;\n break;\n }\n parent = parent.parent;\n }\n if (!hasUnresolvedAncestor && !delayEnter) {\n queuePostFlushCb(effects);\n }\n suspense.effects = [];\n if (isSuspensible) {\n if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0 && !sync) {\n parentSuspense.resolve();\n }\n }\n }\n triggerEvent(vnode2, \"onResolve\");\n },\n fallback(fallbackVNode) {\n if (!suspense.pendingBranch) {\n return;\n }\n const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense;\n triggerEvent(vnode2, \"onFallback\");\n const anchor2 = next(activeBranch);\n const mountFallback = () => {\n if (!suspense.isInFallback) {\n return;\n }\n patch(\n null,\n fallbackVNode,\n container2,\n anchor2,\n parentComponent2,\n null,\n // fallback tree will not have suspense context\n namespace2,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, fallbackVNode);\n };\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = mountFallback;\n }\n suspense.isInFallback = true;\n unmount(\n activeBranch,\n parentComponent2,\n null,\n // no suspense so unmount hooks fire now\n true\n // shouldRemove\n );\n if (!delayEnter) {\n mountFallback();\n }\n },\n move(container2, anchor2, type) {\n suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type);\n suspense.container = container2;\n },\n next() {\n return suspense.activeBranch && next(suspense.activeBranch);\n },\n registerDep(instance, setupRenderEffect) {\n const isInPendingSuspense = !!suspense.pendingBranch;\n if (isInPendingSuspense) {\n suspense.deps++;\n }\n const hydratedEl = instance.vnode.el;\n instance.asyncDep.catch((err) => {\n handleError(err, instance, 0);\n }).then((asyncSetupResult) => {\n if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {\n return;\n }\n instance.asyncResolved = true;\n const { vnode: vnode2 } = instance;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(vnode2);\n }\n handleSetupResult(instance, asyncSetupResult, false);\n if (hydratedEl) {\n vnode2.el = hydratedEl;\n }\n const placeholder = !hydratedEl && instance.subTree.el;\n setupRenderEffect(\n instance,\n vnode2,\n // component may have been moved before resolve.\n // if this is not a hydration, instance.subTree will be the comment\n // placeholder.\n parentNode(hydratedEl || instance.subTree.el),\n // anchor will not be used if this is hydration, so only need to\n // consider the comment placeholder case.\n hydratedEl ? null : next(instance.subTree),\n suspense,\n namespace,\n optimized\n );\n if (placeholder) {\n remove(placeholder);\n }\n updateHOCHostEl(instance, vnode2.el);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n if (isInPendingSuspense && --suspense.deps === 0) {\n suspense.resolve();\n }\n });\n },\n unmount(parentSuspense2, doRemove) {\n suspense.isUnmounted = true;\n if (suspense.activeBranch) {\n unmount(\n suspense.activeBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n if (suspense.pendingBranch) {\n unmount(\n suspense.pendingBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n }\n };\n return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n node.parentNode,\n // eslint-disable-next-line no-restricted-globals\n document.createElement(\"div\"),\n null,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals,\n true\n );\n const result = hydrateNode(\n node,\n suspense.pendingBranch = vnode.ssContent,\n parentComponent,\n suspense,\n slotScopeIds,\n optimized\n );\n if (suspense.deps === 0) {\n suspense.resolve(false, true);\n }\n return result;\n}\nfunction normalizeSuspenseChildren(vnode) {\n const { shapeFlag, children } = vnode;\n const isSlotChildren = shapeFlag & 32;\n vnode.ssContent = normalizeSuspenseSlot(\n isSlotChildren ? children.default : children\n );\n vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n let block;\n if (isFunction(s)) {\n const trackBlock = isBlockTreeEnabled && s._c;\n if (trackBlock) {\n s._d = false;\n openBlock();\n }\n s = s();\n if (trackBlock) {\n s._d = true;\n block = currentBlock;\n closeBlock();\n }\n }\n if (isArray(s)) {\n const singleChild = filterSingleRoot(s);\n if (!!(process.env.NODE_ENV !== \"production\") && !singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {\n warn$1(` slots expect a single root node.`);\n }\n s = singleChild;\n }\n s = normalizeVNode(s);\n if (block && !s.dynamicChildren) {\n s.dynamicChildren = block.filter((c) => c !== s);\n }\n return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n } else {\n suspense.effects.push(fn);\n }\n } else {\n queuePostFlushCb(fn);\n }\n}\nfunction setActiveBranch(suspense, branch) {\n suspense.activeBranch = branch;\n const { vnode, parentComponent } = suspense;\n let el = branch.el;\n while (!el && branch.component) {\n branch = branch.component.subTree;\n el = branch.el;\n }\n vnode.el = el;\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\nfunction isVNodeSuspensible(vnode) {\n var _a;\n return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false;\n}\n\nconst ssrContextKey = Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nconst INITIAL_WATCHER_VALUE = {};\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\n `\\`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.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, {\n immediate,\n deep,\n flush,\n once,\n onTrack,\n onTrigger\n} = EMPTY_OBJ) {\n if (cb && once) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n unwatch();\n };\n }\n if (!!(process.env.NODE_ENV !== \"production\") && deep !== void 0 && typeof deep === \"number\") {\n warn$1(\n `watch() \"deep\" option with number value will be used as watch depth in future versions. Please use a boolean instead to avoid potential breakage.`\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const warnInvalidSource = (s) => {\n warn$1(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const instance = currentInstance;\n const reactiveGetter = (source2) => deep === true ? source2 : (\n // for deep: false, only traverse root-level properties\n traverse(source2, deep === false ? 1 : void 0)\n );\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return callWithErrorHandling(s, instance, 2);\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = () => callWithErrorHandling(source, instance, 2);\n } else {\n getter = () => {\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(\n source,\n instance,\n 3,\n [onCleanup]\n );\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance, 4);\n cleanup = effect.onStop = void 0;\n };\n };\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n onCleanup = NOOP;\n if (!cb) {\n getter();\n } else if (immediate) {\n callWithAsyncErrorHandling(cb, instance, 3, [\n getter(),\n isMultiSource ? [] : void 0,\n onCleanup\n ]);\n }\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else {\n return NOOP;\n }\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active || !effect.dirty) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) {\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance, 3, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n } else {\n effect.run();\n }\n };\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === \"sync\") {\n scheduler = job;\n } else if (flush === \"post\") {\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\n } else {\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob(job);\n }\n const effect = new ReactiveEffect(getter, NOOP, scheduler);\n const scope = getCurrentScope();\n const unwatch = () => {\n effect.stop();\n if (scope) {\n remove(scope.effects, effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = onTrack;\n effect.onTrigger = onTrigger;\n }\n if (cb) {\n if (immediate) {\n job();\n } else {\n oldValue = effect.run();\n }\n } else if (flush === \"post\") {\n queuePostRenderEffect(\n effect.run.bind(effect),\n instance && instance.suspense\n );\n } else {\n effect.run();\n }\n if (ssrCleanup)\n ssrCleanup.push(unwatch);\n return unwatch;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, depth, currentDepth = 0, seen) {\n if (!isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n if (depth && depth > 0) {\n if (currentDepth >= depth) {\n return value;\n }\n currentDepth++;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, depth, currentDepth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, currentDepth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, currentDepth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, currentDepth, seen);\n }\n }\n return value;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getExposeProxy(currentRenderingInstance) || currentRenderingInstance.proxy;\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nconst leaveCbKey = Symbol(\"_leaveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn$1(\n \" can only be used on a single element or component. Use for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\"))\n break;\n }\n }\n }\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn$1(`invalid mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getKeepAliveChild(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n const enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(innerChild, enterHooks);\n const oldChild = instance.subTree;\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\n if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild)) {\n const leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\") {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (instance.update.active !== false) {\n instance.effect.dirty = true;\n instance.update();\n }\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n };\n enterHooks.delayedLeave = delayedLeave;\n };\n }\n }\n return child;\n };\n }\n};\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1))\n done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n const done = el[enterCbKey] = (cancelled) => {\n if (called)\n return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey] = void 0;\n };\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el[enterCbKey]) {\n el[enterCbKey](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = el[leaveCbKey] = (cancelled) => {\n if (called)\n return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n return resolveTransitionHooks(vnode2, props, state, instance);\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getKeepAliveChild(vnode) {\n return isKeepAlive(vnode) ? (\n // #7121 ensure get the child component subtree in case\n // it's been replaced during HMR\n !!(process.env.NODE_ENV !== \"production\") && vnode.component ? vnode.component.subTree : vnode.children ? vnode.children[0] : void 0\n ) : vnode;\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128)\n keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8326: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn$1(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n instance.parent.effect.dirty = true;\n queueJob(instance.parent.update);\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createVNode(loadingComponent);\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n namespace,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(vnode.type);\n if (name && (!filter || !filter(name))) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (!current || !isSameVNodeType(cached, current)) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= ~256;\n vnode.shapeFlag &= ~512;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n if (target.isUnmounted) {\n return;\n }\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${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.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => (\n // post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\n (!isInSSRComponentSetup || lifecycle === \"sp\") && injectHook(lifecycle, (...args) => hook(...args), target)\n);\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\"bu\");\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\"bum\");\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\"sp\");\nconst onRenderTriggered = createHook(\n \"rtg\"\n);\nconst onRenderTracked = createHook(\n \"rtc\"\n);\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n if (isArray(source) || isString(source)) {\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(source[i], i, void 0, cached && cached[i]);\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && !Number.isInteger(source)) {\n warn$1(`The v-for range expect an integer value but got ${source}.`);\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res)\n res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) {\n if (name !== \"default\")\n props.name = name;\n return createVNode(\"slot\", props, fallback && fallback());\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn$1(\n `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.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const rendered = createBlock(\n Fragment,\n {\n key: props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key || `_${name}`\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child))\n return true;\n if (child.type === Comment)\n return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent(i))\n return getExposeProxy(i) || i.proxy;\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n i.effect.dirty = true;\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance, \"get\", key);\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`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.
- +
+ \ No newline at end of file diff --git a/docs/assets/app.AAl1BPiw.js b/docs/assets/app.AAl1BPiw.js deleted file mode 100644 index 7da9007..0000000 --- a/docs/assets/app.AAl1BPiw.js +++ /dev/null @@ -1,7 +0,0 @@ -function __vite__mapDeps(indexes) { - if (!__vite__mapDeps.viteFileDeps) { - __vite__mapDeps.viteFileDeps = [] - } - return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) -} -import{j as o,a3 as p,a4 as u,a5 as l,a6 as c,a7 as f,a8 as d,a9 as m,aa as h,ab as g,ac as A,ad as P,d as _,u as v,l as y,z as C,ae as E,af as b,ag as w,ah as R}from"./chunks/framework.PNNbM9mo.js";import{t as S}from"./chunks/theme.PSGgyvwz.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(S),T=_({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=v();return y(()=>{C(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&E(),b(),w(),s.setup&&s.setup(),()=>R(s.Layout)}});async function D(){globalThis.__VITEPRESS__=!0;const e=L(),a=j();a.provide(u,e);const t=l(e.route);return a.provide(c,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function j(){return h(T)}function L(){let e=o,a;return g(t=>{let n=A(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=P(()=>import(n),__vite__mapDeps([]))),o&&(e=!1),r},s.NotFound)}o&&D().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{D as createApp}; diff --git a/docs/assets/app.KPNHXWzn.js b/docs/assets/app.KPNHXWzn.js new file mode 100644 index 0000000..1315b9b --- /dev/null +++ b/docs/assets/app.KPNHXWzn.js @@ -0,0 +1 @@ +import{U as o,a2 as p,a3 as u,a4 as l,a5 as c,a6 as f,a7 as d,a8 as m,a9 as h,aa as g,ab as A,d as P,u as v,y,x as C,ac as b,ad as w,ae as E,af as R}from"./chunks/framework.DVk8Vg-1.js";import{t as S}from"./chunks/theme.Dex_2nXA.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(S),_=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=v();return y(()=>{C(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&b(),w(),E(),s.setup&&s.setup(),()=>R(s.Layout)}});async function T(){globalThis.__VITEPRESS__=!0;const e=D(),a=x();a.provide(u,e);const t=l(e.route);return a.provide(c,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function x(){return h(_)}function D(){let e=o,a;return g(t=>{let n=A(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&T().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{T as createApp}; diff --git a/docs/assets/chunks/framework.DVk8Vg-1.js b/docs/assets/chunks/framework.DVk8Vg-1.js new file mode 100644 index 0000000..5e14309 --- /dev/null +++ b/docs/assets/chunks/framework.DVk8Vg-1.js @@ -0,0 +1,17 @@ +/** +* @vue/shared v3.4.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function us(e,t){const n=new Set(e.split(","));return s=>n.has(s)}const te={},gt=[],Se=()=>{},uo=()=>!1,Vt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),ds=e=>e.startsWith("onUpdate:"),ie=Object.assign,hs=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},ho=Object.prototype.hasOwnProperty,Y=(e,t)=>ho.call(e,t),D=Array.isArray,mt=e=>mn(e)==="[object Map]",Mr=e=>mn(e)==="[object Set]",k=e=>typeof e=="function",re=e=>typeof e=="string",ft=e=>typeof e=="symbol",Z=e=>e!==null&&typeof e=="object",Nr=e=>(Z(e)||k(e))&&k(e.then)&&k(e.catch),Fr=Object.prototype.toString,mn=e=>Fr.call(e),po=e=>mn(e).slice(8,-1),$r=e=>mn(e)==="[object Object]",ps=e=>re(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,yt=us(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),yn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},go=/-(\w)/g,Ne=yn(e=>e.replace(go,(t,n)=>n?n.toUpperCase():"")),mo=/\B([A-Z])/g,ut=yn(e=>e.replace(mo,"-$1").toLowerCase()),_n=yn(e=>e.charAt(0).toUpperCase()+e.slice(1)),tn=yn(e=>e?`on${_n(e)}`:""),Ye=(e,t)=>!Object.is(e,t),Fn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},yo=e=>{const t=parseFloat(e);return isNaN(t)?e:t},_o=e=>{const t=re(e)?Number(e):NaN;return isNaN(t)?e:t};let js;const jr=()=>js||(js=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function gs(e){if(D(e)){const t={};for(let n=0;n{if(n){const s=n.split(vo);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function ms(e){let t="";if(re(e))t=e;else if(D(e))for(let n=0;nre(e)?e:e==null?"":D(e)||Z(e)&&(e.toString===Fr||!k(e.toString))?JSON.stringify(e,Dr,2):String(e),Dr=(e,t)=>t&&t.__v_isRef?Dr(e,t.value):mt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r],i)=>(n[$n(s,i)+" =>"]=r,n),{})}:Mr(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>$n(n))}:ft(t)?$n(t):Z(t)&&!D(t)&&!$r(t)?String(t):t,$n=(e,t="")=>{var n;return ft(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.4.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let we;class xo{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=we,!t&&we&&(this.index=(we.scopes||(we.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=we;try{return we=this,t()}finally{we=n}}}on(){we=this}off(){we=this.parent}stop(t){if(this._active){let n,s;for(n=0,s=this.effects.length;n=4))break}this._dirtyLevel===1&&(this._dirtyLevel=0),Ze()}return this._dirtyLevel>=4}set dirty(t){this._dirtyLevel=t?4:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=Ge,n=lt;try{return Ge=!0,lt=this,this._runnings++,Vs(this),this.fn()}finally{Ds(this),this._runnings--,lt=n,Ge=t}}stop(){this.active&&(Vs(this),Ds(this),this.onStop&&this.onStop(),this.active=!1)}}function Ro(e){return e.value}function Vs(e){e._trackId++,e._depsLength=0}function Ds(e){if(e.deps.length>e._depsLength){for(let t=e._depsLength;t{const n=new Map;return n.cleanup=e,n.computed=t,n},ln=new WeakMap,ct=Symbol(""),ns=Symbol("");function be(e,t,n){if(Ge&<){let s=ln.get(e);s||ln.set(e,s=new Map);let r=s.get(n);r||s.set(n,r=qr(()=>s.delete(n))),kr(lt,r)}}function je(e,t,n,s,r,i){const o=ln.get(e);if(!o)return;let l=[];if(t==="clear")l=[...o.values()];else if(n==="length"&&D(e)){const c=Number(s);o.forEach((f,d)=>{(d==="length"||!ft(d)&&d>=c)&&l.push(f)})}else switch(n!==void 0&&l.push(o.get(n)),t){case"add":D(e)?ps(n)&&l.push(o.get("length")):(l.push(o.get(ct)),mt(e)&&l.push(o.get(ns)));break;case"delete":D(e)||(l.push(o.get(ct)),mt(e)&&l.push(o.get(ns)));break;case"set":mt(e)&&l.push(o.get(ct));break}_s();for(const c of l)c&&Wr(c,4);bs()}function Oo(e,t){const n=ln.get(e);return n&&n.get(t)}const Io=us("__proto__,__v_isRef,__isVue"),Gr=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(ft)),Us=Lo();function Lo(){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){Qe(),_s();const s=J(this)[t].apply(this,n);return bs(),Ze(),s}}),e}function Po(e){ft(e)||(e=String(e));const t=J(this);return be(t,"has",e),t.hasOwnProperty(e)}class zr{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){const r=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return i;if(n==="__v_raw")return s===(r?i?Wo:Qr:i?Jr:Yr).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const o=D(t);if(!r){if(o&&Y(Us,n))return Reflect.get(Us,n,s);if(n==="hasOwnProperty")return Po}const l=Reflect.get(t,n,s);return(ft(n)?Gr.has(n):Io(n))||(r||be(t,"get",n),i)?l:pe(l)?o&&ps(n)?l:l.value:Z(l)?r?wn(l):vn(l):l}}class Xr extends zr{constructor(t=!1){super(!1,t)}set(t,n,s,r){let i=t[n];if(!this._isShallow){const c=Mt(i);if(!cn(s)&&!Mt(s)&&(i=J(i),s=J(s)),!D(t)&&pe(i)&&!pe(s))return c?!1:(i.value=s,!0)}const o=D(t)&&ps(n)?Number(n)e,bn=e=>Reflect.getPrototypeOf(e);function Kt(e,t,n=!1,s=!1){e=e.__v_raw;const r=J(e),i=J(t);n||(Ye(t,i)&&be(r,"get",t),be(r,"get",i));const{has:o}=bn(r),l=s?vs:n?Cs:Nt;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 kt(e,t=!1){const n=this.__v_raw,s=J(n),r=J(e);return t||(Ye(e,r)&&be(s,"has",e),be(s,"has",r)),e===r?n.has(e):n.has(e)||n.has(r)}function Wt(e,t=!1){return e=e.__v_raw,!t&&be(J(e),"iterate",ct),Reflect.get(e,"size",e)}function Bs(e){e=J(e);const t=J(this);return bn(t).has.call(t,e)||(t.add(e),je(t,"add",e,e)),this}function Ks(e,t){t=J(t);const n=J(this),{has:s,get:r}=bn(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?Ye(t,o)&&je(n,"set",e,t):je(n,"add",e,t),this}function ks(e){const t=J(this),{has:n,get:s}=bn(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&&je(t,"delete",e,void 0),i}function Ws(){const e=J(this),t=e.size!==0,n=e.clear();return t&&je(e,"clear",void 0,void 0),n}function qt(e,t){return function(s,r){const i=this,o=i.__v_raw,l=J(o),c=t?vs:e?Cs:Nt;return!e&&be(l,"iterate",ct),o.forEach((f,d)=>s.call(r,c(f),c(d),i))}}function Gt(e,t,n){return function(...s){const r=this.__v_raw,i=J(r),o=mt(i),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,f=r[e](...s),d=n?vs:t?Cs:Nt;return!t&&be(i,"iterate",c?ns:ct),{next(){const{value:h,done:b}=f.next();return b?{value:h,done:b}:{value:l?[d(h[0]),d(h[1])]:d(h),done:b}},[Symbol.iterator](){return this}}}}function Ue(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Ho(){const e={get(i){return Kt(this,i)},get size(){return Wt(this)},has:kt,add:Bs,set:Ks,delete:ks,clear:Ws,forEach:qt(!1,!1)},t={get(i){return Kt(this,i,!1,!0)},get size(){return Wt(this)},has:kt,add:Bs,set:Ks,delete:ks,clear:Ws,forEach:qt(!1,!0)},n={get(i){return Kt(this,i,!0)},get size(){return Wt(this,!0)},has(i){return kt.call(this,i,!0)},add:Ue("add"),set:Ue("set"),delete:Ue("delete"),clear:Ue("clear"),forEach:qt(!0,!1)},s={get(i){return Kt(this,i,!0,!0)},get size(){return Wt(this,!0)},has(i){return kt.call(this,i,!0)},add:Ue("add"),set:Ue("set"),delete:Ue("delete"),clear:Ue("clear"),forEach:qt(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(i=>{e[i]=Gt(i,!1,!1),n[i]=Gt(i,!0,!1),t[i]=Gt(i,!1,!0),s[i]=Gt(i,!0,!0)}),[e,n,t,s]}const[jo,Vo,Do,Uo]=Ho();function ws(e,t){const n=t?e?Uo:Do:e?Vo:jo;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 Bo={get:ws(!1,!1)},Ko={get:ws(!1,!0)},ko={get:ws(!0,!1)};const Yr=new WeakMap,Jr=new WeakMap,Qr=new WeakMap,Wo=new WeakMap;function qo(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Go(e){return e.__v_skip||!Object.isExtensible(e)?0:qo(po(e))}function vn(e){return Mt(e)?e:Es(e,!1,No,Bo,Yr)}function zo(e){return Es(e,!1,$o,Ko,Jr)}function wn(e){return Es(e,!0,Fo,ko,Qr)}function Es(e,t,n,s,r){if(!Z(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=r.get(e);if(i)return i;const o=Go(e);if(o===0)return e;const l=new Proxy(e,o===2?s:n);return r.set(e,l),l}function At(e){return Mt(e)?At(e.__v_raw):!!(e&&e.__v_isReactive)}function Mt(e){return!!(e&&e.__v_isReadonly)}function cn(e){return!!(e&&e.__v_isShallow)}function Zr(e){return e?!!e.__v_raw:!1}function J(e){const t=e&&e.__v_raw;return t?J(t):e}function nn(e){return Object.isExtensible(e)&&Hr(e,"__v_skip",!0),e}const Nt=e=>Z(e)?vn(e):e,Cs=e=>Z(e)?wn(e):e;class ei{constructor(t,n,s,r){this.getter=t,this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new ys(()=>t(this._value),()=>Rt(this,this.effect._dirtyLevel===2?2:3)),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=s}get value(){const t=J(this);return(!t._cacheable||t.effect.dirty)&&Ye(t._value,t._value=t.effect.run())&&Rt(t,4),Ss(t),t.effect._dirtyLevel>=2&&Rt(t,2),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function Xo(e,t,n=!1){let s,r;const i=k(e);return i?(s=e,r=Se):(s=e.get,r=e.set),new ei(s,r,i||!r,n)}function Ss(e){var t;Ge&<&&(e=J(e),kr(lt,(t=e.dep)!=null?t:e.dep=qr(()=>e.dep=void 0,e instanceof ei?e:void 0)))}function Rt(e,t=4,n,s){e=J(e);const r=e.dep;r&&Wr(r,t)}function pe(e){return!!(e&&e.__v_isRef===!0)}function ae(e){return ni(e,!1)}function ti(e){return ni(e,!0)}function ni(e,t){return pe(e)?e:new Yo(e,t)}class Yo{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:Nt(t)}get value(){return Ss(this),this._value}set value(t){const n=this.__v_isShallow||cn(t)||Mt(t);t=n?t:J(t),Ye(t,this._rawValue)&&(this._rawValue,this._rawValue=t,this._value=n?t:Nt(t),Rt(this,4))}}function si(e){return pe(e)?e.value:e}const Jo={get:(e,t,n)=>si(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return pe(r)&&!pe(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function ri(e){return At(e)?e:new Proxy(e,Jo)}class Qo{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:s}=t(()=>Ss(this),()=>Rt(this));this._get=n,this._set=s}get value(){return this._get()}set value(t){this._set(t)}}function Zo(e){return new Qo(e)}class el{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 Oo(J(this._object),this._key)}}class tl{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function nl(e,t,n){return pe(e)?e:k(e)?new tl(e):Z(e)&&arguments.length>1?sl(e,t,n):ae(e)}function sl(e,t,n){const s=e[t];return pe(s)?s:new el(e,t,n)}/** +* @vue/runtime-core v3.4.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function ze(e,t,n,s){try{return s?e(...s):e()}catch(r){En(r,t,n)}}function xe(e,t,n,s){if(k(e)){const r=ze(e,t,n,s);return r&&Nr(r)&&r.catch(i=>{En(i,t,n)}),r}if(D(e)){const r=[];for(let i=0;i>>1,r=de[s],i=$t(r);iPe&&de.splice(t,1)}function ll(e){D(e)?_t.push(...e):(!ke||!ke.includes(e,e.allowRecurse?rt+1:rt))&&_t.push(e),oi()}function qs(e,t,n=Ft?Pe+1:0){for(;n$t(n)-$t(s));if(_t.length=0,ke){ke.push(...t);return}for(ke=t,rt=0;rte.id==null?1/0:e.id,cl=(e,t)=>{const n=$t(e)-$t(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function li(e){ss=!1,Ft=!0,de.sort(cl);try{for(Pe=0;Pere(T)?T.trim():T)),h&&(r=n.map(yo))}let l,c=s[l=tn(t)]||s[l=tn(Ne(t))];!c&&i&&(c=s[l=tn(ut(t))]),c&&xe(c,e,6,r);const f=s[l+"Once"];if(f){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,xe(f,e,6,r)}}function ci(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(!k(e)){const c=f=>{const d=ci(f,t,!0);d&&(l=!0,ie(o,d))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!l?(Z(e)&&s.set(e,null),null):(D(i)?i.forEach(c=>o[c]=null):ie(o,i),Z(e)&&s.set(e,o),o)}function Sn(e,t){return!e||!Vt(t)?!1:(t=t.slice(2).replace(/Once$/,""),Y(e,t[0].toLowerCase()+t.slice(1))||Y(e,ut(t))||Y(e,t))}let he=null,xn=null;function fn(e){const t=he;return he=e,xn=e&&e.type.__scopeId||null,t}function Ua(e){xn=e}function Ba(){xn=null}function fl(e,t=he,n){if(!t||e._n)return e;const s=(...r)=>{s._d&&or(-1);const i=fn(t);let o;try{o=e(...r)}finally{fn(i),s._d&&or(1)}return o};return s._n=!0,s._c=!0,s._d=!0,s}function Hn(e){const{type:t,vnode:n,proxy:s,withProxy:r,propsOptions:[i],slots:o,attrs:l,emit:c,render:f,renderCache:d,props:h,data:b,setupState:T,ctx:P,inheritAttrs:M}=e,B=fn(e);let G,z;try{if(n.shapeFlag&4){const m=r||s,L=m;G=Ae(f.call(L,m,d,h,T,b,P)),z=l}else{const m=t;G=Ae(m.length>1?m(h,{attrs:l,slots:o,emit:c}):m(h,null)),z=t.props?l:ul(l)}}catch(m){Pt.length=0,En(m,e,1),G=fe(me)}let g=G;if(z&&M!==!1){const m=Object.keys(z),{shapeFlag:L}=g;m.length&&L&7&&(i&&m.some(ds)&&(z=dl(z,i)),g=Je(g,z,!1,!0))}return n.dirs&&(g=Je(g,null,!1,!0),g.dirs=g.dirs?g.dirs.concat(n.dirs):n.dirs),n.transition&&(g.transition=n.transition),G=g,fn(B),G}const ul=e=>{let t;for(const n in e)(n==="class"||n==="style"||Vt(n))&&((t||(t={}))[n]=e[n]);return t},dl=(e,t)=>{const n={};for(const s in e)(!ds(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function hl(e,t,n){const{props:s,children:r,component:i}=e,{props:o,children:l,patchFlag:c}=t,f=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?Gs(s,o,f):!!o;if(c&8){const d=t.dynamicProps;for(let h=0;he.__isSuspense;function di(e,t){t&&t.pendingBranch?D(e)?t.effects.push(...e):t.effects.push(e):ll(e)}function Tn(e,t,n=ce,s=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{Qe();const l=Dt(n),c=xe(t,n,e,o);return l(),Ze(),c});return s?r.unshift(i):r.push(i),i}}const De=e=>(t,n=ce)=>{(!Ln||e==="sp")&&Tn(e,(...s)=>t(...s),n)},ml=De("bm"),Ct=De("m"),yl=De("bu"),_l=De("u"),hi=De("bum"),An=De("um"),bl=De("sp"),vl=De("rtg"),wl=De("rtc");function El(e,t=ce){Tn("ec",e,t)}function Le(e,t,n,s){const r=e.dirs,i=t&&t.dirs;for(let o=0;ot(o,l,void 0,i));else{const o=Object.keys(e);r=new Array(o.length);for(let l=0,c=o.length;l!!e.type.__asyncLoader;function qa(e,t,n={},s,r){if(he.isCE||he.parent&&bt(he.parent)&&he.parent.isCE)return t!=="default"&&(n.name=t),fe("slot",n,s&&s());let i=e[t];i&&i._c&&(i._d=!1),$i();const o=i&&gi(i(n)),l=ji(_e,{key:n.key||o&&o.key||`_${t}`},o||(s?s():[]),o&&e._===1?64:-2);return!r&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),i&&i._c&&(i._d=!0),l}function gi(e){return e.some(t=>pn(t)?!(t.type===me||t.type===_e&&!gi(t.children)):!0)?e:null}function Ga(e,t){const n={};for(const s in e)n[/[A-Z]/.test(s)?`on:${s}`:tn(s)]=e[s];return n}const rs=e=>e?Bi(e)?Is(e):rs(e.parent):null,Ot=ie(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=>rs(e.parent),$root:e=>rs(e.root),$emit:e=>e.emit,$options:e=>As(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,Ts(e.update)}),$nextTick:e=>e.n||(e.n=Cn.bind(e.proxy)),$watch:e=>ql.bind(e)}),jn=(e,t)=>e!==te&&!e.__isScriptSetup&&Y(e,t),Cl={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:r,props:i,accessCache:o,type:l,appContext:c}=e;let f;if(t[0]!=="$"){const T=o[t];if(T!==void 0)switch(T){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return i[t]}else{if(jn(s,t))return o[t]=1,s[t];if(r!==te&&Y(r,t))return o[t]=2,r[t];if((f=e.propsOptions[0])&&Y(f,t))return o[t]=3,i[t];if(n!==te&&Y(n,t))return o[t]=4,n[t];is&&(o[t]=0)}}const d=Ot[t];let h,b;if(d)return t==="$attrs"&&be(e.attrs,"get",""),d(e);if((h=l.__cssModules)&&(h=h[t]))return h;if(n!==te&&Y(n,t))return o[t]=4,n[t];if(b=c.config.globalProperties,Y(b,t))return b[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:i}=e;return jn(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)||jn(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 za(){return Sl().slots}function Sl(){const e=In();return e.setupContext||(e.setupContext=ki(e))}function Xs(e){return D(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let is=!0;function xl(e){const t=As(e),n=e.proxy,s=e.ctx;is=!1,t.beforeCreate&&Ys(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:o,watch:l,provide:c,inject:f,created:d,beforeMount:h,mounted:b,beforeUpdate:T,updated:P,activated:M,deactivated:B,beforeDestroy:G,beforeUnmount:z,destroyed:g,unmounted:m,render:L,renderTracked:R,renderTriggered:U,errorCaptured:V,serverPrefetch:I,expose:w,inheritAttrs:N,components:S,directives:W,filters:ne}=t;if(f&&Tl(f,s,null),o)for(const X in o){const $=o[X];k($)&&(s[X]=$.bind(n))}if(r){const X=r.call(n,n);Z(X)&&(e.data=vn(X))}if(is=!0,i)for(const X in i){const $=i[X],Fe=k($)?$.bind(n,n):k($.get)?$.get.bind(n,n):Se,Ut=!k($)&&k($.set)?$.set.bind(n):Se,et=se({get:Fe,set:Ut});Object.defineProperty(s,X,{enumerable:!0,configurable:!0,get:()=>et.value,set:Oe=>et.value=Oe})}if(l)for(const X in l)mi(l[X],s,n,X);if(c){const X=k(c)?c.call(n):c;Reflect.ownKeys(X).forEach($=>{Pl($,X[$])})}d&&Ys(d,e,"c");function H(X,$){D($)?$.forEach(Fe=>X(Fe.bind(n))):$&&X($.bind(n))}if(H(ml,h),H(Ct,b),H(yl,T),H(_l,P),H(Gl,M),H(zl,B),H(El,V),H(wl,R),H(vl,U),H(hi,z),H(An,m),H(bl,I),D(w))if(w.length){const X=e.exposed||(e.exposed={});w.forEach($=>{Object.defineProperty(X,$,{get:()=>n[$],set:Fe=>n[$]=Fe})})}else e.exposed||(e.exposed={});L&&e.render===Se&&(e.render=L),N!=null&&(e.inheritAttrs=N),S&&(e.components=S),W&&(e.directives=W)}function Tl(e,t,n=Se){D(e)&&(e=os(e));for(const s in e){const r=e[s];let i;Z(r)?"default"in r?i=vt(r.from||s,r.default,!0):i=vt(r.from||s):i=vt(r),pe(i)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[s]=i}}function Ys(e,t,n){xe(D(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function mi(e,t,n,s){const r=s.includes(".")?Ii(n,s):()=>n[s];if(re(e)){const i=t[e];k(i)&&Me(r,i)}else if(k(e))Me(r,e.bind(n));else if(Z(e))if(D(e))e.forEach(i=>mi(i,t,n,s));else{const i=k(e.handler)?e.handler.bind(n):t[e.handler];k(i)&&Me(r,i,e)}}function As(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(f=>un(c,f,o,!0)),un(c,t,o)),Z(t)&&i.set(t,c),c}function un(e,t,n,s=!1){const{mixins:r,extends:i}=t;i&&un(e,i,n,!0),r&&r.forEach(o=>un(e,o,n,!0));for(const o in t)if(!(s&&o==="expose")){const l=Al[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const Al={data:Js,props:Qs,emits:Qs,methods:Tt,computed:Tt,beforeCreate:ge,created:ge,beforeMount:ge,mounted:ge,beforeUpdate:ge,updated:ge,beforeDestroy:ge,beforeUnmount:ge,destroyed:ge,unmounted:ge,activated:ge,deactivated:ge,errorCaptured:ge,serverPrefetch:ge,components:Tt,directives:Tt,watch:Ol,provide:Js,inject:Rl};function Js(e,t){return t?e?function(){return ie(k(e)?e.call(this,this):e,k(t)?t.call(this,this):t)}:t:e}function Rl(e,t){return Tt(os(e),os(t))}function os(e){if(D(e)){const t={};for(let n=0;n1)return n&&k(t)?t.call(s&&s.proxy):t}}const _i={},bi=()=>Object.create(_i),vi=e=>Object.getPrototypeOf(e)===_i;function Ml(e,t,n,s=!1){const r={},i=bi();e.propsDefaults=Object.create(null),wi(e,t,r,i);for(const o in e.propsOptions[0])o in r||(r[o]=void 0);n?e.props=s?r:zo(r):e.type.props?e.props=r:e.props=i,e.attrs=i}function Nl(e,t,n,s){const{props:r,attrs:i,vnode:{patchFlag:o}}=e,l=J(r),[c]=e.propsOptions;let f=!1;if((s||o>0)&&!(o&16)){if(o&8){const d=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[b,T]=Ei(h,t,!0);ie(o,b),T&&l.push(...T)};!n&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}if(!i&&!c)return Z(e)&&s.set(e,gt),gt;if(D(i))for(let d=0;d-1,T[1]=M<0||P-1||Y(T,"default"))&&l.push(h)}}}const f=[o,l];return Z(e)&&s.set(e,f),f}function Zs(e){return e[0]!=="$"&&!yt(e)}function er(e){return e===null?"null":typeof e=="function"?e.name||"":typeof e=="object"&&e.constructor&&e.constructor.name||""}function tr(e,t){return er(e)===er(t)}function nr(e,t){return D(t)?t.findIndex(n=>tr(n,e)):k(t)&&tr(t,e)?0:-1}const Ci=e=>e[0]==="_"||e==="$stable",Rs=e=>D(e)?e.map(Ae):[Ae(e)],Fl=(e,t,n)=>{if(t._n)return t;const s=fl((...r)=>Rs(t(...r)),n);return s._c=!1,s},Si=(e,t,n)=>{const s=e._ctx;for(const r in e){if(Ci(r))continue;const i=e[r];if(k(i))t[r]=Fl(r,i,s);else if(i!=null){const o=Rs(i);t[r]=()=>o}}},xi=(e,t)=>{const n=Rs(t);e.slots.default=()=>n},$l=(e,t)=>{const n=e.slots=bi();if(e.vnode.shapeFlag&32){const s=t._;s?(ie(n,t),Hr(n,"_",s,!0)):Si(t,n)}else t&&xi(e,t)},Hl=(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:(ie(r,t),!n&&l===1&&delete r._):(i=!t.$stable,Si(t,r)),o=t}else t&&(xi(e,t),o={default:1});if(i)for(const l in r)!Ci(l)&&o[l]==null&&delete r[l]};function dn(e,t,n,s,r=!1){if(D(e)){e.forEach((b,T)=>dn(b,t&&(D(t)?t[T]:t),n,s,r));return}if(bt(s)&&!r)return;const i=s.shapeFlag&4?Is(s.component):s.el,o=r?null:i,{i:l,r:c}=e,f=t&&t.r,d=l.refs===te?l.refs={}:l.refs,h=l.setupState;if(f!=null&&f!==c&&(re(f)?(d[f]=null,Y(h,f)&&(h[f]=null)):pe(f)&&(f.value=null)),k(c))ze(c,l,12,[o,d]);else{const b=re(c),T=pe(c);if(b||T){const P=()=>{if(e.f){const M=b?Y(h,c)?h[c]:d[c]:c.value;r?D(M)&&hs(M,i):D(M)?M.includes(i)||M.push(i):b?(d[c]=[i],Y(h,c)&&(h[c]=d[c])):(c.value=[i],e.k&&(d[e.k]=c.value))}else b?(d[c]=o,Y(h,c)&&(h[c]=o)):T&&(c.value=o,e.k&&(d[e.k]=o))};o?(P.id=-1,ye(P,n)):P()}}}let sr=!1;const pt=()=>{sr||(console.error("Hydration completed but contains mismatches."),sr=!0)},jl=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",Vl=e=>e.namespaceURI.includes("MathML"),zt=e=>{if(jl(e))return"svg";if(Vl(e))return"mathml"},Xt=e=>e.nodeType===8;function Dl(e){const{mt:t,p:n,o:{patchProp:s,createText:r,nextSibling:i,parentNode:o,remove:l,insert:c,createComment:f}}=e,d=(g,m)=>{if(!m.hasChildNodes()){n(null,g,m),an(),m._vnode=g;return}h(m.firstChild,g,null,null,null),an(),m._vnode=g},h=(g,m,L,R,U,V=!1)=>{V=V||!!m.dynamicChildren;const I=Xt(g)&&g.data==="[",w=()=>M(g,m,L,R,U,I),{type:N,ref:S,shapeFlag:W,patchFlag:ne}=m;let oe=g.nodeType;m.el=g,ne===-2&&(V=!1,m.dynamicChildren=null);let H=null;switch(N){case wt:oe!==3?m.children===""?(c(m.el=r(""),o(g),g),H=g):H=w():(g.data!==m.children&&(pt(),g.data=m.children),H=i(g));break;case me:z(g)?(H=i(g),G(m.el=g.content.firstChild,g,L)):oe!==8||I?H=w():H=i(g);break;case Lt:if(I&&(g=i(g),oe=g.nodeType),oe===1||oe===3){H=g;const X=!m.children.length;for(let $=0;${V=V||!!m.dynamicChildren;const{type:I,props:w,patchFlag:N,shapeFlag:S,dirs:W,transition:ne}=m,oe=I==="input"||I==="option";if(oe||N!==-1){W&&Le(m,null,L,"created");let H=!1;if(z(g)){H=Ti(R,ne)&&L&&L.vnode.props&&L.vnode.props.appear;const $=g.content.firstChild;H&&ne.beforeEnter($),G($,g,L),m.el=g=$}if(S&16&&!(w&&(w.innerHTML||w.textContent))){let $=T(g.firstChild,m,g,L,R,U,V);for(;$;){pt();const Fe=$;$=$.nextSibling,l(Fe)}}else S&8&&g.textContent!==m.children&&(pt(),g.textContent=m.children);if(w)if(oe||!V||N&48)for(const $ in w)(oe&&($.endsWith("value")||$==="indeterminate")||Vt($)&&!yt($)||$[0]===".")&&s(g,$,null,w[$],void 0,void 0,L);else w.onClick&&s(g,"onClick",null,w.onClick,void 0,void 0,L);let X;(X=w&&w.onVnodeBeforeMount)&&Ce(X,L,m),W&&Le(m,null,L,"beforeMount"),((X=w&&w.onVnodeMounted)||W||H)&&di(()=>{X&&Ce(X,L,m),H&&ne.enter(g),W&&Le(m,null,L,"mounted")},R)}return g.nextSibling},T=(g,m,L,R,U,V,I)=>{I=I||!!m.dynamicChildren;const w=m.children,N=w.length;for(let S=0;S{const{slotScopeIds:I}=m;I&&(U=U?U.concat(I):I);const w=o(g),N=T(i(g),m,w,L,R,U,V);return N&&Xt(N)&&N.data==="]"?i(m.anchor=N):(pt(),c(m.anchor=f("]"),w,N),N)},M=(g,m,L,R,U,V)=>{if(pt(),m.el=null,V){const N=B(g);for(;;){const S=i(g);if(S&&S!==N)l(S);else break}}const I=i(g),w=o(g);return l(g),n(null,m,w,I,L,R,zt(w),U),I},B=(g,m="[",L="]")=>{let R=0;for(;g;)if(g=i(g),g&&Xt(g)&&(g.data===m&&R++,g.data===L)){if(R===0)return i(g);R--}return g},G=(g,m,L)=>{const R=m.parentNode;R&&R.replaceChild(g,m);let U=L;for(;U;)U.vnode.el===m&&(U.vnode.el=U.subTree.el=g),U=U.parent},z=g=>g.nodeType===1&&g.tagName.toLowerCase()==="template";return[d,h]}const ye=di;function Ul(e){return Bl(e,Dl)}function Bl(e,t){const n=jr();n.__VUE__=!0;const{insert:s,remove:r,patchProp:i,createElement:o,createText:l,createComment:c,setText:f,setElementText:d,parentNode:h,nextSibling:b,setScopeId:T=Se,insertStaticContent:P}=e,M=(a,u,p,y=null,_=null,C=null,A=void 0,E=null,x=!!u.dynamicChildren)=>{if(a===u)return;a&&!ot(a,u)&&(y=Bt(a),Oe(a,_,C,!0),a=null),u.patchFlag===-2&&(x=!1,u.dynamicChildren=null);const{type:v,ref:O,shapeFlag:j}=u;switch(v){case wt:B(a,u,p,y);break;case me:G(a,u,p,y);break;case Lt:a==null&&z(u,p,y,A);break;case _e:S(a,u,p,y,_,C,A,E,x);break;default:j&1?L(a,u,p,y,_,C,A,E,x):j&6?W(a,u,p,y,_,C,A,E,x):(j&64||j&128)&&v.process(a,u,p,y,_,C,A,E,x,dt)}O!=null&&_&&dn(O,a&&a.ref,C,u||a,!u)},B=(a,u,p,y)=>{if(a==null)s(u.el=l(u.children),p,y);else{const _=u.el=a.el;u.children!==a.children&&f(_,u.children)}},G=(a,u,p,y)=>{a==null?s(u.el=c(u.children||""),p,y):u.el=a.el},z=(a,u,p,y)=>{[a.el,a.anchor]=P(a.children,u,p,y,a.el,a.anchor)},g=({el:a,anchor:u},p,y)=>{let _;for(;a&&a!==u;)_=b(a),s(a,p,y),a=_;s(u,p,y)},m=({el:a,anchor:u})=>{let p;for(;a&&a!==u;)p=b(a),r(a),a=p;r(u)},L=(a,u,p,y,_,C,A,E,x)=>{u.type==="svg"?A="svg":u.type==="math"&&(A="mathml"),a==null?R(u,p,y,_,C,A,E,x):I(a,u,_,C,A,E,x)},R=(a,u,p,y,_,C,A,E)=>{let x,v;const{props:O,shapeFlag:j,transition:F,dirs:K}=a;if(x=a.el=o(a.type,C,O&&O.is,O),j&8?d(x,a.children):j&16&&V(a.children,x,null,y,_,Vn(a,C),A,E),K&&Le(a,null,y,"created"),U(x,a,a.scopeId,A,y),O){for(const ee in O)ee!=="value"&&!yt(ee)&&i(x,ee,null,O[ee],C,a.children,y,_,$e);"value"in O&&i(x,"value",null,O.value,C),(v=O.onVnodeBeforeMount)&&Ce(v,y,a)}K&&Le(a,null,y,"beforeMount");const q=Ti(_,F);q&&F.beforeEnter(x),s(x,u,p),((v=O&&O.onVnodeMounted)||q||K)&&ye(()=>{v&&Ce(v,y,a),q&&F.enter(x),K&&Le(a,null,y,"mounted")},_)},U=(a,u,p,y,_)=>{if(p&&T(a,p),y)for(let C=0;C{for(let v=x;v{const E=u.el=a.el;let{patchFlag:x,dynamicChildren:v,dirs:O}=u;x|=a.patchFlag&16;const j=a.props||te,F=u.props||te;let K;if(p&&tt(p,!1),(K=F.onVnodeBeforeUpdate)&&Ce(K,p,u,a),O&&Le(u,a,p,"beforeUpdate"),p&&tt(p,!0),v?w(a.dynamicChildren,v,E,p,y,Vn(u,_),C):A||$(a,u,E,null,p,y,Vn(u,_),C,!1),x>0){if(x&16)N(E,u,j,F,p,y,_);else if(x&2&&j.class!==F.class&&i(E,"class",null,F.class,_),x&4&&i(E,"style",j.style,F.style,_),x&8){const q=u.dynamicProps;for(let ee=0;ee{K&&Ce(K,p,u,a),O&&Le(u,a,p,"updated")},y)},w=(a,u,p,y,_,C,A)=>{for(let E=0;E{if(p!==y){if(p!==te)for(const E in p)!yt(E)&&!(E in y)&&i(a,E,p[E],null,A,u.children,_,C,$e);for(const E in y){if(yt(E))continue;const x=y[E],v=p[E];x!==v&&E!=="value"&&i(a,E,v,x,A,u.children,_,C,$e)}"value"in y&&i(a,"value",p.value,y.value,A)}},S=(a,u,p,y,_,C,A,E,x)=>{const v=u.el=a?a.el:l(""),O=u.anchor=a?a.anchor:l("");let{patchFlag:j,dynamicChildren:F,slotScopeIds:K}=u;K&&(E=E?E.concat(K):K),a==null?(s(v,p,y),s(O,p,y),V(u.children||[],p,O,_,C,A,E,x)):j>0&&j&64&&F&&a.dynamicChildren?(w(a.dynamicChildren,F,p,_,C,A,E),(u.key!=null||_&&u===_.subTree)&&Ai(a,u,!0)):$(a,u,p,O,_,C,A,E,x)},W=(a,u,p,y,_,C,A,E,x)=>{u.slotScopeIds=E,a==null?u.shapeFlag&512?_.ctx.activate(u,p,y,A,x):ne(u,p,y,_,C,A,x):oe(a,u,x)},ne=(a,u,p,y,_,C,A)=>{const E=a.component=oc(a,y,_);if(On(a)&&(E.ctx.renderer=dt),lc(E),E.asyncDep){if(_&&_.registerDep(E,H,A),!a.el){const x=E.subTree=fe(me);G(null,x,u,p)}}else H(E,a,u,p,_,C,A)},oe=(a,u,p)=>{const y=u.component=a.component;if(hl(a,u,p))if(y.asyncDep&&!y.asyncResolved){X(y,u,p);return}else y.next=u,ol(y.update),y.effect.dirty=!0,y.update();else u.el=a.el,y.vnode=u},H=(a,u,p,y,_,C,A)=>{const E=()=>{if(a.isMounted){let{next:O,bu:j,u:F,parent:K,vnode:q}=a;{const ht=Ri(a);if(ht){O&&(O.el=q.el,X(a,O,A)),ht.asyncDep.then(()=>{a.isUnmounted||E()});return}}let ee=O,Q;tt(a,!1),O?(O.el=q.el,X(a,O,A)):O=q,j&&Fn(j),(Q=O.props&&O.props.onVnodeBeforeUpdate)&&Ce(Q,K,O,q),tt(a,!0);const le=Hn(a),Te=a.subTree;a.subTree=le,M(Te,le,h(Te.el),Bt(Te),a,_,C),O.el=le.el,ee===null&&pl(a,le.el),F&&ye(F,_),(Q=O.props&&O.props.onVnodeUpdated)&&ye(()=>Ce(Q,K,O,q),_)}else{let O;const{el:j,props:F}=u,{bm:K,m:q,parent:ee}=a,Q=bt(u);if(tt(a,!1),K&&Fn(K),!Q&&(O=F&&F.onVnodeBeforeMount)&&Ce(O,ee,u),tt(a,!0),j&&Nn){const le=()=>{a.subTree=Hn(a),Nn(j,a.subTree,a,_,null)};Q?u.type.__asyncLoader().then(()=>!a.isUnmounted&&le()):le()}else{const le=a.subTree=Hn(a);M(null,le,p,y,a,_,C),u.el=le.el}if(q&&ye(q,_),!Q&&(O=F&&F.onVnodeMounted)){const le=u;ye(()=>Ce(O,ee,le),_)}(u.shapeFlag&256||ee&&bt(ee.vnode)&&ee.vnode.shapeFlag&256)&&a.a&&ye(a.a,_),a.isMounted=!0,u=p=y=null}},x=a.effect=new ys(E,Se,()=>Ts(v),a.scope),v=a.update=()=>{x.dirty&&x.run()};v.id=a.uid,tt(a,!0),v()},X=(a,u,p)=>{u.component=a;const y=a.vnode.props;a.vnode=u,a.next=null,Nl(a,u.props,y,p),Hl(a,u.children,p),Qe(),qs(a),Ze()},$=(a,u,p,y,_,C,A,E,x=!1)=>{const v=a&&a.children,O=a?a.shapeFlag:0,j=u.children,{patchFlag:F,shapeFlag:K}=u;if(F>0){if(F&128){Ut(v,j,p,y,_,C,A,E,x);return}else if(F&256){Fe(v,j,p,y,_,C,A,E,x);return}}K&8?(O&16&&$e(v,_,C),j!==v&&d(p,j)):O&16?K&16?Ut(v,j,p,y,_,C,A,E,x):$e(v,_,C,!0):(O&8&&d(p,""),K&16&&V(j,p,y,_,C,A,E,x))},Fe=(a,u,p,y,_,C,A,E,x)=>{a=a||gt,u=u||gt;const v=a.length,O=u.length,j=Math.min(v,O);let F;for(F=0;FO?$e(a,_,C,!0,!1,j):V(u,p,y,_,C,A,E,x,j)},Ut=(a,u,p,y,_,C,A,E,x)=>{let v=0;const O=u.length;let j=a.length-1,F=O-1;for(;v<=j&&v<=F;){const K=a[v],q=u[v]=x?qe(u[v]):Ae(u[v]);if(ot(K,q))M(K,q,p,null,_,C,A,E,x);else break;v++}for(;v<=j&&v<=F;){const K=a[j],q=u[F]=x?qe(u[F]):Ae(u[F]);if(ot(K,q))M(K,q,p,null,_,C,A,E,x);else break;j--,F--}if(v>j){if(v<=F){const K=F+1,q=KF)for(;v<=j;)Oe(a[v],_,C,!0),v++;else{const K=v,q=v,ee=new Map;for(v=q;v<=F;v++){const ve=u[v]=x?qe(u[v]):Ae(u[v]);ve.key!=null&&ee.set(ve.key,v)}let Q,le=0;const Te=F-q+1;let ht=!1,Fs=0;const St=new Array(Te);for(v=0;v=Te){Oe(ve,_,C,!0);continue}let Ie;if(ve.key!=null)Ie=ee.get(ve.key);else for(Q=q;Q<=F;Q++)if(St[Q-q]===0&&ot(ve,u[Q])){Ie=Q;break}Ie===void 0?Oe(ve,_,C,!0):(St[Ie-q]=v+1,Ie>=Fs?Fs=Ie:ht=!0,M(ve,u[Ie],p,null,_,C,A,E,x),le++)}const $s=ht?Kl(St):gt;for(Q=$s.length-1,v=Te-1;v>=0;v--){const ve=q+v,Ie=u[ve],Hs=ve+1{const{el:C,type:A,transition:E,children:x,shapeFlag:v}=a;if(v&6){et(a.component.subTree,u,p,y);return}if(v&128){a.suspense.move(u,p,y);return}if(v&64){A.move(a,u,p,dt);return}if(A===_e){s(C,u,p);for(let j=0;jE.enter(C),_);else{const{leave:j,delayLeave:F,afterLeave:K}=E,q=()=>s(C,u,p),ee=()=>{j(C,()=>{q(),K&&K()})};F?F(C,q,ee):ee()}else s(C,u,p)},Oe=(a,u,p,y=!1,_=!1)=>{const{type:C,props:A,ref:E,children:x,dynamicChildren:v,shapeFlag:O,patchFlag:j,dirs:F,memoIndex:K}=a;if(E!=null&&dn(E,null,p,a,!0),K!=null&&(u.renderCache[K]=void 0),O&256){u.ctx.deactivate(a);return}const q=O&1&&F,ee=!bt(a);let Q;if(ee&&(Q=A&&A.onVnodeBeforeUnmount)&&Ce(Q,u,a),O&6)fo(a.component,p,y);else{if(O&128){a.suspense.unmount(p,y);return}q&&Le(a,null,u,"beforeUnmount"),O&64?a.type.remove(a,u,p,_,dt,y):v&&(C!==_e||j>0&&j&64)?$e(v,u,p,!1,!0):(C===_e&&j&384||!_&&O&16)&&$e(x,u,p),y&&Ms(a)}(ee&&(Q=A&&A.onVnodeUnmounted)||q)&&ye(()=>{Q&&Ce(Q,u,a),q&&Le(a,null,u,"unmounted")},p)},Ms=a=>{const{type:u,el:p,anchor:y,transition:_}=a;if(u===_e){ao(p,y);return}if(u===Lt){m(a);return}const C=()=>{r(p),_&&!_.persisted&&_.afterLeave&&_.afterLeave()};if(a.shapeFlag&1&&_&&!_.persisted){const{leave:A,delayLeave:E}=_,x=()=>A(p,C);E?E(a.el,C,x):x()}else C()},ao=(a,u)=>{let p;for(;a!==u;)p=b(a),r(a),a=p;r(u)},fo=(a,u,p)=>{const{bum:y,scope:_,update:C,subTree:A,um:E,m:x,a:v}=a;rr(x),rr(v),y&&Fn(y),_.stop(),C&&(C.active=!1,Oe(A,a,u,p)),E&&ye(E,u),ye(()=>{a.isUnmounted=!0},u),u&&u.pendingBranch&&!u.isUnmounted&&a.asyncDep&&!a.asyncResolved&&a.suspenseId===u.pendingId&&(u.deps--,u.deps===0&&u.resolve())},$e=(a,u,p,y=!1,_=!1,C=0)=>{for(let A=C;Aa.shapeFlag&6?Bt(a.component.subTree):a.shapeFlag&128?a.suspense.next():b(a.anchor||a.el);let Pn=!1;const Ns=(a,u,p)=>{a==null?u._vnode&&Oe(u._vnode,null,null,!0):M(u._vnode||null,a,u,null,null,null,p),Pn||(Pn=!0,qs(),an(),Pn=!1),u._vnode=a},dt={p:M,um:Oe,m:et,r:Ms,mt:ne,mc:V,pc:$,pbc:w,n:Bt,o:e};let Mn,Nn;return t&&([Mn,Nn]=t(dt)),{render:Ns,hydrate:Mn,createApp:Ll(Ns,Mn)}}function Vn({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function tt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Ti(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Ai(e,t,n=!1){const s=e.children,r=t.children;if(D(s)&&D(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}function Ri(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ri(t)}function rr(e){if(e)for(let t=0;tvt(kl);function Oi(e,t){return Rn(e,null,t)}function Xa(e,t){return Rn(e,null,{flush:"post"})}const Yt={};function Me(e,t,n){return Rn(e,t,n)}function Rn(e,t,{immediate:n,deep:s,flush:r,once:i,onTrack:o,onTrigger:l}=te){if(t&&i){const R=t;t=(...U)=>{R(...U),L()}}const c=ce,f=R=>s===!0?R:it(R,s===!1?1:void 0);let d,h=!1,b=!1;if(pe(e)?(d=()=>e.value,h=cn(e)):At(e)?(d=()=>f(e),h=!0):D(e)?(b=!0,h=e.some(R=>At(R)||cn(R)),d=()=>e.map(R=>{if(pe(R))return R.value;if(At(R))return f(R);if(k(R))return ze(R,c,2)})):k(e)?t?d=()=>ze(e,c,2):d=()=>(T&&T(),xe(e,c,3,[P])):d=Se,t&&s){const R=d;d=()=>it(R())}let T,P=R=>{T=g.onStop=()=>{ze(R,c,4),T=g.onStop=void 0}},M;if(Ln)if(P=Se,t?n&&xe(t,c,3,[d(),b?[]:void 0,P]):d(),r==="sync"){const R=Wl();M=R.__watcherHandles||(R.__watcherHandles=[])}else return Se;let B=b?new Array(e.length).fill(Yt):Yt;const G=()=>{if(!(!g.active||!g.dirty))if(t){const R=g.run();(s||h||(b?R.some((U,V)=>Ye(U,B[V])):Ye(R,B)))&&(T&&T(),xe(t,c,3,[R,B===Yt?void 0:b&&B[0]===Yt?[]:B,P]),B=R)}else g.run()};G.allowRecurse=!!t;let z;r==="sync"?z=G:r==="post"?z=()=>ye(G,c&&c.suspense):(G.pre=!0,c&&(G.id=c.uid),z=()=>Ts(G));const g=new ys(d,Se,z),m=Ur(),L=()=>{g.stop(),m&&hs(m.effects,g)};return t?n?G():B=g.run():r==="post"?ye(g.run.bind(g),c&&c.suspense):g.run(),M&&M.push(L),L}function ql(e,t,n){const s=this.proxy,r=re(e)?e.includes(".")?Ii(s,e):()=>s[e]:e.bind(s,s);let i;k(t)?i=t:(i=t.handler,n=t);const o=Dt(this),l=Rn(r,i.bind(s),n);return o(),l}function Ii(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;r{it(s,t,n)});else if($r(e)){for(const s in e)it(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&it(e[s],t,n)}return e}const On=e=>e.type.__isKeepAlive;function Gl(e,t){Li(e,"a",t)}function zl(e,t){Li(e,"da",t)}function Li(e,t,n=ce){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;)On(r.parent.vnode)&&Xl(s,t,n,r),r=r.parent}}function Xl(e,t,n,s){const r=Tn(t,e,s,!0);An(()=>{hs(s[t],r)},n)}const We=Symbol("_leaveCb"),Jt=Symbol("_enterCb");function Yl(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Ct(()=>{e.isMounted=!0}),hi(()=>{e.isUnmounting=!0}),e}const Ee=[Function,Array],Pi={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Ee,onEnter:Ee,onAfterEnter:Ee,onEnterCancelled:Ee,onBeforeLeave:Ee,onLeave:Ee,onAfterLeave:Ee,onLeaveCancelled:Ee,onBeforeAppear:Ee,onAppear:Ee,onAfterAppear:Ee,onAppearCancelled:Ee},Mi=e=>{const t=e.subTree;return t.component?Mi(t.component):t},Jl={name:"BaseTransition",props:Pi,setup(e,{slots:t}){const n=In(),s=Yl();return()=>{const r=t.default&&Fi(t.default(),!0);if(!r||!r.length)return;let i=r[0];if(r.length>1){for(const b of r)if(b.type!==me){i=b;break}}const o=J(e),{mode:l}=o;if(s.isLeaving)return Dn(i);const c=ir(i);if(!c)return Dn(i);let f=cs(c,o,s,n,b=>f=b);hn(c,f);const d=n.subTree,h=d&&ir(d);if(h&&h.type!==me&&!ot(c,h)&&Mi(n).type!==me){const b=cs(h,o,s,n);if(hn(h,b),l==="out-in"&&c.type!==me)return s.isLeaving=!0,b.afterLeave=()=>{s.isLeaving=!1,n.update.active!==!1&&(n.effect.dirty=!0,n.update())},Dn(i);l==="in-out"&&c.type!==me&&(b.delayLeave=(T,P,M)=>{const B=Ni(s,h);B[String(h.key)]=h,T[We]=()=>{P(),T[We]=void 0,delete f.delayedLeave},f.delayedLeave=M})}return i}}},Ql=Jl;function Ni(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 cs(e,t,n,s,r){const{appear:i,mode:o,persisted:l=!1,onBeforeEnter:c,onEnter:f,onAfterEnter:d,onEnterCancelled:h,onBeforeLeave:b,onLeave:T,onAfterLeave:P,onLeaveCancelled:M,onBeforeAppear:B,onAppear:G,onAfterAppear:z,onAppearCancelled:g}=t,m=String(e.key),L=Ni(n,e),R=(I,w)=>{I&&xe(I,s,9,w)},U=(I,w)=>{const N=w[1];R(I,w),D(I)?I.every(S=>S.length<=1)&&N():I.length<=1&&N()},V={mode:o,persisted:l,beforeEnter(I){let w=c;if(!n.isMounted)if(i)w=B||c;else return;I[We]&&I[We](!0);const N=L[m];N&&ot(e,N)&&N.el[We]&&N.el[We](),R(w,[I])},enter(I){let w=f,N=d,S=h;if(!n.isMounted)if(i)w=G||f,N=z||d,S=g||h;else return;let W=!1;const ne=I[Jt]=oe=>{W||(W=!0,oe?R(S,[I]):R(N,[I]),V.delayedLeave&&V.delayedLeave(),I[Jt]=void 0)};w?U(w,[I,ne]):ne()},leave(I,w){const N=String(e.key);if(I[Jt]&&I[Jt](!0),n.isUnmounting)return w();R(b,[I]);let S=!1;const W=I[We]=ne=>{S||(S=!0,w(),ne?R(M,[I]):R(P,[I]),I[We]=void 0,L[N]===e&&delete L[N])};L[N]=e,T?U(T,[I,W]):W()},clone(I){const w=cs(I,t,n,s,r);return r&&r(w),w}};return V}function Dn(e){if(On(e))return e=Je(e),e.children=null,e}function ir(e){if(!On(e))return e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&k(n.default))return n.default()}}function hn(e,t){e.shapeFlag&6&&e.component?hn(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 Fi(e,t=!1,n){let s=[],r=0;for(let i=0;i1)for(let i=0;ie.__isTeleport,_e=Symbol.for("v-fgt"),wt=Symbol.for("v-txt"),me=Symbol.for("v-cmt"),Lt=Symbol.for("v-stc"),Pt=[];let Re=null;function $i(e=!1){Pt.push(Re=e?null:[])}function ec(){Pt.pop(),Re=Pt[Pt.length-1]||null}let Ht=1;function or(e){Ht+=e}function Hi(e){return e.dynamicChildren=Ht>0?Re||gt:null,ec(),Ht>0&&Re&&Re.push(e),e}function Ya(e,t,n,s,r,i){return Hi(Di(e,t,n,s,r,i,!0))}function ji(e,t,n,s,r){return Hi(fe(e,t,n,s,r,!0))}function pn(e){return e?e.__v_isVNode===!0:!1}function ot(e,t){return e.type===t.type&&e.key===t.key}const Vi=({key:e})=>e??null,sn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?re(e)||pe(e)||k(e)?{i:he,r:e,k:t,f:!!n}:e:null);function Di(e,t=null,n=null,s=0,r=null,i=e===_e?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Vi(t),ref:t&&sn(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:he};return l?(Os(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=re(n)?8:16),Ht>0&&!o&&Re&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&Re.push(c),c}const fe=tc;function tc(e,t=null,n=null,s=0,r=null,i=!1){if((!e||e===fi)&&(e=me),pn(e)){const l=Je(e,t,!0);return n&&Os(l,n),Ht>0&&!i&&Re&&(l.shapeFlag&6?Re[Re.indexOf(e)]=l:Re.push(l)),l.patchFlag=-2,l}if(uc(e)&&(e=e.__vccOpts),t){t=nc(t);let{class:l,style:c}=t;l&&!re(l)&&(t.class=ms(l)),Z(c)&&(Zr(c)&&!D(c)&&(c=ie({},c)),t.style=gs(c))}const o=re(e)?1:gl(e)?128:Zl(e)?64:Z(e)?4:k(e)?2:0;return Di(e,t,n,s,r,o,i,!0)}function nc(e){return e?Zr(e)||vi(e)?ie({},e):e:null}function Je(e,t,n=!1,s=!1){const{props:r,ref:i,patchFlag:o,children:l,transition:c}=e,f=t?sc(r||{},t):r,d={__v_isVNode:!0,__v_skip:!0,type:e.type,props:f,key:f&&Vi(f),ref:t&&t.ref?n&&i?D(i)?i.concat(sn(t)):[i,sn(t)]:sn(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==_e?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Je(e.ssContent),ssFallback:e.ssFallback&&Je(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&s&&hn(d,c.clone(d)),d}function Ui(e=" ",t=0){return fe(wt,null,e,t)}function Ja(e,t){const n=fe(Lt,null,e);return n.staticCount=t,n}function Qa(e="",t=!1){return t?($i(),ji(me,null,e)):fe(me,null,e)}function Ae(e){return e==null||typeof e=="boolean"?fe(me):D(e)?fe(_e,null,e.slice()):typeof e=="object"?qe(e):fe(wt,null,String(e))}function qe(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Je(e)}function Os(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(D(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),Os(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!vi(t)?t._ctx=he:r===3&&he&&(he.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else k(t)?(t={default:t,_ctx:he},n=32):(t=String(t),s&64?(n=16,t=[Ui(t)]):n=8);e.children=t,e.shapeFlag|=n}function sc(...e){const t={};for(let n=0;nce||he;let gn,as;{const e=jr(),t=(n,s)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(s),i=>{r.length>1?r.forEach(o=>o(i)):r[0](i)}};gn=t("__VUE_INSTANCE_SETTERS__",n=>ce=n),as=t("__VUE_SSR_SETTERS__",n=>Ln=n)}const Dt=e=>{const t=ce;return gn(e),e.scope.on(),()=>{e.scope.off(),gn(t)}},lr=()=>{ce&&ce.scope.off(),gn(null)};function Bi(e){return e.vnode.shapeFlag&4}let Ln=!1;function lc(e,t=!1){t&&as(t);const{props:n,children:s}=e.vnode,r=Bi(e);Ml(e,n,r,t),$l(e,s);const i=r?cc(e,t):void 0;return t&&as(!1),i}function cc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Cl);const{setup:s}=n;if(s){const r=e.setupContext=s.length>1?ki(e):null,i=Dt(e);Qe();const o=ze(s,e,0,[e.props,r]);if(Ze(),i(),Nr(o)){if(o.then(lr,lr),t)return o.then(l=>{cr(e,l,t)}).catch(l=>{En(l,e,0)});e.asyncDep=o}else cr(e,o,t)}else Ki(e,t)}function cr(e,t,n){k(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Z(t)&&(e.setupState=ri(t)),Ki(e,n)}let ar;function Ki(e,t,n){const s=e.type;if(!e.render){if(!t&&ar&&!s.render){const r=s.template||As(e).template;if(r){const{isCustomElement:i,compilerOptions:o}=e.appContext.config,{delimiters:l,compilerOptions:c}=s,f=ie(ie({isCustomElement:i,delimiters:l},o),c);s.render=ar(r,f)}}e.render=s.render||Se}{const r=Dt(e);Qe();try{xl(e)}finally{Ze(),r()}}}const ac={get(e,t){return be(e,"get",""),e[t]}};function ki(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,ac),slots:e.slots,emit:e.emit,expose:t}}function Is(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ri(nn(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}})):e.proxy}function fc(e,t=!0){return k(e)?e.displayName||e.name:e.name||t&&e.__name}function uc(e){return k(e)&&"__vccOpts"in e}const se=(e,t)=>Xo(e,t,Ln);function fs(e,t,n){const s=arguments.length;return s===2?Z(t)&&!D(t)?pn(t)?fe(e,null,[t]):fe(e,t):fe(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&pn(n)&&(n=[n]),fe(e,t,n))}const dc="3.4.28";/** +* @vue/runtime-dom v3.4.28 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const hc="http://www.w3.org/2000/svg",pc="http://www.w3.org/1998/Math/MathML",He=typeof document<"u"?document:null,fr=He&&He.createElement("template"),gc={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==="svg"?He.createElementNS(hc,e):t==="mathml"?He.createElementNS(pc,e):n?He.createElement(e,{is:n}):He.createElement(e);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>He.createTextNode(e),createComment:e=>He.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>He.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{fr.innerHTML=s==="svg"?`${e}`:s==="mathml"?`${e}`:e;const l=fr.content;if(s==="svg"||s==="mathml"){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]}},Be="transition",xt="animation",jt=Symbol("_vtc"),Wi=(e,{slots:t})=>fs(Ql,mc(e),t);Wi.displayName="Transition";const qi={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};Wi.props=ie({},Pi,qi);const nt=(e,t=[])=>{D(e)?e.forEach(n=>n(...t)):e&&e(...t)},ur=e=>e?D(e)?e.some(t=>t.length>1):e.length>1:!1;function mc(e){const t={};for(const S in e)S in qi||(t[S]=e[S]);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:f=o,appearToClass:d=l,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:b=`${n}-leave-active`,leaveToClass:T=`${n}-leave-to`}=e,P=yc(r),M=P&&P[0],B=P&&P[1],{onBeforeEnter:G,onEnter:z,onEnterCancelled:g,onLeave:m,onLeaveCancelled:L,onBeforeAppear:R=G,onAppear:U=z,onAppearCancelled:V=g}=t,I=(S,W,ne)=>{st(S,W?d:l),st(S,W?f:o),ne&&ne()},w=(S,W)=>{S._isLeaving=!1,st(S,h),st(S,T),st(S,b),W&&W()},N=S=>(W,ne)=>{const oe=S?U:z,H=()=>I(W,S,ne);nt(oe,[W,H]),dr(()=>{st(W,S?c:i),Ke(W,S?d:l),ur(oe)||hr(W,s,M,H)})};return ie(t,{onBeforeEnter(S){nt(G,[S]),Ke(S,i),Ke(S,o)},onBeforeAppear(S){nt(R,[S]),Ke(S,c),Ke(S,f)},onEnter:N(!1),onAppear:N(!0),onLeave(S,W){S._isLeaving=!0;const ne=()=>w(S,W);Ke(S,h),Ke(S,b),vc(),dr(()=>{S._isLeaving&&(st(S,h),Ke(S,T),ur(m)||hr(S,s,B,ne))}),nt(m,[S,ne])},onEnterCancelled(S){I(S,!1),nt(g,[S])},onAppearCancelled(S){I(S,!0),nt(V,[S])},onLeaveCancelled(S){w(S),nt(L,[S])}})}function yc(e){if(e==null)return null;if(Z(e))return[Un(e.enter),Un(e.leave)];{const t=Un(e);return[t,t]}}function Un(e){return _o(e)}function Ke(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[jt]||(e[jt]=new Set)).add(t)}function st(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const n=e[jt];n&&(n.delete(t),n.size||(e[jt]=void 0))}function dr(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let _c=0;function hr(e,t,n,s){const r=e._endId=++_c,i=()=>{r===e._endId&&s()};if(n)return setTimeout(i,n);const{type:o,timeout:l,propCount:c}=bc(e,t);if(!o)return s();const f=o+"end";let d=0;const h=()=>{e.removeEventListener(f,b),i()},b=T=>{T.target===e&&++d>=c&&h()};setTimeout(()=>{d(n[P]||"").split(", "),r=s(`${Be}Delay`),i=s(`${Be}Duration`),o=pr(r,i),l=s(`${xt}Delay`),c=s(`${xt}Duration`),f=pr(l,c);let d=null,h=0,b=0;t===Be?o>0&&(d=Be,h=o,b=i.length):t===xt?f>0&&(d=xt,h=f,b=c.length):(h=Math.max(o,f),d=h>0?o>f?Be:xt:null,b=d?d===Be?i.length:c.length:0);const T=d===Be&&/\b(transform|all)(,|$)/.test(s(`${Be}Property`).toString());return{type:d,timeout:h,propCount:b,hasTransform:T}}function pr(e,t){for(;e.lengthgr(n)+gr(e[s])))}function gr(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function vc(){return document.body.offsetHeight}function wc(e,t,n){const s=e[jt];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const mr=Symbol("_vod"),Ec=Symbol("_vsh"),Cc=Symbol(""),Sc=/(^|;)\s*display\s*:/;function xc(e,t,n){const s=e.style,r=re(n);let i=!1;if(n&&!r){if(t)if(re(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();n[l]==null&&rn(s,l,"")}else for(const o in t)n[o]==null&&rn(s,o,"");for(const o in n)o==="display"&&(i=!0),rn(s,o,n[o])}else if(r){if(t!==n){const o=s[Cc];o&&(n+=";"+o),s.cssText=n,i=Sc.test(n)}}else t&&e.removeAttribute("style");mr in e&&(e[mr]=i?s.display:"",e[Ec]&&(s.display="none"))}const yr=/\s*!important$/;function rn(e,t,n){if(D(n))n.forEach(s=>rn(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=Tc(e,t);yr.test(n)?e.setProperty(ut(s),n.replace(yr,""),"important"):e[s]=n}}const _r=["Webkit","Moz","ms"],Bn={};function Tc(e,t){const n=Bn[t];if(n)return n;let s=Ne(t);if(s!=="filter"&&s in e)return Bn[t]=s;s=_n(s);for(let r=0;r<_r.length;r++){const i=_r[r]+s;if(i in e)return Bn[t]=i}return t}const br="http://www.w3.org/1999/xlink";function vr(e,t,n,s,r,i=So(t)){s&&t.startsWith("xlink:")?n==null?e.removeAttributeNS(br,t.slice(6,t.length)):e.setAttributeNS(br,t,n):n==null||i&&!Vr(n)?e.removeAttribute(t):e.setAttribute(t,i?"":String(n))}function Ac(e,t,n,s,r,i,o){if(t==="innerHTML"||t==="textContent"){s&&o(s,r,i),e[t]=n??"";return}const l=e.tagName;if(t==="value"&&l!=="PROGRESS"&&!l.includes("-")){const f=l==="OPTION"?e.getAttribute("value")||"":e.value,d=n==null?"":String(n);(f!==d||!("_value"in e))&&(e.value=d),n==null&&e.removeAttribute(t),e._value=n;return}let c=!1;if(n===""||n==null){const f=typeof e[t];f==="boolean"?n=Vr(n):n==null&&f==="string"?(n="",c=!0):f==="number"&&(n=0,c=!0)}try{e[t]=n}catch{}c&&e.removeAttribute(t)}function Rc(e,t,n,s){e.addEventListener(t,n,s)}function Oc(e,t,n,s){e.removeEventListener(t,n,s)}const wr=Symbol("_vei");function Ic(e,t,n,s,r=null){const i=e[wr]||(e[wr]={}),o=i[t];if(s&&o)o.value=s;else{const[l,c]=Lc(t);if(s){const f=i[t]=Nc(s,r);Rc(e,l,f,c)}else o&&(Oc(e,l,o,c),i[t]=void 0)}}const Er=/(?:Once|Passive|Capture)$/;function Lc(e){let t;if(Er.test(e)){t={};let s;for(;s=e.match(Er);)e=e.slice(0,e.length-s[0].length),t[s[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):ut(e.slice(2)),t]}let Kn=0;const Pc=Promise.resolve(),Mc=()=>Kn||(Pc.then(()=>Kn=0),Kn=Date.now());function Nc(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;xe(Fc(s,n.value),t,5,[s])};return n.value=e,n.attached=Mc(),n}function Fc(e,t){if(D(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 Cr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,$c=(e,t,n,s,r,i,o,l,c)=>{const f=r==="svg";t==="class"?wc(e,s,f):t==="style"?xc(e,n,s):Vt(t)?ds(t)||Ic(e,t,n,s,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Hc(e,t,s,f))?(Ac(e,t,s,i,o,l,c),(t==="value"||t==="checked"||t==="selected")&&vr(e,t,s,f,o,t!=="value")):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),vr(e,t,s,f))};function Hc(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&Cr(t)&&k(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return Cr(t)&&re(n)?!1:t in e}const jc=["ctrl","shift","alt","meta"],Vc={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)=>jc.some(n=>e[`${n}Key`]&&!t.includes(n))},Za=(e,t)=>{const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=(r,...i)=>{for(let o=0;o{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=r=>{if(!("key"in r))return;const i=ut(r.key);if(t.some(o=>o===i||Dc[o]===i))return e(r)})},Uc=ie({patchProp:$c},gc);let kn,Sr=!1;function Bc(){return kn=Sr?kn:Ul(Uc),Sr=!0,kn}const tf=(...e)=>{const t=Bc().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=kc(s);if(r)return n(r,!0,Kc(r))},t};function Kc(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function kc(e){return re(e)?document.querySelector(e):e}const nf=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},Wc="modulepreload",qc=function(e){return"/docs/"+e},xr={},sf=function(t,n,s){let r=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),o=(i==null?void 0:i.nonce)||(i==null?void 0:i.getAttribute("nonce"));r=Promise.all(n.map(l=>{if(l=qc(l),l in xr)return;xr[l]=!0;const c=l.endsWith(".css"),f=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${f}`))return;const d=document.createElement("link");if(d.rel=c?"stylesheet":Wc,c||(d.as="script",d.crossOrigin=""),d.href=l,o&&d.setAttribute("nonce",o),document.head.appendChild(d),c)return new Promise((h,b)=>{d.addEventListener("load",h),d.addEventListener("error",()=>b(new Error(`Unable to preload CSS for ${l}`)))})}))}return r.then(()=>t()).catch(i=>{const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=i,window.dispatchEvent(o),!o.defaultPrevented)throw i})},Gc=window.__VP_SITE_DATA__;function Ls(e){return Ur()?(Ao(e),!0):!1}function Xe(e){return typeof e=="function"?e():si(e)}const Gi=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const zc=Object.prototype.toString,Xc=e=>zc.call(e)==="[object Object]",zi=()=>{},Tr=Yc();function Yc(){var e,t;return Gi&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function Jc(e,t){function n(...s){return new Promise((r,i)=>{Promise.resolve(e(()=>t.apply(this,s),{fn:t,thisArg:this,args:s})).then(r).catch(i)})}return n}const Xi=e=>e();function Qc(e=Xi){const t=ae(!0);function n(){t.value=!1}function s(){t.value=!0}const r=(...i)=>{t.value&&e(...i)};return{isActive:wn(t),pause:n,resume:s,eventFilter:r}}function Zc(e){return In()}function Yi(...e){if(e.length!==1)return nl(...e);const t=e[0];return typeof t=="function"?wn(Zo(()=>({get:t,set:zi}))):ae(t)}function ea(e,t,n={}){const{eventFilter:s=Xi,...r}=n;return Me(e,Jc(s,t),r)}function ta(e,t,n={}){const{eventFilter:s,...r}=n,{eventFilter:i,pause:o,resume:l,isActive:c}=Qc(s);return{stop:ea(e,t,{...r,eventFilter:i}),pause:o,resume:l,isActive:c}}function Ps(e,t=!0,n){Zc()?Ct(e,n):t?e():Cn(e)}function Ji(e){var t;const n=Xe(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Ve=Gi?window:void 0;function Et(...e){let t,n,s,r;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,s,r]=e,t=Ve):[t,n,s,r]=e,!t)return zi;Array.isArray(n)||(n=[n]),Array.isArray(s)||(s=[s]);const i=[],o=()=>{i.forEach(d=>d()),i.length=0},l=(d,h,b,T)=>(d.addEventListener(h,b,T),()=>d.removeEventListener(h,b,T)),c=Me(()=>[Ji(t),Xe(r)],([d,h])=>{if(o(),!d)return;const b=Xc(h)?{...h}:h;i.push(...n.flatMap(T=>s.map(P=>l(d,T,P,b))))},{immediate:!0,flush:"post"}),f=()=>{c(),o()};return Ls(f),f}function na(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function rf(...e){let t,n,s={};e.length===3?(t=e[0],n=e[1],s=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],s=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:r=Ve,eventName:i="keydown",passive:o=!1,dedupe:l=!1}=s,c=na(t);return Et(r,i,d=>{d.repeat&&Xe(l)||c(d)&&n(d)},o)}function sa(){const e=ae(!1),t=In();return t&&Ct(()=>{e.value=!0},t),e}function ra(e){const t=sa();return se(()=>(t.value,!!e()))}function Qi(e,t={}){const{window:n=Ve}=t,s=ra(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let r;const i=ae(!1),o=f=>{i.value=f.matches},l=()=>{r&&("removeEventListener"in r?r.removeEventListener("change",o):r.removeListener(o))},c=Oi(()=>{s.value&&(l(),r=n.matchMedia(Xe(e)),"addEventListener"in r?r.addEventListener("change",o):r.addListener(o),i.value=r.matches)});return Ls(()=>{c(),l(),r=void 0}),i}const Qt=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Zt="__vueuse_ssr_handlers__",ia=oa();function oa(){return Zt in Qt||(Qt[Zt]=Qt[Zt]||{}),Qt[Zt]}function Zi(e,t){return ia[e]||t}function la(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const ca={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Ar="vueuse-storage";function aa(e,t,n,s={}){var r;const{flush:i="pre",deep:o=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:f=!1,shallow:d,window:h=Ve,eventFilter:b,onError:T=w=>{console.error(w)},initOnMounted:P}=s,M=(d?ti:ae)(typeof t=="function"?t():t);if(!n)try{n=Zi("getDefaultStorage",()=>{var w;return(w=Ve)==null?void 0:w.localStorage})()}catch(w){T(w)}if(!n)return M;const B=Xe(t),G=la(B),z=(r=s.serializer)!=null?r:ca[G],{pause:g,resume:m}=ta(M,()=>R(M.value),{flush:i,deep:o,eventFilter:b});h&&l&&Ps(()=>{Et(h,"storage",V),Et(h,Ar,I),P&&V()}),P||V();function L(w,N){h&&h.dispatchEvent(new CustomEvent(Ar,{detail:{key:e,oldValue:w,newValue:N,storageArea:n}}))}function R(w){try{const N=n.getItem(e);if(w==null)L(N,null),n.removeItem(e);else{const S=z.write(w);N!==S&&(n.setItem(e,S),L(N,S))}}catch(N){T(N)}}function U(w){const N=w?w.newValue:n.getItem(e);if(N==null)return c&&B!=null&&n.setItem(e,z.write(B)),B;if(!w&&f){const S=z.read(N);return typeof f=="function"?f(S,B):G==="object"&&!Array.isArray(S)?{...B,...S}:S}else return typeof N!="string"?N:z.read(N)}function V(w){if(!(w&&w.storageArea!==n)){if(w&&w.key==null){M.value=B;return}if(!(w&&w.key!==e)){g();try{(w==null?void 0:w.newValue)!==z.write(M.value)&&(M.value=U(w))}catch(N){T(N)}finally{w?Cn(m):m()}}}}function I(w){V(w.detail)}return M}function eo(e){return Qi("(prefers-color-scheme: dark)",e)}function fa(e={}){const{selector:t="html",attribute:n="class",initialValue:s="auto",window:r=Ve,storage:i,storageKey:o="vueuse-color-scheme",listenToStorageChanges:l=!0,storageRef:c,emitAuto:f,disableTransition:d=!0}=e,h={auto:"",light:"light",dark:"dark",...e.modes||{}},b=eo({window:r}),T=se(()=>b.value?"dark":"light"),P=c||(o==null?Yi(s):aa(o,s,i,{window:r,listenToStorageChanges:l})),M=se(()=>P.value==="auto"?T.value:P.value),B=Zi("updateHTMLAttrs",(m,L,R)=>{const U=typeof m=="string"?r==null?void 0:r.document.querySelector(m):Ji(m);if(!U)return;let V;if(d&&(V=r.document.createElement("style"),V.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),r.document.head.appendChild(V)),L==="class"){const I=R.split(/\s/g);Object.values(h).flatMap(w=>(w||"").split(/\s/g)).filter(Boolean).forEach(w=>{I.includes(w)?U.classList.add(w):U.classList.remove(w)})}else U.setAttribute(L,R);d&&(r.getComputedStyle(V).opacity,document.head.removeChild(V))});function G(m){var L;B(t,n,(L=h[m])!=null?L:m)}function z(m){e.onChanged?e.onChanged(m,G):G(m)}Me(M,z,{flush:"post",immediate:!0}),Ps(()=>z(M.value));const g=se({get(){return f?P.value:M.value},set(m){P.value=m}});try{return Object.assign(g,{store:P,system:T,state:M})}catch{return g}}function ua(e={}){const{valueDark:t="dark",valueLight:n="",window:s=Ve}=e,r=fa({...e,onChanged:(l,c)=>{var f;e.onChanged?(f=e.onChanged)==null||f.call(e,l==="dark",c,l):c(l)},modes:{dark:t,light:n}}),i=se(()=>r.system?r.system.value:eo({window:s}).value?"dark":"light");return se({get(){return r.value==="dark"},set(l){const c=l?"dark":"light";i.value===c?r.value="auto":r.value=c}})}function Wn(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function to(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const qn=new WeakMap;function of(e,t=!1){const n=ae(t);let s=null,r="";Me(Yi(e),l=>{const c=Wn(Xe(l));if(c){const f=c;if(qn.get(f)||qn.set(f,f.style.overflow),f.style.overflow!=="hidden"&&(r=f.style.overflow),f.style.overflow==="hidden")return n.value=!0;if(n.value)return f.style.overflow="hidden"}},{immediate:!0});const i=()=>{const l=Wn(Xe(e));!l||n.value||(Tr&&(s=Et(l,"touchmove",c=>{da(c)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},o=()=>{const l=Wn(Xe(e));!l||!n.value||(Tr&&(s==null||s()),l.style.overflow=r,qn.delete(l),n.value=!1)};return Ls(o),se({get(){return n.value},set(l){l?i():o()}})}function lf(e={}){const{window:t=Ve,behavior:n="auto"}=e;if(!t)return{x:ae(0),y:ae(0)};const s=ae(t.scrollX),r=ae(t.scrollY),i=se({get(){return s.value},set(l){scrollTo({left:l,behavior:n})}}),o=se({get(){return r.value},set(l){scrollTo({top:l,behavior:n})}});return Et(t,"scroll",()=>{s.value=t.scrollX,r.value=t.scrollY},{capture:!1,passive:!0}),{x:i,y:o}}function cf(e={}){const{window:t=Ve,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:s=Number.POSITIVE_INFINITY,listenOrientation:r=!0,includeScrollbar:i=!0}=e,o=ae(n),l=ae(s),c=()=>{t&&(i?(o.value=t.innerWidth,l.value=t.innerHeight):(o.value=t.document.documentElement.clientWidth,l.value=t.document.documentElement.clientHeight))};if(c(),Ps(c),Et("resize",c,{passive:!0}),r){const f=Qi("(orientation: portrait)");Me(f,()=>c())}return{width:o,height:l}}var Gn={BASE_URL:"/docs/",MODE:"production",DEV:!1,PROD:!0,SSR:!1},zn={};const no=/^(?:[a-z]+:|\/\/)/i,ha="vitepress-theme-appearance",pa=/#.*$/,ga=/[?#].*$/,ma=/(?:(^|\/)index)?\.(?:md|html)$/,ue=typeof document<"u",so={relativePath:"404.md",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function ya(e,t,n=!1){if(t===void 0)return!1;if(e=Rr(`/${e}`),n)return new RegExp(t).test(e);if(Rr(t)!==e)return!1;const s=t.match(pa);return s?(ue?location.hash:"")===s[0]:!0}function Rr(e){return decodeURI(e).replace(ga,"").replace(ma,"$1")}function _a(e){return no.test(e)}function ba(e,t){return Object.keys((e==null?void 0:e.locales)||{}).find(n=>n!=="root"&&!_a(n)&&ya(t,`/${n}/`,!0))||"root"}function va(e,t){var s,r,i,o,l,c,f;const n=ba(e,t);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:io(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(f=e.locales[n])==null?void 0:f.themeConfig}})}function ro(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=wa(e.title,s);return n===r.slice(3)?n:`${n}${r}`}function wa(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function Ea(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 io(e,t){return[...e.filter(n=>!Ea(t,n)),...t]}const Ca=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,Sa=/^[a-z]:/i;function Or(e){const t=Sa.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(Ca,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const Xn=new Set;function xa(e){if(Xn.size===0){const n=typeof process=="object"&&(zn==null?void 0:zn.VITE_EXTRA_EXTENSIONS)||(Gn==null?void 0:Gn.VITE_EXTRA_EXTENSIONS)||"";("3g2,3gp,aac,ai,apng,au,avif,bin,bmp,cer,class,conf,crl,css,csv,dll,doc,eps,epub,exe,gif,gz,ics,ief,jar,jpe,jpeg,jpg,js,json,jsonld,m4a,man,mid,midi,mjs,mov,mp2,mp3,mp4,mpe,mpeg,mpg,mpp,oga,ogg,ogv,ogx,opus,otf,p10,p7c,p7m,p7s,pdf,png,ps,qt,roff,rtf,rtx,ser,svg,t,tif,tiff,tr,ts,tsv,ttf,txt,vtt,wav,weba,webm,webp,woff,woff2,xhtml,xml,yaml,yml,zip"+(n&&typeof n=="string"?","+n:"")).split(",").forEach(s=>Xn.add(s))}const t=e.split(".").pop();return t==null||!Xn.has(t.toLowerCase())}const Ta=Symbol(),at=ti(Gc);function af(e){const t=se(()=>va(at.value,e.data.relativePath)),n=t.value.appearance,s=n==="force-dark"?ae(!0):n?ua({storageKey:ha,initialValue:()=>typeof n=="string"?n:"auto",...typeof n=="object"?n:{}}):ae(!1),r=ae(ue?location.hash:"");return ue&&window.addEventListener("hashchange",()=>{r.value=location.hash}),Me(()=>e.data,()=>{r.value=ue?location.hash:""}),{site:t,theme:se(()=>t.value.themeConfig),page:se(()=>e.data),frontmatter:se(()=>e.data.frontmatter),params:se(()=>e.data.params),lang:se(()=>t.value.lang),dir:se(()=>e.data.frontmatter.dir||t.value.dir),localeIndex:se(()=>t.value.localeIndex||"root"),title:se(()=>ro(t.value,e.data)),description:se(()=>e.data.description||t.value.description),isDark:s,hash:se(()=>r.value)}}function Aa(){const e=vt(Ta);if(!e)throw new Error("vitepress data not properly injected in app");return e}function Ra(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function Ir(e){return no.test(e)||!e.startsWith("/")?e:Ra(at.value.base,e)}function Oa(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),ue){const n="/docs/";t=Or(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let s=__VP_HASH_MAP__[t.toLowerCase()];if(s||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",s=__VP_HASH_MAP__[t.toLowerCase()]),!s)return null;t=`${n}assets/${t}.${s}.js`}else t=`./${Or(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let on=[];function ff(e){on.push(e),An(()=>{on=on.filter(t=>t!==e)})}function Ia(){let e=at.value.scrollOffset,t=0,n=24;if(typeof e=="object"&&"padding"in e&&(n=e.padding,e=e.selector),typeof e=="number")t=e;else if(typeof e=="string")t=Lr(e,n);else if(Array.isArray(e))for(const s of e){const r=Lr(s,n);if(r){t=r;break}}return t}function Lr(e,t){const n=document.querySelector(e);if(!n)return 0;const s=n.getBoundingClientRect().bottom;return s<0?0:s+t}const La=Symbol(),oo="http://a.com",Pa=()=>({path:"/",component:null,data:so});function uf(e,t){const n=vn(Pa()),s={route:n,go:r};async function r(l=ue?location.href:"/"){var c,f;l=Yn(l),await((c=s.onBeforeRouteChange)==null?void 0:c.call(s,l))!==!1&&(ue&&l!==Yn(location.href)&&(history.replaceState({scrollPosition:window.scrollY},""),history.pushState({},"",l)),await o(l),await((f=s.onAfterRouteChanged)==null?void 0:f.call(s,l)))}let i=null;async function o(l,c=0,f=!1){var b;if(await((b=s.onBeforePageLoad)==null?void 0:b.call(s,l))===!1)return;const d=new URL(l,oo),h=i=d.pathname;try{let T=await e(h);if(!T)throw new Error(`Page not found: ${h}`);if(i===h){i=null;const{default:P,__pageData:M}=T;if(!P)throw new Error(`Invalid route component: ${P}`);n.path=ue?h:Ir(h),n.component=nn(P),n.data=nn(M),ue&&Cn(()=>{let B=at.value.base+M.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!at.value.cleanUrls&&!B.endsWith("/")&&(B+=".html"),B!==d.pathname&&(d.pathname=B,l=B+d.search+d.hash,history.replaceState({},"",l)),d.hash&&!c){let G=null;try{G=document.getElementById(decodeURIComponent(d.hash).slice(1))}catch(z){console.warn(z)}if(G){Pr(G,d.hash);return}}window.scrollTo(0,c)})}}catch(T){if(!/fetch|Page not found/.test(T.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(T),!f)try{const P=await fetch(at.value.base+"hashmap.json");window.__VP_HASH_MAP__=await P.json(),await o(l,c,!0);return}catch{}if(i===h){i=null,n.path=ue?h:Ir(h),n.component=t?nn(t):null;const P=ue?h.replace(/(^|\/)$/,"$1index").replace(/(\.html)?$/,".md").replace(/^\//,""):"404.md";n.data={...so,relativePath:P}}}}return ue&&(history.state===null&&history.replaceState({},""),window.addEventListener("click",l=>{if(l.target.closest("button"))return;const f=l.target.closest("a");if(f&&!f.closest(".vp-raw")&&(f instanceof SVGElement||!f.download)){const{target:d}=f,{href:h,origin:b,pathname:T,hash:P,search:M}=new URL(f.href instanceof SVGAnimatedString?f.href.animVal:f.href,f.baseURI),B=new URL(location.href);!l.ctrlKey&&!l.shiftKey&&!l.altKey&&!l.metaKey&&!d&&b===B.origin&&xa(T)&&(l.preventDefault(),T===B.pathname&&M===B.search?(P!==B.hash&&(history.pushState({},"",h),window.dispatchEvent(new HashChangeEvent("hashchange",{oldURL:B.href,newURL:h}))),P?Pr(f,P,f.classList.contains("header-anchor")):window.scrollTo(0,0)):r(h))}},{capture:!0}),window.addEventListener("popstate",async l=>{var c;l.state!==null&&(await o(Yn(location.href),l.state&&l.state.scrollPosition||0),(c=s.onAfterRouteChanged)==null||c.call(s,location.href))}),window.addEventListener("hashchange",l=>{l.preventDefault()})),s}function Ma(){const e=vt(La);if(!e)throw new Error("useRouter() is called without provider.");return e}function lo(){return Ma().route}function Pr(e,t,n=!1){let s=null;try{s=e.classList.contains("header-anchor")?e:document.getElementById(decodeURIComponent(t).slice(1))}catch(r){console.warn(r)}if(s){let r=function(){!n||Math.abs(o-window.scrollY)>window.innerHeight?window.scrollTo(0,o):window.scrollTo({left:0,top:o,behavior:"smooth"})};const i=parseInt(window.getComputedStyle(s).paddingTop,10),o=window.scrollY+s.getBoundingClientRect().top-Ia()+i;requestAnimationFrame(r)}}function Yn(e){const t=new URL(e,oo);return t.pathname=t.pathname.replace(/(^|\/)index(\.html)?$/,"$1"),at.value.cleanUrls?t.pathname=t.pathname.replace(/\.html$/,""):!t.pathname.endsWith("/")&&!t.pathname.endsWith(".html")&&(t.pathname+=".html"),t.pathname+t.search+t.hash}const Jn=()=>on.forEach(e=>e()),df=pi({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=lo(),{site:n}=Aa();return()=>fs(e.as,n.value.contentProps??{style:{position:"relative"}},[t.component?fs(t.component,{onVnodeMounted:Jn,onVnodeUpdated:Jn,onVnodeUnmounted:Jn}):"404 Page Not Found"])}}),hf=pi({setup(e,{slots:t}){const n=ae(!1);return Ct(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function pf(){ue&&window.addEventListener("click",e=>{var n;const t=e.target;if(t.matches(".vp-code-group input")){const s=(n=t.parentElement)==null?void 0:n.parentElement;if(!s)return;const r=Array.from(s.querySelectorAll("input")).indexOf(t);if(r<0)return;const i=s.querySelector(".blocks");if(!i)return;const o=Array.from(i.children).find(f=>f.classList.contains("active"));if(!o)return;const l=i.children[r];if(!l||o===l)return;o.classList.remove("active"),l.classList.add("active");const c=s==null?void 0:s.querySelector(`label[for="${t.id}"]`);c==null||c.scrollIntoView({block:"nearest"})}})}function gf(){if(ue){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),l=[".vp-copy-ignore",".diff.remove"],c=i.cloneNode(!0);c.querySelectorAll(l.join(",")).forEach(d=>d.remove());let f=c.textContent||"";o&&(f=f.replace(/^ *(\$|>) /gm,"").trim()),Na(f).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const d=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,d)})}})}}async function Na(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 mf(e,t){let n=!0,s=[];const r=i=>{if(n){n=!1,i.forEach(l=>{const c=Qn(l);for(const f of document.head.children)if(f.isEqualNode(c)){s.push(f);return}});return}const o=i.map(Qn);s.forEach((l,c)=>{const f=o.findIndex(d=>d==null?void 0:d.isEqualNode(l??null));f!==-1?delete o[f]:(l==null||l.remove(),delete s[c])}),o.forEach(l=>l&&document.head.appendChild(l)),s=[...s,...o].filter(Boolean)};Oi(()=>{const i=e.data,o=t.value,l=i&&i.description,c=i&&i.frontmatter.head||[],f=ro(o,i);f!==document.title&&(document.title=f);const d=l||o.description;let h=document.querySelector("meta[name=description]");h?h.getAttribute("content")!==d&&h.setAttribute("content",d):Qn(["meta",{name:"description",content:d}]),r(io(o.head,$a(c)))})}function Qn([e,t,n]){const s=document.createElement(e);for(const r in t)s.setAttribute(r,t[r]);return n&&(s.innerHTML=n),e==="script"&&!t.async&&(s.async=!1),s}function Fa(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function $a(e){return e.filter(t=>!Fa(t))}const Zn=new Set,co=()=>document.createElement("link"),Ha=e=>{const t=co();t.rel="prefetch",t.href=e,document.head.appendChild(t)},ja=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let en;const Va=ue&&(en=co())&&en.relList&&en.relList.supports&&en.relList.supports("prefetch")?Ha:ja;function yf(){if(!ue||!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(!Zn.has(c)){Zn.add(c);const f=Oa(c);f&&Va(f)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(i=>{const{hostname:o,pathname:l}=new URL(i.href instanceof SVGAnimatedString?i.href.animVal:i.href,i.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||i.target!=="_blank"&&o===location.hostname&&(l!==location.pathname?n.observe(i):Zn.add(l))})})};Ct(s);const r=lo();Me(()=>r.path,s),An(()=>{n&&n.disconnect()})}export{Za as $,Xa as A,_l as B,Ia as C,Ka as D,Wa as E,_e as F,ti as G,ff as H,fe as I,ka as J,no as K,lo as L,sc as M,vt as N,cf as O,gs as P,rf as Q,Cn as R,lf as S,Wi as T,ue as U,wn as V,of as W,Pl as X,ef as Y,Ga as Z,nf as _,Ui as a,za as a0,Ja as a1,mf as a2,La as a3,af as a4,Ta as a5,df as a6,hf as a7,at as a8,tf as a9,uf as aa,Oa as ab,yf as ac,gf as ad,pf as ae,fs as af,sf as ag,ji as b,Ya as c,pi as d,Qa as e,xa as f,Ir as g,se as h,_a as i,Di as j,si as k,Ba as l,ya as m,ms as n,$i as o,Ua as p,Qi as q,qa as r,ae as s,Da as t,Aa as u,Me as v,fl as w,Oi as x,Ct as y,An as z}; diff --git a/docs/assets/chunks/framework.PNNbM9mo.js b/docs/assets/chunks/framework.PNNbM9mo.js deleted file mode 100644 index c491ea4..0000000 --- a/docs/assets/chunks/framework.PNNbM9mo.js +++ /dev/null @@ -1,17 +0,0 @@ -/** -* @vue/shared v3.4.21 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function ms(e,t){const n=new Set(e.split(","));return t?s=>n.has(s.toLowerCase()):s=>n.has(s)}const te={},mt=[],xe=()=>{},lo=()=>!1,Bt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),_s=e=>e.startsWith("onUpdate:"),ie=Object.assign,ys=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},co=Object.prototype.hasOwnProperty,X=(e,t)=>co.call(e,t),B=Array.isArray,_t=e=>bn(e)==="[object Map]",jr=e=>bn(e)==="[object Set]",K=e=>typeof e=="function",ne=e=>typeof e=="string",St=e=>typeof e=="symbol",Z=e=>e!==null&&typeof e=="object",Vr=e=>(Z(e)||K(e))&&K(e.then)&&K(e.catch),Dr=Object.prototype.toString,bn=e=>Dr.call(e),ao=e=>bn(e).slice(8,-1),Ur=e=>bn(e)==="[object Object]",vs=e=>ne(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,yt=ms(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),wn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},uo=/-(\w)/g,Me=wn(e=>e.replace(uo,(t,n)=>n?n.toUpperCase():"")),fo=/\B([A-Z])/g,at=wn(e=>e.replace(fo,"-$1").toLowerCase()),En=wn(e=>e.charAt(0).toUpperCase()+e.slice(1)),on=wn(e=>e?`on${En(e)}`:""),Qe=(e,t)=>!Object.is(e,t),Dn=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},ho=e=>{const t=parseFloat(e);return isNaN(t)?e:t},po=e=>{const t=ne(e)?Number(e):NaN;return isNaN(t)?e:t};let Ws;const Br=()=>Ws||(Ws=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function bs(e){if(B(e)){const t={};for(let n=0;n{if(n){const s=n.split(mo);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function ws(e){let t="";if(ne(e))t=e;else if(B(e))for(let n=0;nne(e)?e:e==null?"":B(e)||Z(e)&&(e.toString===Dr||!K(e.toString))?JSON.stringify(e,Kr,2):String(e),Kr=(e,t)=>t&&t.__v_isRef?Kr(e,t.value):_t(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r],i)=>(n[Un(s,i)+" =>"]=r,n),{})}:jr(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Un(n))}:St(t)?Un(t):Z(t)&&!B(t)&&!Ur(t)?String(t):t,Un=(e,t="")=>{var n;return St(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** -* @vue/reactivity v3.4.21 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let ve;class wo{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=ve,!t&&ve&&(this.index=(ve.scopes||(ve.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=ve;try{return ve=this,t()}finally{ve=n}}}on(){ve=this}off(){ve=this.parent}stop(t){if(this._active){let n,s;for(n=0,s=this.effects.length;n=4))break}this._dirtyLevel===1&&(this._dirtyLevel=0),ft()}return this._dirtyLevel>=4}set dirty(t){this._dirtyLevel=t?4:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=Xe,n=ot;try{return Xe=!0,ot=this,this._runnings++,qs(this),this.fn()}finally{Gs(this),this._runnings--,ot=n,Xe=t}}stop(){var t;this.active&&(qs(this),Gs(this),(t=this.onStop)==null||t.call(this),this.active=!1)}}function xo(e){return e.value}function qs(e){e._trackId++,e._depsLength=0}function Gs(e){if(e.deps.length>e._depsLength){for(let t=e._depsLength;t{const n=new Map;return n.cleanup=e,n.computed=t,n},fn=new WeakMap,lt=Symbol(""),is=Symbol("");function _e(e,t,n){if(Xe&&ot){let s=fn.get(e);s||fn.set(e,s=new Map);let r=s.get(n);r||s.set(n,r=Yr(()=>s.delete(n))),zr(ot,r)}}function He(e,t,n,s,r,i){const o=fn.get(e);if(!o)return;let l=[];if(t==="clear")l=[...o.values()];else if(n==="length"&&B(e)){const c=Number(s);o.forEach((u,d)=>{(d==="length"||!St(d)&&d>=c)&&l.push(u)})}else switch(n!==void 0&&l.push(o.get(n)),t){case"add":B(e)?vs(n)&&l.push(o.get("length")):(l.push(o.get(lt)),_t(e)&&l.push(o.get(is)));break;case"delete":B(e)||(l.push(o.get(lt)),_t(e)&&l.push(o.get(is)));break;case"set":_t(e)&&l.push(o.get(lt));break}Cs();for(const c of l)c&&Xr(c,4);xs()}function So(e,t){var n;return(n=fn.get(e))==null?void 0:n.get(t)}const To=ms("__proto__,__v_isRef,__isVue"),Jr=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(St)),zs=Ao();function Ao(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const s=Y(this);for(let i=0,o=this.length;i{e[t]=function(...n){ut(),Cs();const s=Y(this)[t].apply(this,n);return xs(),ft(),s}}),e}function Ro(e){const t=Y(this);return _e(t,"has",e),t.hasOwnProperty(e)}class Qr{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){const r=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return i;if(n==="__v_raw")return s===(r?i?Uo:ni:i?ti:ei).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const o=B(t);if(!r){if(o&&X(zs,n))return Reflect.get(zs,n,s);if(n==="hasOwnProperty")return Ro}const l=Reflect.get(t,n,s);return(St(n)?Jr.has(n):To(n))||(r||_e(t,"get",n),i)?l:he(l)?o&&vs(n)?l:l.value:Z(l)?r?Sn(l):xn(l):l}}class Zr extends Qr{constructor(t=!1){super(!1,t)}set(t,n,s,r){let i=t[n];if(!this._isShallow){const c=Ct(i);if(!dn(s)&&!Ct(s)&&(i=Y(i),s=Y(s)),!B(t)&&he(i)&&!he(s))return c?!1:(i.value=s,!0)}const o=B(t)&&vs(n)?Number(n)e,Cn=e=>Reflect.getPrototypeOf(e);function qt(e,t,n=!1,s=!1){e=e.__v_raw;const r=Y(e),i=Y(t);n||(Qe(t,i)&&_e(r,"get",t),_e(r,"get",i));const{has:o}=Cn(r),l=s?Ss:n?Rs: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 Gt(e,t=!1){const n=this.__v_raw,s=Y(n),r=Y(e);return t||(Qe(e,r)&&_e(s,"has",e),_e(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&&_e(Y(e),"iterate",lt),Reflect.get(e,"size",e)}function Xs(e){e=Y(e);const t=Y(this);return Cn(t).has.call(t,e)||(t.add(e),He(t,"add",e,e)),this}function Ys(e,t){t=Y(t);const n=Y(this),{has:s,get:r}=Cn(n);let i=s.call(n,e);i||(e=Y(e),i=s.call(n,e));const o=r.call(n,e);return n.set(e,t),i?Qe(t,o)&&He(n,"set",e,t):He(n,"add",e,t),this}function Js(e){const t=Y(this),{has:n,get:s}=Cn(t);let r=n.call(t,e);r||(e=Y(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 Qs(){const e=Y(this),t=e.size!==0,n=e.clear();return t&&He(e,"clear",void 0,void 0),n}function Xt(e,t){return function(s,r){const i=this,o=i.__v_raw,l=Y(o),c=t?Ss:e?Rs:Ht;return!e&&_e(l,"iterate",lt),o.forEach((u,d)=>s.call(r,c(u),c(d),i))}}function Yt(e,t,n){return function(...s){const r=this.__v_raw,i=Y(r),o=_t(i),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,u=r[e](...s),d=n?Ss:t?Rs:Ht;return!t&&_e(i,"iterate",c?is:lt),{next(){const{value:h,done:m}=u.next();return m?{value:h,done:m}:{value:l?[d(h[0]),d(h[1])]:d(h),done:m}},[Symbol.iterator](){return this}}}}function Ue(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Mo(){const e={get(i){return qt(this,i)},get size(){return zt(this)},has:Gt,add:Xs,set:Ys,delete:Js,clear:Qs,forEach:Xt(!1,!1)},t={get(i){return qt(this,i,!1,!0)},get size(){return zt(this)},has:Gt,add:Xs,set:Ys,delete:Js,clear:Qs,forEach:Xt(!1,!0)},n={get(i){return qt(this,i,!0)},get size(){return zt(this,!0)},has(i){return Gt.call(this,i,!0)},add:Ue("add"),set:Ue("set"),delete:Ue("delete"),clear:Ue("clear"),forEach:Xt(!0,!1)},s={get(i){return qt(this,i,!0,!0)},get size(){return zt(this,!0)},has(i){return Gt.call(this,i,!0)},add:Ue("add"),set:Ue("set"),delete:Ue("delete"),clear:Ue("clear"),forEach:Xt(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(i=>{e[i]=Yt(i,!1,!1),n[i]=Yt(i,!0,!1),t[i]=Yt(i,!1,!0),s[i]=Yt(i,!0,!0)}),[e,n,t,s]}const[No,Fo,$o,Ho]=Mo();function Ts(e,t){const n=t?e?Ho:$o:e?Fo:No;return(s,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(X(n,r)&&r in s?n:s,r,i)}const jo={get:Ts(!1,!1)},Vo={get:Ts(!1,!0)},Do={get:Ts(!0,!1)},ei=new WeakMap,ti=new WeakMap,ni=new WeakMap,Uo=new WeakMap;function Bo(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ko(e){return e.__v_skip||!Object.isExtensible(e)?0:Bo(ao(e))}function xn(e){return Ct(e)?e:As(e,!1,Io,jo,ei)}function Ko(e){return As(e,!1,Po,Vo,ti)}function Sn(e){return As(e,!0,Lo,Do,ni)}function As(e,t,n,s,r){if(!Z(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=r.get(e);if(i)return i;const o=ko(e);if(o===0)return e;const l=new Proxy(e,o===2?s:n);return r.set(e,l),l}function vt(e){return Ct(e)?vt(e.__v_raw):!!(e&&e.__v_isReactive)}function Ct(e){return!!(e&&e.__v_isReadonly)}function dn(e){return!!(e&&e.__v_isShallow)}function si(e){return vt(e)||Ct(e)}function Y(e){const t=e&&e.__v_raw;return t?Y(t):e}function It(e){return Object.isExtensible(e)&&un(e,"__v_skip",!0),e}const Ht=e=>Z(e)?xn(e):e,Rs=e=>Z(e)?Sn(e):e;class ri{constructor(t,n,s,r){this.getter=t,this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new Es(()=>t(this._value),()=>Lt(this,this.effect._dirtyLevel===2?2:3)),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=s}get value(){const t=Y(this);return(!t._cacheable||t.effect.dirty)&&Qe(t._value,t._value=t.effect.run())&&Lt(t,4),Os(t),t.effect._dirtyLevel>=2&&Lt(t,2),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function Wo(e,t,n=!1){let s,r;const i=K(e);return i?(s=e,r=xe):(s=e.get,r=e.set),new ri(s,r,i||!r,n)}function Os(e){var t;Xe&&ot&&(e=Y(e),zr(ot,(t=e.dep)!=null?t:e.dep=Yr(()=>e.dep=void 0,e instanceof ri?e:void 0)))}function Lt(e,t=4,n){e=Y(e);const s=e.dep;s&&Xr(s,t)}function he(e){return!!(e&&e.__v_isRef===!0)}function fe(e){return oi(e,!1)}function ii(e){return oi(e,!0)}function oi(e,t){return he(e)?e:new qo(e,t)}class qo{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:Y(t),this._value=n?t:Ht(t)}get value(){return Os(this),this._value}set value(t){const n=this.__v_isShallow||dn(t)||Ct(t);t=n?t:Y(t),Qe(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:Ht(t),Lt(this,4))}}function li(e){return he(e)?e.value:e}const Go={get:(e,t,n)=>li(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return he(r)&&!he(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function ci(e){return vt(e)?e:new Proxy(e,Go)}class zo{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:s}=t(()=>Os(this),()=>Lt(this));this._get=n,this._set=s}get value(){return this._get()}set value(t){this._set(t)}}function Xo(e){return new zo(e)}class Yo{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 So(Y(this._object),this._key)}}class Jo{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function Qo(e,t,n){return he(e)?e:K(e)?new Jo(e):Z(e)&&arguments.length>1?Zo(e,t,n):fe(e)}function Zo(e,t,n){const s=e[t];return he(s)?s:new Yo(e,t,n)}/** -* @vue/runtime-core v3.4.21 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function Ye(e,t,n,s){try{return s?e(...s):e()}catch(r){Tn(r,t,n)}}function Se(e,t,n,s){if(K(e)){const i=Ye(e,t,n,s);return i&&Vr(i)&&i.catch(o=>{Tn(o,t,n)}),i}const r=[];for(let i=0;i>>1,r=ue[s],i=Vt(r);iPe&&ue.splice(t,1)}function sl(e){B(e)?bt.push(...e):(!We||!We.includes(e,e.allowRecurse?rt+1:rt))&&bt.push(e),ui()}function Zs(e,t,n=jt?Pe+1:0){for(;nVt(n)-Vt(s));if(bt.length=0,We){We.push(...t);return}for(We=t,rt=0;rte.id==null?1/0:e.id,rl=(e,t)=>{const n=Vt(e)-Vt(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function fi(e){os=!1,jt=!0,ue.sort(rl);try{for(Pe=0;Pene(w)?w.trim():w)),h&&(r=n.map(ho))}let l,c=s[l=on(t)]||s[l=on(Me(t))];!c&&i&&(c=s[l=on(at(t))]),c&&Se(c,e,6,r);const u=s[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Se(u,e,6,r)}}function di(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(!K(e)){const c=u=>{const d=di(u,t,!0);d&&(l=!0,ie(o,d))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!l?(Z(e)&&s.set(e,null),null):(B(i)?i.forEach(c=>o[c]=null):ie(o,i),Z(e)&&s.set(e,o),o)}function Rn(e,t){return!e||!Bt(t)?!1:(t=t.slice(2).replace(/Once$/,""),X(e,t[0].toLowerCase()+t.slice(1))||X(e,at(t))||X(e,t))}let de=null,On=null;function pn(e){const t=de;return de=e,On=e&&e.type.__scopeId||null,t}function Ha(e){On=e}function ja(){On=null}function ol(e,t=de,n){if(!t||e._n)return e;const s=(...r)=>{s._d&&fr(-1);const i=pn(t);let o;try{o=e(...r)}finally{pn(i),s._d&&fr(1)}return o};return s._n=!0,s._c=!0,s._d=!0,s}function Bn(e){const{type:t,vnode:n,proxy:s,withProxy:r,props:i,propsOptions:[o],slots:l,attrs:c,emit:u,render:d,renderCache:h,data:m,setupState:w,ctx:O,inheritAttrs:M}=e;let V,q;const J=pn(e);try{if(n.shapeFlag&4){const _=r||s,P=_;V=Ae(d.call(P,_,h,i,w,m,O)),q=c}else{const _=t;V=Ae(_.length>1?_(i,{attrs:c,slots:l,emit:u}):_(i,null)),q=t.props?c:ll(c)}}catch(_){Ft.length=0,Tn(_,e,1),V=ae(be)}let g=V;if(q&&M!==!1){const _=Object.keys(q),{shapeFlag:P}=g;_.length&&P&7&&(o&&_.some(_s)&&(q=cl(q,o)),g=Ze(g,q))}return n.dirs&&(g=Ze(g),g.dirs=g.dirs?g.dirs.concat(n.dirs):n.dirs),n.transition&&(g.transition=n.transition),V=g,pn(J),V}const ll=e=>{let t;for(const n in e)(n==="class"||n==="style"||Bt(n))&&((t||(t={}))[n]=e[n]);return t},cl=(e,t)=>{const n={};for(const s in e)(!_s(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function al(e,t,n){const{props:s,children:r,component:i}=e,{props:o,children:l,patchFlag:c}=t,u=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?er(s,o,u):!!o;if(c&8){const d=t.dynamicProps;for(let h=0;he.__isSuspense;function gi(e,t){t&&t.pendingBranch?B(e)?t.effects.push(...e):t.effects.push(e):sl(e)}const dl=Symbol.for("v-scx"),hl=()=>Et(dl);function mi(e,t){return In(e,null,t)}function Ua(e,t){return In(e,null,{flush:"post"})}const Jt={};function je(e,t,n){return In(e,t,n)}function In(e,t,{immediate:n,deep:s,flush:r,once:i,onTrack:o,onTrigger:l}=te){if(t&&i){const I=t;t=(...D)=>{I(...D),P()}}const c=ce,u=I=>s===!0?I:pt(I,s===!1?1:void 0);let d,h=!1,m=!1;if(he(e)?(d=()=>e.value,h=dn(e)):vt(e)?(d=()=>u(e),h=!0):B(e)?(m=!0,h=e.some(I=>vt(I)||dn(I)),d=()=>e.map(I=>{if(he(I))return I.value;if(vt(I))return u(I);if(K(I))return Ye(I,c,2)})):K(e)?t?d=()=>Ye(e,c,2):d=()=>(w&&w(),Se(e,c,3,[O])):d=xe,t&&s){const I=d;d=()=>pt(I())}let w,O=I=>{w=g.onStop=()=>{Ye(I,c,4),w=g.onStop=void 0}},M;if($n)if(O=xe,t?n&&Se(t,c,3,[d(),m?[]:void 0,O]):d(),r==="sync"){const I=hl();M=I.__watcherHandles||(I.__watcherHandles=[])}else return xe;let V=m?new Array(e.length).fill(Jt):Jt;const q=()=>{if(!(!g.active||!g.dirty))if(t){const I=g.run();(s||h||(m?I.some((D,R)=>Qe(D,V[R])):Qe(I,V)))&&(w&&w(),Se(t,c,3,[I,V===Jt?void 0:m&&V[0]===Jt?[]:V,O]),V=I)}else g.run()};q.allowRecurse=!!t;let J;r==="sync"?J=q:r==="post"?J=()=>ge(q,c&&c.suspense):(q.pre=!0,c&&(q.id=c.uid),J=()=>Ls(q));const g=new Es(d,xe,J),_=Wr(),P=()=>{g.stop(),_&&ys(_.effects,g)};return t?n?q():V=g.run():r==="post"?ge(g.run.bind(g),c&&c.suspense):g.run(),M&&M.push(P),P}function pl(e,t,n){const s=this.proxy,r=ne(e)?e.includes(".")?_i(s,e):()=>s[e]:e.bind(s,s);let i;K(t)?i=t:(i=t.handler,n=t);const o=kt(this),l=In(r,i.bind(s),n);return o(),l}function _i(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;r0){if(n>=t)return e;n++}if(s=s||new Set,s.has(e))return e;if(s.add(e),he(e))pt(e.value,t,n,s);else if(B(e))for(let r=0;r{pt(r,t,n,s)});else if(Ur(e))for(const r in e)pt(e[r],t,n,s);return e}function Le(e,t,n,s){const r=e.dirs,i=t&&t.dirs;for(let o=0;o{e.isMounted=!0}),Ci(()=>{e.isUnmounting=!0}),e}const we=[Function,Array],yi={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:we,onEnter:we,onAfterEnter:we,onEnterCancelled:we,onBeforeLeave:we,onLeave:we,onAfterLeave:we,onLeaveCancelled:we,onBeforeAppear:we,onAppear:we,onAfterAppear:we,onAppearCancelled:we},ml={name:"BaseTransition",props:yi,setup(e,{slots:t}){const n=Fn(),s=gl();return()=>{const r=t.default&&bi(t.default(),!0);if(!r||!r.length)return;let i=r[0];if(r.length>1){for(const m of r)if(m.type!==be){i=m;break}}const o=Y(e),{mode:l}=o;if(s.isLeaving)return kn(i);const c=nr(i);if(!c)return kn(i);const u=ls(c,o,s,n);cs(c,u);const d=n.subTree,h=d&&nr(d);if(h&&h.type!==be&&!it(c,h)){const m=ls(h,o,s,n);if(cs(h,m),l==="out-in")return s.isLeaving=!0,m.afterLeave=()=>{s.isLeaving=!1,n.update.active!==!1&&(n.effect.dirty=!0,n.update())},kn(i);l==="in-out"&&c.type!==be&&(m.delayLeave=(w,O,M)=>{const V=vi(s,h);V[String(h.key)]=h,w[qe]=()=>{O(),w[qe]=void 0,delete u.delayedLeave},u.delayedLeave=M})}return i}}},_l=ml;function vi(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 ls(e,t,n,s){const{appear:r,mode:i,persisted:o=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:h,onLeave:m,onAfterLeave:w,onLeaveCancelled:O,onBeforeAppear:M,onAppear:V,onAfterAppear:q,onAppearCancelled:J}=t,g=String(e.key),_=vi(n,e),P=(R,H)=>{R&&Se(R,s,9,H)},I=(R,H)=>{const E=H[1];P(R,H),B(R)?R.every(U=>U.length<=1)&&E():R.length<=1&&E()},D={mode:i,persisted:o,beforeEnter(R){let H=l;if(!n.isMounted)if(r)H=M||l;else return;R[qe]&&R[qe](!0);const E=_[g];E&&it(e,E)&&E.el[qe]&&E.el[qe](),P(H,[R])},enter(R){let H=c,E=u,U=d;if(!n.isMounted)if(r)H=V||c,E=q||u,U=J||d;else return;let S=!1;const W=R[Qt]=re=>{S||(S=!0,re?P(U,[R]):P(E,[R]),D.delayedLeave&&D.delayedLeave(),R[Qt]=void 0)};H?I(H,[R,W]):W()},leave(R,H){const E=String(e.key);if(R[Qt]&&R[Qt](!0),n.isUnmounting)return H();P(h,[R]);let U=!1;const S=R[qe]=W=>{U||(U=!0,H(),W?P(O,[R]):P(w,[R]),R[qe]=void 0,_[E]===e&&delete _[E])};_[E]=e,m?I(m,[R,S]):S()},clone(R){return ls(R,t,n,s)}};return D}function kn(e){if(Ln(e))return e=Ze(e),e.children=null,e}function nr(e){return Ln(e)?e.children?e.children[0]:void 0:e}function cs(e,t){e.shapeFlag&6&&e.component?cs(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 bi(e,t=!1,n){let s=[],r=0;for(let i=0;i1)for(let i=0;i!!e.type.__asyncLoader,Ln=e=>e.type.__isKeepAlive;function yl(e,t){Ei(e,"a",t)}function vl(e,t){Ei(e,"da",t)}function Ei(e,t,n=ce){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(Pn(t,s,n),n){let r=n.parent;for(;r&&r.parent;)Ln(r.parent.vnode)&&bl(s,t,n,r),r=r.parent}}function bl(e,t,n,s){const r=Pn(t,e,s,!0);Mn(()=>{ys(s[t],r)},n)}function Pn(e,t,n=ce,s=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;ut();const l=kt(n),c=Se(t,n,e,o);return l(),ft(),c});return s?r.unshift(i):r.push(i),i}}const De=e=>(t,n=ce)=>(!$n||e==="sp")&&Pn(e,(...s)=>t(...s),n),wl=De("bm"),Tt=De("m"),El=De("bu"),Cl=De("u"),Ci=De("bum"),Mn=De("um"),xl=De("sp"),Sl=De("rtg"),Tl=De("rtc");function Al(e,t=ce){Pn("ec",e,t)}function Ba(e,t,n,s){let r;const i=n&&n[s];if(B(e)||ne(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;l_n(t)?!(t.type===be||t.type===me&&!xi(t.children)):!0)?e:null}function Ka(e,t){const n={};for(const s in e)n[t&&/[A-Z]/.test(s)?`on:${s}`:on(s)]=e[s];return n}const as=e=>e?Ui(e)?$s(e)||e.proxy:as(e.parent):null,Pt=ie(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=>as(e.parent),$root:e=>as(e.root),$emit:e=>e.emit,$options:e=>Ms(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,Ls(e.update)}),$nextTick:e=>e.n||(e.n=An.bind(e.proxy)),$watch:e=>pl.bind(e)}),Kn=(e,t)=>e!==te&&!e.__isScriptSetup&&X(e,t),Rl={get({_:e},t){const{ctx:n,setupState:s,data:r,props:i,accessCache:o,type:l,appContext:c}=e;let u;if(t[0]!=="$"){const w=o[t];if(w!==void 0)switch(w){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return i[t]}else{if(Kn(s,t))return o[t]=1,s[t];if(r!==te&&X(r,t))return o[t]=2,r[t];if((u=e.propsOptions[0])&&X(u,t))return o[t]=3,i[t];if(n!==te&&X(n,t))return o[t]=4,n[t];us&&(o[t]=0)}}const d=Pt[t];let h,m;if(d)return t==="$attrs"&&_e(e,"get",t),d(e);if((h=l.__cssModules)&&(h=h[t]))return h;if(n!==te&&X(n,t))return o[t]=4,n[t];if(m=c.config.globalProperties,X(m,t))return m[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:i}=e;return Kn(r,t)?(r[t]=n,!0):s!==te&&X(s,t)?(s[t]=n,!0):X(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&&X(e,o)||Kn(t,o)||(l=i[0])&&X(l,o)||X(s,o)||X(Pt,o)||X(r.config.globalProperties,o)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:X(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Wa(){return Ol().slots}function Ol(){const e=Fn();return e.setupContext||(e.setupContext=ki(e))}function sr(e){return B(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let us=!0;function Il(e){const t=Ms(e),n=e.proxy,s=e.ctx;us=!1,t.beforeCreate&&rr(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:o,watch:l,provide:c,inject:u,created:d,beforeMount:h,mounted:m,beforeUpdate:w,updated:O,activated:M,deactivated:V,beforeDestroy:q,beforeUnmount:J,destroyed:g,unmounted:_,render:P,renderTracked:I,renderTriggered:D,errorCaptured:R,serverPrefetch:H,expose:E,inheritAttrs:U,components:S,directives:W,filters:re}=t;if(u&&Ll(u,s,null),o)for(const z in o){const F=o[z];K(F)&&(s[z]=F.bind(n))}if(r){const z=r.call(n,n);Z(z)&&(e.data=xn(z))}if(us=!0,i)for(const z in i){const F=i[z],Fe=K(F)?F.bind(n,n):K(F.get)?F.get.bind(n,n):xe,Kt=!K(F)&&K(F.set)?F.set.bind(n):xe,et=se({get:Fe,set:Kt});Object.defineProperty(s,z,{enumerable:!0,configurable:!0,get:()=>et.value,set:Oe=>et.value=Oe})}if(l)for(const z in l)Si(l[z],s,n,z);if(c){const z=K(c)?c.call(n):c;Reflect.ownKeys(z).forEach(F=>{Hl(F,z[F])})}d&&rr(d,e,"c");function $(z,F){B(F)?F.forEach(Fe=>z(Fe.bind(n))):F&&z(F.bind(n))}if($(wl,h),$(Tt,m),$(El,w),$(Cl,O),$(yl,M),$(vl,V),$(Al,R),$(Tl,I),$(Sl,D),$(Ci,J),$(Mn,_),$(xl,H),B(E))if(E.length){const z=e.exposed||(e.exposed={});E.forEach(F=>{Object.defineProperty(z,F,{get:()=>n[F],set:Fe=>n[F]=Fe})})}else e.exposed||(e.exposed={});P&&e.render===xe&&(e.render=P),U!=null&&(e.inheritAttrs=U),S&&(e.components=S),W&&(e.directives=W)}function Ll(e,t,n=xe){B(e)&&(e=fs(e));for(const s in e){const r=e[s];let i;Z(r)?"default"in r?i=Et(r.from||s,r.default,!0):i=Et(r.from||s):i=Et(r),he(i)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[s]=i}}function rr(e,t,n){Se(B(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function Si(e,t,n,s){const r=s.includes(".")?_i(n,s):()=>n[s];if(ne(e)){const i=t[e];K(i)&&je(r,i)}else if(K(e))je(r,e.bind(n));else if(Z(e))if(B(e))e.forEach(i=>Si(i,t,n,s));else{const i=K(e.handler)?e.handler.bind(n):t[e.handler];K(i)&&je(r,i,e)}}function Ms(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(u=>gn(c,u,o,!0)),gn(c,t,o)),Z(t)&&i.set(t,c),c}function gn(e,t,n,s=!1){const{mixins:r,extends:i}=t;i&&gn(e,i,n,!0),r&&r.forEach(o=>gn(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:ir,props:or,emits:or,methods:Ot,computed:Ot,beforeCreate:pe,created:pe,beforeMount:pe,mounted:pe,beforeUpdate:pe,updated:pe,beforeDestroy:pe,beforeUnmount:pe,destroyed:pe,unmounted:pe,activated:pe,deactivated:pe,errorCaptured:pe,serverPrefetch:pe,components:Ot,directives:Ot,watch:Nl,provide:ir,inject:Ml};function ir(e,t){return t?e?function(){return ie(K(e)?e.call(this,this):e,K(t)?t.call(this,this):t)}:t:e}function Ml(e,t){return Ot(fs(e),fs(t))}function fs(e){if(B(e)){const t={};for(let n=0;n1)return n&&K(t)?t.call(s&&s.proxy):t}}function jl(e,t,n,s=!1){const r={},i={};un(i,Nn,1),e.propsDefaults=Object.create(null),Ai(e,t,r,i);for(const o in e.propsOptions[0])o in r||(r[o]=void 0);n?e.props=s?r:Ko(r):e.type.props?e.props=r:e.props=i,e.attrs=i}function Vl(e,t,n,s){const{props:r,attrs:i,vnode:{patchFlag:o}}=e,l=Y(r),[c]=e.propsOptions;let u=!1;if((s||o>0)&&!(o&16)){if(o&8){const d=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[m,w]=Ri(h,t,!0);ie(o,m),w&&l.push(...w)};!n&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}if(!i&&!c)return Z(e)&&s.set(e,mt),mt;if(B(i))for(let d=0;d-1,w[1]=M<0||O-1||X(w,"default"))&&l.push(h)}}}const u=[o,l];return Z(e)&&s.set(e,u),u}function lr(e){return e[0]!=="$"&&!yt(e)}function cr(e){return e===null?"null":typeof e=="function"?e.name||"":typeof e=="object"&&e.constructor&&e.constructor.name||""}function ar(e,t){return cr(e)===cr(t)}function ur(e,t){return B(t)?t.findIndex(n=>ar(n,e)):K(t)&&ar(t,e)?0:-1}const Oi=e=>e[0]==="_"||e==="$stable",Ns=e=>B(e)?e.map(Ae):[Ae(e)],Dl=(e,t,n)=>{if(t._n)return t;const s=ol((...r)=>Ns(t(...r)),n);return s._c=!1,s},Ii=(e,t,n)=>{const s=e._ctx;for(const r in e){if(Oi(r))continue;const i=e[r];if(K(i))t[r]=Dl(r,i,s);else if(i!=null){const o=Ns(i);t[r]=()=>o}}},Li=(e,t)=>{const n=Ns(t);e.slots.default=()=>n},Ul=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=Y(t),un(t,"_",n)):Ii(t,e.slots={})}else e.slots={},t&&Li(e,t);un(e.slots,Nn,1)},Bl=(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:(ie(r,t),!n&&l===1&&delete r._):(i=!t.$stable,Ii(t,r)),o=t}else t&&(Li(e,t),o={default:1});if(i)for(const l in r)!Oi(l)&&o[l]==null&&delete r[l]};function mn(e,t,n,s,r=!1){if(B(e)){e.forEach((m,w)=>mn(m,t&&(B(t)?t[w]:t),n,s,r));return}if(wt(s)&&!r)return;const i=s.shapeFlag&4?$s(s.component)||s.component.proxy:s.el,o=r?null:i,{i:l,r:c}=e,u=t&&t.r,d=l.refs===te?l.refs={}:l.refs,h=l.setupState;if(u!=null&&u!==c&&(ne(u)?(d[u]=null,X(h,u)&&(h[u]=null)):he(u)&&(u.value=null)),K(c))Ye(c,l,12,[o,d]);else{const m=ne(c),w=he(c);if(m||w){const O=()=>{if(e.f){const M=m?X(h,c)?h[c]:d[c]:c.value;r?B(M)&&ys(M,i):B(M)?M.includes(i)||M.push(i):m?(d[c]=[i],X(h,c)&&(h[c]=d[c])):(c.value=[i],e.k&&(d[e.k]=c.value))}else m?(d[c]=o,X(h,c)&&(h[c]=o)):w&&(c.value=o,e.k&&(d[e.k]=o))};o?(O.id=-1,ge(O,n)):O()}}}let Be=!1;const kl=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",Kl=e=>e.namespaceURI.includes("MathML"),Zt=e=>{if(kl(e))return"svg";if(Kl(e))return"mathml"},en=e=>e.nodeType===8;function Wl(e){const{mt:t,p:n,o:{patchProp:s,createText:r,nextSibling:i,parentNode:o,remove:l,insert:c,createComment:u}}=e,d=(g,_)=>{if(!_.hasChildNodes()){n(null,g,_),hn(),_._vnode=g;return}Be=!1,h(_.firstChild,g,null,null,null),hn(),_._vnode=g,Be&&console.error("Hydration completed but contains mismatches.")},h=(g,_,P,I,D,R=!1)=>{const H=en(g)&&g.data==="[",E=()=>M(g,_,P,I,D,H),{type:U,ref:S,shapeFlag:W,patchFlag:re}=_;let le=g.nodeType;_.el=g,re===-2&&(R=!1,_.dynamicChildren=null);let $=null;switch(U){case xt:le!==3?_.children===""?(c(_.el=r(""),o(g),g),$=g):$=E():(g.data!==_.children&&(Be=!0,g.data=_.children),$=i(g));break;case be:J(g)?($=i(g),q(_.el=g.content.firstChild,g,P)):le!==8||H?$=E():$=i(g);break;case Nt:if(H&&(g=i(g),le=g.nodeType),le===1||le===3){$=g;const z=!_.children.length;for(let F=0;F<_.staticCount;F++)z&&(_.children+=$.nodeType===1?$.outerHTML:$.data),F===_.staticCount-1&&(_.anchor=$),$=i($);return H?i($):$}else E();break;case me:H?$=O(g,_,P,I,D,R):$=E();break;default:if(W&1)(le!==1||_.type.toLowerCase()!==g.tagName.toLowerCase())&&!J(g)?$=E():$=m(g,_,P,I,D,R);else if(W&6){_.slotScopeIds=D;const z=o(g);if(H?$=V(g):en(g)&&g.data==="teleport start"?$=V(g,g.data,"teleport end"):$=i(g),t(_,z,null,P,I,Zt(z),R),wt(_)){let F;H?(F=ae(me),F.anchor=$?$.previousSibling:z.lastChild):F=g.nodeType===3?Di(""):ae("div"),F.el=g,_.component.subTree=F}}else W&64?le!==8?$=E():$=_.type.hydrate(g,_,P,I,D,R,e,w):W&128&&($=_.type.hydrate(g,_,P,I,Zt(o(g)),D,R,e,h))}return S!=null&&mn(S,null,I,_),$},m=(g,_,P,I,D,R)=>{R=R||!!_.dynamicChildren;const{type:H,props:E,patchFlag:U,shapeFlag:S,dirs:W,transition:re}=_,le=H==="input"||H==="option";if(le||U!==-1){W&&Le(_,null,P,"created");let $=!1;if(J(g)){$=Pi(I,re)&&P&&P.vnode.props&&P.vnode.props.appear;const F=g.content.firstChild;$&&re.beforeEnter(F),q(F,g,P),_.el=g=F}if(S&16&&!(E&&(E.innerHTML||E.textContent))){let F=w(g.firstChild,_,g,P,I,D,R);for(;F;){Be=!0;const Fe=F;F=F.nextSibling,l(Fe)}}else S&8&&g.textContent!==_.children&&(Be=!0,g.textContent=_.children);if(E)if(le||!R||U&48)for(const F in E)(le&&(F.endsWith("value")||F==="indeterminate")||Bt(F)&&!yt(F)||F[0]===".")&&s(g,F,null,E[F],void 0,void 0,P);else E.onClick&&s(g,"onClick",null,E.onClick,void 0,void 0,P);let z;(z=E&&E.onVnodeBeforeMount)&&Ee(z,P,_),W&&Le(_,null,P,"beforeMount"),((z=E&&E.onVnodeMounted)||W||$)&&gi(()=>{z&&Ee(z,P,_),$&&re.enter(g),W&&Le(_,null,P,"mounted")},I)}return g.nextSibling},w=(g,_,P,I,D,R,H)=>{H=H||!!_.dynamicChildren;const E=_.children,U=E.length;for(let S=0;S{const{slotScopeIds:H}=_;H&&(D=D?D.concat(H):H);const E=o(g),U=w(i(g),_,E,P,I,D,R);return U&&en(U)&&U.data==="]"?i(_.anchor=U):(Be=!0,c(_.anchor=u("]"),E,U),U)},M=(g,_,P,I,D,R)=>{if(Be=!0,_.el=null,R){const U=V(g);for(;;){const S=i(g);if(S&&S!==U)l(S);else break}}const H=i(g),E=o(g);return l(g),n(null,_,E,H,P,I,Zt(E),D),H},V=(g,_="[",P="]")=>{let I=0;for(;g;)if(g=i(g),g&&en(g)&&(g.data===_&&I++,g.data===P)){if(I===0)return i(g);I--}return g},q=(g,_,P)=>{const I=_.parentNode;I&&I.replaceChild(g,_);let D=P;for(;D;)D.vnode.el===_&&(D.vnode.el=D.subTree.el=g),D=D.parent},J=g=>g.nodeType===1&&g.tagName.toLowerCase()==="template";return[d,h]}const ge=gi;function ql(e){return Gl(e,Wl)}function Gl(e,t){const n=Br();n.__VUE__=!0;const{insert:s,remove:r,patchProp:i,createElement:o,createText:l,createComment:c,setText:u,setElementText:d,parentNode:h,nextSibling:m,setScopeId:w=xe,insertStaticContent:O}=e,M=(a,f,p,y=null,v=null,x=null,A=void 0,C=null,T=!!f.dynamicChildren)=>{if(a===f)return;a&&!it(a,f)&&(y=Wt(a),Oe(a,v,x,!0),a=null),f.patchFlag===-2&&(T=!1,f.dynamicChildren=null);const{type:b,ref:L,shapeFlag:j}=f;switch(b){case xt:V(a,f,p,y);break;case be:q(a,f,p,y);break;case Nt:a==null&&J(f,p,y,A);break;case me:S(a,f,p,y,v,x,A,C,T);break;default:j&1?P(a,f,p,y,v,x,A,C,T):j&6?W(a,f,p,y,v,x,A,C,T):(j&64||j&128)&&b.process(a,f,p,y,v,x,A,C,T,dt)}L!=null&&v&&mn(L,a&&a.ref,x,f||a,!f)},V=(a,f,p,y)=>{if(a==null)s(f.el=l(f.children),p,y);else{const v=f.el=a.el;f.children!==a.children&&u(v,f.children)}},q=(a,f,p,y)=>{a==null?s(f.el=c(f.children||""),p,y):f.el=a.el},J=(a,f,p,y)=>{[a.el,a.anchor]=O(a.children,f,p,y,a.el,a.anchor)},g=({el:a,anchor:f},p,y)=>{let v;for(;a&&a!==f;)v=m(a),s(a,p,y),a=v;s(f,p,y)},_=({el:a,anchor:f})=>{let p;for(;a&&a!==f;)p=m(a),r(a),a=p;r(f)},P=(a,f,p,y,v,x,A,C,T)=>{f.type==="svg"?A="svg":f.type==="math"&&(A="mathml"),a==null?I(f,p,y,v,x,A,C,T):H(a,f,v,x,A,C,T)},I=(a,f,p,y,v,x,A,C)=>{let T,b;const{props:L,shapeFlag:j,transition:N,dirs:k}=a;if(T=a.el=o(a.type,x,L&&L.is,L),j&8?d(T,a.children):j&16&&R(a.children,T,null,y,v,Wn(a,x),A,C),k&&Le(a,null,y,"created"),D(T,a,a.scopeId,A,y),L){for(const Q in L)Q!=="value"&&!yt(Q)&&i(T,Q,null,L[Q],x,a.children,y,v,$e);"value"in L&&i(T,"value",null,L.value,x),(b=L.onVnodeBeforeMount)&&Ee(b,y,a)}k&&Le(a,null,y,"beforeMount");const G=Pi(v,N);G&&N.beforeEnter(T),s(T,f,p),((b=L&&L.onVnodeMounted)||G||k)&&ge(()=>{b&&Ee(b,y,a),G&&N.enter(T),k&&Le(a,null,y,"mounted")},v)},D=(a,f,p,y,v)=>{if(p&&w(a,p),y)for(let x=0;x{for(let b=T;b{const C=f.el=a.el;let{patchFlag:T,dynamicChildren:b,dirs:L}=f;T|=a.patchFlag&16;const j=a.props||te,N=f.props||te;let k;if(p&&tt(p,!1),(k=N.onVnodeBeforeUpdate)&&Ee(k,p,f,a),L&&Le(f,a,p,"beforeUpdate"),p&&tt(p,!0),b?E(a.dynamicChildren,b,C,p,y,Wn(f,v),x):A||F(a,f,C,null,p,y,Wn(f,v),x,!1),T>0){if(T&16)U(C,f,j,N,p,y,v);else if(T&2&&j.class!==N.class&&i(C,"class",null,N.class,v),T&4&&i(C,"style",j.style,N.style,v),T&8){const G=f.dynamicProps;for(let Q=0;Q{k&&Ee(k,p,f,a),L&&Le(f,a,p,"updated")},y)},E=(a,f,p,y,v,x,A)=>{for(let C=0;C{if(p!==y){if(p!==te)for(const C in p)!yt(C)&&!(C in y)&&i(a,C,p[C],null,A,f.children,v,x,$e);for(const C in y){if(yt(C))continue;const T=y[C],b=p[C];T!==b&&C!=="value"&&i(a,C,b,T,A,f.children,v,x,$e)}"value"in y&&i(a,"value",p.value,y.value,A)}},S=(a,f,p,y,v,x,A,C,T)=>{const b=f.el=a?a.el:l(""),L=f.anchor=a?a.anchor:l("");let{patchFlag:j,dynamicChildren:N,slotScopeIds:k}=f;k&&(C=C?C.concat(k):k),a==null?(s(b,p,y),s(L,p,y),R(f.children||[],p,L,v,x,A,C,T)):j>0&&j&64&&N&&a.dynamicChildren?(E(a.dynamicChildren,N,p,v,x,A,C),(f.key!=null||v&&f===v.subTree)&&Mi(a,f,!0)):F(a,f,p,L,v,x,A,C,T)},W=(a,f,p,y,v,x,A,C,T)=>{f.slotScopeIds=C,a==null?f.shapeFlag&512?v.ctx.activate(f,p,y,A,T):re(f,p,y,v,x,A,T):le(a,f,T)},re=(a,f,p,y,v,x,A)=>{const C=a.component=nc(a,y,v);if(Ln(a)&&(C.ctx.renderer=dt),sc(C),C.asyncDep){if(v&&v.registerDep(C,$),!a.el){const T=C.subTree=ae(be);q(null,T,f,p)}}else $(C,a,f,p,v,x,A)},le=(a,f,p)=>{const y=f.component=a.component;if(al(a,f,p))if(y.asyncDep&&!y.asyncResolved){z(y,f,p);return}else y.next=f,nl(y.update),y.effect.dirty=!0,y.update();else f.el=a.el,y.vnode=f},$=(a,f,p,y,v,x,A)=>{const C=()=>{if(a.isMounted){let{next:L,bu:j,u:N,parent:k,vnode:G}=a;{const ht=Ni(a);if(ht){L&&(L.el=G.el,z(a,L,A)),ht.asyncDep.then(()=>{a.isUnmounted||C()});return}}let Q=L,ee;tt(a,!1),L?(L.el=G.el,z(a,L,A)):L=G,j&&Dn(j),(ee=L.props&&L.props.onVnodeBeforeUpdate)&&Ee(ee,k,L,G),tt(a,!0);const oe=Bn(a),Te=a.subTree;a.subTree=oe,M(Te,oe,h(Te.el),Wt(Te),a,v,x),L.el=oe.el,Q===null&&ul(a,oe.el),N&&ge(N,v),(ee=L.props&&L.props.onVnodeUpdated)&&ge(()=>Ee(ee,k,L,G),v)}else{let L;const{el:j,props:N}=f,{bm:k,m:G,parent:Q}=a,ee=wt(f);if(tt(a,!1),k&&Dn(k),!ee&&(L=N&&N.onVnodeBeforeMount)&&Ee(L,Q,f),tt(a,!0),j&&Vn){const oe=()=>{a.subTree=Bn(a),Vn(j,a.subTree,a,v,null)};ee?f.type.__asyncLoader().then(()=>!a.isUnmounted&&oe()):oe()}else{const oe=a.subTree=Bn(a);M(null,oe,p,y,a,v,x),f.el=oe.el}if(G&&ge(G,v),!ee&&(L=N&&N.onVnodeMounted)){const oe=f;ge(()=>Ee(L,Q,oe),v)}(f.shapeFlag&256||Q&&wt(Q.vnode)&&Q.vnode.shapeFlag&256)&&a.a&&ge(a.a,v),a.isMounted=!0,f=p=y=null}},T=a.effect=new Es(C,xe,()=>Ls(b),a.scope),b=a.update=()=>{T.dirty&&T.run()};b.id=a.uid,tt(a,!0),b()},z=(a,f,p)=>{f.component=a;const y=a.vnode.props;a.vnode=f,a.next=null,Vl(a,f.props,y,p),Bl(a,f.children,p),ut(),Zs(a),ft()},F=(a,f,p,y,v,x,A,C,T=!1)=>{const b=a&&a.children,L=a?a.shapeFlag:0,j=f.children,{patchFlag:N,shapeFlag:k}=f;if(N>0){if(N&128){Kt(b,j,p,y,v,x,A,C,T);return}else if(N&256){Fe(b,j,p,y,v,x,A,C,T);return}}k&8?(L&16&&$e(b,v,x),j!==b&&d(p,j)):L&16?k&16?Kt(b,j,p,y,v,x,A,C,T):$e(b,v,x,!0):(L&8&&d(p,""),k&16&&R(j,p,y,v,x,A,C,T))},Fe=(a,f,p,y,v,x,A,C,T)=>{a=a||mt,f=f||mt;const b=a.length,L=f.length,j=Math.min(b,L);let N;for(N=0;NL?$e(a,v,x,!0,!1,j):R(f,p,y,v,x,A,C,T,j)},Kt=(a,f,p,y,v,x,A,C,T)=>{let b=0;const L=f.length;let j=a.length-1,N=L-1;for(;b<=j&&b<=N;){const k=a[b],G=f[b]=T?Ge(f[b]):Ae(f[b]);if(it(k,G))M(k,G,p,null,v,x,A,C,T);else break;b++}for(;b<=j&&b<=N;){const k=a[j],G=f[N]=T?Ge(f[N]):Ae(f[N]);if(it(k,G))M(k,G,p,null,v,x,A,C,T);else break;j--,N--}if(b>j){if(b<=N){const k=N+1,G=kN)for(;b<=j;)Oe(a[b],v,x,!0),b++;else{const k=b,G=b,Q=new Map;for(b=G;b<=N;b++){const ye=f[b]=T?Ge(f[b]):Ae(f[b]);ye.key!=null&&Q.set(ye.key,b)}let ee,oe=0;const Te=N-G+1;let ht=!1,Bs=0;const At=new Array(Te);for(b=0;b=Te){Oe(ye,v,x,!0);continue}let Ie;if(ye.key!=null)Ie=Q.get(ye.key);else for(ee=G;ee<=N;ee++)if(At[ee-G]===0&&it(ye,f[ee])){Ie=ee;break}Ie===void 0?Oe(ye,v,x,!0):(At[Ie-G]=b+1,Ie>=Bs?Bs=Ie:ht=!0,M(ye,f[Ie],p,null,v,x,A,C,T),oe++)}const ks=ht?zl(At):mt;for(ee=ks.length-1,b=Te-1;b>=0;b--){const ye=G+b,Ie=f[ye],Ks=ye+1{const{el:x,type:A,transition:C,children:T,shapeFlag:b}=a;if(b&6){et(a.component.subTree,f,p,y);return}if(b&128){a.suspense.move(f,p,y);return}if(b&64){A.move(a,f,p,dt);return}if(A===me){s(x,f,p);for(let j=0;jC.enter(x),v);else{const{leave:j,delayLeave:N,afterLeave:k}=C,G=()=>s(x,f,p),Q=()=>{j(x,()=>{G(),k&&k()})};N?N(x,G,Q):Q()}else s(x,f,p)},Oe=(a,f,p,y=!1,v=!1)=>{const{type:x,props:A,ref:C,children:T,dynamicChildren:b,shapeFlag:L,patchFlag:j,dirs:N}=a;if(C!=null&&mn(C,null,p,a,!0),L&256){f.ctx.deactivate(a);return}const k=L&1&&N,G=!wt(a);let Q;if(G&&(Q=A&&A.onVnodeBeforeUnmount)&&Ee(Q,f,a),L&6)oo(a.component,p,y);else{if(L&128){a.suspense.unmount(p,y);return}k&&Le(a,null,f,"beforeUnmount"),L&64?a.type.remove(a,f,p,v,dt,y):b&&(x!==me||j>0&&j&64)?$e(b,f,p,!1,!0):(x===me&&j&384||!v&&L&16)&&$e(T,f,p),y&&Ds(a)}(G&&(Q=A&&A.onVnodeUnmounted)||k)&&ge(()=>{Q&&Ee(Q,f,a),k&&Le(a,null,f,"unmounted")},p)},Ds=a=>{const{type:f,el:p,anchor:y,transition:v}=a;if(f===me){io(p,y);return}if(f===Nt){_(a);return}const x=()=>{r(p),v&&!v.persisted&&v.afterLeave&&v.afterLeave()};if(a.shapeFlag&1&&v&&!v.persisted){const{leave:A,delayLeave:C}=v,T=()=>A(p,x);C?C(a.el,x,T):T()}else x()},io=(a,f)=>{let p;for(;a!==f;)p=m(a),r(a),a=p;r(f)},oo=(a,f,p)=>{const{bum:y,scope:v,update:x,subTree:A,um:C}=a;y&&Dn(y),v.stop(),x&&(x.active=!1,Oe(A,a,f,p)),C&&ge(C,f),ge(()=>{a.isUnmounted=!0},f),f&&f.pendingBranch&&!f.isUnmounted&&a.asyncDep&&!a.asyncResolved&&a.suspenseId===f.pendingId&&(f.deps--,f.deps===0&&f.resolve())},$e=(a,f,p,y=!1,v=!1,x=0)=>{for(let A=x;Aa.shapeFlag&6?Wt(a.component.subTree):a.shapeFlag&128?a.suspense.next():m(a.anchor||a.el);let Hn=!1;const Us=(a,f,p)=>{a==null?f._vnode&&Oe(f._vnode,null,null,!0):M(f._vnode||null,a,f,null,null,null,p),Hn||(Hn=!0,Zs(),hn(),Hn=!1),f._vnode=a},dt={p:M,um:Oe,m:et,r:Ds,mt:re,mc:R,pc:F,pbc:E,n:Wt,o:e};let jn,Vn;return t&&([jn,Vn]=t(dt)),{render:Us,hydrate:jn,createApp:$l(Us,jn)}}function Wn({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function tt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Pi(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Mi(e,t,n=!1){const s=e.children,r=t.children;if(B(s)&&B(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}function Ni(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ni(t)}const Xl=e=>e.__isTeleport,me=Symbol.for("v-fgt"),xt=Symbol.for("v-txt"),be=Symbol.for("v-cmt"),Nt=Symbol.for("v-stc"),Ft=[];let Re=null;function Fi(e=!1){Ft.push(Re=e?null:[])}function Yl(){Ft.pop(),Re=Ft[Ft.length-1]||null}let Dt=1;function fr(e){Dt+=e}function $i(e){return e.dynamicChildren=Dt>0?Re||mt:null,Yl(),Dt>0&&Re&&Re.push(e),e}function qa(e,t,n,s,r,i){return $i(Vi(e,t,n,s,r,i,!0))}function Hi(e,t,n,s,r){return $i(ae(e,t,n,s,r,!0))}function _n(e){return e?e.__v_isVNode===!0:!1}function it(e,t){return e.type===t.type&&e.key===t.key}const Nn="__vInternal",ji=({key:e})=>e??null,ln=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?ne(e)||he(e)||K(e)?{i:de,r:e,k:t,f:!!n}:e:null);function Vi(e,t=null,n=null,s=0,r=null,i=e===me?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ji(t),ref:t&&ln(t),scopeId:On,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:de};return l?(Fs(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=ne(n)?8:16),Dt>0&&!o&&Re&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&Re.push(c),c}const ae=Jl;function Jl(e,t=null,n=null,s=0,r=null,i=!1){if((!e||e===hi)&&(e=be),_n(e)){const l=Ze(e,t,!0);return n&&Fs(l,n),Dt>0&&!i&&Re&&(l.shapeFlag&6?Re[Re.indexOf(e)]=l:Re.push(l)),l.patchFlag|=-2,l}if(lc(e)&&(e=e.__vccOpts),t){t=Ql(t);let{class:l,style:c}=t;l&&!ne(l)&&(t.class=ws(l)),Z(c)&&(si(c)&&!B(c)&&(c=ie({},c)),t.style=bs(c))}const o=ne(e)?1:fl(e)?128:Xl(e)?64:Z(e)?4:K(e)?2:0;return Vi(e,t,n,s,r,o,i,!0)}function Ql(e){return e?si(e)||Nn in e?ie({},e):e:null}function Ze(e,t,n=!1){const{props:s,ref:r,patchFlag:i,children:o}=e,l=t?Zl(s||{},t):s;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&ji(l),ref:t&&t.ref?n&&r?B(r)?r.concat(ln(t)):[r,ln(t)]:ln(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!==me?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&&Ze(e.ssContent),ssFallback:e.ssFallback&&Ze(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function Di(e=" ",t=0){return ae(xt,null,e,t)}function Ga(e,t){const n=ae(Nt,null,e);return n.staticCount=t,n}function za(e="",t=!1){return t?(Fi(),Hi(be,null,e)):ae(be,null,e)}function Ae(e){return e==null||typeof e=="boolean"?ae(be):B(e)?ae(me,null,e.slice()):typeof e=="object"?Ge(e):ae(xt,null,String(e))}function Ge(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ze(e)}function Fs(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(B(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),Fs(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!(Nn in t)?t._ctx=de:r===3&&de&&(de.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else K(t)?(t={default:t,_ctx:de},n=32):(t=String(t),s&64?(n=16,t=[Di(t)]):n=8);e.children=t,e.shapeFlag|=n}function Zl(...e){const t={};for(let n=0;nce||de;let yn,hs;{const e=Br(),t=(n,s)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(s),i=>{r.length>1?r.forEach(o=>o(i)):r[0](i)}};yn=t("__VUE_INSTANCE_SETTERS__",n=>ce=n),hs=t("__VUE_SSR_SETTERS__",n=>$n=n)}const kt=e=>{const t=ce;return yn(e),e.scope.on(),()=>{e.scope.off(),yn(t)}},dr=()=>{ce&&ce.scope.off(),yn(null)};function Ui(e){return e.vnode.shapeFlag&4}let $n=!1;function sc(e,t=!1){t&&hs(t);const{props:n,children:s}=e.vnode,r=Ui(e);jl(e,n,r,t),Ul(e,s);const i=r?rc(e,t):void 0;return t&&hs(!1),i}function rc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=It(new Proxy(e.ctx,Rl));const{setup:s}=n;if(s){const r=e.setupContext=s.length>1?ki(e):null,i=kt(e);ut();const o=Ye(s,e,0,[e.props,r]);if(ft(),i(),Vr(o)){if(o.then(dr,dr),t)return o.then(l=>{hr(e,l,t)}).catch(l=>{Tn(l,e,0)});e.asyncDep=o}else hr(e,o,t)}else Bi(e,t)}function hr(e,t,n){K(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Z(t)&&(e.setupState=ci(t)),Bi(e,n)}let pr;function Bi(e,t,n){const s=e.type;if(!e.render){if(!t&&pr&&!s.render){const r=s.template||Ms(e).template;if(r){const{isCustomElement:i,compilerOptions:o}=e.appContext.config,{delimiters:l,compilerOptions:c}=s,u=ie(ie({isCustomElement:i,delimiters:l},o),c);s.render=pr(r,u)}}e.render=s.render||xe}{const r=kt(e);ut();try{Il(e)}finally{ft(),r()}}}function ic(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,n){return _e(e,"get","$attrs"),t[n]}}))}function ki(e){const t=n=>{e.exposed=n||{}};return{get attrs(){return ic(e)},slots:e.slots,emit:e.emit,expose:t}}function $s(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(ci(It(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Pt)return Pt[n](e)},has(t,n){return n in t||n in Pt}}))}function oc(e,t=!0){return K(e)?e.displayName||e.name:e.name||t&&e.__name}function lc(e){return K(e)&&"__vccOpts"in e}const se=(e,t)=>Wo(e,t,$n);function ps(e,t,n){const s=arguments.length;return s===2?Z(t)&&!B(t)?_n(t)?ae(e,null,[t]):ae(e,t):ae(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&_n(n)&&(n=[n]),ae(e,t,n))}const cc="3.4.21";/** -* @vue/runtime-dom v3.4.21 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/const ac="http://www.w3.org/2000/svg",uc="http://www.w3.org/1998/Math/MathML",ze=typeof document<"u"?document:null,gr=ze&&ze.createElement("template"),fc={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==="svg"?ze.createElementNS(ac,e):t==="mathml"?ze.createElementNS(uc,e):ze.createElement(e,n?{is:n}:void 0);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>ze.createTextNode(e),createComment:e=>ze.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ze.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{gr.innerHTML=s==="svg"?`${e}`:s==="mathml"?`${e}`:e;const l=gr.content;if(s==="svg"||s==="mathml"){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]}},ke="transition",Rt="animation",Ut=Symbol("_vtc"),Ki=(e,{slots:t})=>ps(_l,dc(e),t);Ki.displayName="Transition";const Wi={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};Ki.props=ie({},yi,Wi);const nt=(e,t=[])=>{B(e)?e.forEach(n=>n(...t)):e&&e(...t)},mr=e=>e?B(e)?e.some(t=>t.length>1):e.length>1:!1;function dc(e){const t={};for(const S in e)S in Wi||(t[S]=e[S]);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:u=o,appearToClass:d=l,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:m=`${n}-leave-active`,leaveToClass:w=`${n}-leave-to`}=e,O=hc(r),M=O&&O[0],V=O&&O[1],{onBeforeEnter:q,onEnter:J,onEnterCancelled:g,onLeave:_,onLeaveCancelled:P,onBeforeAppear:I=q,onAppear:D=J,onAppearCancelled:R=g}=t,H=(S,W,re)=>{st(S,W?d:l),st(S,W?u:o),re&&re()},E=(S,W)=>{S._isLeaving=!1,st(S,h),st(S,w),st(S,m),W&&W()},U=S=>(W,re)=>{const le=S?D:J,$=()=>H(W,S,re);nt(le,[W,$]),_r(()=>{st(W,S?c:i),Ke(W,S?d:l),mr(le)||yr(W,s,M,$)})};return ie(t,{onBeforeEnter(S){nt(q,[S]),Ke(S,i),Ke(S,o)},onBeforeAppear(S){nt(I,[S]),Ke(S,c),Ke(S,u)},onEnter:U(!1),onAppear:U(!0),onLeave(S,W){S._isLeaving=!0;const re=()=>E(S,W);Ke(S,h),mc(),Ke(S,m),_r(()=>{S._isLeaving&&(st(S,h),Ke(S,w),mr(_)||yr(S,s,V,re))}),nt(_,[S,re])},onEnterCancelled(S){H(S,!1),nt(g,[S])},onAppearCancelled(S){H(S,!0),nt(R,[S])},onLeaveCancelled(S){E(S),nt(P,[S])}})}function hc(e){if(e==null)return null;if(Z(e))return[qn(e.enter),qn(e.leave)];{const t=qn(e);return[t,t]}}function qn(e){return po(e)}function Ke(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Ut]||(e[Ut]=new Set)).add(t)}function st(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const n=e[Ut];n&&(n.delete(t),n.size||(e[Ut]=void 0))}function _r(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let pc=0;function yr(e,t,n,s){const r=e._endId=++pc,i=()=>{r===e._endId&&s()};if(n)return setTimeout(i,n);const{type:o,timeout:l,propCount:c}=gc(e,t);if(!o)return s();const u=o+"end";let d=0;const h=()=>{e.removeEventListener(u,m),i()},m=w=>{w.target===e&&++d>=c&&h()};setTimeout(()=>{d(n[O]||"").split(", "),r=s(`${ke}Delay`),i=s(`${ke}Duration`),o=vr(r,i),l=s(`${Rt}Delay`),c=s(`${Rt}Duration`),u=vr(l,c);let d=null,h=0,m=0;t===ke?o>0&&(d=ke,h=o,m=i.length):t===Rt?u>0&&(d=Rt,h=u,m=c.length):(h=Math.max(o,u),d=h>0?o>u?ke:Rt:null,m=d?d===ke?i.length:c.length:0);const w=d===ke&&/\b(transform|all)(,|$)/.test(s(`${ke}Property`).toString());return{type:d,timeout:h,propCount:m,hasTransform:w}}function vr(e,t){for(;e.lengthbr(n)+br(e[s])))}function br(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function mc(){return document.body.offsetHeight}function _c(e,t,n){const s=e[Ut];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const wr=Symbol("_vod"),yc=Symbol("_vsh"),vc=Symbol(""),bc=/(^|;)\s*display\s*:/;function wc(e,t,n){const s=e.style,r=ne(n);let i=!1;if(n&&!r){if(t)if(ne(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();n[l]==null&&cn(s,l,"")}else for(const o in t)n[o]==null&&cn(s,o,"");for(const o in n)o==="display"&&(i=!0),cn(s,o,n[o])}else if(r){if(t!==n){const o=s[vc];o&&(n+=";"+o),s.cssText=n,i=bc.test(n)}}else t&&e.removeAttribute("style");wr in e&&(e[wr]=i?s.display:"",e[yc]&&(s.display="none"))}const Er=/\s*!important$/;function cn(e,t,n){if(B(n))n.forEach(s=>cn(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=Ec(e,t);Er.test(n)?e.setProperty(at(s),n.replace(Er,""),"important"):e[s]=n}}const Cr=["Webkit","Moz","ms"],Gn={};function Ec(e,t){const n=Gn[t];if(n)return n;let s=Me(t);if(s!=="filter"&&s in e)return Gn[t]=s;s=En(s);for(let r=0;rzn||(Oc.then(()=>zn=0),zn=Date.now());function Lc(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;Se(Pc(s,n.value),t,5,[s])};return n.value=e,n.attached=Ic(),n}function Pc(e,t){if(B(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 Ar=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Mc=(e,t,n,s,r,i,o,l,c)=>{const u=r==="svg";t==="class"?_c(e,s,u):t==="style"?wc(e,n,s):Bt(t)?_s(t)||Ac(e,t,n,s,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Nc(e,t,s,u))?xc(e,t,s,i,o,l,c):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Cc(e,t,s,u))};function Nc(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&Ar(t)&&K(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return Ar(t)&&ne(n)?!1:t in e}const Fc=["ctrl","shift","alt","meta"],$c={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)=>Fc.some(n=>e[`${n}Key`]&&!t.includes(n))},Xa=(e,t)=>{const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=(r,...i)=>{for(let o=0;o{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=r=>{if(!("key"in r))return;const i=at(r.key);if(t.some(o=>o===i||Hc[o]===i))return e(r)})},jc=ie({patchProp:Mc},fc);let Xn,Rr=!1;function Vc(){return Xn=Rr?Xn:ql(jc),Rr=!0,Xn}const Ja=(...e)=>{const t=Vc().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Uc(s);if(r)return n(r,!0,Dc(r))},t};function Dc(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Uc(e){return ne(e)?document.querySelector(e):e}const Qa=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},Bc="modulepreload",kc=function(e){return"/docs/"+e},Or={},Za=function(t,n,s){let r=Promise.resolve();if(n&&n.length>0){const i=document.getElementsByTagName("link");r=Promise.all(n.map(o=>{if(o=kc(o),o in Or)return;Or[o]=!0;const l=o.endsWith(".css"),c=l?'[rel="stylesheet"]':"";if(!!s)for(let h=i.length-1;h>=0;h--){const m=i[h];if(m.href===o&&(!l||m.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${o}"]${c}`))return;const d=document.createElement("link");if(d.rel=l?"stylesheet":Bc,l||(d.as="script",d.crossOrigin=""),d.href=o,document.head.appendChild(d),l)return new Promise((h,m)=>{d.addEventListener("load",h),d.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${o}`)))})}))}return r.then(()=>t()).catch(i=>{const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=i,window.dispatchEvent(o),!o.defaultPrevented)throw i})},Kc=window.__VP_SITE_DATA__;function Hs(e){return Wr()?(Co(e),!0):!1}function Je(e){return typeof e=="function"?e():li(e)}const qi=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Wc=Object.prototype.toString,qc=e=>Wc.call(e)==="[object Object]",$t=()=>{},gs=Gc();function Gc(){var e,t;return qi&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function zc(e,t){function n(...s){return new Promise((r,i)=>{Promise.resolve(e(()=>t.apply(this,s),{fn:t,thisArg:this,args:s})).then(r).catch(i)})}return n}const Gi=e=>e();function Xc(e=Gi){const t=fe(!0);function n(){t.value=!1}function s(){t.value=!0}const r=(...i)=>{t.value&&e(...i)};return{isActive:Sn(t),pause:n,resume:s,eventFilter:r}}function Yc(e){return e||Fn()}function zi(...e){if(e.length!==1)return Qo(...e);const t=e[0];return typeof t=="function"?Sn(Xo(()=>({get:t,set:$t}))):fe(t)}function Jc(e,t,n={}){const{eventFilter:s=Gi,...r}=n;return je(e,zc(s,t),r)}function Qc(e,t,n={}){const{eventFilter:s,...r}=n,{eventFilter:i,pause:o,resume:l,isActive:c}=Xc(s);return{stop:Jc(e,t,{...r,eventFilter:i}),pause:o,resume:l,isActive:c}}function js(e,t=!0,n){Yc()?Tt(e,n):t?e():An(e)}function gt(e){var t;const n=Je(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Ne=qi?window:void 0;function Ve(...e){let t,n,s,r;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,s,r]=e,t=Ne):[t,n,s,r]=e,!t)return $t;Array.isArray(n)||(n=[n]),Array.isArray(s)||(s=[s]);const i=[],o=()=>{i.forEach(d=>d()),i.length=0},l=(d,h,m,w)=>(d.addEventListener(h,m,w),()=>d.removeEventListener(h,m,w)),c=je(()=>[gt(t),Je(r)],([d,h])=>{if(o(),!d)return;const m=qc(h)?{...h}:h;i.push(...n.flatMap(w=>s.map(O=>l(d,w,O,m))))},{immediate:!0,flush:"post"}),u=()=>{c(),o()};return Hs(u),u}let Ir=!1;function eu(e,t,n={}){const{window:s=Ne,ignore:r=[],capture:i=!0,detectIframe:o=!1}=n;if(!s)return $t;gs&&!Ir&&(Ir=!0,Array.from(s.document.body.children).forEach(m=>m.addEventListener("click",$t)),s.document.documentElement.addEventListener("click",$t));let l=!0;const c=m=>r.some(w=>{if(typeof w=="string")return Array.from(s.document.querySelectorAll(w)).some(O=>O===m.target||m.composedPath().includes(O));{const O=gt(w);return O&&(m.target===O||m.composedPath().includes(O))}}),d=[Ve(s,"click",m=>{const w=gt(e);if(!(!w||w===m.target||m.composedPath().includes(w))){if(m.detail===0&&(l=!c(m)),!l){l=!0;return}t(m)}},{passive:!0,capture:i}),Ve(s,"pointerdown",m=>{const w=gt(e);l=!c(m)&&!!(w&&!m.composedPath().includes(w))},{passive:!0}),o&&Ve(s,"blur",m=>{setTimeout(()=>{var w;const O=gt(e);((w=s.document.activeElement)==null?void 0:w.tagName)==="IFRAME"&&!(O!=null&&O.contains(s.document.activeElement))&&t(m)},0)})].filter(Boolean);return()=>d.forEach(m=>m())}function Zc(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function tu(...e){let t,n,s={};e.length===3?(t=e[0],n=e[1],s=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],s=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:r=Ne,eventName:i="keydown",passive:o=!1,dedupe:l=!1}=s,c=Zc(t);return Ve(r,i,d=>{d.repeat&&Je(l)||c(d)&&n(d)},o)}function ea(){const e=fe(!1),t=Fn();return t&&Tt(()=>{e.value=!0},t),e}function ta(e){const t=ea();return se(()=>(t.value,!!e()))}function Xi(e,t={}){const{window:n=Ne}=t,s=ta(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let r;const i=fe(!1),o=u=>{i.value=u.matches},l=()=>{r&&("removeEventListener"in r?r.removeEventListener("change",o):r.removeListener(o))},c=mi(()=>{s.value&&(l(),r=n.matchMedia(Je(e)),"addEventListener"in r?r.addEventListener("change",o):r.addListener(o),i.value=r.matches)});return Hs(()=>{c(),l(),r=void 0}),i}const tn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},nn="__vueuse_ssr_handlers__",na=sa();function sa(){return nn in tn||(tn[nn]=tn[nn]||{}),tn[nn]}function Yi(e,t){return na[e]||t}function ra(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const ia={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Lr="vueuse-storage";function oa(e,t,n,s={}){var r;const{flush:i="pre",deep:o=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:u=!1,shallow:d,window:h=Ne,eventFilter:m,onError:w=E=>{console.error(E)},initOnMounted:O}=s,M=(d?ii:fe)(typeof t=="function"?t():t);if(!n)try{n=Yi("getDefaultStorage",()=>{var E;return(E=Ne)==null?void 0:E.localStorage})()}catch(E){w(E)}if(!n)return M;const V=Je(t),q=ra(V),J=(r=s.serializer)!=null?r:ia[q],{pause:g,resume:_}=Qc(M,()=>I(M.value),{flush:i,deep:o,eventFilter:m});h&&l&&js(()=>{Ve(h,"storage",R),Ve(h,Lr,H),O&&R()}),O||R();function P(E,U){h&&h.dispatchEvent(new CustomEvent(Lr,{detail:{key:e,oldValue:E,newValue:U,storageArea:n}}))}function I(E){try{const U=n.getItem(e);if(E==null)P(U,null),n.removeItem(e);else{const S=J.write(E);U!==S&&(n.setItem(e,S),P(U,S))}}catch(U){w(U)}}function D(E){const U=E?E.newValue:n.getItem(e);if(U==null)return c&&V!=null&&n.setItem(e,J.write(V)),V;if(!E&&u){const S=J.read(U);return typeof u=="function"?u(S,V):q==="object"&&!Array.isArray(S)?{...V,...S}:S}else return typeof U!="string"?U:J.read(U)}function R(E){if(!(E&&E.storageArea!==n)){if(E&&E.key==null){M.value=V;return}if(!(E&&E.key!==e)){g();try{(E==null?void 0:E.newValue)!==J.write(M.value)&&(M.value=D(E))}catch(U){w(U)}finally{E?An(_):_()}}}}function H(E){R(E.detail)}return M}function Ji(e){return Xi("(prefers-color-scheme: dark)",e)}function la(e={}){const{selector:t="html",attribute:n="class",initialValue:s="auto",window:r=Ne,storage:i,storageKey:o="vueuse-color-scheme",listenToStorageChanges:l=!0,storageRef:c,emitAuto:u,disableTransition:d=!0}=e,h={auto:"",light:"light",dark:"dark",...e.modes||{}},m=Ji({window:r}),w=se(()=>m.value?"dark":"light"),O=c||(o==null?zi(s):oa(o,s,i,{window:r,listenToStorageChanges:l})),M=se(()=>O.value==="auto"?w.value:O.value),V=Yi("updateHTMLAttrs",(_,P,I)=>{const D=typeof _=="string"?r==null?void 0:r.document.querySelector(_):gt(_);if(!D)return;let R;if(d){R=r.document.createElement("style");const H="*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";R.appendChild(document.createTextNode(H)),r.document.head.appendChild(R)}if(P==="class"){const H=I.split(/\s/g);Object.values(h).flatMap(E=>(E||"").split(/\s/g)).filter(Boolean).forEach(E=>{H.includes(E)?D.classList.add(E):D.classList.remove(E)})}else D.setAttribute(P,I);d&&(r.getComputedStyle(R).opacity,document.head.removeChild(R))});function q(_){var P;V(t,n,(P=h[_])!=null?P:_)}function J(_){e.onChanged?e.onChanged(_,q):q(_)}je(M,J,{flush:"post",immediate:!0}),js(()=>J(M.value));const g=se({get(){return u?O.value:M.value},set(_){O.value=_}});try{return Object.assign(g,{store:O,system:w,state:M})}catch{return g}}function ca(e={}){const{valueDark:t="dark",valueLight:n="",window:s=Ne}=e,r=la({...e,onChanged:(l,c)=>{var u;e.onChanged?(u=e.onChanged)==null||u.call(e,l==="dark",c,l):c(l)},modes:{dark:t,light:n}}),i=se(()=>r.system?r.system.value:Ji({window:s}).value?"dark":"light");return se({get(){return r.value==="dark"},set(l){const c=l?"dark":"light";i.value===c?r.value="auto":r.value=c}})}function Yn(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function Qi(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const sn=new WeakMap;function nu(e,t=!1){const n=fe(t);let s=null;je(zi(e),o=>{const l=Yn(Je(o));if(l){const c=l;sn.get(c)||sn.set(c,c.style.overflow),n.value&&(c.style.overflow="hidden")}},{immediate:!0});const r=()=>{const o=Yn(Je(e));!o||n.value||(gs&&(s=Ve(o,"touchmove",l=>{aa(l)},{passive:!1})),o.style.overflow="hidden",n.value=!0)},i=()=>{var o;const l=Yn(Je(e));!l||!n.value||(gs&&(s==null||s()),l.style.overflow=(o=sn.get(l))!=null?o:"",sn.delete(l),n.value=!1)};return Hs(i),se({get(){return n.value},set(o){o?r():i()}})}function su(e={}){const{window:t=Ne,behavior:n="auto"}=e;if(!t)return{x:fe(0),y:fe(0)};const s=fe(t.scrollX),r=fe(t.scrollY),i=se({get(){return s.value},set(l){scrollTo({left:l,behavior:n})}}),o=se({get(){return r.value},set(l){scrollTo({top:l,behavior:n})}});return Ve(t,"scroll",()=>{s.value=t.scrollX,r.value=t.scrollY},{capture:!1,passive:!0}),{x:i,y:o}}function ru(e={}){const{window:t=Ne,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:s=Number.POSITIVE_INFINITY,listenOrientation:r=!0,includeScrollbar:i=!0}=e,o=fe(n),l=fe(s),c=()=>{t&&(i?(o.value=t.innerWidth,l.value=t.innerHeight):(o.value=t.document.documentElement.clientWidth,l.value=t.document.documentElement.clientHeight))};if(c(),js(c),Ve("resize",c,{passive:!0}),r){const u=Xi("(orientation: portrait)");je(u,()=>c())}return{width:o,height:l}}var Jn={BASE_URL:"/docs/",MODE:"production",DEV:!1,PROD:!0,SSR:!1},Qn={};const Zi=/^(?:[a-z]+:|\/\/)/i,ua="vitepress-theme-appearance",fa=/#.*$/,da=/[?#].*$/,ha=/(?:(^|\/)index)?\.(?:md|html)$/,Ce=typeof document<"u",eo={relativePath:"",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function pa(e,t,n=!1){if(t===void 0)return!1;if(e=Pr(`/${e}`),n)return new RegExp(t).test(e);if(Pr(t)!==e)return!1;const s=t.match(fa);return s?(Ce?location.hash:"")===s[0]:!0}function Pr(e){return decodeURI(e).replace(da,"").replace(ha,"$1")}function ga(e){return Zi.test(e)}function ma(e,t){var s,r,i,o,l,c,u;const n=Object.keys(e.locales).find(d=>d!=="root"&&!ga(d)&&pa(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:no(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(u=e.locales[n])==null?void 0:u.themeConfig}})}function to(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=_a(e.title,s);return n===r.slice(3)?n:`${n}${r}`}function _a(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function ya(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 no(e,t){return[...e.filter(n=>!ya(t,n)),...t]}const va=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,ba=/^[a-z]:/i;function Mr(e){const t=ba.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(va,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const Zn=new Set;function wa(e){if(Zn.size===0){const n=typeof process=="object"&&(Qn==null?void 0:Qn.VITE_EXTRA_EXTENSIONS)||(Jn==null?void 0:Jn.VITE_EXTRA_EXTENSIONS)||"";("3g2,3gp,aac,ai,apng,au,avif,bin,bmp,cer,class,conf,crl,css,csv,dll,doc,eps,epub,exe,gif,gz,ics,ief,jar,jpe,jpeg,jpg,js,json,jsonld,m4a,man,mid,midi,mjs,mov,mp2,mp3,mp4,mpe,mpeg,mpg,mpp,oga,ogg,ogv,ogx,opus,otf,p10,p7c,p7m,p7s,pdf,png,ps,qt,roff,rtf,rtx,ser,svg,t,tif,tiff,tr,ts,tsv,ttf,txt,vtt,wav,weba,webm,webp,woff,woff2,xhtml,xml,yaml,yml,zip"+(n&&typeof n=="string"?","+n:"")).split(",").forEach(s=>Zn.add(s))}const t=e.split(".").pop();return t==null||!Zn.has(t.toLowerCase())}const Ea=Symbol(),ct=ii(Kc);function iu(e){const t=se(()=>ma(ct.value,e.data.relativePath)),n=t.value.appearance,s=n==="force-dark"?fe(!0):n?ca({storageKey:ua,initialValue:()=>typeof n=="string"?n:"auto",...typeof n=="object"?n:{}}):fe(!1);return{site:t,theme:se(()=>t.value.themeConfig),page:se(()=>e.data),frontmatter:se(()=>e.data.frontmatter),params:se(()=>e.data.params),lang:se(()=>t.value.lang),dir:se(()=>e.data.frontmatter.dir||t.value.dir),localeIndex:se(()=>t.value.localeIndex||"root"),title:se(()=>to(t.value,e.data)),description:se(()=>e.data.description||t.value.description),isDark:s}}function Ca(){const e=Et(Ea);if(!e)throw new Error("vitepress data not properly injected in app");return e}function xa(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function Nr(e){return Zi.test(e)||!e.startsWith("/")?e:xa(ct.value.base,e)}function Sa(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),Ce){const n="/docs/";t=Mr(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let s=__VP_HASH_MAP__[t.toLowerCase()];if(s||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",s=__VP_HASH_MAP__[t.toLowerCase()]),!s)return null;t=`${n}assets/${t}.${s}.js`}else t=`./${Mr(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let an=[];function ou(e){an.push(e),Mn(()=>{an=an.filter(t=>t!==e)})}function Ta(){let e=ct.value.scrollOffset,t=0,n=24;if(typeof e=="object"&&"padding"in e&&(n=e.padding,e=e.selector),typeof e=="number")t=e;else if(typeof e=="string")t=Fr(e,n);else if(Array.isArray(e))for(const s of e){const r=Fr(s,n);if(r){t=r;break}}return t}function Fr(e,t){const n=document.querySelector(e);if(!n)return 0;const s=n.getBoundingClientRect().bottom;return s<0?0:s+t}const Aa=Symbol(),Vs="http://a.com",Ra=()=>({path:"/",component:null,data:eo});function lu(e,t){const n=xn(Ra()),s={route:n,go:r};async function r(l=Ce?location.href:"/"){var c,u;l=vn(l),await((c=s.onBeforeRouteChange)==null?void 0:c.call(s,l))!==!1&&(Hr(l),await o(l),await((u=s.onAfterRouteChanged)==null?void 0:u.call(s,l)))}let i=null;async function o(l,c=0,u=!1){var m;if(await((m=s.onBeforePageLoad)==null?void 0:m.call(s,l))===!1)return;const d=new URL(l,Vs),h=i=d.pathname;try{let w=await e(h);if(!w)throw new Error(`Page not found: ${h}`);if(i===h){i=null;const{default:O,__pageData:M}=w;if(!O)throw new Error(`Invalid route component: ${O}`);n.path=Ce?h:Nr(h),n.component=It(O),n.data=It(M),Ce&&An(()=>{let V=ct.value.base+M.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!ct.value.cleanUrls&&!V.endsWith("/")&&(V+=".html"),V!==d.pathname&&(d.pathname=V,l=V+d.search+d.hash,history.replaceState(null,"",l)),d.hash&&!c){let q=null;try{q=document.getElementById(decodeURIComponent(d.hash).slice(1))}catch(J){console.warn(J)}if(q){$r(q,d.hash);return}}window.scrollTo(0,c)})}}catch(w){if(!/fetch|Page not found/.test(w.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(w),!u)try{const O=await fetch(ct.value.base+"hashmap.json");window.__VP_HASH_MAP__=await O.json(),await o(l,c,!0);return}catch{}i===h&&(i=null,n.path=Ce?h:Nr(h),n.component=t?It(t):null,n.data=eo)}}return Ce&&(window.addEventListener("click",l=>{if(l.target.closest("button"))return;const u=l.target.closest("a");if(u&&!u.closest(".vp-raw")&&(u instanceof SVGElement||!u.download)){const{target:d}=u,{href:h,origin:m,pathname:w,hash:O,search:M}=new URL(u.href instanceof SVGAnimatedString?u.href.animVal:u.href,u.baseURI),V=new URL(window.location.href);!l.ctrlKey&&!l.shiftKey&&!l.altKey&&!l.metaKey&&!d&&m===V.origin&&wa(w)&&(l.preventDefault(),w===V.pathname&&M===V.search?(O!==V.hash&&(history.pushState(null,"",O),window.dispatchEvent(new Event("hashchange"))),O?$r(u,O,u.classList.contains("header-anchor")):(Hr(h,!1),window.scrollTo(0,0))):r(h))}},{capture:!0}),window.addEventListener("popstate",async l=>{var c;await o(vn(location.href),l.state&&l.state.scrollPosition||0),(c=s.onAfterRouteChanged)==null||c.call(s,location.href)}),window.addEventListener("hashchange",l=>{l.preventDefault()})),s}function Oa(){const e=Et(Aa);if(!e)throw new Error("useRouter() is called without provider.");return e}function so(){return Oa().route}function $r(e,t,n=!1){let s=null;try{s=e.classList.contains("header-anchor")?e:document.getElementById(decodeURIComponent(t).slice(1))}catch(r){console.warn(r)}if(s){let r=function(){!n||Math.abs(o-window.scrollY)>window.innerHeight?window.scrollTo(0,o):window.scrollTo({left:0,top:o,behavior:"smooth"})};const i=parseInt(window.getComputedStyle(s).paddingTop,10),o=window.scrollY+s.getBoundingClientRect().top-Ta()+i;requestAnimationFrame(r)}}function Hr(e,t=!0){if(Ce&&vn(e)!==vn(location.href)){const n=location.hash;history.replaceState({scrollPosition:window.scrollY},document.title),history.pushState(null,"",e),t&&new URL(e,Vs).hash!==n&&window.dispatchEvent(new Event("hashchange"))}}function vn(e){const t=new URL(e,Vs);return t.pathname=t.pathname.replace(/(^|\/)index(\.html)?$/,"$1"),ct.value.cleanUrls?t.pathname=t.pathname.replace(/\.html$/,""):!t.pathname.endsWith("/")&&!t.pathname.endsWith(".html")&&(t.pathname+=".html"),t.pathname+t.search+t.hash}const es=()=>an.forEach(e=>e()),cu=wi({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=so(),{site:n}=Ca();return()=>ps(e.as,n.value.contentProps??{style:{position:"relative"}},[t.component?ps(t.component,{onVnodeMounted:es,onVnodeUpdated:es,onVnodeUnmounted:es}):"404 Page Not Found"])}}),au=wi({setup(e,{slots:t}){const n=fe(!1);return Tt(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function uu(){Ce&&window.addEventListener("click",e=>{var n;const t=e.target;if(t.matches(".vp-code-group input")){const s=(n=t.parentElement)==null?void 0:n.parentElement;if(!s)return;const r=Array.from(s.querySelectorAll("input")).indexOf(t);if(r<0)return;const i=s.querySelector(".blocks");if(!i)return;const o=Array.from(i.children).find(u=>u.classList.contains("active"));if(!o)return;const l=i.children[r];if(!l||o===l)return;o.classList.remove("active"),l.classList.add("active");const c=s==null?void 0:s.querySelector(`label[for="${t.id}"]`);c==null||c.scrollIntoView({block:"nearest"})}})}function fu(){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),l=[".vp-copy-ignore",".diff.remove"],c=i.cloneNode(!0);c.querySelectorAll(l.join(",")).forEach(d=>d.remove());let u=c.textContent||"";o&&(u=u.replace(/^ *(\$|>) /gm,"").trim()),Ia(u).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const d=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,d)})}})}}async function Ia(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 du(e,t){let n=!0,s=[];const r=i=>{if(n){n=!1,i.forEach(l=>{const c=ts(l);for(const u of document.head.children)if(u.isEqualNode(c)){s.push(u);return}});return}const o=i.map(ts);s.forEach((l,c)=>{const u=o.findIndex(d=>d==null?void 0:d.isEqualNode(l??null));u!==-1?delete o[u]:(l==null||l.remove(),delete s[c])}),o.forEach(l=>l&&document.head.appendChild(l)),s=[...s,...o].filter(Boolean)};mi(()=>{const i=e.data,o=t.value,l=i&&i.description,c=i&&i.frontmatter.head||[],u=to(o,i);u!==document.title&&(document.title=u);const d=l||o.description;let h=document.querySelector("meta[name=description]");h?h.getAttribute("content")!==d&&h.setAttribute("content",d):ts(["meta",{name:"description",content:d}]),r(no(o.head,Pa(c)))})}function ts([e,t,n]){const s=document.createElement(e);for(const r in t)s.setAttribute(r,t[r]);return n&&(s.innerHTML=n),e==="script"&&!t.async&&(s.async=!1),s}function La(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function Pa(e){return e.filter(t=>!La(t))}const ns=new Set,ro=()=>document.createElement("link"),Ma=e=>{const t=ro();t.rel="prefetch",t.href=e,document.head.appendChild(t)},Na=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let rn;const Fa=Ce&&(rn=ro())&&rn.relList&&rn.relList.supports&&rn.relList.supports("prefetch")?Ma:Na;function hu(){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(!ns.has(c)){ns.add(c);const u=Sa(c);u&&Fa(u)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(i=>{const{hostname:o,pathname:l}=new URL(i.href instanceof SVGAnimatedString?i.href.animVal:i.href,i.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||i.target!=="_blank"&&o===location.hostname&&(l!==location.pathname?n.observe(i):ns.add(l))})})};Tt(s);const r=so();je(()=>r.path,s),Mn(()=>{n&&n.disconnect()})}export{Ka as $,Mn as A,Ua as B,Cl as C,Ta as D,Va as E,me as F,Ba as G,ii as H,ou as I,ae as J,Da as K,Zi as L,so as M,Zl as N,Et as O,ru as P,bs as Q,eu as R,tu as S,Ki as T,An as U,su as V,Sn as W,nu as X,Hl as Y,Ya as Z,Qa as _,Di as a,Xa as a0,Wa as a1,Ga as a2,du as a3,Aa as a4,iu as a5,Ea as a6,cu as a7,au as a8,ct as a9,Ja as aa,lu as ab,Sa as ac,Za as ad,hu as ae,fu as af,uu as ag,ps as ah,Hi as b,qa as c,wi as d,za as e,wa as f,Nr as g,fe as h,ga as i,Ce as j,se as k,Tt as l,Vi as m,ws as n,Fi as o,li as p,Ha as q,ka as r,ja as s,$a as t,Ca as u,pa as v,ol as w,Xi as x,je as y,mi as z}; diff --git a/docs/assets/chunks/theme.Dex_2nXA.js b/docs/assets/chunks/theme.Dex_2nXA.js new file mode 100644 index 0000000..7c8ad24 --- /dev/null +++ b/docs/assets/chunks/theme.Dex_2nXA.js @@ -0,0 +1 @@ +import{d as _,o as a,c,r as l,n as T,a as D,t as I,b,w as v,e as f,T as de,_ as k,u as Oe,i as Ue,f as Ge,g as ve,h as $,j as p,k as r,p as C,l as H,m as z,q as ie,s as w,v as j,x as Z,y as R,z as pe,A as ge,B as je,C as ze,D as q,F as M,E,G as ye,H as x,I as m,J as K,K as Pe,L as ee,M as Y,N as te,O as qe,P as Le,Q as We,R as Ke,S as Ve,U as oe,V as Re,W as Se,X as Ie,Y as Je,Z as Ye,$ as Qe,a0 as Xe}from"./framework.DVk8Vg-1.js";const Ze=_({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(o){return(e,t)=>(a(),c("span",{class:T(["VPBadge",e.type])},[l(e.$slots,"default",{},()=>[D(I(e.text),1)])],2))}}),xe={key:0,class:"VPBackdrop"},et=_({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(o){return(e,t)=>(a(),b(de,{name:"fade"},{default:v(()=>[e.show?(a(),c("div",xe)):f("",!0)]),_:1}))}}),tt=k(et,[["__scopeId","data-v-dfe13b38"]]),L=Oe;function ot(o,e){let t,n=!1;return()=>{t&&clearTimeout(t),n?t=setTimeout(o,e):(o(),(n=!0)&&setTimeout(()=>n=!1,e))}}function le(o){return/^\//.test(o)?o:`/${o}`}function he(o){const{pathname:e,search:t,hash:n,protocol:s}=new URL(o,"http://a.com");if(Ue(o)||o.startsWith("#")||!s.startsWith("http")||!Ge(e))return o;const{site:i}=L(),u=e.endsWith("/")||e.endsWith(".html")?o:o.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,i.value.cleanUrls?"":".html")}${t}${n}`);return ve(u)}function J({correspondingLink:o=!1}={}){const{site:e,localeIndex:t,page:n,theme:s,hash:i}=L(),u=$(()=>{var d,g;return{label:(d=e.value.locales[t.value])==null?void 0:d.label,link:((g=e.value.locales[t.value])==null?void 0:g.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:$(()=>Object.entries(e.value.locales).flatMap(([d,g])=>u.value.label===g.label?[]:{text:g.label,link:st(g.link||(d==="root"?"/":`/${d}/`),s.value.i18nRouting!==!1&&o,n.value.relativePath.slice(u.value.link.length-1),!e.value.cleanUrls)+i.value})),currentLang:u}}function st(o,e,t,n){return e?o.replace(/\/$/,"")+le(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,n?".html":"")):o}const nt=o=>(C("data-v-8fd22e68"),o=o(),H(),o),at={class:"NotFound"},rt={class:"code"},it={class:"title"},lt=nt(()=>p("div",{class:"divider"},null,-1)),ct={class:"quote"},ut={class:"action"},dt=["href","aria-label"],vt=_({__name:"NotFound",setup(o){const{theme:e}=L(),{currentLang:t}=J();return(n,s)=>{var i,u,h,d,g;return a(),c("div",at,[p("p",rt,I(((i=r(e).notFound)==null?void 0:i.code)??"404"),1),p("h1",it,I(((u=r(e).notFound)==null?void 0:u.title)??"PAGE NOT FOUND"),1),lt,p("blockquote",ct,I(((h=r(e).notFound)==null?void 0:h.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),p("div",ut,[p("a",{class:"link",href:r(ve)(r(t).link),"aria-label":((d=r(e).notFound)==null?void 0:d.linkLabel)??"go to home"},I(((g=r(e).notFound)==null?void 0:g.linkText)??"Take me home"),9,dt)])])}}}),pt=k(vt,[["__scopeId","data-v-8fd22e68"]]);function we(o,e){if(Array.isArray(o))return Q(o);if(o==null)return[];e=le(e);const t=Object.keys(o).sort((s,i)=>i.split("/").length-s.split("/").length).find(s=>e.startsWith(le(s))),n=t?o[t]:[];return Array.isArray(n)?Q(n):Q(n.items,n.base)}function ht(o){const e=[];let t=0;for(const n in o){const s=o[n];if(s.items){t=e.push(s);continue}e[t]||e.push({items:[]}),e[t].items.push(s)}return e}function ft(o){const e=[];function t(n){for(const s of n)s.text&&s.link&&e.push({text:s.text,link:s.link,docFooterText:s.docFooterText}),s.items&&t(s.items)}return t(o),e}function ce(o,e){return Array.isArray(e)?e.some(t=>ce(o,t)):z(o,e.link)?!0:e.items?ce(o,e.items):!1}function Q(o,e){return[...o].map(t=>{const n={...t},s=n.base||e;return s&&n.link&&(n.link=s+n.link),n.items&&(n.items=Q(n.items,s)),n})}function O(){const{frontmatter:o,page:e,theme:t}=L(),n=ie("(min-width: 960px)"),s=w(!1),i=$(()=>{const B=t.value.sidebar,S=e.value.relativePath;return B?we(B,S):[]}),u=w(i.value);j(i,(B,S)=>{JSON.stringify(B)!==JSON.stringify(S)&&(u.value=i.value)});const h=$(()=>o.value.sidebar!==!1&&u.value.length>0&&o.value.layout!=="home"),d=$(()=>g?o.value.aside==null?t.value.aside==="left":o.value.aside==="left":!1),g=$(()=>o.value.layout==="home"?!1:o.value.aside!=null?!!o.value.aside:t.value.aside!==!1),P=$(()=>h.value&&n.value),y=$(()=>h.value?ht(u.value):[]);function V(){s.value=!0}function N(){s.value=!1}function A(){s.value?N():V()}return{isOpen:s,sidebar:u,sidebarGroups:y,hasSidebar:h,hasAside:g,leftAside:d,isSidebarEnabled:P,open:V,close:N,toggle:A}}function _t(o,e){let t;Z(()=>{t=o.value?document.activeElement:void 0}),R(()=>{window.addEventListener("keyup",n)}),pe(()=>{window.removeEventListener("keyup",n)});function n(s){s.key==="Escape"&&o.value&&(e(),t==null||t.focus())}}function mt(o){const{page:e,hash:t}=L(),n=w(!1),s=$(()=>o.value.collapsed!=null),i=$(()=>!!o.value.link),u=w(!1),h=()=>{u.value=z(e.value.relativePath,o.value.link)};j([e,o,t],h),R(h);const d=$(()=>u.value?!0:o.value.items?ce(e.value.relativePath,o.value.items):!1),g=$(()=>!!(o.value.items&&o.value.items.length));Z(()=>{n.value=!!(s.value&&o.value.collapsed)}),ge(()=>{(u.value||d.value)&&(n.value=!1)});function P(){s.value&&(n.value=!n.value)}return{collapsed:n,collapsible:s,isLink:i,isActiveLink:u,hasActiveLink:d,hasChildren:g,toggle:P}}function kt(){const{hasSidebar:o}=O(),e=ie("(min-width: 960px)"),t=ie("(min-width: 1280px)");return{isAsideEnabled:$(()=>!t.value&&!e.value?!1:o.value?t.value:e.value)}}const ue=[];function Te(o){return typeof o.outline=="object"&&!Array.isArray(o.outline)&&o.outline.label||o.outlineTitle||"On this page"}function fe(o){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const n=Number(t.tagName[1]);return{element:t,title:bt(t),link:"#"+t.id,level:n}});return $t(e,o)}function bt(o){let e="";for(const t of o.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function $t(o,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[n,s]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;o=o.filter(u=>u.level>=n&&u.level<=s),ue.length=0;for(const{element:u,link:h}of o)ue.push({element:u,link:h});const i=[];e:for(let u=0;u=0;d--){const g=o[d];if(g.level{requestAnimationFrame(i),window.addEventListener("scroll",n)}),je(()=>{u(location.hash)}),pe(()=>{window.removeEventListener("scroll",n)});function i(){if(!t.value)return;const h=window.scrollY,d=window.innerHeight,g=document.body.offsetHeight,P=Math.abs(h+d-g)<1,y=ue.map(({element:N,link:A})=>({link:A,top:yt(N)})).filter(({top:N})=>!Number.isNaN(N)).sort((N,A)=>N.top-A.top);if(!y.length){u(null);return}if(h<1){u(null);return}if(P){u(y[y.length-1].link);return}let V=null;for(const{link:N,top:A}of y){if(A>h+ze()+4)break;V=N}u(V)}function u(h){s&&s.classList.remove("active"),h==null?s=null:s=o.value.querySelector(`a[href="${decodeURIComponent(h)}"]`);const d=s;d?(d.classList.add("active"),e.value.style.top=d.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function yt(o){let e=0;for(;o!==document.body;){if(o===null)return NaN;e+=o.offsetTop,o=o.offsetParent}return e}const Pt=["href","title"],Lt=_({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(o){function e({target:t}){const n=t.href.split("#")[1],s=document.getElementById(decodeURIComponent(n));s==null||s.focus({preventScroll:!0})}return(t,n)=>{const s=q("VPDocOutlineItem",!0);return a(),c("ul",{class:T(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),c(M,null,E(t.headers,({children:i,link:u,title:h})=>(a(),c("li",null,[p("a",{class:"outline-link",href:u,onClick:e,title:h},I(h),9,Pt),i!=null&&i.length?(a(),b(s,{key:0,headers:i},null,8,["headers"])):f("",!0)]))),256))],2)}}}),Ne=k(Lt,[["__scopeId","data-v-8855adee"]]),Vt={class:"content"},St={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},It=_({__name:"VPDocAsideOutline",setup(o){const{frontmatter:e,theme:t}=L(),n=ye([]);x(()=>{n.value=fe(e.value.outline??t.value.outline)});const s=w(),i=w();return gt(s,i),(u,h)=>(a(),c("nav",{"aria-labelledby":"doc-outline-aria-label",class:T(["VPDocAsideOutline",{"has-outline":n.value.length>0}]),ref_key:"container",ref:s},[p("div",Vt,[p("div",{class:"outline-marker",ref_key:"marker",ref:i},null,512),p("div",St,I(r(Te)(r(t))),1),m(Ne,{headers:n.value,root:!0},null,8,["headers"])])],2))}}),wt=k(It,[["__scopeId","data-v-5245df59"]]),Tt={class:"VPDocAsideCarbonAds"},Nt=_({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(o){const e=()=>null;return(t,n)=>(a(),c("div",Tt,[m(r(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Mt=o=>(C("data-v-8041b8c7"),o=o(),H(),o),At={class:"VPDocAside"},Bt=Mt(()=>p("div",{class:"spacer"},null,-1)),Ct=_({__name:"VPDocAside",setup(o){const{theme:e}=L();return(t,n)=>(a(),c("div",At,[l(t.$slots,"aside-top",{},void 0,!0),l(t.$slots,"aside-outline-before",{},void 0,!0),m(wt),l(t.$slots,"aside-outline-after",{},void 0,!0),Bt,l(t.$slots,"aside-ads-before",{},void 0,!0),r(e).carbonAds?(a(),b(Nt,{key:0,"carbon-ads":r(e).carbonAds},null,8,["carbon-ads"])):f("",!0),l(t.$slots,"aside-ads-after",{},void 0,!0),l(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Ht=k(Ct,[["__scopeId","data-v-8041b8c7"]]);function Et(){const{theme:o,page:e}=L();return $(()=>{const{text:t="Edit this page",pattern:n=""}=o.value.editLink||{};let s;return typeof n=="function"?s=n(e.value):s=n.replace(/:path/g,e.value.filePath),{url:s,text:t}})}function Ft(){const{page:o,theme:e,frontmatter:t}=L();return $(()=>{var g,P,y,V,N,A,B,S;const n=we(e.value.sidebar,o.value.relativePath),s=ft(n),i=Dt(s,U=>U.link.replace(/[?#].*$/,"")),u=i.findIndex(U=>z(o.value.relativePath,U.link)),h=((g=e.value.docFooter)==null?void 0:g.prev)===!1&&!t.value.prev||t.value.prev===!1,d=((P=e.value.docFooter)==null?void 0:P.next)===!1&&!t.value.next||t.value.next===!1;return{prev:h?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((y=i[u-1])==null?void 0:y.docFooterText)??((V=i[u-1])==null?void 0:V.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((N=i[u-1])==null?void 0:N.link)},next:d?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((A=i[u+1])==null?void 0:A.docFooterText)??((B=i[u+1])==null?void 0:B.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((S=i[u+1])==null?void 0:S.link)}}})}function Dt(o,e){const t=new Set;return o.filter(n=>{const s=e(n);return t.has(s)?!1:t.add(s)})}const F=_({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(o){const e=o,t=$(()=>e.tag??(e.href?"a":"span")),n=$(()=>e.href&&Pe.test(e.href)||e.target==="_blank");return(s,i)=>(a(),b(K(t.value),{class:T(["VPLink",{link:s.href,"vp-external-link-icon":n.value,"no-icon":s.noIcon}]),href:s.href?r(he)(s.href):void 0,target:s.target??(n.value?"_blank":void 0),rel:s.rel??(n.value?"noreferrer":void 0)},{default:v(()=>[l(s.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Ot={class:"VPLastUpdated"},Ut=["datetime"],Gt=_({__name:"VPDocFooterLastUpdated",setup(o){const{theme:e,page:t,frontmatter:n,lang:s}=L(),i=$(()=>new Date(n.value.lastUpdated??t.value.lastUpdated)),u=$(()=>i.value.toISOString()),h=w("");return R(()=>{Z(()=>{var d,g,P;h.value=new Intl.DateTimeFormat((g=(d=e.value.lastUpdated)==null?void 0:d.formatOptions)!=null&&g.forceLocale?s.value:void 0,((P=e.value.lastUpdated)==null?void 0:P.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(i.value)})}),(d,g)=>{var P;return a(),c("p",Ot,[D(I(((P=r(e).lastUpdated)==null?void 0:P.text)||r(e).lastUpdatedText||"Last updated")+": ",1),p("time",{datetime:u.value},I(h.value),9,Ut)])}}}),jt=k(Gt,[["__scopeId","data-v-df536d16"]]),Me=o=>(C("data-v-835447b4"),o=o(),H(),o),zt={key:0,class:"VPDocFooter"},qt={key:0,class:"edit-info"},Wt={key:0,class:"edit-link"},Kt=Me(()=>p("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),Rt={key:1,class:"last-updated"},Jt={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},Yt=Me(()=>p("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),Qt={class:"pager"},Xt=["innerHTML"],Zt=["innerHTML"],xt={class:"pager"},eo=["innerHTML"],to=["innerHTML"],oo=_({__name:"VPDocFooter",setup(o){const{theme:e,page:t,frontmatter:n}=L(),s=Et(),i=Ft(),u=$(()=>e.value.editLink&&n.value.editLink!==!1),h=$(()=>t.value.lastUpdated&&n.value.lastUpdated!==!1),d=$(()=>u.value||h.value||i.value.prev||i.value.next);return(g,P)=>{var y,V,N,A;return d.value?(a(),c("footer",zt,[l(g.$slots,"doc-footer-before",{},void 0,!0),u.value||h.value?(a(),c("div",qt,[u.value?(a(),c("div",Wt,[m(F,{class:"edit-link-button",href:r(s).url,"no-icon":!0},{default:v(()=>[Kt,D(" "+I(r(s).text),1)]),_:1},8,["href"])])):f("",!0),h.value?(a(),c("div",Rt,[m(jt)])):f("",!0)])):f("",!0),(y=r(i).prev)!=null&&y.link||(V=r(i).next)!=null&&V.link?(a(),c("nav",Jt,[Yt,p("div",Qt,[(N=r(i).prev)!=null&&N.link?(a(),b(F,{key:0,class:"pager-link prev",href:r(i).prev.link},{default:v(()=>{var B;return[p("span",{class:"desc",innerHTML:((B=r(e).docFooter)==null?void 0:B.prev)||"Previous page"},null,8,Xt),p("span",{class:"title",innerHTML:r(i).prev.text},null,8,Zt)]}),_:1},8,["href"])):f("",!0)]),p("div",xt,[(A=r(i).next)!=null&&A.link?(a(),b(F,{key:0,class:"pager-link next",href:r(i).next.link},{default:v(()=>{var B;return[p("span",{class:"desc",innerHTML:((B=r(e).docFooter)==null?void 0:B.next)||"Next page"},null,8,eo),p("span",{class:"title",innerHTML:r(i).next.text},null,8,to)]}),_:1},8,["href"])):f("",!0)])])):f("",!0)])):f("",!0)}}}),so=k(oo,[["__scopeId","data-v-835447b4"]]),no=o=>(C("data-v-5399a88f"),o=o(),H(),o),ao={class:"container"},ro=no(()=>p("div",{class:"aside-curtain"},null,-1)),io={class:"aside-container"},lo={class:"aside-content"},co={class:"content"},uo={class:"content-container"},vo={class:"main"},po=_({__name:"VPDoc",setup(o){const{theme:e}=L(),t=ee(),{hasSidebar:n,hasAside:s,leftAside:i}=O(),u=$(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(h,d)=>{const g=q("Content");return a(),c("div",{class:T(["VPDoc",{"has-sidebar":r(n),"has-aside":r(s)}])},[l(h.$slots,"doc-top",{},void 0,!0),p("div",ao,[r(s)?(a(),c("div",{key:0,class:T(["aside",{"left-aside":r(i)}])},[ro,p("div",io,[p("div",lo,[m(Ht,null,{"aside-top":v(()=>[l(h.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[l(h.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[l(h.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[l(h.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[l(h.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[l(h.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):f("",!0),p("div",co,[p("div",uo,[l(h.$slots,"doc-before",{},void 0,!0),p("main",vo,[m(g,{class:T(["vp-doc",[u.value,r(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),m(so,null,{"doc-footer-before":v(()=>[l(h.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),l(h.$slots,"doc-after",{},void 0,!0)])])]),l(h.$slots,"doc-bottom",{},void 0,!0)],2)}}}),ho=k(po,[["__scopeId","data-v-5399a88f"]]),fo=_({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(o){const e=o,t=$(()=>e.href&&Pe.test(e.href)),n=$(()=>e.tag||e.href?"a":"button");return(s,i)=>(a(),b(K(n.value),{class:T(["VPButton",[s.size,s.theme]]),href:s.href?r(he)(s.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:v(()=>[D(I(s.text),1)]),_:1},8,["class","href","target","rel"]))}}),_o=k(fo,[["__scopeId","data-v-ee1396dd"]]),mo=["src","alt"],ko=_({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(o){return(e,t)=>{const n=q("VPImage",!0);return e.image?(a(),c(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),c("img",Y({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:r(ve)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,mo)):(a(),c(M,{key:1},[m(n,Y({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),m(n,Y({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):f("",!0)}}}),X=k(ko,[["__scopeId","data-v-207af20a"]]),bo=o=>(C("data-v-47c829c1"),o=o(),H(),o),$o={class:"container"},go={class:"main"},yo={key:0,class:"name"},Po=["innerHTML"],Lo=["innerHTML"],Vo=["innerHTML"],So={key:0,class:"actions"},Io={key:0,class:"image"},wo={class:"image-container"},To=bo(()=>p("div",{class:"image-bg"},null,-1)),No=_({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(o){const e=te("hero-image-slot-exists");return(t,n)=>(a(),c("div",{class:T(["VPHero",{"has-image":t.image||r(e)}])},[p("div",$o,[p("div",go,[l(t.$slots,"home-hero-info-before",{},void 0,!0),l(t.$slots,"home-hero-info",{},()=>[t.name?(a(),c("h1",yo,[p("span",{innerHTML:t.name,class:"clip"},null,8,Po)])):f("",!0),t.text?(a(),c("p",{key:1,innerHTML:t.text,class:"text"},null,8,Lo)):f("",!0),t.tagline?(a(),c("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Vo)):f("",!0)],!0),l(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),c("div",So,[(a(!0),c(M,null,E(t.actions,s=>(a(),c("div",{key:s.link,class:"action"},[m(_o,{tag:"a",size:"medium",theme:s.theme,text:s.text,href:s.link,target:s.target,rel:s.rel},null,8,["theme","text","href","target","rel"])]))),128))])):f("",!0),l(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||r(e)?(a(),c("div",Io,[p("div",wo,[To,l(t.$slots,"home-hero-image",{},()=>[t.image?(a(),b(X,{key:0,class:"image-src",image:t.image},null,8,["image"])):f("",!0)],!0)])])):f("",!0)])],2))}}),Mo=k(No,[["__scopeId","data-v-47c829c1"]]),Ao=_({__name:"VPHomeHero",setup(o){const{frontmatter:e}=L();return(t,n)=>r(e).hero?(a(),b(Mo,{key:0,class:"VPHomeHero",name:r(e).hero.name,text:r(e).hero.text,tagline:r(e).hero.tagline,image:r(e).hero.image,actions:r(e).hero.actions},{"home-hero-info-before":v(()=>[l(t.$slots,"home-hero-info-before")]),"home-hero-info":v(()=>[l(t.$slots,"home-hero-info")]),"home-hero-info-after":v(()=>[l(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":v(()=>[l(t.$slots,"home-hero-actions-after")]),"home-hero-image":v(()=>[l(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):f("",!0)}}),Bo=o=>(C("data-v-b0502b08"),o=o(),H(),o),Co={class:"box"},Ho={key:0,class:"icon"},Eo=["innerHTML"],Fo=["innerHTML"],Do=["innerHTML"],Oo={key:4,class:"link-text"},Uo={class:"link-text-value"},Go=Bo(()=>p("span",{class:"vpi-arrow-right link-text-icon"},null,-1)),jo=_({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(o){return(e,t)=>(a(),b(F,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:v(()=>[p("article",Co,[typeof e.icon=="object"&&e.icon.wrap?(a(),c("div",Ho,[m(X,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),b(X,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),c("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Eo)):f("",!0),p("h2",{class:"title",innerHTML:e.title},null,8,Fo),e.details?(a(),c("p",{key:3,class:"details",innerHTML:e.details},null,8,Do)):f("",!0),e.linkText?(a(),c("div",Oo,[p("p",Uo,[D(I(e.linkText)+" ",1),Go])])):f("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),zo=k(jo,[["__scopeId","data-v-b0502b08"]]),qo={key:0,class:"VPFeatures"},Wo={class:"container"},Ko={class:"items"},Ro=_({__name:"VPFeatures",props:{features:{}},setup(o){const e=o,t=$(()=>{const n=e.features.length;if(n){if(n===2)return"grid-2";if(n===3)return"grid-3";if(n%3===0)return"grid-6";if(n>3)return"grid-4"}else return});return(n,s)=>n.features?(a(),c("div",qo,[p("div",Wo,[p("div",Ko,[(a(!0),c(M,null,E(n.features,i=>(a(),c("div",{key:i.title,class:T(["item",[t.value]])},[m(zo,{icon:i.icon,title:i.title,details:i.details,link:i.link,"link-text":i.linkText,rel:i.rel,target:i.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):f("",!0)}}),Jo=k(Ro,[["__scopeId","data-v-c7aac842"]]),Yo=_({__name:"VPHomeFeatures",setup(o){const{frontmatter:e}=L();return(t,n)=>r(e).features?(a(),b(Jo,{key:0,class:"VPHomeFeatures",features:r(e).features},null,8,["features"])):f("",!0)}}),Qo=_({__name:"VPHomeContent",setup(o){const{width:e}=qe({initialWidth:0,includeScrollbar:!1});return(t,n)=>(a(),c("div",{class:"vp-doc container",style:Le(r(e)?{"--vp-offset":`calc(50% - ${r(e)/2}px)`}:{})},[l(t.$slots,"default",{},void 0,!0)],4))}}),Xo=k(Qo,[["__scopeId","data-v-66dfc38e"]]),Zo={class:"VPHome"},xo=_({__name:"VPHome",setup(o){const{frontmatter:e}=L();return(t,n)=>{const s=q("Content");return a(),c("div",Zo,[l(t.$slots,"home-hero-before",{},void 0,!0),m(Ao,null,{"home-hero-info-before":v(()=>[l(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[l(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[l(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[l(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[l(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),l(t.$slots,"home-hero-after",{},void 0,!0),l(t.$slots,"home-features-before",{},void 0,!0),m(Yo),l(t.$slots,"home-features-after",{},void 0,!0),r(e).markdownStyles!==!1?(a(),b(Xo,{key:0},{default:v(()=>[m(s)]),_:1})):(a(),b(s,{key:1}))])}}}),es=k(xo,[["__scopeId","data-v-52a20f54"]]),ts={},os={class:"VPPage"};function ss(o,e){const t=q("Content");return a(),c("div",os,[l(o.$slots,"page-top"),m(t),l(o.$slots,"page-bottom")])}const ns=k(ts,[["render",ss]]),as=_({__name:"VPContent",setup(o){const{page:e,frontmatter:t}=L(),{hasSidebar:n}=O();return(s,i)=>(a(),c("div",{class:T(["VPContent",{"has-sidebar":r(n),"is-home":r(t).layout==="home"}]),id:"VPContent"},[r(e).isNotFound?l(s.$slots,"not-found",{key:0},()=>[m(pt)],!0):r(t).layout==="page"?(a(),b(ns,{key:1},{"page-top":v(()=>[l(s.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[l(s.$slots,"page-bottom",{},void 0,!0)]),_:3})):r(t).layout==="home"?(a(),b(es,{key:2},{"home-hero-before":v(()=>[l(s.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":v(()=>[l(s.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[l(s.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[l(s.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[l(s.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[l(s.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[l(s.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[l(s.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[l(s.$slots,"home-features-after",{},void 0,!0)]),_:3})):r(t).layout&&r(t).layout!=="doc"?(a(),b(K(r(t).layout),{key:3})):(a(),b(ho,{key:4},{"doc-top":v(()=>[l(s.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[l(s.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":v(()=>[l(s.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[l(s.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[l(s.$slots,"doc-after",{},void 0,!0)]),"aside-top":v(()=>[l(s.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":v(()=>[l(s.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[l(s.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[l(s.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[l(s.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":v(()=>[l(s.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),rs=k(as,[["__scopeId","data-v-eda42429"]]),is={class:"container"},ls=["innerHTML"],cs=["innerHTML"],us=_({__name:"VPFooter",setup(o){const{theme:e,frontmatter:t}=L(),{hasSidebar:n}=O();return(s,i)=>r(e).footer&&r(t).footer!==!1?(a(),c("footer",{key:0,class:T(["VPFooter",{"has-sidebar":r(n)}])},[p("div",is,[r(e).footer.message?(a(),c("p",{key:0,class:"message",innerHTML:r(e).footer.message},null,8,ls)):f("",!0),r(e).footer.copyright?(a(),c("p",{key:1,class:"copyright",innerHTML:r(e).footer.copyright},null,8,cs)):f("",!0)])],2)):f("",!0)}}),ds=k(us,[["__scopeId","data-v-e0b60cc2"]]);function vs(){const{theme:o,frontmatter:e}=L(),t=ye([]),n=$(()=>t.value.length>0);return x(()=>{t.value=fe(e.value.outline??o.value.outline)}),{headers:t,hasLocalNav:n}}const ps=o=>(C("data-v-ddcb87e7"),o=o(),H(),o),hs={class:"menu-text"},fs=ps(()=>p("span",{class:"vpi-chevron-right icon"},null,-1)),_s={class:"header"},ms={class:"outline"},ks=_({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(o){const e=o,{theme:t}=L(),n=w(!1),s=w(0),i=w(),u=w();function h(y){var V;(V=i.value)!=null&&V.contains(y.target)||(n.value=!1)}j(n,y=>{if(y){document.addEventListener("click",h);return}document.removeEventListener("click",h)}),We("Escape",()=>{n.value=!1}),x(()=>{n.value=!1});function d(){n.value=!n.value,s.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function g(y){y.target.classList.contains("outline-link")&&(u.value&&(u.value.style.transition="none"),Ke(()=>{n.value=!1}))}function P(){n.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(y,V)=>(a(),c("div",{class:"VPLocalNavOutlineDropdown",style:Le({"--vp-vh":s.value+"px"}),ref_key:"main",ref:i},[y.headers.length>0?(a(),c("button",{key:0,onClick:d,class:T({open:n.value})},[p("span",hs,I(r(Te)(r(t))),1),fs],2)):(a(),c("button",{key:1,onClick:P},I(r(t).returnToTopLabel||"Return to top"),1)),m(de,{name:"flyout"},{default:v(()=>[n.value?(a(),c("div",{key:0,ref_key:"items",ref:u,class:"items",onClick:g},[p("div",_s,[p("a",{class:"top-link",href:"#",onClick:P},I(r(t).returnToTopLabel||"Return to top"),1)]),p("div",ms,[m(Ne,{headers:y.headers},null,8,["headers"])])],512)):f("",!0)]),_:1})],4))}}),bs=k(ks,[["__scopeId","data-v-ddcb87e7"]]),$s=o=>(C("data-v-e533ce6a"),o=o(),H(),o),gs={class:"container"},ys=["aria-expanded"],Ps=$s(()=>p("span",{class:"vpi-align-left menu-icon"},null,-1)),Ls={class:"menu-text"},Vs=_({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(o){const{theme:e,frontmatter:t}=L(),{hasSidebar:n}=O(),{headers:s}=vs(),{y:i}=Ve(),u=w(0);R(()=>{u.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),x(()=>{s.value=fe(t.value.outline??e.value.outline)});const h=$(()=>s.value.length===0),d=$(()=>h.value&&!n.value),g=$(()=>({VPLocalNav:!0,"has-sidebar":n.value,empty:h.value,fixed:d.value}));return(P,y)=>r(t).layout!=="home"&&(!d.value||r(i)>=u.value)?(a(),c("div",{key:0,class:T(g.value)},[p("div",gs,[r(n)?(a(),c("button",{key:0,class:"menu","aria-expanded":P.open,"aria-controls":"VPSidebarNav",onClick:y[0]||(y[0]=V=>P.$emit("open-menu"))},[Ps,p("span",Ls,I(r(e).sidebarMenuLabel||"Menu"),1)],8,ys)):f("",!0),m(bs,{headers:r(s),navHeight:u.value},null,8,["headers","navHeight"])])],2)):f("",!0)}}),Ss=k(Vs,[["__scopeId","data-v-e533ce6a"]]);function Is(){const o=w(!1);function e(){o.value=!0,window.addEventListener("resize",s)}function t(){o.value=!1,window.removeEventListener("resize",s)}function n(){o.value?t():e()}function s(){window.outerWidth>=768&&t()}const i=ee();return j(()=>i.path,t),{isScreenOpen:o,openScreen:e,closeScreen:t,toggleScreen:n}}const ws={},Ts={class:"VPSwitch",type:"button",role:"switch"},Ns={class:"check"},Ms={key:0,class:"icon"};function As(o,e){return a(),c("button",Ts,[p("span",Ns,[o.$slots.default?(a(),c("span",Ms,[l(o.$slots,"default",{},void 0,!0)])):f("",!0)])])}const Bs=k(ws,[["render",As],["__scopeId","data-v-550200d6"]]),Ae=o=>(C("data-v-90536e56"),o=o(),H(),o),Cs=Ae(()=>p("span",{class:"vpi-sun sun"},null,-1)),Hs=Ae(()=>p("span",{class:"vpi-moon moon"},null,-1)),Es=_({__name:"VPSwitchAppearance",setup(o){const{isDark:e,theme:t}=L(),n=te("toggle-appearance",()=>{e.value=!e.value}),s=$(()=>e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme");return(i,u)=>(a(),b(Bs,{title:s.value,class:"VPSwitchAppearance","aria-checked":r(e),onClick:r(n)},{default:v(()=>[Cs,Hs]),_:1},8,["title","aria-checked","onClick"]))}}),_e=k(Es,[["__scopeId","data-v-90536e56"]]),Fs={key:0,class:"VPNavBarAppearance"},Ds=_({__name:"VPNavBarAppearance",setup(o){const{site:e}=L();return(t,n)=>r(e).appearance&&r(e).appearance!=="force-dark"?(a(),c("div",Fs,[m(_e)])):f("",!0)}}),Os=k(Ds,[["__scopeId","data-v-cf96c3d5"]]),me=w();let Be=!1,re=0;function Us(o){const e=w(!1);if(oe){!Be&&Gs(),re++;const t=j(me,n=>{var s,i,u;n===o.el.value||(s=o.el.value)!=null&&s.contains(n)?(e.value=!0,(i=o.onFocus)==null||i.call(o)):(e.value=!1,(u=o.onBlur)==null||u.call(o))});pe(()=>{t(),re--,re||js()})}return Re(e)}function Gs(){document.addEventListener("focusin",Ce),Be=!0,me.value=document.activeElement}function js(){document.removeEventListener("focusin",Ce)}function Ce(){me.value=document.activeElement}const zs={class:"VPMenuLink"},qs=_({__name:"VPMenuLink",props:{item:{}},setup(o){const{page:e}=L();return(t,n)=>(a(),c("div",zs,[m(F,{class:T({active:r(z)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:v(()=>[D(I(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),se=k(qs,[["__scopeId","data-v-42b0531e"]]),Ws={class:"VPMenuGroup"},Ks={key:0,class:"title"},Rs=_({__name:"VPMenuGroup",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),c("div",Ws,[e.text?(a(),c("p",Ks,I(e.text),1)):f("",!0),(a(!0),c(M,null,E(e.items,n=>(a(),c(M,null,["link"in n?(a(),b(se,{key:0,item:n},null,8,["item"])):f("",!0)],64))),256))]))}}),Js=k(Rs,[["__scopeId","data-v-6638abba"]]),Ys={class:"VPMenu"},Qs={key:0,class:"items"},Xs=_({__name:"VPMenu",props:{items:{}},setup(o){return(e,t)=>(a(),c("div",Ys,[e.items?(a(),c("div",Qs,[(a(!0),c(M,null,E(e.items,n=>(a(),c(M,{key:n.text},["link"in n?(a(),b(se,{key:0,item:n},null,8,["item"])):(a(),b(Js,{key:1,text:n.text,items:n.items},null,8,["text","items"]))],64))),128))])):f("",!0),l(e.$slots,"default",{},void 0,!0)]))}}),Zs=k(Xs,[["__scopeId","data-v-285f358f"]]),xs=o=>(C("data-v-49286c8d"),o=o(),H(),o),en=["aria-expanded","aria-label"],tn={key:0,class:"text"},on=["innerHTML"],sn=xs(()=>p("span",{class:"vpi-chevron-down text-icon"},null,-1)),nn={key:1,class:"vpi-more-horizontal icon"},an={class:"menu"},rn=_({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(o){const e=w(!1),t=w();Us({el:t,onBlur:n});function n(){e.value=!1}return(s,i)=>(a(),c("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:i[1]||(i[1]=u=>e.value=!0),onMouseleave:i[2]||(i[2]=u=>e.value=!1)},[p("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":s.label,onClick:i[0]||(i[0]=u=>e.value=!e.value)},[s.button||s.icon?(a(),c("span",tn,[s.icon?(a(),c("span",{key:0,class:T([s.icon,"option-icon"])},null,2)):f("",!0),s.button?(a(),c("span",{key:1,innerHTML:s.button},null,8,on)):f("",!0),sn])):(a(),c("span",nn))],8,en),p("div",an,[m(Zs,{items:s.items},{default:v(()=>[l(s.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),ke=k(rn,[["__scopeId","data-v-49286c8d"]]),ln=["href","aria-label","innerHTML"],cn=_({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(o){const e=o,t=$(()=>typeof e.icon=="object"?e.icon.svg:``);return(n,s)=>(a(),c("a",{class:"VPSocialLink no-icon",href:n.link,"aria-label":n.ariaLabel??(typeof n.icon=="string"?n.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,ln))}}),un=k(cn,[["__scopeId","data-v-cd364052"]]),dn={class:"VPSocialLinks"},vn=_({__name:"VPSocialLinks",props:{links:{}},setup(o){return(e,t)=>(a(),c("div",dn,[(a(!0),c(M,null,E(e.links,({link:n,icon:s,ariaLabel:i})=>(a(),b(un,{key:n,icon:s,link:n,ariaLabel:i},null,8,["icon","link","ariaLabel"]))),128))]))}}),be=k(vn,[["__scopeId","data-v-07ca41f1"]]),pn={key:0,class:"group translations"},hn={class:"trans-title"},fn={key:1,class:"group"},_n={class:"item appearance"},mn={class:"label"},kn={class:"appearance-action"},bn={key:2,class:"group"},$n={class:"item social-links"},gn=_({__name:"VPNavBarExtra",setup(o){const{site:e,theme:t}=L(),{localeLinks:n,currentLang:s}=J({correspondingLink:!0}),i=$(()=>n.value.length&&s.value.label||e.value.appearance||t.value.socialLinks);return(u,h)=>i.value?(a(),b(ke,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:v(()=>[r(n).length&&r(s).label?(a(),c("div",pn,[p("p",hn,I(r(s).label),1),(a(!0),c(M,null,E(r(n),d=>(a(),b(se,{key:d.link,item:d},null,8,["item"]))),128))])):f("",!0),r(e).appearance&&r(e).appearance!=="force-dark"?(a(),c("div",fn,[p("div",_n,[p("p",mn,I(r(t).darkModeSwitchLabel||"Appearance"),1),p("div",kn,[m(_e)])])])):f("",!0),r(t).socialLinks?(a(),c("div",bn,[p("div",$n,[m(be,{class:"social-links-list",links:r(t).socialLinks},null,8,["links"])])])):f("",!0)]),_:1})):f("",!0)}}),yn=k(gn,[["__scopeId","data-v-311bc7a7"]]),Pn=o=>(C("data-v-5adbd637"),o=o(),H(),o),Ln=["aria-expanded"],Vn=Pn(()=>p("span",{class:"container"},[p("span",{class:"top"}),p("span",{class:"middle"}),p("span",{class:"bottom"})],-1)),Sn=[Vn],In=_({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(o){return(e,t)=>(a(),c("button",{type:"button",class:T(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=n=>e.$emit("click"))},Sn,10,Ln))}}),wn=k(In,[["__scopeId","data-v-5adbd637"]]),Tn=["innerHTML"],Nn=_({__name:"VPNavBarMenuLink",props:{item:{}},setup(o){const{page:e}=L();return(t,n)=>(a(),b(F,{class:T({VPNavBarMenuLink:!0,active:r(z)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,noIcon:t.item.noIcon,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:v(()=>[p("span",{innerHTML:t.item.text},null,8,Tn)]),_:1},8,["class","href","noIcon","target","rel"]))}}),Mn=k(Nn,[["__scopeId","data-v-86ef9c33"]]),An=_({__name:"VPNavBarMenuGroup",props:{item:{}},setup(o){const e=o,{page:t}=L(),n=i=>"link"in i?z(t.value.relativePath,i.link,!!e.item.activeMatch):i.items.some(n),s=$(()=>n(e.item));return(i,u)=>(a(),b(ke,{class:T({VPNavBarMenuGroup:!0,active:r(z)(r(t).relativePath,i.item.activeMatch,!!i.item.activeMatch)||s.value}),button:i.item.text,items:i.item.items},null,8,["class","button","items"]))}}),Bn=o=>(C("data-v-025c0132"),o=o(),H(),o),Cn={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Hn=Bn(()=>p("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),En=_({__name:"VPNavBarMenu",setup(o){const{theme:e}=L();return(t,n)=>r(e).nav?(a(),c("nav",Cn,[Hn,(a(!0),c(M,null,E(r(e).nav,s=>(a(),c(M,{key:s.text},["link"in s?(a(),b(Mn,{key:0,item:s},null,8,["item"])):(a(),b(An,{key:1,item:s},null,8,["item"]))],64))),128))])):f("",!0)}}),Fn=k(En,[["__scopeId","data-v-025c0132"]]);function Dn(o){const{localeIndex:e,theme:t}=L();function n(s){var A,B,S;const i=s.split("."),u=(A=t.value.search)==null?void 0:A.options,h=u&&typeof u=="object",d=h&&((S=(B=u.locales)==null?void 0:B[e.value])==null?void 0:S.translations)||null,g=h&&u.translations||null;let P=d,y=g,V=o;const N=i.pop();for(const U of i){let G=null;const W=V==null?void 0:V[U];W&&(G=V=W);const ne=y==null?void 0:y[U];ne&&(G=y=ne);const ae=P==null?void 0:P[U];ae&&(G=P=ae),W||(V=G),ne||(y=G),ae||(P=G)}return(P==null?void 0:P[N])??(y==null?void 0:y[N])??(V==null?void 0:V[N])??""}return n}const On=["aria-label"],Un={class:"DocSearch-Button-Container"},Gn=p("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1),jn={class:"DocSearch-Button-Placeholder"},zn=p("span",{class:"DocSearch-Button-Keys"},[p("kbd",{class:"DocSearch-Button-Key"}),p("kbd",{class:"DocSearch-Button-Key"},"K")],-1),$e=_({__name:"VPNavBarSearchButton",setup(o){const t=Dn({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(n,s)=>(a(),c("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":r(t)("button.buttonAriaLabel")},[p("span",Un,[Gn,p("span",jn,I(r(t)("button.buttonText")),1)]),zn],8,On))}}),qn={class:"VPNavBarSearch"},Wn={id:"local-search"},Kn={key:1,id:"docsearch"},Rn=_({__name:"VPNavBarSearch",setup(o){const e=()=>null,t=()=>null,{theme:n}=L(),s=w(!1),i=w(!1);R(()=>{});function u(){s.value||(s.value=!0,setTimeout(h,16))}function h(){const P=new Event("keydown");P.key="k",P.metaKey=!0,window.dispatchEvent(P),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||h()},16)}const d=w(!1),g="";return(P,y)=>{var V;return a(),c("div",qn,[r(g)==="local"?(a(),c(M,{key:0},[d.value?(a(),b(r(e),{key:0,onClose:y[0]||(y[0]=N=>d.value=!1)})):f("",!0),p("div",Wn,[m($e,{onClick:y[1]||(y[1]=N=>d.value=!0)})])],64)):r(g)==="algolia"?(a(),c(M,{key:1},[s.value?(a(),b(r(t),{key:0,algolia:((V=r(n).search)==null?void 0:V.options)??r(n).algolia,onVnodeBeforeMount:y[2]||(y[2]=N=>i.value=!0)},null,8,["algolia"])):f("",!0),i.value?f("",!0):(a(),c("div",Kn,[m($e,{onClick:u})]))],64)):f("",!0)])}}}),Jn=_({__name:"VPNavBarSocialLinks",setup(o){const{theme:e}=L();return(t,n)=>r(e).socialLinks?(a(),b(be,{key:0,class:"VPNavBarSocialLinks",links:r(e).socialLinks},null,8,["links"])):f("",!0)}}),Yn=k(Jn,[["__scopeId","data-v-5bd53742"]]),Qn=["href","rel","target"],Xn={key:1},Zn={key:2},xn=_({__name:"VPNavBarTitle",setup(o){const{site:e,theme:t}=L(),{hasSidebar:n}=O(),{currentLang:s}=J(),i=$(()=>{var d;return typeof t.value.logoLink=="string"?t.value.logoLink:(d=t.value.logoLink)==null?void 0:d.link}),u=$(()=>{var d;return typeof t.value.logoLink=="string"||(d=t.value.logoLink)==null?void 0:d.rel}),h=$(()=>{var d;return typeof t.value.logoLink=="string"||(d=t.value.logoLink)==null?void 0:d.target});return(d,g)=>(a(),c("div",{class:T(["VPNavBarTitle",{"has-sidebar":r(n)}])},[p("a",{class:"title",href:i.value??r(he)(r(s).link),rel:u.value,target:h.value},[l(d.$slots,"nav-bar-title-before",{},void 0,!0),r(t).logo?(a(),b(X,{key:0,class:"logo",image:r(t).logo},null,8,["image"])):f("",!0),r(t).siteTitle?(a(),c("span",Xn,I(r(t).siteTitle),1)):r(t).siteTitle===void 0?(a(),c("span",Zn,I(r(e).title),1)):f("",!0),l(d.$slots,"nav-bar-title-after",{},void 0,!0)],8,Qn)],2))}}),ea=k(xn,[["__scopeId","data-v-3cb65cdb"]]),ta={class:"items"},oa={class:"title"},sa=_({__name:"VPNavBarTranslations",setup(o){const{theme:e}=L(),{localeLinks:t,currentLang:n}=J({correspondingLink:!0});return(s,i)=>r(t).length&&r(n).label?(a(),b(ke,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:r(e).langMenuLabel||"Change language"},{default:v(()=>[p("div",ta,[p("p",oa,I(r(n).label),1),(a(!0),c(M,null,E(r(t),u=>(a(),b(se,{key:u.link,item:u},null,8,["item"]))),128))])]),_:1},8,["label"])):f("",!0)}}),na=k(sa,[["__scopeId","data-v-2c95218d"]]),aa=o=>(C("data-v-f9fe6a50"),o=o(),H(),o),ra={class:"wrapper"},ia={class:"container"},la={class:"title"},ca={class:"content"},ua={class:"content-body"},da=aa(()=>p("div",{class:"divider"},[p("div",{class:"divider-line"})],-1)),va=_({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(o){const{y:e}=Ve(),{hasSidebar:t}=O(),{frontmatter:n}=L(),s=w({});return ge(()=>{s.value={"has-sidebar":t.value,home:n.value.layout==="home",top:e.value===0}}),(i,u)=>(a(),c("div",{class:T(["VPNavBar",s.value])},[p("div",ra,[p("div",ia,[p("div",la,[m(ea,null,{"nav-bar-title-before":v(()=>[l(i.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[l(i.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),p("div",ca,[p("div",ua,[l(i.$slots,"nav-bar-content-before",{},void 0,!0),m(Rn,{class:"search"}),m(Fn,{class:"menu"}),m(na,{class:"translations"}),m(Os,{class:"appearance"}),m(Yn,{class:"social-links"}),m(yn,{class:"extra"}),l(i.$slots,"nav-bar-content-after",{},void 0,!0),m(wn,{class:"hamburger",active:i.isScreenOpen,onClick:u[0]||(u[0]=h=>i.$emit("toggle-screen"))},null,8,["active"])])])])]),da],2))}}),pa=k(va,[["__scopeId","data-v-f9fe6a50"]]),ha={key:0,class:"VPNavScreenAppearance"},fa={class:"text"},_a=_({__name:"VPNavScreenAppearance",setup(o){const{site:e,theme:t}=L();return(n,s)=>r(e).appearance&&r(e).appearance!=="force-dark"?(a(),c("div",ha,[p("p",fa,I(r(t).darkModeSwitchLabel||"Appearance"),1),m(_e)])):f("",!0)}}),ma=k(_a,[["__scopeId","data-v-ec1cacf1"]]),ka=_({__name:"VPNavScreenMenuLink",props:{item:{}},setup(o){const e=te("close-screen");return(t,n)=>(a(),b(F,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e),innerHTML:t.item.text},null,8,["href","target","rel","onClick","innerHTML"]))}}),ba=k(ka,[["__scopeId","data-v-8d28c8d9"]]),$a=_({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(o){const e=te("close-screen");return(t,n)=>(a(),b(F,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e)},{default:v(()=>[D(I(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),He=k($a,[["__scopeId","data-v-c116d3ab"]]),ga={class:"VPNavScreenMenuGroupSection"},ya={key:0,class:"title"},Pa=_({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),c("div",ga,[e.text?(a(),c("p",ya,I(e.text),1)):f("",!0),(a(!0),c(M,null,E(e.items,n=>(a(),b(He,{key:n.text,item:n},null,8,["item"]))),128))]))}}),La=k(Pa,[["__scopeId","data-v-22deea13"]]),Va=o=>(C("data-v-98f76c9b"),o=o(),H(),o),Sa=["aria-controls","aria-expanded"],Ia=["innerHTML"],wa=Va(()=>p("span",{class:"vpi-plus button-icon"},null,-1)),Ta=["id"],Na={key:1,class:"group"},Ma=_({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(o){const e=o,t=w(!1),n=$(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function s(){t.value=!t.value}return(i,u)=>(a(),c("div",{class:T(["VPNavScreenMenuGroup",{open:t.value}])},[p("button",{class:"button","aria-controls":n.value,"aria-expanded":t.value,onClick:s},[p("span",{class:"button-text",innerHTML:i.text},null,8,Ia),wa],8,Sa),p("div",{id:n.value,class:"items"},[(a(!0),c(M,null,E(i.items,h=>(a(),c(M,{key:h.text},["link"in h?(a(),c("div",{key:h.text,class:"item"},[m(He,{item:h},null,8,["item"])])):(a(),c("div",Na,[m(La,{text:h.text,items:h.items},null,8,["text","items"])]))],64))),128))],8,Ta)],2))}}),Aa=k(Ma,[["__scopeId","data-v-98f76c9b"]]),Ba={key:0,class:"VPNavScreenMenu"},Ca=_({__name:"VPNavScreenMenu",setup(o){const{theme:e}=L();return(t,n)=>r(e).nav?(a(),c("nav",Ba,[(a(!0),c(M,null,E(r(e).nav,s=>(a(),c(M,{key:s.text},["link"in s?(a(),b(ba,{key:0,item:s},null,8,["item"])):(a(),b(Aa,{key:1,text:s.text||"",items:s.items},null,8,["text","items"]))],64))),128))])):f("",!0)}}),Ha=_({__name:"VPNavScreenSocialLinks",setup(o){const{theme:e}=L();return(t,n)=>r(e).socialLinks?(a(),b(be,{key:0,class:"VPNavScreenSocialLinks",links:r(e).socialLinks},null,8,["links"])):f("",!0)}}),Ee=o=>(C("data-v-353a64d8"),o=o(),H(),o),Ea=Ee(()=>p("span",{class:"vpi-languages icon lang"},null,-1)),Fa=Ee(()=>p("span",{class:"vpi-chevron-down icon chevron"},null,-1)),Da={class:"list"},Oa=_({__name:"VPNavScreenTranslations",setup(o){const{localeLinks:e,currentLang:t}=J({correspondingLink:!0}),n=w(!1);function s(){n.value=!n.value}return(i,u)=>r(e).length&&r(t).label?(a(),c("div",{key:0,class:T(["VPNavScreenTranslations",{open:n.value}])},[p("button",{class:"title",onClick:s},[Ea,D(" "+I(r(t).label)+" ",1),Fa]),p("ul",Da,[(a(!0),c(M,null,E(r(e),h=>(a(),c("li",{key:h.link,class:"item"},[m(F,{class:"link",href:h.link},{default:v(()=>[D(I(h.text),1)]),_:2},1032,["href"])]))),128))])],2)):f("",!0)}}),Ua=k(Oa,[["__scopeId","data-v-353a64d8"]]),Ga={class:"container"},ja=_({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(o){const e=w(null),t=Se(oe?document.body:null);return(n,s)=>(a(),b(de,{name:"fade",onEnter:s[0]||(s[0]=i=>t.value=!0),onAfterLeave:s[1]||(s[1]=i=>t.value=!1)},{default:v(()=>[n.open?(a(),c("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[p("div",Ga,[l(n.$slots,"nav-screen-content-before",{},void 0,!0),m(Ca,{class:"menu"}),m(Ua,{class:"translations"}),m(ma,{class:"appearance"}),m(Ha,{class:"social-links"}),l(n.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):f("",!0)]),_:3}))}}),za=k(ja,[["__scopeId","data-v-93a9bd57"]]),qa={key:0,class:"VPNav"},Wa=_({__name:"VPNav",setup(o){const{isScreenOpen:e,closeScreen:t,toggleScreen:n}=Is(),{frontmatter:s}=L(),i=$(()=>s.value.navbar!==!1);return Ie("close-screen",t),Z(()=>{oe&&document.documentElement.classList.toggle("hide-nav",!i.value)}),(u,h)=>i.value?(a(),c("header",qa,[m(pa,{"is-screen-open":r(e),onToggleScreen:r(n)},{"nav-bar-title-before":v(()=>[l(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[l(u.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[l(u.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[l(u.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),m(za,{open:r(e)},{"nav-screen-content-before":v(()=>[l(u.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[l(u.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):f("",!0)}}),Ka=k(Wa,[["__scopeId","data-v-e0629343"]]),Fe=o=>(C("data-v-ce292618"),o=o(),H(),o),Ra=["role","tabindex"],Ja=Fe(()=>p("div",{class:"indicator"},null,-1)),Ya=Fe(()=>p("span",{class:"vpi-chevron-right caret-icon"},null,-1)),Qa=[Ya],Xa={key:1,class:"items"},Za=_({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(o){const e=o,{collapsed:t,collapsible:n,isLink:s,isActiveLink:i,hasActiveLink:u,hasChildren:h,toggle:d}=mt($(()=>e.item)),g=$(()=>h.value?"section":"div"),P=$(()=>s.value?"a":"div"),y=$(()=>h.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),V=$(()=>s.value?void 0:"button"),N=$(()=>[[`level-${e.depth}`],{collapsible:n.value},{collapsed:t.value},{"is-link":s.value},{"is-active":i.value},{"has-active":u.value}]);function A(S){"key"in S&&S.key!=="Enter"||!e.item.link&&d()}function B(){e.item.link&&d()}return(S,U)=>{const G=q("VPSidebarItem",!0);return a(),b(K(g.value),{class:T(["VPSidebarItem",N.value])},{default:v(()=>[S.item.text?(a(),c("div",Y({key:0,class:"item",role:V.value},Ye(S.item.items?{click:A,keydown:A}:{},!0),{tabindex:S.item.items&&0}),[Ja,S.item.link?(a(),b(F,{key:0,tag:P.value,class:"link",href:S.item.link,rel:S.item.rel,target:S.item.target},{default:v(()=>[(a(),b(K(y.value),{class:"text",innerHTML:S.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),b(K(y.value),{key:1,class:"text",innerHTML:S.item.text},null,8,["innerHTML"])),S.item.collapsed!=null&&S.item.items&&S.item.items.length?(a(),c("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:B,onKeydown:Je(B,["enter"]),tabindex:"0"},Qa,32)):f("",!0)],16,Ra)):f("",!0),S.item.items&&S.item.items.length?(a(),c("div",Xa,[S.depth<5?(a(!0),c(M,{key:0},E(S.item.items,W=>(a(),b(G,{key:W.text,item:W,depth:S.depth+1},null,8,["item","depth"]))),128)):f("",!0)])):f("",!0)]),_:1},8,["class"])}}}),xa=k(Za,[["__scopeId","data-v-ce292618"]]),De=o=>(C("data-v-502c42bd"),o=o(),H(),o),er=De(()=>p("div",{class:"curtain"},null,-1)),tr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},or=De(()=>p("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),sr=_({__name:"VPSidebar",props:{open:{type:Boolean}},setup(o){const{sidebarGroups:e,hasSidebar:t}=O(),n=o,s=w(null),i=Se(oe?document.body:null);return j([n,s],()=>{var u;n.open?(i.value=!0,(u=s.value)==null||u.focus()):i.value=!1},{immediate:!0,flush:"post"}),(u,h)=>r(t)?(a(),c("aside",{key:0,class:T(["VPSidebar",{open:u.open}]),ref_key:"navEl",ref:s,onClick:h[0]||(h[0]=Qe(()=>{},["stop"]))},[er,p("nav",tr,[or,l(u.$slots,"sidebar-nav-before",{},void 0,!0),(a(!0),c(M,null,E(r(e),d=>(a(),c("div",{key:d.text,class:"group"},[m(xa,{item:d,depth:0},null,8,["item"])]))),128)),l(u.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):f("",!0)}}),nr=k(sr,[["__scopeId","data-v-502c42bd"]]),ar=_({__name:"VPSkipLink",setup(o){const e=ee(),t=w();j(()=>e.path,()=>t.value.focus());function n({target:s}){const i=document.getElementById(decodeURIComponent(s.hash).slice(1));if(i){const u=()=>{i.removeAttribute("tabindex"),i.removeEventListener("blur",u)};i.setAttribute("tabindex","-1"),i.addEventListener("blur",u),i.focus(),window.scrollTo(0,0)}}return(s,i)=>(a(),c(M,null,[p("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),p("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:n}," Skip to content ")],64))}}),rr=k(ar,[["__scopeId","data-v-2b82b073"]]),ir=_({__name:"Layout",setup(o){const{isOpen:e,open:t,close:n}=O(),s=ee();j(()=>s.path,n),_t(e,n);const{frontmatter:i}=L(),u=Xe(),h=$(()=>!!u["home-hero-image"]);return Ie("hero-image-slot-exists",h),(d,g)=>{const P=q("Content");return r(i).layout!==!1?(a(),c("div",{key:0,class:T(["Layout",r(i).pageClass])},[l(d.$slots,"layout-top",{},void 0,!0),m(rr),m(tt,{class:"backdrop",show:r(e),onClick:r(n)},null,8,["show","onClick"]),m(Ka,null,{"nav-bar-title-before":v(()=>[l(d.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[l(d.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[l(d.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[l(d.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":v(()=>[l(d.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[l(d.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),m(Ss,{open:r(e),onOpenMenu:r(t)},null,8,["open","onOpenMenu"]),m(nr,{open:r(e)},{"sidebar-nav-before":v(()=>[l(d.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":v(()=>[l(d.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),m(rs,null,{"page-top":v(()=>[l(d.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[l(d.$slots,"page-bottom",{},void 0,!0)]),"not-found":v(()=>[l(d.$slots,"not-found",{},void 0,!0)]),"home-hero-before":v(()=>[l(d.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":v(()=>[l(d.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[l(d.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[l(d.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[l(d.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[l(d.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[l(d.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[l(d.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[l(d.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":v(()=>[l(d.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[l(d.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[l(d.$slots,"doc-after",{},void 0,!0)]),"doc-top":v(()=>[l(d.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[l(d.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":v(()=>[l(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[l(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[l(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[l(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[l(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[l(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),m(ds),l(d.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),b(P,{key:1}))}}}),lr=k(ir,[["__scopeId","data-v-ab6a0140"]]),ur={Layout:lr,enhanceApp:({app:o})=>{o.component("Badge",Ze)}};export{ur as t}; diff --git a/docs/assets/chunks/theme.PSGgyvwz.js b/docs/assets/chunks/theme.PSGgyvwz.js deleted file mode 100644 index 240c1c3..0000000 --- a/docs/assets/chunks/theme.PSGgyvwz.js +++ /dev/null @@ -1 +0,0 @@ -import{d as _,o as a,c,r as l,n as T,a as F,t as L,b as $,w as v,T as de,e as f,_ as k,u as Ue,i as Ge,f as je,g as ve,h as S,j as R,k as b,l as j,m as p,p as r,q as C,s as H,v as G,x as ie,y as z,z as x,A as pe,B as ye,C as ze,D as qe,E as q,F as M,G as E,H as Pe,I as ee,J as m,K,L as Ve,M as te,N as Q,O as oe,P as We,Q as Le,R as Ke,S as Re,U as Je,V as Se,W as Ye,X as we,Y as Ie,Z as Qe,$ as Xe,a0 as Ze,a1 as xe}from"./framework.PNNbM9mo.js";const et=_({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(o){return(e,t)=>(a(),c("span",{class:T(["VPBadge",e.type])},[l(e.$slots,"default",{},()=>[F(L(e.text),1)])],2))}}),tt={key:0,class:"VPBackdrop"},ot=_({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(o){return(e,t)=>(a(),$(de,{name:"fade"},{default:v(()=>[e.show?(a(),c("div",tt)):f("",!0)]),_:1}))}}),st=k(ot,[["__scopeId","data-v-245d2ac5"]]),V=Ue;function nt(o,e){let t,n=!1;return()=>{t&&clearTimeout(t),n?t=setTimeout(o,e):(o(),(n=!0)&&setTimeout(()=>n=!1,e))}}function le(o){return/^\//.test(o)?o:`/${o}`}function he(o){const{pathname:e,search:t,hash:n,protocol:s}=new URL(o,"http://a.com");if(Ge(o)||o.startsWith("#")||!s.startsWith("http")||!je(e))return o;const{site:i}=V(),u=e.endsWith("/")||e.endsWith(".html")?o:o.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,i.value.cleanUrls?"":".html")}${t}${n}`);return ve(u)}const fe=S(R?location.hash:"");R&&window.addEventListener("hashchange",()=>{fe.value=location.hash});function J({removeCurrent:o=!0,correspondingLink:e=!1}={}){const{site:t,localeIndex:n,page:s,theme:i}=V(),u=b(()=>{var d,g;return{label:(d=t.value.locales[n.value])==null?void 0:d.label,link:((g=t.value.locales[n.value])==null?void 0:g.link)||(n.value==="root"?"/":`/${n.value}/`)}});return{localeLinks:b(()=>Object.entries(t.value.locales).flatMap(([d,g])=>o&&u.value.label===g.label?[]:{text:g.label,link:at(g.link||(d==="root"?"/":`/${d}/`),i.value.i18nRouting!==!1&&e,s.value.relativePath.slice(u.value.link.length-1),!t.value.cleanUrls)+fe.value})),currentLang:u}}function at(o,e,t,n){return e?o.replace(/\/$/,"")+le(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,n?".html":"")):o}const rt=o=>(C("data-v-3124a226"),o=o(),H(),o),it={class:"NotFound"},lt={class:"code"},ct={class:"title"},ut=rt(()=>p("div",{class:"divider"},null,-1)),dt={class:"quote"},vt={class:"action"},pt=["href","aria-label"],ht=_({__name:"NotFound",setup(o){const{site:e,theme:t}=V(),{localeLinks:n}=J({removeCurrent:!1}),s=S("/");return j(()=>{var u;const i=window.location.pathname.replace(e.value.base,"").replace(/(^.*?\/).*$/,"/$1");n.value.length&&(s.value=((u=n.value.find(({link:h})=>h.startsWith(i)))==null?void 0:u.link)||n.value[0].link)}),(i,u)=>{var h,d,g,y,P;return a(),c("div",it,[p("p",lt,L(((h=r(t).notFound)==null?void 0:h.code)??"404"),1),p("h1",ct,L(((d=r(t).notFound)==null?void 0:d.title)??"PAGE NOT FOUND"),1),ut,p("blockquote",dt,L(((g=r(t).notFound)==null?void 0:g.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),p("div",vt,[p("a",{class:"link",href:r(ve)(s.value),"aria-label":((y=r(t).notFound)==null?void 0:y.linkLabel)??"go to home"},L(((P=r(t).notFound)==null?void 0:P.linkText)??"Take me home"),9,pt)])])}}}),ft=k(ht,[["__scopeId","data-v-3124a226"]]);function Te(o,e){if(Array.isArray(o))return X(o);if(o==null)return[];e=le(e);const t=Object.keys(o).sort((s,i)=>i.split("/").length-s.split("/").length).find(s=>e.startsWith(le(s))),n=t?o[t]:[];return Array.isArray(n)?X(n):X(n.items,n.base)}function _t(o){const e=[];let t=0;for(const n in o){const s=o[n];if(s.items){t=e.push(s);continue}e[t]||e.push({items:[]}),e[t].items.push(s)}return e}function mt(o){const e=[];function t(n){for(const s of n)s.text&&s.link&&e.push({text:s.text,link:s.link,docFooterText:s.docFooterText}),s.items&&t(s.items)}return t(o),e}function ce(o,e){return Array.isArray(e)?e.some(t=>ce(o,t)):G(o,e.link)?!0:e.items?ce(o,e.items):!1}function X(o,e){return[...o].map(t=>{const n={...t},s=n.base||e;return s&&n.link&&(n.link=s+n.link),n.items&&(n.items=X(n.items,s)),n})}function O(){const{frontmatter:o,page:e,theme:t}=V(),n=ie("(min-width: 960px)"),s=S(!1),i=b(()=>{const B=t.value.sidebar,w=e.value.relativePath;return B?Te(B,w):[]}),u=S(i.value);z(i,(B,w)=>{JSON.stringify(B)!==JSON.stringify(w)&&(u.value=i.value)});const h=b(()=>o.value.sidebar!==!1&&u.value.length>0&&o.value.layout!=="home"),d=b(()=>g?o.value.aside==null?t.value.aside==="left":o.value.aside==="left":!1),g=b(()=>o.value.layout==="home"?!1:o.value.aside!=null?!!o.value.aside:t.value.aside!==!1),y=b(()=>h.value&&n.value),P=b(()=>h.value?_t(u.value):[]);function I(){s.value=!0}function N(){s.value=!1}function A(){s.value?N():I()}return{isOpen:s,sidebar:u,sidebarGroups:P,hasSidebar:h,hasAside:g,leftAside:d,isSidebarEnabled:y,open:I,close:N,toggle:A}}function kt(o,e){let t;x(()=>{t=o.value?document.activeElement:void 0}),j(()=>{window.addEventListener("keyup",n)}),pe(()=>{window.removeEventListener("keyup",n)});function n(s){s.key==="Escape"&&o.value&&(e(),t==null||t.focus())}}function $t(o){const{page:e}=V(),t=S(!1),n=b(()=>o.value.collapsed!=null),s=b(()=>!!o.value.link),i=S(!1),u=()=>{i.value=G(e.value.relativePath,o.value.link)};z([e,o,fe],u),j(u);const h=b(()=>i.value?!0:o.value.items?ce(e.value.relativePath,o.value.items):!1),d=b(()=>!!(o.value.items&&o.value.items.length));x(()=>{t.value=!!(n.value&&o.value.collapsed)}),ye(()=>{(i.value||h.value)&&(t.value=!1)});function g(){n.value&&(t.value=!t.value)}return{collapsed:t,collapsible:n,isLink:s,isActiveLink:i,hasActiveLink:h,hasChildren:d,toggle:g}}function bt(){const{hasSidebar:o}=O(),e=ie("(min-width: 960px)"),t=ie("(min-width: 1280px)");return{isAsideEnabled:b(()=>!t.value&&!e.value?!1:o.value?t.value:e.value)}}const ue=[];function Ne(o){return typeof o.outline=="object"&&!Array.isArray(o.outline)&&o.outline.label||o.outlineTitle||"On this page"}function _e(o){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const n=Number(t.tagName[1]);return{element:t,title:gt(t),link:"#"+t.id,level:n}});return yt(e,o)}function gt(o){let e="";for(const t of o.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function yt(o,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[n,s]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;o=o.filter(u=>u.level>=n&&u.level<=s),ue.length=0;for(const{element:u,link:h}of o)ue.push({element:u,link:h});const i=[];e:for(let u=0;u=0;d--){const g=o[d];if(g.level{requestAnimationFrame(i),window.addEventListener("scroll",n)}),ze(()=>{u(location.hash)}),pe(()=>{window.removeEventListener("scroll",n)});function i(){if(!t.value)return;const h=window.scrollY,d=window.innerHeight,g=document.body.offsetHeight,y=Math.abs(h+d-g)<1,P=ue.map(({element:N,link:A})=>({link:A,top:Vt(N)})).filter(({top:N})=>!Number.isNaN(N)).sort((N,A)=>N.top-A.top);if(!P.length){u(null);return}if(h<1){u(null);return}if(y){u(P[P.length-1].link);return}let I=null;for(const{link:N,top:A}of P){if(A>h+qe()+4)break;I=N}u(I)}function u(h){s&&s.classList.remove("active"),h==null?s=null:s=o.value.querySelector(`a[href="${decodeURIComponent(h)}"]`);const d=s;d?(d.classList.add("active"),e.value.style.top=d.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Vt(o){let e=0;for(;o!==document.body;){if(o===null)return NaN;e+=o.offsetTop,o=o.offsetParent}return e}const Lt=["href","title"],St=_({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(o){function e({target:t}){const n=t.href.split("#")[1],s=document.getElementById(decodeURIComponent(n));s==null||s.focus({preventScroll:!0})}return(t,n)=>{const s=q("VPDocOutlineItem",!0);return a(),c("ul",{class:T(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),c(M,null,E(t.headers,({children:i,link:u,title:h})=>(a(),c("li",null,[p("a",{class:"outline-link",href:u,onClick:e,title:h},L(h),9,Lt),i!=null&&i.length?(a(),$(s,{key:0,headers:i},null,8,["headers"])):f("",!0)]))),256))],2)}}}),Me=k(St,[["__scopeId","data-v-58ec0246"]]),wt=o=>(C("data-v-4a63de48"),o=o(),H(),o),It={class:"content"},Tt={class:"outline-title",role:"heading","aria-level":"2"},Nt={"aria-labelledby":"doc-outline-aria-label"},Mt=wt(()=>p("span",{class:"visually-hidden",id:"doc-outline-aria-label"}," Table of Contents for current page ",-1)),At=_({__name:"VPDocAsideOutline",setup(o){const{frontmatter:e,theme:t}=V(),n=Pe([]);ee(()=>{n.value=_e(e.value.outline??t.value.outline)});const s=S(),i=S();return Pt(s,i),(u,h)=>(a(),c("div",{class:T(["VPDocAsideOutline",{"has-outline":n.value.length>0}]),ref_key:"container",ref:s,role:"navigation"},[p("div",It,[p("div",{class:"outline-marker",ref_key:"marker",ref:i},null,512),p("div",Tt,L(r(Ne)(r(t))),1),p("nav",Nt,[Mt,m(Me,{headers:n.value,root:!0},null,8,["headers"])])])],2))}}),Bt=k(At,[["__scopeId","data-v-4a63de48"]]),Ct={class:"VPDocAsideCarbonAds"},Ht=_({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(o){const e=()=>null;return(t,n)=>(a(),c("div",Ct,[m(r(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Et=o=>(C("data-v-465fd2fa"),o=o(),H(),o),Ft={class:"VPDocAside"},Dt=Et(()=>p("div",{class:"spacer"},null,-1)),Ot=_({__name:"VPDocAside",setup(o){const{theme:e}=V();return(t,n)=>(a(),c("div",Ft,[l(t.$slots,"aside-top",{},void 0,!0),l(t.$slots,"aside-outline-before",{},void 0,!0),m(Bt),l(t.$slots,"aside-outline-after",{},void 0,!0),Dt,l(t.$slots,"aside-ads-before",{},void 0,!0),r(e).carbonAds?(a(),$(Ht,{key:0,"carbon-ads":r(e).carbonAds},null,8,["carbon-ads"])):f("",!0),l(t.$slots,"aside-ads-after",{},void 0,!0),l(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Ut=k(Ot,[["__scopeId","data-v-465fd2fa"]]);function Gt(){const{theme:o,page:e}=V();return b(()=>{const{text:t="Edit this page",pattern:n=""}=o.value.editLink||{};let s;return typeof n=="function"?s=n(e.value):s=n.replace(/:path/g,e.value.filePath),{url:s,text:t}})}function jt(){const{page:o,theme:e,frontmatter:t}=V();return b(()=>{var d,g,y,P,I,N,A,B;const n=Te(e.value.sidebar,o.value.relativePath),s=mt(n),i=s.findIndex(w=>G(o.value.relativePath,w.link)),u=((d=e.value.docFooter)==null?void 0:d.prev)===!1&&!t.value.prev||t.value.prev===!1,h=((g=e.value.docFooter)==null?void 0:g.next)===!1&&!t.value.next||t.value.next===!1;return{prev:u?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((y=s[i-1])==null?void 0:y.docFooterText)??((P=s[i-1])==null?void 0:P.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((I=s[i-1])==null?void 0:I.link)},next:h?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((N=s[i+1])==null?void 0:N.docFooterText)??((A=s[i+1])==null?void 0:A.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((B=s[i+1])==null?void 0:B.link)}}})}const D=_({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(o){const e=o,t=b(()=>e.tag??(e.href?"a":"span")),n=b(()=>e.href&&Ve.test(e.href));return(s,i)=>(a(),$(K(t.value),{class:T(["VPLink",{link:s.href,"vp-external-link-icon":n.value,"no-icon":s.noIcon}]),href:s.href?r(he)(s.href):void 0,target:s.target??(n.value?"_blank":void 0),rel:s.rel??(n.value?"noreferrer":void 0)},{default:v(()=>[l(s.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),zt={class:"VPLastUpdated"},qt=["datetime"],Wt=_({__name:"VPDocFooterLastUpdated",setup(o){const{theme:e,page:t,frontmatter:n,lang:s}=V(),i=b(()=>new Date(n.value.lastUpdated??t.value.lastUpdated)),u=b(()=>i.value.toISOString()),h=S("");return j(()=>{x(()=>{var d,g,y;h.value=new Intl.DateTimeFormat((g=(d=e.value.lastUpdated)==null?void 0:d.formatOptions)!=null&&g.forceLocale?s.value:void 0,((y=e.value.lastUpdated)==null?void 0:y.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(i.value)})}),(d,g)=>{var y;return a(),c("p",zt,[F(L(((y=r(e).lastUpdated)==null?void 0:y.text)||r(e).lastUpdatedText||"Last updated")+": ",1),p("time",{datetime:u.value},L(h.value),9,qt)])}}}),Kt=k(Wt,[["__scopeId","data-v-4fc3eeca"]]),Rt=o=>(C("data-v-311e5358"),o=o(),H(),o),Jt={key:0,class:"VPDocFooter"},Yt={key:0,class:"edit-info"},Qt={key:0,class:"edit-link"},Xt=Rt(()=>p("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),Zt={key:1,class:"last-updated"},xt={key:1,class:"prev-next"},eo={class:"pager"},to=["innerHTML"],oo=["innerHTML"],so={class:"pager"},no=["innerHTML"],ao=["innerHTML"],ro=_({__name:"VPDocFooter",setup(o){const{theme:e,page:t,frontmatter:n}=V(),s=Gt(),i=jt(),u=b(()=>e.value.editLink&&n.value.editLink!==!1),h=b(()=>t.value.lastUpdated&&n.value.lastUpdated!==!1),d=b(()=>u.value||h.value||i.value.prev||i.value.next);return(g,y)=>{var P,I,N,A;return d.value?(a(),c("footer",Jt,[l(g.$slots,"doc-footer-before",{},void 0,!0),u.value||h.value?(a(),c("div",Yt,[u.value?(a(),c("div",Qt,[m(D,{class:"edit-link-button",href:r(s).url,"no-icon":!0},{default:v(()=>[Xt,F(" "+L(r(s).text),1)]),_:1},8,["href"])])):f("",!0),h.value?(a(),c("div",Zt,[m(Kt)])):f("",!0)])):f("",!0),(P=r(i).prev)!=null&&P.link||(I=r(i).next)!=null&&I.link?(a(),c("nav",xt,[p("div",eo,[(N=r(i).prev)!=null&&N.link?(a(),$(D,{key:0,class:"pager-link prev",href:r(i).prev.link},{default:v(()=>{var B;return[p("span",{class:"desc",innerHTML:((B=r(e).docFooter)==null?void 0:B.prev)||"Previous page"},null,8,to),p("span",{class:"title",innerHTML:r(i).prev.text},null,8,oo)]}),_:1},8,["href"])):f("",!0)]),p("div",so,[(A=r(i).next)!=null&&A.link?(a(),$(D,{key:0,class:"pager-link next",href:r(i).next.link},{default:v(()=>{var B;return[p("span",{class:"desc",innerHTML:((B=r(e).docFooter)==null?void 0:B.next)||"Next page"},null,8,no),p("span",{class:"title",innerHTML:r(i).next.text},null,8,ao)]}),_:1},8,["href"])):f("",!0)])])):f("",!0)])):f("",!0)}}}),io=k(ro,[["__scopeId","data-v-311e5358"]]),lo=o=>(C("data-v-13d3b166"),o=o(),H(),o),co={class:"container"},uo=lo(()=>p("div",{class:"aside-curtain"},null,-1)),vo={class:"aside-container"},po={class:"aside-content"},ho={class:"content"},fo={class:"content-container"},_o={class:"main"},mo=_({__name:"VPDoc",setup(o){const{theme:e}=V(),t=te(),{hasSidebar:n,hasAside:s,leftAside:i}=O(),u=b(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(h,d)=>{const g=q("Content");return a(),c("div",{class:T(["VPDoc",{"has-sidebar":r(n),"has-aside":r(s)}])},[l(h.$slots,"doc-top",{},void 0,!0),p("div",co,[r(s)?(a(),c("div",{key:0,class:T(["aside",{"left-aside":r(i)}])},[uo,p("div",vo,[p("div",po,[m(Ut,null,{"aside-top":v(()=>[l(h.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[l(h.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[l(h.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[l(h.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[l(h.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[l(h.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):f("",!0),p("div",ho,[p("div",fo,[l(h.$slots,"doc-before",{},void 0,!0),p("main",_o,[m(g,{class:T(["vp-doc",[u.value,r(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),m(io,null,{"doc-footer-before":v(()=>[l(h.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),l(h.$slots,"doc-after",{},void 0,!0)])])]),l(h.$slots,"doc-bottom",{},void 0,!0)],2)}}}),ko=k(mo,[["__scopeId","data-v-13d3b166"]]),$o=_({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(o){const e=o,t=b(()=>e.href&&Ve.test(e.href)),n=b(()=>e.tag||e.href?"a":"button");return(s,i)=>(a(),$(K(n.value),{class:T(["VPButton",[s.size,s.theme]]),href:s.href?r(he)(s.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:v(()=>[F(L(s.text),1)]),_:1},8,["class","href","target","rel"]))}}),bo=k($o,[["__scopeId","data-v-12f1d0a0"]]),go=["src","alt"],yo=_({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(o){return(e,t)=>{const n=q("VPImage",!0);return e.image?(a(),c(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),c("img",Q({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:r(ve)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,go)):(a(),c(M,{key:1},[m(n,Q({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),m(n,Q({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):f("",!0)}}}),Z=k(yo,[["__scopeId","data-v-17155ade"]]),Po=o=>(C("data-v-99eed858"),o=o(),H(),o),Vo={class:"container"},Lo={class:"main"},So={key:0,class:"name"},wo=["innerHTML"],Io=["innerHTML"],To=["innerHTML"],No={key:0,class:"actions"},Mo={key:0,class:"image"},Ao={class:"image-container"},Bo=Po(()=>p("div",{class:"image-bg"},null,-1)),Co=_({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(o){const e=oe("hero-image-slot-exists");return(t,n)=>(a(),c("div",{class:T(["VPHero",{"has-image":t.image||r(e)}])},[p("div",Vo,[p("div",Lo,[l(t.$slots,"home-hero-info-before",{},void 0,!0),l(t.$slots,"home-hero-info",{},()=>[t.name?(a(),c("h1",So,[p("span",{innerHTML:t.name,class:"clip"},null,8,wo)])):f("",!0),t.text?(a(),c("p",{key:1,innerHTML:t.text,class:"text"},null,8,Io)):f("",!0),t.tagline?(a(),c("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,To)):f("",!0)],!0),l(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),c("div",No,[(a(!0),c(M,null,E(t.actions,s=>(a(),c("div",{key:s.link,class:"action"},[m(bo,{tag:"a",size:"medium",theme:s.theme,text:s.text,href:s.link,target:s.target,rel:s.rel},null,8,["theme","text","href","target","rel"])]))),128))])):f("",!0),l(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||r(e)?(a(),c("div",Mo,[p("div",Ao,[Bo,l(t.$slots,"home-hero-image",{},()=>[t.image?(a(),$(Z,{key:0,class:"image-src",image:t.image},null,8,["image"])):f("",!0)],!0)])])):f("",!0)])],2))}}),Ho=k(Co,[["__scopeId","data-v-99eed858"]]),Eo=_({__name:"VPHomeHero",setup(o){const{frontmatter:e}=V();return(t,n)=>r(e).hero?(a(),$(Ho,{key:0,class:"VPHomeHero",name:r(e).hero.name,text:r(e).hero.text,tagline:r(e).hero.tagline,image:r(e).hero.image,actions:r(e).hero.actions},{"home-hero-info-before":v(()=>[l(t.$slots,"home-hero-info-before")]),"home-hero-info":v(()=>[l(t.$slots,"home-hero-info")]),"home-hero-info-after":v(()=>[l(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":v(()=>[l(t.$slots,"home-hero-actions-after")]),"home-hero-image":v(()=>[l(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):f("",!0)}}),Fo=o=>(C("data-v-4d50477a"),o=o(),H(),o),Do={class:"box"},Oo={key:0,class:"icon"},Uo=["innerHTML"],Go=["innerHTML"],jo=["innerHTML"],zo={key:4,class:"link-text"},qo={class:"link-text-value"},Wo=Fo(()=>p("span",{class:"vpi-arrow-right link-text-icon"},null,-1)),Ko=_({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(o){return(e,t)=>(a(),$(D,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:v(()=>[p("article",Do,[typeof e.icon=="object"&&e.icon.wrap?(a(),c("div",Oo,[m(Z,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),$(Z,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),c("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Uo)):f("",!0),p("h2",{class:"title",innerHTML:e.title},null,8,Go),e.details?(a(),c("p",{key:3,class:"details",innerHTML:e.details},null,8,jo)):f("",!0),e.linkText?(a(),c("div",zo,[p("p",qo,[F(L(e.linkText)+" ",1),Wo])])):f("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Ro=k(Ko,[["__scopeId","data-v-4d50477a"]]),Jo={key:0,class:"VPFeatures"},Yo={class:"container"},Qo={class:"items"},Xo=_({__name:"VPFeatures",props:{features:{}},setup(o){const e=o,t=b(()=>{const n=e.features.length;if(n){if(n===2)return"grid-2";if(n===3)return"grid-3";if(n%3===0)return"grid-6";if(n>3)return"grid-4"}else return});return(n,s)=>n.features?(a(),c("div",Jo,[p("div",Yo,[p("div",Qo,[(a(!0),c(M,null,E(n.features,i=>(a(),c("div",{key:i.title,class:T(["item",[t.value]])},[m(Ro,{icon:i.icon,title:i.title,details:i.details,link:i.link,"link-text":i.linkText,rel:i.rel,target:i.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):f("",!0)}}),Zo=k(Xo,[["__scopeId","data-v-ac86b7e6"]]),xo=_({__name:"VPHomeFeatures",setup(o){const{frontmatter:e}=V();return(t,n)=>r(e).features?(a(),$(Zo,{key:0,class:"VPHomeFeatures",features:r(e).features},null,8,["features"])):f("",!0)}}),es=_({__name:"VPHomeContent",setup(o){const{width:e}=We({includeScrollbar:!1});return(t,n)=>(a(),c("div",{class:"vp-doc container",style:Le(r(e)?{"--vp-offset":`calc(50% - ${r(e)/2}px)`}:{})},[l(t.$slots,"default",{},void 0,!0)],4))}}),ts=k(es,[["__scopeId","data-v-5fb900b2"]]),os={class:"VPHome"},ss=_({__name:"VPHome",setup(o){const{frontmatter:e}=V();return(t,n)=>{const s=q("Content");return a(),c("div",os,[l(t.$slots,"home-hero-before",{},void 0,!0),m(Eo,null,{"home-hero-info-before":v(()=>[l(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[l(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[l(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[l(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[l(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),l(t.$slots,"home-hero-after",{},void 0,!0),l(t.$slots,"home-features-before",{},void 0,!0),m(xo),l(t.$slots,"home-features-after",{},void 0,!0),r(e).markdownStyles!==!1?(a(),$(ts,{key:0},{default:v(()=>[m(s)]),_:1})):(a(),$(s,{key:1}))])}}}),ns=k(ss,[["__scopeId","data-v-c5e107f6"]]),as={},rs={class:"VPPage"};function is(o,e){const t=q("Content");return a(),c("div",rs,[l(o.$slots,"page-top"),m(t),l(o.$slots,"page-bottom")])}const ls=k(as,[["render",is]]),cs=_({__name:"VPContent",setup(o){const{page:e,frontmatter:t}=V(),{hasSidebar:n}=O();return(s,i)=>(a(),c("div",{class:T(["VPContent",{"has-sidebar":r(n),"is-home":r(t).layout==="home"}]),id:"VPContent"},[r(e).isNotFound?l(s.$slots,"not-found",{key:0},()=>[m(ft)],!0):r(t).layout==="page"?(a(),$(ls,{key:1},{"page-top":v(()=>[l(s.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[l(s.$slots,"page-bottom",{},void 0,!0)]),_:3})):r(t).layout==="home"?(a(),$(ns,{key:2},{"home-hero-before":v(()=>[l(s.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":v(()=>[l(s.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[l(s.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[l(s.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[l(s.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[l(s.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[l(s.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[l(s.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[l(s.$slots,"home-features-after",{},void 0,!0)]),_:3})):r(t).layout&&r(t).layout!=="doc"?(a(),$(K(r(t).layout),{key:3})):(a(),$(ko,{key:4},{"doc-top":v(()=>[l(s.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[l(s.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":v(()=>[l(s.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[l(s.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[l(s.$slots,"doc-after",{},void 0,!0)]),"aside-top":v(()=>[l(s.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":v(()=>[l(s.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[l(s.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[l(s.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[l(s.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":v(()=>[l(s.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),us=k(cs,[["__scopeId","data-v-787a1e06"]]),ds={class:"container"},vs=["innerHTML"],ps=["innerHTML"],hs=_({__name:"VPFooter",setup(o){const{theme:e,frontmatter:t}=V(),{hasSidebar:n}=O();return(s,i)=>r(e).footer&&r(t).footer!==!1?(a(),c("footer",{key:0,class:T(["VPFooter",{"has-sidebar":r(n)}])},[p("div",ds,[r(e).footer.message?(a(),c("p",{key:0,class:"message",innerHTML:r(e).footer.message},null,8,vs)):f("",!0),r(e).footer.copyright?(a(),c("p",{key:1,class:"copyright",innerHTML:r(e).footer.copyright},null,8,ps)):f("",!0)])],2)):f("",!0)}}),fs=k(hs,[["__scopeId","data-v-0a38b38c"]]);function Ae(){const{theme:o,frontmatter:e}=V(),t=Pe([]),n=b(()=>t.value.length>0);return ee(()=>{t.value=_e(e.value.outline??o.value.outline)}),{headers:t,hasLocalNav:n}}const _s=o=>(C("data-v-ce15bf42"),o=o(),H(),o),ms=_s(()=>p("span",{class:"vpi-chevron-right icon"},null,-1)),ks={class:"header"},$s={class:"outline"},bs=_({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(o){const e=o,{theme:t}=V(),n=S(!1),s=S(0),i=S(),u=S();Ke(i,()=>{n.value=!1}),Re("Escape",()=>{n.value=!1}),ee(()=>{n.value=!1});function h(){n.value=!n.value,s.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function d(y){y.target.classList.contains("outline-link")&&(u.value&&(u.value.style.transition="none"),Je(()=>{n.value=!1}))}function g(){n.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(y,P)=>(a(),c("div",{class:"VPLocalNavOutlineDropdown",style:Le({"--vp-vh":s.value+"px"}),ref_key:"main",ref:i},[y.headers.length>0?(a(),c("button",{key:0,onClick:h,class:T({open:n.value})},[F(L(r(Ne)(r(t)))+" ",1),ms],2)):(a(),c("button",{key:1,onClick:g},L(r(t).returnToTopLabel||"Return to top"),1)),m(de,{name:"flyout"},{default:v(()=>[n.value?(a(),c("div",{key:0,ref_key:"items",ref:u,class:"items",onClick:d},[p("div",ks,[p("a",{class:"top-link",href:"#",onClick:g},L(r(t).returnToTopLabel||"Return to top"),1)]),p("div",$s,[m(Me,{headers:y.headers},null,8,["headers"])])],512)):f("",!0)]),_:1})],4))}}),gs=k(bs,[["__scopeId","data-v-ce15bf42"]]),ys=o=>(C("data-v-c7fa3a03"),o=o(),H(),o),Ps={class:"container"},Vs=["aria-expanded"],Ls=ys(()=>p("span",{class:"vpi-align-left menu-icon"},null,-1)),Ss={class:"menu-text"},ws=_({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(o){const{theme:e,frontmatter:t}=V(),{hasSidebar:n}=O(),{headers:s}=Ae(),{y:i}=Se(),u=S(0);j(()=>{u.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),ee(()=>{s.value=_e(t.value.outline??e.value.outline)});const h=b(()=>s.value.length===0),d=b(()=>h.value&&!n.value),g=b(()=>({VPLocalNav:!0,"has-sidebar":n.value,empty:h.value,fixed:d.value}));return(y,P)=>r(t).layout!=="home"&&(!d.value||r(i)>=u.value)?(a(),c("div",{key:0,class:T(g.value)},[p("div",Ps,[r(n)?(a(),c("button",{key:0,class:"menu","aria-expanded":y.open,"aria-controls":"VPSidebarNav",onClick:P[0]||(P[0]=I=>y.$emit("open-menu"))},[Ls,p("span",Ss,L(r(e).sidebarMenuLabel||"Menu"),1)],8,Vs)):f("",!0),m(gs,{headers:r(s),navHeight:u.value},null,8,["headers","navHeight"])])],2)):f("",!0)}}),Is=k(ws,[["__scopeId","data-v-c7fa3a03"]]);function Ts(){const o=S(!1);function e(){o.value=!0,window.addEventListener("resize",s)}function t(){o.value=!1,window.removeEventListener("resize",s)}function n(){o.value?t():e()}function s(){window.outerWidth>=768&&t()}const i=te();return z(()=>i.path,t),{isScreenOpen:o,openScreen:e,closeScreen:t,toggleScreen:n}}const Ns={},Ms={class:"VPSwitch",type:"button",role:"switch"},As={class:"check"},Bs={key:0,class:"icon"};function Cs(o,e){return a(),c("button",Ms,[p("span",As,[o.$slots.default?(a(),c("span",Bs,[l(o.$slots,"default",{},void 0,!0)])):f("",!0)])])}const Hs=k(Ns,[["render",Cs],["__scopeId","data-v-e775a51b"]]),Be=o=>(C("data-v-f327c0eb"),o=o(),H(),o),Es=Be(()=>p("span",{class:"vpi-sun sun"},null,-1)),Fs=Be(()=>p("span",{class:"vpi-moon moon"},null,-1)),Ds=_({__name:"VPSwitchAppearance",setup(o){const{isDark:e,theme:t}=V(),n=oe("toggle-appearance",()=>{e.value=!e.value}),s=b(()=>e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme");return(i,u)=>(a(),$(Hs,{title:s.value,class:"VPSwitchAppearance","aria-checked":r(e),onClick:r(n)},{default:v(()=>[Es,Fs]),_:1},8,["title","aria-checked","onClick"]))}}),me=k(Ds,[["__scopeId","data-v-f327c0eb"]]),Os={key:0,class:"VPNavBarAppearance"},Us=_({__name:"VPNavBarAppearance",setup(o){const{site:e}=V();return(t,n)=>r(e).appearance&&r(e).appearance!=="force-dark"?(a(),c("div",Os,[m(me)])):f("",!0)}}),Gs=k(Us,[["__scopeId","data-v-920ea739"]]),ke=S();let Ce=!1,re=0;function js(o){const e=S(!1);if(R){!Ce&&zs(),re++;const t=z(ke,n=>{var s,i,u;n===o.el.value||(s=o.el.value)!=null&&s.contains(n)?(e.value=!0,(i=o.onFocus)==null||i.call(o)):(e.value=!1,(u=o.onBlur)==null||u.call(o))});pe(()=>{t(),re--,re||qs()})}return Ye(e)}function zs(){document.addEventListener("focusin",He),Ce=!0,ke.value=document.activeElement}function qs(){document.removeEventListener("focusin",He)}function He(){ke.value=document.activeElement}const Ws={class:"VPMenuLink"},Ks=_({__name:"VPMenuLink",props:{item:{}},setup(o){const{page:e}=V();return(t,n)=>(a(),c("div",Ws,[m(D,{class:T({active:r(G)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:v(()=>[F(L(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),se=k(Ks,[["__scopeId","data-v-84ccf230"]]),Rs={class:"VPMenuGroup"},Js={key:0,class:"title"},Ys=_({__name:"VPMenuGroup",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),c("div",Rs,[e.text?(a(),c("p",Js,L(e.text),1)):f("",!0),(a(!0),c(M,null,E(e.items,n=>(a(),c(M,null,["link"in n?(a(),$(se,{key:0,item:n},null,8,["item"])):f("",!0)],64))),256))]))}}),Qs=k(Ys,[["__scopeId","data-v-f7f49da0"]]),Xs={class:"VPMenu"},Zs={key:0,class:"items"},xs=_({__name:"VPMenu",props:{items:{}},setup(o){return(e,t)=>(a(),c("div",Xs,[e.items?(a(),c("div",Zs,[(a(!0),c(M,null,E(e.items,n=>(a(),c(M,{key:n.text},["link"in n?(a(),$(se,{key:0,item:n},null,8,["item"])):(a(),$(Qs,{key:1,text:n.text,items:n.items},null,8,["text","items"]))],64))),128))])):f("",!0),l(e.$slots,"default",{},void 0,!0)]))}}),en=k(xs,[["__scopeId","data-v-e8d68d95"]]),tn=o=>(C("data-v-c0b03d55"),o=o(),H(),o),on=["aria-expanded","aria-label"],sn={key:0,class:"text"},nn=["innerHTML"],an=tn(()=>p("span",{class:"vpi-chevron-down text-icon"},null,-1)),rn={key:1,class:"vpi-more-horizontal icon"},ln={class:"menu"},cn=_({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(o){const e=S(!1),t=S();js({el:t,onBlur:n});function n(){e.value=!1}return(s,i)=>(a(),c("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:i[1]||(i[1]=u=>e.value=!0),onMouseleave:i[2]||(i[2]=u=>e.value=!1)},[p("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":s.label,onClick:i[0]||(i[0]=u=>e.value=!e.value)},[s.button||s.icon?(a(),c("span",sn,[s.icon?(a(),c("span",{key:0,class:T([s.icon,"option-icon"])},null,2)):f("",!0),s.button?(a(),c("span",{key:1,innerHTML:s.button},null,8,nn)):f("",!0),an])):(a(),c("span",rn))],8,on),p("div",ln,[m(en,{items:s.items},{default:v(()=>[l(s.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),$e=k(cn,[["__scopeId","data-v-c0b03d55"]]),un=["href","aria-label","innerHTML"],dn=_({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(o){const e=o,t=b(()=>typeof e.icon=="object"?e.icon.svg:``);return(n,s)=>(a(),c("a",{class:"VPSocialLink no-icon",href:n.link,"aria-label":n.ariaLabel??(typeof n.icon=="string"?n.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,un))}}),vn=k(dn,[["__scopeId","data-v-054ad44b"]]),pn={class:"VPSocialLinks"},hn=_({__name:"VPSocialLinks",props:{links:{}},setup(o){return(e,t)=>(a(),c("div",pn,[(a(!0),c(M,null,E(e.links,({link:n,icon:s,ariaLabel:i})=>(a(),$(vn,{key:n,icon:s,link:n,ariaLabel:i},null,8,["icon","link","ariaLabel"]))),128))]))}}),be=k(hn,[["__scopeId","data-v-26c7e433"]]),fn={key:0,class:"group translations"},_n={class:"trans-title"},mn={key:1,class:"group"},kn={class:"item appearance"},$n={class:"label"},bn={class:"appearance-action"},gn={key:2,class:"group"},yn={class:"item social-links"},Pn=_({__name:"VPNavBarExtra",setup(o){const{site:e,theme:t}=V(),{localeLinks:n,currentLang:s}=J({correspondingLink:!0}),i=b(()=>n.value.length&&s.value.label||e.value.appearance||t.value.socialLinks);return(u,h)=>i.value?(a(),$($e,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:v(()=>[r(n).length&&r(s).label?(a(),c("div",fn,[p("p",_n,L(r(s).label),1),(a(!0),c(M,null,E(r(n),d=>(a(),$(se,{key:d.link,item:d},null,8,["item"]))),128))])):f("",!0),r(e).appearance&&r(e).appearance!=="force-dark"?(a(),c("div",mn,[p("div",kn,[p("p",$n,L(r(t).darkModeSwitchLabel||"Appearance"),1),p("div",bn,[m(me)])])])):f("",!0),r(t).socialLinks?(a(),c("div",gn,[p("div",yn,[m(be,{class:"social-links-list",links:r(t).socialLinks},null,8,["links"])])])):f("",!0)]),_:1})):f("",!0)}}),Vn=k(Pn,[["__scopeId","data-v-3d53e9c7"]]),Ln=o=>(C("data-v-3428b086"),o=o(),H(),o),Sn=["aria-expanded"],wn=Ln(()=>p("span",{class:"container"},[p("span",{class:"top"}),p("span",{class:"middle"}),p("span",{class:"bottom"})],-1)),In=[wn],Tn=_({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(o){return(e,t)=>(a(),c("button",{type:"button",class:T(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=n=>e.$emit("click"))},In,10,Sn))}}),Nn=k(Tn,[["__scopeId","data-v-3428b086"]]),Mn=["innerHTML"],An=_({__name:"VPNavBarMenuLink",props:{item:{}},setup(o){const{page:e}=V();return(t,n)=>(a(),$(D,{class:T({VPNavBarMenuLink:!0,active:r(G)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:v(()=>[p("span",{innerHTML:t.item.text},null,8,Mn)]),_:1},8,["class","href","target","rel"]))}}),Bn=k(An,[["__scopeId","data-v-a12bafb5"]]),Cn=_({__name:"VPNavBarMenuGroup",props:{item:{}},setup(o){const e=o,{page:t}=V(),n=i=>"link"in i?G(t.value.relativePath,i.link,!!e.item.activeMatch):i.items.some(n),s=b(()=>n(e.item));return(i,u)=>(a(),$($e,{class:T({VPNavBarMenuGroup:!0,active:r(G)(r(t).relativePath,i.item.activeMatch,!!i.item.activeMatch)||s.value}),button:i.item.text,items:i.item.items},null,8,["class","button","items"]))}}),Hn=o=>(C("data-v-25f68e44"),o=o(),H(),o),En={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Fn=Hn(()=>p("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),Dn=_({__name:"VPNavBarMenu",setup(o){const{theme:e}=V();return(t,n)=>r(e).nav?(a(),c("nav",En,[Fn,(a(!0),c(M,null,E(r(e).nav,s=>(a(),c(M,{key:s.text},["link"in s?(a(),$(Bn,{key:0,item:s},null,8,["item"])):(a(),$(Cn,{key:1,item:s},null,8,["item"]))],64))),128))])):f("",!0)}}),On=k(Dn,[["__scopeId","data-v-25f68e44"]]);function Un(o){const{localeIndex:e,theme:t}=V();function n(s){var A,B,w;const i=s.split("."),u=(A=t.value.search)==null?void 0:A.options,h=u&&typeof u=="object",d=h&&((w=(B=u.locales)==null?void 0:B[e.value])==null?void 0:w.translations)||null,g=h&&u.translations||null;let y=d,P=g,I=o;const N=i.pop();for(const Y of i){let U=null;const W=I==null?void 0:I[Y];W&&(U=I=W);const ne=P==null?void 0:P[Y];ne&&(U=P=ne);const ae=y==null?void 0:y[Y];ae&&(U=y=ae),W||(I=U),ne||(P=U),ae||(y=U)}return(y==null?void 0:y[N])??(P==null?void 0:P[N])??(I==null?void 0:I[N])??""}return n}const Gn=["aria-label"],jn={class:"DocSearch-Button-Container"},zn=p("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1),qn={class:"DocSearch-Button-Placeholder"},Wn=p("span",{class:"DocSearch-Button-Keys"},[p("kbd",{class:"DocSearch-Button-Key"}),p("kbd",{class:"DocSearch-Button-Key"},"K")],-1),ge=_({__name:"VPNavBarSearchButton",setup(o){const t=Un({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(n,s)=>(a(),c("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":r(t)("button.buttonAriaLabel")},[p("span",jn,[zn,p("span",qn,L(r(t)("button.buttonText")),1)]),Wn],8,Gn))}}),Kn={class:"VPNavBarSearch"},Rn={id:"local-search"},Jn={key:1,id:"docsearch"},Yn=_({__name:"VPNavBarSearch",setup(o){const e=()=>null,t=()=>null,{theme:n}=V(),s=S(!1),i=S(!1);j(()=>{});function u(){s.value||(s.value=!0,setTimeout(h,16))}function h(){const y=new Event("keydown");y.key="k",y.metaKey=!0,window.dispatchEvent(y),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||h()},16)}const d=S(!1),g="";return(y,P)=>{var I;return a(),c("div",Kn,[r(g)==="local"?(a(),c(M,{key:0},[d.value?(a(),$(r(e),{key:0,onClose:P[0]||(P[0]=N=>d.value=!1)})):f("",!0),p("div",Rn,[m(ge,{onClick:P[1]||(P[1]=N=>d.value=!0)})])],64)):r(g)==="algolia"?(a(),c(M,{key:1},[s.value?(a(),$(r(t),{key:0,algolia:((I=r(n).search)==null?void 0:I.options)??r(n).algolia,onVnodeBeforeMount:P[2]||(P[2]=N=>i.value=!0)},null,8,["algolia"])):f("",!0),i.value?f("",!0):(a(),c("div",Jn,[m(ge,{onClick:u})]))],64)):f("",!0)])}}}),Qn=_({__name:"VPNavBarSocialLinks",setup(o){const{theme:e}=V();return(t,n)=>r(e).socialLinks?(a(),$(be,{key:0,class:"VPNavBarSocialLinks",links:r(e).socialLinks},null,8,["links"])):f("",!0)}}),Xn=k(Qn,[["__scopeId","data-v-1db4960e"]]),Zn=["href","rel","target"],xn={key:1},ea={key:2},ta=_({__name:"VPNavBarTitle",setup(o){const{site:e,theme:t}=V(),{hasSidebar:n}=O(),{currentLang:s}=J(),i=b(()=>{var d;return typeof t.value.logoLink=="string"?t.value.logoLink:(d=t.value.logoLink)==null?void 0:d.link}),u=b(()=>{var d;return typeof t.value.logoLink=="string"||(d=t.value.logoLink)==null?void 0:d.rel}),h=b(()=>{var d;return typeof t.value.logoLink=="string"||(d=t.value.logoLink)==null?void 0:d.target});return(d,g)=>(a(),c("div",{class:T(["VPNavBarTitle",{"has-sidebar":r(n)}])},[p("a",{class:"title",href:i.value??r(he)(r(s).link),rel:u.value,target:h.value},[l(d.$slots,"nav-bar-title-before",{},void 0,!0),r(t).logo?(a(),$(Z,{key:0,class:"logo",image:r(t).logo},null,8,["image"])):f("",!0),r(t).siteTitle?(a(),c("span",xn,L(r(t).siteTitle),1)):r(t).siteTitle===void 0?(a(),c("span",ea,L(r(e).title),1)):f("",!0),l(d.$slots,"nav-bar-title-after",{},void 0,!0)],8,Zn)],2))}}),oa=k(ta,[["__scopeId","data-v-bd7b7032"]]),sa={class:"items"},na={class:"title"},aa=_({__name:"VPNavBarTranslations",setup(o){const{theme:e}=V(),{localeLinks:t,currentLang:n}=J({correspondingLink:!0});return(s,i)=>r(t).length&&r(n).label?(a(),$($e,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:r(e).langMenuLabel||"Change language"},{default:v(()=>[p("div",sa,[p("p",na,L(r(n).label),1),(a(!0),c(M,null,E(r(t),u=>(a(),$(se,{key:u.link,item:u},null,8,["item"]))),128))])]),_:1},8,["label"])):f("",!0)}}),ra=k(aa,[["__scopeId","data-v-e020314f"]]),ia=o=>(C("data-v-50076c89"),o=o(),H(),o),la={class:"wrapper"},ca={class:"container"},ua={class:"title"},da={class:"content"},va={class:"content-body"},pa=ia(()=>p("div",{class:"divider"},[p("div",{class:"divider-line"})],-1)),ha=_({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(o){const{y:e}=Se(),{hasSidebar:t}=O(),{hasLocalNav:n}=Ae(),{frontmatter:s}=V(),i=S({});return ye(()=>{i.value={"has-sidebar":t.value,"has-local-nav":n.value,top:s.value.layout==="home"&&e.value===0}}),(u,h)=>(a(),c("div",{class:T(["VPNavBar",i.value])},[p("div",la,[p("div",ca,[p("div",ua,[m(oa,null,{"nav-bar-title-before":v(()=>[l(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[l(u.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),p("div",da,[p("div",va,[l(u.$slots,"nav-bar-content-before",{},void 0,!0),m(Yn,{class:"search"}),m(On,{class:"menu"}),m(ra,{class:"translations"}),m(Gs,{class:"appearance"}),m(Xn,{class:"social-links"}),m(Vn,{class:"extra"}),l(u.$slots,"nav-bar-content-after",{},void 0,!0),m(Nn,{class:"hamburger",active:u.isScreenOpen,onClick:h[0]||(h[0]=d=>u.$emit("toggle-screen"))},null,8,["active"])])])])]),pa],2))}}),fa=k(ha,[["__scopeId","data-v-50076c89"]]),_a={key:0,class:"VPNavScreenAppearance"},ma={class:"text"},ka=_({__name:"VPNavScreenAppearance",setup(o){const{site:e,theme:t}=V();return(n,s)=>r(e).appearance&&r(e).appearance!=="force-dark"?(a(),c("div",_a,[p("p",ma,L(r(t).darkModeSwitchLabel||"Appearance"),1),m(me)])):f("",!0)}}),$a=k(ka,[["__scopeId","data-v-624c4525"]]),ba=_({__name:"VPNavScreenMenuLink",props:{item:{}},setup(o){const e=oe("close-screen");return(t,n)=>(a(),$(D,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e)},{default:v(()=>[F(L(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),ga=k(ba,[["__scopeId","data-v-8291b0a7"]]),ya=_({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(o){const e=oe("close-screen");return(t,n)=>(a(),$(D,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e)},{default:v(()=>[F(L(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),Ee=k(ya,[["__scopeId","data-v-83f458d8"]]),Pa={class:"VPNavScreenMenuGroupSection"},Va={key:0,class:"title"},La=_({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),c("div",Pa,[e.text?(a(),c("p",Va,L(e.text),1)):f("",!0),(a(!0),c(M,null,E(e.items,n=>(a(),$(Ee,{key:n.text,item:n},null,8,["item"]))),128))]))}}),Sa=k(La,[["__scopeId","data-v-b6357329"]]),wa=o=>(C("data-v-4a5b86bc"),o=o(),H(),o),Ia=["aria-controls","aria-expanded"],Ta=["innerHTML"],Na=wa(()=>p("span",{class:"vpi-plus button-icon"},null,-1)),Ma=["id"],Aa={key:1,class:"group"},Ba=_({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(o){const e=o,t=S(!1),n=b(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function s(){t.value=!t.value}return(i,u)=>(a(),c("div",{class:T(["VPNavScreenMenuGroup",{open:t.value}])},[p("button",{class:"button","aria-controls":n.value,"aria-expanded":t.value,onClick:s},[p("span",{class:"button-text",innerHTML:i.text},null,8,Ta),Na],8,Ia),p("div",{id:n.value,class:"items"},[(a(!0),c(M,null,E(i.items,h=>(a(),c(M,{key:h.text},["link"in h?(a(),c("div",{key:h.text,class:"item"},[m(Ee,{item:h},null,8,["item"])])):(a(),c("div",Aa,[m(Sa,{text:h.text,items:h.items},null,8,["text","items"])]))],64))),128))],8,Ma)],2))}}),Ca=k(Ba,[["__scopeId","data-v-4a5b86bc"]]),Ha={key:0,class:"VPNavScreenMenu"},Ea=_({__name:"VPNavScreenMenu",setup(o){const{theme:e}=V();return(t,n)=>r(e).nav?(a(),c("nav",Ha,[(a(!0),c(M,null,E(r(e).nav,s=>(a(),c(M,{key:s.text},["link"in s?(a(),$(ga,{key:0,item:s},null,8,["item"])):(a(),$(Ca,{key:1,text:s.text||"",items:s.items},null,8,["text","items"]))],64))),128))])):f("",!0)}}),Fa=_({__name:"VPNavScreenSocialLinks",setup(o){const{theme:e}=V();return(t,n)=>r(e).socialLinks?(a(),$(be,{key:0,class:"VPNavScreenSocialLinks",links:r(e).socialLinks},null,8,["links"])):f("",!0)}}),Fe=o=>(C("data-v-af240698"),o=o(),H(),o),Da=Fe(()=>p("span",{class:"vpi-languages icon lang"},null,-1)),Oa=Fe(()=>p("span",{class:"vpi-chevron-down icon chevron"},null,-1)),Ua={class:"list"},Ga=_({__name:"VPNavScreenTranslations",setup(o){const{localeLinks:e,currentLang:t}=J({correspondingLink:!0}),n=S(!1);function s(){n.value=!n.value}return(i,u)=>r(e).length&&r(t).label?(a(),c("div",{key:0,class:T(["VPNavScreenTranslations",{open:n.value}])},[p("button",{class:"title",onClick:s},[Da,F(" "+L(r(t).label)+" ",1),Oa]),p("ul",Ua,[(a(!0),c(M,null,E(r(e),h=>(a(),c("li",{key:h.link,class:"item"},[m(D,{class:"link",href:h.link},{default:v(()=>[F(L(h.text),1)]),_:2},1032,["href"])]))),128))])],2)):f("",!0)}}),ja=k(Ga,[["__scopeId","data-v-af240698"]]),za={class:"container"},qa=_({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(o){const e=S(null),t=we(R?document.body:null);return(n,s)=>(a(),$(de,{name:"fade",onEnter:s[0]||(s[0]=i=>t.value=!0),onAfterLeave:s[1]||(s[1]=i=>t.value=!1)},{default:v(()=>[n.open?(a(),c("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[p("div",za,[l(n.$slots,"nav-screen-content-before",{},void 0,!0),m(Ea,{class:"menu"}),m(ja,{class:"translations"}),m($a,{class:"appearance"}),m(Fa,{class:"social-links"}),l(n.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):f("",!0)]),_:3}))}}),Wa=k(qa,[["__scopeId","data-v-dd8956c7"]]),Ka={key:0,class:"VPNav"},Ra=_({__name:"VPNav",setup(o){const{isScreenOpen:e,closeScreen:t,toggleScreen:n}=Ts(),{frontmatter:s}=V(),i=b(()=>s.value.navbar!==!1);return Ie("close-screen",t),x(()=>{R&&document.documentElement.classList.toggle("hide-nav",!i.value)}),(u,h)=>i.value?(a(),c("header",Ka,[m(fa,{"is-screen-open":r(e),onToggleScreen:r(n)},{"nav-bar-title-before":v(()=>[l(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[l(u.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[l(u.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[l(u.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),m(Wa,{open:r(e)},{"nav-screen-content-before":v(()=>[l(u.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[l(u.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):f("",!0)}}),Ja=k(Ra,[["__scopeId","data-v-2892230d"]]),De=o=>(C("data-v-8f61602b"),o=o(),H(),o),Ya=["role","tabindex"],Qa=De(()=>p("div",{class:"indicator"},null,-1)),Xa=De(()=>p("span",{class:"vpi-chevron-right caret-icon"},null,-1)),Za=[Xa],xa={key:1,class:"items"},er=_({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(o){const e=o,{collapsed:t,collapsible:n,isLink:s,isActiveLink:i,hasActiveLink:u,hasChildren:h,toggle:d}=$t(b(()=>e.item)),g=b(()=>h.value?"section":"div"),y=b(()=>s.value?"a":"div"),P=b(()=>h.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),I=b(()=>s.value?void 0:"button"),N=b(()=>[[`level-${e.depth}`],{collapsible:n.value},{collapsed:t.value},{"is-link":s.value},{"is-active":i.value},{"has-active":u.value}]);function A(w){"key"in w&&w.key!=="Enter"||!e.item.link&&d()}function B(){e.item.link&&d()}return(w,Y)=>{const U=q("VPSidebarItem",!0);return a(),$(K(g.value),{class:T(["VPSidebarItem",N.value])},{default:v(()=>[w.item.text?(a(),c("div",Q({key:0,class:"item",role:I.value},Xe(w.item.items?{click:A,keydown:A}:{},!0),{tabindex:w.item.items&&0}),[Qa,w.item.link?(a(),$(D,{key:0,tag:y.value,class:"link",href:w.item.link,rel:w.item.rel,target:w.item.target},{default:v(()=>[(a(),$(K(P.value),{class:"text",innerHTML:w.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),$(K(P.value),{key:1,class:"text",innerHTML:w.item.text},null,8,["innerHTML"])),w.item.collapsed!=null?(a(),c("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:B,onKeydown:Qe(B,["enter"]),tabindex:"0"},Za,32)):f("",!0)],16,Ya)):f("",!0),w.item.items&&w.item.items.length?(a(),c("div",xa,[w.depth<5?(a(!0),c(M,{key:0},E(w.item.items,W=>(a(),$(U,{key:W.text,item:W,depth:w.depth+1},null,8,["item","depth"]))),128)):f("",!0)])):f("",!0)]),_:1},8,["class"])}}}),tr=k(er,[["__scopeId","data-v-8f61602b"]]),Oe=o=>(C("data-v-eb38e9cf"),o=o(),H(),o),or=Oe(()=>p("div",{class:"curtain"},null,-1)),sr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},nr=Oe(()=>p("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),ar=_({__name:"VPSidebar",props:{open:{type:Boolean}},setup(o){const{sidebarGroups:e,hasSidebar:t}=O(),n=o,s=S(null),i=we(R?document.body:null);return z([n,s],()=>{var u;n.open?(i.value=!0,(u=s.value)==null||u.focus()):i.value=!1},{immediate:!0,flush:"post"}),(u,h)=>r(t)?(a(),c("aside",{key:0,class:T(["VPSidebar",{open:u.open}]),ref_key:"navEl",ref:s,onClick:h[0]||(h[0]=Ze(()=>{},["stop"]))},[or,p("nav",sr,[nr,l(u.$slots,"sidebar-nav-before",{},void 0,!0),(a(!0),c(M,null,E(r(e),d=>(a(),c("div",{key:d.text,class:"group"},[m(tr,{item:d,depth:0},null,8,["item"])]))),128)),l(u.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):f("",!0)}}),rr=k(ar,[["__scopeId","data-v-eb38e9cf"]]),ir=_({__name:"VPSkipLink",setup(o){const e=te(),t=S();z(()=>e.path,()=>t.value.focus());function n({target:s}){const i=document.getElementById(decodeURIComponent(s.hash).slice(1));if(i){const u=()=>{i.removeAttribute("tabindex"),i.removeEventListener("blur",u)};i.setAttribute("tabindex","-1"),i.addEventListener("blur",u),i.focus(),window.scrollTo(0,0)}}return(s,i)=>(a(),c(M,null,[p("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),p("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:n}," Skip to content ")],64))}}),lr=k(ir,[["__scopeId","data-v-ce070715"]]),cr=_({__name:"Layout",setup(o){const{isOpen:e,open:t,close:n}=O(),s=te();z(()=>s.path,n),kt(e,n);const{frontmatter:i}=V(),u=xe(),h=b(()=>!!u["home-hero-image"]);return Ie("hero-image-slot-exists",h),(d,g)=>{const y=q("Content");return r(i).layout!==!1?(a(),c("div",{key:0,class:T(["Layout",r(i).pageClass])},[l(d.$slots,"layout-top",{},void 0,!0),m(lr),m(st,{class:"backdrop",show:r(e),onClick:r(n)},null,8,["show","onClick"]),m(Ja,null,{"nav-bar-title-before":v(()=>[l(d.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[l(d.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[l(d.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[l(d.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":v(()=>[l(d.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[l(d.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),m(Is,{open:r(e),onOpenMenu:r(t)},null,8,["open","onOpenMenu"]),m(rr,{open:r(e)},{"sidebar-nav-before":v(()=>[l(d.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":v(()=>[l(d.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),m(us,null,{"page-top":v(()=>[l(d.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[l(d.$slots,"page-bottom",{},void 0,!0)]),"not-found":v(()=>[l(d.$slots,"not-found",{},void 0,!0)]),"home-hero-before":v(()=>[l(d.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":v(()=>[l(d.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[l(d.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[l(d.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[l(d.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[l(d.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[l(d.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[l(d.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[l(d.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":v(()=>[l(d.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[l(d.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[l(d.$slots,"doc-after",{},void 0,!0)]),"doc-top":v(()=>[l(d.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[l(d.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":v(()=>[l(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[l(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[l(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[l(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[l(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[l(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),m(fs),l(d.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),$(y,{key:1}))}}}),ur=k(cr,[["__scopeId","data-v-a534ac59"]]),vr={Layout:ur,enhanceApp:({app:o})=>{o.component("Badge",et)}};export{vr as t}; diff --git a/docs/assets/en-US_api_add-element.md.CSft2v_9.js b/docs/assets/en-US_api_add-element.md.BEwyne3p.js similarity index 92% rename from docs/assets/en-US_api_add-element.md.CSft2v_9.js rename to docs/assets/en-US_api_add-element.md.BEwyne3p.js index eead908..de10439 100644 --- a/docs/assets/en-US_api_add-element.md.CSft2v_9.js +++ b/docs/assets/en-US_api_add-element.md.BEwyne3p.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as n,m as e}from"./chunks/framework.PNNbM9mo.js";const m=JSON.parse('{"title":"addElement","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/add-element.md","filePath":"en-US/api/add-element.md"}'),t={name:"en-US/api/add-element.md"},l=n(`

addElement

Introduction

addElement Add elements to the drawing and trigger a rerender.

Arguments

  • {object} element More Element Infomation>> .

  • {object} { position?: number[] },Optional configuration, position element index position, for example [1, 2] means adding the element to the third position of the second element (must be of type Group).

Returns

  • {object}

Usage

js
import { iDraw } from 'idraw';
+import{_ as s,c as i,o as a,a1 as n,j as e}from"./chunks/framework.DVk8Vg-1.js";const m=JSON.parse('{"title":"addElement","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/add-element.md","filePath":"en-US/api/add-element.md"}'),t={name:"en-US/api/add-element.md"},l=n(`

addElement

Introduction

addElement Add elements to the drawing and trigger a rerender.

Arguments

  • {object} element More Element Infomation>> .

  • {object} { position?: number[] },Optional configuration, position element index position, for example [1, 2] means adding the element to the third position of the second element (must be of type Group).

Returns

  • {object}

Usage

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -22,4 +22,4 @@ import{_ as s,o as i,c as a,a2 as n,m as e}from"./chunks/framework.PNNbM9mo.js";
     borderWidth: 4,
     borderColor: '#ff6032'
   }
-});

Example

More Demo >>

`,11),h=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-addElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(d,r,E,o,c,g){return i(),a("div",null,p)}const F=s(t,[["render",k]]);export{m as __pageData,F as default}; +});

Example

More Demo >>

`,11),h=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-addElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(d,r,E,o,c,g){return a(),i("div",null,p)}const F=s(t,[["render",k]]);export{m as __pageData,F as default}; diff --git a/docs/assets/en-US_api_add-element.md.CSft2v_9.lean.js b/docs/assets/en-US_api_add-element.md.BEwyne3p.lean.js similarity index 72% rename from docs/assets/en-US_api_add-element.md.CSft2v_9.lean.js rename to docs/assets/en-US_api_add-element.md.BEwyne3p.lean.js index 255d730..1bab028 100644 --- a/docs/assets/en-US_api_add-element.md.CSft2v_9.lean.js +++ b/docs/assets/en-US_api_add-element.md.BEwyne3p.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as n,m as e}from"./chunks/framework.PNNbM9mo.js";const m=JSON.parse('{"title":"addElement","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/add-element.md","filePath":"en-US/api/add-element.md"}'),t={name:"en-US/api/add-element.md"},l=n("",11),h=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-addElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(d,r,E,o,c,g){return i(),a("div",null,p)}const F=s(t,[["render",k]]);export{m as __pageData,F as default}; +import{_ as s,c as i,o as a,a1 as n,j as e}from"./chunks/framework.DVk8Vg-1.js";const m=JSON.parse('{"title":"addElement","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/add-element.md","filePath":"en-US/api/add-element.md"}'),t={name:"en-US/api/add-element.md"},l=n("",11),h=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-addElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(d,r,E,o,c,g){return a(),i("div",null,p)}const F=s(t,[["render",k]]);export{m as __pageData,F as default}; diff --git a/docs/assets/en-US_api_center-content.md.HDti-yp1.js b/docs/assets/en-US_api_center-content.md.BOGHnqJ5.js similarity index 89% rename from docs/assets/en-US_api_center-content.md.HDti-yp1.js rename to docs/assets/en-US_api_center-content.md.BOGHnqJ5.js index dc18fef..1a6312b 100644 --- a/docs/assets/en-US_api_center-content.md.HDti-yp1.js +++ b/docs/assets/en-US_api_center-content.md.BOGHnqJ5.js @@ -1,4 +1,4 @@ -import{_ as s,o as a,c as i,a2 as e,m as n}from"./chunks/framework.PNNbM9mo.js";const y=JSON.parse('{"title":"centerContent","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/center-content.md","filePath":"en-US/api/center-content.md"}'),t={name:"en-US/api/center-content.md"},l=e(`

centerContent

Introduction

centerContent Display the content in the center of the view. If the content size exceeds the view, the content will be proportionally reduced and centered in the view.

Arguments

  • {object} options
    • {Data} options.data Optionally, calculate new content data for centered dimensions.

Returns

N/A

Usage

js
import { iDraw } from 'idraw';
+import{_ as s,c as a,o as i,a1 as e,j as n}from"./chunks/framework.DVk8Vg-1.js";const y=JSON.parse('{"title":"centerContent","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/center-content.md","filePath":"en-US/api/center-content.md"}'),t={name:"en-US/api/center-content.md"},l=e(`

centerContent

Introduction

centerContent Display the content in the center of the view. If the content size exceeds the view, the content will be proportionally reduced and centered in the view.

Arguments

  • {object} options
    • {Data} options.data Optionally, calculate new content data for centered dimensions.

Returns

N/A

Usage

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -13,4 +13,4 @@ import{_ as s,o as a,c as i,a2 as e,m as n}from"./chunks/framework.PNNbM9mo.js";
   ]
 });
 
-idraw.centerContent();

Example

More Demo

`,11),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-centerContent&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function r(k,o,d,c,E,g){return a(),i("div",null,p)}const m=s(t,[["render",r]]);export{y as __pageData,m as default}; +idraw.centerContent();

Example

More Demo

`,11),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-centerContent&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function r(k,o,d,c,E,g){return i(),a("div",null,p)}const m=s(t,[["render",r]]);export{y as __pageData,m as default}; diff --git a/docs/assets/en-US_api_center-content.md.HDti-yp1.lean.js b/docs/assets/en-US_api_center-content.md.BOGHnqJ5.lean.js similarity index 72% rename from docs/assets/en-US_api_center-content.md.HDti-yp1.lean.js rename to docs/assets/en-US_api_center-content.md.BOGHnqJ5.lean.js index 4e056b1..abfefca 100644 --- a/docs/assets/en-US_api_center-content.md.HDti-yp1.lean.js +++ b/docs/assets/en-US_api_center-content.md.BOGHnqJ5.lean.js @@ -1 +1 @@ -import{_ as s,o as a,c as i,a2 as e,m as n}from"./chunks/framework.PNNbM9mo.js";const y=JSON.parse('{"title":"centerContent","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/center-content.md","filePath":"en-US/api/center-content.md"}'),t={name:"en-US/api/center-content.md"},l=e("",11),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-centerContent&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function r(k,o,d,c,E,g){return a(),i("div",null,p)}const m=s(t,[["render",r]]);export{y as __pageData,m as default}; +import{_ as s,c as a,o as i,a1 as e,j as n}from"./chunks/framework.DVk8Vg-1.js";const y=JSON.parse('{"title":"centerContent","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/center-content.md","filePath":"en-US/api/center-content.md"}'),t={name:"en-US/api/center-content.md"},l=e("",11),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-centerContent&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function r(k,o,d,c,E,g){return i(),a("div",null,p)}const m=s(t,[["render",r]]);export{y as __pageData,m as default}; diff --git a/docs/assets/en-US_api_delete-element.md.5FA1Myw8.js b/docs/assets/en-US_api_delete-element.md.ANUKagkZ.js similarity index 89% rename from docs/assets/en-US_api_delete-element.md.5FA1Myw8.js rename to docs/assets/en-US_api_delete-element.md.ANUKagkZ.js index 7d6ed2f..255bab7 100644 --- a/docs/assets/en-US_api_delete-element.md.5FA1Myw8.js +++ b/docs/assets/en-US_api_delete-element.md.ANUKagkZ.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as e,m as n}from"./chunks/framework.PNNbM9mo.js";const u=JSON.parse('{"title":"deleteElement","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/delete-element.md","filePath":"en-US/api/delete-element.md"}'),t={name:"en-US/api/delete-element.md"},l=e(`

deleteElement

Introduction

addElement Delete elements to the drawing and trigger a rerender.

Arugments

  • {string} uuid

Returns

None

Usage

js
import { iDraw } from 'idraw';
+import{_ as s,c as i,o as a,a1 as e,j as n}from"./chunks/framework.DVk8Vg-1.js";const u=JSON.parse('{"title":"deleteElement","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/delete-element.md","filePath":"en-US/api/delete-element.md"}'),t={name:"en-US/api/delete-element.md"},l=e(`

deleteElement

Introduction

addElement Delete elements to the drawing and trigger a rerender.

Arugments

  • {string} uuid

Returns

None

Usage

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -16,4 +16,4 @@ import{_ as s,o as i,c as a,a2 as e,m as n}from"./chunks/framework.PNNbM9mo.js";
 
 const uuid = idraw.getData().elements[0].uuid;
 
-idraw.deleteElement(uuid);

示例

Example

More Demo >>

`,12),h=n("iframe",{src:"https://idrawjs.com/playground/?demo=api-deleteElement&header=false&sider=false&default-editor-split=37",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,o,E,c,g){return i(),a("div",null,p)}const m=s(t,[["render",k]]);export{u as __pageData,m as default}; +idraw.deleteElement(uuid);

示例

Example

More Demo >>

`,12),h=n("iframe",{src:"https://idrawjs.com/playground/?demo=api-deleteElement&header=false&sider=false&default-editor-split=37",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,o,E,c,g){return a(),i("div",null,p)}const m=s(t,[["render",k]]);export{u as __pageData,m as default}; diff --git a/docs/assets/en-US_api_delete-element.md.5FA1Myw8.lean.js b/docs/assets/en-US_api_delete-element.md.ANUKagkZ.lean.js similarity index 71% rename from docs/assets/en-US_api_delete-element.md.5FA1Myw8.lean.js rename to docs/assets/en-US_api_delete-element.md.ANUKagkZ.lean.js index 2ece6d5..c105b73 100644 --- a/docs/assets/en-US_api_delete-element.md.5FA1Myw8.lean.js +++ b/docs/assets/en-US_api_delete-element.md.ANUKagkZ.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as e,m as n}from"./chunks/framework.PNNbM9mo.js";const u=JSON.parse('{"title":"deleteElement","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/delete-element.md","filePath":"en-US/api/delete-element.md"}'),t={name:"en-US/api/delete-element.md"},l=e("",12),h=n("iframe",{src:"https://idrawjs.com/playground/?demo=api-deleteElement&header=false&sider=false&default-editor-split=37",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,o,E,c,g){return i(),a("div",null,p)}const m=s(t,[["render",k]]);export{u as __pageData,m as default}; +import{_ as s,c as i,o as a,a1 as e,j as n}from"./chunks/framework.DVk8Vg-1.js";const u=JSON.parse('{"title":"deleteElement","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/delete-element.md","filePath":"en-US/api/delete-element.md"}'),t={name:"en-US/api/delete-element.md"},l=e("",12),h=n("iframe",{src:"https://idrawjs.com/playground/?demo=api-deleteElement&header=false&sider=false&default-editor-split=37",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,o,E,c,g){return a(),i("div",null,p)}const m=s(t,[["render",k]]);export{u as __pageData,m as default}; diff --git a/docs/assets/en-US_api_enable-disable.md.Xl16Owsf.js b/docs/assets/en-US_api_enable-disable.md.B4Z28AX1.js similarity index 70% rename from docs/assets/en-US_api_enable-disable.md.Xl16Owsf.js rename to docs/assets/en-US_api_enable-disable.md.B4Z28AX1.js index 96e2ce3..643c4b3 100644 --- a/docs/assets/en-US_api_enable-disable.md.Xl16Owsf.js +++ b/docs/assets/en-US_api_enable-disable.md.B4Z28AX1.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as e,m as l}from"./chunks/framework.PNNbM9mo.js";const u=JSON.parse('{"title":"enable/disable","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/enable-disable.md","filePath":"en-US/api/enable-disable.md"}'),n={name:"en-US/api/enable-disable.md"},t=e(`

enable/disable

Introduction

  • enable(...) Turn on a feature
  • disable(...) Turn off a feature

Arguments

  • {IDrawFeature} feat Feature type
    • 'ruler': Ruler feature
    • 'scroll': Scroll feature
    • 'scale': Scale feature
    • 'info': Display information, eg. element size
    • - Other features are to be developed...
ts
type IDrawFeature = 'ruler' | 'scroll' | 'scale' | 'info'; // TODO other feature

Returns

N/A

Usage

js
import { iDraw } from 'idraw';
+import{_ as s,c as i,o as a,a1 as e,j as n}from"./chunks/framework.DVk8Vg-1.js";const u=JSON.parse('{"title":"enable/disable","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/enable-disable.md","filePath":"en-US/api/enable-disable.md"}'),l={name:"en-US/api/enable-disable.md"},t=e(`

enable/disable

Introduction

  • enable(...) Turn on a feature
  • disable(...) Turn off a feature

Arguments

  • {IDrawFeature} feat Feature type
    • 'ruler': Ruler feature
    • 'scroll': Scroll feature
    • 'scale': Scale feature
    • 'info': Display information, eg. element size
    • - Other features are to be developed...
ts
type IDrawFeature = 'ruler' | 'scroll' | 'scale' | 'info'; // TODO other feature

Returns

N/A

Usage

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -12,4 +12,4 @@ import{_ as s,o as i,c as a,a2 as e,m as l}from"./chunks/framework.PNNbM9mo.js";
 
 setTimeout(() => {
   idraw.enable('ruler');
-}, 1000);

Example

More Demo >>

`,12),h=l("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-enable&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[t,h];function k(r,d,o,E,c,g){return i(),a("div",null,p)}const F=s(n,[["render",k]]);export{u as __pageData,F as default}; +}, 1000);

Example

More Demo >>

`,12),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-enable&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[t,h];function k(r,d,o,E,c,g){return a(),i("div",null,p)}const F=s(l,[["render",k]]);export{u as __pageData,F as default}; diff --git a/docs/assets/en-US_api_enable-disable.md.Xl16Owsf.lean.js b/docs/assets/en-US_api_enable-disable.md.B4Z28AX1.lean.js similarity index 54% rename from docs/assets/en-US_api_enable-disable.md.Xl16Owsf.lean.js rename to docs/assets/en-US_api_enable-disable.md.B4Z28AX1.lean.js index 5485ee4..6f1a830 100644 --- a/docs/assets/en-US_api_enable-disable.md.Xl16Owsf.lean.js +++ b/docs/assets/en-US_api_enable-disable.md.B4Z28AX1.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as e,m as l}from"./chunks/framework.PNNbM9mo.js";const u=JSON.parse('{"title":"enable/disable","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/enable-disable.md","filePath":"en-US/api/enable-disable.md"}'),n={name:"en-US/api/enable-disable.md"},t=e("",12),h=l("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-enable&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[t,h];function k(r,d,o,E,c,g){return i(),a("div",null,p)}const F=s(n,[["render",k]]);export{u as __pageData,F as default}; +import{_ as s,c as i,o as a,a1 as e,j as n}from"./chunks/framework.DVk8Vg-1.js";const u=JSON.parse('{"title":"enable/disable","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/enable-disable.md","filePath":"en-US/api/enable-disable.md"}'),l={name:"en-US/api/enable-disable.md"},t=e("",12),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-enable&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[t,h];function k(r,d,o,E,c,g){return a(),i("div",null,p)}const F=s(l,[["render",k]]);export{u as __pageData,F as default}; diff --git a/docs/assets/en-US_api_get-data.md.zaCOgLDU.js b/docs/assets/en-US_api_get-data.md.DNE95Ljg.js similarity index 92% rename from docs/assets/en-US_api_get-data.md.zaCOgLDU.js rename to docs/assets/en-US_api_get-data.md.DNE95Ljg.js index 09be6d7..8ddbb2a 100644 --- a/docs/assets/en-US_api_get-data.md.zaCOgLDU.js +++ b/docs/assets/en-US_api_get-data.md.DNE95Ljg.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as n,m as t}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"getData","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/get-data.md","filePath":"en-US/api/get-data.md"}'),l={name:"en-US/api/get-data.md"},h=n(`

getData

Introduction

getData The function can be used to get lastest Drawing-Data of Image;

Arguments

  • {object} options
    • {boolean} options.compact

Returns

  • {object} data Drawing-Data

Usage

js
import { iDraw } from 'idraw';
+import{_ as s,c as i,o as a,a1 as n,j as t}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"getData","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/get-data.md","filePath":"en-US/api/get-data.md"}'),l={name:"en-US/api/get-data.md"},h=n(`

getData

Introduction

getData The function can be used to get lastest Drawing-Data of Image;

Arguments

  • {object} options
    • {boolean} options.compact

Returns

  • {object} data Drawing-Data

Usage

js
import { iDraw } from 'idraw';
 
 const data = {
   elements: [
@@ -30,4 +30,4 @@ import{_ as s,o as i,c as a,a2 as n,m as t}from"./chunks/framework.PNNbM9mo.js";
 idraw.setData(data);
 
 const resultData = idraw.getData();
-console.log(resultData);

Example

More Demo

`,11),e=t("iframe",{src:"https://idrawjs.com/playground/?demo=api-getData&header=false&sider=false&default-editor-split=37",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,e];function k(r,E,d,o,g,c){return i(),a("div",null,p)}const u=s(l,[["render",k]]);export{F as __pageData,u as default}; +console.log(resultData);

Example

More Demo

`,11),e=t("iframe",{src:"https://idrawjs.com/playground/?demo=api-getData&header=false&sider=false&default-editor-split=37",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,e];function k(r,E,d,o,g,c){return a(),i("div",null,p)}const u=s(l,[["render",k]]);export{F as __pageData,u as default}; diff --git a/docs/assets/en-US_api_get-data.md.zaCOgLDU.lean.js b/docs/assets/en-US_api_get-data.md.DNE95Ljg.lean.js similarity index 70% rename from docs/assets/en-US_api_get-data.md.zaCOgLDU.lean.js rename to docs/assets/en-US_api_get-data.md.DNE95Ljg.lean.js index 6c77108..d863e4e 100644 --- a/docs/assets/en-US_api_get-data.md.zaCOgLDU.lean.js +++ b/docs/assets/en-US_api_get-data.md.DNE95Ljg.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as n,m as t}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"getData","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/get-data.md","filePath":"en-US/api/get-data.md"}'),l={name:"en-US/api/get-data.md"},h=n("",11),e=t("iframe",{src:"https://idrawjs.com/playground/?demo=api-getData&header=false&sider=false&default-editor-split=37",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,e];function k(r,E,d,o,g,c){return i(),a("div",null,p)}const u=s(l,[["render",k]]);export{F as __pageData,u as default}; +import{_ as s,c as i,o as a,a1 as n,j as t}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"getData","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/get-data.md","filePath":"en-US/api/get-data.md"}'),l={name:"en-US/api/get-data.md"},h=n("",11),e=t("iframe",{src:"https://idrawjs.com/playground/?demo=api-getData&header=false&sider=false&default-editor-split=37",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,e];function k(r,E,d,o,g,c){return a(),i("div",null,p)}const u=s(l,[["render",k]]);export{F as __pageData,u as default}; diff --git a/docs/assets/en-US_api_get-image-blob-url.md.OMUlBHLq.js b/docs/assets/en-US_api_get-image-blob-url.md.OMUlBHLq.js new file mode 100644 index 0000000..284c18d --- /dev/null +++ b/docs/assets/en-US_api_get-image-blob-url.md.OMUlBHLq.js @@ -0,0 +1,11 @@ +import{_ as i,c as s,o as a,a1 as e,j as t}from"./chunks/framework.DVk8Vg-1.js";const u=JSON.parse('{"title":"getImageBlobURL","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/get-image-blob-url.md","filePath":"en-US/api/get-image-blob-url.md"}'),n={name:"en-US/api/get-image-blob-url.md"},l=e(`

getImageBlobURL

Introduction

getImageBlobURL Export the image content from the canvas, extract the canvas content into the memory Blob, and generate the image's blobURL

Arguments

  • {object} options Configuration options for exporting images
    • {number} options.devicePixelRatio Device pixel ratio, default is 1

Returns

  • {Promise<object>} Returns the complete canvas image data
    • {string} blobURL A Blob URL to a canvas image in memory
    • {number} width The width of the exported image in logical pixels
    • {number} height The height of the exported image in logical pixels
    • {number} devicePixelRatio Device pixel ratio for exported images

Usage

js
import { iDraw } from 'idraw';
+
+const app = document.querySelector('#app');
+const options = {
+  width: 600,
+  height: 400,
+  devicePixelRatio: 2
+};
+const idraw = new iDraw(app, options);
+
+const { blobURL } = await idraw.getImageBlobURL({ devicePixelRatio: 1 });

Example

More Demo

`,11),h=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-getImageBlobURL&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),o=[l,h];function r(p,d,k,c,g,E){return a(),s("div",null,o)}const b=i(n,[["render",r]]);export{u as __pageData,b as default}; diff --git a/docs/assets/en-US_api_get-image-blob-url.md.OMUlBHLq.lean.js b/docs/assets/en-US_api_get-image-blob-url.md.OMUlBHLq.lean.js new file mode 100644 index 0000000..158401c --- /dev/null +++ b/docs/assets/en-US_api_get-image-blob-url.md.OMUlBHLq.lean.js @@ -0,0 +1 @@ +import{_ as i,c as s,o as a,a1 as e,j as t}from"./chunks/framework.DVk8Vg-1.js";const u=JSON.parse('{"title":"getImageBlobURL","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/get-image-blob-url.md","filePath":"en-US/api/get-image-blob-url.md"}'),n={name:"en-US/api/get-image-blob-url.md"},l=e("",11),h=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-getImageBlobURL&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),o=[l,h];function r(p,d,k,c,g,E){return a(),s("div",null,o)}const b=i(n,[["render",r]]);export{u as __pageData,b as default}; diff --git a/docs/assets/en-US_api_move-element.md.erz1dvw_.js b/docs/assets/en-US_api_move-element.md.D-GYa6q6.js similarity index 90% rename from docs/assets/en-US_api_move-element.md.erz1dvw_.js rename to docs/assets/en-US_api_move-element.md.D-GYa6q6.js index de1aa18..e412a2e 100644 --- a/docs/assets/en-US_api_move-element.md.erz1dvw_.js +++ b/docs/assets/en-US_api_move-element.md.D-GYa6q6.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as e,m as n}from"./chunks/framework.PNNbM9mo.js";const y=JSON.parse('{"title":"moveElement","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/move-element.md","filePath":"en-US/api/move-element.md"}'),t={name:"en-US/api/move-element.md"},l=e(`

moveElement

Introduction

moveElement deletes the corresponding element in the picture according to the uuid of the element and triggers re-rendering.

Arguments

  • {string} uuid
  • {number[]} position Moves the element to the specified index position. For example, [1, 2] means moving the element to the third position of the second element (must be of type Group).

Returns

N/A

Usage

js
import { iDraw } from 'idraw';
+import{_ as s,c as i,o as a,a1 as e,j as n}from"./chunks/framework.DVk8Vg-1.js";const y=JSON.parse('{"title":"moveElement","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/move-element.md","filePath":"en-US/api/move-element.md"}'),t={name:"en-US/api/move-element.md"},l=e(`

moveElement

Introduction

moveElement deletes the corresponding element in the picture according to the uuid of the element and triggers re-rendering.

Arguments

  • {string} uuid
  • {number[]} position Moves the element to the specified index position. For example, [1, 2] means moving the element to the third position of the second element (must be of type Group).

Returns

N/A

Usage

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -16,4 +16,4 @@ import{_ as s,o as i,c as a,a2 as e,m as n}from"./chunks/framework.PNNbM9mo.js";
 
 const uuid = idraw.getData().elements[0].uuid;
 
-idraw.moveElement(uuid, { position: [1, 2] });

Example

More Demo

`,11),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-moveElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,o,E,c,g){return i(),a("div",null,p)}const u=s(t,[["render",k]]);export{y as __pageData,u as default}; +idraw.moveElement(uuid, { position: [1, 2] });

Example

More Demo

`,11),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-moveElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,o,E,c,g){return a(),i("div",null,p)}const u=s(t,[["render",k]]);export{y as __pageData,u as default}; diff --git a/docs/assets/en-US_api_move-element.md.erz1dvw_.lean.js b/docs/assets/en-US_api_move-element.md.D-GYa6q6.lean.js similarity index 72% rename from docs/assets/en-US_api_move-element.md.erz1dvw_.lean.js rename to docs/assets/en-US_api_move-element.md.D-GYa6q6.lean.js index 161b469..85ca5fb 100644 --- a/docs/assets/en-US_api_move-element.md.erz1dvw_.lean.js +++ b/docs/assets/en-US_api_move-element.md.D-GYa6q6.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as e,m as n}from"./chunks/framework.PNNbM9mo.js";const y=JSON.parse('{"title":"moveElement","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/move-element.md","filePath":"en-US/api/move-element.md"}'),t={name:"en-US/api/move-element.md"},l=e("",11),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-moveElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,o,E,c,g){return i(),a("div",null,p)}const u=s(t,[["render",k]]);export{y as __pageData,u as default}; +import{_ as s,c as i,o as a,a1 as e,j as n}from"./chunks/framework.DVk8Vg-1.js";const y=JSON.parse('{"title":"moveElement","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/move-element.md","filePath":"en-US/api/move-element.md"}'),t={name:"en-US/api/move-element.md"},l=e("",11),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-moveElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,o,E,c,g){return a(),i("div",null,p)}const u=s(t,[["render",k]]);export{y as __pageData,u as default}; diff --git a/docs/assets/en-US_api_resize.md.Us45idBF.js b/docs/assets/en-US_api_resize.md.DigcBKAH.js similarity index 89% rename from docs/assets/en-US_api_resize.md.Us45idBF.js rename to docs/assets/en-US_api_resize.md.DigcBKAH.js index 4854fd2..b5f1d1f 100644 --- a/docs/assets/en-US_api_resize.md.Us45idBF.js +++ b/docs/assets/en-US_api_resize.md.DigcBKAH.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as e,m as n}from"./chunks/framework.PNNbM9mo.js";const u=JSON.parse('{"title":"resize","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/resize.md","filePath":"en-US/api/resize.md"}'),t={name:"en-US/api/resize.md"},l=e(`

resize

Introduction

resize The drawing view size can be modified again

Arguments

  • {object} options
    • {number} options.width
    • {number} options.height
    • {number} options.devicePixelRatio

Returns

N/A

Usage

js
import { iDraw } from 'idraw';
+import{_ as s,c as i,o as a,a1 as e,j as n}from"./chunks/framework.DVk8Vg-1.js";const u=JSON.parse('{"title":"resize","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/resize.md","filePath":"en-US/api/resize.md"}'),t={name:"en-US/api/resize.md"},l=e(`

resize

Introduction

resize The drawing view size can be modified again

Arguments

  • {object} options
    • {number} options.width
    • {number} options.height
    • {number} options.devicePixelRatio

Returns

N/A

Usage

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -17,4 +17,4 @@ import{_ as s,o as i,c as a,a2 as e,m as n}from"./chunks/framework.PNNbM9mo.js";
   width: 300,
   height: 200,
   devicePixelRatio: 2
-});

Example

More Demo

`,11),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-resize&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function r(k,d,o,E,c,g){return i(),a("div",null,p)}const m=s(t,[["render",r]]);export{u as __pageData,m as default}; +});

Example

More Demo

`,11),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-resize&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function r(k,d,o,E,c,g){return a(),i("div",null,p)}const m=s(t,[["render",r]]);export{u as __pageData,m as default}; diff --git a/docs/assets/en-US_api_resize.md.Us45idBF.lean.js b/docs/assets/en-US_api_resize.md.DigcBKAH.lean.js similarity index 71% rename from docs/assets/en-US_api_resize.md.Us45idBF.lean.js rename to docs/assets/en-US_api_resize.md.DigcBKAH.lean.js index cfa012d..8d8fdb5 100644 --- a/docs/assets/en-US_api_resize.md.Us45idBF.lean.js +++ b/docs/assets/en-US_api_resize.md.DigcBKAH.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as e,m as n}from"./chunks/framework.PNNbM9mo.js";const u=JSON.parse('{"title":"resize","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/resize.md","filePath":"en-US/api/resize.md"}'),t={name:"en-US/api/resize.md"},l=e("",11),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-resize&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function r(k,d,o,E,c,g){return i(),a("div",null,p)}const m=s(t,[["render",r]]);export{u as __pageData,m as default}; +import{_ as s,c as i,o as a,a1 as e,j as n}from"./chunks/framework.DVk8Vg-1.js";const u=JSON.parse('{"title":"resize","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/resize.md","filePath":"en-US/api/resize.md"}'),t={name:"en-US/api/resize.md"},l=e("",11),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-resize&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function r(k,d,o,E,c,g){return a(),i("div",null,p)}const m=s(t,[["render",r]]);export{u as __pageData,m as default}; diff --git a/docs/assets/en-US_api_select-element.md.M70Ah2tn.js b/docs/assets/en-US_api_select-element.md.DcBpcLsl.js similarity index 90% rename from docs/assets/en-US_api_select-element.md.M70Ah2tn.js rename to docs/assets/en-US_api_select-element.md.DcBpcLsl.js index d179697..59f79a5 100644 --- a/docs/assets/en-US_api_select-element.md.M70Ah2tn.js +++ b/docs/assets/en-US_api_select-element.md.DcBpcLsl.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as e,m as n}from"./chunks/framework.PNNbM9mo.js";const u=JSON.parse('{"title":"selectElement","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/select-element.md","filePath":"en-US/api/select-element.md"}'),t={name:"en-US/api/select-element.md"},l=e(`

selectElement

Introduction

selectElement It receives a uuid of Element to select Element on Drawing-Image and then change the Element' status on Canvas.

Arguments

  • {string} uuid Element's uuid

Returns

None

Usage

js
import { iDraw } from 'idraw';
+import{_ as s,c as i,o as a,a1 as e,j as n}from"./chunks/framework.DVk8Vg-1.js";const u=JSON.parse('{"title":"selectElement","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/select-element.md","filePath":"en-US/api/select-element.md"}'),t={name:"en-US/api/select-element.md"},l=e(`

selectElement

Introduction

selectElement It receives a uuid of Element to select Element on Drawing-Image and then change the Element' status on Canvas.

Arguments

  • {string} uuid Element's uuid

Returns

None

Usage

js
import { iDraw } from 'idraw';
 
 const data = {
   elements: [
@@ -15,4 +15,4 @@ import{_ as s,o as i,c as a,a2 as e,m as n}from"./chunks/framework.PNNbM9mo.js";
 idraw.setData(data);
 const resultData = idraw.getData();
 
-idraw.selectElement(resultData.elements[0].uuid);

Example

More Demo >>

`,11),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-selectElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,E,o,c,g){return i(),a("div",null,p)}const m=s(t,[["render",k]]);export{u as __pageData,m as default}; +idraw.selectElement(resultData.elements[0].uuid);

Example

More Demo >>

`,11),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-selectElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,E,o,c,g){return a(),i("div",null,p)}const m=s(t,[["render",k]]);export{u as __pageData,m as default}; diff --git a/docs/assets/en-US_api_select-element.md.M70Ah2tn.lean.js b/docs/assets/en-US_api_select-element.md.DcBpcLsl.lean.js similarity index 72% rename from docs/assets/en-US_api_select-element.md.M70Ah2tn.lean.js rename to docs/assets/en-US_api_select-element.md.DcBpcLsl.lean.js index ac7aa92..8a13471 100644 --- a/docs/assets/en-US_api_select-element.md.M70Ah2tn.lean.js +++ b/docs/assets/en-US_api_select-element.md.DcBpcLsl.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as e,m as n}from"./chunks/framework.PNNbM9mo.js";const u=JSON.parse('{"title":"selectElement","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/select-element.md","filePath":"en-US/api/select-element.md"}'),t={name:"en-US/api/select-element.md"},l=e("",11),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-selectElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,E,o,c,g){return i(),a("div",null,p)}const m=s(t,[["render",k]]);export{u as __pageData,m as default}; +import{_ as s,c as i,o as a,a1 as e,j as n}from"./chunks/framework.DVk8Vg-1.js";const u=JSON.parse('{"title":"selectElement","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/select-element.md","filePath":"en-US/api/select-element.md"}'),t={name:"en-US/api/select-element.md"},l=e("",11),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-selectElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,E,o,c,g){return a(),i("div",null,p)}const m=s(t,[["render",k]]);export{u as __pageData,m as default}; diff --git a/docs/assets/en-US_api_set-data.md.ZwngY3kQ.js b/docs/assets/en-US_api_set-data.md.DMA18cRs.js similarity index 92% rename from docs/assets/en-US_api_set-data.md.ZwngY3kQ.js rename to docs/assets/en-US_api_set-data.md.DMA18cRs.js index 6af05b2..e05edc3 100644 --- a/docs/assets/en-US_api_set-data.md.ZwngY3kQ.js +++ b/docs/assets/en-US_api_set-data.md.DMA18cRs.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as n,m as t}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"setData","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/set-data.md","filePath":"en-US/api/set-data.md"}'),e={name:"en-US/api/set-data.md"},h=n(`

setData

Introduction

setData The function receives a Drawing-Data to set drawing content. After that, it will re-render image base on Drawing-Data.

Arguments

  • {object} data Drawing-Data

Returns

None

Usage

js
import { iDraw } from 'idraw';
+import{_ as s,c as i,o as a,a1 as n,j as t}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"setData","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/set-data.md","filePath":"en-US/api/set-data.md"}'),e={name:"en-US/api/set-data.md"},h=n(`

setData

Introduction

setData The function receives a Drawing-Data to set drawing content. After that, it will re-render image base on Drawing-Data.

Arguments

  • {object} data Drawing-Data

Returns

None

Usage

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -26,4 +26,4 @@ import{_ as s,o as i,c as a,a2 as n,m as t}from"./chunks/framework.PNNbM9mo.js";
     }
   ]
 };
-idraw.setData(data);

Example

More Demo

`,11),l=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-setData&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,l];function k(r,E,d,o,g,c){return i(),a("div",null,p)}const u=s(e,[["render",k]]);export{F as __pageData,u as default}; +idraw.setData(data);

Example

More Demo

`,11),l=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-setData&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,l];function k(r,E,d,o,g,c){return a(),i("div",null,p)}const u=s(e,[["render",k]]);export{F as __pageData,u as default}; diff --git a/docs/assets/en-US_api_set-data.md.ZwngY3kQ.lean.js b/docs/assets/en-US_api_set-data.md.DMA18cRs.lean.js similarity index 71% rename from docs/assets/en-US_api_set-data.md.ZwngY3kQ.lean.js rename to docs/assets/en-US_api_set-data.md.DMA18cRs.lean.js index f882655..2bc77c9 100644 --- a/docs/assets/en-US_api_set-data.md.ZwngY3kQ.lean.js +++ b/docs/assets/en-US_api_set-data.md.DMA18cRs.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as n,m as t}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"setData","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/set-data.md","filePath":"en-US/api/set-data.md"}'),e={name:"en-US/api/set-data.md"},h=n("",11),l=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-setData&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,l];function k(r,E,d,o,g,c){return i(),a("div",null,p)}const u=s(e,[["render",k]]);export{F as __pageData,u as default}; +import{_ as s,c as i,o as a,a1 as n,j as t}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"setData","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/set-data.md","filePath":"en-US/api/set-data.md"}'),e={name:"en-US/api/set-data.md"},h=n("",11),l=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-setData&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,l];function k(r,E,d,o,g,c){return a(),i("div",null,p)}const u=s(e,[["render",k]]);export{F as __pageData,u as default}; diff --git a/docs/assets/en-US_api_set-mode.md.wBD5SPSr.js b/docs/assets/en-US_api_set-mode.md.UI9pHMSa.js similarity index 70% rename from docs/assets/en-US_api_set-mode.md.wBD5SPSr.js rename to docs/assets/en-US_api_set-mode.md.UI9pHMSa.js index 18be57d..88f555f 100644 --- a/docs/assets/en-US_api_set-mode.md.wBD5SPSr.js +++ b/docs/assets/en-US_api_set-mode.md.UI9pHMSa.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as e,m as t}from"./chunks/framework.PNNbM9mo.js";const u=JSON.parse('{"title":"setMode","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/set-mode.md","filePath":"en-US/api/set-mode.md"}'),n={name:"en-US/api/set-mode.md"},l=e(`

setMode

Introduction

setMode Can switch view operation mode

Arguments

  • {IDrawType} mode View operating mode
    • 'select': Selection mode, also the default mode, is used to select and edit elements
    • 'drag': Drag mode, used to drag and move the overall canvas position
    • 'readOnly': Read-only mode, only displays the view content and cannot be edited
ts
type IDrawMode = 'select' | 'drag' | 'readOnly';

Returns

N/A

Usage

js
import { iDraw } from 'idraw';
+import{_ as s,c as i,o as a,a1 as e,j as t}from"./chunks/framework.DVk8Vg-1.js";const u=JSON.parse('{"title":"setMode","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/set-mode.md","filePath":"en-US/api/set-mode.md"}'),n={name:"en-US/api/set-mode.md"},l=e(`

setMode

Introduction

setMode Can switch view operation mode

Arguments

  • {IDrawType} mode View operating mode
    • 'select': Selection mode, also the default mode, is used to select and edit elements
    • 'drag': Drag mode, used to drag and move the overall canvas position
    • 'readOnly': Read-only mode, only displays the view content and cannot be edited
ts
type IDrawMode = 'select' | 'drag' | 'readOnly';

Returns

N/A

Usage

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -7,4 +7,4 @@ import{_ as s,o as i,c as a,a2 as e,m as t}from"./chunks/framework.PNNbM9mo.js";
   devicePixelRatio: 2
 };
 const idraw = new iDraw(app, options);
-idraw.setMode('readOnly');

Example

More Demo >>

`,12),h=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-setMode&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function d(r,k,o,c,g,E){return i(),a("div",null,p)}const m=s(n,[["render",d]]);export{u as __pageData,m as default}; +idraw.setMode('readOnly');

Example

More Demo >>

`,12),h=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-setMode&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function d(r,k,o,c,g,E){return a(),i("div",null,p)}const m=s(n,[["render",d]]);export{u as __pageData,m as default}; diff --git a/docs/assets/en-US_api_set-mode.md.wBD5SPSr.lean.js b/docs/assets/en-US_api_set-mode.md.UI9pHMSa.lean.js similarity index 71% rename from docs/assets/en-US_api_set-mode.md.wBD5SPSr.lean.js rename to docs/assets/en-US_api_set-mode.md.UI9pHMSa.lean.js index 189e5aa..6fce8d0 100644 --- a/docs/assets/en-US_api_set-mode.md.wBD5SPSr.lean.js +++ b/docs/assets/en-US_api_set-mode.md.UI9pHMSa.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as e,m as t}from"./chunks/framework.PNNbM9mo.js";const u=JSON.parse('{"title":"setMode","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/set-mode.md","filePath":"en-US/api/set-mode.md"}'),n={name:"en-US/api/set-mode.md"},l=e("",12),h=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-setMode&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function d(r,k,o,c,g,E){return i(),a("div",null,p)}const m=s(n,[["render",d]]);export{u as __pageData,m as default}; +import{_ as s,c as i,o as a,a1 as e,j as t}from"./chunks/framework.DVk8Vg-1.js";const u=JSON.parse('{"title":"setMode","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/set-mode.md","filePath":"en-US/api/set-mode.md"}'),n={name:"en-US/api/set-mode.md"},l=e("",12),h=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-setMode&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function d(r,k,o,c,g,E){return a(),i("div",null,p)}const m=s(n,[["render",d]]);export{u as __pageData,m as default}; diff --git a/docs/assets/en-US_api_update-element.md.-iahCtBO.js b/docs/assets/en-US_api_update-element.md.eR6Q3nu7.js similarity index 91% rename from docs/assets/en-US_api_update-element.md.-iahCtBO.js rename to docs/assets/en-US_api_update-element.md.eR6Q3nu7.js index e88a289..3289287 100644 --- a/docs/assets/en-US_api_update-element.md.-iahCtBO.js +++ b/docs/assets/en-US_api_update-element.md.eR6Q3nu7.js @@ -1,4 +1,4 @@ -import{_ as s,o as a,c as i,a2 as n,m as e}from"./chunks/framework.PNNbM9mo.js";const u=JSON.parse('{"title":"updateElement","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/update-element.md","filePath":"en-US/api/update-element.md"}'),t={name:"en-US/api/update-element.md"},l=n(`

updateElement

Introduction

updateElement updates an element in the drawing and triggers a re-rendering.

Arguments

  • {object} element

Returns

N/A

Usage

js
import { iDraw } from 'idraw';
+import{_ as s,c as a,o as i,a1 as n,j as e}from"./chunks/framework.DVk8Vg-1.js";const u=JSON.parse('{"title":"updateElement","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/update-element.md","filePath":"en-US/api/update-element.md"}'),t={name:"en-US/api/update-element.md"},l=n(`

updateElement

Introduction

updateElement updates an element in the drawing and triggers a re-rendering.

Arguments

  • {object} element

Returns

N/A

Usage

js
import { iDraw } from 'idraw';
 
 const data = {
   elements: [
@@ -19,4 +19,4 @@ import{_ as s,o as a,c as i,a2 as n,m as e}from"./chunks/framework.PNNbM9mo.js";
 
 elem.detail.color = '#f0f0f0';
 
-idraw.updateData(elem);

Example

More Demo >>

`,11),h=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-updateElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,E,o,c,g){return a(),i("div",null,p)}const m=s(t,[["render",k]]);export{u as __pageData,m as default}; +idraw.updateData(elem);

Example

More Demo >>

`,11),h=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-updateElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,E,o,c,g){return i(),a("div",null,p)}const m=s(t,[["render",k]]);export{u as __pageData,m as default}; diff --git a/docs/assets/en-US_api_update-element.md.-iahCtBO.lean.js b/docs/assets/en-US_api_update-element.md.eR6Q3nu7.lean.js similarity index 72% rename from docs/assets/en-US_api_update-element.md.-iahCtBO.lean.js rename to docs/assets/en-US_api_update-element.md.eR6Q3nu7.lean.js index b84c2a9..47e23d5 100644 --- a/docs/assets/en-US_api_update-element.md.-iahCtBO.lean.js +++ b/docs/assets/en-US_api_update-element.md.eR6Q3nu7.lean.js @@ -1 +1 @@ -import{_ as s,o as a,c as i,a2 as n,m as e}from"./chunks/framework.PNNbM9mo.js";const u=JSON.parse('{"title":"updateElement","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/update-element.md","filePath":"en-US/api/update-element.md"}'),t={name:"en-US/api/update-element.md"},l=n("",11),h=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-updateElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,E,o,c,g){return a(),i("div",null,p)}const m=s(t,[["render",k]]);export{u as __pageData,m as default}; +import{_ as s,c as a,o as i,a1 as n,j as e}from"./chunks/framework.DVk8Vg-1.js";const u=JSON.parse('{"title":"updateElement","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/api/update-element.md","filePath":"en-US/api/update-element.md"}'),t={name:"en-US/api/update-element.md"},l=n("",11),h=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-updateElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,E,o,c,g){return i(),a("div",null,p)}const m=s(t,[["render",k]]);export{u as __pageData,m as default}; diff --git a/docs/assets/en-US_element_circle.md.9LkWREaD.js b/docs/assets/en-US_element_circle.md.BPk9feZm.js similarity index 80% rename from docs/assets/en-US_element_circle.md.9LkWREaD.js rename to docs/assets/en-US_element_circle.md.BPk9feZm.js index d784da6..886edbf 100644 --- a/docs/assets/en-US_element_circle.md.9LkWREaD.js +++ b/docs/assets/en-US_element_circle.md.BPk9feZm.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as e,m as t}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"Circle","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/circle.md","filePath":"en-US/element/circle.md"}'),n={name:"en-US/element/circle.md"},l=e(`

Circle

Circle

It is used to render circular or oval content. The specific type is as follows:

ts
type Circle = {
+import{_ as s,c as i,o as a,a1 as e,j as t}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"Circle","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/circle.md","filePath":"en-US/element/circle.md"}'),n={name:"en-US/element/circle.md"},l=e(`

Circle

Circle

It is used to render circular or oval content. The specific type is as follows:

ts
type Circle = {
   type: 'circle';
   x: number;
   y: number;
@@ -11,12 +11,12 @@ import{_ as s,o as i,c as a,a2 as e,m as t}from"./chunks/framework.PNNbM9mo.js";
     borderWidth?: number;
     borderColor?: number;
   };
-};

Circle.detail

The basic attribute details of the element can be viewed Element's Detail # .

Circle.detail Data-Type

The Data-Type of Circle.detail

ts
type CircleDetail = {
+};

Circle.detail

The basic attribute details of the element can be viewed Element's Detail # .

Circle.detail Data-Type

The Data-Type of Circle.detail

ts
type CircleDetail = {
   background?: string;
   background?: string;
   borderWidth?: number;
   borderColor?: string;
-};

Circle.detail Properties

PropertyDescriptionTypeDefaultRequiredOthers
colorCircle Colorstring-trueeg. #000000
borderRadiusCircle radius of border cornernumber0false-
borderWidthBorder width of Circlenumber0false-
borderColorBorder color of Circlenumber0falseeg. #000000

Circle.detail Properties

js
const elementCircle = {
+};

Circle.detail Properties

PropertyDescriptionTypeDefaultRequiredOthers
colorCircle Colorstring-trueeg. #000000
borderRadiusCircle radius of border cornernumber0false-
borderWidthBorder width of Circlenumber0false-
borderColorBorder color of Circlenumber0falseeg. #000000

Circle.detail Properties

js
const elementCircle = {
   name: 'circle',
   x: 160,
   y: 100,
@@ -30,4 +30,4 @@ import{_ as s,o as i,c as a,a2 as e,m as t}from"./chunks/framework.PNNbM9mo.js";
     borderWidth: 4,
     borderColor: '#3f51b5'
   }
-};

Demo Preview

More Demo >>

`,15),h=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-circle&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,c,E,o,g){return i(),a("div",null,p)}const C=s(n,[["render",k]]);export{F as __pageData,C as default}; +};

Demo Preview

More Demo >>

`,15),h=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-circle&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,c,E,o,g){return a(),i("div",null,p)}const C=s(n,[["render",k]]);export{F as __pageData,C as default}; diff --git a/docs/assets/en-US_element_circle.md.9LkWREaD.lean.js b/docs/assets/en-US_element_circle.md.BPk9feZm.lean.js similarity index 71% rename from docs/assets/en-US_element_circle.md.9LkWREaD.lean.js rename to docs/assets/en-US_element_circle.md.BPk9feZm.lean.js index 6ad3beb..4568e55 100644 --- a/docs/assets/en-US_element_circle.md.9LkWREaD.lean.js +++ b/docs/assets/en-US_element_circle.md.BPk9feZm.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as e,m as t}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"Circle","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/circle.md","filePath":"en-US/element/circle.md"}'),n={name:"en-US/element/circle.md"},l=e("",15),h=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-circle&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,c,E,o,g){return i(),a("div",null,p)}const C=s(n,[["render",k]]);export{F as __pageData,C as default}; +import{_ as s,c as i,o as a,a1 as e,j as t}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"Circle","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/circle.md","filePath":"en-US/element/circle.md"}'),n={name:"en-US/element/circle.md"},l=e("",15),h=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-circle&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,c,E,o,g){return a(),i("div",null,p)}const C=s(n,[["render",k]]);export{F as __pageData,C as default}; diff --git a/docs/assets/en-US_element_group.md.yL0oQCBe.js b/docs/assets/en-US_element_group.md.Su27caqc.js similarity index 78% rename from docs/assets/en-US_element_group.md.yL0oQCBe.js rename to docs/assets/en-US_element_group.md.Su27caqc.js index 223854f..0562892 100644 --- a/docs/assets/en-US_element_group.md.yL0oQCBe.js +++ b/docs/assets/en-US_element_group.md.Su27caqc.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as t,m as e}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"Group","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/group.md","filePath":"en-US/element/group.md"}'),n={name:"en-US/element/group.md"},h=t(`

Group

Group

It is used to render group or oval content. The specific type is as follows:

ts
type Group = {
+import{_ as s,c as i,o as a,a1 as t,j as e}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"Group","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/group.md","filePath":"en-US/element/group.md"}'),n={name:"en-US/element/group.md"},h=t(`

Group

Group

It is used to render group or oval content. The specific type is as follows:

ts
type Group = {
   type: 'group';
   x: number;
   y: number;
@@ -12,13 +12,13 @@ import{_ as s,o as i,c as a,a2 as t,m as e}from"./chunks/framework.PNNbM9mo.js";
     borderWidth?: number;
     borderColor?: number;
   };
-};

Group.detail

The basic attribute details of the element can be viewed Element's Detail # .

Group.detail Data-Type

The Data-Type of Group.detail

ts
type GroupDetail = {
+};

Group.detail

The basic attribute details of the element can be viewed Element's Detail # .

Group.detail Data-Type

The Data-Type of Group.detail

ts
type GroupDetail = {
   children: Array<Element>;
   background?: string;
   background?: string;
   borderWidth?: number;
   borderColor?: string;
-};

Group.detail Properties

PropertyDescriptionTypeDefaultRequiredOthers
childrenChildren element listArray<Element>-trueeg. #000000
backgroundGroup background colorstring-falseeg. #000000
borderRadiusGroup radius of border cornernumber0false-
borderWidthBorder width of Groupnumber0false-
borderColorBorder color of Groupnumber0falseeg. #000000

Complete Data Example

js
const elementGroup = {
+};

Group.detail Properties

PropertyDescriptionTypeDefaultRequiredOthers
childrenChildren element listArray<Element>-trueeg. #000000
backgroundGroup background colorstring-falseeg. #000000
borderRadiusGroup radius of border cornernumber0false-
borderWidthBorder width of Groupnumber0false-
borderColorBorder color of Groupnumber0falseeg. #000000

Complete Data Example

js
const elementGroup = {
   name: 'group',
   x: 160,
   y: 120,
@@ -29,4 +29,4 @@ import{_ as s,o as i,c as a,a2 as t,m as e}from"./chunks/framework.PNNbM9mo.js";
   detail: {
     children: []
   }
-};

Demo Preview

More Demo >>

`,15),l=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-group&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,l];function k(d,r,o,E,g,c){return i(),a("div",null,p)}const u=s(n,[["render",k]]);export{F as __pageData,u as default}; +};

Demo Preview

More Demo >>

`,15),l=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-group&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,l];function k(d,r,o,E,g,c){return a(),i("div",null,p)}const u=s(n,[["render",k]]);export{F as __pageData,u as default}; diff --git a/docs/assets/en-US_element_group.md.yL0oQCBe.lean.js b/docs/assets/en-US_element_group.md.Su27caqc.lean.js similarity index 71% rename from docs/assets/en-US_element_group.md.yL0oQCBe.lean.js rename to docs/assets/en-US_element_group.md.Su27caqc.lean.js index 1b9bfd4..dc0aa3d 100644 --- a/docs/assets/en-US_element_group.md.yL0oQCBe.lean.js +++ b/docs/assets/en-US_element_group.md.Su27caqc.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as t,m as e}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"Group","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/group.md","filePath":"en-US/element/group.md"}'),n={name:"en-US/element/group.md"},h=t("",15),l=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-group&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,l];function k(d,r,o,E,g,c){return i(),a("div",null,p)}const u=s(n,[["render",k]]);export{F as __pageData,u as default}; +import{_ as s,c as i,o as a,a1 as t,j as e}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"Group","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/group.md","filePath":"en-US/element/group.md"}'),n={name:"en-US/element/group.md"},h=t("",15),l=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-group&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,l];function k(d,r,o,E,g,c){return a(),i("div",null,p)}const u=s(n,[["render",k]]);export{F as __pageData,u as default}; diff --git a/docs/assets/en-US_element_html.md.tsHVUPVh.js b/docs/assets/en-US_element_html.md.CzQuvGA_.js similarity index 85% rename from docs/assets/en-US_element_html.md.tsHVUPVh.js rename to docs/assets/en-US_element_html.md.CzQuvGA_.js index 6b78747..251ca09 100644 --- a/docs/assets/en-US_element_html.md.tsHVUPVh.js +++ b/docs/assets/en-US_element_html.md.CzQuvGA_.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as n,m as t}from"./chunks/framework.PNNbM9mo.js";const y=JSON.parse('{"title":"HTML","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/html.md","filePath":"en-US/element/html.md"}'),l={name:"en-US/element/html.md"},e=n(`

HTML

HTML

It is used to render HTML code snippet. The specific type is as follows:

ts
type HTML = {
+import{_ as s,c as i,o as a,a1 as n,j as t}from"./chunks/framework.DVk8Vg-1.js";const y=JSON.parse('{"title":"HTML","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/html.md","filePath":"en-US/element/html.md"}'),l={name:"en-US/element/html.md"},e=n(`

HTML

HTML

It is used to render HTML code snippet. The specific type is as follows:

ts
type HTML = {
   type: 'html';
   x: number;
   y: number;
@@ -8,9 +8,9 @@ import{_ as s,o as i,c as a,a2 as n,m as t}from"./chunks/framework.PNNbM9mo.js";
   detail: {
     html: string;
   };
-};

HTML.detail

The basic attribute details of the element can be viewed Element's Detail #.

HTML.detail Data-Type

The Data-Type of HTML.detail

ts
type HTMLDetail = {
+};

HTML.detail

The basic attribute details of the element can be viewed Element's Detail #.

HTML.detail Data-Type

The Data-Type of HTML.detail

ts
type HTMLDetail = {
   html: string;
-};

HTML.detail Properties

PropertyDescriptionTypeDefaultRequiredOthers
htmlHTML code snippetstring-true-

Complete Data Example

js
const elementHTML = {
+};

HTML.detail Properties

PropertyDescriptionTypeDefaultRequiredOthers
htmlHTML code snippetstring-true-

Complete Data Example

js
const elementHTML = {
   name: 'html',
   x: 200,
   y: 120,
@@ -66,4 +66,4 @@ import{_ as s,o as i,c as a,a2 as n,m as t}from"./chunks/framework.PNNbM9mo.js";
       </div>
     \`
   }
-};

Demo Preview

More Demo >>

`,15),p=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-html&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),h=[e,p];function k(r,d,F,E,g,o){return i(),a("div",null,h)}const m=s(l,[["render",k]]);export{y as __pageData,m as default}; +};

Demo Preview

More Demo >>

`,15),p=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-html&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),h=[e,p];function k(r,d,F,E,g,o){return a(),i("div",null,h)}const C=s(l,[["render",k]]);export{y as __pageData,C as default}; diff --git a/docs/assets/en-US_element_html.md.tsHVUPVh.lean.js b/docs/assets/en-US_element_html.md.CzQuvGA_.lean.js similarity index 66% rename from docs/assets/en-US_element_html.md.tsHVUPVh.lean.js rename to docs/assets/en-US_element_html.md.CzQuvGA_.lean.js index f80c4a3..e67bf8f 100644 --- a/docs/assets/en-US_element_html.md.tsHVUPVh.lean.js +++ b/docs/assets/en-US_element_html.md.CzQuvGA_.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as n,m as t}from"./chunks/framework.PNNbM9mo.js";const y=JSON.parse('{"title":"HTML","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/html.md","filePath":"en-US/element/html.md"}'),l={name:"en-US/element/html.md"},e=n("",15),p=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-html&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),h=[e,p];function k(r,d,F,E,g,o){return i(),a("div",null,h)}const m=s(l,[["render",k]]);export{y as __pageData,m as default}; +import{_ as s,c as i,o as a,a1 as n,j as t}from"./chunks/framework.DVk8Vg-1.js";const y=JSON.parse('{"title":"HTML","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/html.md","filePath":"en-US/element/html.md"}'),l={name:"en-US/element/html.md"},e=n("",15),p=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-html&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),h=[e,p];function k(r,d,F,E,g,o){return a(),i("div",null,h)}const C=s(l,[["render",k]]);export{y as __pageData,C as default}; diff --git a/docs/assets/en-US_element_image.md.EjC1u2Xj.js b/docs/assets/en-US_element_image.md.Dk1JHajd.js similarity index 78% rename from docs/assets/en-US_element_image.md.EjC1u2Xj.js rename to docs/assets/en-US_element_image.md.Dk1JHajd.js index 5fb3d39..7a7c2aa 100644 --- a/docs/assets/en-US_element_image.md.EjC1u2Xj.js +++ b/docs/assets/en-US_element_image.md.Dk1JHajd.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as e,m as t}from"./chunks/framework.PNNbM9mo.js";const m=JSON.parse('{"title":"Image","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/image.md","filePath":"en-US/element/image.md"}'),n={name:"en-US/element/image.md"},h=e(`

Image

Image

It is used to render image content. The specific type is as follows:

ts
type Image = {
+import{_ as s,c as i,o as a,a1 as e,j as t}from"./chunks/framework.DVk8Vg-1.js";const m=JSON.parse('{"title":"Image","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/image.md","filePath":"en-US/element/image.md"}'),n={name:"en-US/element/image.md"},h=e(`

Image

Image

It is used to render image content. The specific type is as follows:

ts
type Image = {
   type: 'image';
   x: number;
   y: number;
@@ -8,9 +8,9 @@ import{_ as s,o as i,c as a,a2 as e,m as t}from"./chunks/framework.PNNbM9mo.js";
   detail: {
     src: string;
   };
-};

Image.detail

The basic attribute details of the element can be viewed Element's Detail # .

Image.detail Data-Type

The Data-Type of Image.detail

ts
type ImageDetail = {
+};

Image.detail

The basic attribute details of the element can be viewed Element's Detail # .

Image.detail Data-Type

The Data-Type of Image.detail

ts
type ImageDetail = {
   src: string;
-};

Image.detail Properties

PropertyDescriptionTypeDefaultRequiredOthers
srcThe image URL or DataURLstring-true-

Complete Data Example

js
const elementImage = {
+};

Image.detail Properties

PropertyDescriptionTypeDefaultRequiredOthers
srcThe image URL or DataURLstring-true-

Complete Data Example

js
const elementImage = {
   name: 'image',
   x: 160,
   y: 100,
@@ -21,4 +21,4 @@ import{_ as s,o as i,c as a,a2 as e,m as t}from"./chunks/framework.PNNbM9mo.js";
   detail: {
     src: './image/github.png'
   }
-};

Demo Preview

More Demo >>

`,15),l=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-image&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,l];function k(r,d,E,g,o,c){return i(),a("div",null,p)}const F=s(n,[["render",k]]);export{m as __pageData,F as default}; +};

Demo Preview

More Demo >>

`,15),l=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-image&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,l];function k(r,d,E,g,o,c){return a(),i("div",null,p)}const F=s(n,[["render",k]]);export{m as __pageData,F as default}; diff --git a/docs/assets/en-US_element_image.md.EjC1u2Xj.lean.js b/docs/assets/en-US_element_image.md.Dk1JHajd.lean.js similarity index 71% rename from docs/assets/en-US_element_image.md.EjC1u2Xj.lean.js rename to docs/assets/en-US_element_image.md.Dk1JHajd.lean.js index fc92d81..9952734 100644 --- a/docs/assets/en-US_element_image.md.EjC1u2Xj.lean.js +++ b/docs/assets/en-US_element_image.md.Dk1JHajd.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as e,m as t}from"./chunks/framework.PNNbM9mo.js";const m=JSON.parse('{"title":"Image","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/image.md","filePath":"en-US/element/image.md"}'),n={name:"en-US/element/image.md"},h=e("",15),l=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-image&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,l];function k(r,d,E,g,o,c){return i(),a("div",null,p)}const F=s(n,[["render",k]]);export{m as __pageData,F as default}; +import{_ as s,c as i,o as a,a1 as e,j as t}from"./chunks/framework.DVk8Vg-1.js";const m=JSON.parse('{"title":"Image","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/image.md","filePath":"en-US/element/image.md"}'),n={name:"en-US/element/image.md"},h=e("",15),l=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-image&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,l];function k(r,d,E,g,o,c){return a(),i("div",null,p)}const F=s(n,[["render",k]]);export{m as __pageData,F as default}; diff --git a/docs/assets/en-US_element_info.md.xj25PwHX.js b/docs/assets/en-US_element_info.md.CXzazgBf.js similarity index 81% rename from docs/assets/en-US_element_info.md.xj25PwHX.js rename to docs/assets/en-US_element_info.md.CXzazgBf.js index 83e0568..077d77a 100644 --- a/docs/assets/en-US_element_info.md.xj25PwHX.js +++ b/docs/assets/en-US_element_info.md.CXzazgBf.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"Element Information","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/info.md","filePath":"en-US/element/info.md"}'),e={name:"en-US/element/info.md"},l=t(`

Element Information

What is iDraw.js's Element

The content of drawing is based on "Element" in iDraw.js. Further more, the process of drawing is basically to realize the function of drawing around the layout, style, content and other attributes of controlling elements.

There eight types of elements are currently supported in iDraw.js :

  1. Text
  2. Rect
  3. Circle
  4. Image
  5. SVG
  6. HTML
  7. Path
  8. Group

Element's Detail

Element Basic Content

tsx
type Element = {
+import{_ as s,c as i,o as a,a1 as t,j as n}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"Element Information","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/info.md","filePath":"en-US/element/info.md"}'),e={name:"en-US/element/info.md"},l=t(`

Element Information

What is iDraw.js's Element

The content of drawing is based on "Element" in iDraw.js. Further more, the process of drawing is basically to realize the function of drawing around the layout, style, content and other attributes of controlling elements.

There eight types of elements are currently supported in iDraw.js :

  1. Text
  2. Rect
  3. Circle
  4. Image
  5. SVG
  6. HTML
  7. Path
  8. Group

Element's Detail

Element Basic Content

tsx
type Element = {
   type: 'text' | 'rect' | 'circle' | 'image' | 'svg' | 'html' | 'path' | 'group';
   uuid: string;
   name?: string;
@@ -14,7 +14,7 @@ import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";
     limitRatio?: boolean;
   };
   extension?: { [key: string]: any } | any;
-};

Element Basic Properties

PropertyDescriptionTypeDefaultRequiredOthers
typeElement typetext| rect| circle| image| svg | html-true-
uuidElement unique IDstring-falseThe UUID is automatically added internally in iDraw.js
nameElement namestring-false-
xX-axis offsetnumber-true-
yY-axis offsetnumber-true-
wElement widthnumber-true-
hElement heightnumber-true-
angleElement rotation anglenumber0false[0, 360]
lockSet the lock-staus of elementbooleanfalsefalseThe view operation cannot be controlled after the element is locked
detailDetail of different elementsobject (Please check the description of each element for details)-true-
operation.lockSet the lock-staus of elementbooleanfalsefalseThe view operation cannot be controlled after the element is locked
operation.invisible-booleanfalsefalse-
operation.limitRatioLimit element width and height ratioboolean-falseWhen the element is scaled, it is scaled according to its width and height ratio

Usage of Elements

js
import { iDraw } from 'idraw';
+};

Element Basic Properties

PropertyDescriptionTypeDefaultRequiredOthers
typeElement typetext| rect| circle| image| svg | html-true-
uuidElement unique IDstring-falseThe UUID is automatically added internally in iDraw.js
nameElement namestring-false-
xX-axis offsetnumber-true-
yY-axis offsetnumber-true-
wElement widthnumber-true-
hElement heightnumber-true-
angleElement rotation anglenumber0false[0, 360]
lockSet the lock-staus of elementbooleanfalsefalseThe view operation cannot be controlled after the element is locked
detailDetail of different elementsobject (Please check the description of each element for details)-true-
operation.lockSet the lock-staus of elementbooleanfalsefalseThe view operation cannot be controlled after the element is locked
operation.invisible-booleanfalsefalse-
operation.limitRatioLimit element width and height ratioboolean-falseWhen the element is scaled, it is scaled according to its width and height ratio

Usage of Elements

js
import { iDraw } from 'idraw';
 
 import { iDraw } from 'idraw';
 const data = {
@@ -48,4 +48,4 @@ import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";
 });
 
 // Set drawing-data for rendering view
-idraw.setData(data);

Demo Preview

More Demo >>

`,14),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-rect&header=false&sider=false&default-editor-split=50",frameborder:"no",border:"0"},null,-1),k=[l,h];function p(d,r,E,o,c,g){return i(),a("div",null,k)}const m=s(e,[["render",p]]);export{F as __pageData,m as default}; +idraw.setData(data);

Demo Preview

More Demo >>

`,14),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-rect&header=false&sider=false&default-editor-split=50",frameborder:"no",border:"0"},null,-1),k=[l,h];function p(d,r,E,o,c,g){return a(),i("div",null,k)}const m=s(e,[["render",p]]);export{F as __pageData,m as default}; diff --git a/docs/assets/en-US_element_info.md.xj25PwHX.lean.js b/docs/assets/en-US_element_info.md.CXzazgBf.lean.js similarity index 68% rename from docs/assets/en-US_element_info.md.xj25PwHX.lean.js rename to docs/assets/en-US_element_info.md.CXzazgBf.lean.js index 22f87b5..45c4e4d 100644 --- a/docs/assets/en-US_element_info.md.xj25PwHX.lean.js +++ b/docs/assets/en-US_element_info.md.CXzazgBf.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"Element Information","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/info.md","filePath":"en-US/element/info.md"}'),e={name:"en-US/element/info.md"},l=t("",14),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-rect&header=false&sider=false&default-editor-split=50",frameborder:"no",border:"0"},null,-1),k=[l,h];function p(d,r,E,o,c,g){return i(),a("div",null,k)}const m=s(e,[["render",p]]);export{F as __pageData,m as default}; +import{_ as s,c as i,o as a,a1 as t,j as n}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"Element Information","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/info.md","filePath":"en-US/element/info.md"}'),e={name:"en-US/element/info.md"},l=t("",14),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-rect&header=false&sider=false&default-editor-split=50",frameborder:"no",border:"0"},null,-1),k=[l,h];function p(d,r,E,o,c,g){return a(),i("div",null,k)}const m=s(e,[["render",p]]);export{F as __pageData,m as default}; diff --git a/docs/assets/en-US_element_path.md.Hel0-4hv.js b/docs/assets/en-US_element_path.md.Db-xB9cN.js similarity index 90% rename from docs/assets/en-US_element_path.md.Hel0-4hv.js rename to docs/assets/en-US_element_path.md.Db-xB9cN.js index f7f7be9..acd10de 100644 --- a/docs/assets/en-US_element_path.md.Hel0-4hv.js +++ b/docs/assets/en-US_element_path.md.Db-xB9cN.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as h,m as t}from"./chunks/framework.PNNbM9mo.js";const c=JSON.parse('{"title":"Path","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/path.md","filePath":"en-US/element/path.md"}'),n={name:"en-US/element/path.md"},k=h(`

Path

Path

It is used to render image content. The specific type is as follows:

ts
type Path = {
+import{_ as s,c as i,o as a,a1 as h,j as t}from"./chunks/framework.DVk8Vg-1.js";const c=JSON.parse('{"title":"Path","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/path.md","filePath":"en-US/element/path.md"}'),n={name:"en-US/element/path.md"},k=h(`

Path

Path

It is used to render image content. The specific type is as follows:

ts
type Path = {
   type: 'path';
   x: number;
   y: number;
@@ -19,7 +19,7 @@ import{_ as s,o as i,c as a,a2 as h,m as t}from"./chunks/framework.PNNbM9mo.js";
     strokeWidth?: number;
     strokeLineCap?: 'butt' | 'round' | 'square';
   };
-};

Path.detail Properties

The basic attribute details of the element can be viewed Element's Detail # .

Path.detail Data-Type

ts
type PathDetail = {
+};

Path.detail Properties

The basic attribute details of the element can be viewed Element's Detail # .

Path.detail Data-Type

ts
type PathDetail = {
   commands: Array<{
     type: 'M' | 'm' | 'L' | 'l' | 'H' | 'h' | 'V' | 'v' | 'C' | 'c' | 'S' | 's' | 'Q' | 'q' | 'T' | 't' | 'A' | 'a' | 'Z' | 'z';
     params: number[];
@@ -32,7 +32,7 @@ import{_ as s,o as i,c as a,a2 as h,m as t}from"./chunks/framework.PNNbM9mo.js";
   stroke?: string;
   strokeWidth?: number;
   strokeLineCap?: 'butt' | 'round' | 'square';
-};

Path.detail Properties

PropertyDescriptionTypeDefaultRequiredOthers
fillfill colorstring-trueeg. #000000
strokepath colorstring-trueeg. #000000
strokeWidthpath widthnumber0false-
strokeLineCapPath turning type'butt' | 'round' | 'square'-true-
originXPath original X positionnumber0false-
originYPath original Y positionnumber0false-
originWPath original widthnumber0false-
originHPath original heightnumber0false-

Complete Data Example

js
const elementPath = {
+};

Path.detail Properties

PropertyDescriptionTypeDefaultRequiredOthers
fillfill colorstring-trueeg. #000000
strokepath colorstring-trueeg. #000000
strokeWidthpath widthnumber0false-
strokeLineCapPath turning type'butt' | 'round' | 'square'-true-
originXPath original X positionnumber0false-
originYPath original Y positionnumber0false-
originWPath original widthnumber0false-
originHPath original heightnumber0false-

Complete Data Example

js
const elementPath = {
   uuid: '41d437b8-afbd-2d3d-14bc-912e26d3491f',
   x: 100,
   y: 100,
@@ -57,4 +57,4 @@ import{_ as s,o as i,c as a,a2 as h,m as t}from"./chunks/framework.PNNbM9mo.js";
     originH: 80,
     originW: 80
   }
-};

Demo Preview

More Demo >>

`,14),l=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-path&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[k,l];function e(d,r,E,F,g,y){return i(),a("div",null,p)}const C=s(n,[["render",e]]);export{c as __pageData,C as default}; +};

Demo Preview

More Demo >>

`,14),l=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-path&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[k,l];function e(d,r,E,F,g,y){return a(),i("div",null,p)}const C=s(n,[["render",e]]);export{c as __pageData,C as default}; diff --git a/docs/assets/en-US_element_path.md.Hel0-4hv.lean.js b/docs/assets/en-US_element_path.md.Db-xB9cN.lean.js similarity index 71% rename from docs/assets/en-US_element_path.md.Hel0-4hv.lean.js rename to docs/assets/en-US_element_path.md.Db-xB9cN.lean.js index 072987d..ab27da5 100644 --- a/docs/assets/en-US_element_path.md.Hel0-4hv.lean.js +++ b/docs/assets/en-US_element_path.md.Db-xB9cN.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as h,m as t}from"./chunks/framework.PNNbM9mo.js";const c=JSON.parse('{"title":"Path","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/path.md","filePath":"en-US/element/path.md"}'),n={name:"en-US/element/path.md"},k=h("",14),l=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-path&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[k,l];function e(d,r,E,F,g,y){return i(),a("div",null,p)}const C=s(n,[["render",e]]);export{c as __pageData,C as default}; +import{_ as s,c as i,o as a,a1 as h,j as t}from"./chunks/framework.DVk8Vg-1.js";const c=JSON.parse('{"title":"Path","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/path.md","filePath":"en-US/element/path.md"}'),n={name:"en-US/element/path.md"},k=h("",14),l=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-path&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[k,l];function e(d,r,E,F,g,y){return a(),i("div",null,p)}const C=s(n,[["render",e]]);export{c as __pageData,C as default}; diff --git a/docs/assets/en-US_element_rect.md.jl7sqBwM.js b/docs/assets/en-US_element_rect.md.BEfc4rId.js similarity index 78% rename from docs/assets/en-US_element_rect.md.jl7sqBwM.js rename to docs/assets/en-US_element_rect.md.BEfc4rId.js index f8e61ae..cae05d0 100644 --- a/docs/assets/en-US_element_rect.md.jl7sqBwM.js +++ b/docs/assets/en-US_element_rect.md.BEfc4rId.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as t,m as e}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"矩形元素","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/rect.md","filePath":"en-US/element/rect.md"}'),n={name:"en-US/element/rect.md"},l=t(`

矩形元素

Rectangle

It is used to render rectangle content. The specific type is as follows:

ts
type Rect = {
+import{_ as s,c as i,o as a,a1 as t,j as e}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"矩形元素","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/rect.md","filePath":"en-US/element/rect.md"}'),n={name:"en-US/element/rect.md"},l=t(`

矩形元素

Rectangle

It is used to render rectangle content. The specific type is as follows:

ts
type Rect = {
   type: 'rect';
   x: number;
   y: number;
@@ -11,12 +11,12 @@ import{_ as s,o as i,c as a,a2 as t,m as e}from"./chunks/framework.PNNbM9mo.js";
     borderWidth?: number;
     borderColor?: number;
   };
-};

Rect.detail

The basic attribute details of the element can be viewed Element's Detail # .

Rect.detail Data-Type

The Data-Type of Rect.detail

ts
type RectDetail = {
+};

Rect.detail

The basic attribute details of the element can be viewed Element's Detail # .

Rect.detail Data-Type

The Data-Type of Rect.detail

ts
type RectDetail = {
   background?: string;
   background?: string;
   borderWidth?: number;
   borderColor?: string;
-};

Rect.detail Properties

PropertyDescriptionTypeDefaultRequiredOthers
colorRectangle colorstring-trueeg. #000000
backgroundRectangle background colorstring-trueeg. #000000
borderRadiusRectangle radius of border cornernumber0false-
borderWidthBorder width of Rectanglenumber0false-
borderColorBorder color of Rectanglestring-falseeg. #000000

Complete Data Example

js
const elementRect = {
+};

Rect.detail Properties

PropertyDescriptionTypeDefaultRequiredOthers
colorRectangle colorstring-trueeg. #000000
backgroundRectangle background colorstring-trueeg. #000000
borderRadiusRectangle radius of border cornernumber0false-
borderWidthBorder width of Rectanglenumber0false-
borderColorBorder color of Rectanglestring-falseeg. #000000

Complete Data Example

js
const elementRect = {
   name: 'rect',
   x: 160,
   y: 120,
@@ -30,4 +30,4 @@ import{_ as s,o as i,c as a,a2 as t,m as e}from"./chunks/framework.PNNbM9mo.js";
     borderWidth: 2,
     borderColor: '#3f51b5'
   }
-};

Demo Preview

More Demo >>

`,15),h=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-rect&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(d,r,E,o,c,g){return i(),a("div",null,p)}const b=s(n,[["render",k]]);export{F as __pageData,b as default}; +};

Demo Preview

More Demo >>

`,15),h=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-rect&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(d,r,E,o,c,g){return a(),i("div",null,p)}const b=s(n,[["render",k]]);export{F as __pageData,b as default}; diff --git a/docs/assets/en-US_element_rect.md.jl7sqBwM.lean.js b/docs/assets/en-US_element_rect.md.BEfc4rId.lean.js similarity index 71% rename from docs/assets/en-US_element_rect.md.jl7sqBwM.lean.js rename to docs/assets/en-US_element_rect.md.BEfc4rId.lean.js index 45d992a..ac34be6 100644 --- a/docs/assets/en-US_element_rect.md.jl7sqBwM.lean.js +++ b/docs/assets/en-US_element_rect.md.BEfc4rId.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as t,m as e}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"矩形元素","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/rect.md","filePath":"en-US/element/rect.md"}'),n={name:"en-US/element/rect.md"},l=t("",15),h=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-rect&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(d,r,E,o,c,g){return i(),a("div",null,p)}const b=s(n,[["render",k]]);export{F as __pageData,b as default}; +import{_ as s,c as i,o as a,a1 as t,j as e}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"矩形元素","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/rect.md","filePath":"en-US/element/rect.md"}'),n={name:"en-US/element/rect.md"},l=t("",15),h=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-rect&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(d,r,E,o,c,g){return a(),i("div",null,p)}const b=s(n,[["render",k]]);export{F as __pageData,b as default}; diff --git a/docs/assets/en-US_element_svg.md.yAlcGznY.js b/docs/assets/en-US_element_svg.md.0YiOqt4z.js similarity index 82% rename from docs/assets/en-US_element_svg.md.yAlcGznY.js rename to docs/assets/en-US_element_svg.md.0YiOqt4z.js index 2d417a9..cb3d6f2 100644 --- a/docs/assets/en-US_element_svg.md.yAlcGznY.js +++ b/docs/assets/en-US_element_svg.md.0YiOqt4z.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as t,m as e}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"SVG","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/svg.md","filePath":"en-US/element/svg.md"}'),n={name:"en-US/element/svg.md"},h=t(`

SVG

SVG

It is used to render SVG code snippet. The specific type is as follows:

ts
type SVG = {
+import{_ as s,c as i,o as a,a1 as t,j as e}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"SVG","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/svg.md","filePath":"en-US/element/svg.md"}'),n={name:"en-US/element/svg.md"},h=t(`

SVG

SVG

It is used to render SVG code snippet. The specific type is as follows:

ts
type SVG = {
   type: 'svg';
   x: number;
   y: number;
@@ -8,9 +8,9 @@ import{_ as s,o as i,c as a,a2 as t,m as e}from"./chunks/framework.PNNbM9mo.js";
   detail: {
     svg: string;
   };
-};

SVG.detail

The basic attribute details of the element can be viewed Element's Detail #.

SVG.detail Data-Type

The Data-Type of SVG.detail

ts
type SVGDetail = {
+};

SVG.detail

The basic attribute details of the element can be viewed Element's Detail #.

SVG.detail Data-Type

The Data-Type of SVG.detail

ts
type SVGDetail = {
   svg: string;
-};

SVG.detail 数据属性内容

PropertyDescriptionTypeDefaultRequiredOthers
svgHTML code snippetstring-true-

完整数据示例

js
const elementSVG = {
+};

SVG.detail 数据属性内容

PropertyDescriptionTypeDefaultRequiredOthers
svgHTML code snippetstring-true-

完整数据示例

js
const elementSVG = {
   name: 'svg',
   x: 160,
   y: 100,
@@ -21,4 +21,4 @@ import{_ as s,o as i,c as a,a2 as t,m as e}from"./chunks/framework.PNNbM9mo.js";
   detail: {
     svg: \`<svg  viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"  width="400" height="400"><path d="M512 1013.76c-277.11488 0-501.76-224.64512-501.76-501.76S234.88512 10.24 512 10.24s501.76 224.64512 501.76 501.76-224.64512 501.76-501.76 501.76z m0-51.02592c248.9344 0 450.73408-201.79968 450.73408-450.73408 0-248.9344-201.79968-450.73408-450.73408-450.73408-248.9344 0-450.73408 201.79968-450.73408 450.73408 0 248.9344 201.79968 450.73408 450.73408 450.73408zM456.9856 637.9008l295.45984-339.94752a26.4192 26.4192 0 0 1 37.59616-2.31936 28.32896 28.32896 0 0 1 3.10784 38.8608l-307.01568 380.38016a30.72 30.72 0 0 1-42.90048 4.84864L235.44832 556.2368a32.128 32.128 0 0 1-5.74976-44.6464 32.1536 32.1536 0 0 1 44.544-6.58944l182.74304 132.90496z" fill="#1890ff"></path></svg>\`
   }
-};

Demo Preview

More Demo >>

`,15),l=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-svg&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,l];function k(d,r,E,g,o,c){return i(),a("div",null,p)}const u=s(n,[["render",k]]);export{F as __pageData,u as default}; +};

Demo Preview

More Demo >>

`,15),l=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-svg&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,l];function k(d,r,E,g,o,c){return a(),i("div",null,p)}const u=s(n,[["render",k]]);export{F as __pageData,u as default}; diff --git a/docs/assets/en-US_element_svg.md.yAlcGznY.lean.js b/docs/assets/en-US_element_svg.md.0YiOqt4z.lean.js similarity index 71% rename from docs/assets/en-US_element_svg.md.yAlcGznY.lean.js rename to docs/assets/en-US_element_svg.md.0YiOqt4z.lean.js index 0171a2f..bcb7bc5 100644 --- a/docs/assets/en-US_element_svg.md.yAlcGznY.lean.js +++ b/docs/assets/en-US_element_svg.md.0YiOqt4z.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as t,m as e}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"SVG","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/svg.md","filePath":"en-US/element/svg.md"}'),n={name:"en-US/element/svg.md"},h=t("",15),l=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-svg&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,l];function k(d,r,E,g,o,c){return i(),a("div",null,p)}const u=s(n,[["render",k]]);export{F as __pageData,u as default}; +import{_ as s,c as i,o as a,a1 as t,j as e}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"SVG","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/svg.md","filePath":"en-US/element/svg.md"}'),n={name:"en-US/element/svg.md"},h=t("",15),l=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-svg&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,l];function k(d,r,E,g,o,c){return a(),i("div",null,p)}const u=s(n,[["render",k]]);export{F as __pageData,u as default}; diff --git a/docs/assets/en-US_element_text.md.9k45uKEt.js b/docs/assets/en-US_element_text.md.Cs7GV-AS.js similarity index 81% rename from docs/assets/en-US_element_text.md.9k45uKEt.js rename to docs/assets/en-US_element_text.md.Cs7GV-AS.js index b0af1dd..9739079 100644 --- a/docs/assets/en-US_element_text.md.9k45uKEt.js +++ b/docs/assets/en-US_element_text.md.Cs7GV-AS.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";const c=JSON.parse('{"title":"Text","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/text.md","filePath":"en-US/element/text.md"}'),e={name:"en-US/element/text.md"},h=t(`

Text

Text

It is used to render text content. The specific type is as follows:

ts
type Text = {
+import{_ as s,c as i,o as a,a1 as t,j as n}from"./chunks/framework.DVk8Vg-1.js";const c=JSON.parse('{"title":"Text","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/text.md","filePath":"en-US/element/text.md"}'),e={name:"en-US/element/text.md"},h=t(`

Text

Text

It is used to render text content. The specific type is as follows:

ts
type Text = {
   type: 'text';
   x: number;
   y: number;
@@ -11,7 +11,7 @@ import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";
     fontSize?: string;
     fontFamily?: string;
     textAlign?: 'left' | 'center' | 'right';
-};

Text.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

Text.detail 数据格式

Text元素的detail属性

ts
type TextDetail = {
+};

Text.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

Text.detail 数据格式

Text元素的detail属性

ts
type TextDetail = {
   text: string;
   color?: string;
   fontSize?: number;
@@ -20,7 +20,7 @@ import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";
   fontFamily?: string;
   textAlign?: 'center' | 'left' | 'right';
   verticalAlign?: 'middle' | 'top' | 'bottom';
-};

Text.detail Properties

PropertyDescriptionTypeDefaultRequiredOthers
textText Contentstring-true-
colorFont color of Textstring-trueeg. #000000
fontSizeFont size of Textnumber12false-
lineHeightLine height of Textnumber-false-
fontWeightFont boldnumber-false-
fontFamilyFont family of Textstring-false-
textAlignText align'left' | 'center' | 'right''left'false-
verticalAlignVertical Align'top' | 'middle' | 'bottom''top'false-

Complete Data Example

js
const elementText = {
+};

Text.detail Properties

PropertyDescriptionTypeDefaultRequiredOthers
textText Contentstring-true-
colorFont color of Textstring-trueeg. #000000
fontSizeFont size of Textnumber12false-
lineHeightLine height of Textnumber-false-
fontWeightFont boldnumber-false-
fontFamilyFont family of Textstring-false-
textAlignText align'left' | 'center' | 'right''left'false-
verticalAlignVertical Align'top' | 'middle' | 'bottom''top'false-

Complete Data Example

js
const elementText = {
   name: 'text',
   x: 160,
   y: 80,
@@ -38,4 +38,4 @@ import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";
     borderWidth: 2,
     borderColor: '#3f51b5'
   }
-};

Demo Preview

More Demo

`,15),l=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-text&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),k=[h,l];function p(d,r,E,g,o,F){return i(),a("div",null,k)}const C=s(e,[["render",p]]);export{c as __pageData,C as default}; +};

Demo Preview

More Demo

`,15),l=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-text&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),k=[h,l];function p(d,r,E,g,o,F){return a(),i("div",null,k)}const C=s(e,[["render",p]]);export{c as __pageData,C as default}; diff --git a/docs/assets/en-US_element_text.md.9k45uKEt.lean.js b/docs/assets/en-US_element_text.md.Cs7GV-AS.lean.js similarity index 71% rename from docs/assets/en-US_element_text.md.9k45uKEt.lean.js rename to docs/assets/en-US_element_text.md.Cs7GV-AS.lean.js index b9d8332..0cff676 100644 --- a/docs/assets/en-US_element_text.md.9k45uKEt.lean.js +++ b/docs/assets/en-US_element_text.md.Cs7GV-AS.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";const c=JSON.parse('{"title":"Text","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/text.md","filePath":"en-US/element/text.md"}'),e={name:"en-US/element/text.md"},h=t("",15),l=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-text&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),k=[h,l];function p(d,r,E,g,o,F){return i(),a("div",null,k)}const C=s(e,[["render",p]]);export{c as __pageData,C as default}; +import{_ as s,c as i,o as a,a1 as t,j as n}from"./chunks/framework.DVk8Vg-1.js";const c=JSON.parse('{"title":"Text","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/element/text.md","filePath":"en-US/element/text.md"}'),e={name:"en-US/element/text.md"},h=t("",15),l=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-text&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),k=[h,l];function p(d,r,E,g,o,F){return a(),i("div",null,k)}const C=s(e,[["render",p]]);export{c as __pageData,C as default}; diff --git a/docs/assets/en-US_guide_class-idraw.md.NV45iEKs.js b/docs/assets/en-US_guide_class-idraw.md.DHp7Sg01.js similarity index 57% rename from docs/assets/en-US_guide_class-idraw.md.NV45iEKs.js rename to docs/assets/en-US_guide_class-idraw.md.DHp7Sg01.js index 4a015f0..8df8129 100644 --- a/docs/assets/en-US_guide_class-idraw.md.NV45iEKs.js +++ b/docs/assets/en-US_guide_class-idraw.md.DHp7Sg01.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as t,a2 as a,m as e}from"./chunks/framework.PNNbM9mo.js";const u=JSON.parse('{"title":"Class iDraw","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/class-idraw.md","filePath":"en-US/guide/class-idraw.md"}'),n={name:"en-US/guide/class-idraw.md"},h=a(`

Class iDraw

Arguments

js
import { iDraw } from 'idraw';
+import{_ as s,c as i,o as t,a1 as a,j as e}from"./chunks/framework.DVk8Vg-1.js";const u=JSON.parse('{"title":"Class iDraw","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/class-idraw.md","filePath":"en-US/guide/class-idraw.md"}'),n={name:"en-US/guide/class-idraw.md"},h=a(`

Class iDraw

Arguments

js
import { iDraw } from 'idraw';
 const dom = document.querySelector('#app');
 const options = {
   width: 600,
@@ -6,8 +6,8 @@ import{_ as s,o as i,c as t,a2 as a,m as e}from"./chunks/framework.PNNbM9mo.js";
   devicePixelRatio: 2
 };
 
-const idraw = new iDraw(dom, options);
ArugmentDescriptionTypeDefaultRequiredOthers
domCanvas mounted DOMHTMLDivElement-true-
optionsImage rendering options[Object]-true-

Options

ts
type Options = {
+const idraw = new iDraw(dom, options);
ArugmentDescriptionTypeDefaultRequiredOthers
domCanvas mounted DOMHTMLDivElement-true-
optionsImage rendering options[Object]-true-

Options

ts
type Options = {
   width: number;
   height: number;
   devicePixelRatio: number;
-};

Options Properties

PropertyDescriptionTypeDefaultRequiredOthers
widthDrawing board's widthnumber-true-
heightDrawing board's heightnumber-true-
devicePixelRatioDevice pixel scalenumber1false-

Options Preivew

More Demo >>

`,10),d=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=basic-options&header=false&sider=false&default-editor-split=50",width:"1000",height:"440",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),l=[h,d];function p(r,k,o,c,g,E){return i(),t("div",null,l)}const F=s(n,[["render",p]]);export{u as __pageData,F as default}; +};

Options Properties

PropertyDescriptionTypeDefaultRequiredOthers
widthDrawing board's widthnumber-true-
heightDrawing board's heightnumber-true-
devicePixelRatioDevice pixel scalenumber1false-

Options Preivew

More Demo >>

`,10),d=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=basic-options&header=false&sider=false&default-editor-split=50",width:"1000",height:"440",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),l=[h,d];function p(r,k,o,c,g,E){return t(),i("div",null,l)}const F=s(n,[["render",p]]);export{u as __pageData,F as default}; diff --git a/docs/assets/en-US_guide_class-idraw.md.NV45iEKs.lean.js b/docs/assets/en-US_guide_class-idraw.md.DHp7Sg01.lean.js similarity index 72% rename from docs/assets/en-US_guide_class-idraw.md.NV45iEKs.lean.js rename to docs/assets/en-US_guide_class-idraw.md.DHp7Sg01.lean.js index 6d1df07..2086474 100644 --- a/docs/assets/en-US_guide_class-idraw.md.NV45iEKs.lean.js +++ b/docs/assets/en-US_guide_class-idraw.md.DHp7Sg01.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as t,a2 as a,m as e}from"./chunks/framework.PNNbM9mo.js";const u=JSON.parse('{"title":"Class iDraw","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/class-idraw.md","filePath":"en-US/guide/class-idraw.md"}'),n={name:"en-US/guide/class-idraw.md"},h=a("",10),d=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=basic-options&header=false&sider=false&default-editor-split=50",width:"1000",height:"440",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),l=[h,d];function p(r,k,o,c,g,E){return i(),t("div",null,l)}const F=s(n,[["render",p]]);export{u as __pageData,F as default}; +import{_ as s,c as i,o as t,a1 as a,j as e}from"./chunks/framework.DVk8Vg-1.js";const u=JSON.parse('{"title":"Class iDraw","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/class-idraw.md","filePath":"en-US/guide/class-idraw.md"}'),n={name:"en-US/guide/class-idraw.md"},h=a("",10),d=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=basic-options&header=false&sider=false&default-editor-split=50",width:"1000",height:"440",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),l=[h,d];function p(r,k,o,c,g,E){return t(),i("div",null,l)}const F=s(n,[["render",p]]);export{u as __pageData,F as default}; diff --git a/docs/assets/en-US_guide_installation.md.LCva9Prm.js b/docs/assets/en-US_guide_installation.md.DqTmXbVu.js similarity index 74% rename from docs/assets/en-US_guide_installation.md.LCva9Prm.js rename to docs/assets/en-US_guide_installation.md.DqTmXbVu.js index ed9377f..e4c877e 100644 --- a/docs/assets/en-US_guide_installation.md.LCva9Prm.js +++ b/docs/assets/en-US_guide_installation.md.DqTmXbVu.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as t}from"./chunks/framework.PNNbM9mo.js";const g=JSON.parse('{"title":"Installation","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/installation.md","filePath":"en-US/guide/installation.md"}'),n={name:"en-US/guide/installation.md"},l=t(`

Installation

Lastest Version

iDraw.js

Installation

There are three ways of adding iDraw.js to a project:

  1. Install it using NPM.
  2. Import it as a CDN Package on the page.
  3. Download the JavaScript file and host them yourself.

NPM

NPM is the recommended installation method when building large scale with iDraw.js. It pairs nicely with module bundlers such as Webpack, Rollup or Vite.

sh
npm install idraw

CDN

For prototyping or learning purposes, you can use the latest version with:

html
<script src="https://unpkg.com/idraw"></script>
html
<!-- use global value -->
+import{_ as s,c as i,o as a,a1 as t}from"./chunks/framework.DVk8Vg-1.js";const g=JSON.parse('{"title":"Installation","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/installation.md","filePath":"en-US/guide/installation.md"}'),n={name:"en-US/guide/installation.md"},l=t(`

Installation

Lastest Version

iDraw.js

Installation

There are three ways of adding iDraw.js to a project:

  1. Install it using NPM.
  2. Import it as a CDN Package on the page.
  3. Download the JavaScript file and host them yourself.

NPM

NPM is the recommended installation method when building large scale with iDraw.js. It pairs nicely with module bundlers such as Webpack, Rollup or Vite.

sh
npm install idraw

CDN

For prototyping or learning purposes, you can use the latest version with:

html
<script src="https://unpkg.com/idraw"></script>
html
<!-- use global value -->
 <script>
   (function () {
     const { iDraw } = window.iDraw;
@@ -9,4 +9,4 @@ import{_ as s,o as i,c as a,a2 as t}from"./chunks/framework.PNNbM9mo.js";const g
       devicePixelRatio: 2
     });
   })();
-</script>

Download and Self Host

If you want to avoid using build tools but can't use CDN in production then you can download the relevant .js file and host it using your own web server. You can include it using a <script> tag, just like with the CDN approach.

The files can be browsed and download from a CDN such as unpkg .

`,16),e=[l];function h(p,k,r,o,d,c){return i(),a("div",null,e)}const u=s(n,[["render",h]]);export{g as __pageData,u as default}; +</script>

Download and Self Host

If you want to avoid using build tools but can't use CDN in production then you can download the relevant .js file and host it using your own web server. You can include it using a <script> tag, just like with the CDN approach.

The files can be browsed and download from a CDN such as unpkg .

`,16),e=[l];function h(p,k,r,o,d,c){return a(),i("div",null,e)}const u=s(n,[["render",h]]);export{g as __pageData,u as default}; diff --git a/docs/assets/en-US_guide_installation.md.LCva9Prm.lean.js b/docs/assets/en-US_guide_installation.md.DqTmXbVu.lean.js similarity index 54% rename from docs/assets/en-US_guide_installation.md.LCva9Prm.lean.js rename to docs/assets/en-US_guide_installation.md.DqTmXbVu.lean.js index 7680788..2e8a0cf 100644 --- a/docs/assets/en-US_guide_installation.md.LCva9Prm.lean.js +++ b/docs/assets/en-US_guide_installation.md.DqTmXbVu.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as t}from"./chunks/framework.PNNbM9mo.js";const g=JSON.parse('{"title":"Installation","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/installation.md","filePath":"en-US/guide/installation.md"}'),n={name:"en-US/guide/installation.md"},l=t("",16),e=[l];function h(p,k,r,o,d,c){return i(),a("div",null,e)}const u=s(n,[["render",h]]);export{g as __pageData,u as default}; +import{_ as s,c as i,o as a,a1 as t}from"./chunks/framework.DVk8Vg-1.js";const g=JSON.parse('{"title":"Installation","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/installation.md","filePath":"en-US/guide/installation.md"}'),n={name:"en-US/guide/installation.md"},l=t("",16),e=[l];function h(p,k,r,o,d,c){return a(),i("div",null,e)}const u=s(n,[["render",h]]);export{g as __pageData,u as default}; diff --git a/docs/assets/en-US_guide_introduction.md.oAtGMDCn.js b/docs/assets/en-US_guide_introduction.md.CNANOaDX.js similarity index 88% rename from docs/assets/en-US_guide_introduction.md.oAtGMDCn.js rename to docs/assets/en-US_guide_introduction.md.CNANOaDX.js index 23337cf..48a9ed3 100644 --- a/docs/assets/en-US_guide_introduction.md.oAtGMDCn.js +++ b/docs/assets/en-US_guide_introduction.md.CNANOaDX.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as n,m as t}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/introduction.md","filePath":"en-US/guide/introduction.md"}'),e={name:"en-US/guide/introduction.md"},h=n(`

Introduction

What is iDraw.js

iDraw.js is a JavaScript framework for drawing on web. It is based on the Canvas API in the browser.

It can be data-driven to render Image on Canvas in the browser. Furthermore, it can also visually handle the position, shape and layout of Drawing-Element.

iDraw.js is open source based on MIT License and it's code is stored in GitHub and NPM So that you can use iDraw.js for free in your own projects.

Getting started

sh
npm install idraw
js
import { iDraw } from 'idraw';
+import{_ as s,c as i,o as a,a1 as n,j as t}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/introduction.md","filePath":"en-US/guide/introduction.md"}'),e={name:"en-US/guide/introduction.md"},h=n(`

Introduction

What is iDraw.js

iDraw.js is a JavaScript framework for drawing on web. It is based on the Canvas API in the browser.

It can be data-driven to render Image on Canvas in the browser. Furthermore, it can also visually handle the position, shape and layout of Drawing-Element.

iDraw.js is open source based on MIT License and it's code is stored in GitHub and NPM So that you can use iDraw.js for free in your own projects.

Getting started

sh
npm install idraw
js
import { iDraw } from 'idraw';
 const data = {
   elements: [
     {
@@ -27,4 +27,4 @@ import{_ as s,o as i,c as a,a2 as n,m as t}from"./chunks/framework.PNNbM9mo.js";
   height: 400,
   devicePixelRatio: 2
 });
-idraw.setData(data);
`,8),l=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-text&header=false&sider=false&default-editor-split=50",width:"1000",height:"450",frameborder:"no",border:"0",style:{border:"1px solid #cecece"}},null,-1),p=[h,l];function k(r,d,E,o,c,g){return i(),a("div",null,p)}const C=s(e,[["render",k]]);export{F as __pageData,C as default}; +idraw.setData(data);
`,8),l=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-text&header=false&sider=false&default-editor-split=50",width:"1000",height:"450",frameborder:"no",border:"0",style:{border:"1px solid #cecece"}},null,-1),p=[h,l];function k(r,d,E,o,c,g){return a(),i("div",null,p)}const C=s(e,[["render",k]]);export{F as __pageData,C as default}; diff --git a/docs/assets/en-US_guide_introduction.md.oAtGMDCn.lean.js b/docs/assets/en-US_guide_introduction.md.CNANOaDX.lean.js similarity index 71% rename from docs/assets/en-US_guide_introduction.md.oAtGMDCn.lean.js rename to docs/assets/en-US_guide_introduction.md.CNANOaDX.lean.js index 7496031..32e291a 100644 --- a/docs/assets/en-US_guide_introduction.md.oAtGMDCn.lean.js +++ b/docs/assets/en-US_guide_introduction.md.CNANOaDX.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as n,m as t}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/introduction.md","filePath":"en-US/guide/introduction.md"}'),e={name:"en-US/guide/introduction.md"},h=n("",8),l=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-text&header=false&sider=false&default-editor-split=50",width:"1000",height:"450",frameborder:"no",border:"0",style:{border:"1px solid #cecece"}},null,-1),p=[h,l];function k(r,d,E,o,c,g){return i(),a("div",null,p)}const C=s(e,[["render",k]]);export{F as __pageData,C as default}; +import{_ as s,c as i,o as a,a1 as n,j as t}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/introduction.md","filePath":"en-US/guide/introduction.md"}'),e={name:"en-US/guide/introduction.md"},h=n("",8),l=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-text&header=false&sider=false&default-editor-split=50",width:"1000",height:"450",frameborder:"no",border:"0",style:{border:"1px solid #cecece"}},null,-1),p=[h,l];function k(r,d,E,o,c,g){return a(),i("div",null,p)}const C=s(e,[["render",k]]);export{F as __pageData,C as default}; diff --git a/docs/assets/en-US_guide_quickstart.md.j-SOaCU1.js b/docs/assets/en-US_guide_quickstart.md.D2jRO3nK.js similarity index 76% rename from docs/assets/en-US_guide_quickstart.md.j-SOaCU1.js rename to docs/assets/en-US_guide_quickstart.md.D2jRO3nK.js index 37d3367..2f1fb6a 100644 --- a/docs/assets/en-US_guide_quickstart.md.j-SOaCU1.js +++ b/docs/assets/en-US_guide_quickstart.md.D2jRO3nK.js @@ -1,4 +1,4 @@ -import{_ as a,o as n,c as t,m as s,a as i,a2 as l}from"./chunks/framework.PNNbM9mo.js";const _=JSON.parse('{"title":"Quick Start","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/quickstart.md","filePath":"en-US/guide/quickstart.md"}'),h={name:"en-US/guide/quickstart.md"},e=s("h1",{id:"quick-start",tabindex:"-1"},[i("Quick Start "),s("a",{class:"header-anchor",href:"#quick-start","aria-label":'Permalink to "Quick Start"'},"​")],-1),p=s("h2",{id:"the-first-example",tabindex:"-1"},[i("The First Example "),s("a",{class:"header-anchor",href:"#the-first-example","aria-label":'Permalink to "The First Example"'},"​")],-1),k=s("p",null,[i("It is a simple example of "),s("code",null,"iDraw.js"),i(" that drawing a rotating rectangle.")],-1),r=s("div",null,[s("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-rect&header=false&sider=false&default-editor-split=50",width:"800",height:"520",frameborder:"no",border:"0",style:{border:"1px solid #cecece"}})],-1),E=l(`

Install NPM Module

sh
npm install idraw

Mounted DOM

html
<div id="app"></div>

Use iDraw.js

js
import { iDraw } from 'idraw';
+import{_ as a,c as n,o as t,j as s,a as i,a1 as l}from"./chunks/framework.DVk8Vg-1.js";const _=JSON.parse('{"title":"Quick Start","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/quickstart.md","filePath":"en-US/guide/quickstart.md"}'),h={name:"en-US/guide/quickstart.md"},e=s("h1",{id:"quick-start",tabindex:"-1"},[i("Quick Start "),s("a",{class:"header-anchor",href:"#quick-start","aria-label":'Permalink to "Quick Start"'},"​")],-1),p=s("h2",{id:"the-first-example",tabindex:"-1"},[i("The First Example "),s("a",{class:"header-anchor",href:"#the-first-example","aria-label":'Permalink to "The First Example"'},"​")],-1),k=s("p",null,[i("It is a simple example of "),s("code",null,"iDraw.js"),i(" that drawing a rotating rectangle.")],-1),r=s("div",null,[s("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-rect&header=false&sider=false&default-editor-split=50",width:"800",height:"520",frameborder:"no",border:"0",style:{border:"1px solid #cecece"}})],-1),E=l(`

Install NPM Module

sh
npm install idraw

Mounted DOM

html
<div id="app"></div>

Use iDraw.js

js
import { iDraw } from 'idraw';
 const data = {
   elements: [
     {
@@ -27,4 +27,4 @@ import{_ as a,o as n,c as t,m as s,a as i,a2 as l}from"./chunks/framework.PNNbM9
 });
 
 // Setting data
-idraw.setData(data);

Now, we can start the tutorials for using iDraw.js. O(∩_∩)O~

`,7),d=[e,p,k,r,E];function c(g,o,y,F,u,C){return n(),t("div",null,d)}const b=a(h,[["render",c]]);export{_ as __pageData,b as default}; +idraw.setData(data);

Now, we can start the tutorials for using iDraw.js. O(∩_∩)O~

`,7),d=[e,p,k,r,E];function c(g,o,y,F,u,C){return t(),n("div",null,d)}const b=a(h,[["render",c]]);export{_ as __pageData,b as default}; diff --git a/docs/assets/en-US_guide_quickstart.md.j-SOaCU1.lean.js b/docs/assets/en-US_guide_quickstart.md.D2jRO3nK.lean.js similarity index 78% rename from docs/assets/en-US_guide_quickstart.md.j-SOaCU1.lean.js rename to docs/assets/en-US_guide_quickstart.md.D2jRO3nK.lean.js index a2eda36..28b83b8 100644 --- a/docs/assets/en-US_guide_quickstart.md.j-SOaCU1.lean.js +++ b/docs/assets/en-US_guide_quickstart.md.D2jRO3nK.lean.js @@ -1 +1 @@ -import{_ as a,o as n,c as t,m as s,a as i,a2 as l}from"./chunks/framework.PNNbM9mo.js";const _=JSON.parse('{"title":"Quick Start","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/quickstart.md","filePath":"en-US/guide/quickstart.md"}'),h={name:"en-US/guide/quickstart.md"},e=s("h1",{id:"quick-start",tabindex:"-1"},[i("Quick Start "),s("a",{class:"header-anchor",href:"#quick-start","aria-label":'Permalink to "Quick Start"'},"​")],-1),p=s("h2",{id:"the-first-example",tabindex:"-1"},[i("The First Example "),s("a",{class:"header-anchor",href:"#the-first-example","aria-label":'Permalink to "The First Example"'},"​")],-1),k=s("p",null,[i("It is a simple example of "),s("code",null,"iDraw.js"),i(" that drawing a rotating rectangle.")],-1),r=s("div",null,[s("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-rect&header=false&sider=false&default-editor-split=50",width:"800",height:"520",frameborder:"no",border:"0",style:{border:"1px solid #cecece"}})],-1),E=l("",7),d=[e,p,k,r,E];function c(g,o,y,F,u,C){return n(),t("div",null,d)}const b=a(h,[["render",c]]);export{_ as __pageData,b as default}; +import{_ as a,c as n,o as t,j as s,a as i,a1 as l}from"./chunks/framework.DVk8Vg-1.js";const _=JSON.parse('{"title":"Quick Start","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/quickstart.md","filePath":"en-US/guide/quickstart.md"}'),h={name:"en-US/guide/quickstart.md"},e=s("h1",{id:"quick-start",tabindex:"-1"},[i("Quick Start "),s("a",{class:"header-anchor",href:"#quick-start","aria-label":'Permalink to "Quick Start"'},"​")],-1),p=s("h2",{id:"the-first-example",tabindex:"-1"},[i("The First Example "),s("a",{class:"header-anchor",href:"#the-first-example","aria-label":'Permalink to "The First Example"'},"​")],-1),k=s("p",null,[i("It is a simple example of "),s("code",null,"iDraw.js"),i(" that drawing a rotating rectangle.")],-1),r=s("div",null,[s("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-rect&header=false&sider=false&default-editor-split=50",width:"800",height:"520",frameborder:"no",border:"0",style:{border:"1px solid #cecece"}})],-1),E=l("",7),d=[e,p,k,r,E];function c(g,o,y,F,u,C){return t(),n("div",null,d)}const b=a(h,[["render",c]]);export{_ as __pageData,b as default}; diff --git a/docs/assets/en-US_index.md.WN7UD5Qv.js b/docs/assets/en-US_index.md.HlhUVoF9.js similarity index 88% rename from docs/assets/en-US_index.md.WN7UD5Qv.js rename to docs/assets/en-US_index.md.HlhUVoF9.js index 249eb95..1ae31df 100644 --- a/docs/assets/en-US_index.md.WN7UD5Qv.js +++ b/docs/assets/en-US_index.md.HlhUVoF9.js @@ -1 +1 @@ -import{_ as e,o as t,c as a}from"./chunks/framework.PNNbM9mo.js";const p=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"iDraw.js","text":"Drawing easier on the web.","tagline":"A simple JavaScript framework for Drawing on the web.","actions":[{"theme":"brand","text":"Quick Started","link":"/en-US/guide/quickstart"},{"theme":"alt","text":"Playground","link":"https://idrawjs.com/playground/"},{"theme":"brand","text":"iDraw Studio","link":"https://idrawjs.com/studio/"}],"image":"/assets/idraw.png"},"features":[{"title":"High web compatibility","details":"All based on Canvas 2D API drawing"},{"title":"Extremely simple way to use","details":"There are no complicated operations, only a few simple APIs for drawing operations"},{"title":"Data-Driven drawing","details":"Rely on data to control drawing operations"}]},"headers":[],"relativePath":"en-US/index.md","filePath":"en-US/index.md"}'),i={name:"en-US/index.md"};function n(r,o,s,d,l,c){return t(),a("div")}const w=e(i,[["render",n]]);export{p as __pageData,w as default}; +import{_ as e,c as t,o as a}from"./chunks/framework.DVk8Vg-1.js";const p=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"iDraw.js","text":"Drawing easier on the web.","tagline":"A simple JavaScript framework for Drawing on the web.","actions":[{"theme":"brand","text":"Quick Started","link":"/en-US/guide/quickstart"},{"theme":"alt","text":"Playground","link":"https://idrawjs.com/playground/"},{"theme":"brand","text":"iDraw Studio","link":"https://idrawjs.com/studio/"}],"image":"/assets/idraw.png"},"features":[{"title":"High web compatibility","details":"All based on Canvas 2D API drawing"},{"title":"Extremely simple way to use","details":"There are no complicated operations, only a few simple APIs for drawing operations"},{"title":"Data-Driven drawing","details":"Rely on data to control drawing operations"}]},"headers":[],"relativePath":"en-US/index.md","filePath":"en-US/index.md"}'),i={name:"en-US/index.md"};function n(r,o,s,d,l,c){return a(),t("div")}const w=e(i,[["render",n]]);export{p as __pageData,w as default}; diff --git a/docs/assets/en-US_index.md.WN7UD5Qv.lean.js b/docs/assets/en-US_index.md.HlhUVoF9.lean.js similarity index 88% rename from docs/assets/en-US_index.md.WN7UD5Qv.lean.js rename to docs/assets/en-US_index.md.HlhUVoF9.lean.js index 249eb95..1ae31df 100644 --- a/docs/assets/en-US_index.md.WN7UD5Qv.lean.js +++ b/docs/assets/en-US_index.md.HlhUVoF9.lean.js @@ -1 +1 @@ -import{_ as e,o as t,c as a}from"./chunks/framework.PNNbM9mo.js";const p=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"iDraw.js","text":"Drawing easier on the web.","tagline":"A simple JavaScript framework for Drawing on the web.","actions":[{"theme":"brand","text":"Quick Started","link":"/en-US/guide/quickstart"},{"theme":"alt","text":"Playground","link":"https://idrawjs.com/playground/"},{"theme":"brand","text":"iDraw Studio","link":"https://idrawjs.com/studio/"}],"image":"/assets/idraw.png"},"features":[{"title":"High web compatibility","details":"All based on Canvas 2D API drawing"},{"title":"Extremely simple way to use","details":"There are no complicated operations, only a few simple APIs for drawing operations"},{"title":"Data-Driven drawing","details":"Rely on data to control drawing operations"}]},"headers":[],"relativePath":"en-US/index.md","filePath":"en-US/index.md"}'),i={name:"en-US/index.md"};function n(r,o,s,d,l,c){return t(),a("div")}const w=e(i,[["render",n]]);export{p as __pageData,w as default}; +import{_ as e,c as t,o as a}from"./chunks/framework.DVk8Vg-1.js";const p=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"iDraw.js","text":"Drawing easier on the web.","tagline":"A simple JavaScript framework for Drawing on the web.","actions":[{"theme":"brand","text":"Quick Started","link":"/en-US/guide/quickstart"},{"theme":"alt","text":"Playground","link":"https://idrawjs.com/playground/"},{"theme":"brand","text":"iDraw Studio","link":"https://idrawjs.com/studio/"}],"image":"/assets/idraw.png"},"features":[{"title":"High web compatibility","details":"All based on Canvas 2D API drawing"},{"title":"Extremely simple way to use","details":"There are no complicated operations, only a few simple APIs for drawing operations"},{"title":"Data-Driven drawing","details":"Rely on data to control drawing operations"}]},"headers":[],"relativePath":"en-US/index.md","filePath":"en-US/index.md"}'),i={name:"en-US/index.md"};function n(r,o,s,d,l,c){return a(),t("div")}const w=e(i,[["render",n]]);export{p as __pageData,w as default}; diff --git a/docs/assets/en-US_sponsor.md.CpYJzvDl.js b/docs/assets/en-US_sponsor.md.CpYJzvDl.js new file mode 100644 index 0000000..4434b7f --- /dev/null +++ b/docs/assets/en-US_sponsor.md.CpYJzvDl.js @@ -0,0 +1 @@ +import{_ as o,c as r,o as n,a1 as t,j as e}from"./chunks/framework.DVk8Vg-1.js";const x=JSON.parse('{"title":"Become an iDraw.js Sponsor","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/sponsor.md","filePath":"en-US/sponsor.md"}'),a={name:"en-US/sponsor.md"},i=t('

Become an iDraw.js Sponsor

iDraw.js is an MIT licensed open source project and completely free to use. The tremendous amount of effort needed to maintain this framework and develop new features for the project is only made sustainable thanks to the generous financial backing of our sponsors.

How to Sponsor

Sponsorships can be done via

Both monthly-recurring sponsorships and one-time donations are accepted. Recurring sponsorships are entitled to logo placements as specified in Sponsorship Tiers.

',6),s=e("div",{style:{margin:"10px"}},[e("a",{href:"https://opencollective.com/idrawjs",target:"_blank",style:{"box-sizing":"border-box",display:"inline-flex","justify-content":"center","align-items":"center","font-size":"16px","line-height":"1.5",height:"40px",padding:"7px 15px","border-radius":"8px","font-weight":"400",border:"1px solid var(--vp-c-divider)","text-decoration":"auto"}},[e("span",{style:{display:"inline-flex","font-size":"20px","margin-right":"8px"}},[e("svg",{viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",fill:"currentColor"},[e("path",{d:"M831.68 524.48c0 59.968-19.968 122.368-49.92 172.352l127.36 127.36c62.464-84.928 102.4-189.824 102.4-299.712 0-114.88-39.936-219.776-99.904-304.64l-132.352 129.792c29.952 49.984 49.92 107.456 49.92 174.848h2.56z",fill:"currentColor",fillOpacity:".4"}),e("path",{d:"M512 841.664a319.68 319.68 0 1 1 0-639.36c64.96 0 124.864 17.472 174.848 52.48l124.8-129.92a499.52 499.52 0 1 0 2.56 796.736l-124.864-129.92a324.608 324.608 0 0 1-174.848 49.984H512z",fill:"currentColor"})])]),e("span",{style:{display:"inline-flex"}},"Open Collective")])],-1),l=t('',2),C=[i,s,l];function p(h,c,d,f,g,m){return n(),r("div",null,C)}const _=o(a,[["render",p]]);export{x as __pageData,_ as default}; diff --git a/docs/assets/en-US_sponsor.md.CpYJzvDl.lean.js b/docs/assets/en-US_sponsor.md.CpYJzvDl.lean.js new file mode 100644 index 0000000..302d77a --- /dev/null +++ b/docs/assets/en-US_sponsor.md.CpYJzvDl.lean.js @@ -0,0 +1 @@ +import{_ as o,c as r,o as n,a1 as t,j as e}from"./chunks/framework.DVk8Vg-1.js";const x=JSON.parse('{"title":"Become an iDraw.js Sponsor","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/sponsor.md","filePath":"en-US/sponsor.md"}'),a={name:"en-US/sponsor.md"},i=t("",6),s=e("div",{style:{margin:"10px"}},[e("a",{href:"https://opencollective.com/idrawjs",target:"_blank",style:{"box-sizing":"border-box",display:"inline-flex","justify-content":"center","align-items":"center","font-size":"16px","line-height":"1.5",height:"40px",padding:"7px 15px","border-radius":"8px","font-weight":"400",border:"1px solid var(--vp-c-divider)","text-decoration":"auto"}},[e("span",{style:{display:"inline-flex","font-size":"20px","margin-right":"8px"}},[e("svg",{viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",fill:"currentColor"},[e("path",{d:"M831.68 524.48c0 59.968-19.968 122.368-49.92 172.352l127.36 127.36c62.464-84.928 102.4-189.824 102.4-299.712 0-114.88-39.936-219.776-99.904-304.64l-132.352 129.792c29.952 49.984 49.92 107.456 49.92 174.848h2.56z",fill:"currentColor",fillOpacity:".4"}),e("path",{d:"M512 841.664a319.68 319.68 0 1 1 0-639.36c64.96 0 124.864 17.472 174.848 52.48l124.8-129.92a499.52 499.52 0 1 0 2.56 796.736l-124.864-129.92a324.608 324.608 0 0 1-174.848 49.984H512z",fill:"currentColor"})])]),e("span",{style:{display:"inline-flex"}},"Open Collective")])],-1),l=t("",2),C=[i,s,l];function p(h,c,d,f,g,m){return n(),r("div",null,C)}const _=o(a,[["render",p]]);export{x as __pageData,_ as default}; diff --git a/docs/assets/en-US_sponsor.md.OjMNo1xz.js b/docs/assets/en-US_sponsor.md.OjMNo1xz.js deleted file mode 100644 index 3f49b60..0000000 --- a/docs/assets/en-US_sponsor.md.OjMNo1xz.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,o,c as s,a2 as a}from"./chunks/framework.PNNbM9mo.js";const f=JSON.parse('{"title":"Become an iDraw.js Sponsor","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/sponsor.md","filePath":"en-US/sponsor.md"}'),r={name:"en-US/sponsor.md"},n=a('

Become an iDraw.js Sponsor

iDraw.js is an MIT licensed open source project and completely free to use. The tremendous amount of effort needed to maintain this framework and develop new features for the project is only made sustainable thanks to the generous financial backing of our sponsors.

How to Sponsor

Sponsorships can be done via OpenCollective (https://opencollective.com/idrawjs). Both monthly-recurring sponsorships and one-time donations are accepted. Recurring sponsorships are entitled to logo placements as specified in Sponsorship Tiers.

',4),t=[n];function i(c,p,l,d,h,_){return o(),s("div",null,t)}const u=e(r,[["render",i]]);export{f as __pageData,u as default}; diff --git a/docs/assets/en-US_sponsor.md.OjMNo1xz.lean.js b/docs/assets/en-US_sponsor.md.OjMNo1xz.lean.js deleted file mode 100644 index 66f0a18..0000000 --- a/docs/assets/en-US_sponsor.md.OjMNo1xz.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,o,c as s,a2 as a}from"./chunks/framework.PNNbM9mo.js";const f=JSON.parse('{"title":"Become an iDraw.js Sponsor","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/sponsor.md","filePath":"en-US/sponsor.md"}'),r={name:"en-US/sponsor.md"},n=a("",4),t=[n];function i(c,p,l,d,h,_){return o(),s("div",null,t)}const u=e(r,[["render",i]]);export{f as __pageData,u as default}; diff --git a/docs/assets/index.md.bWcwn8Hi.js b/docs/assets/index.md.omXNPcHS.js similarity index 81% rename from docs/assets/index.md.bWcwn8Hi.js rename to docs/assets/index.md.omXNPcHS.js index 45629d8..db55976 100644 --- a/docs/assets/index.md.bWcwn8Hi.js +++ b/docs/assets/index.md.omXNPcHS.js @@ -1 +1 @@ -import{_ as e,o as t,c as a}from"./chunks/framework.PNNbM9mo.js";const p=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"iDraw.js","text":"Drawing easier on the web.","tagline":"A simple JavaScript framework for Drawing on the web.","actions":[{"theme":"brand","text":"Quick Started","link":"/en-US/guide/quickstart"},{"theme":"brand","text":"中文文档","link":"/zh-CN/index"},{"theme":"alt","text":"iDraw Studio","link":"https://idrawjs.com/studio/"}],"image":"/assets/idraw.png"},"features":[{"title":"High web compatibility","details":"All based on Canvas 2D API drawing"},{"title":"Extremely simple way to use","details":"There are no complicated operations, only a few simple APIs for drawing operations"},{"title":"Data-Driven drawing","details":"Rely on data to control drawing operations"}]},"headers":[],"relativePath":"index.md","filePath":"index.md"}'),i={name:"index.md"};function n(r,o,s,d,l,c){return t(),a("div")}const w=e(i,[["render",n]]);export{p as __pageData,w as default}; +import{_ as e,c as t,o as a}from"./chunks/framework.DVk8Vg-1.js";const p=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"iDraw.js","text":"Drawing easier on the web.","tagline":"A simple JavaScript framework for Drawing on the web.","actions":[{"theme":"brand","text":"Quick Started","link":"/en-US/guide/quickstart"},{"theme":"brand","text":"中文文档","link":"/zh-CN/index"},{"theme":"alt","text":"iDraw Studio","link":"https://idrawjs.com/studio/"}],"image":"/assets/idraw.png"},"features":[{"title":"High web compatibility","details":"All based on Canvas 2D API drawing"},{"title":"Extremely simple way to use","details":"There are no complicated operations, only a few simple APIs for drawing operations"},{"title":"Data-Driven drawing","details":"Rely on data to control drawing operations"}]},"headers":[],"relativePath":"index.md","filePath":"index.md"}'),i={name:"index.md"};function n(r,o,s,d,l,c){return a(),t("div")}const w=e(i,[["render",n]]);export{p as __pageData,w as default}; diff --git a/docs/assets/index.md.bWcwn8Hi.lean.js b/docs/assets/index.md.omXNPcHS.lean.js similarity index 81% rename from docs/assets/index.md.bWcwn8Hi.lean.js rename to docs/assets/index.md.omXNPcHS.lean.js index 45629d8..db55976 100644 --- a/docs/assets/index.md.bWcwn8Hi.lean.js +++ b/docs/assets/index.md.omXNPcHS.lean.js @@ -1 +1 @@ -import{_ as e,o as t,c as a}from"./chunks/framework.PNNbM9mo.js";const p=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"iDraw.js","text":"Drawing easier on the web.","tagline":"A simple JavaScript framework for Drawing on the web.","actions":[{"theme":"brand","text":"Quick Started","link":"/en-US/guide/quickstart"},{"theme":"brand","text":"中文文档","link":"/zh-CN/index"},{"theme":"alt","text":"iDraw Studio","link":"https://idrawjs.com/studio/"}],"image":"/assets/idraw.png"},"features":[{"title":"High web compatibility","details":"All based on Canvas 2D API drawing"},{"title":"Extremely simple way to use","details":"There are no complicated operations, only a few simple APIs for drawing operations"},{"title":"Data-Driven drawing","details":"Rely on data to control drawing operations"}]},"headers":[],"relativePath":"index.md","filePath":"index.md"}'),i={name:"index.md"};function n(r,o,s,d,l,c){return t(),a("div")}const w=e(i,[["render",n]]);export{p as __pageData,w as default}; +import{_ as e,c as t,o as a}from"./chunks/framework.DVk8Vg-1.js";const p=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"iDraw.js","text":"Drawing easier on the web.","tagline":"A simple JavaScript framework for Drawing on the web.","actions":[{"theme":"brand","text":"Quick Started","link":"/en-US/guide/quickstart"},{"theme":"brand","text":"中文文档","link":"/zh-CN/index"},{"theme":"alt","text":"iDraw Studio","link":"https://idrawjs.com/studio/"}],"image":"/assets/idraw.png"},"features":[{"title":"High web compatibility","details":"All based on Canvas 2D API drawing"},{"title":"Extremely simple way to use","details":"There are no complicated operations, only a few simple APIs for drawing operations"},{"title":"Data-Driven drawing","details":"Rely on data to control drawing operations"}]},"headers":[],"relativePath":"index.md","filePath":"index.md"}'),i={name:"index.md"};function n(r,o,s,d,l,c){return a(),t("div")}const w=e(i,[["render",n]]);export{p as __pageData,w as default}; diff --git a/docs/assets/inter-italic-cyrillic-ext.OVycGSDq.woff2 b/docs/assets/inter-italic-cyrillic-ext.OVycGSDq.woff2 deleted file mode 100644 index 2a68729..0000000 Binary files a/docs/assets/inter-italic-cyrillic-ext.OVycGSDq.woff2 and /dev/null differ diff --git a/docs/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 b/docs/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 new file mode 100644 index 0000000..b6b603d Binary files /dev/null and b/docs/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 differ diff --git a/docs/assets/inter-italic-cyrillic.-nLMcIwj.woff2 b/docs/assets/inter-italic-cyrillic.-nLMcIwj.woff2 deleted file mode 100644 index f640351..0000000 Binary files a/docs/assets/inter-italic-cyrillic.-nLMcIwj.woff2 and /dev/null differ diff --git a/docs/assets/inter-italic-cyrillic.By2_1cv3.woff2 b/docs/assets/inter-italic-cyrillic.By2_1cv3.woff2 new file mode 100644 index 0000000..def40a4 Binary files /dev/null and b/docs/assets/inter-italic-cyrillic.By2_1cv3.woff2 differ diff --git a/docs/assets/inter-italic-greek-ext.1u6EdAuj.woff2 b/docs/assets/inter-italic-greek-ext.1u6EdAuj.woff2 new file mode 100644 index 0000000..e070c3d Binary files /dev/null and b/docs/assets/inter-italic-greek-ext.1u6EdAuj.woff2 differ diff --git a/docs/assets/inter-italic-greek-ext.hznxWNZO.woff2 b/docs/assets/inter-italic-greek-ext.hznxWNZO.woff2 deleted file mode 100644 index 0021896..0000000 Binary files a/docs/assets/inter-italic-greek-ext.hznxWNZO.woff2 and /dev/null differ diff --git a/docs/assets/inter-italic-greek.DJ8dCoTZ.woff2 b/docs/assets/inter-italic-greek.DJ8dCoTZ.woff2 new file mode 100644 index 0000000..a3c16ca Binary files /dev/null and b/docs/assets/inter-italic-greek.DJ8dCoTZ.woff2 differ diff --git a/docs/assets/inter-italic-greek.PSfer2Kc.woff2 b/docs/assets/inter-italic-greek.PSfer2Kc.woff2 deleted file mode 100644 index 71c265f..0000000 Binary files a/docs/assets/inter-italic-greek.PSfer2Kc.woff2 and /dev/null differ diff --git a/docs/assets/inter-italic-latin-ext.CN1xVJS-.woff2 b/docs/assets/inter-italic-latin-ext.CN1xVJS-.woff2 new file mode 100644 index 0000000..2210a89 Binary files /dev/null and b/docs/assets/inter-italic-latin-ext.CN1xVJS-.woff2 differ diff --git a/docs/assets/inter-italic-latin-ext.RnFly65-.woff2 b/docs/assets/inter-italic-latin-ext.RnFly65-.woff2 deleted file mode 100644 index 9c1b944..0000000 Binary files a/docs/assets/inter-italic-latin-ext.RnFly65-.woff2 and /dev/null differ diff --git a/docs/assets/inter-italic-latin.27E69YJn.woff2 b/docs/assets/inter-italic-latin.27E69YJn.woff2 deleted file mode 100644 index 01fcf20..0000000 Binary files a/docs/assets/inter-italic-latin.27E69YJn.woff2 and /dev/null differ diff --git a/docs/assets/inter-italic-latin.C2AdPX0b.woff2 b/docs/assets/inter-italic-latin.C2AdPX0b.woff2 new file mode 100644 index 0000000..790d62d Binary files /dev/null and b/docs/assets/inter-italic-latin.C2AdPX0b.woff2 differ diff --git a/docs/assets/inter-italic-vietnamese.BSbpV94h.woff2 b/docs/assets/inter-italic-vietnamese.BSbpV94h.woff2 new file mode 100644 index 0000000..1eec077 Binary files /dev/null and b/docs/assets/inter-italic-vietnamese.BSbpV94h.woff2 differ diff --git a/docs/assets/inter-italic-vietnamese.xzQHe1q1.woff2 b/docs/assets/inter-italic-vietnamese.xzQHe1q1.woff2 deleted file mode 100644 index e4f788e..0000000 Binary files a/docs/assets/inter-italic-vietnamese.xzQHe1q1.woff2 and /dev/null differ diff --git a/docs/assets/inter-roman-cyrillic-ext.8T9wMG5w.woff2 b/docs/assets/inter-roman-cyrillic-ext.8T9wMG5w.woff2 deleted file mode 100644 index 28593cc..0000000 Binary files a/docs/assets/inter-roman-cyrillic-ext.8T9wMG5w.woff2 and /dev/null differ diff --git a/docs/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 b/docs/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 new file mode 100644 index 0000000..2cfe615 Binary files /dev/null and b/docs/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 differ diff --git a/docs/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 b/docs/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 new file mode 100644 index 0000000..e3886dd Binary files /dev/null and b/docs/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 differ diff --git a/docs/assets/inter-roman-cyrillic.jIZ9REo5.woff2 b/docs/assets/inter-roman-cyrillic.jIZ9REo5.woff2 deleted file mode 100644 index a20adc1..0000000 Binary files a/docs/assets/inter-roman-cyrillic.jIZ9REo5.woff2 and /dev/null differ diff --git a/docs/assets/inter-roman-greek-ext.9JiNzaSO.woff2 b/docs/assets/inter-roman-greek-ext.9JiNzaSO.woff2 deleted file mode 100644 index e3b0be7..0000000 Binary files a/docs/assets/inter-roman-greek-ext.9JiNzaSO.woff2 and /dev/null differ diff --git a/docs/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 b/docs/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 new file mode 100644 index 0000000..36d6748 Binary files /dev/null and b/docs/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 differ diff --git a/docs/assets/inter-roman-greek.BBVDIX6e.woff2 b/docs/assets/inter-roman-greek.BBVDIX6e.woff2 new file mode 100644 index 0000000..2bed1e8 Binary files /dev/null and b/docs/assets/inter-roman-greek.BBVDIX6e.woff2 differ diff --git a/docs/assets/inter-roman-greek.Cb5wWeGA.woff2 b/docs/assets/inter-roman-greek.Cb5wWeGA.woff2 deleted file mode 100644 index f790e04..0000000 Binary files a/docs/assets/inter-roman-greek.Cb5wWeGA.woff2 and /dev/null differ diff --git a/docs/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 b/docs/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 new file mode 100644 index 0000000..9a8d1e2 Binary files /dev/null and b/docs/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 differ diff --git a/docs/assets/inter-roman-latin-ext.GZWE-KO4.woff2 b/docs/assets/inter-roman-latin-ext.GZWE-KO4.woff2 deleted file mode 100644 index 715bd90..0000000 Binary files a/docs/assets/inter-roman-latin-ext.GZWE-KO4.woff2 and /dev/null differ diff --git a/docs/assets/inter-roman-latin.Di8DUHzh.woff2 b/docs/assets/inter-roman-latin.Di8DUHzh.woff2 new file mode 100644 index 0000000..07d3c53 Binary files /dev/null and b/docs/assets/inter-roman-latin.Di8DUHzh.woff2 differ diff --git a/docs/assets/inter-roman-latin.bvIUbFQP.woff2 b/docs/assets/inter-roman-latin.bvIUbFQP.woff2 deleted file mode 100644 index a540b7a..0000000 Binary files a/docs/assets/inter-roman-latin.bvIUbFQP.woff2 and /dev/null differ diff --git a/docs/assets/inter-roman-vietnamese.BjW4sHH5.woff2 b/docs/assets/inter-roman-vietnamese.BjW4sHH5.woff2 new file mode 100644 index 0000000..57bdc22 Binary files /dev/null and b/docs/assets/inter-roman-vietnamese.BjW4sHH5.woff2 differ diff --git a/docs/assets/inter-roman-vietnamese.paY3CzEB.woff2 b/docs/assets/inter-roman-vietnamese.paY3CzEB.woff2 deleted file mode 100644 index 5a9f9cb..0000000 Binary files a/docs/assets/inter-roman-vietnamese.paY3CzEB.woff2 and /dev/null differ diff --git a/docs/assets/style.D3V6SWbV.css b/docs/assets/style.D3V6SWbV.css new file mode 100644 index 0000000..0ce4cd4 --- /dev/null +++ b/docs/assets/style.D3V6SWbV.css @@ -0,0 +1 @@ +@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/docs/assets/inter-roman-cyrillic-ext.BBPuwvHQ.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;font-style:normal;font-weight:100 900;font-display:swap;src:url(/docs/assets/inter-roman-cyrillic.C5lxZ8CY.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/docs/assets/inter-roman-greek-ext.CqjqNYQ-.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/docs/assets/inter-roman-greek.BBVDIX6e.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/docs/assets/inter-roman-vietnamese.BjW4sHH5.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/docs/assets/inter-roman-latin-ext.4ZJIpNVo.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/docs/assets/inter-roman-latin.Di8DUHzh.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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;font-style:italic;font-weight:100 900;font-display:swap;src:url(/docs/assets/inter-italic-cyrillic-ext.r48I6akx.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;font-style:italic;font-weight:100 900;font-display:swap;src:url(/docs/assets/inter-italic-cyrillic.By2_1cv3.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/docs/assets/inter-italic-greek-ext.1u6EdAuj.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/docs/assets/inter-italic-greek.DJ8dCoTZ.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/docs/assets/inter-italic-vietnamese.BSbpV94h.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/docs/assets/inter-italic-latin-ext.CN1xVJS-.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/docs/assets/inter-italic-latin.C2AdPX0b.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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:Punctuation SC;font-weight:400;src:local("PingFang SC Regular"),local("Noto Sans CJK SC"),local("Microsoft YaHei");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:500;src:local("PingFang SC Medium"),local("Noto Sans CJK SC"),local("Microsoft YaHei");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:600;src:local("PingFang SC Semibold"),local("Noto Sans CJK SC Bold"),local("Microsoft YaHei Bold");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:700;src:local("PingFang SC Semibold"),local("Noto Sans CJK SC Bold"),local("Microsoft YaHei Bold");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}:root{--vp-c-white: #ffffff;--vp-c-black: #000000;--vp-c-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white)}.dark{--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black)}:root{--vp-c-gray-1: #dddde3;--vp-c-gray-2: #e4e4e9;--vp-c-gray-3: #ebebef;--vp-c-gray-soft: rgba(142, 150, 170, .14);--vp-c-indigo-1: #3451b2;--vp-c-indigo-2: #3a5ccc;--vp-c-indigo-3: #5672cd;--vp-c-indigo-soft: rgba(100, 108, 255, .14);--vp-c-purple-1: #6f42c1;--vp-c-purple-2: #7e4cc9;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .14);--vp-c-green-1: #18794e;--vp-c-green-2: #299764;--vp-c-green-3: #30a46c;--vp-c-green-soft: rgba(16, 185, 129, .14);--vp-c-yellow-1: #915930;--vp-c-yellow-2: #946300;--vp-c-yellow-3: #9f6a00;--vp-c-yellow-soft: rgba(234, 179, 8, .14);--vp-c-red-1: #b8272c;--vp-c-red-2: #d5393e;--vp-c-red-3: #e0575b;--vp-c-red-soft: rgba(244, 63, 94, .14);--vp-c-sponsor: #db2777}.dark{--vp-c-gray-1: #515c67;--vp-c-gray-2: #414853;--vp-c-gray-3: #32363f;--vp-c-gray-soft: rgba(101, 117, 133, .16);--vp-c-indigo-1: #a8b1ff;--vp-c-indigo-2: #5c73e7;--vp-c-indigo-3: #3e63dd;--vp-c-indigo-soft: rgba(100, 108, 255, .16);--vp-c-purple-1: #c8abfa;--vp-c-purple-2: #a879e6;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .16);--vp-c-green-1: #3dd68c;--vp-c-green-2: #30a46c;--vp-c-green-3: #298459;--vp-c-green-soft: rgba(16, 185, 129, .16);--vp-c-yellow-1: #f9b44e;--vp-c-yellow-2: #da8b17;--vp-c-yellow-3: #a46a0a;--vp-c-yellow-soft: rgba(234, 179, 8, .16);--vp-c-red-1: #f66f81;--vp-c-red-2: #f14158;--vp-c-red-3: #b62a3c;--vp-c-red-soft: rgba(244, 63, 94, .16)}:root{--vp-c-bg: #ffffff;--vp-c-bg-alt: #f6f6f7;--vp-c-bg-elv: #ffffff;--vp-c-bg-soft: #f6f6f7}.dark{--vp-c-bg: #1b1b1f;--vp-c-bg-alt: #161618;--vp-c-bg-elv: #202127;--vp-c-bg-soft: #202127}:root{--vp-c-border: #c2c2c4;--vp-c-divider: #e2e2e3;--vp-c-gutter: #e2e2e3}.dark{--vp-c-border: #3c3f44;--vp-c-divider: #2e2e32;--vp-c-gutter: #000000}:root{--vp-c-text-1: rgba(60, 60, 67);--vp-c-text-2: rgba(60, 60, 67, .78);--vp-c-text-3: rgba(60, 60, 67, .56)}.dark{--vp-c-text-1: rgba(255, 255, 245, .86);--vp-c-text-2: rgba(235, 235, 245, .6);--vp-c-text-3: rgba(235, 235, 245, .38)}:root{--vp-c-default-1: var(--vp-c-gray-1);--vp-c-default-2: var(--vp-c-gray-2);--vp-c-default-3: var(--vp-c-gray-3);--vp-c-default-soft: var(--vp-c-gray-soft);--vp-c-brand-1: var(--vp-c-indigo-1);--vp-c-brand-2: var(--vp-c-indigo-2);--vp-c-brand-3: var(--vp-c-indigo-3);--vp-c-brand-soft: var(--vp-c-indigo-soft);--vp-c-brand: var(--vp-c-brand-1);--vp-c-tip-1: var(--vp-c-brand-1);--vp-c-tip-2: var(--vp-c-brand-2);--vp-c-tip-3: var(--vp-c-brand-3);--vp-c-tip-soft: var(--vp-c-brand-soft);--vp-c-note-1: var(--vp-c-brand-1);--vp-c-note-2: var(--vp-c-brand-2);--vp-c-note-3: var(--vp-c-brand-3);--vp-c-note-soft: var(--vp-c-brand-soft);--vp-c-success-1: var(--vp-c-green-1);--vp-c-success-2: var(--vp-c-green-2);--vp-c-success-3: var(--vp-c-green-3);--vp-c-success-soft: var(--vp-c-green-soft);--vp-c-important-1: var(--vp-c-purple-1);--vp-c-important-2: var(--vp-c-purple-2);--vp-c-important-3: var(--vp-c-purple-3);--vp-c-important-soft: var(--vp-c-purple-soft);--vp-c-warning-1: var(--vp-c-yellow-1);--vp-c-warning-2: var(--vp-c-yellow-2);--vp-c-warning-3: var(--vp-c-yellow-3);--vp-c-warning-soft: var(--vp-c-yellow-soft);--vp-c-danger-1: var(--vp-c-red-1);--vp-c-danger-2: var(--vp-c-red-2);--vp-c-danger-3: var(--vp-c-red-3);--vp-c-danger-soft: var(--vp-c-red-soft);--vp-c-caution-1: var(--vp-c-red-1);--vp-c-caution-2: var(--vp-c-red-2);--vp-c-caution-3: var(--vp-c-red-3);--vp-c-caution-soft: var(--vp-c-red-soft)}:root{--vp-font-family-base: "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: ui-monospace, "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;font-optical-sizing:auto}:root:where(:lang(zh)){--vp-font-family-base: "Punctuation SC", "Inter", ui-sans-serif, system-ui, "PingFang SC", "Noto Sans CJK SC", "Noto Sans SC", "Heiti SC", "Microsoft YaHei", "DengXian", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"}: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-footer: 10;--vp-z-index-local-nav: 20;--vp-z-index-nav: 30;--vp-z-index-layout-top: 40;--vp-z-index-backdrop: 50;--vp-z-index-sidebar: 60}@media (min-width: 960px){:root{--vp-z-index-sidebar: 25}}:root{--vp-layout-max-width: 1440px}:root{--vp-header-anchor-symbol: "#"}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-code-color: var(--vp-c-brand-1);--vp-code-link-color: var(--vp-c-brand-1);--vp-code-link-hover-color: var(--vp-c-brand-2);--vp-code-bg: var(--vp-c-default-soft);--vp-code-block-color: var(--vp-c-text-2);--vp-code-block-bg: var(--vp-c-bg-alt);--vp-code-block-divider-color: var(--vp-c-gutter);--vp-code-lang-color: var(--vp-c-text-3);--vp-code-line-highlight-color: var(--vp-c-default-soft);--vp-code-line-number-color: var(--vp-c-text-3);--vp-code-line-diff-add-color: var(--vp-c-success-soft);--vp-code-line-diff-add-symbol-color: var(--vp-c-success-1);--vp-code-line-diff-remove-color: var(--vp-c-danger-soft);--vp-code-line-diff-remove-symbol-color: var(--vp-c-danger-1);--vp-code-line-warning-color: var(--vp-c-warning-soft);--vp-code-line-error-color: var(--vp-c-danger-soft);--vp-code-copy-code-border-color: var(--vp-c-divider);--vp-code-copy-code-bg: var(--vp-c-bg-soft);--vp-code-copy-code-hover-border-color: var(--vp-c-divider);--vp-code-copy-code-hover-bg: var(--vp-c-bg);--vp-code-copy-code-active-text: var(--vp-c-text-2);--vp-code-copy-copied-text-content: "Copied";--vp-code-tab-divider: var(--vp-code-block-divider-color);--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);--vp-code-tab-active-bar-color: var(--vp-c-brand-1)}:root{--vp-button-brand-border: transparent;--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand-3);--vp-button-brand-hover-border: transparent;--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-2);--vp-button-brand-active-border: transparent;--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-1);--vp-button-alt-border: transparent;--vp-button-alt-text: var(--vp-c-text-1);--vp-button-alt-bg: var(--vp-c-default-3);--vp-button-alt-hover-border: transparent;--vp-button-alt-hover-text: var(--vp-c-text-1);--vp-button-alt-hover-bg: var(--vp-c-default-2);--vp-button-alt-active-border: transparent;--vp-button-alt-active-text: var(--vp-c-text-1);--vp-button-alt-active-bg: var(--vp-c-default-1);--vp-button-sponsor-border: var(--vp-c-text-2);--vp-button-sponsor-text: var(--vp-c-text-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}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: transparent;--vp-custom-block-info-text: var(--vp-c-text-1);--vp-custom-block-info-bg: var(--vp-c-default-soft);--vp-custom-block-info-code-bg: var(--vp-c-default-soft);--vp-custom-block-note-border: transparent;--vp-custom-block-note-text: var(--vp-c-text-1);--vp-custom-block-note-bg: var(--vp-c-default-soft);--vp-custom-block-note-code-bg: var(--vp-c-default-soft);--vp-custom-block-tip-border: transparent;--vp-custom-block-tip-text: var(--vp-c-text-1);--vp-custom-block-tip-bg: var(--vp-c-tip-soft);--vp-custom-block-tip-code-bg: var(--vp-c-tip-soft);--vp-custom-block-important-border: transparent;--vp-custom-block-important-text: var(--vp-c-text-1);--vp-custom-block-important-bg: var(--vp-c-important-soft);--vp-custom-block-important-code-bg: var(--vp-c-important-soft);--vp-custom-block-warning-border: transparent;--vp-custom-block-warning-text: var(--vp-c-text-1);--vp-custom-block-warning-bg: var(--vp-c-warning-soft);--vp-custom-block-warning-code-bg: var(--vp-c-warning-soft);--vp-custom-block-danger-border: transparent;--vp-custom-block-danger-text: var(--vp-c-text-1);--vp-custom-block-danger-bg: var(--vp-c-danger-soft);--vp-custom-block-danger-code-bg: var(--vp-c-danger-soft);--vp-custom-block-caution-border: transparent;--vp-custom-block-caution-text: var(--vp-c-text-1);--vp-custom-block-caution-bg: var(--vp-c-caution-soft);--vp-custom-block-caution-code-bg: var(--vp-c-caution-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-info-code-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-switch-bg-color: var(--vp-c-default-soft)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg);--vp-nav-logo-height: 24px}.hide-nav{--vp-nav-height: 0px}.hide-nav .VPSidebar{--vp-nav-height: 22px}: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-1);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: transparent;--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-default-soft);--vp-badge-tip-border: transparent;--vp-badge-tip-text: var(--vp-c-tip-1);--vp-badge-tip-bg: var(--vp-c-tip-soft);--vp-badge-warning-border: transparent;--vp-badge-warning-text: var(--vp-c-warning-1);--vp-badge-warning-bg: var(--vp-c-warning-soft);--vp-badge-danger-border: transparent;--vp-badge-danger-text: var(--vp-c-danger-1);--vp-badge-danger-bg: var(--vp-c-danger-soft)}: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-1);--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-1);--vp-local-search-highlight-bg: var(--vp-c-brand-1);--vp-local-search-highlight-text: var(--vp-c-neutral-inverse)}@media (prefers-reduced-motion: reduce){*,:before,:after{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:initial!important;scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important}}*,: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);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}mjx-container{overflow-x:auto}mjx-container>svg{display:inline-block;margin:auto}[class^=vpi-],[class*=" vpi-"],.vp-icon{width:1em;height:1em}[class^=vpi-].bg,[class*=" vpi-"].bg,.vp-icon.bg{background-size:100% 100%;background-color:transparent}[class^=vpi-]:not(.bg),[class*=" vpi-"]:not(.bg),.vp-icon:not(.bg){-webkit-mask:var(--icon) no-repeat;mask:var(--icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit}.vpi-align-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M21 6H3M15 12H3M17 18H3'/%3E%3C/svg%3E")}.vpi-arrow-right,.vpi-arrow-down,.vpi-arrow-left,.vpi-arrow-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E")}.vpi-chevron-right,.vpi-chevron-down,.vpi-chevron-left,.vpi-chevron-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E")}.vpi-chevron-down,.vpi-arrow-down{transform:rotate(90deg)}.vpi-chevron-left,.vpi-arrow-left{transform:rotate(180deg)}.vpi-chevron-up,.vpi-arrow-up{transform:rotate(-90deg)}.vpi-square-pen{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7'/%3E%3Cpath d='M18.375 2.625a2.121 2.121 0 1 1 3 3L12 15l-4 1 1-4Z'/%3E%3C/svg%3E")}.vpi-plus{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E")}.vpi-sun{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41'/%3E%3C/svg%3E")}.vpi-moon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z'/%3E%3C/svg%3E")}.vpi-more-horizontal{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3Ccircle cx='19' cy='12' r='1'/%3E%3Ccircle cx='5' cy='12' r='1'/%3E%3C/svg%3E")}.vpi-languages{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m5 8 6 6M4 14l6-6 2-3M2 5h12M7 2h1M22 22l-5-10-5 10M14 18h6'/%3E%3C/svg%3E")}.vpi-heart{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%3E%3C/svg%3E")}.vpi-search{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E")}.vpi-layout-list{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='7' height='7' x='3' y='3' rx='1'/%3E%3Crect width='7' height='7' x='3' y='14' rx='1'/%3E%3Cpath d='M14 4h7M14 9h7M14 15h7M14 20h7'/%3E%3C/svg%3E")}.vpi-delete{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M20 5H9l-7 7 7 7h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2ZM18 9l-6 6M12 9l6 6'/%3E%3C/svg%3E")}.vpi-corner-down-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 10-5 5 5 5'/%3E%3Cpath d='M20 4v7a4 4 0 0 1-4 4H4'/%3E%3C/svg%3E")}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/svg%3E")}.vpi-social-discord{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418Z'/%3E%3C/svg%3E")}.vpi-social-facebook{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647Z'/%3E%3C/svg%3E")}.vpi-social-github{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E")}.vpi-social-instagram{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.03.084c-1.277.06-2.149.264-2.91.563a5.874 5.874 0 0 0-2.124 1.388 5.878 5.878 0 0 0-1.38 2.127C.321 4.926.12 5.8.064 7.076.008 8.354-.005 8.764.001 12.023c.007 3.259.021 3.667.083 4.947.061 1.277.264 2.149.563 2.911.308.789.72 1.457 1.388 2.123a5.872 5.872 0 0 0 2.129 1.38c.763.295 1.636.496 2.913.552 1.278.056 1.689.069 4.947.063 3.257-.007 3.668-.021 4.947-.082 1.28-.06 2.147-.265 2.91-.563a5.881 5.881 0 0 0 2.123-1.388 5.881 5.881 0 0 0 1.38-2.129c.295-.763.496-1.636.551-2.912.056-1.28.07-1.69.063-4.948-.006-3.258-.02-3.667-.081-4.947-.06-1.28-.264-2.148-.564-2.911a5.892 5.892 0 0 0-1.387-2.123 5.857 5.857 0 0 0-2.128-1.38C19.074.322 18.202.12 16.924.066 15.647.009 15.236-.006 11.977 0 8.718.008 8.31.021 7.03.084m.14 21.693c-1.17-.05-1.805-.245-2.228-.408a3.736 3.736 0 0 1-1.382-.895 3.695 3.695 0 0 1-.9-1.378c-.165-.423-.363-1.058-.417-2.228-.06-1.264-.072-1.644-.08-4.848-.006-3.204.006-3.583.061-4.848.05-1.169.246-1.805.408-2.228.216-.561.477-.96.895-1.382a3.705 3.705 0 0 1 1.379-.9c.423-.165 1.057-.361 2.227-.417 1.265-.06 1.644-.072 4.848-.08 3.203-.006 3.583.006 4.85.062 1.168.05 1.804.244 2.227.408.56.216.96.475 1.382.895.421.42.681.817.9 1.378.165.422.362 1.056.417 2.227.06 1.265.074 1.645.08 4.848.005 3.203-.006 3.583-.061 4.848-.051 1.17-.245 1.805-.408 2.23-.216.56-.477.96-.896 1.38a3.705 3.705 0 0 1-1.378.9c-.422.165-1.058.362-2.226.418-1.266.06-1.645.072-4.85.079-3.204.007-3.582-.006-4.848-.06m9.783-16.192a1.44 1.44 0 1 0 1.437-1.442 1.44 1.44 0 0 0-1.437 1.442M5.839 12.012a6.161 6.161 0 1 0 12.323-.024 6.162 6.162 0 0 0-12.323.024M8 12.008A4 4 0 1 1 12.008 16 4 4 0 0 1 8 12.008'/%3E%3C/svg%3E")}.vpi-social-linkedin{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065 2.064 2.064 0 1 1 2.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z'/%3E%3C/svg%3E")}.vpi-social-mastodon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.268 5.313c-.35-2.578-2.617-4.61-5.304-5.004C17.51.242 15.792 0 11.813 0h-.03c-3.98 0-4.835.242-5.288.309C3.882.692 1.496 2.518.917 5.127.64 6.412.61 7.837.661 9.143c.074 1.874.088 3.745.26 5.611.118 1.24.325 2.47.62 3.68.55 2.237 2.777 4.098 4.96 4.857 2.336.792 4.849.923 7.256.38.265-.061.527-.132.786-.213.585-.184 1.27-.39 1.774-.753a.057.057 0 0 0 .023-.043v-1.809a.052.052 0 0 0-.02-.041.053.053 0 0 0-.046-.01 20.282 20.282 0 0 1-4.709.545c-2.73 0-3.463-1.284-3.674-1.818a5.593 5.593 0 0 1-.319-1.433.053.053 0 0 1 .066-.054c1.517.363 3.072.546 4.632.546.376 0 .75 0 1.125-.01 1.57-.044 3.224-.124 4.768-.422.038-.008.077-.015.11-.024 2.435-.464 4.753-1.92 4.989-5.604.008-.145.03-1.52.03-1.67.002-.512.167-3.63-.024-5.545zm-3.748 9.195h-2.561V8.29c0-1.309-.55-1.976-1.67-1.976-1.23 0-1.846.79-1.846 2.35v3.403h-2.546V8.663c0-1.56-.617-2.35-1.848-2.35-1.112 0-1.668.668-1.67 1.977v6.218H4.822V8.102c0-1.31.337-2.35 1.011-3.12.696-.77 1.608-1.164 2.74-1.164 1.311 0 2.302.5 2.962 1.498l.638 1.06.638-1.06c.66-.999 1.65-1.498 2.96-1.498 1.13 0 2.043.395 2.74 1.164.675.77 1.012 1.81 1.012 3.12z'/%3E%3C/svg%3E")}.vpi-social-npm{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M1.763 0C.786 0 0 .786 0 1.763v20.474C0 23.214.786 24 1.763 24h20.474c.977 0 1.763-.786 1.763-1.763V1.763C24 .786 23.214 0 22.237 0zM5.13 5.323l13.837.019-.009 13.836h-3.464l.01-10.382h-3.456L12.04 19.17H5.113z'/%3E%3C/svg%3E")}.vpi-social-slack{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zm0 1.271a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zm10.122 2.521a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zm-1.268 0a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zm-2.523 10.122a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zm0-1.268a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z'/%3E%3C/svg%3E")}.vpi-social-twitter,.vpi-social-x{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z'/%3E%3C/svg%3E")}.vpi-social-youtube{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z'/%3E%3C/svg%3E")}.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.info a,.custom-block.info code{color:var(--vp-c-brand-1)}.custom-block.info a:hover,.custom-block.info a:hover>code{color:var(--vp-c-brand-2)}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.note{border-color:var(--vp-custom-block-note-border);color:var(--vp-custom-block-note-text);background-color:var(--vp-custom-block-note-bg)}.custom-block.note a,.custom-block.note code{color:var(--vp-c-brand-1)}.custom-block.note a:hover,.custom-block.note a:hover>code{color:var(--vp-c-brand-2)}.custom-block.note code{background-color:var(--vp-custom-block-note-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 a,.custom-block.tip code{color:var(--vp-c-tip-1)}.custom-block.tip a:hover,.custom-block.tip a:hover>code{color:var(--vp-c-tip-2)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.important{border-color:var(--vp-custom-block-important-border);color:var(--vp-custom-block-important-text);background-color:var(--vp-custom-block-important-bg)}.custom-block.important a,.custom-block.important code{color:var(--vp-c-important-1)}.custom-block.important a:hover,.custom-block.important a:hover>code{color:var(--vp-c-important-2)}.custom-block.important code{background-color:var(--vp-custom-block-important-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 a,.custom-block.warning code{color:var(--vp-c-warning-1)}.custom-block.warning a:hover,.custom-block.warning a:hover>code{color:var(--vp-c-warning-2)}.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 a,.custom-block.danger code{color:var(--vp-c-danger-1)}.custom-block.danger a:hover,.custom-block.danger a:hover>code{color:var(--vp-c-danger-2)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.caution{border-color:var(--vp-custom-block-caution-border);color:var(--vp-custom-block-caution-text);background-color:var(--vp-custom-block-caution-bg)}.custom-block.caution a,.custom-block.caution code{color:var(--vp-c-caution-1)}.custom-block.caution a:hover,.custom-block.caution a:hover>code{color:var(--vp-c-caution-2)}.custom-block.caution code{background-color:var(--vp-custom-block-caution-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 a{color:var(--vp-c-brand-1)}.custom-block.details a:hover,.custom-block.details a:hover>code{color:var(--vp-c-brand-2)}.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;-webkit-user-select:none;user-select:none}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px;transition:opacity .25s}.custom-block a:hover{opacity:.75}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.custom-block.custom-block th,.custom-block.custom-block blockquote>p{font-size:var(--vp-custom-block-font-size);color:inherit}.dark .vp-code span{color:var(--shiki-dark, inherit)}html:not(.dark) .vp-code span{color:var(--shiki-light, inherit)}.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;box-shadow:inset 0 -1px var(--vp-code-tab-divider)}@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:fixed;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:2px;border-radius:2px;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-],.vp-block{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,.vp-block.active{display:block}.vp-block{padding:20px 24px}.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{position:absolute;top:0;left:0;margin-left:-.87em;font-weight:500;-webkit-user-select:none;user-select:none;opacity:0;text-decoration:none;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 h2 .header-anchor{top:24px}.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-1);text-decoration:underline;text-underline-offset:2px;transition:color .25s,opacity .25s}.vp-doc a:hover{color:var(--vp-c-brand-2)}.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{background-color:var(--vp-c-bg);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 div[class*=language-]{margin:8px 0;border-radius:8px}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc .custom-block .vp-code-group .tabs{margin:0;border-radius:8px 8px 0 0}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size);color:var(--vp-code-color)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;background-color:var(--vp-code-bg);transition:color .25s,background-color .5s}.vp-doc a>code{color:var(--vp-code-link-color)}.vp-doc a:hover>code{color:var(--vp-code-link-hover-color)}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code{font-size:.9em}.vp-doc div[class*=language-],.vp-block{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-],.vp-block{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;transform:translate(calc(-100% - 1px));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;padding:0 10px;width:fit-content;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:var(--vp-code-copy-copied-text-content)}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;color:var(--vp-code-lang-color);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}:is(.vp-external-link-icon,.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(.no-icon):after{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;background:currentColor;color:var(--vp-c-text-3);flex-shrink:0;--icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E");-webkit-mask-image:var(--icon);mask-image:var(--icon)}.vp-external-link-icon:after{content:""}.external-link-icon-enabled :is(.vp-doc a[href*="://"],.vp-doc a[target=_blank]):after{content:"";color:currentColor}.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:0 0 4px!important;text-align:center;letter-spacing:1px!important;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-default-soft)}.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{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:12px;padding:0 10px;line-height:22px;font-size:12px;font-weight:500;transform:translateY(-2px)}.VPBadge.small{padding:0 6px;line-height:18px;font-size:10px;transform:translateY(-8px)}.VPDocFooter .VPBadge{display:none}.vp-doc h1>.VPBadge{margin-top:4px;vertical-align:top}.vp-doc h2>.VPBadge{margin-top:3px;padding:0 8px;vertical-align:top}.vp-doc h3>.VPBadge{vertical-align:middle}.vp-doc h4>.VPBadge,.vp-doc h5>.VPBadge,.vp-doc h6>.VPBadge{vertical-align:middle;line-height:18px}.VPBadge.info{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPBackdrop[data-v-dfe13b38]{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-dfe13b38],.VPBackdrop.fade-leave-to[data-v-dfe13b38]{opacity:0}.VPBackdrop.fade-leave-active[data-v-dfe13b38]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-dfe13b38]{display:none}}.NotFound[data-v-8fd22e68]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-8fd22e68]{padding:96px 32px 168px}}.code[data-v-8fd22e68]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-8fd22e68]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-8fd22e68]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-8fd22e68]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-8fd22e68]{padding-top:20px}.link[data-v-8fd22e68]{display:inline-block;border:1px solid var(--vp-c-brand-1);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:border-color .25s,color .25s}.link[data-v-8fd22e68]:hover{border-color:var(--vp-c-brand-2);color:var(--vp-c-brand-2)}.root[data-v-8855adee]{position:relative;z-index:1}.nested[data-v-8855adee]{padding-right:16px;padding-left:16px}.outline-link[data-v-8855adee]{display:block;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s}.outline-link[data-v-8855adee]:hover,.outline-link.active[data-v-8855adee]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-8855adee]{padding-left:13px}.VPDocAsideOutline[data-v-5245df59]{display:none}.VPDocAsideOutline.has-outline[data-v-5245df59]{display:block}.content[data-v-5245df59]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-5245df59]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:2px;border-radius:2px;height:18px;background-color:var(--vp-c-brand-1);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-5245df59]{line-height:32px;font-size:14px;font-weight:600}.VPDocAside[data-v-8041b8c7]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-8041b8c7]{flex-grow:1}.VPDocAside[data-v-8041b8c7] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-8041b8c7] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-8041b8c7] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-df536d16]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-df536d16]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-835447b4]{margin-top:64px}.edit-info[data-v-835447b4]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-835447b4]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-835447b4]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.edit-link-button[data-v-835447b4]:hover{color:var(--vp-c-brand-2)}.edit-link-icon[data-v-835447b4]{margin-right:8px}.prev-next[data-v-835447b4]{border-top:1px solid var(--vp-c-divider);padding-top:24px;display:grid;grid-row-gap:8px}@media (min-width: 640px){.prev-next[data-v-835447b4]{grid-template-columns:repeat(2,1fr);grid-column-gap:16px}}.pager-link[data-v-835447b4]{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-835447b4]:hover{border-color:var(--vp-c-brand-1)}.pager-link.next[data-v-835447b4]{margin-left:auto;text-align:right}.desc[data-v-835447b4]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-835447b4]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.VPDoc[data-v-5399a88f]{padding:32px 24px 96px;width:100%}@media (min-width: 768px){.VPDoc[data-v-5399a88f]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-5399a88f]{padding:48px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-5399a88f]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-5399a88f]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-5399a88f]{display:flex;justify-content:center}.VPDoc .aside[data-v-5399a88f]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-5399a88f]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-5399a88f]{max-width:1104px}}.container[data-v-5399a88f]{margin:0 auto;width:100%}.aside[data-v-5399a88f]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.left-aside[data-v-5399a88f]{order:1;padding-left:unset;padding-right:32px}.aside-container[data-v-5399a88f]{position:fixed;top:0;padding-top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 48px);width:224px;height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-5399a88f]::-webkit-scrollbar{display:none}.aside-curtain[data-v-5399a88f]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-5399a88f]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px));padding-bottom:32px}.content[data-v-5399a88f]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-5399a88f]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-5399a88f]{order:1;margin:0;min-width:640px}}.content-container[data-v-5399a88f]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-5399a88f]{max-width:688px}.VPButton[data-v-ee1396dd]{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-ee1396dd]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-ee1396dd]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-ee1396dd]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-ee1396dd]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-ee1396dd]: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-ee1396dd]: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-ee1396dd]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-ee1396dd]: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-ee1396dd]: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-ee1396dd]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-ee1396dd]: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-ee1396dd]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}html:not(.dark) .VPImage.dark[data-v-207af20a]{display:none}.dark .VPImage.light[data-v-207af20a]{display:none}.VPHero[data-v-47c829c1]{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-47c829c1]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-47c829c1]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-47c829c1]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-47c829c1]{flex-direction:row}}.main[data-v-47c829c1]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-47c829c1]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-47c829c1]{text-align:left}}@media (min-width: 960px){.main[data-v-47c829c1]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-47c829c1]{max-width:592px}}.name[data-v-47c829c1],.text[data-v-47c829c1]{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-47c829c1],.VPHero.has-image .text[data-v-47c829c1]{margin:0 auto}.name[data-v-47c829c1]{color:var(--vp-home-hero-name-color)}.clip[data-v-47c829c1]{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-47c829c1],.text[data-v-47c829c1]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-47c829c1],.text[data-v-47c829c1]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-47c829c1],.VPHero.has-image .text[data-v-47c829c1]{margin:0}}.tagline[data-v-47c829c1]{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-47c829c1]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-47c829c1]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-47c829c1]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-47c829c1]{margin:0}}.actions[data-v-47c829c1]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-47c829c1]{justify-content:center}@media (min-width: 640px){.actions[data-v-47c829c1]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-47c829c1]{justify-content:flex-start}}.action[data-v-47c829c1]{flex-shrink:0;padding:6px}.image[data-v-47c829c1]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-47c829c1]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-47c829c1]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-47c829c1]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-47c829c1]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-47c829c1]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-47c829c1]{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-47c829c1]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-47c829c1]{width:320px;height:320px}}[data-v-47c829c1] .image-src{position:absolute;top:50%;left:50%;max-width:192px;max-height:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-47c829c1] .image-src{max-width:256px;max-height:256px}}@media (min-width: 960px){[data-v-47c829c1] .image-src{max-width:320px;max-height:320px}}.VPFeature[data-v-b0502b08]{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-b0502b08]:hover{border-color:var(--vp-c-brand-1)}.box[data-v-b0502b08]{display:flex;flex-direction:column;padding:24px;height:100%}.box[data-v-b0502b08]>.VPImage{margin-bottom:20px}.icon[data-v-b0502b08]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-default-soft);width:48px;height:48px;font-size:24px;transition:background-color .25s}.title[data-v-b0502b08]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-b0502b08]{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-b0502b08]{padding-top:8px}.link-text-value[data-v-b0502b08]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.link-text-icon[data-v-b0502b08]{margin-left:6px}.VPFeatures[data-v-c7aac842]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-c7aac842]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-c7aac842]{padding:0 64px}}.container[data-v-c7aac842]{margin:0 auto;max-width:1152px}.items[data-v-c7aac842]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-c7aac842]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-c7aac842],.item.grid-4[data-v-c7aac842],.item.grid-6[data-v-c7aac842]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-c7aac842],.item.grid-4[data-v-c7aac842]{width:50%}.item.grid-3[data-v-c7aac842],.item.grid-6[data-v-c7aac842]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-c7aac842]{width:25%}}.container[data-v-66dfc38e]{margin:auto;width:100%;max-width:1280px;padding:0 24px}@media (min-width: 640px){.container[data-v-66dfc38e]{padding:0 48px}}@media (min-width: 960px){.container[data-v-66dfc38e]{width:100%;padding:0 64px}}.vp-doc[data-v-66dfc38e] .VPHomeSponsors,.vp-doc[data-v-66dfc38e] .VPTeamPage{margin-left:var(--vp-offset, calc(50% - 50vw) );margin-right:var(--vp-offset, calc(50% - 50vw) )}.vp-doc[data-v-66dfc38e] .VPHomeSponsors h2{border-top:none;letter-spacing:normal}.vp-doc[data-v-66dfc38e] .VPHomeSponsors a,.vp-doc[data-v-66dfc38e] .VPTeamPage a{text-decoration:none}.VPHome[data-v-52a20f54]{margin-bottom:96px}@media (min-width: 768px){.VPHome[data-v-52a20f54]{margin-bottom:128px}}.VPContent[data-v-eda42429]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-eda42429]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-eda42429]{margin:0}@media (min-width: 960px){.VPContent[data-v-eda42429]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-eda42429]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-eda42429]{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-e0b60cc2]{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-e0b60cc2]{display:none}.VPFooter[data-v-e0b60cc2] a{text-decoration-line:underline;text-underline-offset:2px;transition:color .25s}.VPFooter[data-v-e0b60cc2] a:hover{color:var(--vp-c-text-1)}@media (min-width: 768px){.VPFooter[data-v-e0b60cc2]{padding:32px}}.container[data-v-e0b60cc2]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-e0b60cc2],.copyright[data-v-e0b60cc2]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.VPLocalNavOutlineDropdown[data-v-ddcb87e7]{padding:12px 20px 11px}@media (min-width: 960px){.VPLocalNavOutlineDropdown[data-v-ddcb87e7]{padding:12px 36px 11px}}.VPLocalNavOutlineDropdown button[data-v-ddcb87e7]{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-ddcb87e7]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPLocalNavOutlineDropdown button.open[data-v-ddcb87e7]{color:var(--vp-c-text-1)}.icon[data-v-ddcb87e7]{display:inline-block;vertical-align:middle;margin-left:2px;font-size:14px;transform:rotate(0);transition:transform .25s}@media (min-width: 960px){.VPLocalNavOutlineDropdown button[data-v-ddcb87e7]{font-size:14px}.icon[data-v-ddcb87e7]{font-size:16px}}.open>.icon[data-v-ddcb87e7]{transform:rotate(90deg)}.items[data-v-ddcb87e7]{position:absolute;top:40px;right:16px;left:16px;display:grid;gap:1px;border:1px solid var(--vp-c-border);border-radius:8px;background-color:var(--vp-c-gutter);max-height:calc(var(--vp-vh, 100vh) - 86px);overflow:hidden auto;box-shadow:var(--vp-shadow-3)}@media (min-width: 960px){.items[data-v-ddcb87e7]{right:auto;left:calc(var(--vp-sidebar-width) + 32px);width:320px}}.header[data-v-ddcb87e7]{background-color:var(--vp-c-bg-soft)}.top-link[data-v-ddcb87e7]{display:block;padding:0 16px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.outline[data-v-ddcb87e7]{padding:8px 0;background-color:var(--vp-c-bg-soft)}.flyout-enter-active[data-v-ddcb87e7]{transition:all .2s ease-out}.flyout-leave-active[data-v-ddcb87e7]{transition:all .15s ease-in}.flyout-enter-from[data-v-ddcb87e7],.flyout-leave-to[data-v-ddcb87e7]{opacity:0;transform:translateY(-16px)}.VPLocalNav[data-v-e533ce6a]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);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-e533ce6a]{position:fixed}@media (min-width: 960px){.VPLocalNav[data-v-e533ce6a]{top:var(--vp-nav-height)}.VPLocalNav.has-sidebar[data-v-e533ce6a]{padding-left:var(--vp-sidebar-width)}.VPLocalNav.empty[data-v-e533ce6a]{display:none}}@media (min-width: 1280px){.VPLocalNav[data-v-e533ce6a]{display:none}}@media (min-width: 1440px){.VPLocalNav.has-sidebar[data-v-e533ce6a]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.container[data-v-e533ce6a]{display:flex;justify-content:space-between;align-items:center}.menu[data-v-e533ce6a]{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-e533ce6a]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-e533ce6a]{padding:0 32px}}@media (min-width: 960px){.menu[data-v-e533ce6a]{display:none}}.menu-icon[data-v-e533ce6a]{margin-right:8px;font-size:14px}.VPOutlineDropdown[data-v-e533ce6a]{padding:12px 24px 11px}@media (min-width: 768px){.VPOutlineDropdown[data-v-e533ce6a]{padding:12px 32px 11px}}.VPSwitch[data-v-550200d6]{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!important}.VPSwitch[data-v-550200d6]:hover{border-color:var(--vp-c-brand-1)}.check[data-v-550200d6]{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!important}.icon[data-v-550200d6]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-550200d6] [class^=vpi-]{position:absolute;top:3px;left:3px;width:12px;height:12px;color:var(--vp-c-text-2)}.dark .icon[data-v-550200d6] [class^=vpi-]{color:var(--vp-c-text-1);transition:opacity .25s!important}.sun[data-v-90536e56]{opacity:1}.moon[data-v-90536e56],.dark .sun[data-v-90536e56]{opacity:0}.dark .moon[data-v-90536e56]{opacity:1}.dark .VPSwitchAppearance[data-v-90536e56] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-cf96c3d5]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-cf96c3d5]{display:flex;align-items:center}}.VPMenuGroup+.VPMenuLink[data-v-42b0531e]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-42b0531e]{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-42b0531e]:hover{color:var(--vp-c-brand-1);background-color:var(--vp-c-default-soft)}.link.active[data-v-42b0531e]{color:var(--vp-c-brand-1)}.VPMenuGroup[data-v-6638abba]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-6638abba]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-6638abba]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-6638abba]{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-285f358f]{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-285f358f] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-285f358f] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-285f358f] .group:last-child{padding-bottom:0}.VPMenu[data-v-285f358f] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-285f358f] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-285f358f] .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-285f358f] .action{padding-left:24px}.VPFlyout[data-v-49286c8d]{position:relative}.VPFlyout[data-v-49286c8d]:hover{color:var(--vp-c-brand-1);transition:color .25s}.VPFlyout:hover .text[data-v-49286c8d]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-49286c8d]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-49286c8d]{color:var(--vp-c-brand-1)}.VPFlyout.active:hover .text[data-v-49286c8d]{color:var(--vp-c-brand-2)}.VPFlyout:hover .menu[data-v-49286c8d],.button[aria-expanded=true]+.menu[data-v-49286c8d]{opacity:1;visibility:visible;transform:translateY(0)}.button[aria-expanded=false]+.menu[data-v-49286c8d]{opacity:0;visibility:hidden;transform:translateY(0)}.button[data-v-49286c8d]{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-49286c8d]{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-49286c8d]{margin-right:0;font-size:16px}.text-icon[data-v-49286c8d]{margin-left:4px;font-size:14px}.icon[data-v-49286c8d]{font-size:20px;transition:fill .25s}.menu[data-v-49286c8d]{position:absolute;top:calc(var(--vp-nav-height) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}.VPSocialLink[data-v-cd364052]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-cd364052]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-cd364052]>svg,.VPSocialLink[data-v-cd364052]>[class^=vpi-social-]{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-07ca41f1]{display:flex;justify-content:center}.VPNavBarExtra[data-v-311bc7a7]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-311bc7a7]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-311bc7a7]{display:none}}.trans-title[data-v-311bc7a7]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-311bc7a7],.item.social-links[data-v-311bc7a7]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-311bc7a7]{min-width:176px}.appearance-action[data-v-311bc7a7]{margin-right:-2px}.social-links-list[data-v-311bc7a7]{margin:-4px -8px}.VPNavBarHamburger[data-v-5adbd637]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-5adbd637]{display:none}}.container[data-v-5adbd637]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-5adbd637]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-5adbd637]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-5adbd637]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-5adbd637]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-5adbd637]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-5adbd637]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-5adbd637],.VPNavBarHamburger.active:hover .middle[data-v-5adbd637],.VPNavBarHamburger.active:hover .bottom[data-v-5adbd637]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-5adbd637],.middle[data-v-5adbd637],.bottom[data-v-5adbd637]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-5adbd637]{top:0;left:0;transform:translate(0)}.middle[data-v-5adbd637]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-5adbd637]{top:12px;left:0;transform:translate(4px)}.VPNavBarMenuLink[data-v-86ef9c33]{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-86ef9c33],.VPNavBarMenuLink[data-v-86ef9c33]:hover{color:var(--vp-c-brand-1)}.VPNavBarMenu[data-v-025c0132]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-025c0132]{display:flex}}/*! @docsearch/css 3.6.0 | 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-key-pressed-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 1px 0 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-key-pressed-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 1px 1px 0 rgba(3,4,9,.30196078431372547);--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;-webkit-user-select:none;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}.DocSearch-Button-Key--pressed{transform:translate3d(0,1px,0);box-shadow:var(--docsearch-key-pressed-shadow)}@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{-webkit-appearance:none;-moz-appearance:none;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{-webkit-appearance:none;-moz-appearance:none;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;-webkit-appearance:none;-moz-appearance: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;-webkit-appearance:none;-moz-appearance:none;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;-webkit-user-select:none;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{-webkit-appearance:none;-moz-appearance:none;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:#0003;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:#0003;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{-webkit-appearance:none;-moz-appearance:none;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;-webkit-user-select:none;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}.DocSearch-VisuallyHiddenForAccessibility{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}@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{-webkit-appearance:none;-moz-appearance:none;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;-webkit-user-select:none;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}[class*=DocSearch]{--docsearch-primary-color: var(--vp-c-brand-1);--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-background: transparent;--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 [class*=DocSearch]{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: var(--vp-c-text-2);--docsearch-hit-background: var(--vp-c-default-soft);--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-Key--pressed{transform:none;box-shadow:none}.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-1);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:0!important}.DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"Ctrl";font-size:12px;letter-spacing:normal;color:var(--docsearch-muted-color)}.mac .DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"⌘"}.DocSearch-Button .DocSearch-Button-Key:first-child>*{display:none}.DocSearch-Search-Icon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke-width='1.6' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='m14.386 14.386 4.088 4.088-4.088-4.088A7.533 7.533 0 1 1 3.733 3.733a7.533 7.533 0 0 1 10.653 10.653z'/%3E%3C/svg%3E")}.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-1);background-color:var(--vp-c-white)}.dark .DocSearch-Form{background-color:var(--vp-c-default-soft)}.DocSearch-Screen-Icon>svg{margin:auto}.VPNavBarSocialLinks[data-v-5bd53742]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-5bd53742]{display:flex;align-items:center}}.title[data-v-3cb65cdb]{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-3cb65cdb]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-3cb65cdb]{border-bottom-color:var(--vp-c-divider)}}[data-v-3cb65cdb] .logo{margin-right:8px;height:var(--vp-nav-logo-height)}.VPNavBarTranslations[data-v-2c95218d]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-2c95218d]{display:flex;align-items:center}}.title[data-v-2c95218d]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPNavBar[data-v-f9fe6a50]{position:relative;height:var(--vp-nav-height);pointer-events:none;white-space:nowrap;transition:background-color .5s}.VPNavBar[data-v-f9fe6a50]:not(.home){background-color:var(--vp-nav-bg-color)}@media (min-width: 960px){.VPNavBar[data-v-f9fe6a50]:not(.home){background-color:transparent}.VPNavBar[data-v-f9fe6a50]:not(.has-sidebar):not(.home.top){background-color:var(--vp-nav-bg-color)}}.wrapper[data-v-f9fe6a50]{padding:0 8px 0 24px}@media (min-width: 768px){.wrapper[data-v-f9fe6a50]{padding:0 32px}}@media (min-width: 960px){.VPNavBar.has-sidebar .wrapper[data-v-f9fe6a50]{padding:0}}.container[data-v-f9fe6a50]{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-f9fe6a50],.container>.content[data-v-f9fe6a50]{pointer-events:none}.container[data-v-f9fe6a50] *{pointer-events:auto}@media (min-width: 960px){.VPNavBar.has-sidebar .container[data-v-f9fe6a50]{max-width:100%}}.title[data-v-f9fe6a50]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .title[data-v-f9fe6a50]{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-f9fe6a50]{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-f9fe6a50]{flex-grow:1}@media (min-width: 960px){.VPNavBar.has-sidebar .content[data-v-f9fe6a50]{position:relative;z-index:1;padding-right:32px;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .content[data-v-f9fe6a50]{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-f9fe6a50]{display:flex;justify-content:flex-end;align-items:center;height:var(--vp-nav-height);transition:background-color .5s}@media (min-width: 960px){.VPNavBar:not(.home.top) .content-body[data-v-f9fe6a50]{position:relative;background-color:var(--vp-nav-bg-color)}.VPNavBar:not(.has-sidebar):not(.home.top) .content-body[data-v-f9fe6a50]{background-color:transparent}}@media (max-width: 767px){.content-body[data-v-f9fe6a50]{column-gap:.5rem}}.menu+.translations[data-v-f9fe6a50]:before,.menu+.appearance[data-v-f9fe6a50]:before,.menu+.social-links[data-v-f9fe6a50]:before,.translations+.appearance[data-v-f9fe6a50]:before,.appearance+.social-links[data-v-f9fe6a50]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-f9fe6a50]:before,.translations+.appearance[data-v-f9fe6a50]:before{margin-right:16px}.appearance+.social-links[data-v-f9fe6a50]:before{margin-left:16px}.social-links[data-v-f9fe6a50]{margin-right:-8px}.divider[data-v-f9fe6a50]{width:100%;height:1px}@media (min-width: 960px){.VPNavBar.has-sidebar .divider[data-v-f9fe6a50]{padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .divider[data-v-f9fe6a50]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.divider-line[data-v-f9fe6a50]{width:100%;height:1px;transition:background-color .5s}.VPNavBar:not(.home) .divider-line[data-v-f9fe6a50]{background-color:var(--vp-c-gutter)}@media (min-width: 960px){.VPNavBar:not(.home.top) .divider-line[data-v-f9fe6a50]{background-color:var(--vp-c-gutter)}.VPNavBar:not(.has-sidebar):not(.home.top) .divider[data-v-f9fe6a50]{background-color:var(--vp-c-gutter)}}.VPNavScreenAppearance[data-v-ec1cacf1]{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-ec1cacf1]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenMenuLink[data-v-8d28c8d9]{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-8d28c8d9]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupLink[data-v-c116d3ab]{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-c116d3ab]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupSection[data-v-22deea13]{display:block}.title[data-v-22deea13]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-98f76c9b]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-98f76c9b]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-98f76c9b]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-98f76c9b]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-98f76c9b]{padding-bottom:6px;color:var(--vp-c-brand-1)}.VPNavScreenMenuGroup.open .button-icon[data-v-98f76c9b]{transform:rotate(45deg)}.button[data-v-98f76c9b]{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-98f76c9b]:hover{color:var(--vp-c-brand-1)}.button-icon[data-v-98f76c9b]{transition:transform .25s}.group[data-v-98f76c9b]:first-child{padding-top:0}.group+.group[data-v-98f76c9b],.group+.item[data-v-98f76c9b]{padding-top:4px}.VPNavScreenTranslations[data-v-353a64d8]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-353a64d8]{height:auto}.title[data-v-353a64d8]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-353a64d8]{font-size:16px}.icon.lang[data-v-353a64d8]{margin-right:8px}.icon.chevron[data-v-353a64d8]{margin-left:4px}.list[data-v-353a64d8]{padding:4px 0 0 24px}.link[data-v-353a64d8]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-93a9bd57]{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-93a9bd57],.VPNavScreen.fade-leave-active[data-v-93a9bd57]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-93a9bd57],.VPNavScreen.fade-leave-active .container[data-v-93a9bd57]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-93a9bd57],.VPNavScreen.fade-leave-to[data-v-93a9bd57]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-93a9bd57],.VPNavScreen.fade-leave-to .container[data-v-93a9bd57]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-93a9bd57]{display:none}}.container[data-v-93a9bd57]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-93a9bd57],.menu+.appearance[data-v-93a9bd57],.translations+.appearance[data-v-93a9bd57]{margin-top:24px}.menu+.social-links[data-v-93a9bd57]{margin-top:16px}.appearance+.social-links[data-v-93a9bd57]{margin-top:16px}.VPNav[data-v-e0629343]{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-e0629343]{position:fixed}}.VPSidebarItem.level-0[data-v-ce292618]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-ce292618]{padding-bottom:10px}.item[data-v-ce292618]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-ce292618]{cursor:pointer}.indicator[data-v-ce292618]{position:absolute;top:6px;bottom:6px;left:-17px;width:2px;border-radius:2px;transition:background-color .25s}.VPSidebarItem.level-2.is-active>.item>.indicator[data-v-ce292618],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-ce292618],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-ce292618],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-ce292618]{background-color:var(--vp-c-brand-1)}.link[data-v-ce292618]{display:flex;align-items:center;flex-grow:1}.text[data-v-ce292618]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-ce292618]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-ce292618],.VPSidebarItem.level-2 .text[data-v-ce292618],.VPSidebarItem.level-3 .text[data-v-ce292618],.VPSidebarItem.level-4 .text[data-v-ce292618],.VPSidebarItem.level-5 .text[data-v-ce292618]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-ce292618],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-ce292618],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-ce292618],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-ce292618],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-ce292618],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-ce292618]{color:var(--vp-c-brand-1)}.VPSidebarItem.level-0.has-active>.item>.text[data-v-ce292618],.VPSidebarItem.level-1.has-active>.item>.text[data-v-ce292618],.VPSidebarItem.level-2.has-active>.item>.text[data-v-ce292618],.VPSidebarItem.level-3.has-active>.item>.text[data-v-ce292618],.VPSidebarItem.level-4.has-active>.item>.text[data-v-ce292618],.VPSidebarItem.level-5.has-active>.item>.text[data-v-ce292618],.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-ce292618],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-ce292618],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-ce292618],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-ce292618],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-ce292618],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-ce292618]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-ce292618],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-ce292618],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-ce292618],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-ce292618],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-ce292618],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-ce292618]{color:var(--vp-c-brand-1)}.caret[data-v-ce292618]{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;flex-shrink:0}.item:hover .caret[data-v-ce292618]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-ce292618]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-ce292618]{font-size:18px;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-ce292618]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-ce292618],.VPSidebarItem.level-2 .items[data-v-ce292618],.VPSidebarItem.level-3 .items[data-v-ce292618],.VPSidebarItem.level-4 .items[data-v-ce292618],.VPSidebarItem.level-5 .items[data-v-ce292618]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-ce292618]{display:none}.VPSidebar[data-v-502c42bd]{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-502c42bd]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-502c42bd]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-502c42bd]{padding-top:var(--vp-nav-height);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-502c42bd]{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-502c42bd]{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-502c42bd]{outline:0}.group+.group[data-v-502c42bd]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media (min-width: 960px){.group[data-v-502c42bd]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPSkipLink[data-v-2b82b073]{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-1);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-2b82b073]:focus{height:auto;width:auto;clip:auto;clip-path:none}@media (min-width: 1280px){.VPSkipLink[data-v-2b82b073]{top:14px;left:16px}}.Layout[data-v-ab6a0140]{display:flex;flex-direction:column;min-height:100vh}.VPHomeSponsors[data-v-120abc05]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPHomeSponsors[data-v-120abc05]{margin:96px 0}@media (min-width: 768px){.VPHomeSponsors[data-v-120abc05]{margin:128px 0}}.VPHomeSponsors[data-v-120abc05]{padding:0 24px}@media (min-width: 768px){.VPHomeSponsors[data-v-120abc05]{padding:0 48px}}@media (min-width: 960px){.VPHomeSponsors[data-v-120abc05]{padding:0 64px}}.container[data-v-120abc05]{margin:0 auto;max-width:1152px}.love[data-v-120abc05]{margin:0 auto;width:fit-content;font-size:28px;color:var(--vp-c-text-3)}.icon[data-v-120abc05]{display:inline-block}.message[data-v-120abc05]{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-120abc05]{padding-top:32px}.action[data-v-120abc05]{padding-top:40px;text-align:center}.VPTeamPage[data-v-9514d0a6]{margin:96px 0}@media (min-width: 768px){.VPTeamPage[data-v-9514d0a6]{margin:128px 0}}.VPHome .VPTeamPageTitle[data-v-9514d0a6-s]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPTeamPageSection+.VPTeamPageSection[data-v-9514d0a6-s],.VPTeamMembers+.VPTeamPageSection[data-v-9514d0a6-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-9514d0a6-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-9514d0a6-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-9514d0a6-s],.VPTeamMembers+.VPTeamPageSection[data-v-9514d0a6-s]{margin-top:96px}}.VPTeamMembers[data-v-9514d0a6-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-9514d0a6-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-9514d0a6-s]{padding:0 64px}}.VPTeamPageTitle[data-v-e9c3d550]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-e9c3d550]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-e9c3d550]{padding:80px 64px 48px}}.title[data-v-e9c3d550]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-e9c3d550]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-e9c3d550]{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-e9c3d550]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}.VPTeamPageSection[data-v-6f57ac85]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-6f57ac85]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-6f57ac85]{padding:0 64px}}.title[data-v-6f57ac85]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-6f57ac85]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider)}.title-text[data-v-6f57ac85]{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-6f57ac85]{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-6f57ac85]{padding-top:40px}.VPTeamMembersItem[data-v-d16aa0f7]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-d16aa0f7]{padding:32px}.VPTeamMembersItem.small .data[data-v-d16aa0f7]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-d16aa0f7]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-d16aa0f7]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-d16aa0f7]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-d16aa0f7]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-d16aa0f7]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-d16aa0f7]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-d16aa0f7]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-d16aa0f7]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-d16aa0f7]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-d16aa0f7]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-d16aa0f7]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-d16aa0f7]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-d16aa0f7]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-d16aa0f7]{text-align:center}.avatar[data-v-d16aa0f7]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-d16aa0f7]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-d16aa0f7]{margin:0;font-weight:600}.affiliation[data-v-d16aa0f7]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-d16aa0f7]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-d16aa0f7]:hover{color:var(--vp-c-brand-1)}.desc[data-v-d16aa0f7]{margin:0 auto}.desc[data-v-d16aa0f7] a{font-weight:500;color:var(--vp-c-brand-1);text-decoration-style:dotted;transition:color .25s}.links[data-v-d16aa0f7]{display:flex;justify-content:center;height:56px}.sp-link[data-v-d16aa0f7]{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-d16aa0f7]:hover,.sp .sp-link.link[data-v-d16aa0f7]:focus{outline:none;color:var(--vp-c-white);background-color:var(--vp-c-sponsor)}.sp-icon[data-v-d16aa0f7]{margin-right:8px;font-size:16px}.VPTeamMembers.small .container[data-v-efc6d2e1]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-efc6d2e1]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-efc6d2e1]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-efc6d2e1]{max-width:876px}.VPTeamMembers.medium .container[data-v-efc6d2e1]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-efc6d2e1]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-efc6d2e1]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-efc6d2e1]{max-width:760px}.container[data-v-efc6d2e1]{display:grid;gap:24px;margin:0 auto;max-width:1152px}:root{--vp-c-brand-1: #148ca7;--vp-c-brand-2: #3286e5;--vp-button-brand-bg: #2a5889}.idraw-playground-preview{width:100%;height:540px;border:1px solid #cecece;margin:0 auto}@media screen and (max-width: 640px){.idraw-playground-preview{display:none}} diff --git a/docs/assets/style.vQnvam54.css b/docs/assets/style.vQnvam54.css deleted file mode 100644 index 92caef6..0000000 --- a/docs/assets/style.vQnvam54.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/docs/assets/inter-roman-cyrillic.jIZ9REo5.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(/docs/assets/inter-roman-cyrillic-ext.8T9wMG5w.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(/docs/assets/inter-roman-greek.Cb5wWeGA.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(/docs/assets/inter-roman-greek-ext.9JiNzaSO.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(/docs/assets/inter-roman-latin.bvIUbFQP.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(/docs/assets/inter-roman-latin-ext.GZWE-KO4.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(/docs/assets/inter-roman-vietnamese.paY3CzEB.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(/docs/assets/inter-italic-cyrillic.-nLMcIwj.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(/docs/assets/inter-italic-cyrillic-ext.OVycGSDq.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(/docs/assets/inter-italic-greek.PSfer2Kc.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(/docs/assets/inter-italic-greek-ext.hznxWNZO.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(/docs/assets/inter-italic-latin.27E69YJn.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(/docs/assets/inter-italic-latin-ext.RnFly65-.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(/docs/assets/inter-italic-vietnamese.xzQHe1q1.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-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white)}.dark{--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black)}:root{--vp-c-gray-1: #dddde3;--vp-c-gray-2: #e4e4e9;--vp-c-gray-3: #ebebef;--vp-c-gray-soft: rgba(142, 150, 170, .14);--vp-c-indigo-1: #3451b2;--vp-c-indigo-2: #3a5ccc;--vp-c-indigo-3: #5672cd;--vp-c-indigo-soft: rgba(100, 108, 255, .14);--vp-c-purple-1: #6f42c1;--vp-c-purple-2: #7e4cc9;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .14);--vp-c-green-1: #18794e;--vp-c-green-2: #299764;--vp-c-green-3: #30a46c;--vp-c-green-soft: rgba(16, 185, 129, .14);--vp-c-yellow-1: #915930;--vp-c-yellow-2: #946300;--vp-c-yellow-3: #9f6a00;--vp-c-yellow-soft: rgba(234, 179, 8, .14);--vp-c-red-1: #b8272c;--vp-c-red-2: #d5393e;--vp-c-red-3: #e0575b;--vp-c-red-soft: rgba(244, 63, 94, .14);--vp-c-sponsor: #db2777}.dark{--vp-c-gray-1: #515c67;--vp-c-gray-2: #414853;--vp-c-gray-3: #32363f;--vp-c-gray-soft: rgba(101, 117, 133, .16);--vp-c-indigo-1: #a8b1ff;--vp-c-indigo-2: #5c73e7;--vp-c-indigo-3: #3e63dd;--vp-c-indigo-soft: rgba(100, 108, 255, .16);--vp-c-purple-1: #c8abfa;--vp-c-purple-2: #a879e6;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .16);--vp-c-green-1: #3dd68c;--vp-c-green-2: #30a46c;--vp-c-green-3: #298459;--vp-c-green-soft: rgba(16, 185, 129, .16);--vp-c-yellow-1: #f9b44e;--vp-c-yellow-2: #da8b17;--vp-c-yellow-3: #a46a0a;--vp-c-yellow-soft: rgba(234, 179, 8, .16);--vp-c-red-1: #f66f81;--vp-c-red-2: #f14158;--vp-c-red-3: #b62a3c;--vp-c-red-soft: rgba(244, 63, 94, .16)}:root{--vp-c-bg: #ffffff;--vp-c-bg-alt: #f6f6f7;--vp-c-bg-elv: #ffffff;--vp-c-bg-soft: #f6f6f7}.dark{--vp-c-bg: #1b1b1f;--vp-c-bg-alt: #161618;--vp-c-bg-elv: #202127;--vp-c-bg-soft: #202127}:root{--vp-c-border: #c2c2c4;--vp-c-divider: #e2e2e3;--vp-c-gutter: #e2e2e3}.dark{--vp-c-border: #3c3f44;--vp-c-divider: #2e2e32;--vp-c-gutter: #000000}:root{--vp-c-text-1: rgba(60, 60, 67);--vp-c-text-2: rgba(60, 60, 67, .78);--vp-c-text-3: rgba(60, 60, 67, .56)}.dark{--vp-c-text-1: rgba(255, 255, 245, .86);--vp-c-text-2: rgba(235, 235, 245, .6);--vp-c-text-3: rgba(235, 235, 245, .38)}:root{--vp-c-default-1: var(--vp-c-gray-1);--vp-c-default-2: var(--vp-c-gray-2);--vp-c-default-3: var(--vp-c-gray-3);--vp-c-default-soft: var(--vp-c-gray-soft);--vp-c-brand-1: var(--vp-c-indigo-1);--vp-c-brand-2: var(--vp-c-indigo-2);--vp-c-brand-3: var(--vp-c-indigo-3);--vp-c-brand-soft: var(--vp-c-indigo-soft);--vp-c-brand: var(--vp-c-brand-1);--vp-c-tip-1: var(--vp-c-brand-1);--vp-c-tip-2: var(--vp-c-brand-2);--vp-c-tip-3: var(--vp-c-brand-3);--vp-c-tip-soft: var(--vp-c-brand-soft);--vp-c-note-1: var(--vp-c-brand-1);--vp-c-note-2: var(--vp-c-brand-2);--vp-c-note-3: var(--vp-c-brand-3);--vp-c-note-soft: var(--vp-c-brand-soft);--vp-c-success-1: var(--vp-c-green-1);--vp-c-success-2: var(--vp-c-green-2);--vp-c-success-3: var(--vp-c-green-3);--vp-c-success-soft: var(--vp-c-green-soft);--vp-c-important-1: var(--vp-c-purple-1);--vp-c-important-2: var(--vp-c-purple-2);--vp-c-important-3: var(--vp-c-purple-3);--vp-c-important-soft: var(--vp-c-purple-soft);--vp-c-warning-1: var(--vp-c-yellow-1);--vp-c-warning-2: var(--vp-c-yellow-2);--vp-c-warning-3: var(--vp-c-yellow-3);--vp-c-warning-soft: var(--vp-c-yellow-soft);--vp-c-danger-1: var(--vp-c-red-1);--vp-c-danger-2: var(--vp-c-red-2);--vp-c-danger-3: var(--vp-c-red-3);--vp-c-danger-soft: var(--vp-c-red-soft);--vp-c-caution-1: var(--vp-c-red-1);--vp-c-caution-2: var(--vp-c-red-2);--vp-c-caution-3: var(--vp-c-red-3);--vp-c-caution-soft: var(--vp-c-red-soft)}: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-footer: 10;--vp-z-index-local-nav: 20;--vp-z-index-nav: 30;--vp-z-index-layout-top: 40;--vp-z-index-backdrop: 50;--vp-z-index-sidebar: 60}@media (min-width: 960px){:root{--vp-z-index-sidebar: 25}}:root{--vp-layout-max-width: 1440px}:root{--vp-header-anchor-symbol: "#"}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-code-color: var(--vp-c-brand-1);--vp-code-link-color: var(--vp-c-brand-1);--vp-code-link-hover-color: var(--vp-c-brand-2);--vp-code-bg: var(--vp-c-default-soft);--vp-code-block-color: var(--vp-c-text-2);--vp-code-block-bg: var(--vp-c-bg-alt);--vp-code-block-divider-color: var(--vp-c-gutter);--vp-code-lang-color: var(--vp-c-text-3);--vp-code-line-highlight-color: var(--vp-c-default-soft);--vp-code-line-number-color: var(--vp-c-text-3);--vp-code-line-diff-add-color: var(--vp-c-success-soft);--vp-code-line-diff-add-symbol-color: var(--vp-c-success-1);--vp-code-line-diff-remove-color: var(--vp-c-danger-soft);--vp-code-line-diff-remove-symbol-color: var(--vp-c-danger-1);--vp-code-line-warning-color: var(--vp-c-warning-soft);--vp-code-line-error-color: var(--vp-c-danger-soft);--vp-code-copy-code-border-color: var(--vp-c-divider);--vp-code-copy-code-bg: var(--vp-c-bg-soft);--vp-code-copy-code-hover-border-color: var(--vp-c-divider);--vp-code-copy-code-hover-bg: var(--vp-c-bg);--vp-code-copy-code-active-text: var(--vp-c-text-2);--vp-code-copy-copied-text-content: "Copied";--vp-code-tab-divider: var(--vp-code-block-divider-color);--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);--vp-code-tab-active-bar-color: var(--vp-c-brand-1)}:root{--vp-button-brand-border: transparent;--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand-3);--vp-button-brand-hover-border: transparent;--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-2);--vp-button-brand-active-border: transparent;--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-1);--vp-button-alt-border: transparent;--vp-button-alt-text: var(--vp-c-text-1);--vp-button-alt-bg: var(--vp-c-default-3);--vp-button-alt-hover-border: transparent;--vp-button-alt-hover-text: var(--vp-c-text-1);--vp-button-alt-hover-bg: var(--vp-c-default-2);--vp-button-alt-active-border: transparent;--vp-button-alt-active-text: var(--vp-c-text-1);--vp-button-alt-active-bg: var(--vp-c-default-1);--vp-button-sponsor-border: var(--vp-c-text-2);--vp-button-sponsor-text: var(--vp-c-text-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}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: transparent;--vp-custom-block-info-text: var(--vp-c-text-1);--vp-custom-block-info-bg: var(--vp-c-default-soft);--vp-custom-block-info-code-bg: var(--vp-c-default-soft);--vp-custom-block-note-border: transparent;--vp-custom-block-note-text: var(--vp-c-text-1);--vp-custom-block-note-bg: var(--vp-c-default-soft);--vp-custom-block-note-code-bg: var(--vp-c-default-soft);--vp-custom-block-tip-border: transparent;--vp-custom-block-tip-text: var(--vp-c-text-1);--vp-custom-block-tip-bg: var(--vp-c-tip-soft);--vp-custom-block-tip-code-bg: var(--vp-c-tip-soft);--vp-custom-block-important-border: transparent;--vp-custom-block-important-text: var(--vp-c-text-1);--vp-custom-block-important-bg: var(--vp-c-important-soft);--vp-custom-block-important-code-bg: var(--vp-c-important-soft);--vp-custom-block-warning-border: transparent;--vp-custom-block-warning-text: var(--vp-c-text-1);--vp-custom-block-warning-bg: var(--vp-c-warning-soft);--vp-custom-block-warning-code-bg: var(--vp-c-warning-soft);--vp-custom-block-danger-border: transparent;--vp-custom-block-danger-text: var(--vp-c-text-1);--vp-custom-block-danger-bg: var(--vp-c-danger-soft);--vp-custom-block-danger-code-bg: var(--vp-c-danger-soft);--vp-custom-block-caution-border: transparent;--vp-custom-block-caution-text: var(--vp-c-text-1);--vp-custom-block-caution-bg: var(--vp-c-caution-soft);--vp-custom-block-caution-code-bg: var(--vp-c-caution-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-info-code-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-switch-bg-color: var(--vp-c-default-soft)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg);--vp-nav-logo-height: 24px}.hide-nav{--vp-nav-height: 0px}.hide-nav .VPSidebar{--vp-nav-height: 22px}: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-1);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: transparent;--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-default-soft);--vp-badge-tip-border: transparent;--vp-badge-tip-text: var(--vp-c-tip-1);--vp-badge-tip-bg: var(--vp-c-tip-soft);--vp-badge-warning-border: transparent;--vp-badge-warning-text: var(--vp-c-warning-1);--vp-badge-warning-bg: var(--vp-c-warning-soft);--vp-badge-danger-border: transparent;--vp-badge-danger-text: var(--vp-c-danger-1);--vp-badge-danger-bg: var(--vp-c-danger-soft)}: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-1);--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-1);--vp-local-search-highlight-bg: var(--vp-c-brand-1);--vp-local-search-highlight-text: var(--vp-c-neutral-inverse)}@media (prefers-reduced-motion: reduce){*,:before,:after{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:initial!important;scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important}}*,: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);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}mjx-container{display:inline-block;margin:auto 2px -2px}mjx-container>svg{display:inline-block;margin:auto}[class^=vpi-],[class*=" vpi-"],.vp-icon{width:1em;height:1em}[class^=vpi-].bg,[class*=" vpi-"].bg,.vp-icon.bg{background-size:100% 100%;background-color:transparent}[class^=vpi-]:not(.bg),[class*=" vpi-"]:not(.bg),.vp-icon:not(.bg){-webkit-mask:var(--icon) no-repeat;mask:var(--icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit}.vpi-align-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M21 6H3M15 12H3M17 18H3'/%3E%3C/svg%3E")}.vpi-arrow-right,.vpi-arrow-down,.vpi-arrow-left,.vpi-arrow-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E")}.vpi-chevron-right,.vpi-chevron-down,.vpi-chevron-left,.vpi-chevron-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E")}.vpi-chevron-down,.vpi-arrow-down{transform:rotate(90deg)}.vpi-chevron-left,.vpi-arrow-left{transform:rotate(180deg)}.vpi-chevron-up,.vpi-arrow-up{transform:rotate(-90deg)}.vpi-square-pen{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7'/%3E%3Cpath d='M18.375 2.625a2.121 2.121 0 1 1 3 3L12 15l-4 1 1-4Z'/%3E%3C/svg%3E")}.vpi-plus{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E")}.vpi-sun{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41'/%3E%3C/svg%3E")}.vpi-moon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z'/%3E%3C/svg%3E")}.vpi-more-horizontal{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3Ccircle cx='19' cy='12' r='1'/%3E%3Ccircle cx='5' cy='12' r='1'/%3E%3C/svg%3E")}.vpi-languages{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m5 8 6 6M4 14l6-6 2-3M2 5h12M7 2h1M22 22l-5-10-5 10M14 18h6'/%3E%3C/svg%3E")}.vpi-heart{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%3E%3C/svg%3E")}.vpi-search{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E")}.vpi-layout-list{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='7' height='7' x='3' y='3' rx='1'/%3E%3Crect width='7' height='7' x='3' y='14' rx='1'/%3E%3Cpath d='M14 4h7M14 9h7M14 15h7M14 20h7'/%3E%3C/svg%3E")}.vpi-delete{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M20 5H9l-7 7 7 7h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2ZM18 9l-6 6M12 9l6 6'/%3E%3C/svg%3E")}.vpi-corner-down-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 10-5 5 5 5'/%3E%3Cpath d='M20 4v7a4 4 0 0 1-4 4H4'/%3E%3C/svg%3E")}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/svg%3E")}.vpi-social-discord{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418Z'/%3E%3C/svg%3E")}.vpi-social-facebook{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647Z'/%3E%3C/svg%3E")}.vpi-social-github{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E")}.vpi-social-instagram{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.03.084c-1.277.06-2.149.264-2.91.563a5.874 5.874 0 0 0-2.124 1.388 5.878 5.878 0 0 0-1.38 2.127C.321 4.926.12 5.8.064 7.076.008 8.354-.005 8.764.001 12.023c.007 3.259.021 3.667.083 4.947.061 1.277.264 2.149.563 2.911.308.789.72 1.457 1.388 2.123a5.872 5.872 0 0 0 2.129 1.38c.763.295 1.636.496 2.913.552 1.278.056 1.689.069 4.947.063 3.257-.007 3.668-.021 4.947-.082 1.28-.06 2.147-.265 2.91-.563a5.881 5.881 0 0 0 2.123-1.388 5.881 5.881 0 0 0 1.38-2.129c.295-.763.496-1.636.551-2.912.056-1.28.07-1.69.063-4.948-.006-3.258-.02-3.667-.081-4.947-.06-1.28-.264-2.148-.564-2.911a5.892 5.892 0 0 0-1.387-2.123 5.857 5.857 0 0 0-2.128-1.38C19.074.322 18.202.12 16.924.066 15.647.009 15.236-.006 11.977 0 8.718.008 8.31.021 7.03.084m.14 21.693c-1.17-.05-1.805-.245-2.228-.408a3.736 3.736 0 0 1-1.382-.895 3.695 3.695 0 0 1-.9-1.378c-.165-.423-.363-1.058-.417-2.228-.06-1.264-.072-1.644-.08-4.848-.006-3.204.006-3.583.061-4.848.05-1.169.246-1.805.408-2.228.216-.561.477-.96.895-1.382a3.705 3.705 0 0 1 1.379-.9c.423-.165 1.057-.361 2.227-.417 1.265-.06 1.644-.072 4.848-.08 3.203-.006 3.583.006 4.85.062 1.168.05 1.804.244 2.227.408.56.216.96.475 1.382.895.421.42.681.817.9 1.378.165.422.362 1.056.417 2.227.06 1.265.074 1.645.08 4.848.005 3.203-.006 3.583-.061 4.848-.051 1.17-.245 1.805-.408 2.23-.216.56-.477.96-.896 1.38a3.705 3.705 0 0 1-1.378.9c-.422.165-1.058.362-2.226.418-1.266.06-1.645.072-4.85.079-3.204.007-3.582-.006-4.848-.06m9.783-16.192a1.44 1.44 0 1 0 1.437-1.442 1.44 1.44 0 0 0-1.437 1.442M5.839 12.012a6.161 6.161 0 1 0 12.323-.024 6.162 6.162 0 0 0-12.323.024M8 12.008A4 4 0 1 1 12.008 16 4 4 0 0 1 8 12.008'/%3E%3C/svg%3E")}.vpi-social-linkedin{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065 2.064 2.064 0 1 1 2.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z'/%3E%3C/svg%3E")}.vpi-social-mastodon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.268 5.313c-.35-2.578-2.617-4.61-5.304-5.004C17.51.242 15.792 0 11.813 0h-.03c-3.98 0-4.835.242-5.288.309C3.882.692 1.496 2.518.917 5.127.64 6.412.61 7.837.661 9.143c.074 1.874.088 3.745.26 5.611.118 1.24.325 2.47.62 3.68.55 2.237 2.777 4.098 4.96 4.857 2.336.792 4.849.923 7.256.38.265-.061.527-.132.786-.213.585-.184 1.27-.39 1.774-.753a.057.057 0 0 0 .023-.043v-1.809a.052.052 0 0 0-.02-.041.053.053 0 0 0-.046-.01 20.282 20.282 0 0 1-4.709.545c-2.73 0-3.463-1.284-3.674-1.818a5.593 5.593 0 0 1-.319-1.433.053.053 0 0 1 .066-.054c1.517.363 3.072.546 4.632.546.376 0 .75 0 1.125-.01 1.57-.044 3.224-.124 4.768-.422.038-.008.077-.015.11-.024 2.435-.464 4.753-1.92 4.989-5.604.008-.145.03-1.52.03-1.67.002-.512.167-3.63-.024-5.545zm-3.748 9.195h-2.561V8.29c0-1.309-.55-1.976-1.67-1.976-1.23 0-1.846.79-1.846 2.35v3.403h-2.546V8.663c0-1.56-.617-2.35-1.848-2.35-1.112 0-1.668.668-1.67 1.977v6.218H4.822V8.102c0-1.31.337-2.35 1.011-3.12.696-.77 1.608-1.164 2.74-1.164 1.311 0 2.302.5 2.962 1.498l.638 1.06.638-1.06c.66-.999 1.65-1.498 2.96-1.498 1.13 0 2.043.395 2.74 1.164.675.77 1.012 1.81 1.012 3.12z'/%3E%3C/svg%3E")}.vpi-social-npm{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M1.763 0C.786 0 0 .786 0 1.763v20.474C0 23.214.786 24 1.763 24h20.474c.977 0 1.763-.786 1.763-1.763V1.763C24 .786 23.214 0 22.237 0zM5.13 5.323l13.837.019-.009 13.836h-3.464l.01-10.382h-3.456L12.04 19.17H5.113z'/%3E%3C/svg%3E")}.vpi-social-slack{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zm0 1.271a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zm10.122 2.521a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zm-1.268 0a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zm-2.523 10.122a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zm0-1.268a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z'/%3E%3C/svg%3E")}.vpi-social-twitter,.vpi-social-x{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z'/%3E%3C/svg%3E")}.vpi-social-youtube{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z'/%3E%3C/svg%3E")}.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.info a,.custom-block.info code{color:var(--vp-c-brand-1)}.custom-block.info a:hover,.custom-block.info a:hover>code{color:var(--vp-c-brand-2)}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.note{border-color:var(--vp-custom-block-note-border);color:var(--vp-custom-block-note-text);background-color:var(--vp-custom-block-note-bg)}.custom-block.note a,.custom-block.note code{color:var(--vp-c-brand-1)}.custom-block.note a:hover,.custom-block.note a:hover>code{color:var(--vp-c-brand-2)}.custom-block.note code{background-color:var(--vp-custom-block-note-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 a,.custom-block.tip code{color:var(--vp-c-tip-1)}.custom-block.tip a:hover,.custom-block.tip a:hover>code{color:var(--vp-c-tip-2)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.important{border-color:var(--vp-custom-block-important-border);color:var(--vp-custom-block-important-text);background-color:var(--vp-custom-block-important-bg)}.custom-block.important a,.custom-block.important code{color:var(--vp-c-important-1)}.custom-block.important a:hover,.custom-block.important a:hover>code{color:var(--vp-c-important-2)}.custom-block.important code{background-color:var(--vp-custom-block-important-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 a,.custom-block.warning code{color:var(--vp-c-warning-1)}.custom-block.warning a:hover,.custom-block.warning a:hover>code{color:var(--vp-c-warning-2)}.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 a,.custom-block.danger code{color:var(--vp-c-danger-1)}.custom-block.danger a:hover,.custom-block.danger a:hover>code{color:var(--vp-c-danger-2)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.caution{border-color:var(--vp-custom-block-caution-border);color:var(--vp-custom-block-caution-text);background-color:var(--vp-custom-block-caution-bg)}.custom-block.caution a,.custom-block.caution code{color:var(--vp-c-caution-1)}.custom-block.caution a:hover,.custom-block.caution a:hover>code{color:var(--vp-c-caution-2)}.custom-block.caution code{background-color:var(--vp-custom-block-caution-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 a{color:var(--vp-c-brand-1)}.custom-block.details a:hover,.custom-block.details a:hover>code{color:var(--vp-c-brand-2)}.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;-webkit-user-select:none;user-select:none}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px;transition:opacity .25s}.custom-block a:hover{opacity:.75}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.custom-block.custom-block th,.custom-block.custom-block blockquote>p{font-size:var(--vp-custom-block-font-size);color:inherit}.dark .vp-code span{color:var(--shiki-dark, inherit)}html:not(.dark) .vp-code span{color:var(--shiki-light, inherit)}.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;box-shadow:inset 0 -1px var(--vp-code-tab-divider)}@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:fixed;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:2px;border-radius:2px;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-],.vp-block{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,.vp-block.active{display:block}.vp-block{padding:20px 24px}.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{position:absolute;top:0;left:0;margin-left:-.87em;font-weight:500;-webkit-user-select:none;user-select:none;opacity:0;text-decoration:none;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 h2 .header-anchor{top:24px}.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-1);text-decoration:underline;text-underline-offset:2px;transition:color .25s,opacity .25s}.vp-doc a:hover{color:var(--vp-c-brand-2)}.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{background-color:var(--vp-c-bg);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 div[class*=language-]{margin:8px 0;border-radius:8px}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc .custom-block .vp-code-group .tabs{margin:0;border-radius:8px 8px 0 0}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size);color:var(--vp-code-color)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;background-color:var(--vp-code-bg);transition:color .25s,background-color .5s}.vp-doc a>code{color:var(--vp-code-link-color)}.vp-doc a:hover>code{color:var(--vp-code-link-hover-color)}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code{font-size:.9em}.vp-doc div[class*=language-],.vp-block{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-],.vp-block{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;transform:translate(calc(-100% - 1px));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;padding:0 10px;width:fit-content;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:var(--vp-code-copy-copied-text-content)}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;color:var(--vp-code-lang-color);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}:is(.vp-external-link-icon,.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(.no-icon):after{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;background:currentColor;color:var(--vp-c-text-3);flex-shrink:0;--icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E");-webkit-mask-image:var(--icon);mask-image:var(--icon)}.vp-external-link-icon:after{content:""}.external-link-icon-enabled :is(.vp-doc a[href*="://"],.vp-doc a[target=_blank]):after{content:"";color:currentColor}.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:0 0 4px!important;text-align:center;letter-spacing:1px!important;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-default-soft)}.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{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:12px;padding:0 10px;line-height:22px;font-size:12px;font-weight:500;transform:translateY(-2px)}.VPBadge.small{padding:0 6px;line-height:18px;font-size:10px;transform:translateY(-8px)}.VPDocFooter .VPBadge{display:none}.vp-doc h1>.VPBadge{margin-top:4px;vertical-align:top}.vp-doc h2>.VPBadge{margin-top:3px;padding:0 8px;vertical-align:top}.vp-doc h3>.VPBadge{vertical-align:middle}.vp-doc h4>.VPBadge,.vp-doc h5>.VPBadge,.vp-doc h6>.VPBadge{vertical-align:middle;line-height:18px}.VPBadge.info{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPBackdrop[data-v-245d2ac5]{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-245d2ac5],.VPBackdrop.fade-leave-to[data-v-245d2ac5]{opacity:0}.VPBackdrop.fade-leave-active[data-v-245d2ac5]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-245d2ac5]{display:none}}.NotFound[data-v-3124a226]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-3124a226]{padding:96px 32px 168px}}.code[data-v-3124a226]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-3124a226]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-3124a226]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-3124a226]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-3124a226]{padding-top:20px}.link[data-v-3124a226]{display:inline-block;border:1px solid var(--vp-c-brand-1);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:border-color .25s,color .25s}.link[data-v-3124a226]:hover{border-color:var(--vp-c-brand-2);color:var(--vp-c-brand-2)}.root[data-v-58ec0246]{position:relative;z-index:1}.nested[data-v-58ec0246]{padding-right:16px;padding-left:16px}.outline-link[data-v-58ec0246]{display:block;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s}.outline-link[data-v-58ec0246]:hover,.outline-link.active[data-v-58ec0246]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-58ec0246]{padding-left:13px}.VPDocAsideOutline[data-v-4a63de48]{display:none}.VPDocAsideOutline.has-outline[data-v-4a63de48]{display:block}.content[data-v-4a63de48]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-4a63de48]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:2px;border-radius:2px;height:18px;background-color:var(--vp-c-brand-1);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-4a63de48]{line-height:32px;font-size:14px;font-weight:600}.VPDocAside[data-v-465fd2fa]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-465fd2fa]{flex-grow:1}.VPDocAside[data-v-465fd2fa] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-465fd2fa] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-465fd2fa] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-4fc3eeca]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-4fc3eeca]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-311e5358]{margin-top:64px}.edit-info[data-v-311e5358]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-311e5358]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-311e5358]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.edit-link-button[data-v-311e5358]:hover{color:var(--vp-c-brand-2)}.edit-link-icon[data-v-311e5358]{margin-right:8px}.prev-next[data-v-311e5358]{border-top:1px solid var(--vp-c-divider);padding-top:24px;display:grid;grid-row-gap:8px}@media (min-width: 640px){.prev-next[data-v-311e5358]{grid-template-columns:repeat(2,1fr);grid-column-gap:16px}}.pager-link[data-v-311e5358]{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-311e5358]:hover{border-color:var(--vp-c-brand-1)}.pager-link.next[data-v-311e5358]{margin-left:auto;text-align:right}.desc[data-v-311e5358]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-311e5358]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.VPDoc[data-v-13d3b166]{padding:32px 24px 96px;width:100%}@media (min-width: 768px){.VPDoc[data-v-13d3b166]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-13d3b166]{padding:48px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-13d3b166]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-13d3b166]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-13d3b166]{display:flex;justify-content:center}.VPDoc .aside[data-v-13d3b166]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-13d3b166]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-13d3b166]{max-width:1104px}}.container[data-v-13d3b166]{margin:0 auto;width:100%}.aside[data-v-13d3b166]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.left-aside[data-v-13d3b166]{order:1;padding-left:unset;padding-right:32px}.aside-container[data-v-13d3b166]{position:fixed;top:0;padding-top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 48px);width:224px;height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-13d3b166]::-webkit-scrollbar{display:none}.aside-curtain[data-v-13d3b166]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-13d3b166]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px));padding-bottom:32px}.content[data-v-13d3b166]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-13d3b166]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-13d3b166]{order:1;margin:0;min-width:640px}}.content-container[data-v-13d3b166]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-13d3b166]{max-width:688px}.VPButton[data-v-12f1d0a0]{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-12f1d0a0]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-12f1d0a0]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-12f1d0a0]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-12f1d0a0]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-12f1d0a0]: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-12f1d0a0]: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-12f1d0a0]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-12f1d0a0]: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-12f1d0a0]: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-12f1d0a0]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-12f1d0a0]: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-12f1d0a0]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}html:not(.dark) .VPImage.dark[data-v-17155ade]{display:none}.dark .VPImage.light[data-v-17155ade]{display:none}.VPHero[data-v-99eed858]{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-99eed858]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-99eed858]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-99eed858]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-99eed858]{flex-direction:row}}.main[data-v-99eed858]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-99eed858]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-99eed858]{text-align:left}}@media (min-width: 960px){.main[data-v-99eed858]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-99eed858]{max-width:592px}}.name[data-v-99eed858],.text[data-v-99eed858]{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-99eed858],.VPHero.has-image .text[data-v-99eed858]{margin:0 auto}.name[data-v-99eed858]{color:var(--vp-home-hero-name-color)}.clip[data-v-99eed858]{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-99eed858],.text[data-v-99eed858]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-99eed858],.text[data-v-99eed858]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-99eed858],.VPHero.has-image .text[data-v-99eed858]{margin:0}}.tagline[data-v-99eed858]{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-99eed858]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-99eed858]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-99eed858]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-99eed858]{margin:0}}.actions[data-v-99eed858]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-99eed858]{justify-content:center}@media (min-width: 640px){.actions[data-v-99eed858]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-99eed858]{justify-content:flex-start}}.action[data-v-99eed858]{flex-shrink:0;padding:6px}.image[data-v-99eed858]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-99eed858]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-99eed858]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-99eed858]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-99eed858]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-99eed858]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-99eed858]{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-99eed858]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-99eed858]{width:320px;height:320px}}[data-v-99eed858] .image-src{position:absolute;top:50%;left:50%;max-width:192px;max-height:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-99eed858] .image-src{max-width:256px;max-height:256px}}@media (min-width: 960px){[data-v-99eed858] .image-src{max-width:320px;max-height:320px}}.VPFeature[data-v-4d50477a]{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-4d50477a]:hover{border-color:var(--vp-c-brand-1)}.box[data-v-4d50477a]{display:flex;flex-direction:column;padding:24px;height:100%}.box[data-v-4d50477a]>.VPImage{margin-bottom:20px}.icon[data-v-4d50477a]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-default-soft);width:48px;height:48px;font-size:24px;transition:background-color .25s}.title[data-v-4d50477a]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-4d50477a]{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-4d50477a]{padding-top:8px}.link-text-value[data-v-4d50477a]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.link-text-icon[data-v-4d50477a]{margin-left:6px}.VPFeatures[data-v-ac86b7e6]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-ac86b7e6]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-ac86b7e6]{padding:0 64px}}.container[data-v-ac86b7e6]{margin:0 auto;max-width:1152px}.items[data-v-ac86b7e6]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-ac86b7e6]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-ac86b7e6],.item.grid-4[data-v-ac86b7e6],.item.grid-6[data-v-ac86b7e6]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-ac86b7e6],.item.grid-4[data-v-ac86b7e6]{width:50%}.item.grid-3[data-v-ac86b7e6],.item.grid-6[data-v-ac86b7e6]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-ac86b7e6]{width:25%}}.container[data-v-5fb900b2]{margin:auto;width:100%;max-width:1280px;padding:0 24px}@media (min-width: 640px){.container[data-v-5fb900b2]{padding:0 48px}}@media (min-width: 960px){.container[data-v-5fb900b2]{width:100%;padding:0 64px}}.vp-doc[data-v-5fb900b2] .VPHomeSponsors,.vp-doc[data-v-5fb900b2] .VPTeamPage{margin-left:var(--vp-offset, calc(50% - 50vw) );margin-right:var(--vp-offset, calc(50% - 50vw) )}.vp-doc[data-v-5fb900b2] .VPHomeSponsors h2{border-top:none;letter-spacing:normal}.vp-doc[data-v-5fb900b2] .VPHomeSponsors a,.vp-doc[data-v-5fb900b2] .VPTeamPage a{text-decoration:none}.VPHome[data-v-c5e107f6]{margin-bottom:96px}@media (min-width: 768px){.VPHome[data-v-c5e107f6]{margin-bottom:128px}}.VPContent[data-v-787a1e06]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-787a1e06]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-787a1e06]{margin:0}@media (min-width: 960px){.VPContent[data-v-787a1e06]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-787a1e06]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-787a1e06]{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-0a38b38c]{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-0a38b38c]{display:none}.VPFooter[data-v-0a38b38c] a{text-decoration-line:underline;text-underline-offset:2px;transition:color .25s}.VPFooter[data-v-0a38b38c] a:hover{color:var(--vp-c-text-1)}@media (min-width: 768px){.VPFooter[data-v-0a38b38c]{padding:32px}}.container[data-v-0a38b38c]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-0a38b38c],.copyright[data-v-0a38b38c]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.VPLocalNavOutlineDropdown[data-v-ce15bf42]{padding:12px 20px 11px}@media (min-width: 960px){.VPLocalNavOutlineDropdown[data-v-ce15bf42]{padding:12px 36px 11px}}.VPLocalNavOutlineDropdown button[data-v-ce15bf42]{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-ce15bf42]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPLocalNavOutlineDropdown button.open[data-v-ce15bf42]{color:var(--vp-c-text-1)}.icon[data-v-ce15bf42]{display:inline-block;vertical-align:middle;margin-left:2px;font-size:14px;transform:rotate(0);transition:transform .25s}@media (min-width: 960px){.VPLocalNavOutlineDropdown button[data-v-ce15bf42]{font-size:14px}.icon[data-v-ce15bf42]{font-size:16px}}.open>.icon[data-v-ce15bf42]{transform:rotate(90deg)}.items[data-v-ce15bf42]{position:absolute;top:40px;right:16px;left:16px;display:grid;gap:1px;border:1px solid var(--vp-c-border);border-radius:8px;background-color:var(--vp-c-gutter);max-height:calc(var(--vp-vh, 100vh) - 86px);overflow:hidden auto;box-shadow:var(--vp-shadow-3)}@media (min-width: 960px){.items[data-v-ce15bf42]{right:auto;left:calc(var(--vp-sidebar-width) + 32px);width:320px}}.header[data-v-ce15bf42]{background-color:var(--vp-c-bg-soft)}.top-link[data-v-ce15bf42]{display:block;padding:0 16px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.outline[data-v-ce15bf42]{padding:8px 0;background-color:var(--vp-c-bg-soft)}.flyout-enter-active[data-v-ce15bf42]{transition:all .2s ease-out}.flyout-leave-active[data-v-ce15bf42]{transition:all .15s ease-in}.flyout-enter-from[data-v-ce15bf42],.flyout-leave-to[data-v-ce15bf42]{opacity:0;transform:translateY(-16px)}.VPLocalNav[data-v-c7fa3a03]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);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-c7fa3a03]{position:fixed}@media (min-width: 960px){.VPLocalNav[data-v-c7fa3a03]{top:var(--vp-nav-height)}.VPLocalNav.has-sidebar[data-v-c7fa3a03]{padding-left:var(--vp-sidebar-width)}.VPLocalNav.empty[data-v-c7fa3a03]{display:none}}@media (min-width: 1280px){.VPLocalNav[data-v-c7fa3a03]{display:none}}@media (min-width: 1440px){.VPLocalNav.has-sidebar[data-v-c7fa3a03]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.container[data-v-c7fa3a03]{display:flex;justify-content:space-between;align-items:center}.menu[data-v-c7fa3a03]{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-c7fa3a03]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-c7fa3a03]{padding:0 32px}}@media (min-width: 960px){.menu[data-v-c7fa3a03]{display:none}}.menu-icon[data-v-c7fa3a03]{margin-right:8px;font-size:14px}.VPOutlineDropdown[data-v-c7fa3a03]{padding:12px 24px 11px}@media (min-width: 768px){.VPOutlineDropdown[data-v-c7fa3a03]{padding:12px 32px 11px}}.VPSwitch[data-v-e775a51b]{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!important}.VPSwitch[data-v-e775a51b]:hover{border-color:var(--vp-c-brand-1)}.check[data-v-e775a51b]{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!important}.icon[data-v-e775a51b]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-e775a51b] [class^=vpi-]{position:absolute;top:3px;left:3px;width:12px;height:12px;color:var(--vp-c-text-2)}.dark .icon[data-v-e775a51b] [class^=vpi-]{color:var(--vp-c-text-1);transition:opacity .25s!important}.sun[data-v-f327c0eb]{opacity:1}.moon[data-v-f327c0eb],.dark .sun[data-v-f327c0eb]{opacity:0}.dark .moon[data-v-f327c0eb]{opacity:1}.dark .VPSwitchAppearance[data-v-f327c0eb] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-920ea739]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-920ea739]{display:flex;align-items:center}}.VPMenuGroup+.VPMenuLink[data-v-84ccf230]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-84ccf230]{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-84ccf230]:hover{color:var(--vp-c-brand-1);background-color:var(--vp-c-default-soft)}.link.active[data-v-84ccf230]{color:var(--vp-c-brand-1)}.VPMenuGroup[data-v-f7f49da0]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-f7f49da0]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-f7f49da0]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-f7f49da0]{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-e8d68d95]{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-e8d68d95] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-e8d68d95] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-e8d68d95] .group:last-child{padding-bottom:0}.VPMenu[data-v-e8d68d95] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-e8d68d95] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-e8d68d95] .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-e8d68d95] .action{padding-left:24px}.VPFlyout[data-v-c0b03d55]{position:relative}.VPFlyout[data-v-c0b03d55]:hover{color:var(--vp-c-brand-1);transition:color .25s}.VPFlyout:hover .text[data-v-c0b03d55]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-c0b03d55]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-c0b03d55]{color:var(--vp-c-brand-1)}.VPFlyout.active:hover .text[data-v-c0b03d55]{color:var(--vp-c-brand-2)}.VPFlyout:hover .menu[data-v-c0b03d55],.button[aria-expanded=true]+.menu[data-v-c0b03d55]{opacity:1;visibility:visible;transform:translateY(0)}.button[aria-expanded=false]+.menu[data-v-c0b03d55]{opacity:0;visibility:hidden;transform:translateY(0)}.button[data-v-c0b03d55]{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-c0b03d55]{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-c0b03d55]{margin-right:0;font-size:16px}.text-icon[data-v-c0b03d55]{margin-left:4px;font-size:14px}.icon[data-v-c0b03d55]{font-size:20px;transition:fill .25s}.menu[data-v-c0b03d55]{position:absolute;top:calc(var(--vp-nav-height) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}.VPSocialLink[data-v-054ad44b]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-054ad44b]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-054ad44b]>svg,.VPSocialLink[data-v-054ad44b]>[class^=vpi-social-]{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-26c7e433]{display:flex;justify-content:center}.VPNavBarExtra[data-v-3d53e9c7]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-3d53e9c7]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-3d53e9c7]{display:none}}.trans-title[data-v-3d53e9c7]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-3d53e9c7],.item.social-links[data-v-3d53e9c7]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-3d53e9c7]{min-width:176px}.appearance-action[data-v-3d53e9c7]{margin-right:-2px}.social-links-list[data-v-3d53e9c7]{margin:-4px -8px}.VPNavBarHamburger[data-v-3428b086]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-3428b086]{display:none}}.container[data-v-3428b086]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-3428b086]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-3428b086]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-3428b086]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-3428b086]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-3428b086]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-3428b086]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-3428b086],.VPNavBarHamburger.active:hover .middle[data-v-3428b086],.VPNavBarHamburger.active:hover .bottom[data-v-3428b086]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-3428b086],.middle[data-v-3428b086],.bottom[data-v-3428b086]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-3428b086]{top:0;left:0;transform:translate(0)}.middle[data-v-3428b086]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-3428b086]{top:12px;left:0;transform:translate(4px)}.VPNavBarMenuLink[data-v-a12bafb5]{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-a12bafb5],.VPNavBarMenuLink[data-v-a12bafb5]:hover{color:var(--vp-c-brand-1)}.VPNavBarMenu[data-v-25f68e44]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-25f68e44]{display:flex}}/*! @docsearch/css 3.5.2 | 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;-webkit-user-select:none;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{-webkit-appearance:none;-moz-appearance:none;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{-webkit-appearance:none;-moz-appearance:none;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;-webkit-appearance:none;-moz-appearance: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;-webkit-appearance:none;-moz-appearance:none;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;-webkit-user-select:none;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{-webkit-appearance:none;-moz-appearance:none;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:#0003;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:#0003;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{-webkit-appearance:none;-moz-appearance:none;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;-webkit-user-select:none;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{-webkit-appearance:none;-moz-appearance:none;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;-webkit-user-select:none;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}[class*=DocSearch]{--docsearch-primary-color: var(--vp-c-brand-1);--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-background: transparent;--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 [class*=DocSearch]{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: var(--vp-c-text-2);--docsearch-hit-background: var(--vp-c-default-soft);--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-1);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:0!important}.DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"Ctrl";font-size:12px;letter-spacing:normal;color:var(--docsearch-muted-color)}.mac .DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"⌘"}.DocSearch-Button .DocSearch-Button-Key:first-child>*{display:none}.DocSearch-Search-Icon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke-width='1.6' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='m14.386 14.386 4.088 4.088-4.088-4.088A7.533 7.533 0 1 1 3.733 3.733a7.533 7.533 0 0 1 10.653 10.653z'/%3E%3C/svg%3E")}.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-1);background-color:var(--vp-c-white)}.dark .DocSearch-Form{background-color:var(--vp-c-default-soft)}.DocSearch-Screen-Icon>svg{margin:auto}.VPNavBarSocialLinks[data-v-1db4960e]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-1db4960e]{display:flex;align-items:center}}.title[data-v-bd7b7032]{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-bd7b7032]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-bd7b7032]{border-bottom-color:var(--vp-c-divider)}}[data-v-bd7b7032] .logo{margin-right:8px;height:var(--vp-nav-logo-height)}.VPNavBarTranslations[data-v-e020314f]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-e020314f]{display:flex;align-items:center}}.title[data-v-e020314f]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPNavBar[data-v-50076c89]{position:relative;height:var(--vp-nav-height);pointer-events:none;white-space:nowrap;transition:background-color .5s}.VPNavBar.has-local-nav[data-v-50076c89]{background-color:var(--vp-nav-bg-color)}@media (min-width: 960px){.VPNavBar.has-local-nav[data-v-50076c89]{background-color:transparent}.VPNavBar[data-v-50076c89]:not(.has-sidebar):not(.top){background-color:var(--vp-nav-bg-color)}}.wrapper[data-v-50076c89]{padding:0 8px 0 24px}@media (min-width: 768px){.wrapper[data-v-50076c89]{padding:0 32px}}@media (min-width: 960px){.VPNavBar.has-sidebar .wrapper[data-v-50076c89]{padding:0}}.container[data-v-50076c89]{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-50076c89],.container>.content[data-v-50076c89]{pointer-events:none}.container[data-v-50076c89] *{pointer-events:auto}@media (min-width: 960px){.VPNavBar.has-sidebar .container[data-v-50076c89]{max-width:100%}}.title[data-v-50076c89]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .title[data-v-50076c89]{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-50076c89]{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-50076c89]{flex-grow:1}@media (min-width: 960px){.VPNavBar.has-sidebar .content[data-v-50076c89]{position:relative;z-index:1;padding-right:32px;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .content[data-v-50076c89]{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-50076c89]{display:flex;justify-content:flex-end;align-items:center;height:var(--vp-nav-height);transition:background-color .5s}@media (min-width: 960px){.VPNavBar:not(.top) .content-body[data-v-50076c89]{position:relative;background-color:var(--vp-nav-bg-color)}.VPNavBar:not(.has-sidebar):not(.top) .content-body[data-v-50076c89]{background-color:transparent}}@media (max-width: 767px){.content-body[data-v-50076c89]{column-gap:.5rem}}.menu+.translations[data-v-50076c89]:before,.menu+.appearance[data-v-50076c89]:before,.menu+.social-links[data-v-50076c89]:before,.translations+.appearance[data-v-50076c89]:before,.appearance+.social-links[data-v-50076c89]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-50076c89]:before,.translations+.appearance[data-v-50076c89]:before{margin-right:16px}.appearance+.social-links[data-v-50076c89]:before{margin-left:16px}.social-links[data-v-50076c89]{margin-right:-8px}.divider[data-v-50076c89]{width:100%;height:1px}@media (min-width: 960px){.VPNavBar.has-sidebar .divider[data-v-50076c89]{padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .divider[data-v-50076c89]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.divider-line[data-v-50076c89]{width:100%;height:1px;transition:background-color .5s}.VPNavBar.has-local-nav .divider-line[data-v-50076c89]{background-color:var(--vp-c-gutter)}@media (min-width: 960px){.VPNavBar:not(.top) .divider-line[data-v-50076c89]{background-color:var(--vp-c-gutter)}.VPNavBar:not(.has-sidebar):not(.top) .divider[data-v-50076c89]{background-color:var(--vp-c-gutter)}}.VPNavScreenAppearance[data-v-624c4525]{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-624c4525]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenMenuLink[data-v-8291b0a7]{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-8291b0a7]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupLink[data-v-83f458d8]{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-83f458d8]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupSection[data-v-b6357329]{display:block}.title[data-v-b6357329]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-4a5b86bc]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-4a5b86bc]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-4a5b86bc]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-4a5b86bc]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-4a5b86bc]{padding-bottom:6px;color:var(--vp-c-brand-1)}.VPNavScreenMenuGroup.open .button-icon[data-v-4a5b86bc]{transform:rotate(45deg)}.button[data-v-4a5b86bc]{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-4a5b86bc]:hover{color:var(--vp-c-brand-1)}.button-icon[data-v-4a5b86bc]{transition:transform .25s}.group[data-v-4a5b86bc]:first-child{padding-top:0}.group+.group[data-v-4a5b86bc],.group+.item[data-v-4a5b86bc]{padding-top:4px}.VPNavScreenTranslations[data-v-af240698]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-af240698]{height:auto}.title[data-v-af240698]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-af240698]{font-size:16px}.icon.lang[data-v-af240698]{margin-right:8px}.icon.chevron[data-v-af240698]{margin-left:4px}.list[data-v-af240698]{padding:4px 0 0 24px}.link[data-v-af240698]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-dd8956c7]{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-dd8956c7],.VPNavScreen.fade-leave-active[data-v-dd8956c7]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-dd8956c7],.VPNavScreen.fade-leave-active .container[data-v-dd8956c7]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-dd8956c7],.VPNavScreen.fade-leave-to[data-v-dd8956c7]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-dd8956c7],.VPNavScreen.fade-leave-to .container[data-v-dd8956c7]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-dd8956c7]{display:none}}.container[data-v-dd8956c7]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-dd8956c7],.menu+.appearance[data-v-dd8956c7],.translations+.appearance[data-v-dd8956c7]{margin-top:24px}.menu+.social-links[data-v-dd8956c7]{margin-top:16px}.appearance+.social-links[data-v-dd8956c7]{margin-top:16px}.VPNav[data-v-2892230d]{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-2892230d]{position:fixed}}.VPSidebarItem.level-0[data-v-8f61602b]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-8f61602b]{padding-bottom:10px}.item[data-v-8f61602b]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-8f61602b]{cursor:pointer}.indicator[data-v-8f61602b]{position:absolute;top:6px;bottom:6px;left:-17px;width:2px;border-radius:2px;transition:background-color .25s}.VPSidebarItem.level-2.is-active>.item>.indicator[data-v-8f61602b],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-8f61602b],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-8f61602b],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-8f61602b]{background-color:var(--vp-c-brand-1)}.link[data-v-8f61602b]{display:flex;align-items:center;flex-grow:1}.text[data-v-8f61602b]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-8f61602b]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-8f61602b],.VPSidebarItem.level-2 .text[data-v-8f61602b],.VPSidebarItem.level-3 .text[data-v-8f61602b],.VPSidebarItem.level-4 .text[data-v-8f61602b],.VPSidebarItem.level-5 .text[data-v-8f61602b]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-8f61602b],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-8f61602b],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-8f61602b],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-8f61602b],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-8f61602b],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-8f61602b]{color:var(--vp-c-brand-1)}.VPSidebarItem.level-0.has-active>.item>.text[data-v-8f61602b],.VPSidebarItem.level-1.has-active>.item>.text[data-v-8f61602b],.VPSidebarItem.level-2.has-active>.item>.text[data-v-8f61602b],.VPSidebarItem.level-3.has-active>.item>.text[data-v-8f61602b],.VPSidebarItem.level-4.has-active>.item>.text[data-v-8f61602b],.VPSidebarItem.level-5.has-active>.item>.text[data-v-8f61602b],.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-8f61602b],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-8f61602b],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-8f61602b],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-8f61602b],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-8f61602b],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-8f61602b]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-8f61602b],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-8f61602b],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-8f61602b],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-8f61602b],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-8f61602b],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-8f61602b]{color:var(--vp-c-brand-1)}.caret[data-v-8f61602b]{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;flex-shrink:0}.item:hover .caret[data-v-8f61602b]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-8f61602b]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-8f61602b]{font-size:18px;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-8f61602b]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-8f61602b],.VPSidebarItem.level-2 .items[data-v-8f61602b],.VPSidebarItem.level-3 .items[data-v-8f61602b],.VPSidebarItem.level-4 .items[data-v-8f61602b],.VPSidebarItem.level-5 .items[data-v-8f61602b]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-8f61602b]{display:none}.VPSidebar[data-v-eb38e9cf]{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-eb38e9cf]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-eb38e9cf]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-eb38e9cf]{padding-top:var(--vp-nav-height);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-eb38e9cf]{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-eb38e9cf]{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-eb38e9cf]{outline:0}.group+.group[data-v-eb38e9cf]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media (min-width: 960px){.group[data-v-eb38e9cf]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPSkipLink[data-v-ce070715]{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-1);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-ce070715]:focus{height:auto;width:auto;clip:auto;clip-path:none}@media (min-width: 1280px){.VPSkipLink[data-v-ce070715]{top:14px;left:16px}}.Layout[data-v-a534ac59]{display:flex;flex-direction:column;min-height:100vh}.VPHomeSponsors[data-v-345bb51a]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPHomeSponsors[data-v-345bb51a]{margin:96px 0}@media (min-width: 768px){.VPHomeSponsors[data-v-345bb51a]{margin:128px 0}}.VPHomeSponsors[data-v-345bb51a]{padding:0 24px}@media (min-width: 768px){.VPHomeSponsors[data-v-345bb51a]{padding:0 48px}}@media (min-width: 960px){.VPHomeSponsors[data-v-345bb51a]{padding:0 64px}}.container[data-v-345bb51a]{margin:0 auto;max-width:1152px}.love[data-v-345bb51a]{margin:0 auto;width:fit-content;font-size:28px;color:var(--vp-c-text-3)}.icon[data-v-345bb51a]{display:inline-block}.message[data-v-345bb51a]{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-345bb51a]{padding-top:32px}.action[data-v-345bb51a]{padding-top:40px;text-align:center}.VPTeamPage[data-v-6df1e013]{margin:96px 0}@media (min-width: 768px){.VPTeamPage[data-v-6df1e013]{margin:128px 0}}.VPHome .VPTeamPageTitle[data-v-6df1e013-s]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPTeamPageSection+.VPTeamPageSection[data-v-6df1e013-s],.VPTeamMembers+.VPTeamPageSection[data-v-6df1e013-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-6df1e013-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-6df1e013-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-6df1e013-s],.VPTeamMembers+.VPTeamPageSection[data-v-6df1e013-s]{margin-top:96px}}.VPTeamMembers[data-v-6df1e013-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-6df1e013-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-6df1e013-s]{padding:0 64px}}.VPTeamPageTitle[data-v-b41786c2]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-b41786c2]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-b41786c2]{padding:80px 64px 48px}}.title[data-v-b41786c2]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-b41786c2]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-b41786c2]{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-b41786c2]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}.VPTeamPageSection[data-v-e012f2ba]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-e012f2ba]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-e012f2ba]{padding:0 64px}}.title[data-v-e012f2ba]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-e012f2ba]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider)}.title-text[data-v-e012f2ba]{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-e012f2ba]{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-e012f2ba]{padding-top:40px}.VPTeamMembersItem[data-v-79138619]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-79138619]{padding:32px}.VPTeamMembersItem.small .data[data-v-79138619]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-79138619]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-79138619]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-79138619]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-79138619]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-79138619]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-79138619]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-79138619]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-79138619]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-79138619]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-79138619]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-79138619]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-79138619]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-79138619]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-79138619]{text-align:center}.avatar[data-v-79138619]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-79138619]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-79138619]{margin:0;font-weight:600}.affiliation[data-v-79138619]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-79138619]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-79138619]:hover{color:var(--vp-c-brand-1)}.desc[data-v-79138619]{margin:0 auto}.desc[data-v-79138619] a{font-weight:500;color:var(--vp-c-brand-1);text-decoration-style:dotted;transition:color .25s}.links[data-v-79138619]{display:flex;justify-content:center;height:56px}.sp-link[data-v-79138619]{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-79138619]:hover,.sp .sp-link.link[data-v-79138619]:focus{outline:none;color:var(--vp-c-white);background-color:var(--vp-c-sponsor)}.sp-icon[data-v-79138619]{margin-right:8px;font-size:16px}.VPTeamMembers.small .container[data-v-299c5456]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-299c5456]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-299c5456]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-299c5456]{max-width:876px}.VPTeamMembers.medium .container[data-v-299c5456]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-299c5456]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-299c5456]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-299c5456]{max-width:760px}.container[data-v-299c5456]{display:grid;gap:24px;margin:0 auto;max-width:1152px}:root{--vp-c-brand-1: #148ca7;--vp-c-brand-2: #3286e5;--vp-button-brand-bg: #2a5889}.idraw-playground-preview{width:100%;height:540px;border:1px solid #cecece;margin:0 auto}@media screen and (max-width: 640px){.idraw-playground-preview{display:none}} diff --git a/docs/assets/zh-CN_api_add-element.md.cWrK0KKU.js b/docs/assets/zh-CN_api_add-element.md.C4ZJ4xPn.js similarity index 92% rename from docs/assets/zh-CN_api_add-element.md.cWrK0KKU.js rename to docs/assets/zh-CN_api_add-element.md.C4ZJ4xPn.js index 6812418..1ad7b07 100644 --- a/docs/assets/zh-CN_api_add-element.md.cWrK0KKU.js +++ b/docs/assets/zh-CN_api_add-element.md.C4ZJ4xPn.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as n,m as e}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"addElement","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/add-element.md","filePath":"zh-CN/api/add-element.md"}'),l={name:"zh-CN/api/add-element.md"},h=n(`

addElement

说明

addElement 对图画添加元素,并且触发重新渲染。

参数

  • {object} element 元素内容,具体元素数据格式可查询 画图元素
  • {object} { position?: number[] },可选配置,position 元素索引位置,比如 [1, 2] 代表把元素加入第2个元素(必须是Group类型)的第3个位置上。

返回值

  • {object} 返回完整的data数据。

用法

js
import { iDraw } from 'idraw';
+import{_ as s,c as i,o as a,a1 as n,j as e}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"addElement","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/add-element.md","filePath":"zh-CN/api/add-element.md"}'),l={name:"zh-CN/api/add-element.md"},h=n(`

addElement

说明

addElement 对图画添加元素,并且触发重新渲染。

参数

  • {object} element 元素内容,具体元素数据格式可查询 画图元素
  • {object} { position?: number[] },可选配置,position 元素索引位置,比如 [1, 2] 代表把元素加入第2个元素(必须是Group类型)的第3个位置上。

返回值

  • {object} 返回完整的data数据。

用法

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -22,4 +22,4 @@ import{_ as s,o as i,c as a,a2 as n,m as e}from"./chunks/framework.PNNbM9mo.js";
     borderWidth: 4,
     borderColor: '#ff6032'
   }
-});

示例

Demo完整预览 Playground >>

`,11),t=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-addElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,t];function k(d,r,E,o,c,g){return i(),a("div",null,p)}const m=s(l,[["render",k]]);export{F as __pageData,m as default}; +});

示例

Demo完整预览 Playground >>

`,11),t=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-addElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,t];function k(d,r,E,o,c,g){return a(),i("div",null,p)}const m=s(l,[["render",k]]);export{F as __pageData,m as default}; diff --git a/docs/assets/zh-CN_api_add-element.md.cWrK0KKU.lean.js b/docs/assets/zh-CN_api_add-element.md.C4ZJ4xPn.lean.js similarity index 72% rename from docs/assets/zh-CN_api_add-element.md.cWrK0KKU.lean.js rename to docs/assets/zh-CN_api_add-element.md.C4ZJ4xPn.lean.js index 90ec09c..a5ddcdf 100644 --- a/docs/assets/zh-CN_api_add-element.md.cWrK0KKU.lean.js +++ b/docs/assets/zh-CN_api_add-element.md.C4ZJ4xPn.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as n,m as e}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"addElement","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/add-element.md","filePath":"zh-CN/api/add-element.md"}'),l={name:"zh-CN/api/add-element.md"},h=n("",11),t=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-addElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,t];function k(d,r,E,o,c,g){return i(),a("div",null,p)}const m=s(l,[["render",k]]);export{F as __pageData,m as default}; +import{_ as s,c as i,o as a,a1 as n,j as e}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"addElement","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/add-element.md","filePath":"zh-CN/api/add-element.md"}'),l={name:"zh-CN/api/add-element.md"},h=n("",11),t=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-addElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,t];function k(d,r,E,o,c,g){return a(),i("div",null,p)}const m=s(l,[["render",k]]);export{F as __pageData,m as default}; diff --git a/docs/assets/zh-CN_api_center-content.md.6gCUd5A0.js b/docs/assets/zh-CN_api_center-content.md.Dl8fKLa0.js similarity index 89% rename from docs/assets/zh-CN_api_center-content.md.6gCUd5A0.js rename to docs/assets/zh-CN_api_center-content.md.Dl8fKLa0.js index a6fcb27..0908b63 100644 --- a/docs/assets/zh-CN_api_center-content.md.6gCUd5A0.js +++ b/docs/assets/zh-CN_api_center-content.md.Dl8fKLa0.js @@ -1,4 +1,4 @@ -import{_ as s,o as a,c as i,a2 as n,m as e}from"./chunks/framework.PNNbM9mo.js";const u=JSON.parse('{"title":"centerContent","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/center-content.md","filePath":"zh-CN/api/center-content.md"}'),t={name:"zh-CN/api/center-content.md"},l=n(`

centerContent

说明

centerContent 让内容在视图居中显示,如果内容尺寸超出视图,就会把内容按比例缩小居中在视图中。

参数

  • {object} options
    • {Data} options.data 可选,计算居中尺寸的新内容数据。

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
+import{_ as s,c as a,o as i,a1 as n,j as e}from"./chunks/framework.DVk8Vg-1.js";const u=JSON.parse('{"title":"centerContent","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/center-content.md","filePath":"zh-CN/api/center-content.md"}'),t={name:"zh-CN/api/center-content.md"},l=n(`

centerContent

说明

centerContent 让内容在视图居中显示,如果内容尺寸超出视图,就会把内容按比例缩小居中在视图中。

参数

  • {object} options
    • {Data} options.data 可选,计算居中尺寸的新内容数据。

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -13,4 +13,4 @@ import{_ as s,o as a,c as i,a2 as n,m as e}from"./chunks/framework.PNNbM9mo.js";
   ]
 });
 
-idraw.centerContent();

示例

Demo完整预览 Playground >>

`,11),h=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-centerContent&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function r(k,d,o,c,E,g){return a(),i("div",null,p)}const F=s(t,[["render",r]]);export{u as __pageData,F as default}; +idraw.centerContent();

示例

Demo完整预览 Playground >>

`,11),h=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-centerContent&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function r(k,d,o,c,E,g){return i(),a("div",null,p)}const F=s(t,[["render",r]]);export{u as __pageData,F as default}; diff --git a/docs/assets/zh-CN_api_center-content.md.6gCUd5A0.lean.js b/docs/assets/zh-CN_api_center-content.md.Dl8fKLa0.lean.js similarity index 72% rename from docs/assets/zh-CN_api_center-content.md.6gCUd5A0.lean.js rename to docs/assets/zh-CN_api_center-content.md.Dl8fKLa0.lean.js index dd5e332..f707bc1 100644 --- a/docs/assets/zh-CN_api_center-content.md.6gCUd5A0.lean.js +++ b/docs/assets/zh-CN_api_center-content.md.Dl8fKLa0.lean.js @@ -1 +1 @@ -import{_ as s,o as a,c as i,a2 as n,m as e}from"./chunks/framework.PNNbM9mo.js";const u=JSON.parse('{"title":"centerContent","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/center-content.md","filePath":"zh-CN/api/center-content.md"}'),t={name:"zh-CN/api/center-content.md"},l=n("",11),h=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-centerContent&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function r(k,d,o,c,E,g){return a(),i("div",null,p)}const F=s(t,[["render",r]]);export{u as __pageData,F as default}; +import{_ as s,c as a,o as i,a1 as n,j as e}from"./chunks/framework.DVk8Vg-1.js";const u=JSON.parse('{"title":"centerContent","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/center-content.md","filePath":"zh-CN/api/center-content.md"}'),t={name:"zh-CN/api/center-content.md"},l=n("",11),h=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-centerContent&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function r(k,d,o,c,E,g){return i(),a("div",null,p)}const F=s(t,[["render",r]]);export{u as __pageData,F as default}; diff --git a/docs/assets/zh-CN_api_delete-element.md.j4QWtj8O.js b/docs/assets/zh-CN_api_delete-element.md.DnCEuVI9.js similarity index 90% rename from docs/assets/zh-CN_api_delete-element.md.j4QWtj8O.js rename to docs/assets/zh-CN_api_delete-element.md.DnCEuVI9.js index 11121b9..8dae73c 100644 --- a/docs/assets/zh-CN_api_delete-element.md.j4QWtj8O.js +++ b/docs/assets/zh-CN_api_delete-element.md.DnCEuVI9.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as e,m as n}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"deleteElement","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/delete-element.md","filePath":"zh-CN/api/delete-element.md"}'),t={name:"zh-CN/api/delete-element.md"},l=e(`

deleteElement

说明

deleteElement 根据元素的uuid,将图画中对应的元素删除,并且触发重新渲染。

参数

  • {string} uuid 元素唯一ID

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
+import{_ as s,c as i,o as a,a1 as e,j as n}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"deleteElement","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/delete-element.md","filePath":"zh-CN/api/delete-element.md"}'),t={name:"zh-CN/api/delete-element.md"},l=e(`

deleteElement

说明

deleteElement 根据元素的uuid,将图画中对应的元素删除,并且触发重新渲染。

参数

  • {string} uuid 元素唯一ID

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -16,4 +16,4 @@ import{_ as s,o as i,c as a,a2 as e,m as n}from"./chunks/framework.PNNbM9mo.js";
 
 const uuid = idraw.getData().elements[0].uuid;
 
-idraw.deleteElement(uuid);

示例

Demo完整预览 Playground >>

`,11),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-deleteElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(d,r,E,o,c,g){return i(),a("div",null,p)}const u=s(t,[["render",k]]);export{F as __pageData,u as default}; +idraw.deleteElement(uuid);

示例

Demo完整预览 Playground >>

`,11),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-deleteElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(d,r,E,o,c,g){return a(),i("div",null,p)}const u=s(t,[["render",k]]);export{F as __pageData,u as default}; diff --git a/docs/assets/zh-CN_api_delete-element.md.j4QWtj8O.lean.js b/docs/assets/zh-CN_api_delete-element.md.DnCEuVI9.lean.js similarity index 72% rename from docs/assets/zh-CN_api_delete-element.md.j4QWtj8O.lean.js rename to docs/assets/zh-CN_api_delete-element.md.DnCEuVI9.lean.js index 09763f3..74f0278 100644 --- a/docs/assets/zh-CN_api_delete-element.md.j4QWtj8O.lean.js +++ b/docs/assets/zh-CN_api_delete-element.md.DnCEuVI9.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as e,m as n}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"deleteElement","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/delete-element.md","filePath":"zh-CN/api/delete-element.md"}'),t={name:"zh-CN/api/delete-element.md"},l=e("",11),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-deleteElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(d,r,E,o,c,g){return i(),a("div",null,p)}const u=s(t,[["render",k]]);export{F as __pageData,u as default}; +import{_ as s,c as i,o as a,a1 as e,j as n}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"deleteElement","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/delete-element.md","filePath":"zh-CN/api/delete-element.md"}'),t={name:"zh-CN/api/delete-element.md"},l=e("",11),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-deleteElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(d,r,E,o,c,g){return a(),i("div",null,p)}const u=s(t,[["render",k]]);export{F as __pageData,u as default}; diff --git a/docs/assets/zh-CN_api_enable-disable.md.ATviRUQS.js b/docs/assets/zh-CN_api_enable-disable.md.DWNcaloO.js similarity index 65% rename from docs/assets/zh-CN_api_enable-disable.md.ATviRUQS.js rename to docs/assets/zh-CN_api_enable-disable.md.DWNcaloO.js index 37c064f..74e5153 100644 --- a/docs/assets/zh-CN_api_enable-disable.md.ATviRUQS.js +++ b/docs/assets/zh-CN_api_enable-disable.md.DWNcaloO.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as e,m as l}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"enable/disable","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/enable-disable.md","filePath":"zh-CN/api/enable-disable.md"}'),n={name:"zh-CN/api/enable-disable.md"},h=e(`

enable/disable

说明

  • enable(...) 开启某个功能
  • disable(...) 关闭某个功能

参数

  • {IDrawFeature} feat 功能类型
    • 'ruler': 标尺功能
    • 'scroll': 滚动条功能
    • 'scale': 缩放功能
    • 'info': 信息显示功能,例如显示坐标信息
    • - 其它功能待开发 ...
ts
type IDrawFeature = 'ruler' | 'scroll' | 'scale' | 'info'; // TODO other feature

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
+import{_ as s,c as i,o as a,a1 as e,j as l}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"enable/disable","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/enable-disable.md","filePath":"zh-CN/api/enable-disable.md"}'),n={name:"zh-CN/api/enable-disable.md"},h=e(`

enable/disable

说明

  • enable(...) 开启某个功能
  • disable(...) 关闭某个功能

参数

  • {IDrawFeature} feat 功能类型
    • 'ruler': 标尺功能
    • 'scroll': 滚动条功能
    • 'scale': 缩放功能
    • 'info': 信息显示功能,例如显示坐标信息
    • 'selectInGroup': 在组合中选择元素
    • 'snapToGrid': 对其到网格和辅助线
    • - 其它功能待开发 ...
ts
type IDrawFeature = 'ruler' | 'scroll' | 'scale' | 'info' | 'selectInGroup' | 'snapToGrid'; // TODO other feature

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -12,4 +12,4 @@ import{_ as s,o as i,c as a,a2 as e,m as l}from"./chunks/framework.PNNbM9mo.js";
 
 setTimeout(() => {
   idraw.enable('ruler');
-}, 1000);

示例

Demo完整预览 Playground >>

`,12),t=l("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-enable&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,t];function k(r,d,o,E,c,g){return i(),a("div",null,p)}const u=s(n,[["render",k]]);export{F as __pageData,u as default}; +}, 1000);

示例

Demo完整预览 Playground >>

`,12),t=l("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-enable&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,t];function k(r,d,o,E,c,g){return a(),i("div",null,p)}const u=s(n,[["render",k]]);export{F as __pageData,u as default}; diff --git a/docs/assets/zh-CN_api_enable-disable.md.ATviRUQS.lean.js b/docs/assets/zh-CN_api_enable-disable.md.DWNcaloO.lean.js similarity index 72% rename from docs/assets/zh-CN_api_enable-disable.md.ATviRUQS.lean.js rename to docs/assets/zh-CN_api_enable-disable.md.DWNcaloO.lean.js index 6742266..3bf162f 100644 --- a/docs/assets/zh-CN_api_enable-disable.md.ATviRUQS.lean.js +++ b/docs/assets/zh-CN_api_enable-disable.md.DWNcaloO.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as e,m as l}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"enable/disable","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/enable-disable.md","filePath":"zh-CN/api/enable-disable.md"}'),n={name:"zh-CN/api/enable-disable.md"},h=e("",12),t=l("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-enable&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,t];function k(r,d,o,E,c,g){return i(),a("div",null,p)}const u=s(n,[["render",k]]);export{F as __pageData,u as default}; +import{_ as s,c as i,o as a,a1 as e,j as l}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"enable/disable","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/enable-disable.md","filePath":"zh-CN/api/enable-disable.md"}'),n={name:"zh-CN/api/enable-disable.md"},h=e("",12),t=l("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-enable&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,t];function k(r,d,o,E,c,g){return a(),i("div",null,p)}const u=s(n,[["render",k]]);export{F as __pageData,u as default}; diff --git a/docs/assets/zh-CN_api_get-data.md._9ZhWQCT.js b/docs/assets/zh-CN_api_get-data.md.DqveOB1M.js similarity index 90% rename from docs/assets/zh-CN_api_get-data.md._9ZhWQCT.js rename to docs/assets/zh-CN_api_get-data.md.DqveOB1M.js index ed425d3..b20efe2 100644 --- a/docs/assets/zh-CN_api_get-data.md._9ZhWQCT.js +++ b/docs/assets/zh-CN_api_get-data.md.DqveOB1M.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as n,m as h}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"getData","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/get-data.md","filePath":"zh-CN/api/get-data.md"}'),l={name:"zh-CN/api/get-data.md"},t=n(`

getData

说明

getData 用于获取当前画图内容的数据。

参数

  • {object} options 选项,非必填
    • {boolean} options.compact 压缩,非必选

返回值

  • {object} data 图画的JSON对象数据

用法

js
import { iDraw } from 'idraw';
+import{_ as s,c as i,o as a,a1 as n,j as h}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"getData","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/get-data.md","filePath":"zh-CN/api/get-data.md"}'),t={name:"zh-CN/api/get-data.md"},l=n(`

getData

说明

getData 用于获取当前画图内容的数据。

参数

  • {object} options 选项,非必填
    • {boolean} options.compact 压缩,非必选

返回值

  • {object} data 图画的JSON对象数据

用法

js
import { iDraw } from 'idraw';
 
 const data = {
   elements: [
@@ -30,4 +30,4 @@ import{_ as s,o as i,c as a,a2 as n,m as h}from"./chunks/framework.PNNbM9mo.js";
 idraw.setData(data);
 
 const resultData = idraw.getData();
-console.log(resultData);

示例

Demo完整预览 Playground >>

`,11),p=h("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-getData&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),e=[t,p];function k(E,r,d,o,g,c){return i(),a("div",null,e)}const C=s(l,[["render",k]]);export{F as __pageData,C as default}; +console.log(resultData);

示例

Demo完整预览 Playground >>

`,11),e=h("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-getData&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,e];function k(E,r,d,o,g,c){return a(),i("div",null,p)}const C=s(t,[["render",k]]);export{F as __pageData,C as default}; diff --git a/docs/assets/zh-CN_api_get-data.md.DqveOB1M.lean.js b/docs/assets/zh-CN_api_get-data.md.DqveOB1M.lean.js new file mode 100644 index 0000000..dd4f8c0 --- /dev/null +++ b/docs/assets/zh-CN_api_get-data.md.DqveOB1M.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a1 as n,j as h}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"getData","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/get-data.md","filePath":"zh-CN/api/get-data.md"}'),t={name:"zh-CN/api/get-data.md"},l=n("",11),e=h("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-getData&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,e];function k(E,r,d,o,g,c){return a(),i("div",null,p)}const C=s(t,[["render",k]]);export{F as __pageData,C as default}; diff --git a/docs/assets/zh-CN_api_get-data.md._9ZhWQCT.lean.js b/docs/assets/zh-CN_api_get-data.md._9ZhWQCT.lean.js deleted file mode 100644 index ed41073..0000000 --- a/docs/assets/zh-CN_api_get-data.md._9ZhWQCT.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as i,c as a,a2 as n,m as h}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"getData","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/get-data.md","filePath":"zh-CN/api/get-data.md"}'),l={name:"zh-CN/api/get-data.md"},t=n("",11),p=h("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-getData&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),e=[t,p];function k(E,r,d,o,g,c){return i(),a("div",null,e)}const C=s(l,[["render",k]]);export{F as __pageData,C as default}; diff --git a/docs/assets/zh-CN_api_get-image-blob-url.md.C9T4Eagc.js b/docs/assets/zh-CN_api_get-image-blob-url.md.C9T4Eagc.js new file mode 100644 index 0000000..8ecc913 --- /dev/null +++ b/docs/assets/zh-CN_api_get-image-blob-url.md.C9T4Eagc.js @@ -0,0 +1,11 @@ +import{_ as i,c as s,o as a,a1 as e,j as l}from"./chunks/framework.DVk8Vg-1.js";const y=JSON.parse('{"title":"getImageBlobURL","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/get-image-blob-url.md","filePath":"zh-CN/api/get-image-blob-url.md"}'),t={name:"zh-CN/api/get-image-blob-url.md"},n=e(`

getImageBlobURL

说明

getImageBlobURL 从画布中导出图像内容,把画布内容提取到内存Blob里,并生成图片的blobURL

参数

  • {object} options 导出图像的配置选项
    • {number} options.devicePixelRatio 设备像素比例,默认为 1

返回值

  • {Promise<object>} 返回完整的画布图像数据
    • {string} blobURL 画布图像在内存中的Blob链接
    • {number} width 导出图像逻辑像素的宽度
    • {number} height 导出图像逻辑像素的高度
    • {number} devicePixelRatio 导出图像的设备像素比例

用法

js
import { iDraw } from 'idraw';
+
+const app = document.querySelector('#app');
+const options = {
+  width: 600,
+  height: 400,
+  devicePixelRatio: 2
+};
+const idraw = new iDraw(app, options);
+
+const { blobURL } = await idraw.getImageBlobURL({ devicePixelRatio: 1 });

示例

Demo完整预览 Playground >>

`,11),h=l("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-getImageBlobURL&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[n,h];function o(d,r,k,c,g,E){return a(),s("div",null,p)}const u=i(t,[["render",o]]);export{y as __pageData,u as default}; diff --git a/docs/assets/zh-CN_api_get-image-blob-url.md.C9T4Eagc.lean.js b/docs/assets/zh-CN_api_get-image-blob-url.md.C9T4Eagc.lean.js new file mode 100644 index 0000000..f6ad8ac --- /dev/null +++ b/docs/assets/zh-CN_api_get-image-blob-url.md.C9T4Eagc.lean.js @@ -0,0 +1 @@ +import{_ as i,c as s,o as a,a1 as e,j as l}from"./chunks/framework.DVk8Vg-1.js";const y=JSON.parse('{"title":"getImageBlobURL","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/get-image-blob-url.md","filePath":"zh-CN/api/get-image-blob-url.md"}'),t={name:"zh-CN/api/get-image-blob-url.md"},n=e("",11),h=l("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-getImageBlobURL&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[n,h];function o(d,r,k,c,g,E){return a(),s("div",null,p)}const u=i(t,[["render",o]]);export{y as __pageData,u as default}; diff --git a/docs/assets/zh-CN_api_move-element.md.z-cVejVv.js b/docs/assets/zh-CN_api_move-element.md.DpAyahyc.js similarity index 90% rename from docs/assets/zh-CN_api_move-element.md.z-cVejVv.js rename to docs/assets/zh-CN_api_move-element.md.DpAyahyc.js index fb6dd6e..fdfb09f 100644 --- a/docs/assets/zh-CN_api_move-element.md.z-cVejVv.js +++ b/docs/assets/zh-CN_api_move-element.md.DpAyahyc.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as e,m as n}from"./chunks/framework.PNNbM9mo.js";const m=JSON.parse('{"title":"moveElement","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/move-element.md","filePath":"zh-CN/api/move-element.md"}'),t={name:"zh-CN/api/move-element.md"},l=e(`

moveElement

说明

moveElement 根据元素的uuid,将图画中对应的元素删除,并且触发重新渲染。

参数

  • {string} uuid 元素唯一ID
  • {number[]} position 将元素移动到指定索引位置。比如 [1, 2] 代表把元素移动到第2个元素(必须是Group类型)的第3个位置上。

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
+import{_ as s,c as i,o as a,a1 as e,j as n}from"./chunks/framework.DVk8Vg-1.js";const m=JSON.parse('{"title":"moveElement","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/move-element.md","filePath":"zh-CN/api/move-element.md"}'),t={name:"zh-CN/api/move-element.md"},l=e(`

moveElement

说明

moveElement 根据元素的uuid,将图画中对应的元素删除,并且触发重新渲染。

参数

  • {string} uuid 元素唯一ID
  • {number[]} position 将元素移动到指定索引位置。比如 [1, 2] 代表把元素移动到第2个元素(必须是Group类型)的第3个位置上。

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -16,4 +16,4 @@ import{_ as s,o as i,c as a,a2 as e,m as n}from"./chunks/framework.PNNbM9mo.js";
 
 const uuid = idraw.getData().elements[0].uuid;
 
-idraw.moveElement(uuid, { position: [1, 2] });

示例

Demo完整预览 Playground >>

`,11),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-deleteElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,o,E,c,g){return i(),a("div",null,p)}const F=s(t,[["render",k]]);export{m as __pageData,F as default}; +idraw.moveElement(uuid, { position: [1, 2] });

示例

Demo完整预览 Playground >>

`,11),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-deleteElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,o,E,c,g){return a(),i("div",null,p)}const F=s(t,[["render",k]]);export{m as __pageData,F as default}; diff --git a/docs/assets/zh-CN_api_move-element.md.z-cVejVv.lean.js b/docs/assets/zh-CN_api_move-element.md.DpAyahyc.lean.js similarity index 72% rename from docs/assets/zh-CN_api_move-element.md.z-cVejVv.lean.js rename to docs/assets/zh-CN_api_move-element.md.DpAyahyc.lean.js index 5e1d854..0c16096 100644 --- a/docs/assets/zh-CN_api_move-element.md.z-cVejVv.lean.js +++ b/docs/assets/zh-CN_api_move-element.md.DpAyahyc.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as e,m as n}from"./chunks/framework.PNNbM9mo.js";const m=JSON.parse('{"title":"moveElement","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/move-element.md","filePath":"zh-CN/api/move-element.md"}'),t={name:"zh-CN/api/move-element.md"},l=e("",11),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-deleteElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,o,E,c,g){return i(),a("div",null,p)}const F=s(t,[["render",k]]);export{m as __pageData,F as default}; +import{_ as s,c as i,o as a,a1 as e,j as n}from"./chunks/framework.DVk8Vg-1.js";const m=JSON.parse('{"title":"moveElement","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/move-element.md","filePath":"zh-CN/api/move-element.md"}'),t={name:"zh-CN/api/move-element.md"},l=e("",11),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-deleteElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,o,E,c,g){return a(),i("div",null,p)}const F=s(t,[["render",k]]);export{m as __pageData,F as default}; diff --git a/docs/assets/zh-CN_api_resize.md.aecMZXgm.js b/docs/assets/zh-CN_api_resize.md.CXioKRUY.js similarity index 90% rename from docs/assets/zh-CN_api_resize.md.aecMZXgm.js rename to docs/assets/zh-CN_api_resize.md.CXioKRUY.js index e55ec75..55c9cc8 100644 --- a/docs/assets/zh-CN_api_resize.md.aecMZXgm.js +++ b/docs/assets/zh-CN_api_resize.md.CXioKRUY.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as e,m as n}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"resize","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/resize.md","filePath":"zh-CN/api/resize.md"}'),l={name:"zh-CN/api/resize.md"},h=e(`

resize

说明

resize 可以对图画视图尺寸进行再次修改

参数

  • {object} options 视图尺寸选项
    • {number} options.width 画板宽度,非必选
    • {number} options.height 画板高度,非必选
    • {number} options.devicePixelRatio 设备像素比例,非必选

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
+import{_ as s,c as i,o as a,a1 as e,j as n}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"resize","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/resize.md","filePath":"zh-CN/api/resize.md"}'),l={name:"zh-CN/api/resize.md"},h=e(`

resize

说明

resize 可以对图画视图尺寸进行再次修改

参数

  • {object} options 视图尺寸选项
    • {number} options.width 画板宽度,非必选
    • {number} options.height 画板高度,非必选
    • {number} options.devicePixelRatio 设备像素比例,非必选

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -17,4 +17,4 @@ import{_ as s,o as i,c as a,a2 as e,m as n}from"./chunks/framework.PNNbM9mo.js";
   width: 300,
   height: 200,
   devicePixelRatio: 2
-});

示例

Demo完整预览 Playground >>

`,11),t=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-resize&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,t];function k(r,d,o,E,c,g){return i(),a("div",null,p)}const u=s(l,[["render",k]]);export{F as __pageData,u as default}; +});

示例

Demo完整预览 Playground >>

`,11),t=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-resize&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,t];function k(r,d,o,E,c,g){return a(),i("div",null,p)}const u=s(l,[["render",k]]);export{F as __pageData,u as default}; diff --git a/docs/assets/zh-CN_api_resize.md.aecMZXgm.lean.js b/docs/assets/zh-CN_api_resize.md.CXioKRUY.lean.js similarity index 71% rename from docs/assets/zh-CN_api_resize.md.aecMZXgm.lean.js rename to docs/assets/zh-CN_api_resize.md.CXioKRUY.lean.js index bc119a8..81f67e7 100644 --- a/docs/assets/zh-CN_api_resize.md.aecMZXgm.lean.js +++ b/docs/assets/zh-CN_api_resize.md.CXioKRUY.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as e,m as n}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"resize","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/resize.md","filePath":"zh-CN/api/resize.md"}'),l={name:"zh-CN/api/resize.md"},h=e("",11),t=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-resize&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,t];function k(r,d,o,E,c,g){return i(),a("div",null,p)}const u=s(l,[["render",k]]);export{F as __pageData,u as default}; +import{_ as s,c as i,o as a,a1 as e,j as n}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"resize","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/resize.md","filePath":"zh-CN/api/resize.md"}'),l={name:"zh-CN/api/resize.md"},h=e("",11),t=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-resize&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,t];function k(r,d,o,E,c,g){return a(),i("div",null,p)}const u=s(l,[["render",k]]);export{F as __pageData,u as default}; diff --git a/docs/assets/zh-CN_api_select-element.md.9SmQXMXH.js b/docs/assets/zh-CN_api_select-element.md.BHZAppH4.js similarity index 89% rename from docs/assets/zh-CN_api_select-element.md.9SmQXMXH.js rename to docs/assets/zh-CN_api_select-element.md.BHZAppH4.js index 8bd73cb..7acee0c 100644 --- a/docs/assets/zh-CN_api_select-element.md.9SmQXMXH.js +++ b/docs/assets/zh-CN_api_select-element.md.BHZAppH4.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as e,m as n}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"selectElement","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/select-element.md","filePath":"zh-CN/api/select-element.md"}'),t={name:"zh-CN/api/select-element.md"},l=e(`

selectElement

说明

selectElement 根据元素的UUID选中图画中的元素。

参数

  • {string} uuid 元素唯一ID

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
+import{_ as s,c as i,o as a,a1 as e,j as n}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"selectElement","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/select-element.md","filePath":"zh-CN/api/select-element.md"}'),t={name:"zh-CN/api/select-element.md"},l=e(`

selectElement

说明

selectElement 根据元素的UUID选中图画中的元素。

参数

  • {string} uuid 元素唯一ID

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
 
 const data = {
   elements: [
@@ -15,4 +15,4 @@ import{_ as s,o as i,c as a,a2 as e,m as n}from"./chunks/framework.PNNbM9mo.js";
 idraw.setData(data);
 const resultData = idraw.getData();
 
-idraw.selectElement(resultData.elements[0].uuid);

示例

Demo完整预览 Playground >>

`,11),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-selectElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,E,o,c,g){return i(),a("div",null,p)}const m=s(t,[["render",k]]);export{F as __pageData,m as default}; +idraw.selectElement(resultData.elements[0].uuid);

示例

Demo完整预览 Playground >>

`,11),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-selectElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,E,o,c,g){return a(),i("div",null,p)}const m=s(t,[["render",k]]);export{F as __pageData,m as default}; diff --git a/docs/assets/zh-CN_api_select-element.md.9SmQXMXH.lean.js b/docs/assets/zh-CN_api_select-element.md.BHZAppH4.lean.js similarity index 72% rename from docs/assets/zh-CN_api_select-element.md.9SmQXMXH.lean.js rename to docs/assets/zh-CN_api_select-element.md.BHZAppH4.lean.js index 532cab1..603e832 100644 --- a/docs/assets/zh-CN_api_select-element.md.9SmQXMXH.lean.js +++ b/docs/assets/zh-CN_api_select-element.md.BHZAppH4.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as e,m as n}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"selectElement","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/select-element.md","filePath":"zh-CN/api/select-element.md"}'),t={name:"zh-CN/api/select-element.md"},l=e("",11),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-selectElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,E,o,c,g){return i(),a("div",null,p)}const m=s(t,[["render",k]]);export{F as __pageData,m as default}; +import{_ as s,c as i,o as a,a1 as e,j as n}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"selectElement","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/select-element.md","filePath":"zh-CN/api/select-element.md"}'),t={name:"zh-CN/api/select-element.md"},l=e("",11),h=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-selectElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,E,o,c,g){return a(),i("div",null,p)}const m=s(t,[["render",k]]);export{F as __pageData,m as default}; diff --git a/docs/assets/zh-CN_api_set-data.md.j0eTmWAp.js b/docs/assets/zh-CN_api_set-data.md.DrJnKgnY.js similarity index 90% rename from docs/assets/zh-CN_api_set-data.md.j0eTmWAp.js rename to docs/assets/zh-CN_api_set-data.md.DrJnKgnY.js index d78912c..ceea0ba 100644 --- a/docs/assets/zh-CN_api_set-data.md.j0eTmWAp.js +++ b/docs/assets/zh-CN_api_set-data.md.DrJnKgnY.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as n,m as h}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"setData","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/set-data.md","filePath":"zh-CN/api/set-data.md"}'),t={name:"zh-CN/api/set-data.md"},l=n(`

setData

说明

setData 用于设置画图内容的数据,设置后会根据设置数据触发图画的重绘。

参数

  • {object} data 画图数据对象

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
+import{_ as s,c as i,o as a,a1 as n,j as h}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"setData","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/set-data.md","filePath":"zh-CN/api/set-data.md"}'),t={name:"zh-CN/api/set-data.md"},l=n(`

setData

说明

setData 用于设置画图内容的数据,设置后会根据设置数据触发图画的重绘。

参数

  • {object} data 画图数据对象

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -26,4 +26,4 @@ import{_ as s,o as i,c as a,a2 as n,m as h}from"./chunks/framework.PNNbM9mo.js";
     }
   ]
 };
-idraw.setData(data);

示例

Demo完整预览 Playground >>

`,11),p=h("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-setData&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),e=[l,p];function k(E,r,d,o,g,c){return i(),a("div",null,e)}const C=s(t,[["render",k]]);export{F as __pageData,C as default}; +idraw.setData(data);

示例

Demo完整预览 Playground >>

`,11),e=h("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-setData&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,e];function k(E,r,d,o,g,c){return a(),i("div",null,p)}const C=s(t,[["render",k]]);export{F as __pageData,C as default}; diff --git a/docs/assets/zh-CN_api_set-data.md.j0eTmWAp.lean.js b/docs/assets/zh-CN_api_set-data.md.DrJnKgnY.lean.js similarity index 52% rename from docs/assets/zh-CN_api_set-data.md.j0eTmWAp.lean.js rename to docs/assets/zh-CN_api_set-data.md.DrJnKgnY.lean.js index 4a4f3bc..4e3858d 100644 --- a/docs/assets/zh-CN_api_set-data.md.j0eTmWAp.lean.js +++ b/docs/assets/zh-CN_api_set-data.md.DrJnKgnY.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as n,m as h}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"setData","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/set-data.md","filePath":"zh-CN/api/set-data.md"}'),t={name:"zh-CN/api/set-data.md"},l=n("",11),p=h("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-setData&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),e=[l,p];function k(E,r,d,o,g,c){return i(),a("div",null,e)}const C=s(t,[["render",k]]);export{F as __pageData,C as default}; +import{_ as s,c as i,o as a,a1 as n,j as h}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"setData","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/set-data.md","filePath":"zh-CN/api/set-data.md"}'),t={name:"zh-CN/api/set-data.md"},l=n("",11),e=h("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-setData&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,e];function k(E,r,d,o,g,c){return a(),i("div",null,p)}const C=s(t,[["render",k]]);export{F as __pageData,C as default}; diff --git a/docs/assets/zh-CN_api_set-mode.md.UDWKcg3E.js b/docs/assets/zh-CN_api_set-mode.md.OQV2zwM7.js similarity index 66% rename from docs/assets/zh-CN_api_set-mode.md.UDWKcg3E.js rename to docs/assets/zh-CN_api_set-mode.md.OQV2zwM7.js index d7492ee..2e38927 100644 --- a/docs/assets/zh-CN_api_set-mode.md.UDWKcg3E.js +++ b/docs/assets/zh-CN_api_set-mode.md.OQV2zwM7.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as e,m as t}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"setMode","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/set-mode.md","filePath":"zh-CN/api/set-mode.md"}'),h={name:"zh-CN/api/set-mode.md"},n=e(`

setMode

说明

setMode 可以切换视图操作模式

参数

  • {IDrawType} mode 视图操作模式
    • 'select': 选择模式,也是默认模式,用于选择和编辑元素
    • 'drag': 拖拽模式,用于拖拽移动整体画布位置
    • 'readOnly': 只读模式,仅显示视图内容,无法进行编辑操作
ts
type IDrawMode = 'select' | 'drag' | 'readOnly';

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
+import{_ as s,c as i,o as a,a1 as e,j as t}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"setMode","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/set-mode.md","filePath":"zh-CN/api/set-mode.md"}'),n={name:"zh-CN/api/set-mode.md"},h=e(`

setMode

说明

setMode 可以切换视图操作模式

参数

  • {IDrawType} mode 视图操作模式
    • 'select': 选择模式,也是默认模式,用于选择和编辑元素
    • 'drag': 拖拽模式,用于拖拽移动整体画布位置
    • 'readOnly': 只读模式,仅显示视图内容,无法进行编辑操作
ts
type IDrawMode = 'select' | 'drag' | 'readOnly';

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -7,4 +7,4 @@ import{_ as s,o as i,c as a,a2 as e,m as t}from"./chunks/framework.PNNbM9mo.js";
   devicePixelRatio: 2
 };
 const idraw = new iDraw(app, options);
-idraw.setMode('readOnly');

示例

Demo完整预览 Playground >>

`,12),l=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-setMode&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[n,l];function k(d,r,o,c,E,g){return i(),a("div",null,p)}const u=s(h,[["render",k]]);export{F as __pageData,u as default}; +idraw.setMode('readOnly');

示例

Demo完整预览 Playground >>

`,12),l=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-setMode&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,l];function k(d,r,o,c,E,g){return a(),i("div",null,p)}const u=s(n,[["render",k]]);export{F as __pageData,u as default}; diff --git a/docs/assets/zh-CN_api_set-mode.md.OQV2zwM7.lean.js b/docs/assets/zh-CN_api_set-mode.md.OQV2zwM7.lean.js new file mode 100644 index 0000000..990f7d6 --- /dev/null +++ b/docs/assets/zh-CN_api_set-mode.md.OQV2zwM7.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a1 as e,j as t}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"setMode","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/set-mode.md","filePath":"zh-CN/api/set-mode.md"}'),n={name:"zh-CN/api/set-mode.md"},h=e("",12),l=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-setMode&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,l];function k(d,r,o,c,E,g){return a(),i("div",null,p)}const u=s(n,[["render",k]]);export{F as __pageData,u as default}; diff --git a/docs/assets/zh-CN_api_set-mode.md.UDWKcg3E.lean.js b/docs/assets/zh-CN_api_set-mode.md.UDWKcg3E.lean.js deleted file mode 100644 index 4db3895..0000000 --- a/docs/assets/zh-CN_api_set-mode.md.UDWKcg3E.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as i,c as a,a2 as e,m as t}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"setMode","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/set-mode.md","filePath":"zh-CN/api/set-mode.md"}'),h={name:"zh-CN/api/set-mode.md"},n=e("",12),l=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-setMode&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[n,l];function k(d,r,o,c,E,g){return i(),a("div",null,p)}const u=s(h,[["render",k]]);export{F as __pageData,u as default}; diff --git a/docs/assets/zh-CN_api_update-element.md.r7FOtd7Z.js b/docs/assets/zh-CN_api_update-element.md.B3atZaxl.js similarity index 91% rename from docs/assets/zh-CN_api_update-element.md.r7FOtd7Z.js rename to docs/assets/zh-CN_api_update-element.md.B3atZaxl.js index f654487..6c476ef 100644 --- a/docs/assets/zh-CN_api_update-element.md.r7FOtd7Z.js +++ b/docs/assets/zh-CN_api_update-element.md.B3atZaxl.js @@ -1,4 +1,4 @@ -import{_ as s,o as a,c as i,a2 as n,m as e}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"updateElement","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/update-element.md","filePath":"zh-CN/api/update-element.md"}'),t={name:"zh-CN/api/update-element.md"},l=n(`

updateElement

说明

updateElement 更新图画中的元素,并且触发重新渲染。

参数

  • {object} element 元素内容,具体元素数据格式可查询 画图元素

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
+import{_ as s,c as a,o as i,a1 as n,j as e}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"updateElement","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/update-element.md","filePath":"zh-CN/api/update-element.md"}'),t={name:"zh-CN/api/update-element.md"},l=n(`

updateElement

说明

updateElement 更新图画中的元素,并且触发重新渲染。

参数

  • {object} element 元素内容,具体元素数据格式可查询 画图元素

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
 
 const data = {
   elements: [
@@ -19,4 +19,4 @@ import{_ as s,o as a,c as i,a2 as n,m as e}from"./chunks/framework.PNNbM9mo.js";
 
 elem.detail.color = '#f0f0f0';
 
-idraw.updateData(elem);

示例

Demo完整预览 Playground >>

`,11),h=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-updateElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,E,o,c,g){return a(),i("div",null,p)}const u=s(t,[["render",k]]);export{F as __pageData,u as default}; +idraw.updateData(elem);

示例

Demo完整预览 Playground >>

`,11),h=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-updateElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,E,o,c,g){return i(),a("div",null,p)}const u=s(t,[["render",k]]);export{F as __pageData,u as default}; diff --git a/docs/assets/zh-CN_api_update-element.md.r7FOtd7Z.lean.js b/docs/assets/zh-CN_api_update-element.md.B3atZaxl.lean.js similarity index 72% rename from docs/assets/zh-CN_api_update-element.md.r7FOtd7Z.lean.js rename to docs/assets/zh-CN_api_update-element.md.B3atZaxl.lean.js index e6e3f77..353d106 100644 --- a/docs/assets/zh-CN_api_update-element.md.r7FOtd7Z.lean.js +++ b/docs/assets/zh-CN_api_update-element.md.B3atZaxl.lean.js @@ -1 +1 @@ -import{_ as s,o as a,c as i,a2 as n,m as e}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"updateElement","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/update-element.md","filePath":"zh-CN/api/update-element.md"}'),t={name:"zh-CN/api/update-element.md"},l=n("",11),h=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-updateElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,E,o,c,g){return a(),i("div",null,p)}const u=s(t,[["render",k]]);export{F as __pageData,u as default}; +import{_ as s,c as a,o as i,a1 as n,j as e}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"updateElement","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/api/update-element.md","filePath":"zh-CN/api/update-element.md"}'),t={name:"zh-CN/api/update-element.md"},l=n("",11),h=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=api-updateElement&header=false&sider=false&default-editor-split=50",width:"1000",height:"480",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,h];function k(r,d,E,o,c,g){return i(),a("div",null,p)}const u=s(t,[["render",k]]);export{F as __pageData,u as default}; diff --git a/docs/assets/zh-CN_element_circle.md.TXgGQoDH.js b/docs/assets/zh-CN_element_circle.md.DN6S-EXU.js similarity index 80% rename from docs/assets/zh-CN_element_circle.md.TXgGQoDH.js rename to docs/assets/zh-CN_element_circle.md.DN6S-EXU.js index fc35081..d439756 100644 --- a/docs/assets/zh-CN_element_circle.md.TXgGQoDH.js +++ b/docs/assets/zh-CN_element_circle.md.DN6S-EXU.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as n,m as t}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"圆形元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/circle.md","filePath":"zh-CN/element/circle.md"}'),l={name:"zh-CN/element/circle.md"},h=n(`

圆形元素

Circle

用来渲染圆形或椭圆形内容,具体格式如下所示:

ts
type Circle = {
+import{_ as s,c as i,o as a,a1 as n,j as t}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"圆形元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/circle.md","filePath":"zh-CN/element/circle.md"}'),l={name:"zh-CN/element/circle.md"},h=n(`

圆形元素

Circle

用来渲染圆形或椭圆形内容,具体格式如下所示:

ts
type Circle = {
   type: 'circle';
   x: number;
   y: number;
@@ -11,12 +11,12 @@ import{_ as s,o as i,c as a,a2 as n,m as t}from"./chunks/framework.PNNbM9mo.js";
     borderWidth?: number;
     borderColor?: number;
   };
-};

Circle.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

Circle.detail 数据格式

Circle 元素的detail属性

ts
type CircleDetail = {
+};

Circle.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

Circle.detail 数据格式

Circle 元素的detail属性

ts
type CircleDetail = {
   background?: string;
   background?: string;
   borderWidth?: number;
   borderColor?: string;
-};

Circle.detail 数据属性内容

属性说明类型默认值是否必填备注
background圆形颜色string-true例如 #000000
borderRadius边框角圆形半径number0false-
borderWidth边框宽度number0false-
borderColor边框颜色string-false例如 #000000

完整数据示例

js
const elementCircle = {
+};

Circle.detail 数据属性内容

属性说明类型默认值是否必填备注
background圆形颜色string-true例如 #000000
borderRadius边框角圆形半径number0false-
borderWidth边框宽度number0false-
borderColor边框颜色string-false例如 #000000

完整数据示例

js
const elementCircle = {
   name: 'circle',
   x: 160,
   y: 100,
@@ -30,4 +30,4 @@ import{_ as s,o as i,c as a,a2 as n,m as t}from"./chunks/framework.PNNbM9mo.js";
     borderWidth: 4,
     borderColor: '#3f51b5'
   }
-};

效果预览

Demo完整预览 Playground >>

`,15),e=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-circle&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),k=[h,e];function p(d,r,E,c,g,o){return i(),a("div",null,k)}const C=s(l,[["render",p]]);export{F as __pageData,C as default}; +};

效果预览

Demo完整预览 Playground >>

`,15),e=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-circle&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),k=[h,e];function p(d,r,E,c,g,o){return a(),i("div",null,k)}const C=s(l,[["render",p]]);export{F as __pageData,C as default}; diff --git a/docs/assets/zh-CN_element_circle.md.TXgGQoDH.lean.js b/docs/assets/zh-CN_element_circle.md.DN6S-EXU.lean.js similarity index 72% rename from docs/assets/zh-CN_element_circle.md.TXgGQoDH.lean.js rename to docs/assets/zh-CN_element_circle.md.DN6S-EXU.lean.js index 880c47a..86aba7f 100644 --- a/docs/assets/zh-CN_element_circle.md.TXgGQoDH.lean.js +++ b/docs/assets/zh-CN_element_circle.md.DN6S-EXU.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as n,m as t}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"圆形元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/circle.md","filePath":"zh-CN/element/circle.md"}'),l={name:"zh-CN/element/circle.md"},h=n("",15),e=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-circle&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),k=[h,e];function p(d,r,E,c,g,o){return i(),a("div",null,k)}const C=s(l,[["render",p]]);export{F as __pageData,C as default}; +import{_ as s,c as i,o as a,a1 as n,j as t}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"圆形元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/circle.md","filePath":"zh-CN/element/circle.md"}'),l={name:"zh-CN/element/circle.md"},h=n("",15),e=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-circle&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),k=[h,e];function p(d,r,E,c,g,o){return a(),i("div",null,k)}const C=s(l,[["render",p]]);export{F as __pageData,C as default}; diff --git a/docs/assets/zh-CN_element_group.md.5flfEW0e.js b/docs/assets/zh-CN_element_group.md.BOoVjFj6.js similarity index 79% rename from docs/assets/zh-CN_element_group.md.5flfEW0e.js rename to docs/assets/zh-CN_element_group.md.BOoVjFj6.js index 99524ba..c9577e2 100644 --- a/docs/assets/zh-CN_element_group.md.5flfEW0e.js +++ b/docs/assets/zh-CN_element_group.md.BOoVjFj6.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"组合元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/group.md","filePath":"zh-CN/element/group.md"}'),h={name:"zh-CN/element/group.md"},l=t(`

组合元素

Group

用来渲染组合内容,具体格式如下所示:

ts
type Group = {
+import{_ as s,c as i,o as a,a1 as t,j as n}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"组合元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/group.md","filePath":"zh-CN/element/group.md"}'),h={name:"zh-CN/element/group.md"},l=t(`

组合元素

Group

用来渲染组合内容,具体格式如下所示:

ts
type Group = {
   type: 'group';
   x: number;
   y: number;
@@ -12,13 +12,13 @@ import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";
     borderWidth?: number;
     borderColor?: number;
   };
-};

Group.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

Group.detail 数据格式

Rect 元素的detail属性

ts
type GroupDetail = {
+};

Group.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

Group.detail 数据格式

Rect 元素的detail属性

ts
type GroupDetail = {
   children: Array<Element>;
   background?: string;
   background?: string;
   borderWidth?: number;
   borderColor?: string;
-};

Group.detail 数据属性内容

属性说明类型默认值是否必填备注
children组合子元素Array<Element>-true例如 #000000
background组合矩形颜色string-false例如 #000000
borderRadius组合边框角圆形半径number0false-
borderWidth组合边框宽度number0false-
borderColor组合边框颜色string-false例如 #000000

完整数据示例

js
const elementGroup = {
+};

Group.detail 数据属性内容

属性说明类型默认值是否必填备注
children组合子元素Array<Element>-true例如 #000000
background组合矩形颜色string-false例如 #000000
borderRadius组合边框角圆形半径number0false-
borderWidth组合边框宽度number0false-
borderColor组合边框颜色string-false例如 #000000

完整数据示例

js
const elementGroup = {
   name: 'group',
   x: 160,
   y: 120,
@@ -29,4 +29,4 @@ import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";
   detail: {
     children: []
   }
-};

效果预览

Demo完整预览 Playground >>

`,15),e=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-group&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,e];function k(d,r,E,o,g,c){return i(),a("div",null,p)}const u=s(h,[["render",k]]);export{F as __pageData,u as default}; +};

效果预览

Demo完整预览 Playground >>

`,15),e=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-group&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,e];function k(d,r,E,o,g,c){return a(),i("div",null,p)}const u=s(h,[["render",k]]);export{F as __pageData,u as default}; diff --git a/docs/assets/zh-CN_element_group.md.5flfEW0e.lean.js b/docs/assets/zh-CN_element_group.md.BOoVjFj6.lean.js similarity index 72% rename from docs/assets/zh-CN_element_group.md.5flfEW0e.lean.js rename to docs/assets/zh-CN_element_group.md.BOoVjFj6.lean.js index bce0703..d6d5101 100644 --- a/docs/assets/zh-CN_element_group.md.5flfEW0e.lean.js +++ b/docs/assets/zh-CN_element_group.md.BOoVjFj6.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"组合元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/group.md","filePath":"zh-CN/element/group.md"}'),h={name:"zh-CN/element/group.md"},l=t("",15),e=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-group&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,e];function k(d,r,E,o,g,c){return i(),a("div",null,p)}const u=s(h,[["render",k]]);export{F as __pageData,u as default}; +import{_ as s,c as i,o as a,a1 as t,j as n}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"组合元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/group.md","filePath":"zh-CN/element/group.md"}'),h={name:"zh-CN/element/group.md"},l=t("",15),e=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-group&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,e];function k(d,r,E,o,g,c){return a(),i("div",null,p)}const u=s(h,[["render",k]]);export{F as __pageData,u as default}; diff --git a/docs/assets/zh-CN_element_html.md._O0oTlOn.js b/docs/assets/zh-CN_element_html.md.SdT9eFgT.js similarity index 85% rename from docs/assets/zh-CN_element_html.md._O0oTlOn.js rename to docs/assets/zh-CN_element_html.md.SdT9eFgT.js index f88814f..c4b32a0 100644 --- a/docs/assets/zh-CN_element_html.md._O0oTlOn.js +++ b/docs/assets/zh-CN_element_html.md.SdT9eFgT.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as n,m as l}from"./chunks/framework.PNNbM9mo.js";const y=JSON.parse('{"title":"HTML元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/html.md","filePath":"zh-CN/element/html.md"}'),t={name:"zh-CN/element/html.md"},h=n(`

HTML元素

HTML

用来渲染HTML代码片,具体格式如下所示:

ts
type HTML = {
+import{_ as s,c as i,o as a,a1 as n,j as l}from"./chunks/framework.DVk8Vg-1.js";const y=JSON.parse('{"title":"HTML元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/html.md","filePath":"zh-CN/element/html.md"}'),t={name:"zh-CN/element/html.md"},h=n(`

HTML元素

HTML

用来渲染HTML代码片,具体格式如下所示:

ts
type HTML = {
   type: 'html';
   x: number;
   y: number;
@@ -8,9 +8,9 @@ import{_ as s,o as i,c as a,a2 as n,m as l}from"./chunks/framework.PNNbM9mo.js";
   detail: {
     html: string;
   };
-};

HTML.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

HTML.detail 数据格式

HTML 元素的detail属性

ts
type HTMLDetail = {
+};

HTML.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

HTML.detail 数据格式

HTML 元素的detail属性

ts
type HTMLDetail = {
   html: string;
-};

HTML.detail 数据属性内容

属性说明类型默认值是否必填备注
htmlHTML代码片段string-true-

WARNING

注意 detail.html 里的 HTML代码片段暂时不支持依赖资源渲染,例如 <img /> 标签或者 cssbackground-image 属性

完整数据示例

js
const elementHTML = {
+};

HTML.detail 数据属性内容

属性说明类型默认值是否必填备注
htmlHTML代码片段string-true-

WARNING

注意 detail.html 里的 HTML代码片段暂时不支持依赖资源渲染,例如 <img /> 标签或者 cssbackground-image 属性

完整数据示例

js
const elementHTML = {
   name: 'html',
   x: 200,
   y: 120,
@@ -66,4 +66,4 @@ import{_ as s,o as i,c as a,a2 as n,m as l}from"./chunks/framework.PNNbM9mo.js";
       </div>
     \`
   }
-};

效果预览

Demo完整预览 Playground >>

`,16),p=l("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-html&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),e=[h,p];function k(d,r,F,E,g,c){return i(),a("div",null,e)}const C=s(t,[["render",k]]);export{y as __pageData,C as default}; +};

效果预览

Demo完整预览 Playground >>

`,16),p=l("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-html&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),e=[h,p];function k(d,r,F,E,g,c){return a(),i("div",null,e)}const C=s(t,[["render",k]]);export{y as __pageData,C as default}; diff --git a/docs/assets/zh-CN_element_html.md._O0oTlOn.lean.js b/docs/assets/zh-CN_element_html.md.SdT9eFgT.lean.js similarity index 71% rename from docs/assets/zh-CN_element_html.md._O0oTlOn.lean.js rename to docs/assets/zh-CN_element_html.md.SdT9eFgT.lean.js index db93982..0d0205b 100644 --- a/docs/assets/zh-CN_element_html.md._O0oTlOn.lean.js +++ b/docs/assets/zh-CN_element_html.md.SdT9eFgT.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as n,m as l}from"./chunks/framework.PNNbM9mo.js";const y=JSON.parse('{"title":"HTML元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/html.md","filePath":"zh-CN/element/html.md"}'),t={name:"zh-CN/element/html.md"},h=n("",16),p=l("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-html&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),e=[h,p];function k(d,r,F,E,g,c){return i(),a("div",null,e)}const C=s(t,[["render",k]]);export{y as __pageData,C as default}; +import{_ as s,c as i,o as a,a1 as n,j as l}from"./chunks/framework.DVk8Vg-1.js";const y=JSON.parse('{"title":"HTML元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/html.md","filePath":"zh-CN/element/html.md"}'),t={name:"zh-CN/element/html.md"},h=n("",16),p=l("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-html&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),e=[h,p];function k(d,r,F,E,g,c){return a(),i("div",null,e)}const C=s(t,[["render",k]]);export{y as __pageData,C as default}; diff --git a/docs/assets/zh-CN_element_image.md.a7TjGV-j.js b/docs/assets/zh-CN_element_image.md.ByVhe77K.js similarity index 80% rename from docs/assets/zh-CN_element_image.md.a7TjGV-j.js rename to docs/assets/zh-CN_element_image.md.ByVhe77K.js index f463a6c..96795e1 100644 --- a/docs/assets/zh-CN_element_image.md.a7TjGV-j.js +++ b/docs/assets/zh-CN_element_image.md.ByVhe77K.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as n,m as t}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"图片元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/image.md","filePath":"zh-CN/element/image.md"}'),e={name:"zh-CN/element/image.md"},h=n(`

图片元素

Image

用来渲染图片内容,具体格式如下所示:

ts
type Image = {
+import{_ as s,c as i,o as a,a1 as n,j as t}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"图片元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/image.md","filePath":"zh-CN/element/image.md"}'),e={name:"zh-CN/element/image.md"},h=n(`

图片元素

Image

用来渲染图片内容,具体格式如下所示:

ts
type Image = {
   type: 'image';
   x: number;
   y: number;
@@ -8,9 +8,9 @@ import{_ as s,o as i,c as a,a2 as n,m as t}from"./chunks/framework.PNNbM9mo.js";
   detail: {
     src: string;
   };
-};

Image.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

Image.detail 数据格式

Image元素的detail属性

ts
type ImageDetail = {
+};

Image.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

Image.detail 数据格式

Image元素的detail属性

ts
type ImageDetail = {
   src: string;
-};

Image.detail 数据属性内容

属性说明类型默认值是否必填备注
src图片数据源string-true可以是图片链接或图片Base64

完整数据示例

js
const elementImage = {
+};

Image.detail 数据属性内容

属性说明类型默认值是否必填备注
src图片数据源string-true可以是图片链接或图片Base64

完整数据示例

js
const elementImage = {
   name: 'image',
   x: 160,
   y: 100,
@@ -21,4 +21,4 @@ import{_ as s,o as i,c as a,a2 as n,m as t}from"./chunks/framework.PNNbM9mo.js";
   detail: {
     src: './image/github.png'
   }
-};

效果预览

Demo完整预览 Playground >>

`,15),l=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-image&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,l];function k(d,r,E,g,o,c){return i(),a("div",null,p)}const m=s(e,[["render",k]]);export{F as __pageData,m as default}; +};

效果预览

Demo完整预览 Playground >>

`,15),l=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-image&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,l];function k(d,r,E,g,o,c){return a(),i("div",null,p)}const m=s(e,[["render",k]]);export{F as __pageData,m as default}; diff --git a/docs/assets/zh-CN_element_image.md.a7TjGV-j.lean.js b/docs/assets/zh-CN_element_image.md.ByVhe77K.lean.js similarity index 72% rename from docs/assets/zh-CN_element_image.md.a7TjGV-j.lean.js rename to docs/assets/zh-CN_element_image.md.ByVhe77K.lean.js index 755aaff..28fd71c 100644 --- a/docs/assets/zh-CN_element_image.md.a7TjGV-j.lean.js +++ b/docs/assets/zh-CN_element_image.md.ByVhe77K.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as n,m as t}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"图片元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/image.md","filePath":"zh-CN/element/image.md"}'),e={name:"zh-CN/element/image.md"},h=n("",15),l=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-image&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,l];function k(d,r,E,g,o,c){return i(),a("div",null,p)}const m=s(e,[["render",k]]);export{F as __pageData,m as default}; +import{_ as s,c as i,o as a,a1 as n,j as t}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"图片元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/image.md","filePath":"zh-CN/element/image.md"}'),e={name:"zh-CN/element/image.md"},h=n("",15),l=t("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-image&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[h,l];function k(d,r,E,g,o,c){return a(),i("div",null,p)}const m=s(e,[["render",k]]);export{F as __pageData,m as default}; diff --git a/docs/assets/zh-CN_element_info.md.AultvWeM.js b/docs/assets/zh-CN_element_info.md.Bx5o2UrA.js similarity index 84% rename from docs/assets/zh-CN_element_info.md.AultvWeM.js rename to docs/assets/zh-CN_element_info.md.Bx5o2UrA.js index 39ce461..1af1525 100644 --- a/docs/assets/zh-CN_element_info.md.AultvWeM.js +++ b/docs/assets/zh-CN_element_info.md.Bx5o2UrA.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";const c=JSON.parse('{"title":"画图元素介绍","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/info.md","filePath":"zh-CN/element/info.md"}'),h={name:"zh-CN/element/info.md"},l=t(`

画图元素介绍

什么是 iDraw.js 画图元素?

iDraw.js 画图的内容都是基于“元素”构成的,画图的过程基本是围绕处理元素的位置、样式、内容等属性来实现画图的功能。

目前支持的有八种元素:

  1. Text 文本
  2. Rect 矩形
  3. Circle 圆形
  4. Image 图片
  5. SVG
  6. HTML
  7. Path 路径
  8. Group 组合

画图元素的信息

数据基本格式

tsx
type Element = {
+import{_ as s,c as i,o as a,a1 as t,j as n}from"./chunks/framework.DVk8Vg-1.js";const c=JSON.parse('{"title":"画图元素介绍","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/info.md","filePath":"zh-CN/element/info.md"}'),h={name:"zh-CN/element/info.md"},l=t(`

画图元素介绍

什么是 iDraw.js 画图元素?

iDraw.js 画图的内容都是基于“元素”构成的,画图的过程基本是围绕处理元素的位置、样式、内容等属性来实现画图的功能。

目前支持的有八种元素:

  1. Text 文本
  2. Rect 矩形
  3. Circle 圆形
  4. Image 图片
  5. SVG
  6. HTML
  7. Path 路径
  8. Group 组合

画图元素的信息

数据基本格式

tsx
type Element = {
   type: 'text' | 'rect' | 'circle' | 'image' | 'svg' | 'html' | 'path' | 'group';
   uuid: string;
   name?: string;
@@ -15,7 +15,7 @@ import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";
     limitRatio?: boolean;
   };
   extension?: { [key: string]: any } | any;
-};

元素的基本属性

属性说明类型默认值备注
type元素类型text| rect|circle|image|svg| html--
uuid唯一 IDstring-iDraw.js 内部会自动添加
name名称string--
xX 轴偏移量number--
yY 轴偏移量number--
w元素宽度number--
h元素高度number--
angle元素旋转角度number0[0, 360]
detail元素描述内容object (详情请查看各元素描述内容)--
operations.lock元素是否锁住booleanfalse元素锁住后就不能进行视图操作
operations.invisible元素是否不可见booleanfalse元素不可见就不会渲染
operations.limitRatio元素是否限制宽高比例boolean-在元素缩放时候,按照其宽高比例进行缩放

画图元素的使用

js
import { iDraw } from 'idraw';
+};

元素的基本属性

属性说明类型默认值备注
type元素类型text| rect|circle|image|svg| html--
uuid唯一 IDstring-iDraw.js 内部会自动添加
name名称string--
xX 轴偏移量number--
yY 轴偏移量number--
w元素宽度number--
h元素高度number--
angle元素旋转角度number0[0, 360]
detail元素描述内容object (详情请查看各元素描述内容)--
operations.lock元素是否锁住booleanfalse元素锁住后就不能进行视图操作
operations.invisible元素是否不可见booleanfalse元素不可见就不会渲染
operations.limitRatio元素是否限制宽高比例boolean-在元素缩放时候,按照其宽高比例进行缩放

画图元素的使用

js
import { iDraw } from 'idraw';
 
 import { iDraw } from 'idraw';
 const data = {
@@ -49,4 +49,4 @@ import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";
 });
 
 // 设置元素数据,渲染画图内容
-idraw.setData(data);

示例预览

Demo 完整预览 Playground >>

`,14),k=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-rect&header=false&sider=false&default-editor-split=50",frameborder:"no",border:"0"},null,-1),p=[l,k];function e(d,r,E,g,y,F){return i(),a("div",null,p)}const C=s(h,[["render",e]]);export{c as __pageData,C as default}; +idraw.setData(data);

示例预览

Demo 完整预览 Playground >>

`,14),k=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-rect&header=false&sider=false&default-editor-split=50",frameborder:"no",border:"0"},null,-1),p=[l,k];function e(d,r,E,g,y,F){return a(),i("div",null,p)}const C=s(h,[["render",e]]);export{c as __pageData,C as default}; diff --git a/docs/assets/zh-CN_element_info.md.AultvWeM.lean.js b/docs/assets/zh-CN_element_info.md.Bx5o2UrA.lean.js similarity index 68% rename from docs/assets/zh-CN_element_info.md.AultvWeM.lean.js rename to docs/assets/zh-CN_element_info.md.Bx5o2UrA.lean.js index ad108ec..7d8ab11 100644 --- a/docs/assets/zh-CN_element_info.md.AultvWeM.lean.js +++ b/docs/assets/zh-CN_element_info.md.Bx5o2UrA.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";const c=JSON.parse('{"title":"画图元素介绍","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/info.md","filePath":"zh-CN/element/info.md"}'),h={name:"zh-CN/element/info.md"},l=t("",14),k=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-rect&header=false&sider=false&default-editor-split=50",frameborder:"no",border:"0"},null,-1),p=[l,k];function e(d,r,E,g,y,F){return i(),a("div",null,p)}const C=s(h,[["render",e]]);export{c as __pageData,C as default}; +import{_ as s,c as i,o as a,a1 as t,j as n}from"./chunks/framework.DVk8Vg-1.js";const c=JSON.parse('{"title":"画图元素介绍","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/info.md","filePath":"zh-CN/element/info.md"}'),h={name:"zh-CN/element/info.md"},l=t("",14),k=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-rect&header=false&sider=false&default-editor-split=50",frameborder:"no",border:"0"},null,-1),p=[l,k];function e(d,r,E,g,y,F){return a(),i("div",null,p)}const C=s(h,[["render",e]]);export{c as __pageData,C as default}; diff --git a/docs/assets/zh-CN_element_path.md.J3z6LwN_.js b/docs/assets/zh-CN_element_path.md.Cez2ZCjd.js similarity index 90% rename from docs/assets/zh-CN_element_path.md.J3z6LwN_.js rename to docs/assets/zh-CN_element_path.md.Cez2ZCjd.js index 78b22a4..ca456f1 100644 --- a/docs/assets/zh-CN_element_path.md.J3z6LwN_.js +++ b/docs/assets/zh-CN_element_path.md.Cez2ZCjd.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as h,m as n}from"./chunks/framework.PNNbM9mo.js";const c=JSON.parse('{"title":"路径元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/path.md","filePath":"zh-CN/element/path.md"}'),k={name:"zh-CN/element/path.md"},t=h(`

路径元素

Path

用来渲染路径内容,具体格式如下所示:

ts
type Path = {
+import{_ as s,c as i,o as a,a1 as h,j as n}from"./chunks/framework.DVk8Vg-1.js";const c=JSON.parse('{"title":"路径元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/path.md","filePath":"zh-CN/element/path.md"}'),k={name:"zh-CN/element/path.md"},t=h(`

路径元素

Path

用来渲染路径内容,具体格式如下所示:

ts
type Path = {
   type: 'path';
   x: number;
   y: number;
@@ -19,7 +19,7 @@ import{_ as s,o as i,c as a,a2 as h,m as n}from"./chunks/framework.PNNbM9mo.js";
     strokeWidth?: number;
     strokeLineCap?: 'butt' | 'round' | 'square';
   };
-};

Path.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

Path.detail 数据格式

Rect 元素的detail属性

ts
type PathDetail = {
+};

Path.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

Path.detail 数据格式

Rect 元素的detail属性

ts
type PathDetail = {
   commands: Array<{
     type: 'M' | 'm' | 'L' | 'l' | 'H' | 'h' | 'V' | 'v' | 'C' | 'c' | 'S' | 's' | 'Q' | 'q' | 'T' | 't' | 'A' | 'a' | 'Z' | 'z';
     params: number[];
@@ -32,7 +32,7 @@ import{_ as s,o as i,c as a,a2 as h,m as n}from"./chunks/framework.PNNbM9mo.js";
   stroke?: string;
   strokeWidth?: number;
   strokeLineCap?: 'butt' | 'round' | 'square';
-};

Path.detail 数据属性内容

属性说明类型默认值是否必填备注
fill填充颜色string-true例如 #000000
stroke路径颜色string-true例如 #000000
strokeWidth路径宽度number0false-
strokeLineCap路径转折类型'butt' | 'round' | 'square'-true-
originX路径原始X位置number0false-
originY路径原始Y位置number0false-
originW路径原始宽度number0false-
originH路径原始高度number0false-

完整数据示例

js
const elementPath = {
+};

Path.detail 数据属性内容

属性说明类型默认值是否必填备注
fill填充颜色string-true例如 #000000
stroke路径颜色string-true例如 #000000
strokeWidth路径宽度number0false-
strokeLineCap路径转折类型'butt' | 'round' | 'square'-true-
originX路径原始X位置number0false-
originY路径原始Y位置number0false-
originW路径原始宽度number0false-
originH路径原始高度number0false-

完整数据示例

js
const elementPath = {
   uuid: '41d437b8-afbd-2d3d-14bc-912e26d3491f',
   x: 100,
   y: 100,
@@ -57,4 +57,4 @@ import{_ as s,o as i,c as a,a2 as h,m as n}from"./chunks/framework.PNNbM9mo.js";
     originH: 80,
     originW: 80
   }
-};

效果预览

Demo完整预览 Playground >>

`,15),l=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-path&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[t,l];function e(d,r,E,F,g,y){return i(),a("div",null,p)}const o=s(k,[["render",e]]);export{c as __pageData,o as default}; +};

效果预览

Demo完整预览 Playground >>

`,15),l=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-path&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[t,l];function e(d,r,E,F,g,y){return a(),i("div",null,p)}const o=s(k,[["render",e]]);export{c as __pageData,o as default}; diff --git a/docs/assets/zh-CN_element_path.md.J3z6LwN_.lean.js b/docs/assets/zh-CN_element_path.md.Cez2ZCjd.lean.js similarity index 71% rename from docs/assets/zh-CN_element_path.md.J3z6LwN_.lean.js rename to docs/assets/zh-CN_element_path.md.Cez2ZCjd.lean.js index d2cdb96..828b1e7 100644 --- a/docs/assets/zh-CN_element_path.md.J3z6LwN_.lean.js +++ b/docs/assets/zh-CN_element_path.md.Cez2ZCjd.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as h,m as n}from"./chunks/framework.PNNbM9mo.js";const c=JSON.parse('{"title":"路径元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/path.md","filePath":"zh-CN/element/path.md"}'),k={name:"zh-CN/element/path.md"},t=h("",15),l=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-path&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[t,l];function e(d,r,E,F,g,y){return i(),a("div",null,p)}const o=s(k,[["render",e]]);export{c as __pageData,o as default}; +import{_ as s,c as i,o as a,a1 as h,j as n}from"./chunks/framework.DVk8Vg-1.js";const c=JSON.parse('{"title":"路径元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/path.md","filePath":"zh-CN/element/path.md"}'),k={name:"zh-CN/element/path.md"},t=h("",15),l=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-path&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[t,l];function e(d,r,E,F,g,y){return a(),i("div",null,p)}const o=s(k,[["render",e]]);export{c as __pageData,o as default}; diff --git a/docs/assets/zh-CN_element_rect.md.IuhJ9ne4.js b/docs/assets/zh-CN_element_rect.md.tvEil78x.js similarity index 80% rename from docs/assets/zh-CN_element_rect.md.IuhJ9ne4.js rename to docs/assets/zh-CN_element_rect.md.tvEil78x.js index 10a2bbe..025c6bd 100644 --- a/docs/assets/zh-CN_element_rect.md.IuhJ9ne4.js +++ b/docs/assets/zh-CN_element_rect.md.tvEil78x.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"矩形元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/rect.md","filePath":"zh-CN/element/rect.md"}'),h={name:"zh-CN/element/rect.md"},e=t(`

矩形元素

Rectangle

用来渲染矩形内容,具体格式如下所示:

ts
type Rect = {
+import{_ as s,c as i,o as a,a1 as t,j as n}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"矩形元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/rect.md","filePath":"zh-CN/element/rect.md"}'),h={name:"zh-CN/element/rect.md"},e=t(`

矩形元素

Rectangle

用来渲染矩形内容,具体格式如下所示:

ts
type Rect = {
   type: 'rect';
   x: number;
   y: number;
@@ -11,12 +11,12 @@ import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";
     borderWidth?: number;
     borderColor?: number;
   };
-};

Rect.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

Rect.detail 数据格式

Rect 元素的detail属性

ts
type RectDetail = {
+};

Rect.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

Rect.detail 数据格式

Rect 元素的detail属性

ts
type RectDetail = {
   background?: string;
   background?: string;
   borderWidth?: number;
   borderColor?: string;
-};

Rect.detail 数据属性内容

属性说明类型默认值是否必填备注
background矩形颜色string-true例如 #000000
borderRadius边框角圆形半径number0false-
borderWidth边框宽度number0false-
borderColor边框颜色string-false例如 #000000

完整数据示例

js
const elementRect = {
+};

Rect.detail 数据属性内容

属性说明类型默认值是否必填备注
background矩形颜色string-true例如 #000000
borderRadius边框角圆形半径number0false-
borderWidth边框宽度number0false-
borderColor边框颜色string-false例如 #000000

完整数据示例

js
const elementRect = {
   name: 'rect',
   x: 160,
   y: 120,
@@ -30,4 +30,4 @@ import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";
     borderWidth: 2,
     borderColor: '#3f51b5'
   }
-};

效果预览

Demo完整预览 Playground >>

`,15),l=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-rect&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),k=[e,l];function p(d,r,E,c,g,o){return i(),a("div",null,k)}const C=s(h,[["render",p]]);export{F as __pageData,C as default}; +};

效果预览

Demo完整预览 Playground >>

`,15),l=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-rect&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),k=[e,l];function p(d,r,E,c,g,o){return a(),i("div",null,k)}const b=s(h,[["render",p]]);export{F as __pageData,b as default}; diff --git a/docs/assets/zh-CN_element_rect.md.IuhJ9ne4.lean.js b/docs/assets/zh-CN_element_rect.md.tvEil78x.lean.js similarity index 65% rename from docs/assets/zh-CN_element_rect.md.IuhJ9ne4.lean.js rename to docs/assets/zh-CN_element_rect.md.tvEil78x.lean.js index 192d8ea..fdfc5ed 100644 --- a/docs/assets/zh-CN_element_rect.md.IuhJ9ne4.lean.js +++ b/docs/assets/zh-CN_element_rect.md.tvEil78x.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"矩形元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/rect.md","filePath":"zh-CN/element/rect.md"}'),h={name:"zh-CN/element/rect.md"},e=t("",15),l=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-rect&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),k=[e,l];function p(d,r,E,c,g,o){return i(),a("div",null,k)}const C=s(h,[["render",p]]);export{F as __pageData,C as default}; +import{_ as s,c as i,o as a,a1 as t,j as n}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"矩形元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/rect.md","filePath":"zh-CN/element/rect.md"}'),h={name:"zh-CN/element/rect.md"},e=t("",15),l=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-rect&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),k=[e,l];function p(d,r,E,c,g,o){return a(),i("div",null,k)}const b=s(h,[["render",p]]);export{F as __pageData,b as default}; diff --git a/docs/assets/zh-CN_element_svg.md.ga__SCBc.js b/docs/assets/zh-CN_element_svg.md.BZmDDbGX.js similarity index 81% rename from docs/assets/zh-CN_element_svg.md.ga__SCBc.js rename to docs/assets/zh-CN_element_svg.md.BZmDDbGX.js index 634d464..9bc1c55 100644 --- a/docs/assets/zh-CN_element_svg.md.ga__SCBc.js +++ b/docs/assets/zh-CN_element_svg.md.BZmDDbGX.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"SVG元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/svg.md","filePath":"zh-CN/element/svg.md"}'),h={name:"zh-CN/element/svg.md"},l=t(`

SVG元素

SVG

用来渲染SVG代码片,具体格式如下所示:

ts
type SVG = {
+import{_ as s,c as i,o as a,a1 as t,j as n}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"SVG元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/svg.md","filePath":"zh-CN/element/svg.md"}'),h={name:"zh-CN/element/svg.md"},l=t(`

SVG元素

SVG

用来渲染SVG代码片,具体格式如下所示:

ts
type SVG = {
   type: 'svg';
   x: number;
   y: number;
@@ -8,9 +8,9 @@ import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";
   detail: {
     svg: string;
   };
-};

SVG.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

SVG.detail 数据格式

SVG 元素的detail属性

ts
type SVGDetail = {
+};

SVG.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

SVG.detail 数据格式

SVG 元素的detail属性

ts
type SVGDetail = {
   svg: string;
-};

SVG.detail 数据属性内容

属性说明类型默认值是否必填备注
svgSVG代码片段string-true-

完整数据示例

js
const elementSVG = {
+};

SVG.detail 数据属性内容

属性说明类型默认值是否必填备注
svgSVG代码片段string-true-

完整数据示例

js
const elementSVG = {
   name: 'svg',
   x: 160,
   y: 100,
@@ -21,4 +21,4 @@ import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";
   detail: {
     svg: \`<svg  viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"  width="400" height="400"><path d="M512 1013.76c-277.11488 0-501.76-224.64512-501.76-501.76S234.88512 10.24 512 10.24s501.76 224.64512 501.76 501.76-224.64512 501.76-501.76 501.76z m0-51.02592c248.9344 0 450.73408-201.79968 450.73408-450.73408 0-248.9344-201.79968-450.73408-450.73408-450.73408-248.9344 0-450.73408 201.79968-450.73408 450.73408 0 248.9344 201.79968 450.73408 450.73408 450.73408zM456.9856 637.9008l295.45984-339.94752a26.4192 26.4192 0 0 1 37.59616-2.31936 28.32896 28.32896 0 0 1 3.10784 38.8608l-307.01568 380.38016a30.72 30.72 0 0 1-42.90048 4.84864L235.44832 556.2368a32.128 32.128 0 0 1-5.74976-44.6464 32.1536 32.1536 0 0 1 44.544-6.58944l182.74304 132.90496z" fill="#1890ff"></path></svg>\`
   }
-};

效果预览

Demo完整预览 Playground >>

`,15),e=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-svg&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,e];function k(d,r,E,g,o,c){return i(),a("div",null,p)}const u=s(h,[["render",k]]);export{F as __pageData,u as default}; +};

效果预览

Demo完整预览 Playground >>

`,15),e=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-svg&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,e];function k(d,r,E,g,o,c){return a(),i("div",null,p)}const u=s(h,[["render",k]]);export{F as __pageData,u as default}; diff --git a/docs/assets/zh-CN_element_svg.md.ga__SCBc.lean.js b/docs/assets/zh-CN_element_svg.md.BZmDDbGX.lean.js similarity index 71% rename from docs/assets/zh-CN_element_svg.md.ga__SCBc.lean.js rename to docs/assets/zh-CN_element_svg.md.BZmDDbGX.lean.js index 1273ffa..b901a33 100644 --- a/docs/assets/zh-CN_element_svg.md.ga__SCBc.lean.js +++ b/docs/assets/zh-CN_element_svg.md.BZmDDbGX.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"SVG元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/svg.md","filePath":"zh-CN/element/svg.md"}'),h={name:"zh-CN/element/svg.md"},l=t("",15),e=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-svg&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,e];function k(d,r,E,g,o,c){return i(),a("div",null,p)}const u=s(h,[["render",k]]);export{F as __pageData,u as default}; +import{_ as s,c as i,o as a,a1 as t,j as n}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"SVG元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/svg.md","filePath":"zh-CN/element/svg.md"}'),h={name:"zh-CN/element/svg.md"},l=t("",15),e=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-svg&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),p=[l,e];function k(d,r,E,g,o,c){return a(),i("div",null,p)}const u=s(h,[["render",k]]);export{F as __pageData,u as default}; diff --git a/docs/assets/zh-CN_element_text.md.Mlt5U0l-.js b/docs/assets/zh-CN_element_text.md.CFu3A5yw.js similarity index 82% rename from docs/assets/zh-CN_element_text.md.Mlt5U0l-.js rename to docs/assets/zh-CN_element_text.md.CFu3A5yw.js index 17a649b..50ec244 100644 --- a/docs/assets/zh-CN_element_text.md.Mlt5U0l-.js +++ b/docs/assets/zh-CN_element_text.md.CFu3A5yw.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";const c=JSON.parse('{"title":"文本元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/text.md","filePath":"zh-CN/element/text.md"}'),h={name:"zh-CN/element/text.md"},l=t(`

文本元素

Text

用来渲染文字内容,具体格式如下所示:

ts
type Text = {
+import{_ as s,c as i,o as a,a1 as t,j as n}from"./chunks/framework.DVk8Vg-1.js";const c=JSON.parse('{"title":"文本元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/text.md","filePath":"zh-CN/element/text.md"}'),h={name:"zh-CN/element/text.md"},l=t(`

文本元素

Text

用来渲染文字内容,具体格式如下所示:

ts
type Text = {
   type: 'text';
   x: number;
   y: number;
@@ -12,7 +12,7 @@ import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";
     fontFamily?: string;
     textAlign?: 'left' | 'center' | 'right';
   };
-};

Text.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

Text.detail 数据格式

Text元素的detail属性

ts
type TextDetail = {
+};

Text.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

Text.detail 数据格式

Text元素的detail属性

ts
type TextDetail = {
   text: string;
   color?: string;
   fontSize?: number;
@@ -21,7 +21,7 @@ import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";
   fontFamily?: string;
   textAlign?: 'center' | 'left' | 'right';
   verticalAlign?: 'middle' | 'top' | 'bottom';
-};

Text.detail 数据属性内容

属性说明类型默认值是否必填备注
text文本内容string-true-
color字体颜色string-true例如 #000000
fontSize字体尺寸number12false-
lineHeight文本行高number-false-
fontWeight字体粗细number-false-
fontFamily字体类型string-false-
textAlign水平对齐'left' | 'center' | 'right''left'false-
verticalAlign垂直对齐'top' | 'middle' | 'bottom''top'false-

完整数据示例

js
const elementText = {
+};

Text.detail 数据属性内容

属性说明类型默认值是否必填备注
text文本内容string-true-
color字体颜色string-true例如 #000000
fontSize字体尺寸number12false-
lineHeight文本行高number-false-
fontWeight字体粗细number-false-
fontFamily字体类型string-false-
textAlign水平对齐'left' | 'center' | 'right''left'false-
verticalAlign垂直对齐'top' | 'middle' | 'bottom''top'false-

完整数据示例

js
const elementText = {
   name: 'text',
   x: 160,
   y: 80,
@@ -39,4 +39,4 @@ import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";
     borderWidth: 2,
     borderColor: '#3f51b5'
   }
-};

效果预览

Demo完整预览 Playground >>

`,15),e=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-text&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),k=[l,e];function p(d,r,E,g,F,y){return i(),a("div",null,k)}const C=s(h,[["render",p]]);export{c as __pageData,C as default}; +};

效果预览

Demo完整预览 Playground >>

`,15),e=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-text&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),k=[l,e];function p(d,r,E,g,F,y){return a(),i("div",null,k)}const C=s(h,[["render",p]]);export{c as __pageData,C as default}; diff --git a/docs/assets/zh-CN_element_text.md.Mlt5U0l-.lean.js b/docs/assets/zh-CN_element_text.md.CFu3A5yw.lean.js similarity index 71% rename from docs/assets/zh-CN_element_text.md.Mlt5U0l-.lean.js rename to docs/assets/zh-CN_element_text.md.CFu3A5yw.lean.js index c59649c..0f6c787 100644 --- a/docs/assets/zh-CN_element_text.md.Mlt5U0l-.lean.js +++ b/docs/assets/zh-CN_element_text.md.CFu3A5yw.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as t,m as n}from"./chunks/framework.PNNbM9mo.js";const c=JSON.parse('{"title":"文本元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/text.md","filePath":"zh-CN/element/text.md"}'),h={name:"zh-CN/element/text.md"},l=t("",15),e=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-text&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),k=[l,e];function p(d,r,E,g,F,y){return i(),a("div",null,k)}const C=s(h,[["render",p]]);export{c as __pageData,C as default}; +import{_ as s,c as i,o as a,a1 as t,j as n}from"./chunks/framework.DVk8Vg-1.js";const c=JSON.parse('{"title":"文本元素","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/element/text.md","filePath":"zh-CN/element/text.md"}'),h={name:"zh-CN/element/text.md"},l=t("",15),e=n("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-text&header=false&sider=false&default-editor-split=50",width:"1000",height:"540",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),k=[l,e];function p(d,r,E,g,F,y){return a(),i("div",null,k)}const C=s(h,[["render",p]]);export{c as __pageData,C as default}; diff --git a/docs/assets/zh-CN_guide_class-idraw.md.1BC1Vc1m.lean.js b/docs/assets/zh-CN_guide_class-idraw.md.1BC1Vc1m.lean.js deleted file mode 100644 index fa1d0b3..0000000 --- a/docs/assets/zh-CN_guide_class-idraw.md.1BC1Vc1m.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as i,c as t,a2 as a,m as e}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"iDraw 类","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/guide/class-idraw.md","filePath":"zh-CN/guide/class-idraw.md"}'),h={name:"zh-CN/guide/class-idraw.md"},n=a("",11),d=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=basic-options&header=false&sider=false&default-editor-split=50",width:"1000",height:"440",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),l=[n,d];function p(r,k,o,c,E,g){return i(),t("div",null,l)}const u=s(h,[["render",p]]);export{F as __pageData,u as default}; diff --git a/docs/assets/zh-CN_guide_class-idraw.md.1BC1Vc1m.js b/docs/assets/zh-CN_guide_class-idraw.md.7Ne7bKkG.js similarity index 55% rename from docs/assets/zh-CN_guide_class-idraw.md.1BC1Vc1m.js rename to docs/assets/zh-CN_guide_class-idraw.md.7Ne7bKkG.js index a6e19c9..6303615 100644 --- a/docs/assets/zh-CN_guide_class-idraw.md.1BC1Vc1m.js +++ b/docs/assets/zh-CN_guide_class-idraw.md.7Ne7bKkG.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as t,a2 as a,m as e}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"iDraw 类","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/guide/class-idraw.md","filePath":"zh-CN/guide/class-idraw.md"}'),h={name:"zh-CN/guide/class-idraw.md"},n=a(`

iDraw 类

参数

js
import { iDraw } from 'idraw';
+import{_ as s,c as i,o as t,a1 as a,j as e}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"iDraw 类","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/guide/class-idraw.md","filePath":"zh-CN/guide/class-idraw.md"}'),n={name:"zh-CN/guide/class-idraw.md"},h=a(`

iDraw 类

参数

js
import { iDraw } from 'idraw';
 const dom = document.querySelector('#app');
 const options = {
   width: 600,
@@ -6,8 +6,8 @@ import{_ as s,o as i,c as t,a2 as a,m as e}from"./chunks/framework.PNNbM9mo.js";
   devicePixelRatio: 2
 };
 
-const idraw = new iDraw(dom, options);

在使用 new iDraw(dom, options) 类时,会接收两个参数。参数信息有下:

参数说明类型默认值是否必填备注
dom渲染DOM节点HTMLDivElement-true-
options渲染内容选项Object-true-

选项 Options

ts
type Options = {
+const idraw = new iDraw(dom, options);

在使用 new iDraw(dom, options) 类时,会接收两个参数。参数信息有下:

参数说明类型默认值是否必填备注
dom渲染DOM节点HTMLDivElement-true-
options渲染内容选项Object-true-

选项 Options

ts
type Options = {
   width: number;
   height: number;
   devicePixelRatio: number;
-};

Options 属性

属性说明类型默认值是否必填备注
width画板宽度number-true-
height画板高度number-true-
devicePixelRatio设备像素比例number1false-

Options 效果预览

Demo完整预览 Playground >>

`,11),d=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=basic-options&header=false&sider=false&default-editor-split=50",width:"1000",height:"440",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),l=[n,d];function p(r,k,o,c,E,g){return i(),t("div",null,l)}const u=s(h,[["render",p]]);export{F as __pageData,u as default}; +};

Options 属性

属性说明类型默认值是否必填备注
width画板宽度number-true-
height画板高度number-true-
devicePixelRatio设备像素比例number1false-

Options 效果预览

Demo完整预览 Playground >>

`,11),d=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=basic-options&header=false&sider=false&default-editor-split=50",width:"1000",height:"440",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),l=[h,d];function p(r,k,o,c,E,g){return t(),i("div",null,l)}const u=s(n,[["render",p]]);export{F as __pageData,u as default}; diff --git a/docs/assets/zh-CN_guide_class-idraw.md.7Ne7bKkG.lean.js b/docs/assets/zh-CN_guide_class-idraw.md.7Ne7bKkG.lean.js new file mode 100644 index 0000000..998e8c6 --- /dev/null +++ b/docs/assets/zh-CN_guide_class-idraw.md.7Ne7bKkG.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as t,a1 as a,j as e}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"iDraw 类","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/guide/class-idraw.md","filePath":"zh-CN/guide/class-idraw.md"}'),n={name:"zh-CN/guide/class-idraw.md"},h=a("",11),d=e("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=basic-options&header=false&sider=false&default-editor-split=50",width:"1000",height:"440",frameborder:"no",border:"0",style:{border:"1px solid #cecece",margin:"0px auto"}},null,-1),l=[h,d];function p(r,k,o,c,E,g){return t(),i("div",null,l)}const u=s(n,[["render",p]]);export{F as __pageData,u as default}; diff --git a/docs/assets/zh-CN_guide_installation.md.Z0pJQFTS.js b/docs/assets/zh-CN_guide_installation.md.DSwwhAVH.js similarity index 73% rename from docs/assets/zh-CN_guide_installation.md.Z0pJQFTS.js rename to docs/assets/zh-CN_guide_installation.md.DSwwhAVH.js index 296e06c..f01b6b1 100644 --- a/docs/assets/zh-CN_guide_installation.md.Z0pJQFTS.js +++ b/docs/assets/zh-CN_guide_installation.md.DSwwhAVH.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as t}from"./chunks/framework.PNNbM9mo.js";const g=JSON.parse('{"title":"安装","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/guide/installation.md","filePath":"zh-CN/guide/installation.md"}'),n={name:"zh-CN/guide/installation.md"},h=t(`

安装

最新版本

iDraw.js

安装方式

将 iDraw.js 添加到项目中有三种方式:

  1. 基于 NPM 安装
  2. 在页面上以 CDN 形式引入。
  3. 下载 JavaScript 文件,并且自托管JavaScript文件

NPM

在开发大型项目应用时候,推荐使用 NPM 的安装方式,可以更好的基于 Webpack 、 Rollup 和 Vite 等构建工具结合使用。

sh
npm install idraw

CDN

在小型项目应用场景或者学习场景时候,可以使用 CDN的方式引用最新的版本的 JavaScript 文件:

html
<script src="https://unpkg.com/idraw"></script>
html
<!-- 全局变量使用 -->
+import{_ as s,c as i,o as a,a1 as t}from"./chunks/framework.DVk8Vg-1.js";const g=JSON.parse('{"title":"安装","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/guide/installation.md","filePath":"zh-CN/guide/installation.md"}'),n={name:"zh-CN/guide/installation.md"},h=t(`

安装

最新版本

iDraw.js

安装方式

将 iDraw.js 添加到项目中有三种方式:

  1. 基于 NPM 安装
  2. 在页面上以 CDN 形式引入。
  3. 下载 JavaScript 文件,并且自托管JavaScript文件

NPM

在开发大型项目应用时候,推荐使用 NPM 的安装方式,可以更好的基于 Webpack 、 Rollup 和 Vite 等构建工具结合使用。

sh
npm install idraw

CDN

在小型项目应用场景或者学习场景时候,可以使用 CDN的方式引用最新的版本的 JavaScript 文件:

html
<script src="https://unpkg.com/idraw"></script>
html
<!-- 全局变量使用 -->
 <script>
   (function () {
     const { iDraw } = window.iDraw;
@@ -9,4 +9,4 @@ import{_ as s,o as i,c as a,a2 as t}from"./chunks/framework.PNNbM9mo.js";const g
       devicePixelRatio: 2
     });
   })();
-</script>

WARNING

不建议用 unpkg.com 站点的CDN资源的放在生产环境

自托管JavaScript文件

如果不想使用构建工具,同时无法直接使用 CDN方式 调用,那么可以将相关的 .js 文件下载到项目本地或者服务器上托管。最后通过 <script> 方式引用,使用方法跟 CDN 的方式类似。

具体的 JavaScript文件 可以从 unpkg 这里下载最新的 iDraw.js 文件。

`,17),l=[h];function p(e,k,r,d,c,E){return i(),a("div",null,l)}const y=s(n,[["render",p]]);export{g as __pageData,y as default}; +</script>

WARNING

不建议用 unpkg.com 站点的CDN资源的放在生产环境

自托管JavaScript文件

如果不想使用构建工具,同时无法直接使用 CDN方式 调用,那么可以将相关的 .js 文件下载到项目本地或者服务器上托管。最后通过 <script> 方式引用,使用方法跟 CDN 的方式类似。

具体的 JavaScript文件 可以从 unpkg 这里下载最新的 iDraw.js 文件。

`,17),l=[h];function p(e,k,r,d,c,E){return a(),i("div",null,l)}const y=s(n,[["render",p]]);export{g as __pageData,y as default}; diff --git a/docs/assets/zh-CN_guide_installation.md.Z0pJQFTS.lean.js b/docs/assets/zh-CN_guide_installation.md.DSwwhAVH.lean.js similarity index 54% rename from docs/assets/zh-CN_guide_installation.md.Z0pJQFTS.lean.js rename to docs/assets/zh-CN_guide_installation.md.DSwwhAVH.lean.js index 702d219..19e4b46 100644 --- a/docs/assets/zh-CN_guide_installation.md.Z0pJQFTS.lean.js +++ b/docs/assets/zh-CN_guide_installation.md.DSwwhAVH.lean.js @@ -1 +1 @@ -import{_ as s,o as i,c as a,a2 as t}from"./chunks/framework.PNNbM9mo.js";const g=JSON.parse('{"title":"安装","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/guide/installation.md","filePath":"zh-CN/guide/installation.md"}'),n={name:"zh-CN/guide/installation.md"},h=t("",17),l=[h];function p(e,k,r,d,c,E){return i(),a("div",null,l)}const y=s(n,[["render",p]]);export{g as __pageData,y as default}; +import{_ as s,c as i,o as a,a1 as t}from"./chunks/framework.DVk8Vg-1.js";const g=JSON.parse('{"title":"安装","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/guide/installation.md","filePath":"zh-CN/guide/installation.md"}'),n={name:"zh-CN/guide/installation.md"},h=t("",17),l=[h];function p(e,k,r,d,c,E){return a(),i("div",null,l)}const y=s(n,[["render",p]]);export{g as __pageData,y as default}; diff --git a/docs/assets/zh-CN_guide_introduction.md.L_K3kExR.js b/docs/assets/zh-CN_guide_introduction.md.DCa0dubh.js similarity index 86% rename from docs/assets/zh-CN_guide_introduction.md.L_K3kExR.js rename to docs/assets/zh-CN_guide_introduction.md.DCa0dubh.js index 562988a..3c3ce55 100644 --- a/docs/assets/zh-CN_guide_introduction.md.L_K3kExR.js +++ b/docs/assets/zh-CN_guide_introduction.md.DCa0dubh.js @@ -1,4 +1,4 @@ -import{_ as s,o as i,c as a,a2 as n,m as h}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"介绍","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/guide/introduction.md","filePath":"zh-CN/guide/introduction.md"}'),l={name:"zh-CN/guide/introduction.md"},t=n(`

介绍

iDraw.js 是什么

iDraw.js 是基于浏览器中 Canvas API 的绘图能力实现的一套画图框架。

可以直接由数据驱动去渲染图画的渲染,同时能可视化操控 图画元素 的位置、形状和布局等信息。

iDraw.js 目前基于 MIT 开源协议托管在GitHubNPM,所有使用者就都可以免费地使用在自己的项目中。

起步使用

sh
npm install idraw
js
import { iDraw } from 'idraw';
+import{_ as s,c as i,o as a,a1 as n,j as h}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"介绍","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/guide/introduction.md","filePath":"zh-CN/guide/introduction.md"}'),t={name:"zh-CN/guide/introduction.md"},l=n(`

介绍

iDraw.js 是什么

iDraw.js 是基于浏览器中 Canvas API 的绘图能力实现的一套画图框架。

可以直接由数据驱动去渲染图画的渲染,同时能可视化操控 图画元素 的位置、形状和布局等信息。

iDraw.js 目前基于 MIT 开源协议托管在GitHubNPM,所有使用者就都可以免费地使用在自己的项目中。

起步使用

sh
npm install idraw
js
import { iDraw } from 'idraw';
 const data = {
   elements: [
     {
@@ -27,4 +27,4 @@ import{_ as s,o as i,c as a,a2 as n,m as h}from"./chunks/framework.PNNbM9mo.js";
   height: 400,
   devicePixelRatio: 2
 });
-idraw.setData(data);
`,8),e=h("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-text&header=false&sider=false&default-editor-split=50",width:"1000",height:"450",frameborder:"no",border:"0",style:{border:"1px solid #cecece"}},null,-1),p=[t,e];function k(r,E,d,o,g,c){return i(),a("div",null,p)}const C=s(l,[["render",k]]);export{F as __pageData,C as default}; +idraw.setData(data);
`,8),e=h("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-text&header=false&sider=false&default-editor-split=50",width:"1000",height:"450",frameborder:"no",border:"0",style:{border:"1px solid #cecece"}},null,-1),p=[l,e];function k(r,E,d,o,g,c){return a(),i("div",null,p)}const C=s(t,[["render",k]]);export{F as __pageData,C as default}; diff --git a/docs/assets/zh-CN_guide_introduction.md.DCa0dubh.lean.js b/docs/assets/zh-CN_guide_introduction.md.DCa0dubh.lean.js new file mode 100644 index 0000000..0587750 --- /dev/null +++ b/docs/assets/zh-CN_guide_introduction.md.DCa0dubh.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a1 as n,j as h}from"./chunks/framework.DVk8Vg-1.js";const F=JSON.parse('{"title":"介绍","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/guide/introduction.md","filePath":"zh-CN/guide/introduction.md"}'),t={name:"zh-CN/guide/introduction.md"},l=n("",8),e=h("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-text&header=false&sider=false&default-editor-split=50",width:"1000",height:"450",frameborder:"no",border:"0",style:{border:"1px solid #cecece"}},null,-1),p=[l,e];function k(r,E,d,o,g,c){return a(),i("div",null,p)}const C=s(t,[["render",k]]);export{F as __pageData,C as default}; diff --git a/docs/assets/zh-CN_guide_introduction.md.L_K3kExR.lean.js b/docs/assets/zh-CN_guide_introduction.md.L_K3kExR.lean.js deleted file mode 100644 index adf7782..0000000 --- a/docs/assets/zh-CN_guide_introduction.md.L_K3kExR.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as i,c as a,a2 as n,m as h}from"./chunks/framework.PNNbM9mo.js";const F=JSON.parse('{"title":"介绍","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/guide/introduction.md","filePath":"zh-CN/guide/introduction.md"}'),l={name:"zh-CN/guide/introduction.md"},t=n("",8),e=h("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-text&header=false&sider=false&default-editor-split=50",width:"1000",height:"450",frameborder:"no",border:"0",style:{border:"1px solid #cecece"}},null,-1),p=[t,e];function k(r,E,d,o,g,c){return i(),a("div",null,p)}const C=s(l,[["render",k]]);export{F as __pageData,C as default}; diff --git a/docs/assets/zh-CN_guide_quickstart.md.JlXf8dNq.js b/docs/assets/zh-CN_guide_quickstart.md.pNjsNpVL.js similarity index 73% rename from docs/assets/zh-CN_guide_quickstart.md.JlXf8dNq.js rename to docs/assets/zh-CN_guide_quickstart.md.pNjsNpVL.js index 49c79ff..2b5ba96 100644 --- a/docs/assets/zh-CN_guide_quickstart.md.JlXf8dNq.js +++ b/docs/assets/zh-CN_guide_quickstart.md.pNjsNpVL.js @@ -1,4 +1,4 @@ -import{_ as a,o as n,c as h,m as s,a as i,a2 as l}from"./chunks/framework.PNNbM9mo.js";const _=JSON.parse('{"title":"快速上手","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/guide/quickstart.md","filePath":"zh-CN/guide/quickstart.md"}'),t={name:"zh-CN/guide/quickstart.md"},p=s("h1",{id:"快速上手",tabindex:"-1"},[i("快速上手 "),s("a",{class:"header-anchor",href:"#快速上手","aria-label":'Permalink to "快速上手"'},"​")],-1),k=s("h2",{id:"第一个例子",tabindex:"-1"},[i("第一个例子 "),s("a",{class:"header-anchor",href:"#第一个例子","aria-label":'Permalink to "第一个例子"'},"​")],-1),e=s("p",null,"这是一个最简单的 iDraw.js 例子,绘制一个旋转的矩形。",-1),E=s("div",null,[s("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-rect&header=false&sider=false&default-editor-split=50",width:"800",height:"520",frameborder:"no",border:"0",style:{border:"1px solid #cecece"}})],-1),r=l(`

安装模块

sh
npm install idraw

渲染DOM的位置

html
<div id="app"></div>

使用 iDraw.js

js
import { iDraw } from 'idraw';
+import{_ as a,c as n,o as h,j as s,a as i,a1 as l}from"./chunks/framework.DVk8Vg-1.js";const m=JSON.parse('{"title":"快速上手","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/guide/quickstart.md","filePath":"zh-CN/guide/quickstart.md"}'),t={name:"zh-CN/guide/quickstart.md"},p=s("h1",{id:"快速上手",tabindex:"-1"},[i("快速上手 "),s("a",{class:"header-anchor",href:"#快速上手","aria-label":'Permalink to "快速上手"'},"​")],-1),e=s("h2",{id:"第一个例子",tabindex:"-1"},[i("第一个例子 "),s("a",{class:"header-anchor",href:"#第一个例子","aria-label":'Permalink to "第一个例子"'},"​")],-1),k=s("p",null,"这是一个最简单的 iDraw.js 例子,绘制一个旋转的矩形。",-1),E=s("div",null,[s("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-rect&header=false&sider=false&default-editor-split=50",width:"800",height:"520",frameborder:"no",border:"0",style:{border:"1px solid #cecece"}})],-1),d=l(`

安装模块

sh
npm install idraw

渲染DOM的位置

html
<div id="app"></div>

使用 iDraw.js

js
import { iDraw } from 'idraw';
 const data = {
   elements: [
     {
@@ -27,4 +27,4 @@ import{_ as a,o as n,c as h,m as s,a as i,a2 as l}from"./chunks/framework.PNNbM9
 });
 
 // 设置数据
-idraw.setData(data);

至此,小伙伴们就可以愉快的开启 iDraw.js 的画图之旅啦!O(∩_∩)O~

`,7),d=[p,k,e,E,r];function g(c,o,y,F,C,u){return n(),h("div",null,d)}const b=a(t,[["render",g]]);export{_ as __pageData,b as default}; +idraw.setData(data);

至此,小伙伴们就可以愉快的开启 iDraw.js 的画图之旅啦!O(∩_∩)O~

`,7),r=[p,e,k,E,d];function g(c,o,y,F,C,u){return h(),n("div",null,r)}const b=a(t,[["render",g]]);export{m as __pageData,b as default}; diff --git a/docs/assets/zh-CN_guide_quickstart.md.JlXf8dNq.lean.js b/docs/assets/zh-CN_guide_quickstart.md.pNjsNpVL.lean.js similarity index 61% rename from docs/assets/zh-CN_guide_quickstart.md.JlXf8dNq.lean.js rename to docs/assets/zh-CN_guide_quickstart.md.pNjsNpVL.lean.js index 30fec7e..c671426 100644 --- a/docs/assets/zh-CN_guide_quickstart.md.JlXf8dNq.lean.js +++ b/docs/assets/zh-CN_guide_quickstart.md.pNjsNpVL.lean.js @@ -1 +1 @@ -import{_ as a,o as n,c as h,m as s,a as i,a2 as l}from"./chunks/framework.PNNbM9mo.js";const _=JSON.parse('{"title":"快速上手","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/guide/quickstart.md","filePath":"zh-CN/guide/quickstart.md"}'),t={name:"zh-CN/guide/quickstart.md"},p=s("h1",{id:"快速上手",tabindex:"-1"},[i("快速上手 "),s("a",{class:"header-anchor",href:"#快速上手","aria-label":'Permalink to "快速上手"'},"​")],-1),k=s("h2",{id:"第一个例子",tabindex:"-1"},[i("第一个例子 "),s("a",{class:"header-anchor",href:"#第一个例子","aria-label":'Permalink to "第一个例子"'},"​")],-1),e=s("p",null,"这是一个最简单的 iDraw.js 例子,绘制一个旋转的矩形。",-1),E=s("div",null,[s("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-rect&header=false&sider=false&default-editor-split=50",width:"800",height:"520",frameborder:"no",border:"0",style:{border:"1px solid #cecece"}})],-1),r=l("",7),d=[p,k,e,E,r];function g(c,o,y,F,C,u){return n(),h("div",null,d)}const b=a(t,[["render",g]]);export{_ as __pageData,b as default}; +import{_ as a,c as n,o as h,j as s,a as i,a1 as l}from"./chunks/framework.DVk8Vg-1.js";const m=JSON.parse('{"title":"快速上手","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/guide/quickstart.md","filePath":"zh-CN/guide/quickstart.md"}'),t={name:"zh-CN/guide/quickstart.md"},p=s("h1",{id:"快速上手",tabindex:"-1"},[i("快速上手 "),s("a",{class:"header-anchor",href:"#快速上手","aria-label":'Permalink to "快速上手"'},"​")],-1),e=s("h2",{id:"第一个例子",tabindex:"-1"},[i("第一个例子 "),s("a",{class:"header-anchor",href:"#第一个例子","aria-label":'Permalink to "第一个例子"'},"​")],-1),k=s("p",null,"这是一个最简单的 iDraw.js 例子,绘制一个旋转的矩形。",-1),E=s("div",null,[s("iframe",{class:"idraw-playground-preview",src:"https://idrawjs.com/playground/?demo=elem-rect&header=false&sider=false&default-editor-split=50",width:"800",height:"520",frameborder:"no",border:"0",style:{border:"1px solid #cecece"}})],-1),d=l("",7),r=[p,e,k,E,d];function g(c,o,y,F,C,u){return h(),n("div",null,r)}const b=a(t,[["render",g]]);export{m as __pageData,b as default}; diff --git a/docs/assets/zh-CN_index.md.wdqaL4HK.js b/docs/assets/zh-CN_index.md.CJ_7nR73.js similarity index 87% rename from docs/assets/zh-CN_index.md.wdqaL4HK.js rename to docs/assets/zh-CN_index.md.CJ_7nR73.js index cee4bc0..852bfcc 100644 --- a/docs/assets/zh-CN_index.md.wdqaL4HK.js +++ b/docs/assets/zh-CN_index.md.CJ_7nR73.js @@ -1 +1 @@ -import{_ as t,o as e,c as a}from"./chunks/framework.PNNbM9mo.js";const p=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"iDraw.js","text":"让Web绘图更加简单.","tagline":"一个面向Web绘图的JavaScript框架","actions":[{"theme":"brand","text":"快速开始","link":"/zh-CN/guide/quickstart"},{"theme":"alt","text":"演示","link":"https://idrawjs.com/playground/"},{"theme":"brand","text":"产品 iDraw Studio","link":"https://idrawjs.com/studio/"}],"image":"../assets/idraw.png"},"features":[{"title":"高兼容性","details":"目前基于Canvas 2D API实现,能适应绝大部分主流浏览器。"},{"title":"用法简单","details":"没有复杂的使用方式,只有简单的几个API来操作Web绘图。"},{"title":"数据驱动绘制","details":"依赖数据来驱动图画的绘制"}]},"headers":[],"relativePath":"zh-CN/index.md","filePath":"zh-CN/index.md"}'),i={name:"zh-CN/index.md"};function s(n,r,d,o,c,l){return e(),a("div")}const h=t(i,[["render",s]]);export{p as __pageData,h as default}; +import{_ as t,c as e,o as a}from"./chunks/framework.DVk8Vg-1.js";const p=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"iDraw.js","text":"让Web绘图更加简单.","tagline":"一个面向Web绘图的JavaScript框架","actions":[{"theme":"brand","text":"快速开始","link":"/zh-CN/guide/quickstart"},{"theme":"alt","text":"演示","link":"https://idrawjs.com/playground/"},{"theme":"brand","text":"产品 iDraw Studio","link":"https://idrawjs.com/studio/"}],"image":"../assets/idraw.png"},"features":[{"title":"高兼容性","details":"目前基于Canvas 2D API实现,能适应绝大部分主流浏览器。"},{"title":"用法简单","details":"没有复杂的使用方式,只有简单的几个API来操作Web绘图。"},{"title":"数据驱动绘制","details":"依赖数据来驱动图画的绘制"}]},"headers":[],"relativePath":"zh-CN/index.md","filePath":"zh-CN/index.md"}'),i={name:"zh-CN/index.md"};function s(n,r,d,o,c,l){return a(),e("div")}const h=t(i,[["render",s]]);export{p as __pageData,h as default}; diff --git a/docs/assets/zh-CN_index.md.wdqaL4HK.lean.js b/docs/assets/zh-CN_index.md.CJ_7nR73.lean.js similarity index 87% rename from docs/assets/zh-CN_index.md.wdqaL4HK.lean.js rename to docs/assets/zh-CN_index.md.CJ_7nR73.lean.js index cee4bc0..852bfcc 100644 --- a/docs/assets/zh-CN_index.md.wdqaL4HK.lean.js +++ b/docs/assets/zh-CN_index.md.CJ_7nR73.lean.js @@ -1 +1 @@ -import{_ as t,o as e,c as a}from"./chunks/framework.PNNbM9mo.js";const p=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"iDraw.js","text":"让Web绘图更加简单.","tagline":"一个面向Web绘图的JavaScript框架","actions":[{"theme":"brand","text":"快速开始","link":"/zh-CN/guide/quickstart"},{"theme":"alt","text":"演示","link":"https://idrawjs.com/playground/"},{"theme":"brand","text":"产品 iDraw Studio","link":"https://idrawjs.com/studio/"}],"image":"../assets/idraw.png"},"features":[{"title":"高兼容性","details":"目前基于Canvas 2D API实现,能适应绝大部分主流浏览器。"},{"title":"用法简单","details":"没有复杂的使用方式,只有简单的几个API来操作Web绘图。"},{"title":"数据驱动绘制","details":"依赖数据来驱动图画的绘制"}]},"headers":[],"relativePath":"zh-CN/index.md","filePath":"zh-CN/index.md"}'),i={name:"zh-CN/index.md"};function s(n,r,d,o,c,l){return e(),a("div")}const h=t(i,[["render",s]]);export{p as __pageData,h as default}; +import{_ as t,c as e,o as a}from"./chunks/framework.DVk8Vg-1.js";const p=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"iDraw.js","text":"让Web绘图更加简单.","tagline":"一个面向Web绘图的JavaScript框架","actions":[{"theme":"brand","text":"快速开始","link":"/zh-CN/guide/quickstart"},{"theme":"alt","text":"演示","link":"https://idrawjs.com/playground/"},{"theme":"brand","text":"产品 iDraw Studio","link":"https://idrawjs.com/studio/"}],"image":"../assets/idraw.png"},"features":[{"title":"高兼容性","details":"目前基于Canvas 2D API实现,能适应绝大部分主流浏览器。"},{"title":"用法简单","details":"没有复杂的使用方式,只有简单的几个API来操作Web绘图。"},{"title":"数据驱动绘制","details":"依赖数据来驱动图画的绘制"}]},"headers":[],"relativePath":"zh-CN/index.md","filePath":"zh-CN/index.md"}'),i={name:"zh-CN/index.md"};function s(n,r,d,o,c,l){return a(),e("div")}const h=t(i,[["render",s]]);export{p as __pageData,h as default}; diff --git a/docs/assets/zh-CN_sponsor.md.CSFR7EZY.js b/docs/assets/zh-CN_sponsor.md.CSFR7EZY.js new file mode 100644 index 0000000..2e82205 --- /dev/null +++ b/docs/assets/zh-CN_sponsor.md.CSFR7EZY.js @@ -0,0 +1 @@ +import{_ as o,c as r,o as n,a1 as t,j as e}from"./chunks/framework.DVk8Vg-1.js";const x=JSON.parse('{"title":"Become an iDraw.js Sponsor","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/sponsor.md","filePath":"zh-CN/sponsor.md"}'),a={name:"zh-CN/sponsor.md"},i=t('

Become an iDraw.js Sponsor

iDraw.js is an MIT licensed open source project and completely free to use. The tremendous amount of effort needed to maintain this framework and develop new features for the project is only made sustainable thanks to the generous financial backing of our sponsors.

How to Sponsor

Sponsorships can be done via

Both monthly-recurring sponsorships and one-time donations are accepted. Recurring sponsorships are entitled to logo placements as specified in Sponsorship Tiers.

',6),s=e("div",{style:{margin:"10px"}},[e("a",{href:"https://opencollective.com/idrawjs",target:"_blank",style:{"box-sizing":"border-box",display:"inline-flex","justify-content":"center","align-items":"center","font-size":"16px","line-height":"1.5",height:"40px",padding:"7px 15px","border-radius":"8px","font-weight":"400",border:"1px solid var(--vp-c-divider)","text-decoration":"auto"}},[e("span",{style:{display:"inline-flex","font-size":"20px","margin-right":"8px"}},[e("svg",{viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",fill:"currentColor"},[e("path",{d:"M831.68 524.48c0 59.968-19.968 122.368-49.92 172.352l127.36 127.36c62.464-84.928 102.4-189.824 102.4-299.712 0-114.88-39.936-219.776-99.904-304.64l-132.352 129.792c29.952 49.984 49.92 107.456 49.92 174.848h2.56z",fill:"currentColor",fillOpacity:".4"}),e("path",{d:"M512 841.664a319.68 319.68 0 1 1 0-639.36c64.96 0 124.864 17.472 174.848 52.48l124.8-129.92a499.52 499.52 0 1 0 2.56 796.736l-124.864-129.92a324.608 324.608 0 0 1-174.848 49.984H512z",fill:"currentColor"})])]),e("span",{style:{display:"inline-flex"}},"Open Collective")])],-1),l=t('',2),C=[i,s,l];function p(h,c,d,f,g,m){return n(),r("div",null,C)}const _=o(a,[["render",p]]);export{x as __pageData,_ as default}; diff --git a/docs/assets/zh-CN_sponsor.md.CSFR7EZY.lean.js b/docs/assets/zh-CN_sponsor.md.CSFR7EZY.lean.js new file mode 100644 index 0000000..3d7a22d --- /dev/null +++ b/docs/assets/zh-CN_sponsor.md.CSFR7EZY.lean.js @@ -0,0 +1 @@ +import{_ as o,c as r,o as n,a1 as t,j as e}from"./chunks/framework.DVk8Vg-1.js";const x=JSON.parse('{"title":"Become an iDraw.js Sponsor","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/sponsor.md","filePath":"zh-CN/sponsor.md"}'),a={name:"zh-CN/sponsor.md"},i=t("",6),s=e("div",{style:{margin:"10px"}},[e("a",{href:"https://opencollective.com/idrawjs",target:"_blank",style:{"box-sizing":"border-box",display:"inline-flex","justify-content":"center","align-items":"center","font-size":"16px","line-height":"1.5",height:"40px",padding:"7px 15px","border-radius":"8px","font-weight":"400",border:"1px solid var(--vp-c-divider)","text-decoration":"auto"}},[e("span",{style:{display:"inline-flex","font-size":"20px","margin-right":"8px"}},[e("svg",{viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",fill:"currentColor"},[e("path",{d:"M831.68 524.48c0 59.968-19.968 122.368-49.92 172.352l127.36 127.36c62.464-84.928 102.4-189.824 102.4-299.712 0-114.88-39.936-219.776-99.904-304.64l-132.352 129.792c29.952 49.984 49.92 107.456 49.92 174.848h2.56z",fill:"currentColor",fillOpacity:".4"}),e("path",{d:"M512 841.664a319.68 319.68 0 1 1 0-639.36c64.96 0 124.864 17.472 174.848 52.48l124.8-129.92a499.52 499.52 0 1 0 2.56 796.736l-124.864-129.92a324.608 324.608 0 0 1-174.848 49.984H512z",fill:"currentColor"})])]),e("span",{style:{display:"inline-flex"}},"Open Collective")])],-1),l=t("",2),C=[i,s,l];function p(h,c,d,f,g,m){return n(),r("div",null,C)}const _=o(a,[["render",p]]);export{x as __pageData,_ as default}; diff --git a/docs/assets/zh-CN_sponsor.md.w_7AgKx0.js b/docs/assets/zh-CN_sponsor.md.w_7AgKx0.js deleted file mode 100644 index b72e5b9..0000000 --- a/docs/assets/zh-CN_sponsor.md.w_7AgKx0.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,o,c as s,a2 as a}from"./chunks/framework.PNNbM9mo.js";const f=JSON.parse('{"title":"Become an iDraw.js Sponsor","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/sponsor.md","filePath":"zh-CN/sponsor.md"}'),r={name:"zh-CN/sponsor.md"},n=a('

Become an iDraw.js Sponsor

iDraw.js is an MIT licensed open source project and completely free to use. The tremendous amount of effort needed to maintain this framework and develop new features for the project is only made sustainable thanks to the generous financial backing of our sponsors.

How to Sponsor

Sponsorships can be done via OpenCollective (https://opencollective.com/idrawjs). Both monthly-recurring sponsorships and one-time donations are accepted. Recurring sponsorships are entitled to logo placements as specified in Sponsorship Tiers.

',4),t=[n];function i(c,p,l,d,h,_){return o(),s("div",null,t)}const u=e(r,[["render",i]]);export{f as __pageData,u as default}; diff --git a/docs/assets/zh-CN_sponsor.md.w_7AgKx0.lean.js b/docs/assets/zh-CN_sponsor.md.w_7AgKx0.lean.js deleted file mode 100644 index ea82a46..0000000 --- a/docs/assets/zh-CN_sponsor.md.w_7AgKx0.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,o,c as s,a2 as a}from"./chunks/framework.PNNbM9mo.js";const f=JSON.parse('{"title":"Become an iDraw.js Sponsor","description":"","frontmatter":{},"headers":[],"relativePath":"zh-CN/sponsor.md","filePath":"zh-CN/sponsor.md"}'),r={name:"zh-CN/sponsor.md"},n=a("",4),t=[n];function i(c,p,l,d,h,_){return o(),s("div",null,t)}const u=e(r,[["render",i]]);export{f as __pageData,u as default}; diff --git a/docs/en-US/api/add-element.html b/docs/en-US/api/add-element.html index 08be46f..33de7c6 100644 --- a/docs/en-US/api/add-element.html +++ b/docs/en-US/api/add-element.html @@ -5,19 +5,19 @@ addElement | iDraw.js - - + + - - - - - + + + + + -
Skip to content

addElement

Introduction

addElement Add elements to the drawing and trigger a rerender.

Arguments

  • {object} element More Element Infomation>> .

  • {object} { position?: number[] },Optional configuration, position element index position, for example [1, 2] means adding the element to the third position of the second element (must be of type Group).

Returns

  • {object}

Usage

js
import { iDraw } from 'idraw';
+    
Skip to content

addElement

Introduction

addElement Add elements to the drawing and trigger a rerender.

Arguments

  • {object} element More Element Infomation>> .

  • {object} { position?: number[] },Optional configuration, position element index position, for example [1, 2] means adding the element to the third position of the second element (must be of type Group).

Returns

  • {object}

Usage

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -41,8 +41,8 @@
     borderWidth: 4,
     borderColor: '#ff6032'
   }
-});

Example

More Demo >>

- +});

Example

More Demo >>

+ \ No newline at end of file diff --git a/docs/en-US/api/center-content.html b/docs/en-US/api/center-content.html index 70dfef1..27df44f 100644 --- a/docs/en-US/api/center-content.html +++ b/docs/en-US/api/center-content.html @@ -5,19 +5,19 @@ centerContent | iDraw.js - - + + - - - - - + + + + + -
Skip to content

centerContent

Introduction

centerContent Display the content in the center of the view. If the content size exceeds the view, the content will be proportionally reduced and centered in the view.

Arguments

  • {object} options
    • {Data} options.data Optionally, calculate new content data for centered dimensions.

Returns

N/A

Usage

js
import { iDraw } from 'idraw';
+    
Skip to content

centerContent

Introduction

centerContent Display the content in the center of the view. If the content size exceeds the view, the content will be proportionally reduced and centered in the view.

Arguments

  • {object} options
    • {Data} options.data Optionally, calculate new content data for centered dimensions.

Returns

N/A

Usage

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -32,8 +32,8 @@
   ]
 });
 
-idraw.centerContent();

Example

More Demo

- +idraw.centerContent();

Example

More Demo

+ \ No newline at end of file diff --git a/docs/en-US/api/delete-element.html b/docs/en-US/api/delete-element.html index 5e8f0f1..cfea6b7 100644 --- a/docs/en-US/api/delete-element.html +++ b/docs/en-US/api/delete-element.html @@ -5,19 +5,19 @@ deleteElement | iDraw.js - - + + - - - - - + + + + + -
Skip to content

deleteElement

Introduction

addElement Delete elements to the drawing and trigger a rerender.

Arugments

  • {string} uuid

Returns

None

Usage

js
import { iDraw } from 'idraw';
+    
Skip to content

deleteElement

Introduction

addElement Delete elements to the drawing and trigger a rerender.

Arugments

  • {string} uuid

Returns

None

Usage

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -35,8 +35,8 @@
 
 const uuid = idraw.getData().elements[0].uuid;
 
-idraw.deleteElement(uuid);

示例

Example

More Demo >>

- +idraw.deleteElement(uuid);

示例

Example

More Demo >>

+ \ No newline at end of file diff --git a/docs/en-US/api/enable-disable.html b/docs/en-US/api/enable-disable.html index 1c4db00..30531d6 100644 --- a/docs/en-US/api/enable-disable.html +++ b/docs/en-US/api/enable-disable.html @@ -5,19 +5,19 @@ enable/disable | iDraw.js - - + + - - - - - + + + + + -
Skip to content

enable/disable

Introduction

  • enable(...) Turn on a feature
  • disable(...) Turn off a feature

Arguments

  • {IDrawFeature} feat Feature type
    • 'ruler': Ruler feature
    • 'scroll': Scroll feature
    • 'scale': Scale feature
    • 'info': Display information, eg. element size
    • - Other features are to be developed...
ts
type IDrawFeature = 'ruler' | 'scroll' | 'scale' | 'info'; // TODO other feature

Returns

N/A

Usage

js
import { iDraw } from 'idraw';
+    
Skip to content

enable/disable

Introduction

  • enable(...) Turn on a feature
  • disable(...) Turn off a feature

Arguments

  • {IDrawFeature} feat Feature type
    • 'ruler': Ruler feature
    • 'scroll': Scroll feature
    • 'scale': Scale feature
    • 'info': Display information, eg. element size
    • - Other features are to be developed...
ts
type IDrawFeature = 'ruler' | 'scroll' | 'scale' | 'info'; // TODO other feature

Returns

N/A

Usage

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -31,8 +31,8 @@
 
 setTimeout(() => {
   idraw.enable('ruler');
-}, 1000);

Example

More Demo >>

- +}, 1000);

Example

More Demo >>

+ \ No newline at end of file diff --git a/docs/en-US/api/get-data.html b/docs/en-US/api/get-data.html index 014cac2..7d3bea5 100644 --- a/docs/en-US/api/get-data.html +++ b/docs/en-US/api/get-data.html @@ -5,19 +5,19 @@ getData | iDraw.js - - + + - - - - - + + + + + -
Skip to content

getData

Introduction

getData The function can be used to get lastest Drawing-Data of Image;

Arguments

  • {object} options
    • {boolean} options.compact

Returns

  • {object} data Drawing-Data

Usage

js
import { iDraw } from 'idraw';
+    
Skip to content

getData

Introduction

getData The function can be used to get lastest Drawing-Data of Image;

Arguments

  • {object} options
    • {boolean} options.compact

Returns

  • {object} data Drawing-Data

Usage

js
import { iDraw } from 'idraw';
 
 const data = {
   elements: [
@@ -49,8 +49,8 @@
 idraw.setData(data);
 
 const resultData = idraw.getData();
-console.log(resultData);

Example

More Demo

- +console.log(resultData);

Example

More Demo

+ \ No newline at end of file diff --git a/docs/en-US/api/get-image-blob-url.html b/docs/en-US/api/get-image-blob-url.html new file mode 100644 index 0000000..4e47e07 --- /dev/null +++ b/docs/en-US/api/get-image-blob-url.html @@ -0,0 +1,34 @@ + + + + + + getImageBlobURL | iDraw.js + + + + + + + + + + + + + +
Skip to content

getImageBlobURL

Introduction

getImageBlobURL Export the image content from the canvas, extract the canvas content into the memory Blob, and generate the image's blobURL

Arguments

  • {object} options Configuration options for exporting images
    • {number} options.devicePixelRatio Device pixel ratio, default is 1

Returns

  • {Promise<object>} Returns the complete canvas image data
    • {string} blobURL A Blob URL to a canvas image in memory
    • {number} width The width of the exported image in logical pixels
    • {number} height The height of the exported image in logical pixels
    • {number} devicePixelRatio Device pixel ratio for exported images

Usage

js
import { iDraw } from 'idraw';
+
+const app = document.querySelector('#app');
+const options = {
+  width: 600,
+  height: 400,
+  devicePixelRatio: 2
+};
+const idraw = new iDraw(app, options);
+
+const { blobURL } = await idraw.getImageBlobURL({ devicePixelRatio: 1 });

Example

More Demo

+ + + + \ No newline at end of file diff --git a/docs/en-US/api/move-element.html b/docs/en-US/api/move-element.html index 012a864..41d9310 100644 --- a/docs/en-US/api/move-element.html +++ b/docs/en-US/api/move-element.html @@ -5,19 +5,19 @@ moveElement | iDraw.js - - + + - - - - - + + + + + -
Skip to content

moveElement

Introduction

moveElement deletes the corresponding element in the picture according to the uuid of the element and triggers re-rendering.

Arguments

  • {string} uuid
  • {number[]} position Moves the element to the specified index position. For example, [1, 2] means moving the element to the third position of the second element (must be of type Group).

Returns

N/A

Usage

js
import { iDraw } from 'idraw';
+    
Skip to content

moveElement

Introduction

moveElement deletes the corresponding element in the picture according to the uuid of the element and triggers re-rendering.

Arguments

  • {string} uuid
  • {number[]} position Moves the element to the specified index position. For example, [1, 2] means moving the element to the third position of the second element (must be of type Group).

Returns

N/A

Usage

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -35,8 +35,8 @@
 
 const uuid = idraw.getData().elements[0].uuid;
 
-idraw.moveElement(uuid, { position: [1, 2] });

Example

More Demo

- +idraw.moveElement(uuid, { position: [1, 2] });

Example

More Demo

+ \ No newline at end of file diff --git a/docs/en-US/api/resize.html b/docs/en-US/api/resize.html index c7e7a86..f885049 100644 --- a/docs/en-US/api/resize.html +++ b/docs/en-US/api/resize.html @@ -5,19 +5,19 @@ resize | iDraw.js - - + + - - - - - + + + + + -
Skip to content

resize

Introduction

resize The drawing view size can be modified again

Arguments

  • {object} options
    • {number} options.width
    • {number} options.height
    • {number} options.devicePixelRatio

Returns

N/A

Usage

js
import { iDraw } from 'idraw';
+    
Skip to content

resize

Introduction

resize The drawing view size can be modified again

Arguments

  • {object} options
    • {number} options.width
    • {number} options.height
    • {number} options.devicePixelRatio

Returns

N/A

Usage

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -36,8 +36,8 @@
   width: 300,
   height: 200,
   devicePixelRatio: 2
-});

Example

More Demo

- +});

Example

More Demo

+ \ No newline at end of file diff --git a/docs/en-US/api/select-element.html b/docs/en-US/api/select-element.html index 1df1e81..7b04223 100644 --- a/docs/en-US/api/select-element.html +++ b/docs/en-US/api/select-element.html @@ -5,19 +5,19 @@ selectElement | iDraw.js - - + + - - - - - + + + + + -
Skip to content

selectElement

Introduction

selectElement It receives a uuid of Element to select Element on Drawing-Image and then change the Element' status on Canvas.

Arguments

  • {string} uuid Element's uuid

Returns

None

Usage

js
import { iDraw } from 'idraw';
+    
Skip to content

selectElement

Introduction

selectElement It receives a uuid of Element to select Element on Drawing-Image and then change the Element' status on Canvas.

Arguments

  • {string} uuid Element's uuid

Returns

None

Usage

js
import { iDraw } from 'idraw';
 
 const data = {
   elements: [
@@ -34,8 +34,8 @@
 idraw.setData(data);
 const resultData = idraw.getData();
 
-idraw.selectElement(resultData.elements[0].uuid);

Example

More Demo >>

- +idraw.selectElement(resultData.elements[0].uuid);

Example

More Demo >>

+ \ No newline at end of file diff --git a/docs/en-US/api/set-data.html b/docs/en-US/api/set-data.html index 2f3072e..fca1190 100644 --- a/docs/en-US/api/set-data.html +++ b/docs/en-US/api/set-data.html @@ -5,19 +5,19 @@ setData | iDraw.js - - + + - - - - - + + + + + -
Skip to content

setData

Introduction

setData The function receives a Drawing-Data to set drawing content. After that, it will re-render image base on Drawing-Data.

Arguments

  • {object} data Drawing-Data

Returns

None

Usage

js
import { iDraw } from 'idraw';
+    
Skip to content

setData

Introduction

setData The function receives a Drawing-Data to set drawing content. After that, it will re-render image base on Drawing-Data.

Arguments

  • {object} data Drawing-Data

Returns

None

Usage

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -45,8 +45,8 @@
     }
   ]
 };
-idraw.setData(data);

Example

More Demo

- +idraw.setData(data);

Example

More Demo

+ \ No newline at end of file diff --git a/docs/en-US/api/set-mode.html b/docs/en-US/api/set-mode.html index b4b10f5..29faed0 100644 --- a/docs/en-US/api/set-mode.html +++ b/docs/en-US/api/set-mode.html @@ -5,19 +5,19 @@ setMode | iDraw.js - - + + - - - - - + + + + + -
Skip to content

setMode

Introduction

setMode Can switch view operation mode

Arguments

  • {IDrawType} mode View operating mode
    • 'select': Selection mode, also the default mode, is used to select and edit elements
    • 'drag': Drag mode, used to drag and move the overall canvas position
    • 'readOnly': Read-only mode, only displays the view content and cannot be edited
ts
type IDrawMode = 'select' | 'drag' | 'readOnly';

Returns

N/A

Usage

js
import { iDraw } from 'idraw';
+    
Skip to content

setMode

Introduction

setMode Can switch view operation mode

Arguments

  • {IDrawType} mode View operating mode
    • 'select': Selection mode, also the default mode, is used to select and edit elements
    • 'drag': Drag mode, used to drag and move the overall canvas position
    • 'readOnly': Read-only mode, only displays the view content and cannot be edited
ts
type IDrawMode = 'select' | 'drag' | 'readOnly';

Returns

N/A

Usage

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -26,8 +26,8 @@
   devicePixelRatio: 2
 };
 const idraw = new iDraw(app, options);
-idraw.setMode('readOnly');

Example

More Demo >>

- +idraw.setMode('readOnly');

Example

More Demo >>

+ \ No newline at end of file diff --git a/docs/en-US/api/update-element.html b/docs/en-US/api/update-element.html index 5363137..9a63459 100644 --- a/docs/en-US/api/update-element.html +++ b/docs/en-US/api/update-element.html @@ -5,19 +5,19 @@ updateElement | iDraw.js - - + + - - - - - + + + + + -
Skip to content

updateElement

Introduction

updateElement updates an element in the drawing and triggers a re-rendering.

Arguments

  • {object} element

Returns

N/A

Usage

js
import { iDraw } from 'idraw';
+    
Skip to content

updateElement

Introduction

updateElement updates an element in the drawing and triggers a re-rendering.

Arguments

  • {object} element

Returns

N/A

Usage

js
import { iDraw } from 'idraw';
 
 const data = {
   elements: [
@@ -38,8 +38,8 @@
 
 elem.detail.color = '#f0f0f0';
 
-idraw.updateData(elem);

Example

More Demo >>

- +idraw.updateData(elem);

Example

More Demo >>

+ \ No newline at end of file diff --git a/docs/en-US/element/circle.html b/docs/en-US/element/circle.html index 13377c1..cc6935b 100644 --- a/docs/en-US/element/circle.html +++ b/docs/en-US/element/circle.html @@ -5,19 +5,19 @@ Circle | iDraw.js - - + + - - - - - + + + + + -
Skip to content

Circle

Circle

It is used to render circular or oval content. The specific type is as follows:

ts
type Circle = {
+    
Skip to content

Circle

Circle

It is used to render circular or oval content. The specific type is as follows:

ts
type Circle = {
   type: 'circle';
   x: number;
   y: number;
@@ -30,12 +30,12 @@
     borderWidth?: number;
     borderColor?: number;
   };
-};

Circle.detail

The basic attribute details of the element can be viewed Element's Detail # .

Circle.detail Data-Type

The Data-Type of Circle.detail

ts
type CircleDetail = {
+};

Circle.detail

The basic attribute details of the element can be viewed Element's Detail # .

Circle.detail Data-Type

The Data-Type of Circle.detail

ts
type CircleDetail = {
   background?: string;
   background?: string;
   borderWidth?: number;
   borderColor?: string;
-};

Circle.detail Properties

PropertyDescriptionTypeDefaultRequiredOthers
colorCircle Colorstring-trueeg. #000000
borderRadiusCircle radius of border cornernumber0false-
borderWidthBorder width of Circlenumber0false-
borderColorBorder color of Circlenumber0falseeg. #000000

Circle.detail Properties

js
const elementCircle = {
+};

Circle.detail Properties

PropertyDescriptionTypeDefaultRequiredOthers
colorCircle Colorstring-trueeg. #000000
borderRadiusCircle radius of border cornernumber0false-
borderWidthBorder width of Circlenumber0false-
borderColorBorder color of Circlenumber0falseeg. #000000

Circle.detail Properties

js
const elementCircle = {
   name: 'circle',
   x: 160,
   y: 100,
@@ -49,8 +49,8 @@
     borderWidth: 4,
     borderColor: '#3f51b5'
   }
-};

Demo Preview

More Demo >>

- +};

Demo Preview

More Demo >>

+ \ No newline at end of file diff --git a/docs/en-US/element/group.html b/docs/en-US/element/group.html index 70fcc07..529a4c1 100644 --- a/docs/en-US/element/group.html +++ b/docs/en-US/element/group.html @@ -5,19 +5,19 @@ Group | iDraw.js - - + + - - - - - + + + + + -
Skip to content

Group

Group

It is used to render group or oval content. The specific type is as follows:

ts
type Group = {
+    
Skip to content

Group

Group

It is used to render group or oval content. The specific type is as follows:

ts
type Group = {
   type: 'group';
   x: number;
   y: number;
@@ -31,13 +31,13 @@
     borderWidth?: number;
     borderColor?: number;
   };
-};

Group.detail

The basic attribute details of the element can be viewed Element's Detail # .

Group.detail Data-Type

The Data-Type of Group.detail

ts
type GroupDetail = {
+};

Group.detail

The basic attribute details of the element can be viewed Element's Detail # .

Group.detail Data-Type

The Data-Type of Group.detail

ts
type GroupDetail = {
   children: Array<Element>;
   background?: string;
   background?: string;
   borderWidth?: number;
   borderColor?: string;
-};

Group.detail Properties

PropertyDescriptionTypeDefaultRequiredOthers
childrenChildren element listArray<Element>-trueeg. #000000
backgroundGroup background colorstring-falseeg. #000000
borderRadiusGroup radius of border cornernumber0false-
borderWidthBorder width of Groupnumber0false-
borderColorBorder color of Groupnumber0falseeg. #000000

Complete Data Example

js
const elementGroup = {
+};

Group.detail Properties

PropertyDescriptionTypeDefaultRequiredOthers
childrenChildren element listArray<Element>-trueeg. #000000
backgroundGroup background colorstring-falseeg. #000000
borderRadiusGroup radius of border cornernumber0false-
borderWidthBorder width of Groupnumber0false-
borderColorBorder color of Groupnumber0falseeg. #000000

Complete Data Example

js
const elementGroup = {
   name: 'group',
   x: 160,
   y: 120,
@@ -48,8 +48,8 @@
   detail: {
     children: []
   }
-};

Demo Preview

More Demo >>

- +};

Demo Preview

More Demo >>

+ \ No newline at end of file diff --git a/docs/en-US/element/html.html b/docs/en-US/element/html.html index aca8a47..0626e4f 100644 --- a/docs/en-US/element/html.html +++ b/docs/en-US/element/html.html @@ -5,19 +5,19 @@ HTML | iDraw.js - - + + - - - - - + + + + + -
Skip to content

HTML

HTML

It is used to render HTML code snippet. The specific type is as follows:

ts
type HTML = {
+    
Skip to content

HTML

HTML

It is used to render HTML code snippet. The specific type is as follows:

ts
type HTML = {
   type: 'html';
   x: number;
   y: number;
@@ -27,9 +27,9 @@
   detail: {
     html: string;
   };
-};

HTML.detail

The basic attribute details of the element can be viewed Element's Detail #.

HTML.detail Data-Type

The Data-Type of HTML.detail

ts
type HTMLDetail = {
+};

HTML.detail

The basic attribute details of the element can be viewed Element's Detail #.

HTML.detail Data-Type

The Data-Type of HTML.detail

ts
type HTMLDetail = {
   html: string;
-};

HTML.detail Properties

PropertyDescriptionTypeDefaultRequiredOthers
htmlHTML code snippetstring-true-

Complete Data Example

js
const elementHTML = {
+};

HTML.detail Properties

PropertyDescriptionTypeDefaultRequiredOthers
htmlHTML code snippetstring-true-

Complete Data Example

js
const elementHTML = {
   name: 'html',
   x: 200,
   y: 120,
@@ -85,8 +85,8 @@
       </div>
     `
   }
-};

Demo Preview

More Demo >>

- +};

Demo Preview

More Demo >>

+ \ No newline at end of file diff --git a/docs/en-US/element/image.html b/docs/en-US/element/image.html index b741dd8..5f91217 100644 --- a/docs/en-US/element/image.html +++ b/docs/en-US/element/image.html @@ -5,19 +5,19 @@ Image | iDraw.js - - + + - - - - - + + + + + -
Skip to content

Image

Image

It is used to render image content. The specific type is as follows:

ts
type Image = {
+    
Skip to content

Image

Image

It is used to render image content. The specific type is as follows:

ts
type Image = {
   type: 'image';
   x: number;
   y: number;
@@ -27,9 +27,9 @@
   detail: {
     src: string;
   };
-};

Image.detail

The basic attribute details of the element can be viewed Element's Detail # .

Image.detail Data-Type

The Data-Type of Image.detail

ts
type ImageDetail = {
+};

Image.detail

The basic attribute details of the element can be viewed Element's Detail # .

Image.detail Data-Type

The Data-Type of Image.detail

ts
type ImageDetail = {
   src: string;
-};

Image.detail Properties

PropertyDescriptionTypeDefaultRequiredOthers
srcThe image URL or DataURLstring-true-

Complete Data Example

js
const elementImage = {
+};

Image.detail Properties

PropertyDescriptionTypeDefaultRequiredOthers
srcThe image URL or DataURLstring-true-

Complete Data Example

js
const elementImage = {
   name: 'image',
   x: 160,
   y: 100,
@@ -40,8 +40,8 @@
   detail: {
     src: './image/github.png'
   }
-};

Demo Preview

More Demo >>

- +};

Demo Preview

More Demo >>

+ \ No newline at end of file diff --git a/docs/en-US/element/info.html b/docs/en-US/element/info.html index cfce597..a8584c6 100644 --- a/docs/en-US/element/info.html +++ b/docs/en-US/element/info.html @@ -5,19 +5,19 @@ Element Information | iDraw.js - - + + - - - - - + + + + + -
Skip to content

Element Information

What is iDraw.js's Element

The content of drawing is based on "Element" in iDraw.js. Further more, the process of drawing is basically to realize the function of drawing around the layout, style, content and other attributes of controlling elements.

There eight types of elements are currently supported in iDraw.js :

  1. Text
  2. Rect
  3. Circle
  4. Image
  5. SVG
  6. HTML
  7. Path
  8. Group

Element's Detail

Element Basic Content

tsx
type Element = {
+    
Skip to content

Element Information

What is iDraw.js's Element

The content of drawing is based on "Element" in iDraw.js. Further more, the process of drawing is basically to realize the function of drawing around the layout, style, content and other attributes of controlling elements.

There eight types of elements are currently supported in iDraw.js :

  1. Text
  2. Rect
  3. Circle
  4. Image
  5. SVG
  6. HTML
  7. Path
  8. Group

Element's Detail

Element Basic Content

tsx
type Element = {
   type: 'text' | 'rect' | 'circle' | 'image' | 'svg' | 'html' | 'path' | 'group';
   uuid: string;
   name?: string;
@@ -33,7 +33,7 @@
     limitRatio?: boolean;
   };
   extension?: { [key: string]: any } | any;
-};

Element Basic Properties

PropertyDescriptionTypeDefaultRequiredOthers
typeElement typetext| rect| circle| image| svg | html-true-
uuidElement unique IDstring-falseThe UUID is automatically added internally in iDraw.js
nameElement namestring-false-
xX-axis offsetnumber-true-
yY-axis offsetnumber-true-
wElement widthnumber-true-
hElement heightnumber-true-
angleElement rotation anglenumber0false[0, 360]
lockSet the lock-staus of elementbooleanfalsefalseThe view operation cannot be controlled after the element is locked
detailDetail of different elementsobject (Please check the description of each element for details)-true-
operation.lockSet the lock-staus of elementbooleanfalsefalseThe view operation cannot be controlled after the element is locked
operation.invisible-booleanfalsefalse-
operation.limitRatioLimit element width and height ratioboolean-falseWhen the element is scaled, it is scaled according to its width and height ratio

Usage of Elements

js
import { iDraw } from 'idraw';
+};

Element Basic Properties

PropertyDescriptionTypeDefaultRequiredOthers
typeElement typetext| rect| circle| image| svg | html-true-
uuidElement unique IDstring-falseThe UUID is automatically added internally in iDraw.js
nameElement namestring-false-
xX-axis offsetnumber-true-
yY-axis offsetnumber-true-
wElement widthnumber-true-
hElement heightnumber-true-
angleElement rotation anglenumber0false[0, 360]
lockSet the lock-staus of elementbooleanfalsefalseThe view operation cannot be controlled after the element is locked
detailDetail of different elementsobject (Please check the description of each element for details)-true-
operation.lockSet the lock-staus of elementbooleanfalsefalseThe view operation cannot be controlled after the element is locked
operation.invisible-booleanfalsefalse-
operation.limitRatioLimit element width and height ratioboolean-falseWhen the element is scaled, it is scaled according to its width and height ratio

Usage of Elements

js
import { iDraw } from 'idraw';
 
 import { iDraw } from 'idraw';
 const data = {
@@ -67,8 +67,8 @@
 });
 
 // Set drawing-data for rendering view
-idraw.setData(data);

Demo Preview

More Demo >>

- +idraw.setData(data);

Demo Preview

More Demo >>

+ \ No newline at end of file diff --git a/docs/en-US/element/path.html b/docs/en-US/element/path.html index 45ad1a5..cf4a8d3 100644 --- a/docs/en-US/element/path.html +++ b/docs/en-US/element/path.html @@ -5,19 +5,19 @@ Path | iDraw.js - - + + - - - - - + + + + + -
Skip to content

Path

Path

It is used to render image content. The specific type is as follows:

ts
type Path = {
+    
Skip to content

Path

Path

It is used to render image content. The specific type is as follows:

ts
type Path = {
   type: 'path';
   x: number;
   y: number;
@@ -38,7 +38,7 @@
     strokeWidth?: number;
     strokeLineCap?: 'butt' | 'round' | 'square';
   };
-};

Path.detail Properties

The basic attribute details of the element can be viewed Element's Detail # .

Path.detail Data-Type

ts
type PathDetail = {
+};

Path.detail Properties

The basic attribute details of the element can be viewed Element's Detail # .

Path.detail Data-Type

ts
type PathDetail = {
   commands: Array<{
     type: 'M' | 'm' | 'L' | 'l' | 'H' | 'h' | 'V' | 'v' | 'C' | 'c' | 'S' | 's' | 'Q' | 'q' | 'T' | 't' | 'A' | 'a' | 'Z' | 'z';
     params: number[];
@@ -51,7 +51,7 @@
   stroke?: string;
   strokeWidth?: number;
   strokeLineCap?: 'butt' | 'round' | 'square';
-};

Path.detail Properties

PropertyDescriptionTypeDefaultRequiredOthers
fillfill colorstring-trueeg. #000000
strokepath colorstring-trueeg. #000000
strokeWidthpath widthnumber0false-
strokeLineCapPath turning type'butt' | 'round' | 'square'-true-
originXPath original X positionnumber0false-
originYPath original Y positionnumber0false-
originWPath original widthnumber0false-
originHPath original heightnumber0false-

Complete Data Example

js
const elementPath = {
+};

Path.detail Properties

PropertyDescriptionTypeDefaultRequiredOthers
fillfill colorstring-trueeg. #000000
strokepath colorstring-trueeg. #000000
strokeWidthpath widthnumber0false-
strokeLineCapPath turning type'butt' | 'round' | 'square'-true-
originXPath original X positionnumber0false-
originYPath original Y positionnumber0false-
originWPath original widthnumber0false-
originHPath original heightnumber0false-

Complete Data Example

js
const elementPath = {
   uuid: '41d437b8-afbd-2d3d-14bc-912e26d3491f',
   x: 100,
   y: 100,
@@ -76,8 +76,8 @@
     originH: 80,
     originW: 80
   }
-};

Demo Preview

More Demo >>

- +};

Demo Preview

More Demo >>

+ \ No newline at end of file diff --git a/docs/en-US/element/rect.html b/docs/en-US/element/rect.html index 0a96acc..4a57a2d 100644 --- a/docs/en-US/element/rect.html +++ b/docs/en-US/element/rect.html @@ -5,19 +5,19 @@ 矩形元素 | iDraw.js - - + + - - - - - + + + + + -
Skip to content

矩形元素

Rectangle

It is used to render rectangle content. The specific type is as follows:

ts
type Rect = {
+    
Skip to content

矩形元素

Rectangle

It is used to render rectangle content. The specific type is as follows:

ts
type Rect = {
   type: 'rect';
   x: number;
   y: number;
@@ -30,12 +30,12 @@
     borderWidth?: number;
     borderColor?: number;
   };
-};

Rect.detail

The basic attribute details of the element can be viewed Element's Detail # .

Rect.detail Data-Type

The Data-Type of Rect.detail

ts
type RectDetail = {
+};

Rect.detail

The basic attribute details of the element can be viewed Element's Detail # .

Rect.detail Data-Type

The Data-Type of Rect.detail

ts
type RectDetail = {
   background?: string;
   background?: string;
   borderWidth?: number;
   borderColor?: string;
-};

Rect.detail Properties

PropertyDescriptionTypeDefaultRequiredOthers
colorRectangle colorstring-trueeg. #000000
backgroundRectangle background colorstring-trueeg. #000000
borderRadiusRectangle radius of border cornernumber0false-
borderWidthBorder width of Rectanglenumber0false-
borderColorBorder color of Rectanglestring-falseeg. #000000

Complete Data Example

js
const elementRect = {
+};

Rect.detail Properties

PropertyDescriptionTypeDefaultRequiredOthers
colorRectangle colorstring-trueeg. #000000
backgroundRectangle background colorstring-trueeg. #000000
borderRadiusRectangle radius of border cornernumber0false-
borderWidthBorder width of Rectanglenumber0false-
borderColorBorder color of Rectanglestring-falseeg. #000000

Complete Data Example

js
const elementRect = {
   name: 'rect',
   x: 160,
   y: 120,
@@ -49,8 +49,8 @@
     borderWidth: 2,
     borderColor: '#3f51b5'
   }
-};

Demo Preview

More Demo >>

- +};

Demo Preview

More Demo >>

+ \ No newline at end of file diff --git a/docs/en-US/element/svg.html b/docs/en-US/element/svg.html index 66887fb..6759757 100644 --- a/docs/en-US/element/svg.html +++ b/docs/en-US/element/svg.html @@ -5,19 +5,19 @@ SVG | iDraw.js - - + + - - - - - + + + + + -
Skip to content

SVG

SVG

It is used to render SVG code snippet. The specific type is as follows:

ts
type SVG = {
+    
Skip to content

SVG

SVG

It is used to render SVG code snippet. The specific type is as follows:

ts
type SVG = {
   type: 'svg';
   x: number;
   y: number;
@@ -27,9 +27,9 @@
   detail: {
     svg: string;
   };
-};

SVG.detail

The basic attribute details of the element can be viewed Element's Detail #.

SVG.detail Data-Type

The Data-Type of SVG.detail

ts
type SVGDetail = {
+};

SVG.detail

The basic attribute details of the element can be viewed Element's Detail #.

SVG.detail Data-Type

The Data-Type of SVG.detail

ts
type SVGDetail = {
   svg: string;
-};

SVG.detail 数据属性内容

PropertyDescriptionTypeDefaultRequiredOthers
svgHTML code snippetstring-true-

完整数据示例

js
const elementSVG = {
+};

SVG.detail 数据属性内容

PropertyDescriptionTypeDefaultRequiredOthers
svgHTML code snippetstring-true-

完整数据示例

js
const elementSVG = {
   name: 'svg',
   x: 160,
   y: 100,
@@ -40,8 +40,8 @@
   detail: {
     svg: `<svg  viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"  width="400" height="400"><path d="M512 1013.76c-277.11488 0-501.76-224.64512-501.76-501.76S234.88512 10.24 512 10.24s501.76 224.64512 501.76 501.76-224.64512 501.76-501.76 501.76z m0-51.02592c248.9344 0 450.73408-201.79968 450.73408-450.73408 0-248.9344-201.79968-450.73408-450.73408-450.73408-248.9344 0-450.73408 201.79968-450.73408 450.73408 0 248.9344 201.79968 450.73408 450.73408 450.73408zM456.9856 637.9008l295.45984-339.94752a26.4192 26.4192 0 0 1 37.59616-2.31936 28.32896 28.32896 0 0 1 3.10784 38.8608l-307.01568 380.38016a30.72 30.72 0 0 1-42.90048 4.84864L235.44832 556.2368a32.128 32.128 0 0 1-5.74976-44.6464 32.1536 32.1536 0 0 1 44.544-6.58944l182.74304 132.90496z" fill="#1890ff"></path></svg>`
   }
-};

Demo Preview

More Demo >>

- +};

Demo Preview

More Demo >>

+ \ No newline at end of file diff --git a/docs/en-US/element/text.html b/docs/en-US/element/text.html index 81b695d..340f60d 100644 --- a/docs/en-US/element/text.html +++ b/docs/en-US/element/text.html @@ -5,19 +5,19 @@ Text | iDraw.js - - + + - - - - - + + + + + -
Skip to content

Text

Text

It is used to render text content. The specific type is as follows:

ts
type Text = {
+    
Skip to content

Text

Text

It is used to render text content. The specific type is as follows:

ts
type Text = {
   type: 'text';
   x: number;
   y: number;
@@ -30,7 +30,7 @@
     fontSize?: string;
     fontFamily?: string;
     textAlign?: 'left' | 'center' | 'right';
-};

Text.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

Text.detail 数据格式

Text元素的detail属性

ts
type TextDetail = {
+};

Text.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

Text.detail 数据格式

Text元素的detail属性

ts
type TextDetail = {
   text: string;
   color?: string;
   fontSize?: number;
@@ -39,7 +39,7 @@
   fontFamily?: string;
   textAlign?: 'center' | 'left' | 'right';
   verticalAlign?: 'middle' | 'top' | 'bottom';
-};

Text.detail Properties

PropertyDescriptionTypeDefaultRequiredOthers
textText Contentstring-true-
colorFont color of Textstring-trueeg. #000000
fontSizeFont size of Textnumber12false-
lineHeightLine height of Textnumber-false-
fontWeightFont boldnumber-false-
fontFamilyFont family of Textstring-false-
textAlignText align'left' | 'center' | 'right''left'false-
verticalAlignVertical Align'top' | 'middle' | 'bottom''top'false-

Complete Data Example

js
const elementText = {
+};

Text.detail Properties

PropertyDescriptionTypeDefaultRequiredOthers
textText Contentstring-true-
colorFont color of Textstring-trueeg. #000000
fontSizeFont size of Textnumber12false-
lineHeightLine height of Textnumber-false-
fontWeightFont boldnumber-false-
fontFamilyFont family of Textstring-false-
textAlignText align'left' | 'center' | 'right''left'false-
verticalAlignVertical Align'top' | 'middle' | 'bottom''top'false-

Complete Data Example

js
const elementText = {
   name: 'text',
   x: 160,
   y: 80,
@@ -57,8 +57,8 @@
     borderWidth: 2,
     borderColor: '#3f51b5'
   }
-};

Demo Preview

More Demo

- +};

Demo Preview

More Demo

+ \ No newline at end of file diff --git a/docs/en-US/guide/class-idraw.html b/docs/en-US/guide/class-idraw.html index 067f102..cde1126 100644 --- a/docs/en-US/guide/class-idraw.html +++ b/docs/en-US/guide/class-idraw.html @@ -5,19 +5,19 @@ Class iDraw | iDraw.js - - + + - - - - - + + + + + -
Skip to content

Class iDraw

Arguments

js
import { iDraw } from 'idraw';
+    
Skip to content

Class iDraw

Arguments

js
import { iDraw } from 'idraw';
 const dom = document.querySelector('#app');
 const options = {
   width: 600,
@@ -25,12 +25,12 @@
   devicePixelRatio: 2
 };
 
-const idraw = new iDraw(dom, options);
ArugmentDescriptionTypeDefaultRequiredOthers
domCanvas mounted DOMHTMLDivElement-true-
optionsImage rendering options[Object]-true-

Options

ts
type Options = {
+const idraw = new iDraw(dom, options);
ArugmentDescriptionTypeDefaultRequiredOthers
domCanvas mounted DOMHTMLDivElement-true-
optionsImage rendering options[Object]-true-

Options

ts
type Options = {
   width: number;
   height: number;
   devicePixelRatio: number;
-};

Options Properties

PropertyDescriptionTypeDefaultRequiredOthers
widthDrawing board's widthnumber-true-
heightDrawing board's heightnumber-true-
devicePixelRatioDevice pixel scalenumber1false-

Options Preivew

More Demo >>

- +};

Options Properties

PropertyDescriptionTypeDefaultRequiredOthers
widthDrawing board's widthnumber-true-
heightDrawing board's heightnumber-true-
devicePixelRatioDevice pixel scalenumber1false-

Options Preivew

More Demo >>

+ \ No newline at end of file diff --git a/docs/en-US/guide/installation.html b/docs/en-US/guide/installation.html index e04f024..023d1f1 100644 --- a/docs/en-US/guide/installation.html +++ b/docs/en-US/guide/installation.html @@ -5,19 +5,19 @@ Installation | iDraw.js - - + + - - - - - + + + + + -
Skip to content

Installation

Lastest Version

iDraw.js

Installation

There are three ways of adding iDraw.js to a project:

  1. Install it using NPM.
  2. Import it as a CDN Package on the page.
  3. Download the JavaScript file and host them yourself.

NPM

NPM is the recommended installation method when building large scale with iDraw.js. It pairs nicely with module bundlers such as Webpack, Rollup or Vite.

sh
npm install idraw

CDN

For prototyping or learning purposes, you can use the latest version with:

html
<script src="https://unpkg.com/idraw"></script>
html
<!-- use global value -->
+    
Skip to content

Installation

Lastest Version

iDraw.js

Installation

There are three ways of adding iDraw.js to a project:

  1. Install it using NPM.
  2. Import it as a CDN Package on the page.
  3. Download the JavaScript file and host them yourself.

NPM

NPM is the recommended installation method when building large scale with iDraw.js. It pairs nicely with module bundlers such as Webpack, Rollup or Vite.

sh
npm install idraw

CDN

For prototyping or learning purposes, you can use the latest version with:

html
<script src="https://unpkg.com/idraw"></script>
html
<!-- use global value -->
 <script>
   (function () {
     const { iDraw } = window.iDraw;
@@ -28,8 +28,8 @@
       devicePixelRatio: 2
     });
   })();
-</script>

Download and Self Host

If you want to avoid using build tools but can't use CDN in production then you can download the relevant .js file and host it using your own web server. You can include it using a <script> tag, just like with the CDN approach.

The files can be browsed and download from a CDN such as unpkg .

- +</script>

Download and Self Host

If you want to avoid using build tools but can't use CDN in production then you can download the relevant .js file and host it using your own web server. You can include it using a <script> tag, just like with the CDN approach.

The files can be browsed and download from a CDN such as unpkg .

+ \ No newline at end of file diff --git a/docs/en-US/guide/introduction.html b/docs/en-US/guide/introduction.html index 4162905..b705cd1 100644 --- a/docs/en-US/guide/introduction.html +++ b/docs/en-US/guide/introduction.html @@ -5,19 +5,19 @@ Introduction | iDraw.js - - + + - - - - - + + + + + -
Skip to content

Introduction

What is iDraw.js

iDraw.js is a JavaScript framework for drawing on web. It is based on the Canvas API in the browser.

It can be data-driven to render Image on Canvas in the browser. Furthermore, it can also visually handle the position, shape and layout of Drawing-Element.

iDraw.js is open source based on MIT License and it's code is stored in GitHub and NPM So that you can use iDraw.js for free in your own projects.

Getting started

sh
npm install idraw
js
import { iDraw } from 'idraw';
+    
Skip to content

Introduction

What is iDraw.js

iDraw.js is a JavaScript framework for drawing on web. It is based on the Canvas API in the browser.

It can be data-driven to render Image on Canvas in the browser. Furthermore, it can also visually handle the position, shape and layout of Drawing-Element.

iDraw.js is open source based on MIT License and it's code is stored in GitHub and NPM So that you can use iDraw.js for free in your own projects.

Getting started

sh
npm install idraw
js
import { iDraw } from 'idraw';
 const data = {
   elements: [
     {
@@ -46,8 +46,8 @@
   height: 400,
   devicePixelRatio: 2
 });
-idraw.setData(data);
- +idraw.setData(data);
+ \ No newline at end of file diff --git a/docs/en-US/guide/quickstart.html b/docs/en-US/guide/quickstart.html index aef2022..2e4cfbb 100644 --- a/docs/en-US/guide/quickstart.html +++ b/docs/en-US/guide/quickstart.html @@ -5,19 +5,19 @@ Quick Start | iDraw.js - - + + - - - - - + + + + + -
Skip to content

Quick Start

The First Example

It is a simple example of iDraw.js that drawing a rotating rectangle.

Install NPM Module

sh
npm install idraw

Mounted DOM

html
<div id="app"></div>

Use iDraw.js

js
import { iDraw } from 'idraw';
+    
Skip to content

Quick Start

The First Example

It is a simple example of iDraw.js that drawing a rotating rectangle.

Install NPM Module

sh
npm install idraw

Mounted DOM

html
<div id="app"></div>

Use iDraw.js

js
import { iDraw } from 'idraw';
 const data = {
   elements: [
     {
@@ -46,8 +46,8 @@
 });
 
 // Setting data
-idraw.setData(data);

Now, we can start the tutorials for using iDraw.js. O(∩_∩)O~

- +idraw.setData(data);

Now, we can start the tutorials for using iDraw.js. O(∩_∩)O~

+ \ No newline at end of file diff --git a/docs/en-US/index.html b/docs/en-US/index.html index c73f8f2..8988dc9 100644 --- a/docs/en-US/index.html +++ b/docs/en-US/index.html @@ -5,20 +5,20 @@ iDraw.js - - + + - - - - - + + + + + -
Skip to content

iDraw.js

Drawing easier on the web.

A simple JavaScript framework for Drawing on the web.

- +
Skip to content

iDraw.js

Drawing easier on the web.

A simple JavaScript framework for Drawing on the web.

+ \ No newline at end of file diff --git a/docs/en-US/sponsor.html b/docs/en-US/sponsor.html index ea537e3..0d0d254 100644 --- a/docs/en-US/sponsor.html +++ b/docs/en-US/sponsor.html @@ -5,20 +5,20 @@ Become an iDraw.js Sponsor | iDraw.js - - + + - - - - - + + + + + -
Skip to content

Become an iDraw.js Sponsor

iDraw.js is an MIT licensed open source project and completely free to use. The tremendous amount of effort needed to maintain this framework and develop new features for the project is only made sustainable thanks to the generous financial backing of our sponsors.

How to Sponsor

Sponsorships can be done via OpenCollective (https://opencollective.com/idrawjs). Both monthly-recurring sponsorships and one-time donations are accepted. Recurring sponsorships are entitled to logo placements as specified in Sponsorship Tiers.

- +
Skip to content

Become an iDraw.js Sponsor

iDraw.js is an MIT licensed open source project and completely free to use. The tremendous amount of effort needed to maintain this framework and develop new features for the project is only made sustainable thanks to the generous financial backing of our sponsors.

How to Sponsor

Sponsorships can be done via

Both monthly-recurring sponsorships and one-time donations are accepted. Recurring sponsorships are entitled to logo placements as specified in Sponsorship Tiers.

+ \ No newline at end of file diff --git a/docs/hashmap.json b/docs/hashmap.json index 5dd4096..412b871 100644 --- a/docs/hashmap.json +++ b/docs/hashmap.json @@ -1 +1 @@ -{"en-us_api_delete-element.md":"5FA1Myw8","en-us_api_center-content.md":"HDti-yp1","en-us_api_add-element.md":"CSft2v_9","en-us_api_resize.md":"Us45idBF","en-us_api_enable-disable.md":"Xl16Owsf","en-us_api_get-data.md":"zaCOgLDU","en-us_api_select-element.md":"M70Ah2tn","en-us_api_move-element.md":"erz1dvw_","en-us_element_circle.md":"9LkWREaD","en-us_api_set-data.md":"ZwngY3kQ","en-us_api_update-element.md":"-iahCtBO","en-us_api_set-mode.md":"wBD5SPSr","en-us_element_html.md":"tsHVUPVh","en-us_element_group.md":"yL0oQCBe","en-us_element_info.md":"xj25PwHX","en-us_element_image.md":"EjC1u2Xj","en-us_element_rect.md":"jl7sqBwM","en-us_element_path.md":"Hel0-4hv","en-us_element_svg.md":"yAlcGznY","en-us_guide_class-idraw.md":"NV45iEKs","en-us_element_text.md":"9k45uKEt","en-us_guide_installation.md":"LCva9Prm","en-us_index.md":"WN7UD5Qv","en-us_sponsor.md":"OjMNo1xz","index.md":"bWcwn8Hi","en-us_guide_introduction.md":"oAtGMDCn","en-us_guide_quickstart.md":"j-SOaCU1","zh-cn_api_add-element.md":"cWrK0KKU","zh-cn_api_center-content.md":"6gCUd5A0","zh-cn_api_delete-element.md":"j4QWtj8O","zh-cn_api_enable-disable.md":"ATviRUQS","zh-cn_api_get-data.md":"_9ZhWQCT","zh-cn_api_move-element.md":"z-cVejVv","zh-cn_api_resize.md":"aecMZXgm","zh-cn_api_select-element.md":"9SmQXMXH","zh-cn_api_set-data.md":"j0eTmWAp","zh-cn_api_set-mode.md":"UDWKcg3E","zh-cn_api_update-element.md":"r7FOtd7Z","zh-cn_element_circle.md":"TXgGQoDH","zh-cn_element_group.md":"5flfEW0e","zh-cn_element_image.md":"a7TjGV-j","zh-cn_element_html.md":"_O0oTlOn","zh-cn_element_info.md":"AultvWeM","zh-cn_element_path.md":"J3z6LwN_","zh-cn_element_svg.md":"ga__SCBc","zh-cn_element_rect.md":"IuhJ9ne4","zh-cn_element_text.md":"Mlt5U0l-","zh-cn_guide_class-idraw.md":"1BC1Vc1m","zh-cn_guide_installation.md":"Z0pJQFTS","zh-cn_guide_introduction.md":"L_K3kExR","zh-cn_index.md":"wdqaL4HK","zh-cn_sponsor.md":"w_7AgKx0","zh-cn_guide_quickstart.md":"JlXf8dNq"} +{"en-us_api_delete-element.md":"ANUKagkZ","en-us_api_add-element.md":"BEwyne3p","en-us_api_enable-disable.md":"B4Z28AX1","en-us_api_get-data.md":"DNE95Ljg","en-us_api_update-element.md":"eR6Q3nu7","en-us_api_select-element.md":"DcBpcLsl","en-us_api_move-element.md":"D-GYa6q6","en-us_element_circle.md":"BPk9feZm","en-us_element_group.md":"Su27caqc","en-us_api_get-image-blob-url.md":"OMUlBHLq","en-us_api_center-content.md":"BOGHnqJ5","en-us_api_set-mode.md":"UI9pHMSa","en-us_api_resize.md":"DigcBKAH","en-us_element_image.md":"Dk1JHajd","en-us_api_set-data.md":"DMA18cRs","en-us_element_info.md":"CXzazgBf","en-us_element_html.md":"CzQuvGA_","en-us_element_path.md":"Db-xB9cN","en-us_element_rect.md":"BEfc4rId","en-us_element_svg.md":"0YiOqt4z","zh-cn_api_update-element.md":"B3atZaxl","zh-cn_element_svg.md":"BZmDDbGX","en-us_index.md":"HlhUVoF9","index.md":"omXNPcHS","en-us_sponsor.md":"CpYJzvDl","zh-cn_element_group.md":"BOoVjFj6","zh-cn_element_circle.md":"DN6S-EXU","zh-cn_api_add-element.md":"C4ZJ4xPn","zh-cn_api_center-content.md":"Dl8fKLa0","zh-cn_element_image.md":"ByVhe77K","zh-cn_element_html.md":"SdT9eFgT","en-us_guide_quickstart.md":"D2jRO3nK","zh-cn_element_rect.md":"tvEil78x","zh-cn_element_text.md":"CFu3A5yw","zh-cn_guide_installation.md":"DSwwhAVH","zh-cn_guide_class-idraw.md":"7Ne7bKkG","zh-cn_guide_introduction.md":"DCa0dubh","zh-cn_guide_quickstart.md":"pNjsNpVL","zh-cn_index.md":"CJ_7nR73","zh-cn_sponsor.md":"CSFR7EZY","zh-cn_api_set-mode.md":"OQV2zwM7","zh-cn_api_resize.md":"CXioKRUY","zh-cn_api_get-image-blob-url.md":"C9T4Eagc","zh-cn_api_set-data.md":"DrJnKgnY","en-us_guide_class-idraw.md":"DHp7Sg01","zh-cn_api_move-element.md":"DpAyahyc","zh-cn_api_enable-disable.md":"DWNcaloO","en-us_element_text.md":"Cs7GV-AS","zh-cn_api_get-data.md":"DqveOB1M","zh-cn_element_info.md":"Bx5o2UrA","en-us_guide_installation.md":"DqTmXbVu","zh-cn_api_delete-element.md":"DnCEuVI9","zh-cn_element_path.md":"Cez2ZCjd","zh-cn_api_select-element.md":"BHZAppH4","en-us_guide_introduction.md":"CNANOaDX"} diff --git a/docs/index.html b/docs/index.html index 1a83111..cebd929 100644 --- a/docs/index.html +++ b/docs/index.html @@ -5,20 +5,20 @@ iDraw.js - - + + - - - - - + + + + + -
Skip to content

iDraw.js

Drawing easier on the web.

A simple JavaScript framework for Drawing on the web.

- +
Skip to content

iDraw.js

Drawing easier on the web.

A simple JavaScript framework for Drawing on the web.

+ \ No newline at end of file diff --git a/docs/zh-CN/api/add-element.html b/docs/zh-CN/api/add-element.html index 467079a..4a5ec56 100644 --- a/docs/zh-CN/api/add-element.html +++ b/docs/zh-CN/api/add-element.html @@ -5,19 +5,19 @@ addElement | iDraw.js - - + + - - - - - + + + + + -
Skip to content

addElement

说明

addElement 对图画添加元素,并且触发重新渲染。

参数

  • {object} element 元素内容,具体元素数据格式可查询 画图元素
  • {object} { position?: number[] },可选配置,position 元素索引位置,比如 [1, 2] 代表把元素加入第2个元素(必须是Group类型)的第3个位置上。

返回值

  • {object} 返回完整的data数据。

用法

js
import { iDraw } from 'idraw';
+    
Skip to content

addElement

说明

addElement 对图画添加元素,并且触发重新渲染。

参数

  • {object} element 元素内容,具体元素数据格式可查询 画图元素
  • {object} { position?: number[] },可选配置,position 元素索引位置,比如 [1, 2] 代表把元素加入第2个元素(必须是Group类型)的第3个位置上。

返回值

  • {object} 返回完整的data数据。

用法

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -41,8 +41,8 @@
     borderWidth: 4,
     borderColor: '#ff6032'
   }
-});

示例

Demo完整预览 Playground >>

- +});

示例

Demo完整预览 Playground >>

+ \ No newline at end of file diff --git a/docs/zh-CN/api/center-content.html b/docs/zh-CN/api/center-content.html index 095986f..d861a31 100644 --- a/docs/zh-CN/api/center-content.html +++ b/docs/zh-CN/api/center-content.html @@ -5,19 +5,19 @@ centerContent | iDraw.js - - + + - - - - - + + + + + -
Skip to content

centerContent

说明

centerContent 让内容在视图居中显示,如果内容尺寸超出视图,就会把内容按比例缩小居中在视图中。

参数

  • {object} options
    • {Data} options.data 可选,计算居中尺寸的新内容数据。

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
+    
Skip to content

centerContent

说明

centerContent 让内容在视图居中显示,如果内容尺寸超出视图,就会把内容按比例缩小居中在视图中。

参数

  • {object} options
    • {Data} options.data 可选,计算居中尺寸的新内容数据。

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -32,8 +32,8 @@
   ]
 });
 
-idraw.centerContent();

示例

Demo完整预览 Playground >>

- +idraw.centerContent();

示例

Demo完整预览 Playground >>

+ \ No newline at end of file diff --git a/docs/zh-CN/api/delete-element.html b/docs/zh-CN/api/delete-element.html index 2dfacc7..80c5ff2 100644 --- a/docs/zh-CN/api/delete-element.html +++ b/docs/zh-CN/api/delete-element.html @@ -5,19 +5,19 @@ deleteElement | iDraw.js - - + + - - - - - + + + + + -
Skip to content

deleteElement

说明

deleteElement 根据元素的uuid,将图画中对应的元素删除,并且触发重新渲染。

参数

  • {string} uuid 元素唯一ID

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
+    
Skip to content

deleteElement

说明

deleteElement 根据元素的uuid,将图画中对应的元素删除,并且触发重新渲染。

参数

  • {string} uuid 元素唯一ID

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -35,8 +35,8 @@
 
 const uuid = idraw.getData().elements[0].uuid;
 
-idraw.deleteElement(uuid);

示例

Demo完整预览 Playground >>

- +idraw.deleteElement(uuid);

示例

Demo完整预览 Playground >>

+ \ No newline at end of file diff --git a/docs/zh-CN/api/enable-disable.html b/docs/zh-CN/api/enable-disable.html index 6dd8867..e5599cb 100644 --- a/docs/zh-CN/api/enable-disable.html +++ b/docs/zh-CN/api/enable-disable.html @@ -5,19 +5,19 @@ enable/disable | iDraw.js - - + + - - - - - + + + + + -
Skip to content

enable/disable

说明

  • enable(...) 开启某个功能
  • disable(...) 关闭某个功能

参数

  • {IDrawFeature} feat 功能类型
    • 'ruler': 标尺功能
    • 'scroll': 滚动条功能
    • 'scale': 缩放功能
    • 'info': 信息显示功能,例如显示坐标信息
    • - 其它功能待开发 ...
ts
type IDrawFeature = 'ruler' | 'scroll' | 'scale' | 'info'; // TODO other feature

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
+    
Skip to content

enable/disable

说明

  • enable(...) 开启某个功能
  • disable(...) 关闭某个功能

参数

  • {IDrawFeature} feat 功能类型
    • 'ruler': 标尺功能
    • 'scroll': 滚动条功能
    • 'scale': 缩放功能
    • 'info': 信息显示功能,例如显示坐标信息
    • 'selectInGroup': 在组合中选择元素
    • 'snapToGrid': 对其到网格和辅助线
    • - 其它功能待开发 ...
ts
type IDrawFeature = 'ruler' | 'scroll' | 'scale' | 'info' | 'selectInGroup' | 'snapToGrid'; // TODO other feature

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -31,8 +31,8 @@
 
 setTimeout(() => {
   idraw.enable('ruler');
-}, 1000);

示例

Demo完整预览 Playground >>

- +}, 1000);

示例

Demo完整预览 Playground >>

+ \ No newline at end of file diff --git a/docs/zh-CN/api/get-data.html b/docs/zh-CN/api/get-data.html index 08645e6..074e55b 100644 --- a/docs/zh-CN/api/get-data.html +++ b/docs/zh-CN/api/get-data.html @@ -5,19 +5,19 @@ getData | iDraw.js - - + + - - - - - + + + + + -
Skip to content

getData

说明

getData 用于获取当前画图内容的数据。

参数

  • {object} options 选项,非必填
    • {boolean} options.compact 压缩,非必选

返回值

  • {object} data 图画的JSON对象数据

用法

js
import { iDraw } from 'idraw';
+    
Skip to content

getData

说明

getData 用于获取当前画图内容的数据。

参数

  • {object} options 选项,非必填
    • {boolean} options.compact 压缩,非必选

返回值

  • {object} data 图画的JSON对象数据

用法

js
import { iDraw } from 'idraw';
 
 const data = {
   elements: [
@@ -49,8 +49,8 @@
 idraw.setData(data);
 
 const resultData = idraw.getData();
-console.log(resultData);

示例

Demo完整预览 Playground >>

- +console.log(resultData);

示例

Demo完整预览 Playground >>

+ \ No newline at end of file diff --git a/docs/zh-CN/api/get-image-blob-url.html b/docs/zh-CN/api/get-image-blob-url.html new file mode 100644 index 0000000..a7ee156 --- /dev/null +++ b/docs/zh-CN/api/get-image-blob-url.html @@ -0,0 +1,34 @@ + + + + + + getImageBlobURL | iDraw.js + + + + + + + + + + + + + +
Skip to content

getImageBlobURL

说明

getImageBlobURL 从画布中导出图像内容,把画布内容提取到内存Blob里,并生成图片的blobURL

参数

  • {object} options 导出图像的配置选项
    • {number} options.devicePixelRatio 设备像素比例,默认为 1

返回值

  • {Promise<object>} 返回完整的画布图像数据
    • {string} blobURL 画布图像在内存中的Blob链接
    • {number} width 导出图像逻辑像素的宽度
    • {number} height 导出图像逻辑像素的高度
    • {number} devicePixelRatio 导出图像的设备像素比例

用法

js
import { iDraw } from 'idraw';
+
+const app = document.querySelector('#app');
+const options = {
+  width: 600,
+  height: 400,
+  devicePixelRatio: 2
+};
+const idraw = new iDraw(app, options);
+
+const { blobURL } = await idraw.getImageBlobURL({ devicePixelRatio: 1 });

示例

Demo完整预览 Playground >>

+ + + + \ No newline at end of file diff --git a/docs/zh-CN/api/move-element.html b/docs/zh-CN/api/move-element.html index 79f28dd..5da373f 100644 --- a/docs/zh-CN/api/move-element.html +++ b/docs/zh-CN/api/move-element.html @@ -5,19 +5,19 @@ moveElement | iDraw.js - - + + - - - - - + + + + + -
Skip to content

moveElement

说明

moveElement 根据元素的uuid,将图画中对应的元素删除,并且触发重新渲染。

参数

  • {string} uuid 元素唯一ID
  • {number[]} position 将元素移动到指定索引位置。比如 [1, 2] 代表把元素移动到第2个元素(必须是Group类型)的第3个位置上。

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
+    
Skip to content

moveElement

说明

moveElement 根据元素的uuid,将图画中对应的元素删除,并且触发重新渲染。

参数

  • {string} uuid 元素唯一ID
  • {number[]} position 将元素移动到指定索引位置。比如 [1, 2] 代表把元素移动到第2个元素(必须是Group类型)的第3个位置上。

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -35,8 +35,8 @@
 
 const uuid = idraw.getData().elements[0].uuid;
 
-idraw.moveElement(uuid, { position: [1, 2] });

示例

Demo完整预览 Playground >>

- +idraw.moveElement(uuid, { position: [1, 2] });

示例

Demo完整预览 Playground >>

+ \ No newline at end of file diff --git a/docs/zh-CN/api/resize.html b/docs/zh-CN/api/resize.html index fac6f55..0c1af5a 100644 --- a/docs/zh-CN/api/resize.html +++ b/docs/zh-CN/api/resize.html @@ -5,19 +5,19 @@ resize | iDraw.js - - + + - - - - - + + + + + -
Skip to content

resize

说明

resize 可以对图画视图尺寸进行再次修改

参数

  • {object} options 视图尺寸选项
    • {number} options.width 画板宽度,非必选
    • {number} options.height 画板高度,非必选
    • {number} options.devicePixelRatio 设备像素比例,非必选

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
+    
Skip to content

resize

说明

resize 可以对图画视图尺寸进行再次修改

参数

  • {object} options 视图尺寸选项
    • {number} options.width 画板宽度,非必选
    • {number} options.height 画板高度,非必选
    • {number} options.devicePixelRatio 设备像素比例,非必选

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -36,8 +36,8 @@
   width: 300,
   height: 200,
   devicePixelRatio: 2
-});

示例

Demo完整预览 Playground >>

- +});

示例

Demo完整预览 Playground >>

+ \ No newline at end of file diff --git a/docs/zh-CN/api/select-element.html b/docs/zh-CN/api/select-element.html index 6a4beaa..f14fc56 100644 --- a/docs/zh-CN/api/select-element.html +++ b/docs/zh-CN/api/select-element.html @@ -5,19 +5,19 @@ selectElement | iDraw.js - - + + - - - - - + + + + + -
Skip to content

selectElement

说明

selectElement 根据元素的UUID选中图画中的元素。

参数

  • {string} uuid 元素唯一ID

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
+    
Skip to content

selectElement

说明

selectElement 根据元素的UUID选中图画中的元素。

参数

  • {string} uuid 元素唯一ID

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
 
 const data = {
   elements: [
@@ -34,8 +34,8 @@
 idraw.setData(data);
 const resultData = idraw.getData();
 
-idraw.selectElement(resultData.elements[0].uuid);

示例

Demo完整预览 Playground >>

- +idraw.selectElement(resultData.elements[0].uuid);

示例

Demo完整预览 Playground >>

+ \ No newline at end of file diff --git a/docs/zh-CN/api/set-data.html b/docs/zh-CN/api/set-data.html index a75ebcb..dba8fea 100644 --- a/docs/zh-CN/api/set-data.html +++ b/docs/zh-CN/api/set-data.html @@ -5,19 +5,19 @@ setData | iDraw.js - - + + - - - - - + + + + + -
Skip to content

setData

说明

setData 用于设置画图内容的数据,设置后会根据设置数据触发图画的重绘。

参数

  • {object} data 画图数据对象

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
+    
Skip to content

setData

说明

setData 用于设置画图内容的数据,设置后会根据设置数据触发图画的重绘。

参数

  • {object} data 画图数据对象

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -45,8 +45,8 @@
     }
   ]
 };
-idraw.setData(data);

示例

Demo完整预览 Playground >>

- +idraw.setData(data);

示例

Demo完整预览 Playground >>

+ \ No newline at end of file diff --git a/docs/zh-CN/api/set-mode.html b/docs/zh-CN/api/set-mode.html index 39e7eb5..b4c44a3 100644 --- a/docs/zh-CN/api/set-mode.html +++ b/docs/zh-CN/api/set-mode.html @@ -5,19 +5,19 @@ setMode | iDraw.js - - + + - - - - - + + + + + -
Skip to content

setMode

说明

setMode 可以切换视图操作模式

参数

  • {IDrawType} mode 视图操作模式
    • 'select': 选择模式,也是默认模式,用于选择和编辑元素
    • 'drag': 拖拽模式,用于拖拽移动整体画布位置
    • 'readOnly': 只读模式,仅显示视图内容,无法进行编辑操作
ts
type IDrawMode = 'select' | 'drag' | 'readOnly';

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
+    
Skip to content

setMode

说明

setMode 可以切换视图操作模式

参数

  • {IDrawType} mode 视图操作模式
    • 'select': 选择模式,也是默认模式,用于选择和编辑元素
    • 'drag': 拖拽模式,用于拖拽移动整体画布位置
    • 'readOnly': 只读模式,仅显示视图内容,无法进行编辑操作
ts
type IDrawMode = 'select' | 'drag' | 'readOnly';

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
 
 const app = document.querySelector('#app');
 const options = {
@@ -26,8 +26,8 @@
   devicePixelRatio: 2
 };
 const idraw = new iDraw(app, options);
-idraw.setMode('readOnly');

示例

Demo完整预览 Playground >>

- +idraw.setMode('readOnly');

示例

Demo完整预览 Playground >>

+ \ No newline at end of file diff --git a/docs/zh-CN/api/update-element.html b/docs/zh-CN/api/update-element.html index 1950634..a13a623 100644 --- a/docs/zh-CN/api/update-element.html +++ b/docs/zh-CN/api/update-element.html @@ -5,19 +5,19 @@ updateElement | iDraw.js - - + + - - - - - + + + + + -
Skip to content

updateElement

说明

updateElement 更新图画中的元素,并且触发重新渲染。

参数

  • {object} element 元素内容,具体元素数据格式可查询 画图元素

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
+    
Skip to content

updateElement

说明

updateElement 更新图画中的元素,并且触发重新渲染。

参数

  • {object} element 元素内容,具体元素数据格式可查询 画图元素

返回值

无返回值

用法

js
import { iDraw } from 'idraw';
 
 const data = {
   elements: [
@@ -38,8 +38,8 @@
 
 elem.detail.color = '#f0f0f0';
 
-idraw.updateData(elem);

示例

Demo完整预览 Playground >>

- +idraw.updateData(elem);

示例

Demo完整预览 Playground >>

+ \ No newline at end of file diff --git a/docs/zh-CN/element/circle.html b/docs/zh-CN/element/circle.html index 77adc9e..316d131 100644 --- a/docs/zh-CN/element/circle.html +++ b/docs/zh-CN/element/circle.html @@ -5,19 +5,19 @@ 圆形元素 | iDraw.js - - + + - - - - - + + + + + -
Skip to content

圆形元素

Circle

用来渲染圆形或椭圆形内容,具体格式如下所示:

ts
type Circle = {
+    
Skip to content

圆形元素

Circle

用来渲染圆形或椭圆形内容,具体格式如下所示:

ts
type Circle = {
   type: 'circle';
   x: number;
   y: number;
@@ -30,12 +30,12 @@
     borderWidth?: number;
     borderColor?: number;
   };
-};

Circle.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

Circle.detail 数据格式

Circle 元素的detail属性

ts
type CircleDetail = {
+};

Circle.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

Circle.detail 数据格式

Circle 元素的detail属性

ts
type CircleDetail = {
   background?: string;
   background?: string;
   borderWidth?: number;
   borderColor?: string;
-};

Circle.detail 数据属性内容

属性说明类型默认值是否必填备注
background圆形颜色string-true例如 #000000
borderRadius边框角圆形半径number0false-
borderWidth边框宽度number0false-
borderColor边框颜色string-false例如 #000000

完整数据示例

js
const elementCircle = {
+};

Circle.detail 数据属性内容

属性说明类型默认值是否必填备注
background圆形颜色string-true例如 #000000
borderRadius边框角圆形半径number0false-
borderWidth边框宽度number0false-
borderColor边框颜色string-false例如 #000000

完整数据示例

js
const elementCircle = {
   name: 'circle',
   x: 160,
   y: 100,
@@ -49,8 +49,8 @@
     borderWidth: 4,
     borderColor: '#3f51b5'
   }
-};

效果预览

Demo完整预览 Playground >>

- +};

效果预览

Demo完整预览 Playground >>

+ \ No newline at end of file diff --git a/docs/zh-CN/element/group.html b/docs/zh-CN/element/group.html index 2df4d7c..333389b 100644 --- a/docs/zh-CN/element/group.html +++ b/docs/zh-CN/element/group.html @@ -5,19 +5,19 @@ 组合元素 | iDraw.js - - + + - - - - - + + + + + -
Skip to content

组合元素

Group

用来渲染组合内容,具体格式如下所示:

ts
type Group = {
+    
Skip to content

组合元素

Group

用来渲染组合内容,具体格式如下所示:

ts
type Group = {
   type: 'group';
   x: number;
   y: number;
@@ -31,13 +31,13 @@
     borderWidth?: number;
     borderColor?: number;
   };
-};

Group.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

Group.detail 数据格式

Rect 元素的detail属性

ts
type GroupDetail = {
+};

Group.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

Group.detail 数据格式

Rect 元素的detail属性

ts
type GroupDetail = {
   children: Array<Element>;
   background?: string;
   background?: string;
   borderWidth?: number;
   borderColor?: string;
-};

Group.detail 数据属性内容

属性说明类型默认值是否必填备注
children组合子元素Array<Element>-true例如 #000000
background组合矩形颜色string-false例如 #000000
borderRadius组合边框角圆形半径number0false-
borderWidth组合边框宽度number0false-
borderColor组合边框颜色string-false例如 #000000

完整数据示例

js
const elementGroup = {
+};

Group.detail 数据属性内容

属性说明类型默认值是否必填备注
children组合子元素Array<Element>-true例如 #000000
background组合矩形颜色string-false例如 #000000
borderRadius组合边框角圆形半径number0false-
borderWidth组合边框宽度number0false-
borderColor组合边框颜色string-false例如 #000000

完整数据示例

js
const elementGroup = {
   name: 'group',
   x: 160,
   y: 120,
@@ -48,8 +48,8 @@
   detail: {
     children: []
   }
-};

效果预览

Demo完整预览 Playground >>

- +};

效果预览

Demo完整预览 Playground >>

+ \ No newline at end of file diff --git a/docs/zh-CN/element/html.html b/docs/zh-CN/element/html.html index 2d8a1bb..396263d 100644 --- a/docs/zh-CN/element/html.html +++ b/docs/zh-CN/element/html.html @@ -5,19 +5,19 @@ HTML元素 | iDraw.js - - + + - - - - - + + + + + -
Skip to content

HTML元素

HTML

用来渲染HTML代码片,具体格式如下所示:

ts
type HTML = {
+    
Skip to content

HTML元素

HTML

用来渲染HTML代码片,具体格式如下所示:

ts
type HTML = {
   type: 'html';
   x: number;
   y: number;
@@ -27,9 +27,9 @@
   detail: {
     html: string;
   };
-};

HTML.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

HTML.detail 数据格式

HTML 元素的detail属性

ts
type HTMLDetail = {
+};

HTML.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

HTML.detail 数据格式

HTML 元素的detail属性

ts
type HTMLDetail = {
   html: string;
-};

HTML.detail 数据属性内容

属性说明类型默认值是否必填备注
htmlHTML代码片段string-true-

WARNING

注意 detail.html 里的 HTML代码片段暂时不支持依赖资源渲染,例如 <img /> 标签或者 cssbackground-image 属性

完整数据示例

js
const elementHTML = {
+};

HTML.detail 数据属性内容

属性说明类型默认值是否必填备注
htmlHTML代码片段string-true-

WARNING

注意 detail.html 里的 HTML代码片段暂时不支持依赖资源渲染,例如 <img /> 标签或者 cssbackground-image 属性

完整数据示例

js
const elementHTML = {
   name: 'html',
   x: 200,
   y: 120,
@@ -85,8 +85,8 @@
       </div>
     `
   }
-};

效果预览

Demo完整预览 Playground >>

- +};

效果预览

Demo完整预览 Playground >>

+ \ No newline at end of file diff --git a/docs/zh-CN/element/image.html b/docs/zh-CN/element/image.html index e5c153f..4506b30 100644 --- a/docs/zh-CN/element/image.html +++ b/docs/zh-CN/element/image.html @@ -5,19 +5,19 @@ 图片元素 | iDraw.js - - + + - - - - - + + + + + -
Skip to content

图片元素

Image

用来渲染图片内容,具体格式如下所示:

ts
type Image = {
+    
Skip to content

图片元素

Image

用来渲染图片内容,具体格式如下所示:

ts
type Image = {
   type: 'image';
   x: number;
   y: number;
@@ -27,9 +27,9 @@
   detail: {
     src: string;
   };
-};

Image.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

Image.detail 数据格式

Image元素的detail属性

ts
type ImageDetail = {
+};

Image.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

Image.detail 数据格式

Image元素的detail属性

ts
type ImageDetail = {
   src: string;
-};

Image.detail 数据属性内容

属性说明类型默认值是否必填备注
src图片数据源string-true可以是图片链接或图片Base64

完整数据示例

js
const elementImage = {
+};

Image.detail 数据属性内容

属性说明类型默认值是否必填备注
src图片数据源string-true可以是图片链接或图片Base64

完整数据示例

js
const elementImage = {
   name: 'image',
   x: 160,
   y: 100,
@@ -40,8 +40,8 @@
   detail: {
     src: './image/github.png'
   }
-};

效果预览

Demo完整预览 Playground >>

- +};

效果预览

Demo完整预览 Playground >>

+ \ No newline at end of file diff --git a/docs/zh-CN/element/info.html b/docs/zh-CN/element/info.html index 270b9e5..0b8b834 100644 --- a/docs/zh-CN/element/info.html +++ b/docs/zh-CN/element/info.html @@ -5,19 +5,19 @@ 画图元素介绍 | iDraw.js - - + + - - - - - + + + + + -
Skip to content

画图元素介绍

什么是 iDraw.js 画图元素?

iDraw.js 画图的内容都是基于“元素”构成的,画图的过程基本是围绕处理元素的位置、样式、内容等属性来实现画图的功能。

目前支持的有八种元素:

  1. Text 文本
  2. Rect 矩形
  3. Circle 圆形
  4. Image 图片
  5. SVG
  6. HTML
  7. Path 路径
  8. Group 组合

画图元素的信息

数据基本格式

tsx
type Element = {
+    
Skip to content

画图元素介绍

什么是 iDraw.js 画图元素?

iDraw.js 画图的内容都是基于“元素”构成的,画图的过程基本是围绕处理元素的位置、样式、内容等属性来实现画图的功能。

目前支持的有八种元素:

  1. Text 文本
  2. Rect 矩形
  3. Circle 圆形
  4. Image 图片
  5. SVG
  6. HTML
  7. Path 路径
  8. Group 组合

画图元素的信息

数据基本格式

tsx
type Element = {
   type: 'text' | 'rect' | 'circle' | 'image' | 'svg' | 'html' | 'path' | 'group';
   uuid: string;
   name?: string;
@@ -34,7 +34,7 @@
     limitRatio?: boolean;
   };
   extension?: { [key: string]: any } | any;
-};

元素的基本属性

属性说明类型默认值备注
type元素类型text| rect|circle|image|svg| html--
uuid唯一 IDstring-iDraw.js 内部会自动添加
name名称string--
xX 轴偏移量number--
yY 轴偏移量number--
w元素宽度number--
h元素高度number--
angle元素旋转角度number0[0, 360]
detail元素描述内容object (详情请查看各元素描述内容)--
operations.lock元素是否锁住booleanfalse元素锁住后就不能进行视图操作
operations.invisible元素是否不可见booleanfalse元素不可见就不会渲染
operations.limitRatio元素是否限制宽高比例boolean-在元素缩放时候,按照其宽高比例进行缩放

画图元素的使用

js
import { iDraw } from 'idraw';
+};

元素的基本属性

属性说明类型默认值备注
type元素类型text| rect|circle|image|svg| html--
uuid唯一 IDstring-iDraw.js 内部会自动添加
name名称string--
xX 轴偏移量number--
yY 轴偏移量number--
w元素宽度number--
h元素高度number--
angle元素旋转角度number0[0, 360]
detail元素描述内容object (详情请查看各元素描述内容)--
operations.lock元素是否锁住booleanfalse元素锁住后就不能进行视图操作
operations.invisible元素是否不可见booleanfalse元素不可见就不会渲染
operations.limitRatio元素是否限制宽高比例boolean-在元素缩放时候,按照其宽高比例进行缩放

画图元素的使用

js
import { iDraw } from 'idraw';
 
 import { iDraw } from 'idraw';
 const data = {
@@ -68,8 +68,8 @@
 });
 
 // 设置元素数据,渲染画图内容
-idraw.setData(data);

示例预览

Demo 完整预览 Playground >>

- +idraw.setData(data);

示例预览

Demo 完整预览 Playground >>

+ \ No newline at end of file diff --git a/docs/zh-CN/element/path.html b/docs/zh-CN/element/path.html index 1509700..64ec33a 100644 --- a/docs/zh-CN/element/path.html +++ b/docs/zh-CN/element/path.html @@ -5,19 +5,19 @@ 路径元素 | iDraw.js - - + + - - - - - + + + + + -
Skip to content

路径元素

Path

用来渲染路径内容,具体格式如下所示:

ts
type Path = {
+    
Skip to content

路径元素

Path

用来渲染路径内容,具体格式如下所示:

ts
type Path = {
   type: 'path';
   x: number;
   y: number;
@@ -38,7 +38,7 @@
     strokeWidth?: number;
     strokeLineCap?: 'butt' | 'round' | 'square';
   };
-};

Path.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

Path.detail 数据格式

Rect 元素的detail属性

ts
type PathDetail = {
+};

Path.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

Path.detail 数据格式

Rect 元素的detail属性

ts
type PathDetail = {
   commands: Array<{
     type: 'M' | 'm' | 'L' | 'l' | 'H' | 'h' | 'V' | 'v' | 'C' | 'c' | 'S' | 's' | 'Q' | 'q' | 'T' | 't' | 'A' | 'a' | 'Z' | 'z';
     params: number[];
@@ -51,7 +51,7 @@
   stroke?: string;
   strokeWidth?: number;
   strokeLineCap?: 'butt' | 'round' | 'square';
-};

Path.detail 数据属性内容

属性说明类型默认值是否必填备注
fill填充颜色string-true例如 #000000
stroke路径颜色string-true例如 #000000
strokeWidth路径宽度number0false-
strokeLineCap路径转折类型'butt' | 'round' | 'square'-true-
originX路径原始X位置number0false-
originY路径原始Y位置number0false-
originW路径原始宽度number0false-
originH路径原始高度number0false-

完整数据示例

js
const elementPath = {
+};

Path.detail 数据属性内容

属性说明类型默认值是否必填备注
fill填充颜色string-true例如 #000000
stroke路径颜色string-true例如 #000000
strokeWidth路径宽度number0false-
strokeLineCap路径转折类型'butt' | 'round' | 'square'-true-
originX路径原始X位置number0false-
originY路径原始Y位置number0false-
originW路径原始宽度number0false-
originH路径原始高度number0false-

完整数据示例

js
const elementPath = {
   uuid: '41d437b8-afbd-2d3d-14bc-912e26d3491f',
   x: 100,
   y: 100,
@@ -76,8 +76,8 @@
     originH: 80,
     originW: 80
   }
-};

效果预览

Demo完整预览 Playground >>

- +};

效果预览

Demo完整预览 Playground >>

+ \ No newline at end of file diff --git a/docs/zh-CN/element/rect.html b/docs/zh-CN/element/rect.html index f7bacd0..bcada26 100644 --- a/docs/zh-CN/element/rect.html +++ b/docs/zh-CN/element/rect.html @@ -5,19 +5,19 @@ 矩形元素 | iDraw.js - - + + - - - - - + + + + + -
Skip to content

矩形元素

Rectangle

用来渲染矩形内容,具体格式如下所示:

ts
type Rect = {
+    
Skip to content

矩形元素

Rectangle

用来渲染矩形内容,具体格式如下所示:

ts
type Rect = {
   type: 'rect';
   x: number;
   y: number;
@@ -30,12 +30,12 @@
     borderWidth?: number;
     borderColor?: number;
   };
-};

Rect.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

Rect.detail 数据格式

Rect 元素的detail属性

ts
type RectDetail = {
+};

Rect.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

Rect.detail 数据格式

Rect 元素的detail属性

ts
type RectDetail = {
   background?: string;
   background?: string;
   borderWidth?: number;
   borderColor?: string;
-};

Rect.detail 数据属性内容

属性说明类型默认值是否必填备注
background矩形颜色string-true例如 #000000
borderRadius边框角圆形半径number0false-
borderWidth边框宽度number0false-
borderColor边框颜色string-false例如 #000000

完整数据示例

js
const elementRect = {
+};

Rect.detail 数据属性内容

属性说明类型默认值是否必填备注
background矩形颜色string-true例如 #000000
borderRadius边框角圆形半径number0false-
borderWidth边框宽度number0false-
borderColor边框颜色string-false例如 #000000

完整数据示例

js
const elementRect = {
   name: 'rect',
   x: 160,
   y: 120,
@@ -49,8 +49,8 @@
     borderWidth: 2,
     borderColor: '#3f51b5'
   }
-};

效果预览

Demo完整预览 Playground >>

- +};

效果预览

Demo完整预览 Playground >>

+ \ No newline at end of file diff --git a/docs/zh-CN/element/svg.html b/docs/zh-CN/element/svg.html index 36cd001..fc3e510 100644 --- a/docs/zh-CN/element/svg.html +++ b/docs/zh-CN/element/svg.html @@ -5,19 +5,19 @@ SVG元素 | iDraw.js - - + + - - - - - + + + + + -
Skip to content

SVG元素

SVG

用来渲染SVG代码片,具体格式如下所示:

ts
type SVG = {
+    
Skip to content

SVG元素

SVG

用来渲染SVG代码片,具体格式如下所示:

ts
type SVG = {
   type: 'svg';
   x: number;
   y: number;
@@ -27,9 +27,9 @@
   detail: {
     svg: string;
   };
-};

SVG.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

SVG.detail 数据格式

SVG 元素的detail属性

ts
type SVGDetail = {
+};

SVG.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

SVG.detail 数据格式

SVG 元素的detail属性

ts
type SVGDetail = {
   svg: string;
-};

SVG.detail 数据属性内容

属性说明类型默认值是否必填备注
svgSVG代码片段string-true-

完整数据示例

js
const elementSVG = {
+};

SVG.detail 数据属性内容

属性说明类型默认值是否必填备注
svgSVG代码片段string-true-

完整数据示例

js
const elementSVG = {
   name: 'svg',
   x: 160,
   y: 100,
@@ -40,8 +40,8 @@
   detail: {
     svg: `<svg  viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"  width="400" height="400"><path d="M512 1013.76c-277.11488 0-501.76-224.64512-501.76-501.76S234.88512 10.24 512 10.24s501.76 224.64512 501.76 501.76-224.64512 501.76-501.76 501.76z m0-51.02592c248.9344 0 450.73408-201.79968 450.73408-450.73408 0-248.9344-201.79968-450.73408-450.73408-450.73408-248.9344 0-450.73408 201.79968-450.73408 450.73408 0 248.9344 201.79968 450.73408 450.73408 450.73408zM456.9856 637.9008l295.45984-339.94752a26.4192 26.4192 0 0 1 37.59616-2.31936 28.32896 28.32896 0 0 1 3.10784 38.8608l-307.01568 380.38016a30.72 30.72 0 0 1-42.90048 4.84864L235.44832 556.2368a32.128 32.128 0 0 1-5.74976-44.6464 32.1536 32.1536 0 0 1 44.544-6.58944l182.74304 132.90496z" fill="#1890ff"></path></svg>`
   }
-};

效果预览

Demo完整预览 Playground >>

- +};

效果预览

Demo完整预览 Playground >>

+ \ No newline at end of file diff --git a/docs/zh-CN/element/text.html b/docs/zh-CN/element/text.html index b9baa02..2e451cd 100644 --- a/docs/zh-CN/element/text.html +++ b/docs/zh-CN/element/text.html @@ -5,19 +5,19 @@ 文本元素 | iDraw.js - - + + - - - - - + + + + + -
Skip to content

文本元素

Text

用来渲染文字内容,具体格式如下所示:

ts
type Text = {
+    
Skip to content

文本元素

Text

用来渲染文字内容,具体格式如下所示:

ts
type Text = {
   type: 'text';
   x: number;
   y: number;
@@ -31,7 +31,7 @@
     fontFamily?: string;
     textAlign?: 'left' | 'center' | 'right';
   };
-};

Text.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

Text.detail 数据格式

Text元素的detail属性

ts
type TextDetail = {
+};

Text.detail 详解

元素的基本属性详情可以看 元素介绍-数据基本格式

Text.detail 数据格式

Text元素的detail属性

ts
type TextDetail = {
   text: string;
   color?: string;
   fontSize?: number;
@@ -40,7 +40,7 @@
   fontFamily?: string;
   textAlign?: 'center' | 'left' | 'right';
   verticalAlign?: 'middle' | 'top' | 'bottom';
-};

Text.detail 数据属性内容

属性说明类型默认值是否必填备注
text文本内容string-true-
color字体颜色string-true例如 #000000
fontSize字体尺寸number12false-
lineHeight文本行高number-false-
fontWeight字体粗细number-false-
fontFamily字体类型string-false-
textAlign水平对齐'left' | 'center' | 'right''left'false-
verticalAlign垂直对齐'top' | 'middle' | 'bottom''top'false-

完整数据示例

js
const elementText = {
+};

Text.detail 数据属性内容

属性说明类型默认值是否必填备注
text文本内容string-true-
color字体颜色string-true例如 #000000
fontSize字体尺寸number12false-
lineHeight文本行高number-false-
fontWeight字体粗细number-false-
fontFamily字体类型string-false-
textAlign水平对齐'left' | 'center' | 'right''left'false-
verticalAlign垂直对齐'top' | 'middle' | 'bottom''top'false-

完整数据示例

js
const elementText = {
   name: 'text',
   x: 160,
   y: 80,
@@ -58,8 +58,8 @@
     borderWidth: 2,
     borderColor: '#3f51b5'
   }
-};

效果预览

Demo完整预览 Playground >>

- +};

效果预览

Demo完整预览 Playground >>

+ \ No newline at end of file diff --git a/docs/zh-CN/guide/class-idraw.html b/docs/zh-CN/guide/class-idraw.html index 87a19c4..914f41b 100644 --- a/docs/zh-CN/guide/class-idraw.html +++ b/docs/zh-CN/guide/class-idraw.html @@ -5,19 +5,19 @@ iDraw 类 | iDraw.js - - + + - - - - - + + + + + -
Skip to content

iDraw 类

参数

js
import { iDraw } from 'idraw';
+    
Skip to content

iDraw 类

参数

js
import { iDraw } from 'idraw';
 const dom = document.querySelector('#app');
 const options = {
   width: 600,
@@ -25,12 +25,12 @@
   devicePixelRatio: 2
 };
 
-const idraw = new iDraw(dom, options);

在使用 new iDraw(dom, options) 类时,会接收两个参数。参数信息有下:

参数说明类型默认值是否必填备注
dom渲染DOM节点HTMLDivElement-true-
options渲染内容选项Object-true-

选项 Options

ts
type Options = {
+const idraw = new iDraw(dom, options);

在使用 new iDraw(dom, options) 类时,会接收两个参数。参数信息有下:

参数说明类型默认值是否必填备注
dom渲染DOM节点HTMLDivElement-true-
options渲染内容选项Object-true-

选项 Options

ts
type Options = {
   width: number;
   height: number;
   devicePixelRatio: number;
-};

Options 属性

属性说明类型默认值是否必填备注
width画板宽度number-true-
height画板高度number-true-
devicePixelRatio设备像素比例number1false-

Options 效果预览

Demo完整预览 Playground >>

- +};

Options 属性

属性说明类型默认值是否必填备注
width画板宽度number-true-
height画板高度number-true-
devicePixelRatio设备像素比例number1false-

Options 效果预览

Demo完整预览 Playground >>

+ \ No newline at end of file diff --git a/docs/zh-CN/guide/installation.html b/docs/zh-CN/guide/installation.html index 010b09a..70b7cbe 100644 --- a/docs/zh-CN/guide/installation.html +++ b/docs/zh-CN/guide/installation.html @@ -5,19 +5,19 @@ 安装 | iDraw.js - - + + - - - - - + + + + + -
Skip to content

安装

最新版本

iDraw.js

安装方式

将 iDraw.js 添加到项目中有三种方式:

  1. 基于 NPM 安装
  2. 在页面上以 CDN 形式引入。
  3. 下载 JavaScript 文件,并且自托管JavaScript文件

NPM

在开发大型项目应用时候,推荐使用 NPM 的安装方式,可以更好的基于 Webpack 、 Rollup 和 Vite 等构建工具结合使用。

sh
npm install idraw

CDN

在小型项目应用场景或者学习场景时候,可以使用 CDN的方式引用最新的版本的 JavaScript 文件:

html
<script src="https://unpkg.com/idraw"></script>
html
<!-- 全局变量使用 -->
+    
Skip to content

安装

最新版本

iDraw.js

安装方式

将 iDraw.js 添加到项目中有三种方式:

  1. 基于 NPM 安装
  2. 在页面上以 CDN 形式引入。
  3. 下载 JavaScript 文件,并且自托管JavaScript文件

NPM

在开发大型项目应用时候,推荐使用 NPM 的安装方式,可以更好的基于 Webpack 、 Rollup 和 Vite 等构建工具结合使用。

sh
npm install idraw

CDN

在小型项目应用场景或者学习场景时候,可以使用 CDN的方式引用最新的版本的 JavaScript 文件:

html
<script src="https://unpkg.com/idraw"></script>
html
<!-- 全局变量使用 -->
 <script>
   (function () {
     const { iDraw } = window.iDraw;
@@ -28,8 +28,8 @@
       devicePixelRatio: 2
     });
   })();
-</script>

WARNING

不建议用 unpkg.com 站点的CDN资源的放在生产环境

自托管JavaScript文件

如果不想使用构建工具,同时无法直接使用 CDN方式 调用,那么可以将相关的 .js 文件下载到项目本地或者服务器上托管。最后通过 <script> 方式引用,使用方法跟 CDN 的方式类似。

具体的 JavaScript文件 可以从 unpkg 这里下载最新的 iDraw.js 文件。

- +</script>

WARNING

不建议用 unpkg.com 站点的CDN资源的放在生产环境

自托管JavaScript文件

如果不想使用构建工具,同时无法直接使用 CDN方式 调用,那么可以将相关的 .js 文件下载到项目本地或者服务器上托管。最后通过 <script> 方式引用,使用方法跟 CDN 的方式类似。

具体的 JavaScript文件 可以从 unpkg 这里下载最新的 iDraw.js 文件。

+ \ No newline at end of file diff --git a/docs/zh-CN/guide/introduction.html b/docs/zh-CN/guide/introduction.html index 7d38891..14aeb69 100644 --- a/docs/zh-CN/guide/introduction.html +++ b/docs/zh-CN/guide/introduction.html @@ -5,19 +5,19 @@ 介绍 | iDraw.js - - + + - - - - - + + + + + -
Skip to content

介绍

iDraw.js 是什么

iDraw.js 是基于浏览器中 Canvas API 的绘图能力实现的一套画图框架。

可以直接由数据驱动去渲染图画的渲染,同时能可视化操控 图画元素 的位置、形状和布局等信息。

iDraw.js 目前基于 MIT 开源协议托管在GitHubNPM,所有使用者就都可以免费地使用在自己的项目中。

起步使用

sh
npm install idraw
js
import { iDraw } from 'idraw';
+    
Skip to content

介绍

iDraw.js 是什么

iDraw.js 是基于浏览器中 Canvas API 的绘图能力实现的一套画图框架。

可以直接由数据驱动去渲染图画的渲染,同时能可视化操控 图画元素 的位置、形状和布局等信息。

iDraw.js 目前基于 MIT 开源协议托管在GitHubNPM,所有使用者就都可以免费地使用在自己的项目中。

起步使用

sh
npm install idraw
js
import { iDraw } from 'idraw';
 const data = {
   elements: [
     {
@@ -46,8 +46,8 @@
   height: 400,
   devicePixelRatio: 2
 });
-idraw.setData(data);
- +idraw.setData(data);
+ \ No newline at end of file diff --git a/docs/zh-CN/guide/quickstart.html b/docs/zh-CN/guide/quickstart.html index ab493a0..a290660 100644 --- a/docs/zh-CN/guide/quickstart.html +++ b/docs/zh-CN/guide/quickstart.html @@ -5,19 +5,19 @@ 快速上手 | iDraw.js - - + + - - - - - + + + + + -
Skip to content

快速上手

第一个例子

这是一个最简单的 iDraw.js 例子,绘制一个旋转的矩形。

安装模块

sh
npm install idraw

渲染DOM的位置

html
<div id="app"></div>

使用 iDraw.js

js
import { iDraw } from 'idraw';
+    
Skip to content

快速上手

第一个例子

这是一个最简单的 iDraw.js 例子,绘制一个旋转的矩形。

安装模块

sh
npm install idraw

渲染DOM的位置

html
<div id="app"></div>

使用 iDraw.js

js
import { iDraw } from 'idraw';
 const data = {
   elements: [
     {
@@ -46,8 +46,8 @@
 });
 
 // 设置数据
-idraw.setData(data);

至此,小伙伴们就可以愉快的开启 iDraw.js 的画图之旅啦!O(∩_∩)O~

- +idraw.setData(data);

至此,小伙伴们就可以愉快的开启 iDraw.js 的画图之旅啦!O(∩_∩)O~

+ \ No newline at end of file diff --git a/docs/zh-CN/index.html b/docs/zh-CN/index.html index e756c06..61b190a 100644 --- a/docs/zh-CN/index.html +++ b/docs/zh-CN/index.html @@ -5,20 +5,20 @@ iDraw.js - - + + - - - - - + + + + + -
Skip to content

iDraw.js

让Web绘图更加简单.

一个面向Web绘图的JavaScript框架

- +
Skip to content

iDraw.js

让Web绘图更加简单.

一个面向Web绘图的JavaScript框架

+ \ No newline at end of file diff --git a/docs/zh-CN/sponsor.html b/docs/zh-CN/sponsor.html index 49f988e..1c97cfd 100644 --- a/docs/zh-CN/sponsor.html +++ b/docs/zh-CN/sponsor.html @@ -5,20 +5,20 @@ Become an iDraw.js Sponsor | iDraw.js - - + + - - - - - + + + + + -
Skip to content

Become an iDraw.js Sponsor

iDraw.js is an MIT licensed open source project and completely free to use. The tremendous amount of effort needed to maintain this framework and develop new features for the project is only made sustainable thanks to the generous financial backing of our sponsors.

How to Sponsor

Sponsorships can be done via OpenCollective (https://opencollective.com/idrawjs). Both monthly-recurring sponsorships and one-time donations are accepted. Recurring sponsorships are entitled to logo placements as specified in Sponsorship Tiers.

- +
Skip to content

Become an iDraw.js Sponsor

iDraw.js is an MIT licensed open source project and completely free to use. The tremendous amount of effort needed to maintain this framework and develop new features for the project is only made sustainable thanks to the generous financial backing of our sponsors.

How to Sponsor

Sponsorships can be done via

Both monthly-recurring sponsorships and one-time donations are accepted. Recurring sponsorships are entitled to logo placements as specified in Sponsorship Tiers.

+ \ No newline at end of file